Langchian Deepseek 不支持最新版 V3.2 思考模型的解决方案

报错现象

接口错误:

1
ERROR:service.service:Error in message generator: Error code: 400 - {'error': {'message': 'Missing `reasoning_content` field in the assistant message at message index 2. For more information, please refer to https://api-docs.deepseek.com/guides/thinking_mode#tool-calls', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_request_error'}}

解决方案

1、更新依赖到我开发的这个fix分支

因为官方的消极态度,有很多开发者都提供了各种各样的fix代码,但是官方都不合并。只好退而求其次,拉取自己的fix分支

文件:pyproject.toml

1
2
3
4
5
dependencies = [
    ...
    "langchain-deepseek @ git+https://github.com/reatang/langchain.git@fix/partner/deepseek/suppert_v3_2#subdirectory=libs/partners/deepseek"
    ...
]

2、初始化的时候的参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

import os
from langchain_deepseek import ChatDeepSeek

# 一个初始化示例
def get_deepseek_model(
    model_name: str, 
    *, 
    streaming: bool = True, 
) -> ChatDeepSeek:
    """
        model_name: [
            'deepseek-chat',
            'deepseek-reasoner',
        ]
        streaming: 是否启用流式输出
    """
    
    extra_body = {}
    if model_name == "deepseek-reasoner":
        # 思考模式添加扩展参数,激活fix代码中传输思维链的代码
        extra_body["thinking"] = {"type": "enabled"}

    api_key, api_base = _DEEPSEEK_PROVIDER_CONFIG[provider]

    return ChatDeepSeek(
        model=model_name,
        api_key=os.environ["DEEPSEEK_API_KEY"],
        max_tokens=1024,
        temperature=0.5,
        streaming=streaming,
        extra_body=extra_body
    )
Licensed under CC BY-NC-SA 4.0