deepseek连续调用方案

目录

1、申请api

2、安装openai库

3、编写代码

4、终端调用

5、成果展示


1、申请api

2、安装openai库

python -m pip install openai

3、编写代码

import openai  # 假设 DeepSeek 的 API 与 OpenAI 类似


# 初始化客户端
client = openai.Client(api_key="你的key", base_url="https://api.deepseek.com")

# 初始化对话历史
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
]

# 连续对话循环
while True:
    # 获取用户输入
    user_input = input("\nYou: ")
    if user_input.lower() in ["exit", "quit"]:  # 输入 exit 或 quit 退出对话
        print("Goodbye!")
        break

    # 将用户输入添加到对话历史
    messages.append({"role": "user", "content": user_input})

    # 提示用户按回车键开始回答
    print("\nPress ENTER to generate the assistant's response...")

    # 调用 API 获取助手回复
    try:
        response = client.chat.completions.create(
            model="deepseek-chat",
            messages=messages,
            stream=True
        )

        # 处理流式响应
        assistant_reply = ""
        print("Assistant: ", end="", flush=True)
        for chunk in response:
            if chunk.choices[0].delta.content:
                content = chunk.choices[0].delta.content
                print(content, end="", flush=True)
                assistant_reply += content

        # 将助手回复添加到对话历史
        messages.append({"role": "assistant", "content": assistant_reply})

    except Exception as e:
        print(f"\nError occurred: {e}")

4、终端调用

python "文件路径"#终端输入

5、成果展示

### 解决 DeepSeek API 错误码 20033 的方案 当遇到 DeepSeek API 返回错误码 20033 时,这通常表示请求超出了允许的速率限制。API 提供商为了防止滥用和服务过载,会设置每分钟或每小时的最大请求数量。超出此限制将会触发此类错误[^1]。 针对这个问题的有效解决方案如下: #### 调整请求频率 减少应用程序发出请求的速度可以有效避免触碰速率限制。可以通过增加两次连续请求之间的时间间隔来实现这一点。例如,在 Python 中可以使用 `time.sleep()` 函数暂停执行一段时间后再继续发送下一个请求。 ```python import time def make_request_with_delay(api_endpoint, delay_seconds=1): try: response = requests.get(api_endpoint) if response.status_code == 20033: print("Hit rate limit; waiting before retrying...") time.sleep(delay_seconds) # Wait for specified number of seconds return make_request_with_delay(api_endpoint, delay_seconds * 2) # Retry with exponential backoff else: return response.json() except Exception as e: raise ValueError(f"Failed to fetch data from {api_endpoint}: {str(e)}") ``` #### 使用指数退避算法重试失败请求 如果确实因为瞬时流量高峰而超过了限额,则可以在捕获到该特定错误之后实施自动重试逻辑,并采用指数退避策略逐步延长等待时间直到成功为止。上述代码片段展示了如何通过递归方式处理这种情况并引入延迟因子以降低后续尝试的成功几率。 #### 获取更高的配额权限或许可证级别 对于频繁使用的场景下,考虑联系服务提供商申请提升账户等级或者购买更高级别的许可证,从而获得更大的访问额度。这样不仅可以解决问题还能享受更好的性能和支持服务[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值