
    Fg                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJrJrJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  \R:                  S:  a	  S S	KJrJr  OS S	K JrJr  S S
K!J"r"   \"RF                  " S5      r$S SK&r&S SK'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>J?r?  \" S5      r@ " S S5      rASrB " S S\A5      rC " S S\A5      rDS\\\\3\4         S\\3   4S jrES\\\\\F\4   \54         S\\5   4S jrGS!S\\\\\F\4   \?\4         S\\?   4S jjrHS\\\F\	4      S\\S4   4S jrIS\\F   S\F4S  jrJg! \"RJ                   a    Sr$ Nf = f)"    N)sha256)PathLike)Path)AnyCallableDictListLiteralMappingOptionalSequenceTypeTypeVarUnionoverload)JsonSchemaValue)convert_function_to_tool)   	   )AsyncIteratorIterator)metadataollamaz0.0.0)ChatRequestChatResponseCopyRequestCreateRequestDeleteRequestEmbeddingsRequestEmbeddingsResponseEmbedRequestEmbedResponseGenerateRequestGenerateResponseImageListResponseMessageOptionsProcessResponseProgressResponsePullRequestPushRequestResponseErrorShowRequestShowResponseStatusResponseToolTc                   T    \ rS rSr    S
S\\   S\S\S\\\\4      SS4
S jjr	S	r
g)
BaseClientI   Nhostfollow_redirectstimeoutheadersreturnc                    U" S
[        U=(       d    [        R                  " S5      5      UU0 U=(       d    0 ESSS[         S[        R
                  " 5        S[        R                  " 5       R                  5        S[        R                  " 5        3S.ER                  5        VVs0 s H  u  pxUR                  5       U_M     snnS.UD6U l
        g	s  snnf )z
Creates a httpx client. Default parameters are the same as those defined in httpx
except for the following:
- `follow_redirects`: True
- `timeout`: None
`kwargs` are passed to the httpx client.
OLLAMA_HOSTzapplication/jsonzollama-python/z ( z	) Python/)zContent-TypeAcceptz
User-Agent)base_urlr7   r8   r9   N )_parse_hostosgetenv__version__platformmachinesystemlowerpython_versionitems_client)	selfclientr6   r7   r8   r9   kwargskvs	            _/Users/admin/workspace/ai/PDFMathTranslate/myenv/lib/python3.13/site-packages/ollama/_client.py__init__BaseClient.__init__J   s    "  4;299]#;<'
]
,&(R8H8H8J7K1X__M^MdMdMfLggpqy  rI  rI  rK  qL  M	

 %'DA 	
	1 	DL
s   (C)rK   )NTNN)__name__
__module____qualname____firstlineno__r   strboolr   r   rR   __static_attributes__r@       rQ   r4   r4   I   s^     !+/  3-  	 
   gc3h'(     r[   r4   zxFailed to connect to Ollama. Please check that Ollama is downloaded, running and accessible. https://ollama.com/downloadc                     ^  \ rS rSrSFS\\   SS4U 4S jjjrS r\SS.S	\	\
   S
\S   S\
4S jj5       r\SS.S	\	\
   S
\S   S\\
   4S jj5       r\SS.S	\	\
   S
\S\\
\\
   4   4S jj5       rSS.S	\	\
   S
\S\\
\\
   4   4S jjr\   SGSSSSSSSSSS.	S\S\S\S\S\S\\\      S
