# python-web **Repository Path**: xiongxiaopeng/python-web ## Basic Information - **Project Name**: python-web - **Description**: pyrmaind是一个python写的web仓库 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-07 - **Last Updated**: 2024-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ChatGPT-Web - 这是一个基于OpenAI ChatGPT3.5 模型API的前端项目,可进行私有化部署 ## 项目功能 - 基本问答界面 - 多会话和上下文逻辑 - 新增/删除会话 - 导入/导出会话 - 问答使用卡片展示💥 - 渲染 (markdown支持数学公式、代码高亮、图片、emoji表情) - 折叠 (可折叠回答,减少翻页滚动) - 跳过 (跳过其中部分问题/回答,即让模型丢失部分知识) - 编辑 (编辑问题/回答) - 重发 (重发问题/回答) - 删除 (删除问题/回答) - 拖拽 (可交换问答的顺序) - 可前端设置OPENAI_API_KEY - 响应式、支持移动端 ![公式代码渲染](chatGPT/imgs/a.png) ![图像渲染](chatGPT/imgs/b.png) ![修改折叠跳过](chatGPT/imgs/c.png) ![修改结果](chatGPT/imgs/d.png) ![会话面板](chatGPT/imgs/e.png) ![移动设备](chatGPT/imgs/f.png) ## 快速开始 - 版本 `node >= 18` ```sh node -v ``` ### 本地部署 - 安装依赖、打包 ```sh cd ChatGPT npm install npm run build ``` - 进入打包好的文件夹`\dist` ```sh python -m http.server 或者 python3 -m http.server ```` 在浏览器打开`http://127.0.0.1:8000/`即可 - 你也可以直接启动项目 ```sh npm install npm run dev ``` - 如果出现`Cannot find module 'unplugin-auto-import/vite'`错误请先安装[ElementPlus](https://element-plus.gitee.io/zh-CN/guide/installation.html)和自动导入插件 ```sh npm install element-plus --save npm install -D unplugin-vue-components unplugin-auto-import ``` - 使用docker方式部署 首先进入python-web/ChatGPT目录执行下列命令 ```sh docker build -t chatgpt-web . docker run -p 5200:5200 -d chatgpt-web ``` ## 开始使用 - 使用需要提前注册OpenAI账号,在`https://platform.openai.com/account/api-keys`里获取API KEY,然后在系统配置里填入即可使用(需要翻墙或者代理)。 ## 代理 - 因为默认是使用OpenAI官网的API,所以需要开代理,相关配置在`env.js`文件里,`proxy`参考axios的代理配置写法 - 社区有大佬分享的代理地址,只要修改`env.js`文件里的`apiURL`即可,但是请注意安全,你的`OPENAI_API_KEY`可能会泄露。 ## 上下文会话是怎么实现的? - 请求的时候会将历史会话记录全部传给ChatGPT,从而实现上下文会话功能,所以长会话会消耗许多token。此外由于官方限制了token大小,所以超过限制的token大小的会话会直接截断,导致在长对话中模型遗忘之前的知识,请注意。 - 你可以删除或者跳过一些不重要或会影响模型回答的信息来更好的使用ChatGPT。 ## 其他 - 因为是前端直接使用axios请求API,所以会暴露`OPENAI_API_KEY`,请注意自己的`OPENAI_API_KEY`的安全 - 如果想不暴露`OPENAI_API_KEY`可以自己增加后端,在`env.js`文件里修改`apiURL`,`OPENAI_API_KEY`使用自己的JWT验证即可。前端请求参数和官网格式基本一致。 ## 如果你不想暴露你的openai的key,可以自己部署后端去访问openai,但是还是要保证后端服务能访问openai - 启动后端(本文提供两种后端,一种非常简单的框架,不需要安装各种依赖,另外一种需要安装框架的各种依赖) ```shell # 1. 可以不使用python相关的web框架,使用最简单的http服务 python3 simpleChatClient.py # 可以选择在后台运行 nohup python3 simpleChatClient.py > nohup.log 2>&1 & # 2. 使用flask框架部署pythonweb服务(pip安装时,如果指定国内源可能会安装不成功,国内源有些版本比较低) pip3 install -r requirements.txt python3 app.py # 也可以选择后台运行 nohup python3 app.py > nohup.log 2>&1 & ``` - 启动前端(需要修改一些配置) 1. 进入python-web/ChatGPT/src目录下,找到env.js文件,修改api地址,修改为后端服务的地址即可 2. 使用docker部署前端