Update api/utils.py
Browse files- api/utils.py +7 -23
api/utils.py
CHANGED
@@ -46,20 +46,14 @@ def create_chat_completion_data(
|
|
46 |
"usage": None,
|
47 |
}
|
48 |
|
49 |
-
# Function to convert message to dictionary format,
|
50 |
def message_to_dict(message, model_prefix: Optional[str] = None):
|
51 |
content = message.content if isinstance(message.content, str) else message.content[0]["text"]
|
52 |
if model_prefix:
|
53 |
content = f"{model_prefix} {content}"
|
54 |
-
|
55 |
message_dict = {"role": message.role, "content": content}
|
56 |
-
|
57 |
-
if hasattr(message, 'id') and message.id:
|
58 |
-
message_dict['id'] = message.id
|
59 |
-
|
60 |
if hasattr(message, 'data') and message.data:
|
61 |
message_dict['data'] = message.data
|
62 |
-
|
63 |
return message_dict
|
64 |
|
65 |
# Function to strip model prefix from content if present
|
@@ -94,19 +88,14 @@ async def process_streaming_response(request: ChatRequest):
|
|
94 |
logger.error("Failed to retrieve h-value for validation.")
|
95 |
raise HTTPException(status_code=500, detail="Validation failed due to missing h-value.")
|
96 |
|
97 |
-
# Determine if images are included in messages
|
98 |
-
code_model_mode = any(
|
99 |
-
hasattr(msg, 'data') and msg.data and 'imagesData' in msg.data for msg in request.messages
|
100 |
-
)
|
101 |
-
|
102 |
json_data = {
|
103 |
"agentMode": agent_mode,
|
104 |
"clickedAnswer2": False,
|
105 |
"clickedAnswer3": False,
|
106 |
"clickedForceWebSearch": False,
|
107 |
-
"codeModelMode":
|
108 |
"githubToken": None,
|
109 |
-
"id": request_id
|
110 |
"isChromeExt": False,
|
111 |
"isMicMode": False,
|
112 |
"maxTokens": request.max_tokens,
|
@@ -122,7 +111,7 @@ async def process_streaming_response(request: ChatRequest):
|
|
122 |
"validated": h_value, # Dynamically set the validated field
|
123 |
"visitFromDelta": False,
|
124 |
"webSearchModePrompt": False,
|
125 |
-
"imageGenerationMode": False,
|
126 |
}
|
127 |
|
128 |
async with httpx.AsyncClient() as client:
|
@@ -184,19 +173,14 @@ async def process_non_streaming_response(request: ChatRequest):
|
|
184 |
logger.error("Failed to retrieve h-value for validation.")
|
185 |
raise HTTPException(status_code=500, detail="Validation failed due to missing h-value.")
|
186 |
|
187 |
-
# Determine if images are included in messages
|
188 |
-
code_model_mode = any(
|
189 |
-
hasattr(msg, 'data') and msg.data and 'imagesData' in msg.data for msg in request.messages
|
190 |
-
)
|
191 |
-
|
192 |
json_data = {
|
193 |
"agentMode": agent_mode,
|
194 |
"clickedAnswer2": False,
|
195 |
"clickedAnswer3": False,
|
196 |
"clickedForceWebSearch": False,
|
197 |
-
"codeModelMode":
|
198 |
"githubToken": None,
|
199 |
-
"id": request_id
|
200 |
"isChromeExt": False,
|
201 |
"isMicMode": False,
|
202 |
"maxTokens": request.max_tokens,
|
@@ -212,7 +196,7 @@ async def process_non_streaming_response(request: ChatRequest):
|
|
212 |
"validated": h_value, # Dynamically set the validated field
|
213 |
"visitFromDelta": False,
|
214 |
"webSearchModePrompt": False,
|
215 |
-
"imageGenerationMode": False,
|
216 |
}
|
217 |
|
218 |
full_response = ""
|
|
|
46 |
"usage": None,
|
47 |
}
|
48 |
|
49 |
+
# Function to convert message to dictionary format, ensuring base64 data and optional model prefix
|
50 |
def message_to_dict(message, model_prefix: Optional[str] = None):
|
51 |
content = message.content if isinstance(message.content, str) else message.content[0]["text"]
|
52 |
if model_prefix:
|
53 |
content = f"{model_prefix} {content}"
|
|
|
54 |
message_dict = {"role": message.role, "content": content}
|
|
|
|
|
|
|
|
|
55 |
if hasattr(message, 'data') and message.data:
|
56 |
message_dict['data'] = message.data
|
|
|
57 |
return message_dict
|
58 |
|
59 |
# Function to strip model prefix from content if present
|
|
|
88 |
logger.error("Failed to retrieve h-value for validation.")
|
89 |
raise HTTPException(status_code=500, detail="Validation failed due to missing h-value.")
|
90 |
|
|
|
|
|
|
|
|
|
|
|
91 |
json_data = {
|
92 |
"agentMode": agent_mode,
|
93 |
"clickedAnswer2": False,
|
94 |
"clickedAnswer3": False,
|
95 |
"clickedForceWebSearch": False,
|
96 |
+
"codeModelMode": True,
|
97 |
"githubToken": None,
|
98 |
+
"id": None, # Using request_id instead of chat_id
|
99 |
"isChromeExt": False,
|
100 |
"isMicMode": False,
|
101 |
"maxTokens": request.max_tokens,
|
|
|
111 |
"validated": h_value, # Dynamically set the validated field
|
112 |
"visitFromDelta": False,
|
113 |
"webSearchModePrompt": False,
|
114 |
+
"imageGenerationMode": False, # Added this line
|
115 |
}
|
116 |
|
117 |
async with httpx.AsyncClient() as client:
|
|
|
173 |
logger.error("Failed to retrieve h-value for validation.")
|
174 |
raise HTTPException(status_code=500, detail="Validation failed due to missing h-value.")
|
175 |
|
|
|
|
|
|
|
|
|
|
|
176 |
json_data = {
|
177 |
"agentMode": agent_mode,
|
178 |
"clickedAnswer2": False,
|
179 |
"clickedAnswer3": False,
|
180 |
"clickedForceWebSearch": False,
|
181 |
+
"codeModelMode": True,
|
182 |
"githubToken": None,
|
183 |
+
"id": None, # Using request_id instead of chat_id
|
184 |
"isChromeExt": False,
|
185 |
"isMicMode": False,
|
186 |
"maxTokens": request.max_tokens,
|
|
|
196 |
"validated": h_value, # Dynamically set the validated field
|
197 |
"visitFromDelta": False,
|
198 |
"webSearchModePrompt": False,
|
199 |
+
"imageGenerationMode": False, # Added this line
|
200 |
}
|
201 |
|
202 |
full_response = ""
|