编程助手学Python--Deepseek对OpenAI的Python库调用GPT-4模型生成对话回复理解
编程助手学Python--Deepseek对OpenAI的Python库调用GPT-4模型生成对话回复理解
- 1. 导入库
- 2. 设置环境变量
- 3. 打印环境变量
- 4. 配置 OpenAI API
- 5. 打印 API 配置
- 6. 定义对话消息
- 7. 调用 OpenAI API
- 8. 打印 API 响应
- 9. 提取并打印生成的回复
- 10. 代码总结
- 11. 注意事项
- 12. 完整代码示例
- 13. 输出示例
import openai
import os
os.environ["OPENAI_API_KEY"] = "sk-xxx"
os.environ["OPENAI_API_BASE"] = "https://ai.com/v1"
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.api_base = os.getenv("OPENAI_API_BASE")
print(openai.api_key)
print(openai.api_base)
message = [{"role": "system", "content": "How are you today?"}]
res = openai.ChatCompletion.create(model="gpt-4-1106-preview", messages=message, stream=False,)
print(res)
print(res.choices[0].message["content"]) 详细解释
-
这段代码使用 OpenAI 的 Python 库调用 GPT-4 模型生成对话回复。以下是详细解释:
1. 导入库
import openai import os
openai
:OpenAI 官方库,用于调用 OpenAI API。os
:用于访问和操作环境变量。
2. 设置环境变量
os.environ["OPENAI_API_KEY"] = "sk-xxx" os.environ["OPENAI_API_BASE"] = "https://ai.com/v1"
os.environ
:用于设置环境变量。OPENAI_API_KEY
:OpenAI API 的密钥,用于身份验证。OPENAI_API_BASE
:OpenAI API 的基础 URL,可以自定义为代理地址。
3. 打印环境变量
print(os.environ)
- 打印当前进程的所有环境变量,确认
OPENAI_API_KEY
和OPENAI_API_BASE
已正确设置。
4. 配置 OpenAI API
openai.api_key = os.getenv("OPENAI_API_KEY") openai.api_base = os.getenv("OPENAI_API_BASE")
os.getenv
:从环境变量中获取值。openai.api_key
:设置 OpenAI API 的密钥。openai.api_base
:设置 OpenAI API 的基础 URL。
5. 打印 API 配置
print(openai.api_key) print(openai.api_base)
- 打印
openai.api_key
和openai.api_base
,确认配置正确。
6. 定义对话消息
message = [{"role": "system", "content": "How are you today?"}]
message
:一个包含对话消息的列表,每个消息是一个字典。role
:消息的角色,system
表示系统消息。content
:消息内容。
7. 调用 OpenAI API
res = openai.ChatCompletion.create( model="gpt-4-1106-preview", messages=message, stream=False, )
openai.ChatCompletion.create
:调用 OpenAI 的对话生成 API。model
:指定使用的模型,这里是 GPT-4 的预览版。messages
:输入的消息列表。stream
:是否启用流式输出,False
表示一次性返回完整结果。
8. 打印 API 响应
print(res)
- 打印完整的 API 响应,包含模型生成的回复及其他元数据。
9. 提取并打印生成的回复
print(res.choices[0].message["content"])
res.choices
:API 返回的生成结果列表。res.choices[0]
:第一个生成结果。res.choices[0].message["content"]
:提取生成的消息内容并打印。
10. 代码总结
- 设置环境变量
OPENAI_API_KEY
和OPENAI_API_BASE
。 - 配置 OpenAI API 的密钥和基础 URL。
- 定义对话消息并调用 GPT-4 模型生成回复。
- 打印生成的回复内容。
11. 注意事项
-
API 密钥安全性:
-
不要将 API 密钥硬编码在代码中,建议通过环境变量或配置文件加载。
-
示例:
export OPENAI_API_KEY="sk-xxx" export OPENAI_API_BASE="https://ai.com/v1"
然后在代码中使用
os.getenv
获取。
-
-
模型选择:
gpt-4-1106-preview
是 GPT-4 的预览版,可能需要特定权限才能访问。- 如果无法访问,可以替换为
gpt-3.5-turbo
。
-
错误处理:
-
调用 API 时可能会因网络问题或配额不足失败,建议添加错误处理:
try: res = openai.ChatCompletion.create( model="gpt-4-1106-preview", messages=message, stream=False, ) except Exception as e: print(f"An error occurred: {e}")
-
-
流式输出:
- 如果启用
stream=True
,API 会以流式方式返回结果,适用于实时交互场景。
- 如果启用
12. 完整代码示例
import openai import os # 设置环境变量 os.environ["OPENAI_API_KEY"] = "sk-xxx" os.environ["OPENAI_API_BASE"] = "https://ai.com/v1" # 打印环境变量 print(os.environ) # 配置 OpenAI API openai.api_key = os.getenv("OPENAI_API_KEY") openai.api_base = os.getenv("OPENAI_API_BASE") # 打印 API 配置 print(openai.api_key) print(openai.api_base) # 定义对话消息 message = [{"role": "system", "content": "How are you today?"}] # 调用 OpenAI API try: res = openai.ChatCompletion.create( model="gpt-4-1106-preview", messages=message, stream=False, ) # 打印 API 响应 print(res) # 提取并打印生成的回复 print(res.choices[0].message["content"]) except Exception as e: print(f"An error occurred: {e}")
13. 输出示例
假设 API 调用成功,输出可能如下:
{'OPENAI_API_KEY': 'sk-xxx', 'OPENAI_API_BASE': 'https://ai.com/v1', ...} sk-xxx https://ai.com/v1 { "id": "chatcmpl-12345", "object": "chat.completion", "created": 1677652288, "model": "gpt-4-1106-preview", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "I'm just a computer program, so I don't have feelings, but I'm here to help you!" }, "finish_reason": "stop" } ] } I'm just a computer program, so I don't have feelings or experiences, but I'm here and ready to assist you with any questions or tasks you have. How can I help you today?
通过以上步骤,你可以成功调用 OpenAI API 并生成对话回复。