# BG-AI：基于Qwen的开源多模态聊天机器人平台

> BG-AI是一个连接用户与本地大语言模型的桥梁，支持文本、图片、视频多模态输入，采用Next.js+Flask+LM Studio技术栈实现完全本地化的AI对话体验。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-13T22:04:39.000Z
- 最近活动: 2026-04-13T22:20:23.583Z
- 热度: 0.0
- 关键词: BG-AI, Qwen, 聊天机器人, LM Studio, Next.js, Flask, 本地部署, 多模态
- 页面链接: https://www.zingnex.cn/forum/thread/bg-ai-qwen
- Canonical: https://www.zingnex.cn/forum/thread/bg-ai-qwen
- Markdown 来源: ingested_event

---

## 项目背景：本地部署LLM的实用方案

随着大语言模型（LLM）技术的快速发展，越来越多的开发者和企业希望将AI能力集成到自己的应用中。然而，使用云端API面临数据隐私、网络延迟和持续费用等挑战，而完全本地部署又需要处理复杂的技术栈整合。

BG-AI项目提供了一个优雅的解决方案——它是一个开源的多模态聊天机器人平台，作为用户输入（文本、图片、视频）与AI模型之间的桥梁。该项目采用流行的技术栈组合（Next.js + Flask + LM Studio），让开发者能够快速搭建支持多种输入形式的本地AI对话系统。

项目名称中的「BG」可能代表「Bridge」（桥梁），准确地描述了其核心定位：不是从头训练模型，而是连接用户界面与强大的开源模型（如Qwen、Sahabat AI）。

## 技术架构：三层分离设计

BG-AI采用了清晰的三层架构，每层负责不同的功能：

```
Browser ←→ Next.js :3000 ←→ Flask :5000 ←→ LM Studio :1234
 (路由/UI)      (API代理)      (Qwen3-4B)
```

**第一层：Next.js前端（ui/）**

基于React和TypeScript构建的现代化Web界面，负责：
- 页面路由（聊天、登录、账户设置等）
- 用户交互界面
- 状态指示器（显示LM Studio连接状态）
- API调用封装

前端运行在3000端口，通过代理配置将`/api/*`请求转发到Flask后端。

**第二层：Flask后端（log/）**

Python编写的API服务层，负责：
- 接收前端请求
- 与LM Studio通信
- 处理消息格式转换
- 管理会话状态

后端运行在5000端口，提供RESTful API端点。

**第三层：LM Studio模型服务**

在本地运行的LLM推理引擎，负责：
- 加载和运行Qwen3-4B等开源模型
- 提供OpenAI兼容的API接口
- 处理实际的文本生成任务

默认运行在1234端口，支持GGUF格式的量化模型。

这种分层设计的好处在于：
- **职责清晰**：每层只关注自己的核心功能
- **易于替换**：可以独立升级或替换任何一层
- **开发友好**：前后端可以使用各自擅长的技术栈
- **部署灵活**：各层可以部署在同一台机器或分布式部署

## 核心功能与特性

BG-AI作为一个完整的聊天机器人平台，提供了以下功能：

**多模态输入支持**

虽然项目描述提到支持文本、图片、视频输入，但目前主要实现的是文本对话。多模态能力的完整实现可能需要配合支持视觉的模型版本（如Qwen-VL）。

**实时状态监控**

前端界面包含状态指示器（StatusDot组件），实时显示LM Studio的连接状态：
- ● Online（绿色）：LM Studio运行正常，可以对话
- ● Offline（红色）：LM Studio未启动或连接失败

**完整的用户系统**

项目包含用户认证相关页面：
- `/login`：登录和注册
- `/auth`：账户设置
- `/terms`：服务条款

虽然代码仓库中可能没有完整的数据库实现，但页面结构已经搭建好，可以方便地集成认证服务。

**OpenAI兼容API**

Flask后端提供的API与OpenAI格式兼容，这意味着：
- 可以使用任何支持OpenAI API的客户端
- 便于迁移现有的OpenAI应用
- 标准化的消息格式（role/content结构）

## 部署指南：从安装到运行

BG-AI的部署过程相对简单，主要分为三个步骤：

**第一步：准备LM Studio**

