Python如何调用ChatGPT API

后端 潘老师 2个月前 (12-19) 83 ℃ (0) 扫码查看

ChatGPT是由OpenAI开发的一种先进的人工智能语言模型,它已经在一个包含书籍、文章和网页的多样化文本的大型数据集上进行了训练。由于其生成类人文本的能力,ChatGPT已成为许多自然语言处理(NLP)应用程序的首选工具,包括聊天机器人、语言翻译和内容生成。

我们可以使用其网页界面访问chat.openai.com的ChatGPT的生成AI功能,或者我们可以通过API以编程方式访问它。API旨在开发能够利用其功能创建用例的应用程序。

在本教程中,我们将学习如何开始使用ChatGPT API,包括创建帐户和生成API密钥。之后,我们将通过设置开发环境来与ChatGPT API一起工作。最后,我们将看到一个简单的ChatGPT API响应的示例,以了解该工具的基本功能。

1.先决条件

要充分利用本教程,您需要以下内容:

  • 已在计算机上安装的Python 3.7或更高版本
  • 通过注册OpenAI帐户获得的OpenAI API密钥
  • 编写和运行Python代码的代码编辑器,如PyCharm(推荐)

2. 获取OpenAI API密钥

ChatGPT API是OpenAI开发的应用程序编程接口,允许开发人员与用于自然语言处理(NLP)任务的生成预训练转换器(GPT)模型进行交互。此API为生成文本、完成提示、回答问题以及使用其LLM模型的任何一个人执行其他NLP任务提供了一个易于使用的界面。

要获取API密钥,我们必须使用我们的ChatGPT凭据访问OpenAI平台,网址为:https://platform.openai.com。OpenAI平台页面提供了一个中心集线器,用于管理我们的OpenAI资源。注册后,导航到API访问页面:https://platform.openai.com/account/api-keys。我们可以在API访问页面上管理我们的ChatGPT API和其他OpenAI服务的API密钥。

在API密钥页面上,我们可以生成新的API密钥,查看和编辑与每个密钥关联的权限,并监视您对API的使用情况。该页面提供了所有API密钥的清晰概述,并允许我们根据需要轻松吊销或重新生成密钥。

单击+创建新的密钥按钮,将创建您的API密钥:

创建API密钥后,我们只有一次机会复制它。重要的是要确保API密钥的安全和机密性,因为任何有访问密钥的人都有可能访问我们的账户和使用我们的资源。我们还应该小心不要与未经授权的用户共享密钥,并避免将密钥提交到公共存储库或以纯文本形式在不安全的通道上共享。

3.使用ChatGPT API入门

要开始使用ChatGPT API进行实验,请从创建一个新的PyCharm项目开始。接下来,在PyCharm中打开一个新的终端,确保您在项目文件夹中,并安装openai包。

pip install openai

然后,按照以下步骤创建一个与LLM使用ChatGPT API交互的非常基本的简单程序:

  • 在您的PyCharm项目中创建一个新的Python文件。
  • 在文件中,导入openai库。您还需要提供您的OpenAI API密钥。
import os
from openai import OpenAI
client = OpenAI(
  api_key=os.environ.get("OPENAI_API_KEY")
)

使用input()函数向用户询问问题。input()函数用于提示用户输入他们想要问ChatGPT API的问题。当用户键入他们的问题并按Enter时,input()函数将返回用户键入的字符串。然后将这个字符串分配给问题变量。

question = input("Ask me anything: ")

1)要将用户的问题从您的Python脚本传递给ChatGPT,您需要使用ChatGPT API Completion函数。client.chat.completions.create()函数向ChatGPT API发送请求,以生成用户输入提示的完成。

  • model参数允许我们指定我们想要用于请求的GPT模型的具体变体或版本,在本例中,它设置为“gpt-3.5-turbo”。
  • temperature参数控制生成响应的创造性。它的范围从0到1。较高的值将导致更具创造性但可能不太连贯的响应,而较低的值将导致更可预测但可能不太有趣的响应。
  • max_tokens参数指定请求和响应应包含的最大令牌数。
  • n参数指定为提示生成的完成数。
  • stop参数指定API应停止生成响应的序列。

2)该函数返回一个包含ChatGPT API生成的响应的JSON对象,然后可以在下一行代码中访问并打印到控制台:

response = client.chat.completions.create(
  messages=[
    {
      "role": "user",
      "content": question
    }
  ],
  model="gpt-3.5-turbo",
  temperature=0,
  max_tokens=1024,
  n=1,
  stop=None
)
print(response)

完整的程序看起来像这样:

import os
from openai import OpenAI
client = OpenAI(
  api_key=os.environ.get("OPENAI_API_KEY")
)
question = input("Ask me anything: ")
response = client.chat.completions.create(
  messages=[
    {
      "role": "user",
      "content": question
    }
  ],
  model="gpt-3.5-turbo",
  temperature=0,
  max_tokens=1024,
  n=1,
  stop=None
)
print(response)

4.运行程序

在屏幕左侧的项目窗格中,找到您在上一步骤中创建的Python文件。右键单击app.py文件,并从上下文菜单中选择运行app.py。

您应该在运行窗口中收到一条消息,要求您向ChatGPT写一个问题。一旦您输入了问题,按Enter键将您的请求提交给ChatGPT API。由ChatGPT API模型生成的响应(ChatCompletion对象)将显示在运行窗口中:

ChatCompletion (id='chatcmpl-8TRL77QbIuITjDXKpR5DJGs0jLoaw', choices=[Choice(finish_reason='stop',
index=0, message=ChatCompletionMessage(content="Sure, here's a classic one for you:\n\nWhy don't scientists trust atoms?\n\nBecause they make up everything!",
role='assistant', function_call=None, tool_calls=None))], created=1702027297,
model='gpt-3.5-turbo-0613', object='chat.completion', system_fingerprint=None,
usage=CompletionUsage(completion_tokens=23, prompt_tokens=11, total_tokens=34))

此响应包含以下字段:

  • choices字段包含一个对象数组,其中包含生成的响应,在这种情况下只有一个响应对象,因为参数n=1。
  • message字段在响应对象中包含由GPT模型生成的实际响应。
  • finish_reason字段表示生成响应的原因;在这种情况下,这是由于模型达到了请求中提供的停止条件。由于在我们的情况下stop=None,因此返回了ChatGPT API的完整响应。
  • created字段指定响应创建的Unix时间戳。
  • id字段是生成此响应的API请求的唯一标识符。
  • model字段指定用于生成响应的GPT-3模型。
  • object字段指定返回的对象类型,在这种情况下是text_completion。
  • usage字段提供有关API请求资源使用情况的信息。它包含用于完成的令牌数、提示中的令牌数以及使用的总令牌数。

从响应中最重要的参数是message字段,它包含向ChatGPT API提出的问题的答案。您可以从主体中轻松分离文本,如下所示:

answer = response.choices[0].message.content
print(answer)

通过这种方式,您可以确保answer变量将包含完整的ChatGPT API文本响应,然后您可以打印出来进行验证。

5.总结

在本教程中,我们学习了开始使用python调用ChatGPT API的基础知识。我们深入探讨了创建和使用ChatGPT API的细节。然后我们通过一个简单的示例演示了python如何获取ChatGPT API响应。

欢迎持续关注潘子夜个人博客,学习愉快哦!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/12634.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】