ollama部署的DeepSeek-R1 32B OpenAI格式API调用输出的<think> </think>方式改为 reasoning_content方式
时间: 2025-03-03 07:36:37 浏览: 478
### 修改 Ollama 部署的 DeepSeek-R1 32B 模型以适应 OpenAI API 响应格式
为了使 Ollama 部署的 DeepSeek-R1 32B 模型能够通过 OpenAI 格式的 API 调用返回 `reasoning_content` 字段而不是 `<think>` 标签,可以采取以下方法:
#### 自定义模型输出处理逻辑
如果当前使用的框架允许自定义化输出,则可以在模型推理后的数据处理阶段进行修改。具体来说,在接收到原始带有 `<think>` 标签的结果之后,解析该 XML 或 HTML 片段并提取其中的内容作为新的 JSON 结构中的 `reasoning_content` 属性。
对于 Python 实现而言,这可能涉及到使用像 Beautiful Soup 这样的库来解析和转换文本[^1]。
```python
from bs4 import BeautifulSoup
def transform_think_to_reasoning(response_text):
soup = BeautifulSoup(response_text, 'html.parser')
think_tag = soup.find('think') # 查找<think>标签
if not think_tag:
raise ValueError("Response does not contain a <think> tag.")
reasoning_content = think_tag.get_text(strip=True)
transformed_response = {
"object": "response",
"choices": [
{"text": "",
"index": 0,
"logprobs": None,
"finish_reason": "stop"},
],
"usage": {},
"reasoning_content": reasoning_content # 添加新字段
}
return transformed_response
```
此函数接收来自原生接口的一串字符串形式的回答,并将其内部特定标记替换为符合目标需求的新属性名称。注意这里假设输入是一个完整的HTML/XML文档片段;实际应用中需根据实际情况调整解析方式[^1]。
#### 更新API网关配置
当上述更改完成后,还需确保外部请求能正确映射到经过改造的服务端点上。如果是基于云服务构建的应用程序,那么应当检查相应的 API Gateway 设置或任何其他负责路由 HTTP 请求至后端微服务的技术组件,确认它们已更新以便支持最新的响应结构变化[^2]。
阅读全文
相关推荐

















