bibibi12345 commited on
Commit
5829c52
·
verified ·
1 Parent(s): f97da8b

Update app/main.py

Browse files
Files changed (1) hide show
  1. app/main.py +24 -68
app/main.py CHANGED
@@ -296,29 +296,8 @@ def create_gemini_prompt(messages: List[OpenAIMessage]) -> Union[str, List[Any]]
296
  if not has_images:
297
  prompt = ""
298
 
299
- # Extract system message if present
300
- system_message = None
301
  for message in messages:
302
- if message.role == "system":
303
- # Handle both string and list[dict] content types
304
- if isinstance(message.content, str):
305
- system_message = message.content
306
- elif isinstance(message.content, list) and message.content and isinstance(message.content[0], dict) and 'text' in message.content[0]:
307
- system_message = message.content[0]['text']
308
- else:
309
- # Handle unexpected format or raise error? For now, assume it's usable or skip.
310
- system_message = str(message.content) # Fallback, might need refinement
311
- break
312
-
313
- # If system message exists, prepend it
314
- if system_message:
315
- prompt += f"System: {system_message}\n\n"
316
-
317
- # Add other messages
318
- for message in messages:
319
- if message.role == "system":
320
- continue # Already handled
321
-
322
  # Handle both string and list[dict] content types
323
  content_text = ""
324
  if isinstance(message.content, str):
@@ -329,7 +308,9 @@ def create_gemini_prompt(messages: List[OpenAIMessage]) -> Union[str, List[Any]]
329
  # Fallback for unexpected format
330
  content_text = str(message.content)
331
 
332
- if message.role == "user":
 
 
333
  prompt += f"Human: {content_text}\n"
334
  elif message.role == "assistant":
335
  prompt += f"AI: {content_text}\n"
@@ -343,27 +324,8 @@ def create_gemini_prompt(messages: List[OpenAIMessage]) -> Union[str, List[Any]]
343
  # If images are present, create a list of content parts
344
  gemini_contents = []
345
 
346
- # Extract system message if present and add it first
347
- for message in messages:
348
- if message.role == "system":
349
- if isinstance(message.content, str):
350
- gemini_contents.append(f"System: {message.content}")
351
- elif isinstance(message.content, list):
352
- # Extract text from system message
353
- system_text = ""
354
- for part in message.content:
355
- if isinstance(part, dict) and part.get('type') == 'text':
356
- system_text += part.get('text', '')
357
- elif isinstance(part, ContentPartText):
358
- system_text += part.text
359
- if system_text:
360
- gemini_contents.append(f"System: {system_text}")
361
- break
362
-
363
- # Process user and assistant messages
364
  for message in messages:
365
- if message.role == "system":
366
- continue # Already handled
367
 
368
  # For string content, add as text
369
  if isinstance(message.content, str):
@@ -460,37 +422,31 @@ Ready for your request."""
460
  # Create a new list of messages with the pre-messages and encoded content
461
  new_messages = []
462
 
463
- # Extract system message if present
464
- system_message = None
465
- system_index = -1
466
- for i, message in enumerate(messages):
467
- if message.role == "system":
468
- system_index = i
469
- if isinstance(message.content, str):
470
- system_message = message.content
471
- elif isinstance(message.content, list) and message.content and isinstance(message.content[0], dict) and 'text' in message.content[0]:
472
- system_message = message.content[0]['text']
473
- else:
474
- system_message = str(message.content)
475
- break
476
-
477
- # Add system message with Chinese instructions if there was a system message
478
- if system_message is not None:
479
- new_system_content = f"{chinese_instructions}| !!!AND STRICTLY FOLLOW THE FOLLOWING SYSTEM-LEVEL INSTRUCTIONS.!!! |{urllib.parse.quote(system_message)}"
480
- new_messages.append(OpenAIMessage(role="system", content=new_system_content))
481
- else:
482
- # If no system message, add one with just the Chinese instructions
483
- new_messages.append(OpenAIMessage(role="system", content=chinese_instructions))
484
 
485
  # Add pre-messages
486
  new_messages.extend(pre_messages)
487
 
488
- # Add other messages with encoded content for user messages
489
  for i, message in enumerate(messages):
490
- if i == system_index:
491
- continue # Skip the original system message as we've already handled it
 
 
 
 
 
 
 
 
 
 
 
 
 
492
 
493
- if message.role == "user":
494
  # URL encode user message content
495
  if isinstance(message.content, str):
496
  new_messages.append(OpenAIMessage(
 
296
  if not has_images:
297
  prompt = ""
298
 
299
+ # Process all messages in their original order
 
300
  for message in messages:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  # Handle both string and list[dict] content types
302
  content_text = ""
303
  if isinstance(message.content, str):
 
308
  # Fallback for unexpected format
309
  content_text = str(message.content)
310
 
311
+ if message.role == "system":
312
+ prompt += f"System: {content_text}\n\n"
313
+ elif message.role == "user":
314
  prompt += f"Human: {content_text}\n"
315
  elif message.role == "assistant":
316
  prompt += f"AI: {content_text}\n"
 
324
  # If images are present, create a list of content parts
325
  gemini_contents = []
326
 
327
+ # Process all messages in their original order
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328
  for message in messages:
 
 
329
 
330
  # For string content, add as text
331
  if isinstance(message.content, str):
 
422
  # Create a new list of messages with the pre-messages and encoded content
423
  new_messages = []
424
 
425
+ # Add a system message with Chinese instructions at the beginning
426
+ new_messages.append(OpenAIMessage(role="system", content=chinese_instructions))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427
 
428
  # Add pre-messages
429
  new_messages.extend(pre_messages)
430
 
431
+ # Process all messages in their original order
432
  for i, message in enumerate(messages):
433
+ if message.role == "system":
434
+ # # URL encode system message content
435
+ # if isinstance(message.content, str):
436
+ # system_content = message.content
437
+ # elif isinstance(message.content, list) and message.content and isinstance(message.content[0], dict) and 'text' in message.content[0]:
438
+ # system_content = message.content[0]['text']
439
+ # else:
440
+ # system_content = str(message.content)
441
+
442
+ # # URL encode the system message content
443
+ # new_messages.append(OpenAIMessage(
444
+ # role="system",
445
+ # content=urllib.parse.quote(system_content)
446
+ # ))
447
+ new_messages.append(message)
448
 
449
+ elif message.role == "user":
450
  # URL encode user message content
451
  if isinstance(message.content, str):
452
  new_messages.append(OpenAIMessage(