
    6i#                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddZ	 	 	 	 	 	 dd	Z	 	 	 	 	 	 dd
Z	 	 	 	 	 	 ddZej                  eedej                   eediZy)zFireworks-specific utilities.

This module contains utilities specific to the Fireworks provider,
including reask functions, response handlers, and message formatting.
    )annotations)Any   )Modegenerate_openai_schema)dump_messagec           	     T   | j                         } t        |j                  d   j                        g}|j                  d   j                  j                  D ]:  }|j                  d|j                  |j                  j                  d| dd       < | d   j                  |       | S )z
    Handle reask for Fireworks tools mode when validation fails.

    Kwargs modifications:
    - Adds: "messages" (tool response messages indicating validation errors)
    r   toolzValidation Error found:
z.
Recall the function correctly, fix the errors)roletool_call_idnamecontentmessages)
copyr	   choicesmessage
tool_callsappendidfunctionr   extend)kwargsresponse	exception
reask_msgs	tool_calls        o/root/.openclaw/workspace/visionaryfx/venv/lib/python3.12/site-packages/instructor/providers/fireworks/utils.pyreask_fireworks_toolsr      s     [[]Fx//2::;<J%%a(00;; 

	 )!**///	{:ij		


 :j)M    c                    | j                         } t        |j                  d   j                        g}|j	                  dd| d       | d   j                  |       | S )z
    Handle reask for Fireworks JSON mode when validation fails.

    Kwargs modifications:
    - Adds: "messages" (user message requesting JSON correction)
    r   userz@Correct your JSON ONLY RESPONSE, based on the following errors:
)r   r   r   )r   r	   r   r   r   r   )r   r   r   r   s       r   reask_fireworks_jsonr#   (   si     [[]Fx//2::;<JZ[dZef	
 :j)Mr    c                l    d|vrd|d<   dt        |       dg|d<   ddt        |       d   id|d<   | |fS )z
    Handle Fireworks tools mode.

    Kwargs modifications:
    - Adds: "tools" (list with function schema)
    - Adds: "tool_choice" (forced function call)
    - Sets default: stream=False
    streamFr   )typer   toolsr   tool_choicer   response_model
new_kwargss     r   handle_fireworks_toolsr,   ?   se     z!$
8 .~>	
Jw 3NCFKL!J} :%%r    c                H    d|vrd|d<   d| j                         d|d<   | |fS )z
    Handle Fireworks JSON mode.

    Kwargs modifications:
    - Adds: "response_format" with json_schema
    - Sets default: stream=False
    r%   Fjson_object)r&   schemaresponse_format)model_json_schemar)   s     r   handle_fireworks_jsonr2   Y   sA     z!$
8  224%J ! :%%r    )reaskr   N)r   dict[str, Any]r   r   r   	Exception)r*   z	type[Any]r+   r4   returnz tuple[type[Any], dict[str, Any]])__doc__
__future__r   typingr   moder   processing.schemar   
utils.corer	   r   r#   r,   r2   FIREWORKS_TOOLSFIREWORKS_JSONFIREWORKS_HANDLERS r    r   <module>rA      s    #   7 &0 .&&+9&%&4&&+9&%&, 	&* 	%)	 r    