一个解决了中国国内代理问题的Gemini Pro对话服务
Gemini Pro官方提供的SDK在本地开启代理的状况下,仍然无法访问,因为模块中的fetch函数并未走代理,本Repo就是解决这个问题的。 目前通过使用undici做代理,现在可以随时更新SDK了。
修改根目录的proxy.ts
export const proxyHost = '127.0.0.1'
export const proxyPort = 7890
首先将项目根目录的.env.example
文件重命名为:.env
,然后编辑
# your_key改为您的api key
API_KEY = your_key
申请Gemini Pro API Key: https://makersuite.google.com/app/apikey
具体过程可以参考我的博客的其中一部分:https://blog.vince-g.xyz/posts/deploy-gemini-pro
然后
# 安装依赖
pnpm i
# 构建源码
pnpm run build
# 以守护进程启动(崩溃会自动重启)
pnpm run start
# 停止守护进程
pnpm run stop
PS: 流式传输使用GET请求,所以把参数拼接在url中
API | 说明 | Method | 参数 | 返回值 |
---|---|---|---|---|
/chat | 纯文本对话(一次性返回) | POST | {"message": "Feint是谁"} |
{ "result": "Feint 是一名荷兰电子音乐制作人和 DJ。} |
/streamChat | 纯文本对话(流式传输) | GET | url?message=xxx |
event-stream, 需要使用EventSource进行长连接 |
/clear | 清空上下文 | GET | 无 | { msg: "成功清除上下文!" } |
开发中,已实现流式传输。默认调用流式接口,现已基本可用。
Note
前端页面还不完善,但是可以用
在前端项目packages/webui/.env.prod
中配置你的后端接口base url:
Note
请注意,一定要保证后端的端口配置与你前端.env.prod的端口配置相同。确保packages/chat-kit/server.ts
中的端口配置正确
假设你的后端部署在http://ciallo.yuzu:2333
# .env.prod
# 不要包含末尾的斜杠 '/'
VITE_SERVER_BASE=http://ciallo.yuzu:2333
然后构建前后端即可:
# 构建前端
pnpm run webui:build
# 构建后端
pnpm run build