
    .hI                       d dl mZ d dlmZmZmZ d dlmZ d dlZddl	m
Z
 ddlmZmZmZmZmZmZmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlmZm Z  ddl!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddgZ6 G d de      Z7 G d de      Z8 G d d      Z9 G d d      Z: G d d      Z; G d  d!      Z<y)"    )annotations)UnionIterableOptional)LiteralN   )_legacy_response)BodyOmitQueryHeadersNotGivenomit	not_given)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)	Assistant)	ChatModel)AssistantDeleted)Metadata)ReasoningEffort)AssistantToolParam)"AssistantResponseFormatOptionParam
AssistantsAsyncAssistantsc                     e Zd Zedd       Zedd       Zeeeeeeeeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZ	eeeeeeeeeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z
eeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZy)r&   c                    t        |       S a  
        This property can be used as a prefix for any HTTP method call to return
        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    a/var/www/html/axiom-chatbot/venv/lib/python3.12/site-packages/openai/resources/beta/assistants.pywith_raw_responsezAssistants.with_raw_response#   s     )..    c                    t        |       S 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_responsez"Assistants.with_streaming_response-   s     /t44r0   Ndescriptioninstructionsmetadatanamereasoning_effortresponse_formattemperaturetool_resourcestoolstop_pextra_headersextra_query
extra_bodytimeoutc                   ddi|xs i }| j                  dt        |||||||||	|
|dt        j                        t	        ||||      t
              S )  
        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, and
              querying for objects via API or the dashboard.

              Keys are strings with a maximum length of 64 characters. Values are strings with
              a maximum length of 512 characters.

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

          reasoning_effort: Constrains effort on reasoning for
              [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
              supported values are `minimal`, `low`, `medium`, and `high`. Reducing reasoning
              effort can result in faster responses and fewer tokens used on reasoning in a
              response.

          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modelr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   bodyoptionscast_to)_postr   r   AssistantCreateParamsr   r   r-   rJ   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   s                   r.   createzAssistants.create6   s    F 'QM<ORQzz "#.$0 ( (8'6#.&4"" (==  )+Q[el +  
 	
r0   rK   c          	         |st        d|      ddi|xs i }| j                  d| t        ||||      t              S )K  
        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 rF   rG   /assistants/rK   rN   rO   
ValueError_getr   r   r-   assistant_idr@   rA   rB   rC   s         r.   retrievezAssistants.retrieve   sh    . Z[gZjkll&QM<ORQyy<.)(+Q[el   
 	
r0   r6   r7   r8   rJ   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   c                   |st        d|      ddi|xs i }| j                  d| t        ||||||||	|
||dt        j                        t        ||||      t              S )  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, and
              querying for objects via API or the dashboard.

              Keys are strings with a maximum length of 64 characters. Values are strings with
              a maximum length of 512 characters.

          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.

          reasoning_effort: Constrains effort on reasoning for
              [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
              supported values are `minimal`, `low`, `medium`, and `high`. Reducing reasoning
              effort can result in faster responses and fewer tokens used on reasoning in a
              response.

          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
        rV   rF   rG   rW   r6   r7   r8   rJ   r9   r:   r;   r<   r=   r>   r?   rK   rL   )rZ   rP   r   r   AssistantUpdateParamsr   r   r-   r]   r6   r7   r8   rJ   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   s                    r.   updatezAssistants.update   s    h Z[gZjkll&QM<ORQzz<.) #.$0 (" (8'6#.&4"" (==  )+Q[el +  
 	
r0   afterbeforelimitorderr@   rA   rB   rC   c                   ddi|xs i }| j                  dt        t           t        ||||t	        ||||dt
        j                              t              S a  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
        rF   rG   rH   )rg   rh   ri   rj   )r@   rA   rB   rC   query)pagerN   rJ   )_get_api_listr   r   r   r   r   AssistantListParams	r-   rg   rh   ri   rj   r@   rA   rB   rC   s	            r.   listzAssistants.list  sy    V 'QM<ORQ!!	*(+'%%!&"(!&!&	 *== % " 
 	
