
    хiU                       S SK Jr  S SKJrJrJr  S SKJr  S SKrSSK	J
r
  SSKJrJrJrJrJr  SSKJrJr  SS	KJr  SS
KJrJr  SSKJrJr  SSKJrJr  SSKJ r J!r!J"r"  SSK#J$r$J%r%  SSK&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/  SS/r0 " S S\5      r1 " S S\5      r2 " S S5      r3 " S S5      r4 " S S5      r5 " S S5      r6g)     )annotations)UnionIterableOptional)LiteralN   )_legacy_response)	NOT_GIVENBodyQueryHeadersNotGiven)maybe_transformasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncCursorPageAsyncCursorPage)assistant_list_paramsassistant_create_paramsassistant_update_params)AsyncPaginatormake_request_options)	ChatModel)	Assistant)AssistantDeleted)AssistantToolParam)"AssistantResponseFormatOptionParam
AssistantsAsyncAssistantsc                     \ rS rSr\SS j5       r\SS j5       r\\\\\\\\\SSS\S.                             SS jjrSSS\S.           SS jjr	\\\\\\\\\\SSS\S	.                               SS
 jjr
\\\\SSS\S.                 SS jjrSSS\S.           SS jjrSrg)r"   #   c                    [        U 5      $ z
This property can be used as a prefix for any HTTP method call to return the
the raw response object instead of the parsed content.

