|
@@ -10,7 +10,7 @@ from datetime import datetime, timedelta
|
|
|
from argparse import ArgumentParser
|
|
|
|
|
|
from openai import OpenAI
|
|
|
-
|
|
|
+from message import MessageType
|
|
|
import chat_service
|
|
|
import configs
|
|
|
import json
|
|
@@ -25,6 +25,33 @@ from user_profile_extractor import UserProfileExtractor
|
|
|
app = Flask('agent_api_server')
|
|
|
logger = logging_service.logger
|
|
|
|
|
|
+def compose_openai_chat_messages_no_time(dialogue_history, multimodal=False):
|
|
|
+ messages = []
|
|
|
+ for entry in dialogue_history:
|
|
|
+ role = entry['role']
|
|
|
+ msg_type = entry.get('type', MessageType.TEXT)
|
|
|
+ fmt_time = DialogueManager.format_timestamp(entry['timestamp'])
|
|
|
+ if msg_type in (MessageType.IMAGE_GW, MessageType.IMAGE_QW, MessageType.GIF):
|
|
|
+ if multimodal:
|
|
|
+ messages.append({
|
|
|
+ "role": role,
|
|
|
+ "content": [
|
|
|
+ {"type": "image_url", "image_url": {"url": entry["content"]}}
|
|
|
+ ]
|
|
|
+ })
|
|
|
+ else:
|
|
|
+ logger.warning("Image in non-multimodal mode")
|
|
|
+ messages.append({
|
|
|
+ "role": role,
|
|
|
+ "content": "[图片]"
|
|
|
+ })
|
|
|
+ else:
|
|
|
+ messages.append({
|
|
|
+ "role": role,
|
|
|
+ "content": f'{entry["content"]}'
|
|
|
+ })
|
|
|
+ return messages
|
|
|
+
|
|
|
def wrap_response(code, msg=None, data=None):
|
|
|
resp = {
|
|
|
'code': code,
|
|
@@ -224,7 +251,10 @@ def run_chat_prompt(req_data):
|
|
|
'content': prompt.format(**prompt_context)
|
|
|
}
|
|
|
messages = [system_prompt]
|
|
|
- messages.extend(DialogueManager.compose_chat_messages_openai_compatible(dialogue_history, current_time_str))
|
|
|
+ if req_data['scene'] == 'custom_debugging':
|
|
|
+ messages.extend(compose_openai_chat_messages_no_time(dialogue_history))
|
|
|
+ else:
|
|
|
+ messages.extend(DialogueManager.compose_chat_messages_openai_compatible(dialogue_history, current_time_str))
|
|
|
return run_openai_chat(messages, model_name, temperature=1, top_p=0.7, max_tokens=1024)
|
|
|
|
|
|
def run_response_type_prompt(req_data):
|