当前位置:首页>python>6python之基础问询调deepseek-v3及输出不完整处理

6python之基础问询调deepseek-v3及输出不完整处理

  • 2026-09-02 15:54:12
6python之基础问询调deepseek-v3及输出不完整处理

写在前面的话

小车司机。昨天上号,突然想起老家一件事,那是2017年结婚后,带媳妇一家去旅游。到县城搭车去周口,到了车走了,一个小车司机说:我知道车走到二高那边了,我送你们过去,10块钱。我们就坐了,到了之后,顺利上车,小车司机和大车司机要钱,说不能白送,要10块钱车费,大车司机给了。岳母说,车钱我们给过了呀。大车司机不干了,追上小车司机要毁他,小车司机把钱退回来了。去年回去,路过车站,又碰到了那个小车司机,还是开着那辆小车,车更破,人更老,还是一说带笑的拉人,并没有做大做强。我在想,是不是人的思维就局限在某个地方,不求改变,十年过去,还是老样子呢。另外,小车司机没暴富,我觉得可能与诚信也有关系,靠耍小聪明骗人怎么能做大呢。

[194+100]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个早餐钱,微信号: qhz_toutiao)

【关键词】python、ragflow、基础问询、输出不完整

一、基础问询调deepseek-v3(三级)

描述:现在龙哥想着基础问询调deepseek-v3,这样应该能快一点,不要再输出很多空格,处理一下。

开工:

第一步:deepseek-v3模拟(四级)

20250516周五时间段:22:44-23:00

DeepSeek API 使用与 OpenAI 兼容的 API 格式,通过修改配置,您可以使用 OpenAI SDK 来访问 DeepSeek API,或使用与 OpenAI API 兼容的软件。

图6a-1

注:

* 出于与 OpenAI 兼容考虑,您也可以将 base_url 设置为 https://api.deepseek.com/v1 来使用,但注意,此处 v1 与模型版本无关。

*deepseek-chat 模型已全面升级为 DeepSeek-V3,接口不变。 通过指定 model='deepseek-chat' 即可调用 DeepSeek-V3。

*deepseek-reasoner 是 DeepSeek 最新推出的推理模型 DeepSeek-R1。通过指定 model='deepseek-reasoner',即可调用 DeepSeek-R1。

第二步:调用对话API(四级)

20250516周五时间段:22:48-23:00

在创建 API key 之后,你可以使用以下样例脚本的来访问 DeepSeek API。样例为非流式输出,您可以将 stream 设置为 true 来使用流式输出。

python调用事例如下:

# Please install OpenAI SDK first: `pip3 install openai`

from openai import OpenAI

client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
    ],
    stream=False
)

print(response.choices[0].message.content)

注:这个我觉得不用写库,直接在代码里调用就可以。

第三步:直接调用(四级)

20250516周五时间段:22:51-23:00

写程序如下:

    is_deepseek_v3 = True   

    if is_deepseek_v3:

        # 直接使用deepseek官方v3模型
        if is_stream:
            # log.info('is_stream')
            answer = ""
            for ans in deepseek_v3(messages[1:], is_stream):
                # log.debug(f"answer--197: {ans}")
                yield {"answer": ans}
        else:
            answer = deepseek_v3(messages[1:], is_stream)
            # res = {"answer":answer}
            yield {"answer":answer}

封装的函数deepseek_v3如下:

def deepseek_v3(messages,is_stream=True):

    
#https://api-docs.deepseek.com/zh-cn/
    # Please install OpenAI SDK first: `pip3 install openai`

    client = OpenAI(api_key="sk-b91a5822a2ba24638ba60b49009862e346", base_url="https://api.deepseek.com/v1")
    #model:deepseek-chat 表示 DeepSeek-V3;  deepseek-reasoner 表示 DeepSeek-R1
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=messages,
        stream=is_stream
    )
    yield response

注:跑一下试试,先把这个用例写到启动中,截图如下:

图6a-2

注:这样就能直接调试了,并且能打到函数内部。运行如下:

