使用python调用ChatGPT的API,打造属于自己的桌面智能助手
上期图文教程,我们介绍了ChatGPT的注册使用过程,并且使用ChatGPT生成了一个CNN卷积神经网络的代码,由于ChatGPT的官方只公布了GPT-3的API接口,因此我们基于ChatGPT 3代的API接口打造自己的智能小助手。
这里刚开始,由于我直接使用ChatGPT-3 API text-davinci-003模型搭建的网站,在网站上问它ChatGPT的API接口是什么,它回复是: https://api.chatgpt.com/
我按照官方提供的python代码,使用以上地址并不能使用此API进行调用,然后就有了开头的那张图片,直接在openAI 的官方网站确认了一下,其真正的api接口地址是:https://api.openai.com/v1
因此有了以上的API接口,我们便可以使用python代码来使用ChatGPT了,只是API接口版本相比官方的3.5稍微有些落后,且官方还发布了plus版本,但是针对绝大多数问题,3代的接口依然很强大。
获取ChatGPT的API key
在使用API接口的前题下,需要我们按上期的文章,注册自己的OpenAI账号,在后台查看自己的API接口key。
首先,我们在openAI 的官方网站界面,直接点击右上角的API,然后登录自己的账号,点击自己的头像,下面有view api keyshttps://platform.openai.com/overview
然后在api keys界面,点击下面的create new secret key,便会生成自己的key,点击复制即可,这里需要写在自己的python代码中。
python代码实现ChatGPT的API调用
在我们问ChatGPT的API接口时,它不仅告诉你它的接口在哪里,还提供了官方示例。
import openai import os openai.api_key = os.getenv("OPENAI_API_KEY") prompt = "Hello, how are you today?" response = openai.Completion.create( engine="text-davinci-003", prompt=prompt, max_tokens=50 ) print(response.choices[0].text)
首先需要我们安装openai 的第三方库,这里最好自己的python版本大于3.9,安装完成后,我们便可以使用openai库进行chatGPT的调用工作了。
第三行代码,我们需要提供上一个步骤的api key
然后第五行代码,是自己需要问的问题,当然支持中文输入,只是中文输入较慢,因为它首先需要翻译成英文,然后进行自己数据集的搜集操作,然后再次翻译成中文。而英文就省略了以上的翻译过程。
然后,我们直接使用openai.Completion.create函数就可以调用chatGPT了。 engine="text-davinci-003", 模型选择, 这个可以到https://platform.openai.com/playground后台进行调试使用 prompt=prompt, 输入的问题 max_tokens=50 https://platform.openai.com/playground #API接口 https://powersai.info/ai-chat/ #GPT-3接口
以上就可以完成chatGPT的API调用了,但是考虑到一些网站的特殊情况,我们也可以使用python 的request库进行chatGPT的API调用。import requests # Your OpenAI API Key api_key = "YOUR KEYS" # The text prompt you want to generate a response input_prompt = input("输入需要跟chat AI的聊天内容:") prompt = input_prompt # The URL for OpenAI"s API url = "https://api.openai.com/v1/completions" # The headers for the API request headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } params ={ "model": "text-davinci-003", "prompt": prompt, "temperature": 0.7, "max_tokens": 256, "top_p": 1, "frequency_penalty": 0, "presence_penalty": 0 } # Make the API request response = requests.post(url, headers=headers, json=params) # Check if the request was successful if response.status_code == 200: # Extract the generated text from the response generated_text = response.json()["choices"][0]["text"] print(generated_text) else: # Handle the error print(f"Request failed with status code {response.status_code}")
使用requests.post函数来调用chatGPT的API,其参数如下:url,需要请求的API地址 headers: "Content-Type": "application/json","Authorization": f"Bearer {api_key}" 请求头 json:需要传递的参数,其参数跟使用openai库类似,需要提供模型名称,prompt以及其他基础参数等
然后,我们就可以运行以上代码了,当然,我们可以修改一下以上代码,把整个输入与输出间的代码放置在一个while true循环里面,这样,我们就可以一直问chatGPT 问题了。我们也可以使用QT,TK 等GUI程序设计一个自己的简单输入界面来进行ChatGPT的使用,甚至我们可以开发自己网站应用等。且现在很多语音转文字API也很强大,我们可以使用语音API可以直接跟ChatGPT进行语音聊天等。
正常上班中现在每天能够正常上班成了一种幸运了当前的形势很严峻不知道明天和意外哪个先来,就先过好今天看似很平常的事情常常无辜地被打乱不要各种抱怨正常的工作生活虽然受到了各种影响难免会产生消极悲
中国游客到朝鲜旅行,见到的街景和路人到朝鲜旅行,主要是想看看朝鲜百姓的生活。在朝鲜的几天时间,我时刻观察着旅游大巴外的一切。遇到有趣的画面,我总想要用镜头记录下来。在朝鲜旅游,拍照有规定。游客不可以独自跑到一个地方拍
重生之路五人八日泰国自由行之普吉街景13山路弯弯终于看到泰国特色的双条车头盔的普及率之高,说明安全意识强第一次看到这么多的双条车特色边三轮这里也不少整洁的道路上什么车都有我所在的城市这样的电线电杆早成了历史街上随处可见的
酒店如何成就一个妙趣梦工厂本文来自微信公众号空间秘探(IDMESPACE007),作者杜卡纷。旅行,无论何时都令人振奋,有趣的旅行故事能为生活带来美好的期待。而酒店将人们身处异地但仍然不可或缺的安定感拉回视
数百人在谷歌街景中找到已故亲友,感到安慰现代互联网的发达是一把双刃剑,有时它让我们沉陷于信息的海洋,时间不知不觉溜走,还有一些时候,它会以意想不到的方式安慰我们。据英国每日邮报当地时间10月20日报道,谷歌街景的时间回溯
西藏第三大城市昌都市区的街景,不愧为藏东明珠,名不虚传这里是刘小顺的旅行和生活研究所。前些天,我前往位于西藏自治区东部的昌都市旅游,这座城市是我国西藏自治区仅次于拉萨和日喀则的第三大城市,被称为西藏自治区的东大门,又被称为藏东明珠,确
尊重与善良你们要尊重并牢牢抓住那些为你们说话的人。为他们提供一切的流量。并且要分辨哪些是好师傅,哪些是坏师傅。微博刚刚兴起来的时候,有很多坏师傅掺杂在其中,蒙蔽了你们。历史螺旋上升,允许你们
内马尔伤势严重,能否继续上场?已有答案巴西国家队队医已经在新闻发布会上确认病情!内马尔在巴西20塞尔维亚的比赛之后,内马尔脚踝扭伤。内马尔因为脚踝受伤被替换下场,他走路有些一瘸一拐。队医对内马尔的右脚踝进行冰敷治疗。这
权重股集体大涨,原因是这样,接下来行情会怎么走?今天的A股,就像是行尸走肉,眼睁睁的看着银行,保险,券商地产在不断的拉升,特别是房地产股票掀起了涨停潮,但个股却跌的特别的惨,这样的行情只挣指数不挣,个股的行情再次上演!这样的行情
天黑请开灯昏昏噩噩不知多少天,新闻早都不看了。娱乐平台也不愿意打开,接受的负面消息太多,不能消化。抖抖腿,扭扭腰。再去撸撸我的花花草草。今夕不知是今夕。凭窗眺望,见长空万里,云无留迹。乘梦来
你那么会省钱,他有感谢过你吗?他只觉得你傻而已越会省钱,越会让人觉得你不值得好的东西,你同意吗?我先问一下,他会因为你为他省钱而感谢你吗?我想99的人都不会吧!呆无辜越会省钱,越让人觉得你很廉价,不值得为你花心思,也不值得为你