> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-zh/ai-ping-tai-yu-zhi-neng-ti/lobechat.md).

# LobeChat AI 助手

在 Clore.ai 上部署 LobeChat——一个精美且功能丰富的 AI 聊天界面，支持多提供商、知识库和插件，运行在经济实惠的 GPU 支持云服务器上。

## 概览

[LobeChat](https://github.com/lobehub/lobe-chat) 是一个现代的开源 AI 聊天框架，拥有 5.5 万+ GitHub stars，以精致的 UI 和丰富的功能集而闻名。它支持几乎所有主流 LLM 提供商——OpenAI、Anthropic Claude、Google Gemini、Mistral，以及通过 Ollama 使用的本地模型——全部都能在一个自托管界面中完成。

**为什么在 Clore.ai 上运行 LobeChat？**

* **无需 GPU** ——LobeChat 本身是一个轻量级 Web 应用。Clore.ai 仅 CPU 或最小 GPU 实例就足以满足界面需求。
* **与本地 LLM 搭配** ——在同一台 Clore.ai 服务器上启动 Ollama 或 vLLM，并让 LobeChat 指向它，即可实现完全本地、私有的推理。
* **经济实惠的托管** ——基础的 Clore.ai 实例只需传统 VPS 提供商费用的一小部分，而且在不使用时你可以将其关闭。
* **完全拥有数据** ——数据库模式会将所有对话、文件和嵌入存储在服务器上你自己的 PostgreSQL 实例中。

LobeChat 有两种不同的运行模式：

| 模式        | 描述                                   | 最适合         |
| --------- | ------------------------------------ | ----------- |
| **独立模式**  | 单个 Docker 容器，设置存储在浏览器中               | 快速测试，个人使用   |
| **数据库模式** | 完整栈（PostgreSQL + MinIO + Auth + App） | 团队、持久历史、知识库 |

***

## 需求

### 服务器规格

| 组件      | 最低     | 推荐                   | 备注                     |
| ------- | ------ | -------------------- | ---------------------- |
| **GPU** | 无需     | RTX 3090（如果运行本地 LLM） | 仅在使用 Ollama/vLLM 后端时需要 |
| **显存**  | —      | 24 GB（RTX 3090）      | 用于本地模型推理               |
| **CPU** | 2 vCPU | 4+ vCPU              | LobeChat 本身很轻量         |
| **内存**  | 2 GB   | 8 GB                 | 如果使用数据库模式，则需要 4+ GB    |
| **存储**  | 10 GB  | 50+ GB               | 如果要存储上传的文件或模型，则需要更多    |

### Clore.ai 价格参考

| 服务器类型              | 大致费用                              | 使用场景                     |
| ------------------ | --------------------------------- | ------------------------ |
| 仅 CPU 实例           | 约 $0.05–0.10/小时                   | 仅独立版 LobeChat            |
| RTX 3090（24 GB 显存） | $0.07–0.21/小时                     | LobeChat + Ollama 本地 LLM |
| RTX 4090（24 GB 显存） | $0.14–0.42/小时                     | LobeChat + 更快的本地推理       |
| A100 80 GB         | [裸机](https://clore.ai/bare-metal) | LobeChat + 大模型（70B+）     |

> 💡 **提示：** 如果只是 API 使用（连接 OpenAI、Anthropic 等），任何小实例都可以。只有在你还想运行本地 LLM 时，GPU 服务器才有意义。 [GPU 比较指南](/guides/guides_v2-zh/ru-men-zhi-nan/gpu-comparison.md) 详见。

### 前提条件

* 拥有已部署服务器的 Clore.ai 账户
* 可通过 SSH 访问你的服务器
* Docker 和 Docker Compose（Clore.ai 服务器预装）
* NVIDIA 驱动（预装；仅在使用本地 LLM 后端时相关）
* 至少一个 API 密钥（OpenAI、Anthropic 等） **或** 本地 Ollama 实例

***

## 快速开始

### 选项 A：独立模式（适合入门，推荐）

独立模式将 LobeChat 作为单个容器运行。设置和对话历史存储在浏览器的本地存储中——无需数据库。

**步骤 1：连接到你的 Clore.ai 服务器**

```bash
ssh root@<your-clore-server-ip> -p <ssh-port>
```

**步骤 2：拉取并运行 LobeChat**

```bash
docker run -d \\
  --name lobechat \\
  --restart unless-stopped \
  -p 3210:3210 \\
  -e OPENAI_API_KEY=sk-your-openai-key-here \\
  -e OPENAI_PROXY_URL=https://api.openai.com/v1 \\
  lobehub/lobe-chat
```

**步骤 3：验证它是否正在运行**

```bash
docker ps
docker logs lobechat --tail 20
```

**步骤 4：访问界面**

打开浏览器并访问：

```
http://<your-clore-server-ip>:3210
```

> ⚠️ **安全提示：** Clore.ai 服务器可公开访问。请考虑设置 `ACCESS_CODE` 为你的实例设置密码保护（见下文配置部分）。

***

### 选项 B：支持多个提供商的独立模式

传入多个 API 密钥以同时支持不同提供商：

```bash
docker run -d \\
  --name lobechat \\
  --restart unless-stopped \
  -p 3210:3210 \\
  -e OPENAI_API_KEY=sk-your-openai-key \
  -e ANTHROPIC_API_KEY=sk-ant-your-anthropic-key \
  -e GOOGLE_API_KEY=your-google-gemini-key \\
  -e MISTRAL_API_KEY=your-mistral-key \\
  -e ACCESS_CODE=your-secret-password \\
  lobehub/lobe-chat
```

***

### 选项 C：使用本地 Ollama 后端

如果你已经在同一台 Clore.ai 服务器上运行了 Ollama（见 [Ollama 指南](/guides/guides_v2-zh/yu-yan-mo-xing/ollama.md)):

```bash
# 先启动 Ollama
docker run -d \\
  --name ollama \\
  --restart unless-stopped \
  --gpus all \\
  -p 11434:11434 \
  -v ollama:/root/.ollama \\
  ollama/ollama

# 拉取模型
docker exec ollama ollama pull llama3.2

# 启动指向 Ollama 的 LobeChat
docker run -d \\
  --name lobechat \\
  --restart unless-stopped \
  -p 3210:3210 \\
  -e OLLAMA_PROXY_URL=http://host-gateway:11434 \\
  --add-host=host-gateway:host-gateway \\
  lobehub/lobe-chat
```

> 在 Linux 上，将 `host-gateway` 替换为实际的 Docker bridge IP，通常是 `172.17.0.1`:
>
> ```bash
> -e OLLAMA_PROXY_URL=http://172.17.0.1:11434
> ```

***

### 选项 D：数据库模式（Docker Compose）

数据库模式支持持久化对话历史、多用户支持、将文件上传到兼容 S3 的存储，以及完整知识库。

**步骤 1：创建项目目录**

```bash
mkdir -p ~/lobechat && cd ~/lobechat
```

**步骤 2：创建 `docker-compose.yml`**

```bash
cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  postgresql:
    image: pgvector/pgvector:pg16
    container_name: lobe-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: lobechat
      POSTGRES_USER: lobechat
      POSTGRES_PASSWORD: changeme_strong_password
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U lobechat -d lobechat"]
      interval: 10s
      timeout: 5s
      retries: 5

  minio:
    image: minio/minio
    container_name: lobe-minio
    restart: unless-stopped
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: changeme_minio_password
    command: server /data --console-address ":9001"
    volumes:
      - minio_data:/data
    ports:
      - "9000:9000"
      - "9001:9001"

  lobechat:
    image: lobehub/lobe-chat-database
    container_name: lobe-chat
    restart: unless-stopped
    depends_on:
      postgresql:
        condition: service_healthy
    ports:
      - "3210:3210"
    environment:
      # 数据库
      DATABASE_URL: postgresql://lobechat:changeme_strong_password@postgresql:5432/lobechat
      # S3 存储（MinIO）
      S3_ENDPOINT: http://minio:9000
      S3_BUCKET: lobechat
      S3_ACCESS_KEY_ID: minioadmin
      S3_SECRET_ACCESS_KEY: changeme_minio_password
      S3_PUBLIC_DOMAIN: http://<your-server-ip>:9000
      # 认证（NextAuth）
      NEXTAUTH_SECRET: your-random-32-char-secret-here
      NEXTAUTH_URL: http://<your-server-ip>:3210
      # LLM 提供商
      OPENAI_API_KEY: sk-your-openai-key
      ANTHROPIC_API_KEY: sk-ant-your-key
      # 应用
      APP_URL: http://<your-server-ip>:3210

volumes:
  postgres_data:
  minio_data:
EOF
```

**步骤 3：启动栈**

```bash
docker compose up -d
docker compose logs -f lobechat
```

**步骤 4：创建 MinIO 存储桶**

```bash
# 安装 MinIO 客户端
docker exec lobe-minio mc alias set local http://localhost:9000 minioadmin changeme_minio_password
docker exec lobe-minio mc mb local/lobechat
docker exec lobe-minio mc anonymous set download local/lobechat
```

***

## 配置

### 环境变量参考

| 变量                     | 描述                      | 默认值                         |
| ---------------------- | ----------------------- | --------------------------- |
| `OPENAI_API_KEY`       | OpenAI API 密钥           | —                           |
| `OPENAI_PROXY_URL`     | 兼容 OpenAI 的自定义端点        | `https://api.openai.com/v1` |
| `ANTHROPIC_API_KEY`    | Anthropic Claude API 密钥 | —                           |
| `GOOGLE_API_KEY`       | Google Gemini API 密钥    | —                           |
| `MISTRAL_API_KEY`      | Mistral AI API 密钥       | —                           |
| `OLLAMA_PROXY_URL`     | 本地 Ollama 实例的 URL       | —                           |
| `ACCESS_CODE`          | 用于保护界面的密码               | —                           |
| `DEFAULT_AGENT_CONFIG` | 默认助手行为的 JSON 配置         | —                           |
| `FEATURE_FLAGS`        | 启用/禁用特定功能               | —                           |

### 启用特定功能

**启用网页搜索插件：**

```bash
-e BING_API_KEY=your-bing-search-key
```

**启用语音合成：**

```bash
-e AZURE_TTS_API_KEY=your-azure-key \\
-e AZURE_TTS_REGION=eastus
```

**为默认代理设置自定义系统提示词：**

```bash
-e DEFAULT_AGENT_CONFIG='{"systemRole":"You are a helpful assistant."}'
```

### 更新 LobeChat

```bash
# 拉取最新镜像
docker pull lobehub/lobe-chat

# 停止并移除旧容器
docker stop lobechat && docker rm lobechat

# 使用相同参数启动新容器
docker run -d \\
  --name lobechat \\
  --restart unless-stopped \
  -p 3210:3210 \\
  -e OPENAI_API_KEY=sk-your-key \\
  lobehub/lobe-chat
```

对于 Docker Compose：

```bash
docker compose pull
docker compose up -d
```

***

## GPU 加速

LobeChat 本身 **不** 不需要 GPU。不过，当它与 Clore.ai 上的 GPU 加速后端搭配时，你就能获得本地、私有的 LLM 推理：

### 与 vLLM 搭配（高性能推理）

请参阅 [vLLM 指南](/guides/guides_v2-zh/yu-yan-mo-xing/vllm.md) 完整设置请见。快速集成：

```bash
# 启动 vLLM 服务器（在同一主机上）
docker run -d \\
  --name vllm \\
  --gpus all \\
  --restart unless-stopped \
  -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \\
  vllm/vllm-openai:latest \
  --model meta-llama/Llama-3.1-8B-Instruct \\
  --served-model-name llama3.1-8b

# 启动指向 vLLM 的 LobeChat（兼容 OpenAI 的 API）
docker run -d \\
  --name lobechat \\
  --restart unless-stopped \
  -p 3210:3210 \\
  -e OPENAI_API_KEY=not-needed \\
  -e OPENAI_PROXY_URL=http://172.17.0.1:8000/v1 \\
  lobehub/lobe-chat
```

### 资源使用

| 后端                   | 使用的 GPU 显存 | 大致吞吐量                        |
| -------------------- | ---------- | ---------------------------- |
| Ollama（Llama 3.2 3B） | 约 2 GB     | 在 3090 上为 50–80 token/秒      |
| Ollama（Llama 3.1 8B） | \~6 GB     | 在 3090 上为 40–60 token/秒      |
| vLLM（Llama 3.1 8B）   | \~16 GB    | 在 3090 上为 80–150 token/秒     |
| vLLM（Llama 3.1 70B）  | 约 80 GB    | 在 A100 80GB 上为 20–40 token/秒 |

***

## 提示与最佳实践

### 成本优化

* **在空闲时停止你的服务器。** Clore.ai 按小时计费——使用控制面板暂停你当前未在使用的实例。
* **个人使用时使用独立模式。** 除非你需要多用户支持或持久化的服务器端历史记录，否则独立模式可以避免 PostgreSQL 和 MinIO 的开销。
* **使用 API 提供商来处理大模型。** 通过外部 API 路由 Claude 或 GPT-4 请求，比为了偶尔查询而租用 H100 更便宜。

### 安全性

```bash
# 始终在公开的 Clore.ai IP 上设置访问码
-e ACCESS_CODE=your-strong-password-here

# 限制为特定来源（可选）
-e NEXT_PUBLIC_SERVICE_MODE=server
```

* 切勿在没有 `ACCESS_CODE` 在公共 IP 上。
* 如果长期运行，建议使用带 HTTPS 的 Nginx 反向代理。
* 如果怀疑泄露，请轮换 API 密钥。

### 性能

```bash
# 如果数据库模式下有很多用户，增加 Node.js 堆内存
-e NODE_OPTIONS="--max-old-space-size=4096"
```

* 对于有 10+ 并发用户的数据库模式，请确保主机至少有 8 GB RAM。
* MinIO 在基于 SSD 的存储上表现更好（Clore.ai NVMe 实例）。

### Clore.ai 会话之间的持久化

由于 Clore.ai 服务器可能会被终止：

```bash
# 为独立模式的对话导出创建 Docker 卷
docker run -d \\
  --name lobechat \\
  -p 3210:3210 \\
  -v lobechat_data:/app/data \\
  lobehub/lobe-chat
```

定期在界面中的“设置 → 数据导出”里导出对话。

***

## 故障排查

### 容器无法启动

```bash
# 检查日志
docker logs lobechat --tail 50

# 检查端口是否被占用
ss -tlnp | grep 3210

# 检查 Docker 守护进程是否正在运行
systemctl status docker
```

### LobeChat 无法连接到 Ollama

```bash
# 从 LobeChat 容器测试连通性
docker exec lobechat curl -s http://172.17.0.1:11434/api/tags

# 如果失败，请检查 Ollama 是否监听所有接口
docker exec ollama ollama serve --host 0.0.0.0
```

### 数据库连接错误（数据库模式）

```bash
# 检查 PostgreSQL 健康状态
docker exec lobe-postgres pg_isready -U lobechat

# 验证 DATABASE_URL 格式
# postgresql://user:password@host:port/dbname

# 如有需要，手动运行迁移
docker exec lobe-chat npx prisma migrate deploy
```

### 图片/文件无法上传（数据库模式）

```bash
# 检查 MinIO 是否可访问
curl -s http://localhost:9000/minio/health/live

# 验证存储桶是否存在
docker exec lobe-minio mc ls local/

# 检查 S3_PUBLIC_DOMAIN 是否设置为正确的服务器 IP
```

### 内存不足错误

```bash
# 检查当前内存使用情况
docker stats lobechat

# 增加容器内存限制
docker run -d \\
  --name lobechat \\
  --memory=2g \\
  -p 3210:3210 \\
  lobehub/lobe-chat
```

***

## 延伸阅读

* [LobeChat 文档](https://lobehub.com/docs) — 官方文档、插件开发、部署指南
* [LobeChat GitHub](https://github.com/lobehub/lobe-chat) — 源代码、问题、讨论
* [在 Clore.ai 上运行 Ollama](/guides/guides_v2-zh/yu-yan-mo-xing/ollama.md) — LobeChat 的本地 LLM 后端
* [在 Clore.ai 上运行 vLLM](/guides/guides_v2-zh/yu-yan-mo-xing/vllm.md) — 高性能、兼容 OpenAI 的推理
* [GPU 比较指南](/guides/guides_v2-zh/ru-men-zhi-nan/gpu-comparison.md) — 选择合适的 Clore.ai GPU
* [LobeChat Docker Hub](https://hub.docker.com/r/lobehub/lobe-chat) — 镜像标签和版本
* [LobeChat 环境变量](https://lobehub.com/docs/self-hosting/environment-variables) — 完整变量参考


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-zh/ai-ping-tai-yu-zhi-neng-ti/lobechat.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