r0   c          	         |st        d|      ddi|xs i }| j                  d| t        ||||      t              S )H  
        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
        rV   rF   rG   rW   rK   rX   rZ   _deleter   r!   r\   s         r.   deletezAssistants.delete  sh    . Z[gZjkll&QM<ORQ||<.)(+Q[el %  
 	
r0   )returnr+   )rx   r3    rJ   zUnion[str, ChatModel]r6   Optional[str] | Omitr7   rz   r8   Optional[Metadata] | Omitr9   rz   r:    Optional[ReasoningEffort] | Omitr;   3Optional[AssistantResponseFormatOptionParam] | Omitr<   Optional[float] | Omitr=   z6Optional[assistant_create_params.ToolResources] | Omitr>   #Iterable[AssistantToolParam] | Omitr?   r~   r@   Headers | NonerA   Query | NonerB   Body | NonerC   'float | httpx.Timeout | None | NotGivenrx   r   r]   strr@   r   rA   r   rB   r   rC   r   rx   r   "r]   r   r6   rz   r7   rz   r8   r{   rJ   a3  Union[str, Literal['gpt-5', 'gpt-5-mini', 'gpt-5-nano', 'gpt-5-2025-08-07', 'gpt-5-mini-2025-08-07', 'gpt-5-nano-2025-08-07', 'gpt-4.1', 'gpt-4.1-mini', 'gpt-4.1-nano', 'gpt-4.1-2025-04-14', 'gpt-4.1-mini-2025-04-14', 'gpt-4.1-nano-2025-04-14', 'o3-mini', 'o3-mini-2025-01-31', 'o1', 'o1-2024-12-17', 'gpt-4o', 'gpt-4o-2024-11-20', 'gpt-4o-2024-08-06', 'gpt-4o-2024-05-13', 'gpt-4o-mini', 'gpt-4o-mini-2024-07-18', 'gpt-4.5-preview', 'gpt-4.5-preview-2025-02-27', 'gpt-4-turbo', 'gpt-4-turbo-2024-04-09', 'gpt-4-0125-preview', 'gpt-4-turbo-preview', 'gpt-4-1106-preview', 'gpt-4-vision-preview', 'gpt-4', 'gpt-4-0314', 'gpt-4-0613', 'gpt-4-32k', 'gpt-4-32k-0314', 'gpt-4-32k-0613', 'gpt-3.5-turbo', 'gpt-3.5-turbo-16k', 'gpt-3.5-turbo-0613', 'gpt-3.5-turbo-1106', 'gpt-3.5-turbo-0125', 'gpt-3.5-turbo-16k-0613']] | Omitr9   rz   r:   r|   r;   r}   r<   r~   r=   z6Optional[assistant_update_params.ToolResources] | Omitr>   r   r?   r~   r@   r   rA   r   rB   r   rC   r   rx   r   )rg   
str | Omitrh   r   ri   
int | Omitrj   Literal['asc', 'desc'] | Omitr@   r   rA   r   rB   r   rC   r   rx   zSyncCursorPage[Assistant]r]   r   r@   r   rA   r   rB   r   rC   r   rx   r!   __name__
__module____qualname__r   r/   r4   r   r   rS   r^   re   rr   rw    r0   r.   r&   r&   "   s5   / / 5 5 -1-1.2%)=AOS.2QU59(, )-$("&;D'z
 %z
 *	z

 +z
 ,z
 #z
 ;z
 Mz
 ,z
 Oz
 3z
 &z
  &!z