\S   S\S\\\S   \4      S\\\\\4         S\\\\\4   \4      S\\\\4      S\4S jjj5       r\   SGSSSSSSSSSS.	S\S\S\S\S\S\\\      S
\S   S\S\\\S   \4      S\\\\\4         S\\\\\4   \4      S\\\\4      S\\   4S jjj5       r   SHSSSSSSSSSS.	S\S\\   S\\   S\\   S\\   S\\\      S
\S\\   S\\\S   \4      S\\\\\4         S\\\\\4   \4      S\\\\4      S\\\\   4   4S  jjjr\  SISSSSSS!.S\S"\\\\\\4   \4         S#\\\\\\4   \\4         S
\S   S\\\S   \4      S\\\\\4   \4      S\\\\4      S\4S$ jjj5       r\  SISSSSSS!.S\S"\\\\\\4   \4         S#\\\\\\4   \\4         S
\S   S\\\S   \4      S\\\\\4   \4      S\\\\4      S\\   4S% jjj5       r  SISSSSSS!.S\S"\\\\\\4   \4         S#\\\\\\4   \\4         S
\S\\\S   \4      S\\\\\4   \4      S\\\\4      S\\\\   4   4S& jjjr     SJS\S'\\\\   4   S(\\   S\\\\\4   \4      S\\\\4      S\4S) jjr     SKS\S\\   S\\\\\4   \4      S\\\\4      S\!4
S* jjr"\SSS+.S\S,\S
\S   S\#4S- jj5       r$\SSS+.S\S,\S
\S   S\\#   4S. jj5       r$SSS+.S\S,\S
\S\\#\\#   4   4S/ jjr$\SSS+.S\S,\S
\S   S\#4S0 jj5       r%\SSS+.S\S,\S
\S   S\\#   4S1 jj5       r%SSS+.S\S,\S
\S\\#\\#   4   4S2 jjr%\         SLSS.S\S3\\   S4\\   S5\\&\\4      S6\\&\\4      S\\   S7\\\\'\   4      S\\   S8\\\\\4   \4      S"\\\\\\4   \4         S
\S   S\#4S9 jjj5       r(\         SLSS.S\S3\\   S4\\   S5\\&\\4      S6\\&\\4      S\\   S7\\\\'\   4      S\\   S8\\\\\4   \4      S"\\\\\\4   \4         S
\S   S\\#   4S: jjj5       r(         SLSS.S\S3\\   S4\\   S5\\&\\4      S6\\&\\4      S\\   S7\\\\'\   4      S\\   S8\\\\\4   \4      S"\\\\\\4   \4         S
\S\\#\\#   4   4S; jjjr(S<\\\)4   S\4S= jr*S\+4S> jr,S\S\-4S? jr.S@\SA\S\-4SB jr/S\S\04SC jr1S\24SD jr3SEr4U =r5$ )MClientp   Nr6   r:   c                 F   > [         TU ]  " [        R                  U40 UD6  g N)superrR   httpxr]   rL   r6   rN   	__class__s      rQ   rR   Client.__init__q   s    	GU\\4262r[   c                 H    U R                   R                  " U0 UD6nUR                  5         U$ ! [        R                   a:  n[        UR                  R                  UR                  R                  5      S eS nAf[        R                   a    [        [        5      S ef = fr`   rK   requestraise_for_statusrb   HTTPStatusErrorr-   responsetextstatus_codeConnectErrorConnectionErrorCONNECTION_ERROR_MESSAGErL   argsrN   res        rQ   _request_rawClient._request_rawt   s    @
,,


/
/ah   M!**//1::+A+ABL @454?@s   -0 B!5A99(B!Fstreamclsrx   c                    g r`   r@   rL   ry   rx   rr   rN   s        rQ   _requestClient._request~   s     r[   Tc                    g r`   r@   r{   s        rQ   r|   r}      s     r[   c                    g r`   r@   r{   s        rQ   r|   r}      s     "r[   c          	         ^ ^^^ U(       a  UUUU 4S jnU" 5       $ T" S0 T R                   " T0 TD6R                  5       D6$ )Nc               3   &  >#    TR                   R                  " T0 TD6 n  U R                  5         U R                  5        HF  n[        R                  " U5      nUR                  S5      =n(       a  [        U5      eT" S0 UD6v   MH     S S S 5        g ! [        R                   aT  nUR
                  R                  5         [        UR
                  R                  UR
                  R                  5      S eS nAff = f! , (       d  f       g = f7fNerrorr@   )rK   rx   ri   rb   rj   rk   readr-   rl   rm   
iter_linesjsonloadsget	rs   rt   lineparterrrr   ry   rN   rL   s	        rQ   innerClient._request.<locals>.inner   s     \\  $1&1QS 
 llnd::d#Dhhw''s'!#&&++	 % 21 && SJJOO

1G1GHdRS 21s@   DD BAD 	DC=)AC88C==D  
D
Dr@   ru   r   rL   ry   rx   rr   rN   r   s   `` `` rQ   r|   r}      sB       Wn;""D3F388:;;r[    	rG   templatecontextrx   rawformatimagesoptions
keep_alivemodelpromptsuffixrG   r   r   r   r   r   r   r   r   r   c       	             g r`   r@   rL   r   r   r   rG   r   r   rx   r   r   r   r   r   s                rQ   generateClient.generate   s      r[   c       	             g r`   r@   r   s                rQ   r   r      s      $'r[   c       	             U R                  [        SS[        UUUUUUUUU	U
(       a  [        U
5       Vs/ s H  oPM     snOSUUS9R	                  SS9US9$ s  snf )a  
Create a response using the requested model.

Raises `RequestError` if a model is not provided.

Raises `ResponseError` if the request could not be fulfilled.

Returns `GenerateResponse` if `stream` is `False`, otherwise returns a `GenerateResponse` generator.
POST/api/generateNr   r   r   rG   r   r   rx   r   r   r   r   r   Texclude_noner   rx   r|   r$   r#   _copy_images
model_dumprL   r   r   r   rG   r   r   rx   r   r   r   r   r   images                 rQ   r   r      s    4 ==<B<#78#7%#78 	

%%    9s   A$toolsrx   r   r   r   messagesr   c                    g r`   r@   rL   r   r   r   rx   r   r   r   s           rQ   chatClient.chat  s     r[   c                    g r`   r@   r   s           rQ   r   r     s      #r[   c                    U R                  [        SS[        U[        U5       Vs/ s H  oPM     sn[	        U5       V	s/ s H  oPM     sn	UUUUS9R                  SS9US9$ s  snf s  sn	f )a  
Create a chat response using the requested model.

Args:
  tools:
    A JSON schema as a dict, an Ollama Tool or a Python Function.
    Python functions need to follow Google style docstrings to be converted to an Ollama Tool.
    For more information, see: https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings
  stream: Whether to stream the response.
  format: The format of the response.

Example:
  def add_two_numbers(a: int, b: int) -> int:
    '''
    Add two numbers together.

    Args:
      a: First number to add
      b: Second number to add

    Returns:
      int: The sum of a and b
    '''
    return a + b

  client.chat(model='llama3.2', tools=[add_two_numbers], messages=[...])

Raises `RequestError` if a model is not provided.

Raises `ResponseError` if the request could not be fulfilled.

Returns `ChatResponse` if `stream` is `False`, otherwise returns a `ChatResponse` generator.
r   	/api/chatr   r   r   rx   r   r   r   Tr   r   r|   r   r   _copy_messages_copy_toolsr   
rL   r   r   r   rx   r   r   r   messagetools
             rQ   r   r   !  s    X ==)7)AB)Ag')AB +E 23 2t 23 	

