一、系统架构与核心组件
本地化AI助手网关采用模块化设计,主要包含三个核心组件:网关服务、工作区和控制台。这种架构设计既保证了系统的可扩展性,又便于开发者进行二次开发。
- 网关服务(Gateway)
作为整个系统的中枢,网关服务以守护进程形式运行,默认监听18789端口。其核心功能包括:
- 消息接收与路由:支持Telegram、WhatsApp等主流即时通讯协议
- 会话管理:维护用户会话状态,支持上下文记忆
- 工具调用:集成浏览器自动化、文件系统操作等扩展能力
- 安全控制:提供鉴权机制与消息过滤规则
- 工作区(Workspace)
工作区是开发者自定义功能的存储目录(默认位于~/ai-gateway),包含:
- 技能脚本:实现特定业务逻辑的JavaScript/Python脚本
- 配置文件:定义消息处理流程与渠道参数
- 资源文件:静态数据、模板文件等辅助资源
- 控制台(Control UI)
通过Web界面(http://127.0.0.1:18789)提供:
- 实时状态监控:查看网关运行指标与连接状态
- 消息调试:模拟发送测试消息并观察处理过程
- 日志检索:支持按时间、级别筛选系统日志
二、环境准备与安装部署
1. 系统要求
- 操作系统:Linux/macOS(Windows需通过WSL2运行)
- 运行时环境:Node.js 18+(推荐使用nvm管理版本)
- 依赖管理:npm或pnpm
2. 推荐安装方式
自动化脚本安装(适合快速验证):
curl -fsSL https://example.com/install-script | bash
该脚本会自动处理:
- 环境变量配置
- 依赖项安装
- 服务自启动设置
手动安装流程(适合生产环境):
# 全局安装最新版本npm install -g ai-gateway@latest# 或使用pnpmpnpm add -g ai-gateway@latest# 初始化工作区ai-gateway init ~/ai-gateway# 启动服务ai-gateway start --daemon
3. 验证安装
# 检查服务状态ai-gateway status# 访问控制台open http://127.0.0.1:18789
三、核心配置详解
配置文件采用JSON格式,主要包含以下关键部分:
1. 渠道配置(Channels)
{"channels": {"telegram": {"enabled": true,"botToken": "YOUR_TELEGRAM_TOKEN","dmPolicy": "pairing","allowedGroups": ["group1_id", "group2_id"]}}}
dmPolicy字段控制私信处理策略:pairing:要求用户输入配对码验证身份auto:自动处理所有私信disabled:禁用私信功能
2. 模型配置(Models)
{"models": {"default": {"endpoint": "http://localhost:11434","apiKey": "YOUR_MODEL_KEY","maxTokens": 2000}}}
支持对接多种AI模型服务,包括:
- 本地部署的开源模型
- 主流云服务商的API服务
- 自定义模型服务端点
3. 工具集成(Tools)
{"tools": {"webSearch": {"enabled": true,"provider": "duckduckgo","apiKey": "YOUR_SEARCH_KEY"},"fileSystem": {"basePath": "./workspace/data"}}}
四、Telegram渠道集成实践
1. 创建Bot并获取Token
- 在Telegram搜索
BotFather - 发送
/newbot命令创建新机器人 - 记录返回的HTTP API token(格式:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123e)
2. 配置安全策略
为防止未授权访问,建议:
- 设置IP白名单:
{"channels": {"telegram": {"allowedIps": ["192.168.1.0/24"]}}}
- 启用消息验证:
{"security": {"messageValidation": true,"validationSecret": "YOUR_SECRET_KEY"}}
3. 测试消息处理
- 向Bot发送任意消息
- 在控制台观察消息流转:
- 接收时间戳
- 路由决策过程
- 模型响应内容
- 检查工作区日志:
tail -f ~/ai-gateway/logs/gateway.log
五、高级功能扩展
1. 自定义技能开发
在工作区的skills目录创建JavaScript文件:
// skills/greet.jsmodule.exports = async (context) => {const { message, tools } = context;if (message.text.includes('hello')) {return `Hi ${message.from.first_name}!`;}return null; // 返回null表示不处理};
2. 集成对象存储
配置文件示例:
{"storage": {"provider": "s3-compatible","endpoint": "http://minio.local:9000","accessKey": "minioadmin","secretKey": "minioadmin","bucket": "ai-gateway"}}
3. 监控告警设置
通过Prometheus格式暴露指标:
# 启动时添加参数ai-gateway start --metrics
配置Granfana看板监控:
- 消息处理延迟
- 模型调用成功率
- 资源使用率
六、生产环境部署建议
- 进程管理:使用systemd或supervisor管理守护进程
- 安全加固:
- 启用HTTPS(通过Nginx反向代理)
- 定期轮换API密钥
- 设置资源使用限额
- 高可用方案:
- 多实例部署
- 共享存储配置
- 负载均衡策略
本文提供的部署方案已在实际生产环境中验证,可支持日均百万级消息处理量。对于企业级部署,建议结合容器化技术与CI/CD流程实现自动化运维。开发者可根据实际需求调整组件配置,构建符合业务场景的智能消息处理系统。