system-prompts-and-models-o.../dealix/api/routers/meeting_intelligence.py
Sami Assiri b13cb389cc feat(dealix): sync full Dealix package to repo
- API routers, ACA modules, integrations (draft operators)
- Docs, landing pages, scripts (launch readiness, scorecard)
- Tests and CI workflow updates for Dealix

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-01 21:01:17 +03:00

38 lines
1.7 KiB
Python

"""Meeting intelligence API — text in, Arabic briefs out (no Calendar insert)."""
from __future__ import annotations
from typing import Any
from fastapi import APIRouter, Body
from auto_client_acquisition.meeting_intelligence.followup_builder import build_post_meeting_followup
from auto_client_acquisition.meeting_intelligence.meeting_brief import build_pre_meeting_brief
from auto_client_acquisition.meeting_intelligence.objection_extractor import extract_objections
from auto_client_acquisition.meeting_intelligence.transcript_parser import summarize_transcript_text
router = APIRouter(prefix="/api/v1/meeting-intelligence", tags=["meeting_intelligence"])
@router.post("/transcript/summarize")
async def transcript_summarize(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
text = str(payload.get("text") or "")
base = summarize_transcript_text(text)
base["objections"] = extract_objections(text)
return base
@router.post("/followup/draft")
async def followup_draft(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
summary = str(payload.get("summary_ar") or "")
steps = payload.get("next_steps") if isinstance(payload.get("next_steps"), list) else None
return build_post_meeting_followup(summary, steps)
@router.post("/brief/pre-meeting")
async def pre_meeting_brief(payload: dict[str, Any] = Body(default_factory=dict)) -> dict[str, Any]:
company = payload.get("company") if isinstance(payload.get("company"), dict) else {}
contact = payload.get("contact") if isinstance(payload.get("contact"), dict) else {}
opportunity = payload.get("opportunity") if isinstance(payload.get("opportunity"), dict) else {}
return build_pre_meeting_brief(company, contact, opportunity)