§
    É§-i/  ã                   óD   — d Z ddlmZmZmZ ddlmZ  G d„ d¦  «        ZdS )z:
AI Service
Handles AI generation using DeepSite workflow
é    )ÚAsyncGeneratorÚDictÚAny)Ú
AIWorkflowc                   óz   — e Zd Zd„ Z	 	 ddedededeedf         fd„Zdedefd	„Z	 ddededeee	f         fd
„Z
dS )Ú	AIServicec                 ó,   — t          ¦   «         | _        d S ©N)r   Úai_workflow)Úselfs    úB/var/www/html/web-builder-api.evdpl.com/src/services/ai_service.pyÚ__init__zAIService.__init__
   s   € Ý%™<œ<ˆÔÐÐó    NÚpromptÚconversation_idÚsystem_promptÚreturnc                óÀ   K  — 	 | j                              ||pd|¬¦  «        2 3 d{V —†}|W V — Œ6 dS # t          $ r }dt          |¦  «        › W V — Y d}~dS d}~ww xY w)a  
        Generate streaming AI response using existing LangGraph workflow
        
        Args:
            prompt: User prompt
            conversation_id: Conversation ID for persistence
            system_prompt: Optional system prompt override (for edit mode)
        Údefault)r   Ú	thread_idr   NúError: )r   Úgenerate_responseÚ	ExceptionÚstr)r   r   r   r   ÚchunkÚes         r   Úgenerate_streaming_responsez%AIService.generate_streaming_response   sÈ   è è € ð
	%à#Ô/×AÒAØØ)Ð6¨YØ+ð  Bñ  ô  ð ð ð ð ð ð ð eð
 ð ð  ð  øõ ð 	%ð 	%ð 	%Ø$C ™FœFÐ$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$øøøøð	%øøøs   „3 £0©3 ³
A½AÁAÚresponsec                 óÒ   — d|v rP|                      d¦  «        dz   }|                      d|¦  «        }||k    r|||…                              ¦   «         S |                     ¦   «         S )z7
        Extract HTML content from AI response
        z```htmlé   z```)ÚfindÚstrip)r   r   ÚstartÚends       r   Ú_extract_html_from_responsez%AIService._extract_html_from_response'   sn   € ð
 ˜Ð Ð Ø—M’M )Ñ,Ô,¨qÑ0ˆEà—-’-  uÑ-Ô-ˆCØUŠ{ˆ{Ø  c 	Ô*×0Ò0Ñ2Ô2Ð2ð ~Š~ÑÔÐr   c              ƒ   ó:  K  — 	 | j                              ||pd¬¦  «        ƒ d{V —†}|                     dd¦  «        pd}|                      |¦  «        }|d||                     d¦  «        dœS # t          $ r!}d	t          |¦  «        › d|ddœcY d}~S d}~ww xY w)
zT
        Generate synchronous AI response using existing LangGraph workflow
        r   )r   r   Nr   Ú TÚerror)ÚcontentÚis_completer   r(   r   )r   Úgenerate_response_syncÚgetr%   r   r   )r   r   r   ÚresultÚraw_responseÚextracted_htmlr   s          r   Úgenerate_sync_responsez AIService.generate_sync_response6   s  è è € ð	àÔ+×BÒBØØ)Ð6¨Yð Cñ ô ð ð ð ð ð ð ˆFð "Ÿ:š: j°"Ñ5Ô5Ð;¸ˆLØ!×=Ò=¸lÑKÔKˆNð *Ø#Ø#2ØŸš GÑ,Ô,ð	ð ð øõ ð 	ð 	ð 	à-¥S¨¡V¤VÐ-Ð-Ø#Ø#2Øð	ð ð ð ð ð ð ð øøøøð	øøøs   „A*A/ Á/
BÁ9BÂBÂB)NNr
   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r%   r   r   r0   © r   r   r   r   	   s×   € € € € € ð(ð (ð (ð  $Ø!ð	%ð %àð%ð ð%ð ð	%ð
 
˜˜T˜	Ô	"ð%ð %ð %ð %ð4 °Cð  ¸Cð  ð  ð  ð  ð$  $ð ð  àð ð ð ð 
ˆc3ˆhŒð	 ð  ð  ð  ð  ð  r   r   N)Ú__doc__Útypingr   r   r   Úworkflows.ai_workflowr   r   r4   r   r   ú<module>r8      s}   ððð ð
 -Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðMð Mð Mð Mð Mñ Mô Mð Mð Mð Mr   