大数据文摘授权转载自法纳斯特
ChatGPT是OpenAI开发的一个大型预训练语言模型。它是GPT-3模型的变体,GPT-3经过训练,可以在对话中生成类似人类的文本响应。
ChatGPT旨在用作聊天机器人,我们可以对其进行微调,以完成各种任务,如回答问题、提供信息或参与对话。
与许多使用预定义的响应或规则生成文本的聊天机器人不同,ChatGPT经过了训练,可以根据接收到的输入生成响应,从而生成更自然、更多样化的响应。
小F也是去注册并且试用了一下,确实很酷!
ChatGPT可以联系上下文,然后给出回答。
Streamlit则是一个搭建网页的Python库,只需几行代码就可以创建一个交互式、可视化的仪表板。
简单直观,无需相关的Web开发经验,即可轻松创建功能强大的Web页面。
本期,小F就通过这两来搭建一个聊天机器人~
注册OpenAI
首先需要注册OpenAI,这样就可以使用ChatGPT,以及获取api密钥。
网上有很多注册教程,附上链接,小F就不细说了。
如果有问题可以来咨询小F,我都已经实验过啦~
注册教程:
https://sms-activate.org/cn/info/ChatGPT
接入微信
一并附上微信聊天机器人教程,需要安装golang和docker环境,然后进行部署。
先使用Dockerfile创建一个镜像,在Dockerfile所在目录终端下运行如下命令。
其中镜像名称是可以自定义修改的。
docker build -t xiaomoinfo/wechatgpt:latest .
Dockerfile内容如下。
FROM golang:1.19-alpineENV api_key=""RUN export GOPRIVATE=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库在文档上有一个简单的说明。
文档地址:
https://platform.openai.com/docs
引入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].text return 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接口而已,至于如何真正的建立聊天机器人,就涉及到数据算法模型训练了,大家感兴趣可以自行去学习~