使用Streamlit和OpenAI搭建一个ChatGPT聊天机器人(附代码)

大数据文摘授权转载自法纳斯特
作者:小F
ChatGPT是OpenAI开发的一个大型预训练语言模型。它是GPT-3模型的变体,GPT-3经过训练,可以在对话中生成类似人类的文本响应。
ChatGPT旨在用作聊天机器人,我们可以对其进行微调,以完成各种任务,如回答问题、提供信息或参与对话。
与许多使用预定义的响应或规则生成文本的聊天机器人不同,ChatGPT经过了训练,可以根据接收到的输入生成响应,从而生成更自然、更多样化的响应。

小F也是去注册并且试用了一下,确实很酷!


ChatGPT可以联系上下文,然后给出回答。
Streamlit则是一个搭建网页的Python库,只需几行代码就可以创建一个交互式、可视化的仪表板。
简单直观,无需相关的Web开发经验,即可轻松创建功能强大的Web页面。
本期,小F就通过这两来搭建一个聊天机器人~
注册OpenAI
首先需要注册OpenAI,这样就可以使用ChatGPT,以及获取api密钥。

网上有很多注册教程,附上链接,小F就不细说了。
如果有问题可以来咨询小F,我都已经实验过啦~
注册教程:
接入微信
一并附上微信聊天机器人教程,需要安装golang和docker环境,然后进行部署。

先使用Dockerfile创建一个镜像,在Dockerfile所在目录终端下运行如下命令。
其中镜像名称是可以自定义修改的。
docker build -t xiaomoinfo/wechatgpt:latest .
Dockerfile内容如下。
:1.19-alpine=""=github.com/houko/wechatgptWORKDIR /appCOPY . /appRUN go mod download && go build -o server main.goCMD ./server
Docker启动容器,可以设置关键字,比如「小F」这个词。

经过使用,发现通过接口获取的回答和网页上不一样。
微信教程:
https://github.com/houko/wechatgpt
微信教程介绍完了,就来看看聊天机器人吧~
聊天机器人
安装两个要用到的Python库。
# 安装streamlit和openaipip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlitpip install -i https://pypi.tuna.tsinghua.edu.cn/simple openai
其中openai库在文档上有一个简单的说明。

文档地址:
引入Python库,通过Streamlit设置页面信息。
import streamlit as stimport openai# 设置标题, 功能介绍st.title("和ChatGPT聊天")st.sidebar.header("功能介绍")st.sidebar.info('''这是一个web应用程序,通过OpenAI的API和ChatGPT模型实现交互(聊天)功能。在文本框中输入问题,然后按Enter键查询,接收ChatGPT的回答''')
查看文档后得知,text-davinci-003是我们所能用到最好的模型了。

密匙信息在个人设置中获取,首次需要自己创建。

添加我们选择的模型以及密匙信息。
# 设置模型和密匙model_engine = "text-davinci-003"openai.api_key = "你的密匙"
通过翻阅个人设置项信息,发现接口调用也是有限制的。


一共18刀的免费额度,小F已经使用了快1美刀了,还剩不少~
使用OpenAI API生成回答,相关参数可以自行看文档。
def ChatGPT(user_query):"""使用OpenAI API生成回答, 选择模型, 设置参数"""# 使用OpenAI API生成回答completion = openai.Completion.create(engine=model_engine,prompt=user_query,max_tokens=1024,n=1,temperature=0.5,)response = completion.choices[0].textreturn response
主函数,问题输入和回答输出显示。
def main():"""获取用户输入, 提交给ChatGPT, 打印输出"""# 获取问题信息user_query = st.text_input("在这里输入问题,回车查询", "Python是什么?")if user_query != ":q" or user_query != "":# 将问题提交给ChatGPT, 返回结果response = ChatGPT(user_query)return st.write(f"{response}")# 主函数main()
最后就可以在终端运行下面的代码了。
streamlit run example.py
结果如下。

点击本地地址,浏览器就会跳转到新的页面。
刚开始应该是这样的,右上角处于RUNNING状态,表示正在查询。

过一小会就会有结果返回。

问一下「如何制作一个聊天机器人」。

发现ChatGPT真的很会做拆解,真的不错。
最后,从页面上看,有点不像一个聊天机器人,感觉就是一问一答而已。
其实只是没把问题一个一个显示而已,机器人实际还是可以联系上下文的。
只不过确实没有网页版的ChatGPT好使,看看后续会不会更新咯。
此外本期也只是调用API接口而已,至于如何真正的建立聊天机器人,就涉及到数据算法模型训练了,大家感兴趣可以自行去学习~


关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中央经济工作会议在北京举行 7904302
- 2 紧急提醒:请在日中国公民进行登记 7809428
- 3 中央定调明年继续“国补” 7714282
- 4 “九天”无人机成功首飞 7618775
- 5 断崖式降温!今冬最强寒潮来了 7523652
- 6 中央经济工作会议释信号:3件事不做 7424142
- 7 中国“空中航母”首飞成功 7329797
- 8 《时代》周刊2025年度人物公布 7236206
- 9 人民空军中日双语发文:大惊小怪 7141666
- 10 寒潮来袭 “速冻”模式如何应对 7044085







大数据文摘
