IDC资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回IDC资讯列表

5分钟实现调用ChatGPT接口API实现多轮问答(chatgpt api调用 python)

发布时间:2023-11-17

背景介绍

A. ChatGPT API的概述和重要性

ChatGPT API是一种通过Python编程语言调用的AI模型接口,通过ChatGPT API可以实现智能对话的功能。

B. ChatGPT API的用处和利用场景

ChatGPT API可以用于构建智能对话机器人,也能够利用于自动客服、聊天利用等领域。

准备工作

A. 获得API Key

在OpenAI官网的API网站中获得API Key,这是调用ChatGPT API的身份认证信息。

B. 安装OpenAI库

使用pip命令安装openai库,这是调用ChatGPT API的必要步骤。

使用Python调用ChatGPT API

A. 发送API要求

使用Python的requests库发送API要求,构建API要求的URL和参数。

B. 处理API响应

API响应是一个包括JSON数据的HTTP响应,使用response.json()方法解析API响应的JSON数据。

示例代码

A. 示例1:基本的智能对话

构建API要求的URL和参数,使用requests库发送API要求并获得响应。

B. 示例2:连续对话的实现

使用上下文信息实现连续对话的功能,使用循环和条件判断控制对话的进行。

常见问题及解决方法

A. API要求失败的问题

检查API要求的URL和参数会不会正确,确保API Key的有效性和权限设置。

B. 连续对话的处理方式

使用列表或字典存储对话的上下文信息,根据需求调剂对话的上下文处理方式。

总结

A. ChatGPT API的优势和利用前景

ChatGPT API具有强大的智能对话能力,可以在自动化客服、聊天助手等领域有广泛利用前景。

B. 使用Python调用ChatGPT API的步骤回顾

获得API Key和安装OpenAI库,构建API要求和处理API响应的步骤。

C. 预期未来ChatGPT API的发展方向

模型继续优化,提供更高质量的智能对话;API性能和稳定性的提升,满足更多利用场景的需求。

chatgpt api调用 python的进一步展开说明

Python调用ChatGPT接口API完成多轮问答

最近,ChatGPT在人工智能领域引发了极大的关注。作为一个使用了几个月的人,我发现这个工具非常实用,真正提高了我的工作效力。作为开发人员,有时候可能需要在自己的代码中加入智能问答功能,因此我开始研究这个问题。网络上有很多类似的方法,但我这里给出一个我目前测试成功并在使用的方法,如果有其他需求,可以自行在网上查找。

1. 下载openai库

我们可使用Python中的openai库来调用ChatGPT。

首先,我们需要下载openai库。下载非常简单,只需在命令行中运行命令pip install openai便可。在下载进程中可能会遇到一些问题,比如pip版本太低,可以运行命令pip install –upgrade pip进行升级。如果显示安装成功但在调用时找不到库,多是openai版本有问题,可以尝试运行命令pip install -U openai进行更新。

在Windows系统中,可使用WIN+R组合键打开运行窗口,输入cmd并运行相关命令。请注意,最好以管理员权限运行cmd命令行窗口。如果依然遇到其他问题,可以尝试切换网络或使用Anaconda来安装。

2. 获得API KEY

