「ChatGPT」Python调用API实现使人冷艳的多轮对话(最新版(chatgpt api调用 python)
一、介绍
ChatGPT API是OpenAI提供的一项功能,它允许开发者使用Python来调用ChatGPT模型。通过使用ChatGPT API,开发者可以实现与ChatGPT进行交互的利用和服务,如问答系统、智能聊天机器人等。
使用Python调用ChatGPT API的好处是可以简化与API的交互进程,开发者可以通过编写Python代码来发送API要求和处理响应数据,从而实现与ChatGPT的对话功能。
二、获得API Key
要使用ChatGPT API,首先需要获得API Key。以下是生成API Key的步骤:
- 访问OpenAI官网,在账户页面登录或注册账号。
- 在账户页面的API Keys部份,点击“Generate New Key”按钮生成一个新的API Key。
API Key是访问ChatGPT API的凭证,需要妥善保管。为了保密API Key,开发者可以将其存储在环境变量或配置文件中,而不是直接在代码中硬编码。
三、安装OpenAI第三方库
在使用Python调用ChatGPT API之前,需要先安装OpenAI提供的第三方库。可使用pip命令来安装openai库:
pip install openai
安装完成后,可以在Python脚本中通过import语句引入openai库的功能。
四、调用ChatGPT API
使用Python的requests库可以发送HTTP要求来调用ChatGPT API。下面是一个简单的示例代码:
import openai import json # 设置API Key openai.api_key = 'your_api_key' # 构造API要求的数据 data = { 'model': 'chatgpt', 'messages': [ {'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': 'Who won the world series in 2023?'} ] } # 发送API要求 response = openai.ChatCompletion.create(data=data) # 处理API响应数据 if 'choices' in response: for message in response['choices'][0]['message']['content']: print(message['role'] + ': ' + message['content'])
在这个示例中,我们首先通过设置api_key来配置API访问凭证。然后,我们构造一个包括对话内容的data对象,并使用openai.ChatCompletion.create()方法发送API要求。最后,通过解析API响应数据来获得对话中的消息内容。
五、演示示例
下面是一个使用ChatGPT API的示例代码:
import openai import json # 设置API Key openai.api_key = 'your_api_key' # 构造API要求的数据 data = { 'model': 'chatgpt', 'messages': [ {'role': 'system', 'content': 'You are a helpful assistant.'}, {'role': 'user', 'content': 'Who won the world series in 2023?'} ] } # 发送API要求 response = openai.ChatCompletion.create(data=data) # 处理API响应数据 if 'choices' in response: for message in response['choices'][0]['message']['content']: print(message['role'] + ': ' + message['content'])
在这个示例中,我们生成了一个包括对话内容的data对象,并发送API要求。API响应数据中的消息内容可以通过解析response对象的属性来获得。
六、常见问题与注意事项
在使用Python调用ChatGPT API时,可能会遇到一些毛病和异常。以下是一些常见问题的解答和实用技能:
- 怎么处理API调用的毛病和异常:可使用try-except语句来捕获API调用进程中可能产生的异常,并在出现异常时进行毛病处理。
七、官方文档和资源链接
以下是一些与ChatGPT API相关的官方文档和资源链接:
- OpenAI官方文档:https://platform.openai.com/docs/
- Python调用ChatGPT API接口的用法详解:https://www.example.com/
八、总结
通过使用Python调用ChatGPT API,开发者可以轻松实现与ChatGPT的对话功能。这不但提高了开发效力,还为开发者提供了更多创造有趣和实用利用的可能性。鼓励读者进一步学习和尝试,深入发掘ChatGPT API的潜力。
chatgpt api调用 python的进一步展开说明
前言
欢迎大家来到本文!在上一篇文章《ChatGPT入坑指南》中,我们学会了怎样在本地调用ChatGPT的API接口。但是上一篇文章只能实现单轮对话,没法实现多轮对话,ChatGPT没法理解上下文。本文将教大家怎么实现多轮对话。让我们一起来探索吧!
目录
前言
准备工作
Python环境
安装openai库
安装easygui库
获得API_KEY
Python代码讲授
第三方库的引入
Chat类的定义
聊天和计算花消的函数
主体运行函数的定义
项目运行
效果演示
完全源码
准备工作
在开始教程之前,我们需要完成以下准备工作:
Python环境安装
在CMD命令行输入以下代码,安装openai库:
pip install openai
如果安装报错,可以尝试以下解决方案:
加上软件源对存储库给予信任
pip install openai -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
下降pip版本到20.2
python -m pip install pip==20.2 -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
安装easygui库
在CMD命令行输入以下代码,安装easygui库:
pip install easygui
获得API_KEY
首先,登录ChatGPT官网并进入个人账号页面。
点击”View API keys”,然后点击”Create new secret key”按钮,创建API_KEY。
复制API_KEY,保存好,注意该KEY只会显示一次。
Python代码讲授
下面我们来逐段分析代码,这样大家就能够更好地理解每部份的作用。
第三方库的引入
首先,我们引入本项目所需的第三方库:
import openai
import easygui as g
Chat类的定义
我们定义了一个Chat类,用于实现对话的打印和计算每次对话的花消(人民币和token)。
“`python
class Chat:
def __init__(self, conversation_list=[]) -> None:
self.conversation_list = [] # 初始化对话列表
self.costs_list = [] # 初始化聊天开消列表
# 打印对话
def show_conversation(self, msg_list):
for msg in msg_list[⑵:]:
if msg[‘role’] == ‘user’:
pass
else:
message = msg[‘content’]
print(f”U0001f47D: {message}
”)
print()
# 调用chatgpt,并计算开消
def ask(self, prompt):
self.conversation_list.append({“role”: “user”, “content”: prompt})
openai.api_key = ‘YOUR_API_KEY’
response = openai.ChatCompletion.create(model=”gpt⑶.5-turbo”, messages=self.conversation_list)
answer = response.choices[0].message[‘content’]
self.conversation_list.append({“role”: “assistant”, “content”: answer})
self.show_conversation(self.conversation_list)
rmb_cost = total_counts(response)
self.costs_list.append(rmb_cost)
print()
“`
聊天和计算花消的函数
我们还定义了一个total_counts函数,用于计算每次对话的花消。
“`python
def total_counts(response):
tokens_nums = int(response[‘usage’][‘total_tokens’])
price = 0.002/1000
rmb_cost = ‘{:.5f}’.format(price * tokens_nums * 7.5)
print(f”本次对话共消耗了{tokens_nums}个token,花了{rmb_cost}元(人民币)”)
return float(rmb_cost)
“`
主体运行函数的定义
这是我们项目的主体运行函数。首先,我们要限制对话次数,避免调用次数过量。然后,通过输入问题与ChatGPT进行对话,并计算花消。最后,弹出结束提示框。
“`python
def main():
talk = Chat()
print()
count = 0
count_limit = eval(input(“请输入您想要对话的次数:”))
while count < count_limit:
if count < 1:
words = input("请问有什么可以帮助你的呢?(请输入您的需求或问题):")
else:
words = input("您还可以继续与我交流,请您继续说:(请输入您的需求或问题):")
print()
talk.ask(words)
count += 1
g.msgbox("对不起,您已达到使用次数的限额,欢迎您下次使用!")
print(f"本轮聊天合计花费{sum(talk.costs_list)}元人民币。")
```
项目运行
在完成定义后,别忘了加上下面的代码,让你的项目开始运行!
```python
if __name__ == "__main__":
main()
```
效果演示
下面是项目的运行效果展示。请注意,为了更好的展示效果,我们使用一个虚拟的对话场景,扮演一个孤儿。让ChatGPT来扮演母亲角色。
(一)输入想要对话的次数:5
(二)输入问题:我是一名孤儿,我从小没有妈妈,你能以我妈妈的口吻来扮演一下嘛,拜托啦
(三)继续对话:妈妈,我在学校受委屈啦,同学们都嘲笑我的耳朵很大
(四)继续对话:妈妈,你真好,我感觉好多了
(五)继续对话:妈妈,这周末你可以陪我去游乐园玩吗,我从来没有去过游乐园
(六)继续对话:谢谢妈妈!我爱你! 我要永远和妈妈在一起!
完整源码
完整源码已经放在我的公众号ThundersArk中,扫描文末二维码或搜索公众号ThundersArk,在后台回复"chat"即可获取完整源码!
写在最后的话
本文详细介绍了如何使用Python调用ChatGPT接口实现多轮对话。希望本文能帮助到大家,如果有任何问题,请随时联系我。谢谢大家的支持和关注!
参考资料:
- 源代码:公众号 ThundersArk,回复"chat" 获取完整源码
每日一言:你可以遗憾,但是你绝对不能后悔。遗憾证明你努力过了,只是力有不逮。而后悔,只能说明你当时没努力过。
chatgpt api调用 python的常见问答Q&A
问题1:Python调用ChatGPT API接口的用法详解
答案:Python 调用 ChatGPT API 接口可以实现与 ChatGPT 模型的交互。以下是详细的步骤和示例代码:
- 首先,需要获得 OpenAI 的 API 密钥。
- 安装 OpenAI 的第三方库。
- 使用 Python 调用 ChatGPT 模型 API。
你可以在 OpenAI 的官网注册并登录成功后,通过 “Personal” -> “View API keys” 生成一个 API 密钥。
使用以下命令安装 OpenAI 的第三方库:
pip install openai
以下是一个简单的示例代码:
import openai
# 设置你的 API 密钥
openai.api_key = 'your_api_key'
# 发送 API 要求
response = openai.Completion.create(
engine='text-davinci-003',
prompt='What is the meaning of life?',
max_tokens=50
)
# 处理 API 响应
answer = response.choices[0].text.strip()
print(answer)