一键免费部署你的跨平台私人 ChatGPT 应用, 支持 GPT3, GPT4 & Gemini Pro 模型。(基于 LangChain 实现插件功能)
Warning
本项目插件功能基于 OpenAI API 函数调用 功能实现,转发 GitHub Copilot 接口或类似实现的模拟接口并不能正常调用插件功能!
[实验性] 新增 claude 模型函数调用支持。
由于 Anthropic 不提供嵌入模型,请添加 RAG 功能的 ollama 嵌入模型配置,如不配置,WebBrowser 和 PDFBrowser 插件将无法使用。
-
RAG 功能
- 配置请参考文档 RAG 功能配置说明
-
除插件工具外,与原项目保持一致 ChatGPT-Next-Web 主要功能
-
支持 TTS (文本转语音)
- (免费) Edge TTS Hk-Gosuto#266
- 环境变量(可选):
EDGE_TTS_VOICE_NAME
- 环境变量(可选):
- (收费) OpenAI TTS Hk-Gosuto#208
- (免费) Edge TTS Hk-Gosuto#266
-
支持语音输入,需要使用 HTTPS 访问 Hk-Gosuto#208
-
支持 GPT-4V(视觉) 模型
需要配置对象存储服务,请参考 对象存储服务配置指南 配置- 已同步上游仓库视觉模型调用方式(压缩图片),这里还是会有撑爆 LocalStorage 的风险 Hk-Gosuto#77 (comment) ,后面如果出现类似问题会再适配对象存储来存储图像。
-
基于 LangChain 实现的插件功能,目前支持以下插件,未来会添加更多
-
搜索(优先级:
GoogleCustomSearch > SerpAPI > BingSerpAPI > ChooseSearchEngine > DuckDuckGo
)-
- 环境变量:
GOOGLE_PLUGIN_API_PROXY_PREFIX
与DDG_API_PROXY_PREFIX
变量使用方法一致GOOGLE_API_KEY
GOOGLE_SEARCH_API_KEY
GOOGLE_CSE_ID
- 申请参考:说明
- 环境变量:
-
- 环境变量:
SERPAPI_API_KEY
- 申请地址:SerpApi: Google Search API
- 环境变量:
-
- 环境变量:
BING_SEARCH_API_KEY
- 申请地址:Web Search API | Microsoft Bing
- 环境变量:
-
ChooseSearchEngine(作者:hang666)
-
环境变量:
CHOOSE_SEARCH_ENGINE
GOOGLE_PLUGIN_API_PROXY_PREFIX
与DDG_API_PROXY_PREFIX
变量使用方法一致,只会对 google 进行代理
可选项如下:
- baidu
-
说明:此项为直连搜索引擎,免去api试用量小的烦恼,但可能因为网络问题导致无法使用
-
⚠ 注意:已知在 vercel 环境下会出现调用不稳定的情况 Hk-Gosuto#89 (comment)
-
-
DuckDuckGo
-
环境变量:
DDG_API_PROXY_PREFIX
配置后将在 DuckDuckGo 插件相关接口前拼接配置内容,如:
DDG_API_PROXY_PREFIX=https://example.com/
则最终请求为:https://example.com/https://duckduckgo.com
可以结合类似 1234567Yang/cf-proxy-ex 这类代理项目来实现 DuckDuckGo 插件相关接口的代理
-
-
-
计算
- Calculator
- WolframAlpha
- 环境变量:
WOLFRAM_ALPHA_APP_ID
- 申请地址:Wolfram LLM API
- 环境变量:
-
网络请求
- WebBrowser
- 需要使用
text-embedding-ada-002
嵌入模型
- 需要使用
- PDFBrowser
- 需要使用
text-embedding-ada-002
嵌入模型 - ⚠ 仅在非 vercel 环境部署时可用 ⚠
- 需要使用
- WebBrowser
-
其它
- Wiki
- DALL-E 3
- DALL-E 3 插件需要配置对象存储服务,请参考 对象存储服务配置指南 配置
- 如无需图像转存则可以配置
DALLE_NO_IMAGE_STORAGE=1
,此时将直接将 DALL-E 服务返回的临时 URL 用于图像显示,注意:该链接具有时效性 - 默认使用
dall-e-3
模型,如果想使用dall-e-2
,可以配置环境变量DALLE_MODEL=dall-e-2
- StableDiffusion
- 本插件目前为测试版本,后续可能会有较大的变更,请谨慎使用
- 使用本插件需要一定的专业知识,Stable Diffusion 本身的相关问题不在本项目的解答范围内,如果您确定要使用本插件请参考 Stable Diffusion 插件配置指南 文档进行配置
- StableDiffusion 插件需要配置对象存储服务,请参考 对象存储服务配置指南 配置
- Arxiv
- B站相关插件(作者:fred913)
- bilibili 视频信息获取(建议使用以下插件时同时启用本插件)
- bilibili 视频搜索
- 需配置环境变量
BILIBILI_COOKIES
- 需配置环境变量
- bilibili 听歌识曲
- 需提前部署 bilivid-metaprocess-server 并配置环境变量
BILIVID_METAPROCESS_SERVER_ADDRESS
- 需提前部署 bilivid-metaprocess-server 并配置环境变量
- bilibili视频总结
- 需配置环境变量
BILIBILI_COOKIES
- 需配置环境变量
-
-
支持 gemini-pro, gemini-pro-vision 模型
- 以下功能目前还不支持
- 插件功能
- 如何启用
- 配置密钥
GOOGLE_API_KEY
,key 可以在这里获取:https://ai.google.dev/tutorials/setup - 配置自定义接口地址(可选)
GEMINI_BASE_URL
,可以使用我的这个项目搭建一个基于 vercel 的代理服务:vercel-ai-proxy
- 配置密钥
- 常见问题参考:Gemini Prompting FAQs
gemini-pro-vision 模型需要配置对象存储服务,请参考 对象存储服务配置指南 配置- ⚠ gemini-pro-vision 注意事项 Hk-Gosuto#203 :
- 每次对话必须包含图像数据,不然会出现
Add an image to use models/gemini-pro-vision, or switch your model to a text model.
错误。 - 只支持单轮对话,多轮对话会出现
Multiturn chat is not enabled for models/gemini-pro-vision
错误。
- 每次对话必须包含图像数据,不然会出现
- 以下功能目前还不支持
-
非 Vercel 运行环境下支持本地存储
- 如果你的程序运行在非 Vercel 环境,不配置
S3_ENDPOINT
和R2_ACCOUNT_ID
参数,默认上传的文件将存储在/app/uploads
文件夹中
- 如果你的程序运行在非 Vercel 环境,不配置
-
支持使用 DuckDuckGo 作为默认搜索引擎
不配置时默认使用
DuckDuckGo
作为搜索插件。 -
插件列表页面开发
-
支持开关指定插件
-
支持 Agent 参数配置(
agentType, maxIterations, returnIntermediateSteps 等) -
支持 ChatSession 级别插件功能开关
仅在使用非
0301
和0314
版本模型时会出现插件开关,其它模型默认为关闭状态,开关也不会显示。最新版本中已经移除上面两个模型。
-
支持语音输入 Hk-Gosuto#208
-
支持其他类型文件上传 Hk-Gosuto#77
-
支持 Azure Storage Hk-Gosuto#217
-
支持 Fooocus-API 插件 Hk-Gosuto#58
-
支持在 UI 配置插件需要的 Key Hk-Gosuto#70
- 准备好你的 OpenAI API Key;
- 点击右侧按钮开始部署: ,直接使用 Github 账号登录即可,记得在环境变量页填入 API Key 和页面访问密码 CODE;
- 部署完毕后,即可开始使用;
- (可选)绑定自定义域名:Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。
配置密码后,用户需要在设置页手动填写访问码才可以正常聊天,否则会通过消息提示未授权状态。
警告:请务必将密码的位数设置得足够长,最好 7 位以上,否则会被爆破。
本项目提供有限的权限控制功能,请在 Vercel 项目控制面板的环境变量页增加名为 CODE
的环境变量,值为用英文逗号分隔的自定义密码:
code1,code2,code3
增加或修改该环境变量后,请重新部署项目使改动生效。
本项目大多数配置项都通过环境变量来设置,教程:如何修改 Vercel 环境变量。
OpanAI 密钥,你在 openai 账户页面申请的 api key。
访问密码,可选,可以使用逗号隔开多个密码。
警告:如果不填写此项,则任何人都可以直接使用你部署后的网站,可能会导致你的 token 被急速消耗完毕,建议填写此选项。
Default:
https://api.openai.com
Examples:
http://your-openai-proxy.com
OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填写此选项。
如果遇到 ssl 证书问题,请将
BASE_URL
的协议设置为 http。
指定 OpenAI 中的组织 ID。
如果你不想让用户自行填入 API Key,将此环境变量设置为 1 即可。
如果你不想让用户使用 GPT-4,将此环境变量设置为 1 即可。
如果你想启用余额查询功能,将此环境变量设置为 1 即可。
Google Gemini Pro Api Key.
Google Gemini Pro Api Url.
形如:https://{azure-resource-url}/openai/deployments
⚠️ 注意:这里与原项目配置不同,不需要指定 {deploy-name},将模型名修改为 {deploy-name} 即可切换不同的模型
⚠️ DALL-E 等需要 openai 密钥的插件暂不支持 Azure
Azure 部署地址。
Azure 密钥。
Azure Api 版本,你可以在这里找到:Azure 文档。
如果你不想让用户使用自动生成标题功能,将此环境变量设置为 1 即可。
如果你不想让用户使用历史摘要功能,将此环境变量设置为 1 即可。
anthropic claude Api Key.
anthropic claude Api version.
anthropic claude Api Url.
如果你想禁用从链接解析预制设置,将此环境变量设置为 1 即可。
For Azure: use modelName@azure=deploymentName
to customize model name and deployment name.
Example:
+gpt-3.5-turbo@azure=gpt35
will show optiongpt35(Azure)
in model list. If you only can use Azure model,-all,+gpt-3.5-turbo@azure=gpt35
willgpt35(Azure)
the only option in model list.
For ByteDance: use modelName@bytedance=deploymentName
to customize model name and deployment name.
Example:
+Doubao-lite-4k@bytedance=ep-xxxxx-xxx
will show optionDoubao-lite-4k(ByteDance)
in model list.
Change default model
如果你想增加允许访问的webdav服务地址,可以使用该选项,格式要求:
- 每一个地址必须是一个完整的 endpoint
https://xxxx/xxx
- 多个地址以
,
相连
自定义默认的 template,用于初始化『设置』中的『用户输入预处理』配置项
配置 Edge TTS 使用的语音声音,默认为:zh-CN-YunxiNeural 可访问 https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/language-support?tabs=tts#supported-languages 查看支持的参数
配置所有模型都使用 OpenAI 路由,在使用类似 one-api
的中转项目时会很有用
将此环境变量设置为 1 即可
Docker 版本需要在 20 及其以上,否则会提示找不到镜像。
⚠️ 注意:docker 版本在大多数时间都会落后最新的版本 1 到 2 天,所以部署后会持续出现“存在更新”的提示,属于正常现象。也可以使用镜像
gosuto/chatgpt-next-web-langchain:nightly
,该镜像为每日更新。
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY="sk-xxxx" \
-e CODE="页面访问密码" \
gosuto/chatgpt-next-web-langchain
你也可以指定 proxy:
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY="sk-xxxx" \
-e CODE="页面访问密码" \
--net=host \
-e PROXY_URL="http://127.0.0.1:7890" \
gosuto/chatgpt-next-web-langchain
如果你的本地代理需要账号密码,可以使用:
-e PROXY_URL="http://127.0.0.1:7890 user password"
如果你需要指定其他环境变量,请自行在上述命令中增加 -e 环境变量=环境变量值
来指定。