Spaces:
Running
on
T4
Running
on
T4
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("<think") | |
if think_start == -1: | |
return None, full_response.strip() | |
think_end = full_response.find("</think>") | |
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("<think", "").replace("</think>", "").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) | |