o
    "i                     @   s:   d dl mZ d dlmZ d dlmZ dZG dd dZdS )    )ClickHouseRepository)MySQLRepository)
LLMServicea:  
You are an AI Call Quality Advisor.
Evaluate this call transcript and output strict JSON:
{
  "quality_score": 0-100,
  "compliance_score": 0-100,
  "compliance_violations": ["..."],
  "strengths": ["..."],
  "improvements": ["..."],
  "agent_feedback": "...",
  "call_summary": "..."
}

Transcript:
{transcript}
c                   @   s8   e Zd ZdededefddZdededefd	d
ZdS )ScoringService
mysql_repoclickhouse_repollm_servicec                 C   s   || _ || _|| _d S )N)mysql
clickhousellm)selfr   r   r    r   I/home/aiteam/pcaa-dev/ai-call-quality-rag/app/services/scoring_service.py__init__   s   
zScoringService.__init__	tenant_idcall_idagent_idc                 C   s   | j ||}ddd |D }tj|d}| j|}t|dd}t|dd}	|dg p4g }
| j 	|||| | j
j|||||	|
d	 |S )
N
c                 S   s$   g | ]}d |d  d|d  qS )[speakerz] textr   ).0cr   r   r   
<listcomp>    s   $ z-ScoringService.score_call.<locals>.<listcomp>)
transcriptquality_scoreg        compliance_scorecompliance_violations)r   r   r   r   r   issues)r	   get_call_chunks_textjoinSCORE_PROMPT_TEMPLATEformatr   generate_jsonfloatget
save_scorer
   insert_score_event)r   r   r   r   chunksr   promptscore_payloadquality
compliancer   r   r   r   
score_call   s"   	zScoringService.score_callN)	__name__
__module____qualname__r   r   r   r   strr-   r   r   r   r   r      s    r   N)&app.repositories.clickhouse_repositoryr   !app.repositories.mysql_repositoryr   app.services.llm_servicer   r!   r   r   r   r   r   <module>   s
    