
    OYhfX                       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 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gZ. G d de      Z/ G d de      Z0 G d d      Z1 G d d      Z2 G d d      Z3 G d d      Z4y)    )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)	Assistant)AssistantDeleted)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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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 N)AssistantsWithRawResponseselfs    _/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/openai/resources/beta/assistants.pywith_raw_responsezAssistants.with_raw_response&   s    (..    c                    t        |       S r%   )AssistantsWithStreamingResponser'   s    r)   with_streaming_responsez"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                   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/overview) 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 maxium 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_object" }` enables JSON mode, which guarantees 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
modelr0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   bodyoptionscast_to)_postr   r   AssistantCreateParamsr   r   r(   rC   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   s                  r)   createzAssistants.create.   s    Z 'QM<ORQzz "#.$0 ( '6#.&4"" (== )+Q[el )  
 	
r+   rD   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 r?   r@   /assistants/rD   rG   rH   
ValueError_getr   r   r(   assistant_idr9   r:   r;   r<   s         r)   retrievezAssistants.retrieve   sh    . Z[gZjkll&QM<ORQyy<.)(+Q[el   
 	
r+   r0   r1   r2   rC   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   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. Keys
              can be a maximum of 64 characters long and values can be a maxium 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/overview) 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_object" }` enables JSON mode, which guarantees 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
        rO   r?   r@   rP   
r0   r1   r2   rC   r3   r4   r5   r6   r7   r8   rD   rE   )rS   rI   r   r   AssistantUpdateParamsr   r   r(   rV   r0   r1   r2   rC   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   s                   r)   updatezAssistants.update   s    n Z[gZjkll&QM<ORQzz<.) #.$0 (" '6#.&4"" (== )+Q[el )  
 	
r+   afterbeforelimitorderr9   r:   r;   r<   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,
              ending 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
        r?   r@   rA   )r`   ra   rb   rc   )r9   r:   r;   r<   query)pagerG   rC   )_get_api_listr   r   r   r   r   AssistantListParams	r(   r`   ra   rb   rc   r9   r:   r;   r<   s	            r)   listzAssistants.listF  sy    V 'QM<ORQ!!	*(+'%%!&"(!&!&	 *== % " 
 	