在调用接口之前,我们需要申请一个API KEY来获得使用权限。可以选择在OpenAI官网(https://platform.openai.com/account/api-keys)注册账号并申请,或通过其他渠道获得该密钥。API KEY的格式通常为sk-[一大串混乱的字母和数字]。

3. 模型简介

OpenAI开放了两个新模型的API接口,分别是gpt⑶.5-turbo和gpt⑶.5-turbo-0301。我对这两个模型进行了一些研究:

  • gpt⑶.5-turbo需要在数据中明确指定角色和问题内容,而gpt⑶.5-turbo-0301更加关注问题内容而不会特别关注角色。
  • 另外,gpt⑶.5-turbo-0301的有效期到6月1日,而gpt⑶.5-turbo将延续更新。

4. 参数介绍

以下是主要参数的说明:

  • model:模型名称,可选gpt⑶.5-turbo或gpt⑶.5-turbo-0301。
  • messages:数据以JSON格式提供,包括问题描写或角色定义。
  • temperature:控制返回结果的随机性,0.0表示结果固定,随机性可以设置为0.9。
  • max_tokens:最大字符数,注意一个汉字占两个字符,API最多支持4096个token。
  • top_p:以几率最高的词语生成文本,设置为1便可。
  • frequency_penalty:对辞汇进行惩罚,减少重复和没必要要的单词或短语。
  • stream:控制会不会以流式输出方式返回结果。

messages字段需要重点解释一下:我们可以在代码中指定角色类型,主要包括系统(system)、用户(user)和助手(assistant)。

5. 调用接口

经过openai库的安装和参数解释以后,我们可以开始编写代码了。以下是一个简单的多轮问答机器人代码示例:

# -*- coding: utf⑻ -*-
import openai

api_key = "在这里填入你的KEY"
openai.api_key = api_key

def askChatGPT(messages):
    MODEL = "gpt⑶.5-turbo"
    response = openai.ChatCompletion.create(
        model=MODEL,
        messages = messages,
        temperature=1
    )
    return response['choices'][0]['message']['content']

def main():
    messages = [{"role": "user","content":""}]
    while 1:
        try:
            text = input('问:')
            if text == 'quit':
                break
            d = {"role":"user","content":text}
            messages.append(d)

            text = askChatGPT(messages)

            d = {"role":"assistant","content":text}
            print('答:'+text+'

')
            messages.append(d)
        except:
            messages.pop()
            print('ChatGPT:error')
if __name__ == '__main__':
    main()
  

运行上述代码后,控制台将提示我们输入问题。每输入一个问题并按回车键,稍后会显示ChatGPT的回答。我们可以进行连续问答,下图显示了代码的运行效果(测试问题无关价值导向)。

以下是一个单次问答调用的代码示例,本质上与前面的代码一样,供参考:

# -*- coding: utf⑻ -*-
import openai

def openai_reply(content, apikey):
    openai.api_key = apikey
    
    response = openai.ChatCompletion.create(
        model="gpt⑶.5-turbo-0301",
        messages=[{"role": "user", "content": content}],
        temperature=0.5,
        max_tokens=2048,
        top_p=1,
        frequency_penalty=0.7,
    )
     
    return response.choices[0].message.content

if __name__ == '__main__':
    content = '我比较喜欢大海,请给我推荐几个景点。'
    ans = openai_reply(content, '在这里填入你的KEY')
    print(ans)
  

原始返回值的数据格式示例以下:

{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "message": {
                "content": "xxxx",
                "role": "assistant"
            }
        }
    ],
    "created": 1683542226,
    "id": "chatcmpl-",
    "model": "gpt⑶.5-turbo-0301",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 373,
        "prompt_tokens": 30,
        "total_tokens": 403
    }
}
  

6. 总结

以上就是使用程序调用ChatGPT接口的全部步骤。如果在运行代码时出现问题,可以尝试以下方法:找到当前所使用的Python环境的安装目录,进入openai库文件夹(例如D:\environment\python39\Lib\site-packages\openai),替换api_requestor.py文件。替换的文件请关注我的定阅号【靠谱杨的挨踢生活】并回复【chat】获得。

理性看待人工智能的发展,正确认识人类不可替换性。让人工智能作为一个愈发实用的工具服务于我们的生产和生活(个人观点)。

作者:靠谱杨

chatgpt api调用 python的常见问答Q&A

问题1:Python怎样使用ChatGPT API进行调用?

答案:使用Python调用ChatGPT API可以通过以下几个步骤实现:

  1. 首先,你需要具有一个OpenAI账户,并生成一个API密钥。
  2. 安装OpenAI的第三方库,你可使用命令”Pip install openai”来进行安装。
  3. 使用Python的requests库来发送API要求,与ChatGPT API进行交互。
  4. 处理API响应,通过response.json()来获得包括JSON数据的HTTP响应。

下面是一个简单的示例:


        import openai
        import requests
        
        # 设置API密钥
        openai.api_key = "YOUR_API_KEY"
        
        # 构建API要求参数
        data = {
            "prompt": "你好,ChatGPT!",
            "max_tokens": 100,
            "temperature": 0.5
        }
        
        # 发送API要求
        response = requests.post("https://api.openai.com/v1/engines/davinci/completions", headers={
            "Authorization": f"Bearer {openai.api_key}"
        }, json=data)
        
        # 处理API响应
        if response.status_code == 200:
            result = response.json()
            print(result["choices"][0]["text"])
        else:
            print("API要求失败")
    

这是一个简单的使用Python调用ChatGPT API的示例,你可以根据自己的需求修改API参数和处理API响应的代码。

子点1:如何获得ChatGPT API的API密钥?

要获得ChatGPT API的API密钥,你需要具有一个OpenAI账户,并进行以下操作:

  1. 登录OpenAI官网,在”Personal” -> “View API keys”页面生成API密钥。

子点2:怎么安装OpenAI的第三方库?

安装OpenAI的第三方库可以通过以下命令实现:


        pip install openai
    

子点3:怎么处理ChatGPT API的响应?

处理ChatGPT API的响应可使用response.json()方法获得包括JSON数据的HTTP响应。下面是一个简单的处理响应的示例:


        if response.status_code == 200:
            result = response.json()
            print(result["choices"][0]["text"])
        else:
            print("API要求失败")
    

在这个示例中,我们首先判断API的响应状态码会不会为200,如果是则将响应转换为JSON格式,并打印出返回的文本内容。如果API要求失败,则打印出”API要求失败”。

TikTok千粉号购买平台:https://tiktokusername.com/