import re from typing import List, Optional, Union from pydantic import BaseModel, Field from pydantic_settings import BaseSettings from api_types import ChatMessage def parse_think_response(full_response: str): think_start = full_response.find("") if think_end == -1: # 未闭合的情况 reasoning = full_response[think_start:].strip() content = "" else: reasoning = full_response[think_start : think_end + 9].strip() # +9包含完整标签 content = full_response[think_end + 9 :].strip() # 清理标签保留内容 reasoning_content = reasoning.replace("", "").strip() return reasoning_content, content def cleanMessages(messages: List[ChatMessage]): promptStrList = [] for message in messages: content = message.content.strip() content = re.sub(r"\n+", "\n", content) promptStrList.append(f"{message.role.strip()}: {content}") return "\n\n".join(promptStrList)