r+   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
        rO   r?   r@   rP   rD   rQ   rS   _deleter   r   rU   s         r)   deletezAssistants.delete  sh    . Z[gZjkll&QM<ORQ||<.)(+Q[el %  
 	
r+   )returnr&   )rq   r-   rC   a  Union[str, Literal['gpt-4o', 'gpt-4o-2024-05-13', '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']]r0   Optional[str] | NotGivenr1   rs   r2   Optional[object] | NotGivenr3   rs   r4   7Optional[AssistantResponseFormatOptionParam] | NotGivenr5   Optional[float] | NotGivenr6   z:Optional[assistant_create_params.ToolResources] | NotGivenr7   'Iterable[AssistantToolParam] | NotGivenr8   rv   r9   Headers | Noner:   Query | Noner;   Body | Noner<   'float | httpx.Timeout | None | NotGivenrq   r   rV   strr9   rx   r:   ry   r;   rz   r<   r{   rq   r    rV   r}   r0   rs   r1   rs   r2   rt   rC   str | NotGivenr3   rs   r4   ru   r5   rv   r6   z:Optional[assistant_update_params.ToolResources] | NotGivenr7   rw   r8   rv   r9   rx   r:   ry   r;   rz   r<   r{   rq   r   )r`   r   ra   r   rb   int | NotGivenrc   !Literal['asc', 'desc'] | NotGivenr9   rx   r:   ry   r;   rz   r<   r{   rq   zSyncCursorPage[Assistant]rV   r}   r9   rx   r:   ry   r;   rz   r<   r{   rq   r   __name__
__module____qualname__r   r*   r.   r
   rL   rW   r^   rk   rp    r+   r)   r!   r!   %   s   / / 5 5> 1:1:09)2S\2;U^9B,5 )-$("&;DUC

C
8 .9C
: /;C
< .=C
> '?C
@ QAC
B 0CC
D SEC
F 7GC
H *IC
N &OC
P "QC
R  SC
T 9UC
V 
WC
V )-$("&;D 
 
 & 
 " 
   
 9 
 
 
L 1:1:09 ))2S\2;U^9B,5 )-$("&;D'o
o
 .	o

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

 ?
 1?
 &?
 "?
  ?
 9?
 
#?
N )-$("&;D 
 
 & 
 " 
   
 9 
 
 
r+   c                     e Zd Zedd       Zedd       Z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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3r+   c                    t        |       S r%   )$AsyncAssistantsWithStreamingResponser'   s    r)   r.   z'AsyncAssistants.with_streaming_response  s    3D99r+   Nr/   c                  K   ddi|xs i }| j                  dt        |||||||||	|
d
t        j                         d{   t	        ||||      t
               d{   S 7 $7 w)r>   r?   r@   rA   rB   NrD   rE   )rI   r   r   rJ   r   r   rK   s                  r)   rL   zAsyncAssistants.create  s     Z 'QM<ORQZZ,"#.$0 ( '6#.&4"" (==  )+Q[el )   
 
 	

s#   ?A*A&
A*!A("A*(A*rD   c          	        K   |st        d|      ddi|xs i }| j                  d| t        ||||      t               d{   S 7 w)rN   rO   r?   r@   rP   rD   rQ   NrR   rU   s         r)   rW   zAsyncAssistants.retrieve8  sv     . Z[gZjkll&QM<ORQYY<.)(+Q[el   
 
 	
 
   AAA	ArX   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)	rZ   rO   r?   r@   rP   r[   NrD   rE   )rS   rI   r   r   r\   r   r   r]   s                   r)   r^   zAsyncAssistants.updateZ  s     n Z[gZjkll&QM<ORQZZ<.),#.$0 (" '6#.&4"" (==  )+Q[el )   
 
 	

s$   AA=A9
A=4A;5A=;A=r_   c                   ddi|xs i }| j                  dt        t           t        ||||t	        ||||dt
        j                              t              S re   )rh   r   r   r   r   r   ri   rj   s	            r)   rk   zAsyncAssistants.list  sy    V 'QM<ORQ!! +(+'%%!&"(!&!&	 *== % " 
 	
r+   c          	        K   |st        d|      ddi|xs i }| j                  d| t        ||||      t               d{   S 7 w)rm   rO   r?   r@   rP   rD   rQ   Nrn   rU   s         r)   rp   zAsyncAssistants.delete  sv     . Z[gZjkll&QM<ORQ\\<.)(+Q[el % " 
 
 	
 
r   )rq   r   )rq   r   rr   r|   r~   )r`   r   ra   r   rb   r   rc   r   r9   rx   r:   ry   r;   rz   r<   r{   rq   z5AsyncPaginator[Assistant, AsyncCursorPage[Assistant]]r   r   r   r+   r)   r"   r"     s   4 4 : :> 1:1:09)2S\2;U^9B,5 )-$("&;DUC

C
8 .9C
: /;C
< .=C
> '?C
@ QAC
B 0CC
D SEC
F 7GC
H *IC
N &OC
P "QC
R  SC
T 9UC
V 
WC
V )-$("&;D 
 
 & 
 " 
   
 9 
 
 
L 1:1:09 ))2S\2;U^9B,5 )-$("&;D'o
o
 .	o

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

 ?
 1?
 &?
 "?
  ?
 9?
 
??
N )-$("&;D 
 
 & 
 " 
   
 9 
 
 
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%   )_assistantsr	   to_raw_response_wrapperrL   rW   r^   rk   rp   r(   
assistantss     r)   __init__z"AssistantsWithRawResponse.__init__0  s    %&>>
 )@@
 '>>
 %<<OO
	 '>>
r+   Nr   r!   rq   Noner   r   r   r   r   r+   r)   r&   r&   /      
r+   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_wrapperrL   rW   r^   rk   rp   r   s     r)   r   z'AsyncAssistantsWithRawResponse.__init__E  s    %&DD
 )FF
 'DD
 %BBOO
	 'DD
r+   Nr   r"   rq   r   r   r   r+   r)   r   r   D  r   r+   r   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   rL   rW   r^   rk   rp   r   s     r)   r   z(AssistantsWithStreamingResponse.__init__Z  sy    %2
 5
 3
 1OO
	 3
r+   Nr   r   r   r+   r)   r-   r-   Y  r   r+   r-   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   rL   rW   r^   rk   rp   r   s     r)   r   z-AsyncAssistantsWithStreamingResponse.__init__o  sy    %8
 ;
 9
 7OO
	 9
r+   Nr   r   r   r+   r)   r   r   n  r   r+   r   )5
__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.beta.assistantr   types.beta.assistant_deletedr   types.beta.assistant_tool_paramr   1types.beta.assistant_response_format_option_paramr    __all__r!   r"   r&   r   r-   r   r   r+   r)   <module>r      s    # , , %    ? ? ' : Y 9 
 . < A c*
+B
 B
JB
& B
J
 
*
 
*
 
*
 
r+   