Python学习_使用Python调用DeepSeek API
·
AI概述
Artificial Intelligence人工智能,让机器模仿人类的思考、学习、推理、解决问题- 大语言模型
Large Language Models,指使用代码模拟人脑神经网络的程序
- 大语言模型
- AI大模型部署方案
- 本地部署:数据安全、自主可控、长期成本低
- 调用官方API:
Application Programming Interface应用程序编程接口 - 云服务平台:使用阿里云百炼、百度千帆、火山引擎等平台提供的API服务
- 使用
HTTP服务调用API- 请求方式:
GET请求:请求参数在请求路径中携带,如:api/courses?name=Python&status=1(参数1name=Python,参数2status=1)POST请求:请求参数在请求体中携带,请求大小无限制
- 请求状态码:
- 200:请求成功
- 400:请求参数错误
- 404:请求资源不存在,url输入有误,或网站资源被删除了
- 500:服务器异常
- 请求格式:请求行(请求方式、资源路径)、请求头(key:value)、请求体(post方式)
- 响应格式:响应行(状态码)、响应头(key:value)、响应体
- 请求方式:
- JSON_
JavaScript Object Notation格式- 类似于Python中的字典,都是
key:value的形式- 对象:用
{}表示,{}之间均为键值对 - 数字:整数和小数直接表示
- 字符串:用
""表示 - 布尔:
true或false - 列表:用
[]表示
- 对象:用
- 类似于Python中的字典,都是
- 提示词工程
Prompt Engineering- 引导AI思考,限制其输出结果,明确期望的结果
- 给大模型设定角色与能力
- 明确核心请求与任务
- 按步骤拆解复杂任务
- 指定风格与语气
- 明确输出格式
- 提供输入输出的示例
- 引导AI思考,限制其输出结果,明确期望的结果
使用Apifox调用DeepSeek API
- 官方文档:
POST请求curl https://api.deepseek.com/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \ -d '{ "model": "deepseek-chat", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ], "stream": false }'- 请求的URL地址:
https://api.deepseek.com/chat/completions Content-Type:请求头,表示向服务器发送json数据Authorization:请求头,表示deepseek的API_KEY-d:请求体内容
{ "model": "deepseek-chat", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ], "stream": false }"model": "deepseek-chat"调用的模型"role": "system":系统提示词,表示告知DeepSeek的角色设定"role": "user":用户提示词,表示询问的问题"stream": false:是否采用流式输出
- 请求的URL地址:
- 回复内容
{ "id": "c8284535-adf9-49c4-bb4a-d2e0b7b1920e", "object": "chat.completion", "created": 1770947209, "model": "deepseek-chat", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "你好!我是DeepSeek,一个由深度求索公司创造的AI助手!😊\n\n我是一个纯文本模型,虽然不支持多模态识别功能,但我有很多实用的能力:\n- 可以帮你处理上传的各种文件(图像、txt、pdf、ppt、word、excel等),并从中读取文字信息\n- 拥有128K的上下文长度,能处理很长的对话和文档\n- 支持联网搜索功能(需要你在Web/App中手动开启)\n- 完全免费使用,没有收费计划\n\n我的知识截止到2024年7月,会以热情细腻的方式为你提供帮助。你可以通过官方应用商店下载App来使用我。\n\n有什么问题或需要帮助的地方吗?我很乐意为你解答!✨" }, "logprobs": null, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 16, "completion_tokens": 153, "total_tokens": 169, "prompt_tokens_details": { "cached_tokens": 0 }, "prompt_cache_hit_tokens": 0, "prompt_cache_miss_tokens": 16 }, "system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache" }"message":回复的信息"usage":本次问答消耗的token"prompt_tokens":询问消耗的token"completion_tokens":回答消耗的token"total_tokens":总消耗的token
- 上下文记忆
- 使用该种方法,不具备上下文记忆能力,多次问答内容无法关联
- 每一次请求响应相互独立
- 处理方案_滚雪球方案
- 将每次一次的会话汇总,一并交给AI大模型
assistant:记录上一次问题的回答
{ "model": "deepseek-chat", "messages": [ { "role": "system", "content": "你是DeepSeek 一个全能的AI助手" }, { "role": "user", "content": "你是谁?" }, { "role": "assistant", "content": "你好!我是DeepSeek,一个由深度求索公司创造的AI助手!😊\n\n我是一个纯文本模型,虽然不支持多模态识别功能,但我有很多实用的能力:\n- 可以帮你处理上传的各种文件(图像、txt、pdf、ppt、word、excel等),并从中读取文字信息\n- 拥有128K的上下文长度,能处理很长的对话和文档\n- 支持联网搜索功能(需要你在Web/App中手动开启)\n- 完全免费使用,没有收费计划\n\n我的知识截止到2024年7月,会以热情细腻的方式为你提供帮助。你可以通过官方应用商店下载App来使用我。\n\n有什么问题或需要帮助的地方吗?我很乐意为你解答!✨" }, { "role": "user", "content": "你有哪些功能,上一次我问了你什么问题?" } ], "stream": false } - 第二个
user:本次需要问答的新问题
- 回答
{ "id": "2653f04e-e08d-4ab3-81b9-e2f12c788194", "object": "chat.completion", "created": 1770947953, "model": "deepseek-chat", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "让我来回答你的问题:\n\n## 我的主要功能:\n1. **文本对话与问答** - 回答各种问题,协助写作、分析、学习等\n2. **文件处理** - 支持上传图像、txt、pdf、ppt、word、excel文件,我能读取其中的文字信息进行处理\n3. **长文本处理** - 拥有128K上下文,能处理很长的对话和文档\n4. **联网搜索** - 支持实时信息搜索(需要手动开启)\n5. **多领域协助** - 编程、学术研究、创意写作、数据分析、翻译等\n6. **完全免费** - 没有任何收费计划\n\n## 你上一次的问题:\n你问的是:“你是谁?” - 这是我回答的第一个问题,我向你介绍了我是DeepSeek AI助手的基本情况。\n\n现在这是我们对话的第二个问题!有什么具体的任务需要我帮助吗?无论是学习、工作还是日常问题,我都很乐意协助你!😊" }, "logprobs": null, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 182, "completion_tokens": 200, "total_tokens": 382, "prompt_tokens_details": { "cached_tokens": 128 }, "prompt_cache_hit_tokens": 128, "prompt_cache_miss_tokens": 54 }, "system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache" }- 以此类推,不断累加,大模型就具备了上下文记忆能力
token会随着问答次数,不断累加
使用Python调用deepseek API
- 需要先下载
openai软件包pip install openai
- 官方文档
# Please install OpenAI SDK first: `pip3 install openai`
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get('DEEPSEEK_API_KEY'),# 调用环境变量DEEPSEEK_API_KEY
base_url="https://api.deepseek.com")
# 与AI进行交互
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是DeepSeek,一个AI大模型"},
{"role": "user", "content": "你好,你是谁?"},
],
stream=False
)
# 大模型返回的结果
print(response.choices[0].message.content)
更多推荐
所有评论(0)