Files
clientflow_backend/scripts/extract_email_identity.py
2026-06-09 22:55:58 +01:00

44 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
"""Extract identity signals from an opportunity email body/signature.
Usage:
PYTHONPATH=. python scripts/extract_email_identity.py --opportunity-id <uuid>
PYTHONPATH=. python scripts/extract_email_identity.py --text-file /tmp/email.txt --email user@example.pt
"""
from __future__ import annotations
import argparse
import json
from pathlib import Path
from app.email_identity_extraction_service import extract_email_identity, extract_identity_for_opportunity
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--opportunity-id")
parser.add_argument("--text-file")
parser.add_argument("--email", default="")
parser.add_argument("--subject", default="")
parser.add_argument("--no-llm", action="store_true")
parser.add_argument("--refresh", action="store_true")
args = parser.parse_args()
if args.opportunity_id:
result = extract_identity_for_opportunity(args.opportunity_id, refresh=args.refresh, use_llm=not args.no_llm)
elif args.text_file:
result = extract_email_identity(
Path(args.text_file).read_text(encoding="utf-8"),
email=args.email,
subject=args.subject,
use_llm=not args.no_llm,
)
else:
parser.error("use --opportunity-id or --text-file")
print(json.dumps(result or {}, ensure_ascii=False, indent=2, default=str))
if __name__ == "__main__":
main()