当前位置: 首页 > news >正文

python调研本地 DeepSeek API的例子

以下是一段调用本地 DeepSeek API 的 Python 示例代码,假设你的本地 DeepSeek 服务运行在 http://localhost:8000(请根据实际服务的端口调整),并包含基础的错误处理和参数配置:
在这里插入图片描述

import requestsdef call_deepseek_api(prompt, api_key=None, max_tokens=512, temperature=0.7):"""调用本地 DeepSeek API 生成文本参数:prompt (str): 输入的提示词api_key (str): 可选,若本地服务需要 API Key 认证则填写max_tokens (int): 生成文本的最大长度(默认 512)temperature (float): 控制生成随机性的参数(0~1,越小越确定,默认 0.7)返回:str: 生成的文本内容(成功时)或错误信息(失败时)"""# 本地 API 地址(根据实际服务端口修改,常见如 8000/8080/5000)api_url = "http://localhost:8000/v1/chat/completions"  # 假设接口路径为 /v1/chat/completions# 请求头(根据实际服务要求调整,可能需要添加 Authorization 或 Content-Type)headers = {"Content-Type": "application/json",}if api_key:headers["Authorization"] = f"Bearer {api_key}"  # 若服务需要 Bearer Token 认证# 构造请求体(根据 DeepSeek API 文档调整参数,以下为通用示例)payload = {"model": "deepseek-chat",  # 模型名称(根据本地部署的模型调整)"messages": [{"role": "user", "content": prompt}  # 用户输入的提示],"max_tokens": max_tokens,"temperature": temperature,"stream": False  # 是否流式输出(False 为一次性返回完整结果)}try:# 发送 POST 请求response = requests.post(api_url, json=payload, headers=headers, timeout=30)response.raise_for_status()  # 若 HTTP 状态码非 200 则抛出异常# 解析响应(根据实际接口返回结构调整,以下为通用示例)result = response.json()# 假设返回结构包含 "choices" 列表,每个元素有 "message" 字段generated_text = result["choices"][0]["message"]["content"]return generated_textexcept requests.exceptions.RequestException as e:# 处理网络相关错误(连接失败、超时等)return f"请求失败: {str(e)}"except (KeyError, IndexError) as e:# 处理响应解析错误(如接口返回结构不符)return f"解析响应失败,可能接口返回格式变化: {str(e)}"except Exception as e:# 其他未知错误return f"未知错误: {str(e)}"# -------------------------- 示例用法 --------------------------
if __name__ == "__main__":# 你的输入提示user_prompt = "请用 Python 写一个计算斐波那契数列前 n 项的函数,并给出示例。"# 调用 API(若本地服务需要 API Key,替换为你的 key;否则留 None)output = call_deepseek_api(prompt=user_prompt,api_key=None,  # 例如:"your-api-key-here"(如果需要)max_tokens=1024,  # 根据需求调整生成长度temperature=0.5  # 调整生成随机性(0 更确定,1 更随机))# 打印结果print("生成的回复:")print(output)

使用说明:

  1. 安装依赖:需要先安装 requests 库,若未安装可通过 pip install requests 安装。

  2. 调整参数

    • api_url:根据本地 DeepSeek 服务的实际地址修改(例如若服务运行在 8080 端口,则改为 http://localhost:8080/...)。
    • model:根据本地部署的模型名称调整(例如可能是 deepseek-7b-chat 或其他)。
    • headers:若本地服务需要认证(如 API Key),需按服务要求添加(例如 Authorization: Bearer <key>)。
    • payload:根据 DeepSeek API 文档调整请求体结构(例如部分服务可能需要 prompt 直接作为参数,而非 messages 列表)。
  3. 验证服务是否启动:确保本地 DeepSeek 服务已正确启动(例如通过 curl http://localhost:8000 测试是否能返回有效响应)。

常见问题排查:

  • 连接失败:检查服务是否启动、端口是否正确(可通过 netstat -tlnp 查看端口占用)。
  • 401 Unauthorized:可能是 API Key 错误或未正确配置认证。
  • 400 Bad Request:可能是请求体参数格式错误(需对照 API 文档检查)。
  • 500 Internal Error:可能是服务端内部错误(查看服务日志排查)。

如果你的本地 DeepSeek 服务是自定义接口(非通用 OpenAI 格式),请根据实际接口文档调整 api_urlheaderspayload 的结构。

http://www.dtcms.com/a/327130.html

相关文章:

  • Java 22 新特性:字符串模板(String Templates)让拼接更优雅、更安全
  • iOS混淆工具有哪些?团队协作视角下的分工与防护方案
  • 飞算JavaAI 2.0.0深度测评:自然语言编程如何重塑Java开发范式
  • 给商品换背景--指令改图,主图场景随心换
  • 【Allegro SKILL代码解析】添加Pin Number
  • NetworkManager配置热点
  • Springboot注册过滤器的三种方式(Order 排序)
  • 如何用codeBuddy20分钟处理一单数据分析
  • 10. React组件间的通信
  • MySQL——MySQL引擎层BufferPool工作过程原理
  • K8s 1.32.6版本部署文档
  • Ansible 基础到实操笔记
  • 【Redis在数据治理与数据隐私保护策略中的优化】
  • 新手向:Python编写简易翻译工具
  • 移动端调用大模型详解
  • 【运维进阶】Ansible 自动化
  • 西门子 S7-200 与 S7-1200 借 PPI 以太网模块通讯,赋能食品行业进步
  • 【pxe】通过pxe批量安装centos系统(传统Legacy启动+uefi启动)
  • Neo4j Cypher语句
  • 淘宝API列表:高效获取商品详情图主图商品视频参数item_get
  • 微前端 + Docker + Kubernetes 运作机制
  • 【51单片机定时器流水灯】2022-10-28
  • Docker使用----(安装_Windows版)
  • Go语言实战案例:使用Gin框架构建Hello API
  • windows单机单卡+CIFAR-10数据集+Docker模拟训练
  • 快速了解自然语言处理
  • 《Redis慢查询日志操作:SLOWLOG GET/CONFIG等命令的分析方法》
  • 计算机视觉(4)-相机基础知识恶补
  • 前端css学习笔记3:伪类选择器与伪元素选择器
  • 【shell脚本编程】-4 shell脚本编写冒泡排序