代码解析
def get_response(text):client = OpenAI(api_key='sk-c0407cb14046455a98ce91053b257994', # DEEPSEEK_API_KEY,base_url="https://api.deepseek.com", # 填写DashScope SDK的base_url)completion = client.chat.completions.create(model="deepseek-chat",messages=[{'role': 'system','content': '总结user提交的内容。\用一句不超过50字的话总结这段小说的情节。\仅回答总结,不需要添加其他内容。'},{'role': 'user','content': text}])return completion.choices[0].message.content
逐行解释
-
定义函数
get_response
:def get_response(text):
- 这里定义了一个名为
get_response
的函数,接受一个参数text
,该参数应该是需要处理的文本字符串。
- 这里定义了一个名为
-
创建
OpenAI
客户端对象:client = OpenAI(api_key='sk-c0407cb14046455a98ce91053b257994', # DEEPSEEK_API_KEY,base_url="https://api.deepseek.com", # 填写DashScope SDK的base_url )
OpenAI
类似于一个客户端类,用于与 DeepSeek 的 API 进行交互。api_key
:这是你的 API 密钥,用于认证身份。base_url
:这是 DeepSeek API 的基础 URL 地址。
-
调用
chat.completions.create
方法:completion = client.chat.completions.create(model="deepseek-chat",messages=[{'role': 'system','content': '总结user提交的内容。\用一句不超过50字的话总结这段小说的情节。\仅回答总结,不需要添加其他内容。'},{'role': 'user','content': text}])
client.chat.completions.create
是一个方法,用于发起一个聊天请求。model
:指定使用的模型,这里是deepseek-chat
。messages
:这是一个列表,包含多个字典,每个字典代表一条消息。每条消息包含两个字段:role
:消息的角色,可以是system
、user
或assistant
。content
:消息的内容。
- 第一条消息的角色是
system
,内容是一段指示性的文字,告诉模型应该如何处理接下来的消息。 - 第二条消息的角色是
user
,内容是传入的text
参数,即需要处理的文本。
-
返回结果:
return completion.choices[0].message.content
completion.choices
是一个列表,包含模型生成的回复。这里假设只有一条回复,所以取第一个元素choices[0]
。choices[0].message
是生成的回复消息,它本身也是一个字典,包含role
和content
字段。choices[0].message.content
是最终生成的回复内容,即对输入文本的总结。
代码逻辑概述
-
初始化客户端:
- 创建一个
OpenAI
客户端实例,提供 API 密钥和基础 URL。
- 创建一个
-
构建请求:
- 使用
chat.completions.create
方法构建一个聊天请求,包含两条消息:- 一条系统消息,指示模型如何处理用户输入。
- 一条用户消息,即需要处理的文本。
- 使用
-
发送请求并获取回复:
- 发送请求并获取模型生成的回复。
- 返回回复内容。
注意事项
- API 密钥安全性:确保不要将 API 密钥泄露给任何人,最好使用环境变量或配置文件来存储敏感信息。
- 错误处理:在实际应用中,应该添加错误处理逻辑,以处理可能发生的异常情况。
- 请求格式:确保请求格式正确,特别是
messages
的结构和内容。