Ë
    uPêjá  ã                   óà   — d Z ddlmZmZ ddlZddlmZ dedee   de	eef   de	eef   fd	„Z
d
e	dee   dededededefd„Zdededee   dede	dedefd„Z	 ddededee   de	dededefd„Zy)zu
Ollama /chat/completion calls handled in llm_http_handler.py

[TODO]: migrate embeddings to a base handler as well.
é    )ÚAnyÚFinalN)ÚEmbeddingResponseÚmodelÚpromptsÚoptional_paramsÚreturnc                 óÔ   — | |dœ}g d¢}|j                  «       D ]K  \  }}||v r|||<   Œ|j                  di «       t        |d   t        «      sŒ6|d   j	                  ||i«       ŒM |S )N)r   Úinput)ÚtruncateÚoptionsÚ
keep_aliveÚ
dimensionsr   )ÚitemsÚ
setdefaultÚ
isinstanceÚdictÚupdate)r   r   r   ÚdataÚspecial_optional_paramsÚkÚvs          úk/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/ollama/completion/handler.pyÚ!_prepare_ollama_embedding_payloadr      s{   € ð -2¸GÑ"D€DÚ%XÐà×%Ñ%Ó'ò /‰ˆˆ1ØÐ'Ñ'ØˆD�ŠGà�O‰O˜I rÔ*Ü˜$˜y™/¬4Õ0Ø�Y‘×&Ñ&¨¨1 vÕ.ð/ð €Kó    Úresponse_jsonÚmodel_responseÚlogging_objÚencodingc                 ó¢  — g }| d   }t        |«      D ]  \  }}	|j                  d||	dœ«       Œ | j                  dd «      }
|
€T|�=t        |j	                  dj                  |«      «      «      }
|r'|j                  d«       nd}
|r|j                  d«       d	|_        ||_	        d
|z   |_
        t        j                  |
d|
d d ¬«      |_        |S )NÚ
embeddingsÚ	embedding)ÚobjectÚindexr"   Úprompt_eval_countÚ zCOllama response missing prompt_eval_count; estimated with encoding.r   zCMissing prompt_eval_count and no encoding provided; defaulted to 0.Úlistzollama/)Úprompt_tokensÚcompletion_tokensÚtotal_tokensÚprompt_tokens_detailsÚcompletion_tokens_details)Ú	enumerateÚappendÚgetÚlenÚencodeÚjoinÚdebugÚwarningr#   r   r   ÚlitellmÚUsageÚusage)r   r   r   r   r   r   Úoutput_datar!   ÚidxÚembÚinput_tokenss              r   Ú"_process_ollama_embedding_responser<      sí   € ð €KØ+8¸Ñ+F€Jä˜jÓ)ò T‰ˆˆSØ×Ñ k¸CÈcÑRÕSðTð !×$Ñ$Ð%8¸$Ó?€LàÐØÐÜ˜xŸ™¨r¯w©w°wÓ/?Ó@ÓAˆLÙØ×!Ñ!Ð"gÕhàˆLÙØ×#Ñ#Ð$iÔjà"€NÔØ%€NÔØ$ uÑ,€NÔÜ"Ÿ=™=Ø"ØØ!Ø"Ø"&ô€NÔð Ðr   Úapi_basec              ƒ   óè   K  — | j                  d«      s| dz  } t        |||«      }t        j                  j	                  | |¬«      ƒ d {  –—† }|j                  «       }	t        |	|||||¬«      S 7 Œ%­w©Nz
/api/embed)ÚurlÚjson)r   r   r   r   r   r   )Úendswithr   r5   Úmodule_level_aclientÚpostrA   r<   )
r=   r   r   r   r   r   r   r   Úresponser   s
             r   Úollama_aembeddingsrF   D   s}   è ø€ ð ×Ñ˜\Ô*Ø�LÑ ˆä3°E¸7ÀOÓT€Dä#×8Ñ8×=Ñ=À(ÐQUÐ=ÓV×V€HØ#Ÿ=™=›?€Mä-Ø#ØØØ%ØØôð ð Wús   ‚AA2Á
A0Á&A2c                 óÌ   — | j                  d«      s| dz  } t        |||«      }t        j                  j	                  | |¬«      }|j                  «       }	t        |	|||||¬«      S r?   )rB   r   r5   Úmodule_level_clientrD   rA   r<   )
r=   r   r   r   r   r   r   r   rE   r   s
             r   Úollama_embeddingsrI   _   so   € ð ×Ñ˜\Ô*Ø�LÑ ˆä3°E¸7ÀOÓT€Dä×1Ñ1×6Ñ6¸8È$Ð6ÓO€HØ#Ÿ=™=›?€Mä-Ø#ØØØ%ØØôð r   )N)Ú__doc__Útypingr   r   r5   Úlitellm.types.utilsr   Ústrr'   r   r   r<   rF   rI   © r   r   ú<module>rO      s6  ðñ÷ ã Ý 1ðØðØ˜c™ðØ59¸#¸s¸(±^ðà	ˆ#ˆsˆ(�^óð $Øð$à�#‰Yð$ð ð$ð &ð	$ð
 ð$ð ð$ð ó$ðNØðàðð �#‰Yðð &ð	ð
 ðð ðð óðD ñØðàðð �#‰Yðð ð	ð
 &ðð ðð ôr   