" "#z
$  %z
& 9'z
( 
)z
D )-$("&;D 
 
 & 
 " 
   
 9 
 
 
L -1-1.2` %)=AOS.2QU59(, )-$("&;DGm
m
 *	m

 +m
 ,m
/m
n #om
p ;qm
r Msm
t ,um
v Owm
x 3ym
z &{m
@ &Am
B "Cm
D  Em
F 9Gm
H 
Im
d !! /3 )-$("&;D?
 ?
 	?

 ?
 -?
 &?
 "?
  ?
 9?
 
#?
N )-$("&;D 
 
 & 
 " 
   
 9 
 
 
r0   c                     e Zd Zedd       Zedd       Zeeeeeeeeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZ	eeeeeeeeeeeddded	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	Z
eeeeddded
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddded	 	 	 	 	 	 	 	 	 	 	 ddZy)r'   c                    t        |       S r*   )AsyncAssistantsWithRawResponser,   s    r.   r/   z!AsyncAssistants.with_raw_response  s     .d33r0   c                    t        |       S r2   )$AsyncAssistantsWithStreamingResponser,   s    r.   r4   z'AsyncAssistants.with_streaming_response  s     4D99r0   Nr5   c                  K   ddi|xs i }| j                  dt        |||||||||	|
|dt        j                         d{   t	        ||||      t
               d{   S 7 $7 w)rE   rF   rG   rH   rI   NrK   rL   )rP   r   r   rQ   r   r   rR   s                   r.   rS   zAsyncAssistants.create  s     F 'QM<ORQZZ,"#.$0 ( (8'6#.&4"" (==   )+Q[el +   
 
 	

s$   A A+A'
A+"A)#A+)A+rK   c          	        K   |st        d|      ddi|xs i }| j                  d| t        ||||      t               d{   S 7 w)rU   rV   rF   rG   rW   rK   rX   NrY   r\   s         r.   r^   zAsyncAssistants.retrievew  sv     . Z[gZjkll&QM<ORQYY<.)(+Q[el   
 
 	
 
   AAA	Ar_   c                  K   |st        d|      ddi|xs i }| j                  d| t        ||||||||	|
||dt        j                         d{   t        ||||      t               d{   S 7 $7 w)	ra   rV   rF   rG   rW   rb   NrK   rL   )rZ   rP   r   r   rc   r   r   rd   s                    r.   re   zAsyncAssistants.update  s     h Z[gZjkll&QM<ORQZZ<.),#.$0 (" (8'6#.&4"" (==   )+Q[el +   
 
 	

s$   AA>A:
A>5A<6A><A>rf   c                   ddi|xs i }| j                  dt        t           t        ||||t	        ||||dt
        j                              t              S rl   )ro   r   r   r   r   r   rp   rq   s	            r.   rr   zAsyncAssistants.listH  sy    V 'QM<ORQ!! +(+'%%!&"(!&!&	 *== % " 
 	
r0   c          	        K   |st        d|      ddi|xs i }| j                  d| t        ||||      t               d{   S 7 w)rt   rV   rF   rG   rW   rK   rX   Nru   r\   s         r.   rw   zAsyncAssistants.delete  sv     . Z[gZjkll&QM<ORQ\\<.)(+Q[el % " 
 
 	
 
r   )rx   r   )rx   r   ry   r   r   )rg   r   rh   r   ri   r   rj   r   r@   r   rA   r   rB   r   rC   r   rx   z5AsyncPaginator[Assistant, AsyncCursorPage[Assistant]]r   r   r   r0   r.   r'   r'     s5   4 4 : : -1-1.2%)=AOS.2QU59(, )-$("&;D'z
 %z
 *	z

 +z
 ,z
 #z
 ;z
 Mz
 ,z
 Oz
 3z
 &z
  &!z
" "#z
$  %z
& 9'z
( 
)z
D )-$("&;D 
 
 & 
 " 
   
 9 
 
 
L -1-1.2` %)=AOS.2QU59(, )-$("&;DGm
m
 *	m

 +m
 ,m
/m
n #om
p ;qm
r Msm
t ,um
v Owm
x 3ym
z &{m
@ &Am
B "Cm
D  Em
F 9Gm
H 
Im
d !! /3 )-$("&;D?
 ?
 	?

 ?
 -?
 &?
 "?
  ?
 9?
 
??
N )-$("&;D 
 
 & 
 " 
   
 9 
 
 
r0   c                      e Zd ZddZy)r+   c                z   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y N)_assistantsr	   to_raw_response_wrapperrS   r^   re   rr   rw   r-   
assistantss     r.   __init__z"AssistantsWithRawResponse.__init__  s    %&>>
 )@@
 '>>
 %<<OO
	 '>>
r0   Nr   r&   rx   Noner   r   r   r   r   r0   r.   r+   r+         
r0   r+   c                      e Zd ZddZy)r   c                z   || _         t        j                  |j                        | _        t        j                  |j                        | _        t        j                  |j
                        | _        t        j                  |j                        | _        t        j                  |j                        | _        y r   )r   r	   async_to_raw_response_wrapperrS   r^   re   rr   rw   r   s     r.   r   z'AsyncAssistantsWithRawResponse.__init__  s    %&DD
 )FF
 'DD
 %BBOO
	 'DD
r0   Nr   r'   rx   r   r   r   r0   r.   r   r     r   r0   r   c                      e Zd ZddZy)r3   c                   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r   )r   r   rS   r^   re   rr   rw   r   s     r.   r   z(AssistantsWithStreamingResponse.__init__  sy    %2
 5
 3
 1OO
	 3
r0   Nr   r   r   r0   r.   r3   r3     r   r0   r3   c                      e Zd ZddZy)r   c                   || _         t        |j                        | _        t        |j                        | _        t        |j                        | _        t        |j
                        | _        t        |j                        | _        y r   )r   r   rS   r^   re   rr   rw   r   s     r.   r   z-AsyncAssistantsWithStreamingResponse.__init__  sy    %8
 ;
 9
 7OO
	 9
r0   Nr   r   r   r0   r.   r   r     r   r0   r   )=
__future__r   typingr   r   r   typing_extensionsr   httpx r	   _typesr
   r   r   r   r   r   r   _utilsr   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   
types.betar   r   r   _base_clientr   r   types.beta.assistantr   types.shared.chat_modelr    types.beta.assistant_deletedr!   types.shared_params.metadatar"   types.shared.reasoning_effortr#   types.beta.assistant_tool_paramr$   1types.beta.assistant_response_format_option_paramr%   __all__r&   r'   r+   r   r3   r   r   r0   r.   <module>r      s    # , , %    K K K < & : Y 9 
 A - 0 < 4 < A c*
+B
 B
JB
& B
J
 
*
 
*
 
*
 
r0   