1. 从[lmstudio.ai](https://lmstudio.ai/)下载并安装LM Studio
2. 在Library中搜索并下载Qwen3-4B模型
3. 点击「Load Model」加载模型
4. 点击「Start Server」启动本地服务器
5. 验证：访问`http://localhost:1234/api/models`应返回模型列表

**第二步：启动Flask后端**

```bash
cd log/
pip install -r requirements.txt
python main.py
```

依赖包包括：
- `flask>=3.0.0`：Web框架
- `flask-cors>=4.0.0`：跨域支持
- `requests>=2.31.0`：HTTP客户端
- `python-dotenv>=1.0.0`：环境变量管理

启动成功后，终端会显示：
```
=================================================================
 BG-AI - Flask Backend
=================================================================
 Port      : 5000
 LM Studio : http://localhost:1234/v1
 Model     : qwen3-4b
-----------------------------------------------------------------
 API Endpoint (dipanggil oleh Next.js)
 POST /api/chat    -> Kirim pesan ke Qwen3-4B
 GET  /api/status  -> Cek koneksi LM Studio
 GET  /api/models  -> Daftar model tersedia
 GET  /api/config  -> Info konfigurasi
=================================================================
```

**第三步：启动Next.js前端**

```bash
cd ui/
npm install
npm run dev
```

前端将在`http://localhost:3000`运行，自动代理API请求到Flask后端。

**一键启动脚本**

Windows用户可以使用提供的启动脚本：
```powershell
.\start.ps1    # PowerShell
start.bat       # Command Prompt
```

脚本会自动安装依赖（如需要）、启动Flask后端和Next.js前端。

## API接口详解

BG-AI提供了简洁的REST API：

**发送消息**

```http
POST /api/chat
Content-Type: application/json

{
  "messages": [
    {"role": "system", "content": "You are a helpful AI assistant."},
    {"role": "user", "content": "Hello, how are you?"}
  ]
}
```

响应：
```json
{
  "response": "I'm doing well, thank you for asking!",
  "model": "qwen3-4b",
  "tokens": 42
}
```

**检查状态**

```http
GET /api/status
```

响应（在线）：
```json
{
  "status": "online",
  "lm_studio": "http://localhost:1234/v1",
  "model": "qwen3-4b"
}
```

**获取配置**

```http
GET /api/config
```

响应：
```json
{
  "lm_studio_url": "http://localhost:1234/v1",
  "model_name": "qwen3-4b",
  "max_tokens": 1024,
  "temperature": 0.7,
  "port": 5000
}
```

## 配置与环境变量

BG-AI支持通过`.env`文件进行配置：

```bash
# LM Studio配置
LM_STUDIO_BASE=http://localhost:1234/v1
MODEL_NAME=qwen3-4b
MAX_TOKENS=1024
TEMPERATURE=0.7

# Flask配置
FLASK_PORT=5000
FLASK_DEBUG=true
```

关键配置项说明：

| 变量 | 默认值 | 说明 |
|------|--------|------|
| LM_STUDIO_BASE | http://localhost:1234/v1 | LM Studio API地址 |
| MODEL_NAME | qwen3-4b | 使用的模型名称 |
| MAX_TOKENS | 1024 | 最大输出token数 |
| TEMPERATURE | 0.7 | 生成随机性（0-2） |
| FLASK_PORT | 5000 | Flask服务端口 |
| FLASK_DEBUG | false | 调试模式开关 |

## 故障排查与常见问题

**LM Studio连接失败**

症状：前端显示「● Offline」

解决步骤：
1. 确认LM Studio应用已打开
2. 确认Qwen3-4B模型已加载（显示✓标记）
3. 点击「Start Server」启动本地服务器
4. 浏览器访问`http://localhost:1234/api/models`验证服务正常

**端口冲突**

如果5000或3000端口被占用：

```bash
# 查找占用端口的进程（Windows）
netstat -ano | findstr :5000

# 结束进程
taskkill /PID <PID> /F

# 或修改.env使用其他端口
FLASK_PORT=5001
```

**依赖安装失败**

如果npm或pip安装失败，尝试删除缓存重新安装：

```bash
# Node.js
rm -r node_modules package-lock.json
npm install

# Python
pip install --upgrade pip
pip install -r requirements.txt
```

## 应用场景与扩展方向

BG-AI适合以下应用场景：

**个人AI助手**：在本地部署私人的聊天机器人，保护对话隐私

**企业内部工具**：构建公司内部的AI问答系统，连接企业知识库

**教育演示**：作为学习LLM应用开发的示例项目

**原型开发**：快速验证AI应用想法，后续可扩展为生产系统

**扩展建议**：

1. **集成向量数据库**：添加RAG能力，让机器人能够基于文档回答问题
2. **多模型支持**：允许用户切换不同的本地模型
3. **对话历史持久化**：添加数据库支持，保存和恢复对话记录
4. **多语言优化**：针对中文进行提示词优化，提升中文对话质量
5. **移动端适配**：优化前端界面，提供更好的移动端体验

## 总结

BG-AI是一个实用的开源项目，展示了如何将现代Web技术（Next.js）与Python后端（Flask）以及本地LLM推理（LM Studio）结合，构建功能完整的多模态聊天机器人。

它的价值不在于技术创新，而在于工程实践的完整性——从项目结构到部署文档，从API设计到错误处理，都体现了良好的开发规范。对于希望入门LLM应用开发的开发者来说，BG-AI是一个很好的参考项目。

随着Qwen等开源模型的持续进步，类似的本地化部署方案将变得越来越实用。BG-AI为此类应用提供了一个可靠的基础架构模板。
