�
���gM) � � � d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm Z m
Z
d dlmZm
Z
mZmZmZmZmZmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZ d d lmZ d d
l m!Z! d dl"m#Z# d dl$m%Z%m&Z& d d
l'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/ e j0 ej1 e&�� � e j2 e3� � Z4e4�5 e%d � � dede6fd�Z7d� Z8i fde9fd�Z:dS )� N)� BaseModel)�AsyncGenerator� Generator�Iterator)�Depends�FastAPI�File�Form�
HTTPException�Request�
UploadFile�status)�Response�StreamingResponse)�get_event_call�get_event_emitter)� Functions)�Models)�load_function_module_by_id)� get_tools)�
has_access)�SRC_LOG_LEVELS�GLOBAL_LOG_LEVEL)�add_or_update_system_message�get_last_user_message�%prepend_to_first_user_message_content�"openai_chat_chunk_message_template�'openai_chat_completion_message_template)�!apply_model_params_to_body_openai�!apply_model_system_prompt_to_body)�stream�level�MAIN�request�pipe_idc �> � || j j j vr(t |� � \ }}}|| j j j |<