当前位置:   article > 正文

快速搭建能远程访问的Web页面,实现ChatGPT聊天机器人_web 前端 chatgpt对话框 csdn

web 前端 chatgpt对话框 csdn

streamlit是比较热门的Web应用程序框架,基于Python,优势是只要几行代码就可以创建一个交互式、可视化的web仪表板。通过接入OpenAI的API,快速搭建基于ChatGPT聊天页面,实现对话的方式进行交互,

将streamlit和cpolar搭配使用,就可以快速搭建一个能够远程访问的ChatGPT聊天页面,下面通过windows环境简单部署一个接入OpenAI的API的聊天界面,并结合cpolar实现远程访问

环境
  • Python 3.11.4
  • windwos 10
1. 本地服务创建

安装OpenAPI和Streamlit包,分别执行下面命令,安装三个对应的包,第一个是openai的包,下面两个是streamlit包

pip install openai
pip install streamlit
pip install streamlit_chat
  • 1
  • 2
  • 3

安装完成后,在本地目录.我们创建一个.py的文件,取名为chatgpt_test,具体名称可以自定义

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uFhTo7re-1692321707409)(C:\Users\86131\AppData\Roaming\Typora\typora-user-images\image-20230817124334536.png)]

然后把下面的python代码复制到上面创建的python文件中

# chat_bot.py

import openai
import streamlit as st
from streamlit_chat import message

#申请的api_key
openai.api_key = "xxxxxxxxxxxxxxxxx" 
def generate_response(prompt):
    completion=openai.Completion.create(
        model='text-davinci-003',
        prompt=prompt,
        max_tokens=1024,
        temperature=0.6
    )
    message=completion.choices[0].text
    return message

st.markdown("#### 我是ChatGPT聊天机器人,我可以回答您的任何问题")
if 'generated' not in st.session_state:
    st.session_state['generated'] = []
if 'past' not in st.session_state:
    st.session_state['past'] = []
user_input=st.text_input("请输入您的问题:",key='input')
if user_input:
    output=generate_response(user_input)
    st.session_state['past'].append(user_input)
    st.session_state['generated'].append(output)
if st.session_state['generated']:
    for i in range(len(st.session_state['generated'])-1, -1, -1):
        message(st.session_state["generated"][i], key=str(i))
        message(st.session_state['past'][i], 
                is_user=True, 
                key=str(i)+'_user')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

python 文件可以使用vscode或者notepad++打开,复制后,我们可以看到,有个位置设置openpi的api_key.这个api_key可以在注册Openai账号申请.或者在网络上查找某些免费的key使用,设置完成后记得保存文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X6PA4Yk8-1692321707410)(https://images.cpolar.com//img/image-20230817124912970.png)]

然后在文件夹打开powershell,输入命令,执行启动我们刚刚创建的文件

streamlit run chat_bot.py
  • 1

首次执行会提示输入一个邮箱,我们按照提示输入邮箱回车

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XkA5qJBS-1692321707410)(https://images.cpolar.com//img/image-20230817125725094.png)]

运行成功后.我们可以看到控制台出现的本地访问地址.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-usbFe3D9-1692321707410)(https://images.cpolar.com//img/image-20230817130042686.png)]

在浏览器输入本地访问的地址后,我们即可看到聊天窗口界面,现在就可以愉快聊天了.,如果输入问题后提示错误,可能是key失效了,需要重新设置openai key秘钥,本地访问我们测试成功,接下来安装cpolar内网穿透工具实现远程访问.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MURKELHg-1692321707411)(https://images.cpolar.com//img/image-20230817125911656.png)]

2. 安装cpolar

cpolar官网:https://www.cpolar.com/

访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。

  • windows系统:在官网下载安装包后,双击安装包一路默认安装即可。
  • linux系统:支持一键自动安装脚本,详细请参考官网文档——入门指南

cpolar安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录。

20230130105810

3. 创建公网地址

点击左侧仪表盘的隧道管理——创建隧道,创建一个我们上面运行python 文件后看到的8501隧道(具体端口以自己本地为准)

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:8501
  • 域名类型:免费选择随机域名
  • 地区:选择China vip

点击创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QYkQOCmH-1692321707411)(https://images.cpolar.com//img/image-20230817132144464.png)]

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,有两种访问方式,一种是http 和https

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZI7Lir2H-1692321707411)(https://images.cpolar.com//img/image-20230817132215005.png)]

4. 公网访问

我们使用http公网地址访问,即可看到我们刚刚运行的本地界面站点,这样一个公网地址访问就创建好了,同样,https也是可以访问的

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B5vdzTpW-1692321707412)(https://images.cpolar.com//img/image-20230817132343019.png)]](https://img-blog.csdnimg.cn/adb7e5cd896e435fadb184025219cafa.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/175132
推荐阅读
相关标签
  

闽ICP备14008679号