Python调用open ai接口

要使用 Python 调用 OpenAI 的接口,您需要完成以下几个步骤:

  1. **注册并获取 API 密钥**

  2. **安装 OpenAI 的 Python 库**

  3. **编写 Python 代码以调用 API**

以下是详细的步骤说明:


1. 注册并获取 API 密钥

首先,您需要在 [OpenAI 官方网站](https://beta.openai.com/signup/) 注册一个账户。注册完成后,您需要创建一个 API 密钥:

  1. 登录到您的 OpenAI 账户。

  2. 导航到 [API Keys](https://beta.openai.com/account/api-keys) 页面。

  3. 点击"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)

```

代码说明:

  1. **导入库**

```python

import openai

import os

```

  • `openai`: OpenAI 的官方 Python 库。

  • `os`: 用于访问环境变量。

  1. **设置 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 密钥硬编码在代码中存在安全风险,不推荐。

  1. **定义生成文本的函数**

```python

def generate_text(prompt, max_tokens=100, temperature=0.7):

...

```

  • `prompt`: 输入的提示文本。

  • `max_tokens`: 生成的最大 token 数。

  • `temperature`: 控制输出的随机性。值越高,输出越随机。

  1. **调用 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`: 指定停止生成的条件。

  1. **处理异常**

```python

except Exception as e:

return f"Error: {e}"

```

  • 捕获并返回异常信息。
  1. **主程序**

```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)

```

代码说明:

  1. **定义对话函数**

```python

def chatgpt_conversation(messages, model="gpt-3.5-turbo", max_tokens=150, temperature=0.5):

...

```

  • `messages`: 消息列表,包含系统消息和用户消息。

  • `model`: 使用的模型名称,例如 `gpt-3.5-turbo`。

  • 其他参数与之前相同。

  1. **设置对话内容**

```python

conversation = [

{"role": "system", "content": "你是一个友好的助手。"},

{"role": "user", "content": "你好!"},

{"role": "assistant", "content": "你好!有什么我可以帮您的吗?"},

{"role": "user", "content": "请告诉我一些关于人工智能的知识。"}

]

```

  1. **调用 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 的接口。

相关推荐
不良人龍木木13 小时前
机器学习-常用库
人工智能·机器学习
罗橙7号13 小时前
【pyTorch】关于PyTorch的高级索引机制理解
人工智能·pytorch·python
B站计算机毕业设计之家13 小时前
智能监控项目:Python 多目标检测系统 目标检测 目标跟踪(YOLOv8+ByteTrack 监控/交通 源码+文档)✅
python·yolo·目标检测·目标跟踪·智慧交通·交通·多目标检测
rengang6614 小时前
09-随机森林:介绍集成学习中通过多决策树提升性能的算法
人工智能·算法·随机森林·机器学习·集成学习
江上月51314 小时前
django与vue3的对接流程详解(下)
后端·python·django
nightunderblackcat14 小时前
四大名著智能可视化推演平台
前端·网络·爬虫·python·状态模式
zskj_qcxjqr14 小时前
数字大健康浪潮下:智能设备重构人力生态,传统技艺如何新生?
大数据·人工智能·科技·机器人
小蕾Java14 小时前
PyCharm入门级详细使用手册(Python新手快速上手篇)
ide·python·pycharm
动能小子ohhh14 小时前
AI智能体(Agent)大模型入门【9】--如何在pycharm等其他编译软件调用ocr工具【只写后端代码不演示】
人工智能·python·深度学习·机器学习·pycharm·ocr
MOON404☾14 小时前
Rust 与 传统语言:现代系统编程的深度对比
开发语言·后端·python·rust