diff --git a/README.md b/README.md index 5852d5f..113b450 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@ ## 项目背景 -随着大语言模型的普及,越来越多的个人用户选择在本地部署 Ollama 服务来使用 AI 模型。然而,这带来了一个普遍的问题: +随着大语言模型的普及,越来越多的个人用户选择在本地部署 Ollama 或 LM Studio 服务来使用 AI 模型。然而,这带来了一个普遍的问题: -- Ollama 通常需要部署在高性能台式机上(配备强大的GPU) +- Ollama/LM Studio 通常需要部署在高性能台式机上(配备强大的GPU) - 24小时开机运行会导致较高的电费支出 -- 设置电脑定时睡眠可以节省电力,但会导致 Ollama 服务不可用 +- 设置电脑定时睡眠可以节省电力,但会导致服务不可用 - 用户需要手动唤醒电脑才能继续使用服务 -Ollama Proxy 正是为解决这个问题而设计:它允许用户在保持节能的同时,仍然可以随时便捷地使用 Ollama 服务。项目采用了两个关键策略来提升用户体验: +Ollama Proxy 正是为解决这个问题而设计:它允许用户在保持节能的同时,仍然可以随时便捷地使用 Ollama 或 LM Studio 服务。项目采用了两个关键策略来提升用户体验: 1. **智能唤醒机制**:通过请求管理,在需要时自动唤醒服务器,在空闲时允许系统进入睡眠状态,实现了服务可用性和节能环保的平衡。 @@ -20,7 +20,7 @@ Ollama Proxy 正是为解决这个问题而设计:它允许用户在保持节 通过这种设计,Ollama Proxy 不仅解决了节能问题,还确保了服务响应的及时性,为用户提供了一个既环保又高效的解决方案。 -Ollama Proxy 是一个为 Ollama 服务设计的智能代理服务器,它提供了以下主要功能: +Ollama Proxy 是一个为 Ollama 或 LM Studio 服务设计的智能代理服务器,它提供了以下主要功能: 1. 自动唤醒功能 2. 请求转发 @@ -30,23 +30,29 @@ Ollama Proxy 是一个为 Ollama 服务设计的智能代理服务器,它提 ## 主要特性 -### 1. 自动唤醒功能 -- 定期发送唤醒请求,防止 Ollama 服务进入休眠状态 +### 1. 多服务器支持 +- 支持 Ollama 服务器 +- 支持 LM Studio 服务器 +- 智能识别服务器类型,自动调整 API 路径 + +### 2. 自动唤醒功能(可选) +- 定期发送唤醒请求,防止服务进入休眠状态 - 可配置唤醒间隔时间 - 在请求超时时自动触发唤醒 +- 可选配置,不强制要求配置唤醒服务器 -### 2. 智能请求转发 +### 3. 智能请求转发 - 支持所有 Ollama API 端点的请求转发 - 动态超时控制:对不同类型的请求使用不同的超时时间 - 普通请求:可配置的短超时时间 - 模型推理请求:较长的超时时间(默认30秒) -### 3. 模型列表缓存 +### 4. 模型列表缓存 - 缓存 `/api/tags` 接口返回的模型列表 - 可配置缓存有效期,默认为1440分钟(1天) - 当主服务不可用时返回缓存数据,确保客户端始终可以获取模型列表 -### 4. 健康检查 +### 5. 健康检查 - 提供 ` ` 端点进行健康状态检查 - Docker 容器集成了健康检查配置 @@ -56,8 +62,9 @@ Ollama Proxy 是一个为 Ollama 服务设计的智能代理服务器,它提 | 参数 | 环境变量 | 说明 | 默认值 | |------|----------|------|--------| -| `--ollama-url` | `OLLAMA_URL` | Ollama服务器URL | http://localhost:11434 | -| `--wake-url` | `WAKE_URL` | 唤醒服务器URL | http://localhost:11434/api/generate | +| `--ollama-url` | `OLLAMA_URL` | Ollama服务器URL(与LMS_URL互斥) | http://localhost:11434 | +| `--lms-url` | `LMS_URL` | LM Studio服务器URL(与OLLAMA_URL互斥) | - | +| `--wake-url` | `WAKE_URL` | 唤醒服务器URL(可选) | - | | `--timeout` | `TIMEOUT_SECONDS` | 简单请求超时时间(秒) | 10 | | `--model-timeout` | `MODEL_TIMEOUT_SECONDS` | 模型推理请求超时时间(秒) | 30 | | `--port` | `PORT` | 代理服务器端口 | 11434 | @@ -68,7 +75,16 @@ Ollama Proxy 是一个为 Ollama 服务设计的智能代理服务器,它提 ### 使用 Docker Compose(推荐) -1. 创建 `.env` 文件(可选)并配置环境变量 +1. 创建 `.env` 文件(可选)并配置环境变量: +```bash +# 选择以下其中一个配置: +OLLAMA_URL=http://localhost:11434 # Ollama服务器 +LMS_URL=http://localhost:1234 # LM Studio服务器 + +# 可选配置 +WAKE_URL=http://localhost:11434/api/generate +``` + 2. 使用以下命令启动服务: ```bash docker-compose up -d @@ -77,6 +93,7 @@ docker-compose up -d ### 使用 Docker ```bash +# 使用 Ollama 服务器 docker run -d \ -p 11434:11434 \ -e OLLAMA_URL=http://localhost:11434 \ @@ -87,6 +104,17 @@ docker run -d \ -e CACHE_DURATION=1440 \ -e PORT=11434 \ yshtcn/ollama-proxy:latest + +# 或使用 LM Studio 服务器 +docker run -d \ + -p 11434:11434 \ + -e LMS_URL=http://localhost:1234 \ + -e TIMEOUT_SECONDS=10 \ + -e MODEL_TIMEOUT_SECONDS=30 \ + -e WAKE_INTERVAL=10 \ + -e CACHE_DURATION=1440 \ + -e PORT=11434 \ + yshtcn/ollama-proxy:latest ``` ### 手动部署 @@ -98,6 +126,7 @@ pip install -r requirements.txt 2. 运行服务: ```bash +# 使用 Ollama 服务器 python ollama_proxy.py \ --ollama-url http://localhost:11434 \ --wake-url http://localhost:11434/api/generate \ @@ -106,6 +135,15 @@ python ollama_proxy.py \ --wake-interval 10 \ --cache-duration 1440 \ --port 11434 + +# 或使用 LM Studio 服务器 +python ollama_proxy.py \ + --lms-url http://localhost:1234 \ + --timeout 10 \ + --model-timeout 30 \ + --wake-interval 10 \ + --cache-duration 1440 \ + --port 11434 ``` ## 构建 Docker 镜像 @@ -128,26 +166,17 @@ python ollama_proxy.py \ ## 注意事项 -1. 确保 Ollama 服务正在运行且可访问 -2. 配置正确的 OLLAMA_URL 和 WAKE_URL -3. 根据网络环境调整超时时间 -4. Docker 部署时注意端口映射和网络配置 -5. 可以搭配 [WolGoWeb](https://github.com/xiaoxinpro/WolGoWeb) 项目使用,实现远程唤醒功能: +1. 确保 Ollama 或 LM Studio 服务正在运行且可访问 +2. OLLAMA_URL 和 LMS_URL 不能同时配置,必须选择其中一个 +3. WAKE_URL 为可选配置,不配置则不启用自动唤醒功能 +4. 根据网络环境调整超时时间 +5. Docker 部署时注意端口映射和网络配置 +6. 可以搭配 [WolGoWeb](https://github.com/xiaoxinpro/WolGoWeb) 项目使用,实现远程唤醒功能: - WolGoWeb 提供了网络唤醒(WOL)功能 - 可以通过 HTTP API 远程唤醒目标主机 - 支持多种部署方式(Docker、直接部署等) - - 配置 WAKE_URL 为 WolGoWeb 的唤醒接口,即可实现远程唤醒 Ollama 服务器 + - 配置 WAKE_URL 为 WolGoWeb 的唤醒接口,即可实现远程唤醒 Ollama 或 LM Studio 服务器 ## 健康检查 -服务提供了 `/health` 端点,返回格式如下: -```json -{ - "status": "healthy" -} -``` - -Docker 容器配置了自动健康检查: -- 检查间隔:30秒 -- 超时时间:10秒 -- 重试次数:3次 +服务提供了 `/health` \ No newline at end of file