使用 Python 调用 OpenAI 的接口初识
使用 Python 调用 OpenAI 的接口非常简单,以下将结合实际代码示例和使用场景进行详细讲解,步骤如下:
文章目录
1. 安装 OpenAI 官方库
首先,确保安装了 OpenAI 的 Python 客户端库:
pip install openai
2. 准备 API Key
要调用 OpenAI 的接口,需要在 OpenAI 账户 中获取一个 API Key。
将你的 API Key 存储在一个变量中,比如:
OPENAI_API_KEY = "your_openai_api_key"
3. 基本使用示例:调用 ChatGPT
以下是一个简单示例,用 ChatGPT 模型完成一个对话任务:
代码示例:
import openai
# 设置 API 密钥
OPENAI_API_KEY = 'your_openai_api_key'
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
)
completion = client.chat.completions.create(
# model="gpt-4o-mini",
model="gpt-3.5-turbo",
store=True,
messages=[
{"role": "system", "content": "你是一个AI助手"},
{"role": "user", "content": "帮我写一个Python计算两个数之和的函数。"}
]
)
print(completion.choices[0].message);
运行结果:
def add_numbers(a, b):
return a + b
4. 高级用法:场景示例
以下是几个常见的使用场景和实现方法:
场景 1:生成内容(文章/文案/代码)
代码示例:
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一名专业的文案编辑。"},
{"role": "user", "content": "请帮我写一段产品介绍,主题是AI教育工具。"}
],
temperature=0.6,
max_tokens=200,
)
print(response['choices'][0]['message']['content'])
使用场景:
场景 2:数据分析和代码生成
代码示例:
import openai
# 设置 API 密钥
OPENAI_API_KEY = 'your_openai_api_key'
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
)
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一名数据科学家。"},
{"role": "user", "content": "请用Python写一个分析CSV文件的脚本,提取每列的平均值。"}
],
temperature=0.5,
max_tokens=300,
)
print(response['choices'][0]['message']['content'])
可能的生成代码:
import pandas as pd
# 读取CSV文件
def analyze_csv(file_path):
data = pd.read_csv(file_path)
means = data.mean() # 计算每列的平均值
return means
# 示例调用
file_path = "data.csv"
print(analyze_csv(file_path))
使用场景:
场景 3:问答机器人
代码示例:
import openai
# 设置 API 密钥
OPENAI_API_KEY = 'your_openai_api_key'
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
)
def chatbot_response(user_input):
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一个智能问答机器人,可以回答各种问题。"},
{"role": "user", "content": user_input}
],
temperature=0.7,
max_tokens=150,
)
return response['choices'][0]['message']['content']
# 用户输入
user_query = "如何用Python读取JSON文件?"
print(chatbot_response(user_query))
使用场景:
场景 4:批量处理文本
代码示例:
import openai
# 设置 API 密钥
OPENAI_API_KEY = 'your_openai_api_key'
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
)
texts = [
"帮我总结这段话的重点:Python是一种非常流行的编程语言,广泛用于Web开发和数据分析。",
"帮我翻译这句话:Hello, how are you?",
"生成一句关于人工智能未来发展的预测。"
]
responses = []
for text in texts:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": text}],
temperature=0.6,
max_tokens=100,
)
responses.append(response['choices'][0]['message']['content'])
print("\n".join(responses))
使用场景:
5. 注意事项
-
API Key 安全性: 不要在代码中直接暴露 API Key,可以使用环境变量:
import os openai.api_key = os.getenv("OPENAI_API_KEY")
-
费用控制: OpenAI 的 API 按请求的 token 数量计费,注意控制
max_tokens
和调用频率。 -
模型选择: 根据任务选择合适的模型(如
gpt-3.5-turbo
或gpt-4
)。
6. 常见问题与解决方案
问题 1:如何处理 API 限制?
可以通过 openai.error
模块捕获错误并重试:
import openai
from openai.error import RateLimitError
# 设置 API 密钥
OPENAI_API_KEY = 'your_openai_api_key'
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
)
try:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "你好!"}],
)
print(response['choices'][0]['message']['content'])
except RateLimitError:
print("请求频率过高,请稍后再试。")
问题 2:如何提高请求效率?
max_tokens
。通过以上方法,你可以在 Python 中灵活调用 OpenAI 的接口来实现各种场景需求。
作者:匹马夕阳