网站建设5000费用,效果图网站推荐大全,珠海高端网站建设报价,沈阳三好街做网站公司Ex-ChatGPT项目分为 Ex-ChatGPT 和 WebChatGPTEnhance 两部分#xff0c;Ex-ChatGPT启动后是个web服务#xff0c;通过访问ip端口体验#xff1b; WebChatGPTEnhance可编译生成一个浏览器插件#xff0c;Chrome或者Microsoft edge浏览器可以安装该插件#xff0c;点击该插…Ex-ChatGPT项目分为 Ex-ChatGPT 和 WebChatGPTEnhance 两部分Ex-ChatGPT启动后是个web服务通过访问ip端口体验 WebChatGPTEnhance可编译生成一个浏览器插件Chrome或者Microsoft edge浏览器可以安装该插件点击该插件可以直接跳转到chatGPT的聊天页面相比于官方chatGPT页面底部多了个web access即实现网络资料搜索不仅限于ChatGPT的回答类似于新必应。 截止2023年5月29日 Ex-ChatGPT实现的第三方api请求比WebChatGPTEnhance 更多功能更强侧重研究Ex-ChatGPT即可。
本地试验环境 windows 10 服务器环境 Ubuntu Ex-ChatGPT项目源代码 https://github.com/circlestarzero/EX-chatGPT
一、本地部署
首先将代码clone到本地设备
git clone https://github.com/circlestarzero/EX-chatGPT.git以下步骤参考了博客 https://www.luoxiao123.cn/enhanced-ex-chat-gpt-local-build-tutorial.html 有不明白的可以试着看以上博客查找答案。
1.1 Ex-chatGPT 安装
本人使用python3.11.3 安装该项目的python模块依赖
pip install -r requirements.txt -i -i https://pypi.tuna.tsinghua.edu.cn/simple1.1.1 ID和KEY申请
谷歌api key申请
要翻墙 Google api key and search engine id 申请 得到如下SEARCH_ENGINE_ID: 以及GOOGLE_API_KEY
wolframAlpha key申请
wolframAlpha app id key 申请
openAI key 申请
要翻墙 openAI api key( 新功能 ) 或 chatGPT access_token ( 旧版本 ) [申请](https://platform.openai.com/)
1.1.2 API key配置
将.\EX-chatGPT\chatGPTEx\apikey.ini.example复制一份重命名成apikey.ini修改其中的配置
1.1.3 运行访问
首先谷歌和openAI的接口都需要翻墙才能访问所以要确保你的梯子在本地开了全局模式保证执行下面的代码时能通过代理访问到外网。
执行 .\EX-chatGPT\chatGPTEx\main.py
python main.py在本地浏览器打开 http://127.0.0.1:1234/即打开Ex-ChatGPT的窗口 上图下方文字输入框左侧有个模式选择上拉框鼠标移到选项中文字就会显示出来显示有bug这里讲一下其中主要的两个模式 web模式 当你输入一个问题比如数学问题请计算15等于多少该工具首先会调用chatGPT进行问题理解然后生成谷歌接口、wolframAlpha接口、wiki接口、chatGPT分别进行查询4个接口得到的结果会返回到窗口进行一一展示。 chat模式 和上面同样的问题只会查询chatGPT接口返回结果的速度较快但是由于chatGPT的信息较为落后比如基于gpt3.5的chatGPT其信息是2021年9月之前的结果不如web模式全面和时效。
1.2 WebChatGPTEnhance安装
注意 https://github.com/circlestarzero/EX-chatGPT.git下.\EX-chatGPT\chatGPTChromeEnhance的代码是fork别人的代码而且不完整少了build目录无法使用本人找到了其fork的源代码库
git clone https://github.com/qunash/chatgpt-advanced.git1.2.1 VC编译环境配置
在进行下一步之前首先得安装VC否则会报错visualstudio下载链接选择 https://visualstudio.microsoft.com/zh-hans/downloads/ 选择如上版本即可在安装界面选择.NET桌面开发、Node.js开发、C桌面开发即可其他勾都取消掉 安装重启后应该就可以用npm和node命令了如果不行则可能没有自动添加命令路径到系统环境变量那么你得找到node.exe所在路径添加到系统环境变量npm同理。
1.2.2 插件生成和使用
接下来编译生成插件包
cd .\chatgpt-advanced\
npm install
npm run build-prod 之后在目录\chatgpt-advanced\bulid内会有个插件包将包安装到chrome或edge浏览器即可
二、Azure OpenAI服务配置
本公司购买了微软的Azure OpenAI接口服务可以不用翻墙通过Azure OpenAI接口访问到chatGPTEx-chatGPT默认是使用原生的openAI接口调用。下面从用openai模块访问chatgpt的方式来说明一下原openAI接口和Azure OpenAI接口的不同如下图所示 在Ex-chatGPT中并没有用到openai模块访问chatgpt而是用requests模块访问chatgpt当访问chatGPT的请求到了后会执行到.\EX-chatGPT\chatGPTEx\optimizeOpenAI.py代码中的ask_stream函数发起chatgpt接口请求其中请求部分的代码为
...response self.session.post(https://api.openai.com/v1/chat/completions,headers{Authorization: fBearer {kwargs.get(api_key, apiKey)}},json{model: self.engine,messages: self.conversation[convo_id],stream: True,# kwargstemperature: kwargs.get(temperature, self.temperature),top_p: kwargs.get(top_p, self.top_p),n: kwargs.get(n, self.reply_count),user: role,},streamTrue)
...由以上代码可见默认用了https://api.openai.com/v1/chat/completions这个原生的openai接口这里本人修改这部分代码使其默认访问Azure openai的接口去请求chatgpt修改代码如下 修改后的代码中url和api-key都是写死的没有用到apikey.ini文件内有关opneAI的key这样所有chatgpt的请求都会走Azure openai的接口了不再需要翻墙。上图修改后代码的url规则参考官网进行更改 https://learn.microsoft.com/zh-cn/azure/cognitive-services/openai/reference
三、Docker部署服务
任务是部署一个公司内网的员工都可以访问的Ex-chatGPT由于很多员工都没有翻墙梯子所以要如第二节一样配置Ex-chatGPT通过Azure Openai的服务接口访问chatgpt。
3.1 启动一个原生的容器
登录目标服务器进行如下操作 创建配置文件目录并拉取配置文件
cd /data/ml/crl/
mkdir config wget https://raw.githubusercontent.com/circlestarzero/EX-chatGPT/main/chatGPTEx/apikey.ini.example -O ./config/apikey.ini编辑配置文件或者把编辑好的配置文件传到config文件夹下。
vim ./config/apikey.ini拉取docker镜像
docker pull 0nlylty/exchatgpt:latest创建容器
docker run -dit \-v /data/ml/crl/config:/config \-p 5100:5000 \--name exchatgpt \--restart unless-stopped \0nlylty/exchatgpt:latest注意以上5100接口是宿主机服务器的接口要自行找个未被占用的接口。容器启动后找到这个容器的id 然后进入容器中
docker exec -it 57de2cbe08bb /bin/bash切换到目录中/app/chatGPTEx删除代码文件optimizeOpenAI.py
root57de2cbe08bb:/app/chatGPTEx# pwd
/app/chatGPTEx
root57de2cbe08bb:/app/chatGPTEx# rm optimizeOpenAI.py3.2 本地修改optimizeOpenAI.py
在本地电脑按照第二节方法修改optimizeOpenAI.py然后将本地修改后的optimizeOpenAI.py传到服务器上面如传到服务器目录/data/ml/crl/chatGPTEx/optimizeOpenAI.py。 最后在服务器上将已修改的/data/ml/crl/chatGPTEx/optimizeOpenAI.py传到上小节已启动的容器中
docker cp /data/ml/crl/chatGPTEx/optimizeOpenAI.py 57de2cbe08bb:/app/chatGPTEx3.3 用修改后的容器生成新版镜像
经过上小节容器中/app/chatGPTEx/optimizeOpenAI.py已经是修改过后的访问chatGPT时走的是Azure OpenAI接口不再需要翻墙。将此修改后的容器生成一版新的镜像
docker commit 57de2cbe08bb 0nlylty/exchatgpt:v1.0.0之后就不再需要57de2cbe08bb这个容器了将其杀死和删除
docker kill 57de2cbe08bb
docker rm 57de2cbe08bb3.4 用新镜像启动新容器
用上小节生成的新版镜像0nlylty/exchatgpt:v1.0.0启动服务
docker run -dit -v /data/ml/crl/config:/config -p 5100:5000 --name exchatgpt --restart unless-stopped 0nlylty/exchatgpt:v1.0.0启动服务后就可在本地访问Ex-ChatGPT了能够访问服务器的其他员工也可以访问到该Ex-ChatGPT服务