For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
)AssistantsWithRawResponseselfs    Z/home/james-whalen/.local/lib/python3.13/site-packages/openai/resources/beta/assistants.pywith_raw_responseAssistants.with_raw_response$   s     )..    c                    [        U 5      $ z
An alternative to `.with_raw_response` that doesn't eagerly read the response body.

For more information, see https://www.github.com/openai/openai-python#with_streaming_response
)AssistantsWithStreamingResponser)   s    r+   with_streaming_response"Assistants.with_streaming_response.   s     /t44r.   Ndescriptioninstructionsmetadatanameresponse_formattemperaturetool_resourcestoolstop_pextra_headersextra_query
extra_bodytimeoutc                   SS0U=(       d    0 EnU R                  S[        UUUUUUUUU	U
S.
[        R                  5      [	        XXS9[
        S9$ )J  
Create an assistant with a model and instructions.

Args:
  model: ID of the model to use. You can use the
      [List models](https://platform.openai.com/docs/api-reference/models/list) API to
      see all of your available models, or see our
      [Model overview](https://platform.openai.com/docs/models) for descriptions of
      them.

  description: The description of the assistant. The maximum length is 512 characters.

  instructions: The system instructions that the assistant uses. The maximum length is 256,000
      characters.

  metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful
      for storing additional information about the object in a structured format. Keys
      can be a maximum of 64 characters long and values can be a maximum of 512
      characters long.

  name: The name of the assistant. The maximum length is 256 characters.

  response_format: Specifies the format that the model must output. Compatible with
      [GPT-4o](https://platform.openai.com/docs/models#gpt-4o),
      [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4),
      and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.

      Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured
      Outputs which ensures the model will match your supplied JSON schema. Learn more
      in the
      [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).

      Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the
      message the model generates is valid JSON.

      **Important:** when using JSON mode, you **must** also instruct the model to
      produce JSON yourself via a system or user message. Without this, the model may
      generate an unending stream of whitespace until the generation reaches the token
      limit, resulting in a long-running and seemingly "stuck" request. Also note that
      the message content may be partially cut off if `finish_reason="length"`, which
      indicates the generation exceeded `max_tokens` or the conversation exceeded the
      max context length.

  temperature: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
      make the output more random, while lower values like 0.2 will make it more
      focused and deterministic.

  tool_resources: A set of resources that are used by the assistant's tools. The resources are
      specific to the type of tool. For example, the `code_interpreter` tool requires
      a list of file IDs, while the `file_search` tool requires a list of vector store
      IDs.

  tools: A list of tool enabled on the assistant. There can be a maximum of 128 tools per
      assistant. Tools can be of types `code_interpreter`, `file_search`, or
      `function`.

  top_p: An alternative to sampling with temperature, called nucleus sampling, where the
      model considers the results of the tokens with top_p probability mass. So 0.1
      means only the tokens comprising the top 10% probability mass are considered.

      We generally recommend altering this or temperature but not both.

  extra_headers: Send extra headers

  extra_query: Add additional query parameters to the request

  extra_body: Add additional JSON properties to the request

  timeout: Override the client-level default timeout for this request, in seconds
OpenAI-Betaassistants=v2/assistants
modelr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   bodyoptionscast_to)_postr   r   AssistantCreateParamsr   r   r*   rH   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   s                  r+   createAssistants.create7   s}    t 'QM<ORQzz "#.$0 ( '6#.&4"" (== )+Q[ )  
 	
r.   rI   c          
         U(       d  [        SU< 35      eSS0U=(       d    0 EnU R                  SU 3[        X#XES9[        S9$ )  
Retrieves an assistant.

Args:
  extra_headers: Send extra headers

  extra_query: Add additional query parameters to the request

  extra_body: Add additional JSON properties to the request

  timeout: Override the client-level default timeout for this request, in seconds
;Expected a non-empty value for `assistant_id` but received rD   rE   /assistants/rI   rL   rM   
ValueError_getr   r   r*   assistant_idr>   r?   r@   rA   s         r+   retrieveAssistants.retrieve   sc    . Z[gZjkll&QM<ORQyy<.)(+Q[   
 	
r.   r5   r6   r7   rH   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   c                   U(       d  [        SU< 35      eSS0U=(       d    0 EnU R                  SU 3[        UUUUUUUU	U
US.
[        R                  5      [        XXS9[        S9$ ).  Modifies an assistant.

Args:
  description: The description of the assistant.

The maximum length is 512 characters.

  instructions: The system instructions that the assistant uses. The maximum length is 256,000
      characters.

  metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful
      for storing additional information about the object in a structured format. Keys
      can be a maximum of 64 characters long and values can be a maximum of 512
      characters long.

  model: ID of the model to use. You can use the
      [List models](https://platform.openai.com/docs/api-reference/models/list) API to
      see all of your available models, or see our
      [Model overview](https://platform.openai.com/docs/models) for descriptions of
      them.

  name: The name of the assistant. The maximum length is 256 characters.

  response_format: Specifies the format that the model must output. Compatible with
      [GPT-4o](https://platform.openai.com/docs/models#gpt-4o),
      [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4),
      and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.

      Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured
      Outputs which ensures the model will match your supplied JSON schema. Learn more
      in the
      [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).

      Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the
      message the model generates is valid JSON.

      **Important:** when using JSON mode, you **must** also instruct the model to
      produce JSON yourself via a system or user message. Without this, the model may
      generate an unending stream of whitespace until the generation reaches the token
      limit, resulting in a long-running and seemingly "stuck" request. Also note that
      the message content may be partially cut off if `finish_reason="length"`, which
      indicates the generation exceeded `max_tokens` or the conversation exceeded the
      max context length.

  temperature: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
      make the output more random, while lower values like 0.2 will make it more
      focused and deterministic.

  tool_resources: A set of resources that are used by the assistant's tools. The resources are
      specific to the type of tool. For example, the `code_interpreter` tool requires
      a list of file IDs, while the `file_search` tool requires a list of vector store
      IDs.

  tools: A list of tool enabled on the assistant. There can be a maximum of 128 tools per
      assistant. Tools can be of types `code_interpreter`, `file_search`, or
      `function`.

  top_p: An alternative to sampling with temperature, called nucleus sampling, where the
      model considers the results of the tokens with top_p probability mass. So 0.1
      means only the tokens comprising the top 10% probability mass are considered.

      We generally recommend altering this or temperature but not both.

  extra_headers: Send extra headers

  extra_query: Add additional query parameters to the request

  extra_body: Add additional JSON properties to the request

  timeout: Override the client-level default timeout for this request, in seconds
rU   rD   rE   rV   
r5   r6   r7   rH   r8   r9   r:   r;   r<   r=   rI   rJ   )rY   rN   r   r   AssistantUpdateParamsr   r   r*   r\   r5   r6   r7   rH   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   s                   r+   updateAssistants.update   s    x Z[gZjkll&QM<ORQzz<.) #.$0 (" '6#.&4"" (== )+Q[ )  
 	
r.   afterbeforelimitorderr>   r?   r@   rA   c                   SS0U=(       d    0 EnU R                  S[        [           [        UUUU[	        UUUUS.[
        R                  5      S9[        S9$ ay  Returns a list of assistants.

Args:
  after: A cursor for use in pagination.

`after` is an object ID that defines your place
      in the list. For instance, if you make a list request and receive 100 objects,
      ending with obj_foo, your subsequent call can include after=obj_foo in order to
      fetch the next page of the list.

  before: A cursor for use in pagination. `before` is an object ID that defines your place
      in the list. For instance, if you make a list request and receive 100 objects,
      starting with obj_foo, your subsequent call can include before=obj_foo in order
      to fetch the previous page of the list.

  limit: A limit on the number of objects to be returned. Limit can range between 1 and
      100, and the default is 20.

  order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending
      order and `desc` for descending order.

  extra_headers: Send extra headers

  extra_query: Add additional query parameters to the request

  extra_body: Add additional JSON properties to the request

  timeout: Override the client-level default timeout for this request, in seconds
rD   rE   rF   )rh   ri   rj   rk   )r>   r?   r@   rA   query)pagerL   rH   )_get_api_listr   r   r   r   r   AssistantListParams	r*   rh   ri   rj   rk   r>   r?   r@   rA   s	            r+   listAssistants.listA  sy    V 'QM<ORQ!!	*(+'%%!&"(!&!&	 *== % " 
 	
r.   c          
         U(       d  [        SU< 35      eSS0U=(       d    0 EnU R                  SU 3[        X#XES9[        S9$ )  
Delete an assistant.

Args:
  extra_headers: Send extra headers

  extra_query: Add additional query parameters to the request

  extra_body: Add additional JSON properties to the request

  timeout: Override the client-level default timeout for this request, in seconds
rU   rD   rE   rV   rI   rW   rY   _deleter   r   r[   s         r+   deleteAssistants.delete  sc    . Z[gZjkll&QM<ORQ||<.)(+Q[ %  
 	
r.    )returnr(   )r|   r1   rH   zUnion[str, ChatModel]r5   Optional[str] | NotGivenr6   r~   r7   Optional[object] | NotGivenr8   r~   r9   7Optional[AssistantResponseFormatOptionParam] | NotGivenr:   Optional[float] | NotGivenr;   z:Optional[assistant_create_params.ToolResources] | NotGivenr<   'Iterable[AssistantToolParam] | NotGivenr=   r   r>   Headers | Noner?   Query | Noner@   Body | NonerA   'float | httpx.Timeout | None | NotGivenr|   r   r\   strr>   r   r?   r   r@   r   rA   r   r|   r    r\   r   r5   r~   r6   r~   r7   r   rH   str | NotGivenr8   r~   r9   r   r:   r   r;   z:Optional[assistant_update_params.ToolResources] | NotGivenr<   r   r=   r   r>   r   r?   r   r@   r   rA   r   r|   r   )rh   r   ri   r   rj   int | NotGivenrk   !Literal['asc', 'desc'] | NotGivenr>   r   r?   r   r@   r   rA   r   r|   zSyncCursorPage[Assistant]r\   r   r>   r   r?   r   r@   r   rA   r   r|   r   __name__
__module____qualname____firstlineno__r   r,   r2   r
   rQ   r]   re   rs   ry   __static_attributes__r{   r.   r+   r"   r"   #   s   / / 5 5 1:1:09)2S\2;U^9B,5 )-$("&;D%p
 %p
 .	p

 /p
 .p
 'p
 Qp
 0p
 Sp
 7p
 *p
 &p
  "!p
"  #p
$ 9%p
& 
'p
p )-$("&;D 
 
 & 
 " 
   
 9 
 
 
L 1:1:09 ))2S\2;U^9B,5 )-$("&;D't
t
 .	t

 /t
 .t
 t
 't
 Qt
 0t
 St
 7t
 *t
  &!t
" "#t
$  %t
& 9't
( 
)t
r !*!* )3< )-$("&;D?
 ?
 	?

 ?
 1?
 &?
 "?
  ?
 9?
 
#?
N )-$("&;D 
 
 & 
 " 
   
 9 
 
 
  
r.   c                     \ rS rSr\SS j5       r\SS j5       r\\\\\\\\\SSS\S.                             SS jjrSSS\S.           SS jjr	\\\\\\\\\\SSS\S	.                               SS
 jjr
\\\\SSS\S.                 SS jjrSSS\S.           SS jjrSrg)r#   i  c                    [        U 5      $ r'   )AsyncAssistantsWithRawResponser)   s    r+   r,   !AsyncAssistants.with_raw_response  s     .d33r.   c                    [        U 5      $ r0   )$AsyncAssistantsWithStreamingResponser)   s    r+   r2   'AsyncAssistants.with_streaming_response  s     4D99r.   Nr4   c                  #    SS0U=(       d    0 EnU R                  S[        UUUUUUUUU	U
S.
[        R                  5      I Sh  vN [	        XXS9[
        S9I Sh  vN $  N N7f)rC   rD   rE   rF   rG   NrI   rJ   )rN   r   r   rO   r   r   rP   s                  r+   rQ   AsyncAssistants.create  s     t 'QM<ORQZZ,"#.$0 ( '6#.&4"" (==  )+Q[ )   
 
 	

s$   AA'A#
A'A%A'%A'rI   c          
        #    U(       d  [        SU< 35      eSS0U=(       d    0 EnU R                  SU 3[        X#XES9[        S9I Sh  vN $  N7f)rT   rU   rD   rE   rV   rI   rW   NrX   r[   s         r+   r]   AsyncAssistants.retrieve+  sp     . Z[gZjkll&QM<ORQYY<.)(+Q[   
 
 	
 
   A	AAAr_   c                 #    U(       d  [        SU< 35      eSS0U=(       d    0 EnU R                  SU 3[        UUUUUUUU	U
US.
[        R                  5      I Sh  vN [        XXS9[        S9I Sh  vN $  N N7f)	ra   rU   rD   rE   rV   rb   NrI   rJ   )rY   rN   r   r   rc   r   r   rd   s                   r+   re   AsyncAssistants.updateM  s     x Z[gZjkll&QM<ORQZZ<.),#.$0 (" '6#.&4"" (==  )+Q[ )   
 
 	

s$   AB A<
 B 7A>8B >B rg   c                   SS0U=(       d    0 EnU R                  S[        [           [        UUUU[	        UUUUS.[
        R                  5      S9[        S9$ rm   )rp   r   r   r   r   r   rq   rr   s	            r+   rs   AsyncAssistants.list  sy    V 'QM<ORQ!! +(+'%%!&"(!&!&	 *== % " 
 	
r.   c          
        #    U(       d  [        SU< 35      eSS0U=(       d    0 EnU R                  SU 3[        X#XES9[        S9I Sh  vN $  N7f)rv   rU   rD   rE   rV   rI   rW   Nrw   r[   s         r+   ry   AsyncAssistants.delete  sp     . Z[gZjkll&QM<ORQ\\<.)(+Q[ % " 
 
 	
 
r   r{   )r|   r   )r|   r   r}   r   r   )rh   r   ri   r   rj   r   rk   r   r>   r   r?   r   r@   r   rA   r   r|   z5AsyncPaginator[Assistant, AsyncCursorPage[Assistant]]r   r   r{   r.   r+   r#   r#     s   4 4 : : 1:1:09)2S\2;U^9B,5 )-$("&;D%p
 %p
 .	p

 /p
 .p
 'p
 Qp
 0p
 Sp
 7p
 *p
 &p
  "!p
"  #p
$ 9%p
& 
'p
p )-$("&;D 
 
 & 
 " 
   
 9 
 
 
L 1:1:09 ))2S\2;U^9B,5 )-$("&;D't
t
 .	t

 /t
 .t
 t
 't
 Qt
 0t
 St
 7t
 *t
  &!t
" "#t
$  %t
& 9't
( 
)t
r !*!* )3< )-$("&;D?
 ?
 	?

 ?
 1?
 &?
 "?
  ?
 9?
 
??
N )-$("&;D 
 
 & 
 " 
   
 9 
 
 
  
r.   c                      \ rS rSrSS jrSrg)r(   i'  c                   Xl         [        R                  " UR                  5      U l        [        R                  " UR                  5      U l        [        R                  " UR
                  5      U l        [        R                  " UR                  5      U l        [        R                  " UR                  5      U l        g N)_assistantsr	   to_raw_response_wrapperrQ   r]   re   rs   ry   r*   
assistantss     r+   __init__"AssistantsWithRawResponse.__init__(  s    %&>>
 )@@
 '>>
 %<<OO
	 '>>
r.   r   rQ   ry   rs   r]   re   Nr   r"   r|   Noner   r   r   r   r   r   r{   r.   r+   r(   r(   '      
r.   r(   c                      \ rS rSrSS jrSrg)r   i<  c                   Xl         [        R                  " UR                  5      U l        [        R                  " UR                  5      U l        [        R                  " UR
                  5      U l        [        R                  " UR                  5      U l        [        R                  " UR                  5      U l        g r   )r   r	   async_to_raw_response_wrapperrQ   r]   re   rs   ry   r   s     r+   r   'AsyncAssistantsWithRawResponse.__init__=  s    %&DD
 )FF
 'DD
 %BBOO
	 'DD
r.   r   Nr   r#   r|   r   r   r{   r.   r+   r   r   <  r   r.   r   c                      \ rS rSrSS jrSrg)r1   iQ  c                   Xl         [        UR                  5      U l        [        UR                  5      U l        [        UR                  5      U l        [        UR
                  5      U l        [        UR                  5      U l        g r   )r   r   rQ   r]   re   rs   ry   r   s     r+   r   (AssistantsWithStreamingResponse.__init__R  sw    %2
 5
 3
 1OO
	 3
r.   r   Nr   r   r{   r.   r+   r1   r1   Q  r   r.   r1   c                      \ rS rSrSS jrSrg)r   if  c                   Xl         [        UR                  5      U l        [        UR                  5      U l        [        UR                  5      U l        [        UR
                  5      U l        [        UR                  5      U l        g r   )r   r   rQ   r]   re   rs   ry   r   s     r+   r   -AsyncAssistantsWithStreamingResponse.__init__g  sw    %8
 ;
 9
 7OO
	 9
r.   r   Nr   r   r{   r.   r+   r   r   f  r   r.   r   )7
__future__r   typingr   r   r   typing_extensionsr   httpx r	   _typesr
   r   r   r   r   _utilsr   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   
types.betar   r   r   _base_clientr   r   types.chat_modelr   types.beta.assistantr   types.beta.assistant_deletedr   types.beta.assistant_tool_paramr    1types.beta.assistant_response_format_option_paramr!   __all__r"   r#   r(   r   r1   r   r{   r.   r+   <module>r      s    # , , %    ? ? ' : Y 9 
 A ) - < A c*
+
 
D
& 
D
 
*
 
*
 
*
 
r.   