%    C3s   A$ A)inputtruncatec                 ^    U R                  [        SS[        UUUUUS9R                  SS9S9$ Nr   z
/api/embed)r   r   r   r   r   Tr   r   r|   r"   r!   r   rL   r   r   r   r   r   s         rQ   embedClient.embed]  sH     == 	

%   r[   c                 \    U R                  [        SS[        UUUUS9R                  SS9S9$ )!
Deprecated in favor of `embed`.
r   /api/embeddingsr   r   r   r   Tr   r   r|   r    r   r   rL   r   r   r   r   s        rQ   
embeddingsClient.embeddingsr  sE     ==	
 	

%  
 
r[   insecurerx   r   c                    g r`   r@   rL   r   r   rx   s       rQ   pullClient.pull       r[   c                    g r`   r@   r   s       rQ   r   r          $'r[   c                \    U R                  [        SS[        UUUS9R                  SS9US9$ )
Raises `ResponseError` if the request could not be fulfilled.

Returns `ProgressResponse` if `stream` is `False`, otherwise returns a `ProgressResponse` generator.
r   	/api/pullr   r   rx   Tr   r   r|   r*   r+   r   r   s       rQ   r   r     E     == 	

%  
 
r[   c                    g r`   r@   r   s       rQ   pushClient.push  r   r[   c                    g r`   r@   r   s       rQ   r   r     r   r[   c                \    U R                  [        SS[        UUUS9R                  SS9US9$ )r   r   	/api/pushr   Tr   r   r|   r*   r,   r   r   s       rQ   r   r     r   r[   quantizefrom_filesadapterslicense
parametersc                    g r`   r@   rL   r   r   r   r   r   r   r   rG   r   r   rx   s               rQ   createClient.create  s     r[   c                    g r`   r@   r   s               rQ   r   r     s     $'r[   c                l    U R                  [        SS[        UUUUUUUUUU	U
S9R                  SS9US9$ )r   r   /api/creater   rx   r   r   r   r   r   r   rG   r   r   Tr   r   r|   r*   r   r   r   s               rQ   r   r     s]    ( == 	

%#   r[   pathc                 \   [        5       n[        US5       n UR                  S5      nU(       d  OUR                  U5        M,  S S S 5        SUR	                  5        3n[        US5       nU R                  SSU 3US9  S S S 5        U$ ! , (       d  f       NL= f! , (       d  f       U$ = f)Nrb   sha256:r   /api/blobs/contentr   openr   update	hexdigestru   )rL   r   	sha256sumrs   chunkdigests         rQ   create_blobClient.create_blob&  s    I	dD	Qy!
	  
 y**,-.F	dD	Q
+fX 6B 
 M 
	 
	 Ms   .B,B
B
B+c                 0    U R                  [        SS5      $ NGETz	/api/tagsr|   r&   rL   s    rQ   listClient.list6  s    == r[   c                     U R                  SS[        US9R                  SS9S9n[        UR                  S:X  a  SS
9$ S	S
9$ NDELETEz/api/deleter   Tr   r      successr   statusru   r   r   r0   rm   rL   r   rs   s      rQ   deleteClient.delete=  s^    

% 	 	A --3.Y 4; r[   sourcedestinationc           	          U R                  SS[        UUS9R                  SS9S9n[        UR                  S:X  a  SS
9$ S	S
9$ Nr   z	/api/copy)r  r  Tr   r   r  r  r   r  ru   r   r   r0   rm   rL   r  r  rs   s       rQ   copyClient.copyI  sc     	

% 	 	A --3.Y 4; r[   c           	      V    U R                  [        SS[        US9R                  SS9S9$ Nr   z	/api/showr  Tr   r   r|   r/   r.   r   rL   r   s     rQ   showClient.showV  s8    ==

%   r[   c                 0    U R                  [        SS5      $ Nr	  z/api/psr|   r)   r  s    rQ   ps	Client.ps`  s    == r[   r@   r`   r   r   r   r   NNr   Nr   r   NNNr   NNN	NNNNNNNNN)6rT   rU   rV   rW   r   rX   rR   ru   r   r   r2   r
   r|   r   rY   r   r   intr   bytesr   r   r(   floatr$   r   r'   r1   r   r   r   r"   r   r    r   r*   r   r   r   r	   r   r   r  r&   r  r0   r  r   r/   r&  r)   r+  rZ   __classcell__rd   s   @rQ   r]   r]   p   s   38C= 3d 3 3@ 
 #		a EN	 	  
 !		a DM	 {  
 	"	a" 	" Q^" " 	<	a< 	< Q^<6  	 '+"DH48;?.2  	   hsm$ EN 
 U7:.?@A XeCJ/01 eGCH-w678 ucz*+  "  	' '+ DH48;?.2'' ' 	' ' ' hsm$' DM' 
' U7:.?@A' XeCJ/01' eGCH-w678' ucz*+'  !' '&   	- !"'+DH48;?.2-- SM- SM	- SM- sm- hsm$- - 
$- U7:.?@A- XeCJ/01- eGCH-w678- ucz*+- x(899:-^  FJ

 KO"DH;?.2

 xgc3h&7&@ ABC

 HU738#4dH#DEFG
 EN
 U7:.?@A
 eGCH-w678
 ucz*+
 
 
  FJ
#
 KO DH;?.2
#
# xgc3h&7&@ ABC
#
 HU738#4dH#DEFG
# DM
# U7:.?@A
# eGCH-w678
# ucz*+
# 
# 
# FJ:
 KODH;?.2:: xgc3h&7&@ ABC:
 HU738#4dH#DEFG: : U7:.?@A: eGCH-w678: ucz*+: \8L112:| ')#;?.2 hsm#$ tn	
 eGCH-w678 ucz*+ .  ;?.2 SM eGCH-w678	
 ucz*+ , 
 " 	
 EN   
  '' 	'
 DM'  !' '  	
  x(899:0 
 " 	
 EN   
  '' 	'
 DM'  !' '  	
  x(899:0  #&*)-"/3 >BFJ # sm C=	
 DcN# tCH~& sm eCcN+, SM wsCx0'9:; xgc3h&7&@ ABC EN     #&*)-"/3 >BFJ' !'' sm' C=	'
 DcN#' tCH~&' sm' eCcN+,' SM' wsCx0'9:;' xgc3h&7&@ ABC' DM'  !' '& #&*)-"/3 >BFJ& && sm& C=	&
 DcN#& tCH~&& sm& eCcN+,& SM& wsCx0'9:;& xgc3h&7&@ ABC& & x(899:&PeCI. 3  L 
# 
. 
 3 >   /  r[   r]   c                     ^  \ rS rSrSFS\\   SS4U 4S jjjrS r\SS.S	\	\
   S
\S   S\
4S jj5       r\SS.S	\	\
   S
\S   S\\
   4S jj5       r\SS.S	\	\
   S
\S\\
\\
   4   4S jj5       rSS.S	\	\
   S
\S\\
\\
   4   4S jjr\   SGSSSSSSSSSS.	S\S\S\S\S\S\\\      S
\S   S\S\\\S   \4      S\\\\\4         S\\\\\4   \4      S\\\\4      S\4S jjj5       r\   SGSSSSSSSSSS.	S\S\S\S\S\S\\\      S
\S   S\S\\\S   \4      S\\\\\4         S\\\\\4   \4      S\\\\4      S\\   4S jjj5       r   SHSSSSSSSSSS.	S\S\\   S\\   S\\   S\\   S\\\      S
\S\\   S\\\S   \4      S\\\\\4         S\\\\\4   \4      S\\\\4      S\\\\   4   4S  jjjr\  SISSSSSS!.S\S"\\\\\\4   \4         S#\\\\\\4   \\4         S
\S   S\\\S   \4      S\\\\\4   \4      S\\\\4      S\4S$ jjj5       r\  SISSSSSS!.S\S"\\\\\\4   \4         S#\\\\\\4   \\4         S
\S   S\\\S   \4      S\\\\\4   \4      S\\\\4      S\\   4S% jjj5       r  SISSSSSS!.S\S"\\\\\\4   \4         S#\\\\\\4   \\4         S
\S\\\S   \4      S\\\\\4   \4      S\\\\4      S\\\\   4   4S& jjjr     SJS\S'\\\\   4   S(\\   S\\\\\4   \4      S\\\\4      S\4S) jjr     SKS\S\\   S\\\\\4   \4      S\\\\4      S\!4
S* jjr"\SSS+.S\S,\S
\S   S\#4S- jj5       r$\SSS+.S\S,\S
\S   S\\#   4S. jj5       r$SSS+.S\S,\S
\S\\#\\#   4   4S/ jjr$\SSS+.S\S,\S
\S   S\#4S0 jj5       r%\SSS+.S\S,\S
\S   S\\#   4S1 jj5       r%SSS+.S\S,\S
\S\\#\\#   4   4S2 jjr%\         SLSS.S\S3\\   S4\\   S5\\&\\4      S6\\&\\4      S\\   S7\\\\'\   4      S\\   S8\\\\\4   \4      S"\\\\\\4   \4         S
\S   S\#4S9 jjj5       r(\         SLSS.S\S3\\   S4\\   S5\\&\\4      S6\\&\\4      S\\   S7\\\\'\   4      S\\   S8\\\\\4   \4      S"\\\\\\4   \4         S
\S   S\\#   4S: jjj5       r(         SLSS.S\S3\\   S4\\   S5\\&\\4      S6\\&\\4      S\\   S7\\\\'\   4      S\\   S8\\\\\4   \4      S"\\\\\\4   \4         S
\S\\#\\#   4   4S; jjjr(S<\\\)4   S\4S= jr*S\+4S> jr,S\S\-4S? jr.S@\SA\S\-4SB jr/S\S\04SC jr1S\24SD jr3SEr4U =r5$ )MAsyncClientih  Nr6   r:   c                 F   > [         TU ]  " [        R                  U40 UD6  g r`   )ra   rR   rb   r9  rc   s      rQ   rR   AsyncClient.__init__i  s    	GU&&77r[   c                 d  #     U R                   R                  " U0 UD6I S h  vN nUR                  5         U$  N! [        R                   a:  n[        UR                  R                  UR                  R                  5      S eS nAf[        R                   a    [        [        5      S ef = f7fr`   rg   rq   s        rQ   ru   AsyncClient._request_rawl  s     @$$d5f5
5ah 6    M!**//1::+A+ABL @454?@s1   B0< :< B0< B-5B(B--B0Frw   ry   rx   c                   #    g 7fr`   r@   r{   s        rQ   r|   AsyncClient._requestv  s
         Tc                   #    g 7fr`   r@   r{   s        rQ   r|   r?    
      r@  c                   #    g 7fr`   r@   r{   s        rQ   r|   r?    s
      $'r@  c          	         ^ ^^^#    U(       a  UUUU 4S jnU" 5       $ T" S0 T R                   " T0 TD6I S h  vN R                  5       D6$  N7f)Nc                   >#    TR                   R                  " T0 TD6 IS h  vN n  U R                  5         U R                  5         S h  vN n[        R                  " U5      nUR                  S5      =n(       a  [        U5      eT" S0 UD67v   MO   Nt! [        R                   a]  nUR
                  R                  5       I S h  vN    [        UR
                  R                  UR
                  R                  5      S eS nAff = f N
 S S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f7fr   )rK   rx   ri   rb   rj   rk   areadr-   rl   rm   aiter_linesr   r   r   r   s	        rQ   r   #AsyncClient._request.<locals>.inner  s     <<&&7771S 
 MMO D::d#Dhhw''s'!#&&++ 8 && S**""$$$

1G1GHdRSO 877777s   !D>BD>D$BD$
DDDAD$D>D/DC:DDD$DD$D>D D>$D;*D-+D;7D>r@   r   r   s   `` `` rQ   r|   r?    sK        WnC))4:6::@@BCC:s   1AAAr   r   r   r   r   rG   r   r   r   r   r   r   r   r   c       	            #    g 7fr`   r@   r   s                rQ   r   AsyncClient.generate  s
       r@  c       	            #    g 7fr`   r@   r   s                rQ   r   rJ    s
       ),r@  c       	            #    U R                  [        SS[        UUUUUUUUU	U
(       a  [        U
5       Vs/ s H  oPM     snOSUUS9R	                  SS9US9I Sh  vN $ s  snf  N	7f)a  
Create a response using the requested model.

Raises `RequestError` if a model is not provided.

Raises `ResponseError` if the request could not be fulfilled.

Returns `GenerateResponse` if `stream` is `False`, otherwise returns an asynchronous `GenerateResponse` generator.
r   r   Nr   Tr   r   r   r   s                 rQ   r   rJ    s     2 <B<#78#7%#78 	

%%     9s   5A*A#$A*A(
A*r   r   r   c                   #    g 7fr`   r@   r   s           rQ   r   AsyncClient.chat  s
      r@  c                   #    g 7fr`   r@   r   s           rQ   r   rN    s
      %(r@  c                   #    U R                  [        SS[        U[        U5       Vs/ s H  oPM     sn[	        U5       V	s/ s H  oPM     sn	UUUUS9R                  SS9US9I Sh  vN $ s  snf s  sn	f  N7f)a  
Create a chat response using the requested model.

Args:
  tools:
    A JSON schema as a dict, an Ollama Tool or a Python Function.
    Python functions need to follow Google style docstrings to be converted to an Ollama Tool.
    For more information, see: https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings
  stream: Whether to stream the response.
  format: The format of the response.

Example:
  def add_two_numbers(a: int, b: int) -> int:
    '''
    Add two numbers together.

    Args:
      a: First number to add
      b: Second number to add

    Returns:
      int: The sum of a and b
    '''
    return a + b

  await client.chat(model='llama3.2', tools=[add_two_numbers], messages=[...])

Raises `RequestError` if a model is not provided.

Raises `ResponseError` if the request could not be fulfilled.

Returns `ChatResponse` if `stream` is `False`, otherwise returns an asynchronous `ChatResponse` generator.
r   r   r   Tr   r   Nr   r   s
             rQ   r   rN    s     Z )7)AB)Ag')AB +E 23 2t 23 	

%     C3s'   &A:A.A:A3A:)A8*A:r   r   c                 z   #    U R                  [        SS[        UUUUUS9R                  SS9S9I S h  vN $  N7fr   r   r   s         rQ   r   AsyncClient.embedU  sU       	

%     s   2;9;c                 x   #    U R                  [        SS[        UUUUS9R                  SS9S9I Sh  vN $  N7f)r   r   r   r   Tr   r   Nr   r   s        rQ   r   AsyncClient.embeddingsj  sR      	
 	

%  
 
 
 
   1:8:r   r   c                   #    g 7fr`   r@   r   s       rQ   r   AsyncClient.pull  rB  r@  c                   #    g 7fr`   r@   r   s       rQ   r   rW    
      ),r@  c                x   #    U R                  [        SS[        UUUS9R                  SS9US9I Sh  vN $  N7f)r   r   r   r   Tr   r   Nr   r   s       rQ   r   rW    R       	

%  
 
 
 
rU  c                   #    g 7fr`   r@   r   s       rQ   r   AsyncClient.push  rB  r@  c                   #    g 7fr`   r@   r   s       rQ   r   r]    rY  r@  c                x   #    U R                  [        SS[        UUUS9R                  SS9US9I Sh  vN $  N7f)r   r   r   r   Tr   r   Nr   r   s       rQ   r   r]    r[  rU  r   r   r   r   r   r   c                   #    g 7fr`   r@   r   s               rQ   r   AsyncClient.create  s
      r@  c                   #    g 7fr`   r@   r   s               rQ   r   ra    s
      ),r@  c                   #    U R                  [        SS[        UUUUUUUUUU	U
S9R                  SS9US9I Sh  vN $  N7f)r   r   r   r   Tr   r   Nr   r   s               rQ   r   ra    sj     *  	

%#     s   9AA Ar   c                 B  ^#    [        5       n[        TS5       n UR                  S5      nU(       d  OUR                  U5        M,  S S S 5        SUR	                  5        3nU4S jnU R                  SSU 3U" 5       S9I S h  vN   U$ ! , (       d  f       NJ= f N7f)Nr   r   r   c                    >#    [        TS5       n  U R                  S5      nU(       d  OU7v   M   S S S 5        g ! , (       d  f       g = f7f)Nr   r   )r   r   )rs   r  r   s     rQ   upload_bytes-AsyncClient.create_blob.<locals>.upload_bytes*  s>     dq&&#%+	  s   A";	A
A	Ar   r   r   r   )rL   r   r  rs   r  r  rf  s    `     rQ   r  AsyncClient.create_blob  s     I	dD	Qy!
	  
 y**,-.F 

Fk&$:LN

SSSM' 
	" Ts(   B.B=BBB
BBc                 L   #    U R                  [        SS5      I S h  vN $  N7fr  r
  r  s    rQ   r  AsyncClient.list6  s)           $"$c                    #    U R                  SS[        US9R                  SS9S9I S h  vN n[        UR                  S:X  a  SS
9$ S	S
9$  N!7fr  r  r  s      rQ   r  AsyncClient.delete=  sk     

%    	A --3.Y 4; 	s   )AA"Ar  r  c           	         #    U R                  SS[        UUS9R                  SS9S9I S h  vN n[        UR                  S:X  a  SS
9$ S	S
9$  N!7fr  r  r  s       rQ   r   AsyncClient.copyI  sp      	

%    	A --3.Y 4; 	s   *AA"Ac           	      r   #    U R                  [        SS[        US9R                  SS9S9I S h  vN $  N7fr#  r$  r%  s     rQ   r&  AsyncClient.showV  sE     

%     s   .757c                 L   #    U R                  [        SS5      I S h  vN $  N7fr)  r*  r  s    rQ   r+  AsyncClient.ps`  s)        rk  r@   r`   r-  r.  r/  r0  r1  r2  )6rT   rU   rV   rW   r   rX   rR   ru   r   r   r2   r
   r|   r   rY   r   r   r3  r   r4  r   r   r(   r5  r$   r   r'   r1   r   r   r   r"   r   r    r   r*   r   r   r   r	   r   r   r  r&   r  r0   r  r   r/   r&  r)   r+  rZ   r6  r7  s   @rQ   r9  r9  h  s   88C= 8d 8 8@ 
 #		a EN	 	  
 !		a DM	 Q  
 	'	a' 	' Qa  !' ' 	D	aD 	D Qa  !D6  	 '+"DH48;?.2  	   hsm$ EN 
 U7:.?@A XeCJ/01 eGCH-w678 ucz*+  "  	, '+ DH48;?.2,, , 	, , , hsm$, DM, 
, U7:.?@A, XeCJ/01, eGCH-w678, ucz*+, %&, ,&   	, !"'+DH48;?.2,, SM, SM	, SM, sm, hsm$, , 
$, U7:.?@A, XeCJ/01, eGCH-w678, ucz*+, }-=>>?,\  FJ

 KO"DH;?.2

 xgc3h&7&@ ABC

 HU738#4dH#DEFG
 EN
 U7:.?@A
 eGCH-w678
 ucz*+
 
 
  FJ
(
 KO DH;?.2
(
( xgc3h&7&@ ABC
(
 HU738#4dH#DEFG
( DM
( U7:.?@A
( eGCH-w678
( ucz*+
( \"
( 
( FJ;
 KODH;?.2;; xgc3h&7&@ ABC;
 HU738#4dH#DEFG; ; U7:.?@A; eGCH-w678; ucz*+; \=667;~ ')#;?.2 hsm#$ tn	
 eGCH-w678 ucz*+ .  ;?.2 SM eGCH-w678	
 ucz*+ , 
 " 	
 EN   
  ,, 	,
 DM, %&, ,  	
  }-=>>?0 
 " 	
 EN   
  ,, 	,
 DM, %&, ,  	
  }-=>>?0  #&*)-"/3 >BFJ ! sm C=	
 DcN# tCH~& sm eCcN+, SM wsCx0'9:; xgc3h&7&@ ABC DM     #&*)-"/3 >BFJ, !,, sm, C=	,
 DcN#, tCH~&, sm, eCcN+,, SM, wsCx0'9:;, xgc3h&7&@ ABC, DM, %&, ,& #&*)-"/3 >BFJ' '' sm' C=	'
 DcN#' tCH~&' sm' eCcN+,' SM' wsCx0'9:;' xgc3h&7&@ ABC' ' }-=>>?'RE#t)$4  ., 
 
 
s   c l   r[   r9  r   r:   c              #   t   #    U =(       d    /  H%  n[        U[        5      (       a  UO[        US9v   M'     g 7f)N)value)
isinstancer%   )r   r   s     rQ   r   r   h  s.     ||eeU++%U1CC s   68r   c              #   (  #    U =(       d    /  Hs  n[         R                  " [        U5      R                  5        VVVs0 s H1  u  p#U(       d  M  X"S:X  a  [	        U5       Vs/ s H  oDPM     snOU_M3     snnn5      v   Mu     g s  snf s  snnnf 7f)Nr   )r'   model_validatedictrJ   r   )r   r   rO   rP   r   s        rQ   r   r   m  sw     Rg

 
 SWX_S`SfSfShnSh41lmFqx-l1o
.oU5o
.QFShn   
.ns.   <BBB"B-	B6BBBr   c              #      #    U =(       d    /  H6  n[        U5      (       a  [        U5      O[        R                  " U5      v   M8     g 7fr`   )callabler   r1   rx  )r   unprocessed_tools     rQ   r   r   t  s=     +2+8@AQ8R8R
"#3
4X\XkXkl|X}} &s   AA	sc                     [        U [        5      (       d  [        U [        5      (       a%   [        U 5      =nR                  5       (       a  U$  g g ! [         a     g f = fr`   )rv  rX   r   exists	Exception)r}  ps     rQ   _as_pathr  y  s]    3:a..
Aw,!			 	  
! 
  
		
s   !A 
AAr6   c                 2   U =(       d    SSpU R                  S5      u  p#nU(       d  SU pBOUS:X  a  SnOUS:X  a  Sn[        R                  R                  SR	                  X$/5      5      nUR
                  =(       d    Sn UR                  =(       d    Un [        [        R                  " U 5      [        R                  5      (       a  S	U  S
3n UR                  R                  S5      =n(       a  U SU  SU SU 3$ U SU  SU 3$ ! [         a     NEf = f)ap  
>>> _parse_host(None)
'http://127.0.0.1:11434'
>>> _parse_host('')
'http://127.0.0.1:11434'
>>> _parse_host('1.2.3.4')
'http://1.2.3.4:11434'
>>> _parse_host(':56789')
'http://127.0.0.1:56789'
>>> _parse_host('1.2.3.4:56789')
'http://1.2.3.4:56789'
>>> _parse_host('http://1.2.3.4')
'http://1.2.3.4:80'
>>> _parse_host('https://1.2.3.4')
'https://1.2.3.4:443'
>>> _parse_host('https://1.2.3.4:56789')
'https://1.2.3.4:56789'
>>> _parse_host('example.com')
'http://example.com:11434'
>>> _parse_host('example.com:56789')
'http://example.com:56789'
>>> _parse_host('http://example.com')
'http://example.com:80'
>>> _parse_host('https://example.com')
'https://example.com:443'
>>> _parse_host('https://example.com:56789')
'https://example.com:56789'
>>> _parse_host('example.com/')
'http://example.com:11434'
>>> _parse_host('example.com:56789/')
'http://example.com:56789'
>>> _parse_host('example.com/path')
'http://example.com:11434/path'
>>> _parse_host('example.com:56789/path')
'http://example.com:56789/path'
>>> _parse_host('https://example.com:56789/path')
'https://example.com:56789/path'
>>> _parse_host('example.com:56789/path/')
'http://example.com:56789/path'
>>> _parse_host('[0001:002:003:0004::1]')
'http://[0001:002:003:0004::1]:11434'
>>> _parse_host('[0001:002:003:0004::1]:56789')
'http://[0001:002:003:0004::1]:56789'
>>> _parse_host('http://[0001:002:003:0004::1]')
'http://[0001:002:003:0004::1]:80'
>>> _parse_host('https://[0001:002:003:0004::1]')
'https://[0001:002:003:0004::1]:443'
>>> _parse_host('https://[0001:002:003:0004::1]:56789')
'https://[0001:002:003:0004::1]:56789'
>>> _parse_host('[0001:002:003:0004::1]/')
'http://[0001:002:003:0004::1]:11434'
>>> _parse_host('[0001:002:003:0004::1]:56789/')
'http://[0001:002:003:0004::1]:56789'
>>> _parse_host('[0001:002:003:0004::1]/path')
'http://[0001:002:003:0004::1]:11434/path'
>>> _parse_host('[0001:002:003:0004::1]:56789/path')
'http://[0001:002:003:0004::1]:56789/path'
>>> _parse_host('https://[0001:002:003:0004::1]:56789/path')
'https://[0001:002:003:0004::1]:56789/path'
>>> _parse_host('[0001:002:003:0004::1]:56789/path/')
'http://[0001:002:003:0004::1]:56789/path'
r   i,  z://httpP   httpsi  z	127.0.0.1[]/:)	partitionurllibparseurlsplitjoinhostnameportrv  	ipaddress
ip_addressIPv6Address
ValueErrorr   strip)r6   r  scheme_hostportsplitr   s          rQ   rA   rA     s   @ zr5u-&X	tHDD
,,



F+= >
?%		&;$		t$)&&t,i.C.CDDa[d ZZc""T"XSavQtf--83tfAdV	$$ 
 s   9D	 	
DDr`   )Kr  r   rB   rE   sysurllib.parser  hashlibr   r   pathlibr   typingr   r   r   r	   r
   r   r   r   r   r   r   r   pydantic.json_schemar   ollama._utilsr   version_infor   r   collections.abc	importlibr   versionrD   PackageNotFoundErrorrb   ollama._typesr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r4   rp   r]   r9  r   rX   r   r   r  rA   r@   r[   rQ   <module>r     s     	  
        1 2f,,5   *+       6 CL! !H V uZ up}* }@D(5+<"=> D8E? D
XhuWS#X5F5O/P&QR W_`gWh ~xwsCx/@$/P)Q RS ~_ghl_m ~
sH}-. 5t3D W%hsm W% W%{" $$ +s   ;E$ $E98E9