要使用 Python 调用 OpenAI 的接口,您需要完成以下几个步骤:
-
**注册并获取 API 密钥**
-
**安装 OpenAI 的 Python 库**
-
**编写 Python 代码以调用 API**
以下是详细的步骤说明:
1. 注册并获取 API 密钥
首先,您需要在 [OpenAI 官方网站](https://beta.openai.com/signup/) 注册一个账户。注册完成后,您需要创建一个 API 密钥:
-
登录到您的 OpenAI 账户。
-
导航到 [API Keys](https://beta.openai.com/account/api-keys) 页面。
-
点击"Create new secret key"按钮,生成一个新的 API 密钥。**请妥善保存此密钥,因为之后无法再次查看。**
2. 安装 OpenAI 的 Python 库
OpenAI 提供了官方的 Python 库,您可以使用 `pip` 来安装:
```bash
pip install openai
```
如果您使用的是 Python 3,可能需要使用 `pip3`:
```bash
pip3 install openai
```
3. 编写 Python 代码以调用 API
以下是一个使用 OpenAI 的 `text-davinci-003` 模型生成文本的示例代码:
```python
import openai
import os
设置您的 OpenAI API 密钥
建议将密钥存储在环境变量中,而不是硬编码在代码中
例如,在终端中运行:export OPENAI_API_KEY='your_api_key_here'
openai.api_key = os.getenv("OPENAI_API_KEY")
def generate_text(prompt, max_tokens=100, temperature=0.7):
"""
使用 OpenAI 的 GPT-3 模型生成文本。
参数:
-
prompt (str): 输入的提示文本。
-
max_tokens (int): 生成的最大 token 数。
-
temperature (float): 模型的温度参数,控制输出的随机性。
返回:
- str: 生成的文本。
"""
try:
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=max_tokens,
temperature=temperature,
n=1,
stop=None,
timeout=10
)
return response.choices[0].text.strip()
except Exception as e:
return f"Error: {e}"
if name == "main":
user_prompt = "写一段关于人工智能的简短介绍。"
generated = generate_text(user_prompt, max_tokens=150, temperature=0.5)
print("生成的文本:")
print(generated)
```
代码说明:
- **导入库**
```python
import openai
import os
```
-
`openai`: OpenAI 的官方 Python 库。
-
`os`: 用于访问环境变量。
- **设置 API 密钥**
```python
openai.api_key = os.getenv("OPENAI_API_KEY")
```
- 推荐将 API 密钥存储在环境变量中,以增强安全性。您可以在终端中运行以下命令来设置环境变量:
```bash
export OPENAI_API_KEY='your_api_key_here'
```
- 或者,您也可以直接在代码中设置:
```python
openai.api_key = "your_api_key_here"
```
**注意**: 将 API 密钥硬编码在代码中存在安全风险,不推荐。
- **定义生成文本的函数**
```python
def generate_text(prompt, max_tokens=100, temperature=0.7):
...
```
-
`prompt`: 输入的提示文本。
-
`max_tokens`: 生成的最大 token 数。
-
`temperature`: 控制输出的随机性。值越高,输出越随机。
- **调用 OpenAI 的 Completion API**
```python
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=max_tokens,
temperature=temperature,
n=1,
stop=None,
timeout=10
)
```
-
`engine`: 使用的模型名称,例如 `text-davinci-003`。
-
`n`: 返回的生成结果数量。
-
`stop`: 指定停止生成的条件。
- **处理异常**
```python
except Exception as e:
return f"Error: {e}"
```
- 捕获并返回异常信息。
- **主程序**
```python
if name == "main":
user_prompt = "写一段关于人工智能的简短介绍。"
generated = generate_text(user_prompt, max_tokens=150, temperature=0.5)
print("生成的文本:")
print(generated)
```
- 设置用户提示,调用生成函数,并打印结果。
示例输出:
```
生成的文本:
人工智能(AI)是指由计算机系统执行通常需要人类智能的任务,例如视觉识别、语音识别、决策和语言翻译。AI 技术正在迅速发展,涵盖了从简单的自动化到复杂的机器学习算法等多个领域。通过利用大数据和强大的计算能力,AI 在医疗、金融、交通等众多行业中展现了巨大的潜力。
```
4. 其他示例
使用 ChatGPT 模型进行对话
如果您使用的是 ChatGPT 模型,可以参考以下示例:
```python
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
def chatgpt_conversation(messages, model="gpt-3.5-turbo", max_tokens=150, temperature=0.5):
"""
使用 ChatGPT 模型进行对话。
参数:
-
messages (list): 消息列表,每个元素是一个字典,包含 'role' 和 'content'。
-
model (str): 使用的模型名称。
-
max_tokens (int): 生成的最大 token 数。
-
temperature (float): 模型的温度参数。
返回:
- str: 生成的文本。
"""
try:
response = openai.ChatCompletion.create(
model=model,
messages=messages,
max_tokens=max_tokens,
temperature=temperature
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"Error: {e}"
if name == "main":
conversation = [
{"role": "system", "content": "你是一个友好的助手。"},
{"role": "user", "content": "你好!"},
{"role": "assistant", "content": "你好!有什么我可以帮您的吗?"},
{"role": "user", "content": "请告诉我一些关于人工智能的知识。"}
]
response = chatgpt_conversation(conversation, model="gpt-3.5-turbo", max_tokens=150, temperature=0.5)
print("ChatGPT 的回答:")
print(response)
```
代码说明:
- **定义对话函数**
```python
def chatgpt_conversation(messages, model="gpt-3.5-turbo", max_tokens=150, temperature=0.5):
...
```
-
`messages`: 消息列表,包含系统消息和用户消息。
-
`model`: 使用的模型名称,例如 `gpt-3.5-turbo`。
-
其他参数与之前相同。
- **设置对话内容**
```python
conversation = [
{"role": "system", "content": "你是一个友好的助手。"},
{"role": "user", "content": "你好!"},
{"role": "assistant", "content": "你好!有什么我可以帮您的吗?"},
{"role": "user", "content": "请告诉我一些关于人工智能的知识。"}
]
```
- **调用 ChatGPT API 并打印结果**
```python
response = chatgpt_conversation(conversation, model="gpt-3.5-turbo", max_tokens=150, temperature=0.5)
print("ChatGPT 的回答:")
print(response)
```
示例输出:
```
ChatGPT 的回答:
当然可以!人工智能(AI)是指由计算机系统执行通常需要人类智能的任务,例如视觉识别、语音识别、决策和语言翻译。AI 技术正在迅速发展,涵盖了从简单的自动化到复杂的机器学习算法等多个领域。通过利用大数据和强大的计算能力,AI 在医疗、金融、交通等众多行业中展现了巨大的潜力。
```
5. 注意事项
-
**API 费用**: OpenAI 的 API 不是免费的,具体费用请参考 [OpenAI 定价页面](https://openai.com/pricing)。
-
**API 限制**: 请注意 API 的使用限制,例如速率限制和配额限制。
-
**安全性**: 不要在公共代码库中暴露您的 API 密钥。可以使用环境变量或配置文件来存储密钥。
通过以上步骤,您就可以使用 Python 调用 OpenAI 的接口。