2025-05-16 23:54:59.358 | ERROR | pet_doctor.py:doctor_specialist_request_choose:540 - ERROR: Traceback (most recent call last):
  File "/home/admin/python_projects/ragflow_zero2/api/db/services/pet_doctor.py", line 512, in doctor_specialist_request_choose
    for ans in chat_direct_base_question(dia, question_prompt,messages):
  File "/home/admin/python_projects/ragflow_zero2/api/db/services/dialog_service.py", line 201, in chat_direct_base_question
    for ans in deepseek_v3(messages[1:], is_stream):
  File "/home/admin/python_projects/ragflow_zero2/api/db/services/dialog_service.py", line 230, in deepseek_v3
    response = client.chat.completions.create(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/python_projects/ragflow_zero2/.venv/lib/python3.12/site-packages/openai/_utils/_utils.py", line 274, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/python_projects/ragflow_zero2/.venv/lib/python3.12/site-packages/openai/resources/chat/completions.py", line 704, in create
    return self._post(
           ^^^^^^^^^^^
  File "/home/admin/python_projects/ragflow_zero2/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 1260, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/python_projects/ragflow_zero2/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 937, in request
    return self._request(
           ^^^^^^^^^^^^^^
  File "/home/admin/python_projects/ragflow_zero2/.venv/lib/python3.12/site-packages/openai/_base_client.py", line 1041, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.APIStatusError: Error code: 402 - {'error': {'message': 'Insufficient Balance', 'type': 'unknown_error', 'param': None, 'code': 'invalid_request_error'}}

注:说是无效的请求,查资料得知是余额不足,说明如下:

这个错误表明您在使用DeepSeek的API时遇到了账户余额不足的问题。错误信息显示:

openai.APIStatusError: Error code: 402 - {'error': {'message': 'Insufficient Balance', 'type': 'unknown_error', 'param': None, 'code': 'invalid_request_error'}}

解决方法:

a.检查账户余额:
  • 登录到DeepSeek API的管理控制台,查看您的账户余额或剩余配额。

  • 确保您的账户有足够的余额或配额来继续使用API服务。

b.充值或续订配额:
  • 如果余额不足,您需要充值或续订您的API配额。具体操作可以参考DeepSeek的官方文档或联系他们的支持团队。

注:充了10块钱,再试一次。

效果如下:

能接收到,但需要按照下面的方式获取,如下:

print(response.choices[0].message.content)

第四步:流式接收(四级)

20250517周六时间段:00:26-02:00

完成

二、输出不完整问题(三级)

描述:现在基础问询,问题输出不完整,需要处理一下。

开工:

第一步:现状截图(四级)

20250517周六时间段:18:14-20:00

现状截图如下:

图6b-1

注:先减少问题量。

第二步:减少问题题(四级)

20250517周六时间段:18:17-20:00

修改程序如下:

doctor_disease_pre_question_prompt_choose = """
    你是一个宠物{disease_type}科医生,擅长根据用户提出的症状描述和基础问诊库,归纳出进一步向用户提问的问题。

    目标:归纳出进一步向用户提问的问题。

    要求:
    - 每次给出没有提问过的问题,不超过3个
    - 每个问题给出可能的选项,不超过4个
    - 除问题与选项外不要给出多余的话
    - 问题与选项之间用“&nbsp;&nbsp;”分隔,选项与问题之间用“&nbsp;&nbsp;”分隔,选项与选项之间用“&nbsp;&nbsp;”分隔
    - 每个问题最后的选项和下一个问题之间用“&nbsp;&nbsp;”分隔
    - 根据历史消息,过滤掉已提问的问题
    - 问题只提问一次,不要重复提问
    - 如果没有需要用户回答的问题,请给出【问题用户已回复完】标识,否则,请继续问下去。
    - 请不要出现【问题未问完】等无意义的提示
    - 如果有问题需要用户回答,请继续问下去,不要出现【问题用户已回复完】提示。 

            以下是历史消息:
            {messages}
            以上是历史消息。

            以下是基础问诊库:
            {clinical_experience}
            以上是基础问诊库。  

注:问题限制3个。跑下看看效果,效果如下:

图6b-2

注:现在可以了,接下来,部署zero2,先重新整一份代码出来。

三、重新搞一份代码(三级)

描述:因为zer2是正式服,zero4是测试服,需要把zero4的代码拆一份出来,供zero2使用,单独部署,因为两份代码到时配置不一样。

四、头条战果汇报

昨日数据来啦,昨日总收入:1004.5,昨日总播放:984.6万,软件截图如下:

图6d-1

注:想要全脱管运营头条号的联系我,你出账号,我来运营,保你天天有钱花,咨询电话: 17701328814(微信同号),也可以加群先了解一下。

图6d-2

注:个人微信如下,欢迎骚扰。

图6d-3

五、生活照片

拍摄于‎2025‎年‎9‎月‎30‎日,‏‎20:38:26,带媳妇二宝出去玩,当时,二宝三岁。后来想想,也不能怪小车司机,可能我们车站那一片,其他的小车司机也是这么玩的,他不这么玩,可能生存不下去。反而有点羡慕小车司机的心理素质,你想想,他当着我们的面,明明收了我们车费,又给大车司机再要一次车费,心理素质得多强呀。我是来不了,所以,我现在上号,就有一说一,诚实做事,不藏着掖着,我来不了,给张三说分成多少,到李四那又变了,到王五那又一套说辞,这个我脑子不够用,没那么灵活,我就定一套规则,所有人通用,这样省事,简单。再者也能避免不一致,比如:张三上完号,李四来了,我如果说的不一样,而李四又是张三介绍的,那李四可能就不上号了,纸里包不住火,我何必呢。

图6e-1

《本文完》

最新文章

随机文章