+
    aKj                     <    ^ RI t ^RIHt ^RIHt  ! R R]4      tR# )    N)LLMProvider)parse_json_responsec                   L   a  ] tR t^t o RtRV 3R lR lltV 3R lR ltRtV tR# )	OpenAICompatibleProvidera*  Handles OpenAI's own API and any OpenAI-compatible endpoint (Ollama, vLLM,
Groq, etc.) - they share the same request/response wire format, so one class
covers both; only api_key/base_url/model differ, which is exactly how
goplaces_backend/v4/agent.py toggled between cloud OpenAI and local Ollama.
Nc          
      R   < V ^8  d   QhRS[ R,          RS[ RS[ R,          RS[RR/# )   api_keyNmodelbase_urluse_json_modereturn)strbool)format__classdict__s   "EC:\xampp\htdocs\meridian\meridian-ai\app\providers\openai_provider.py__annotate__%OpenAICompatibleProvider.__annotate__   sE     + +t+ + *	+
 + 
+    c                V    \         P                  ! WR 7      V n        W n        W@n        R# ))r	   r   N)openaiOpenAIclientr
   r   )selfr	   r
   r   r   s   &&&&&r   __init__!OpenAICompatibleProvider.__init__   s!     mmGG
 +r   c                <   < V ^8  d   QhRS[ RS[S[,          RS[/# )r   system_promptmessagesr   )r   listdict)r   r   s   "r   r   r      s+     H H3 H$t* H Hr   c                $   R RRV/.VOpV P                   '       d   RRR//M/ pV P                  P                  P                  P                  ! RRV P
                  RV/VB p\        VP                  ^ ,          P                  P                  4      # )	rolesystemcontentresponse_formattypejson_objectr
   r    )
r   r   chatcompletionscreater
   r   choicesmessager%   )r   r   r   chat_messageskwargsresponses   &&&   r   complete_json&OpenAICompatibleProvider.complete_json   s     (I}EQQAEASASAS#fm%<=Y[;;##//66 
**
"
 

 #8#3#3A#6#>#>#F#FGGr   )r   r
   r   )NT)	__name__
__module____qualname____firstlineno____doc__r   r2   __static_attributes____classdictcell__)r   s   @r   r   r      s      + +H Hr   r   )r   baser   
json_utilsr   r   r)   r   r   <module>r=      s      +H{ Hr   