from typing import List, Optional, Dict from ..schemas.chat import ChatMessage from ..core.ark_client import config def convert_messages_for_api(messages: List[ChatMessage]) -> List[Dict[str, str]]: return [{"role": msg.role, "content": msg.content} for msg in messages] def get_latest_user_message(messages: List[ChatMessage]) -> Optional[ChatMessage]: for message in reversed(messages): if message.role == "user": return message return None def get_previous_response_id(username: str, chat_history: dict) -> Optional[str]: if username in chat_history: for message in reversed(chat_history[username]): if message.role == "assistant" and message.response_id: return message.response_id return None def get_doubao_tools() -> list: return [{ "type": "doubao_app", "feature": { # 联网搜索功能 "ai_search": { "type": "disabled", "role_description": config.ROLE_DESCRIPTION }, # 边想边搜功能 "reasoning_search":{ "type": "enabled", "role_description": config.ROLE_DESCRIPTION } }, "user_location": { "type": "approximate", "country": "中国", "region": "浙江", "city": "杭州" } }]