Python OpenAI库讲解
1. 概述
openai
是 Python 中用于与 OpenAI 提供的一系列人工智能服务(如 GPT 系列模型)进行交互的官方库。借助这个库,开发者能够轻松地在 Python 代码里调用 OpenAI 的 API 来完成文本生成、图像生成、语音识别等多种任务。
2. 安装
使用 pip
工具可以方便地安装 openai
库,在终端中执行以下命令:
pip install openai
3. 基本使用步骤
3.1 设置 API 密钥
在使用 OpenAI API 之前,需要从 OpenAI 平台获取 API 密钥,并将其设置到代码中。为了安全起见,建议使用环境变量来管理 API 密钥。
import os
import openai
# 从环境变量中获取 API 密钥
openai.api_key = os.getenv("OPENAI_API_KEY")
在终端中设置环境变量:
export OPENAI_API_KEY="your-api-key"
3.2 调用 GPT 模型进行文本生成
以下是一个使用 openai.ChatCompletion.create
方法调用 GPT - 3.5 Turbo 模型进行对话的示例:
import openai
# 设置 API 密钥
openai.api_key = os.getenv("OPENAI_API_KEY")
# 定义对话消息
messages = [
{"role": "system", "content": "你是一个友好的助手。"},
{"role": "user", "content": "今天天气怎么样?"}
]
# 调用 API
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
# 提取回复内容
reply = response.choices[0].message.content
print(reply)
在上述代码中:
messages
列表包含了系统消息和用户消息,系统消息用于设定助手的角色和行为,用户消息是用户提出的问题。openai.ChatCompletion.create
方法用于向 OpenAI API 发送请求,指定使用的模型为gpt-3.5-turbo
。- 最后从响应中提取助手的回复并打印输出。
4. 错误处理
在调用 OpenAI API 时,可能会遇到各种错误,如网络问题、API 密钥无效等。可以使用 try - except
语句来捕获并处理这些错误:
import openai
import os
openai.api_key = os.getenv("OPENAI_API_KEY")
messages = [
{"role": "system", "content": "你是一个友好的助手。"},
{"role": "user", "content": "今天天气怎么样?"}
]
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
reply = response.choices[0].message.content
print(reply)
except openai.error.OpenAIError as e:
print(f"OpenAI API 调用出错: {e}")
except Exception as e:
print(f"发生其他错误: {e}")
调用 DeepSeek API
1. 使用requests库
import requests
import json
# 设置 API 密钥和 API 端点
api_key = "your-deepseek-api-key"
api_url = "https://api.deepseek.com/v1"
# 设置请求头
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
# 设置请求体
data = {
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "你是一个智能助手。"},
{"role": "user", "content": "介绍一下人工智能。"}
]
}
# 发送 POST 请求
response = requests.post(api_url, headers=headers, data=json.dumps(data))
# 检查响应状态码
if response.status_code == 200:
result = response.json()
reply = result["choices"][0]["message"]["content"]
print(reply)
else:
print(f"请求出错,状态码: {response.status_code},错误信息: {response.text}")
2.使用openai库
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False
)
print(response.choices[0].message.content)