https://github.com/vincent-the-gamer/gemini-pro-chat-kit
一个解决了中国国内代理问题的Gemini Pro对话服务
https://github.com/vincent-the-gamer/gemini-pro-chat-kit
ai-chat gemini-15-flash gemini-api gemini-pro
Last synced: 6 months ago
JSON representation
一个解决了中国国内代理问题的Gemini Pro对话服务
- Host: GitHub
- URL: https://github.com/vincent-the-gamer/gemini-pro-chat-kit
- Owner: Vincent-the-gamer
- License: mit
- Created: 2024-03-30T08:14:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-14T06:33:10.000Z (12 months ago)
- Last Synced: 2025-04-02T21:51:21.497Z (7 months ago)
- Topics: ai-chat, gemini-15-flash, gemini-api, gemini-pro
- Language: TypeScript
- Homepage:
- Size: 2.12 MB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE
Awesome Lists containing this project
README
# Gemini Pro Chat Kit
一个解决了中国国内代理问题的Gemini Pro对话服务
## 问题在哪?
Gemini Pro官方提供的SDK在本地开启代理的状况下,仍然无法访问,因为模块中的fetch函数并未走代理,本Repo就是解决这个问题的。
目前通过使用undici做代理,现在可以随时更新SDK了。
## 如何设置代理?
修改根目录的`proxy.ts`
```shell
export const proxyHost = '127.0.0.1'
export const proxyPort = 7890
```
## 如何启动项目?
首先将项目根目录的`.env.example`文件重命名为:`.env`,然后编辑
```
# your_key改为您的api key
API_KEY = your_key
```
### 申请API Key
申请Gemini Pro API Key: [https://makersuite.google.com/app/apikey](https://makersuite.google.com/app/apikey)
具体过程可以参考我的博客的其中一部分:[https://blog.vince-g.xyz/posts/deploy-gemini-pro](https://blog.vince-g.xyz/posts/deploy-gemini-pro)
然后
```shell
# 安装依赖
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: "成功清除上下文!" }` |
## 前端页面(WebUI)
开发中,已实现流式传输。默认调用流式接口,现已基本可用。
> [!NOTE]
> 前端页面还不完善,但是可以用

## 部署整个项目
在前端项目`packages/webui/.env.prod`中配置你的后端接口base url:
> [!NOTE]
> 请注意,一定要保证后端的端口配置与你前端.env.prod的端口配置相同。确保`packages/chat-kit/server.ts`中的端口配置正确
假设你的后端部署在`http://ciallo.yuzu:2333`
```toml
# .env.prod
# 不要包含末尾的斜杠 '/'
VITE_SERVER_BASE=http://ciallo.yuzu:2333
```
然后构建前后端即可:
```shell
# 构建前端
pnpm run webui:build
# 构建后端
pnpm run build
```