rkihacker commited on
Commit
b0aed20
·
verified ·
1 Parent(s): 49f9cc7

Update api/utils.py

Browse files
Files changed (1) hide show
  1. api/utils.py +7 -35
api/utils.py CHANGED
@@ -147,7 +147,6 @@ def create_chat_completion_data(
147
  prompt_tokens: int = 0,
148
  completion_tokens: int = 0,
149
  finish_reason: Optional[str] = None,
150
- function_call: Optional[Dict] = None,
151
  ) -> Dict[str, Any]:
152
  usage = None
153
  if finish_reason == "stop":
@@ -162,22 +161,15 @@ def create_chat_completion_data(
162
  "created": timestamp,
163
  "model": model,
164
  "system_fingerprint": system_fingerprint,
165
- "choices": [{
166
- "index": 0,
167
- "delta": {
168
- "content": content if not function_call else None,
169
- "role": "assistant",
170
- "function_call": function_call
171
- },
172
- "finish_reason": finish_reason
173
- }],
174
  "usage": usage,
175
  }
176
 
177
- def message_to_dict(message, model_prefix: Optional[str] = None, tools: Optional[List[Dict]] = None) -> Dict[str, Any]:
178
  """
179
  Convert a ChatRequest message to a dict for the request payload.
180
- Supports function calling, images, and model prefixes.
 
181
  """
182
  content = ""
183
  images_data = []
@@ -250,7 +242,7 @@ async def process_streaming_response(request: ChatRequest):
250
  logger.error("No h-value for validation.")
251
  raise HTTPException(status_code=500, detail="Missing h-value.")
252
 
253
- messages = [message_to_dict(msg, model_prefix=model_prefix, tools=request.tools) for msg in request.messages]
254
 
255
  json_data = {
256
  "agentMode": agent_mode,
@@ -328,27 +320,7 @@ async def process_streaming_response(request: ChatRequest):
328
  final_snapzion_links.extend(snapzion_urls)
329
  cleaned_content = strip_model_prefix(chunk, model_prefix)
330
  completion_tokens += calculate_tokens(cleaned_content, request.model)
331
-
332
- # Handle function call responses
333
- function_call = None
334
- if cleaned_content and cleaned_content.startswith("{"):
335
- try:
336
- function_call = json.loads(cleaned_content)
337
- cleaned_content = None # Content must be null for function calls
338
- except json.JSONDecodeError:
339
- pass
340
-
341
- yield "data: " + json.dumps(create_chat_completion_data(
342
- cleaned_content,
343
- request.model,
344
- timestamp,
345
- request_id,
346
- system_fingerprint,
347
- prompt_tokens,
348
- completion_tokens,
349
- finish_reason=None,
350
- function_call=function_call
351
- )) + "\n\n"
352
  yield "data: " + json.dumps(create_chat_completion_data("", request.model, timestamp, request_id, system_fingerprint, prompt_tokens, completion_tokens, "stop")) + "\n\n"
353
  yield "data: [DONE]\n\n"
354
  except httpx.HTTPStatusError as e:
@@ -402,7 +374,7 @@ async def process_non_streaming_response(request: ChatRequest):
402
  logger.error("Failed to retrieve h-value.")
403
  raise HTTPException(status_code=500, detail="Missing h-value.")
404
 
405
- messages = [message_to_dict(msg, model_prefix=model_prefix, tools=request.tools) for msg in request.messages]
406
 
407
  json_data = {
408
  "agentMode": agent_mode,
 
147
  prompt_tokens: int = 0,
148
  completion_tokens: int = 0,
149
  finish_reason: Optional[str] = None,
 
150
  ) -> Dict[str, Any]:
151
  usage = None
152
  if finish_reason == "stop":
 
161
  "created": timestamp,
162
  "model": model,
163
  "system_fingerprint": system_fingerprint,
164
+ "choices": [{"index": 0, "delta": {"content": content, "role": "assistant"}, "finish_reason": finish_reason}],
 
 
 
 
 
 
 
 
165
  "usage": usage,
166
  }
167
 
168
+ def message_to_dict(message, model_prefix: Optional[str] = None):
169
  """
170
  Convert a ChatRequest message to a dict for the request payload.
171
+ Supports up to three images with type-based structure and sends multiple formats.
172
+ Prepends model_prefix to text content if specified.
173
  """
174
  content = ""
175
  images_data = []
 
242
  logger.error("No h-value for validation.")
243
  raise HTTPException(status_code=500, detail="Missing h-value.")
244
 
245
+ messages = [message_to_dict(msg, model_prefix=model_prefix) for msg in request.messages]
246
 
247
  json_data = {
248
  "agentMode": agent_mode,
 
320
  final_snapzion_links.extend(snapzion_urls)
321
  cleaned_content = strip_model_prefix(chunk, model_prefix)
322
  completion_tokens += calculate_tokens(cleaned_content, request.model)
323
+ yield "data: " + json.dumps(create_chat_completion_data(cleaned_content, request.model, timestamp, request_id, system_fingerprint, prompt_tokens, completion_tokens)) + "\n\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
324
  yield "data: " + json.dumps(create_chat_completion_data("", request.model, timestamp, request_id, system_fingerprint, prompt_tokens, completion_tokens, "stop")) + "\n\n"
325
  yield "data: [DONE]\n\n"
326
  except httpx.HTTPStatusError as e:
 
374
  logger.error("Failed to retrieve h-value.")
375
  raise HTTPException(status_code=500, detail="Missing h-value.")
376
 
377
+ messages = [message_to_dict(msg, model_prefix=model_prefix) for msg in request.messages]
378
 
379
  json_data = {
380
  "agentMode": agent_mode,