## 新增微服务: llm-gateway (端口 3008) 对外提供与 Anthropic/OpenAI 完全兼容的 API 接口,中间拦截实现: - API Key 认证:由我们分配 Key 给外部用户,SHA-256 哈希存储 - System Prompt 注入:在请求转发前注入监管合规内容(支持 prepend/append) - 内容审查过滤:对用户消息进行关键词/正则匹配,支持 block/warn/log 三种动作 - 用量记录:异步批量写入,跟踪 token 消耗和费用估算 - 审计日志:记录每次请求的来源 IP、过滤状态、注入状态等 - 速率限制:基于内存滑动窗口的 RPM 限制 ### 技术选型 - Fastify (非 NestJS):纯代理场景无需 DI 容器,路由开销 ~2ms - SSE 流式管道:零缓冲直通,支持 Anthropic streaming 和 OpenAI streaming - 规则缓存:30 秒 TTL,避免每次请求查库 ### API 端点 - POST /v1/messages — Anthropic Messages API 代理(流式+非流式) - POST /v1/embeddings — OpenAI Embeddings API 代理 - POST /v1/chat/completions — OpenAI Chat Completions API 代理 - GET /health — 健康检查 ## 数据库 (5 张新表) - gateway_api_keys: 外部用户 API Key(权限、限速、预算、过期时间) - gateway_injection_rules: 监管内容注入规则(位置、匹配模型、匹配 Key) - gateway_content_rules: 内容审查规则(关键词/正则、block/warn/log) - gateway_usage_logs: Token 用量记录(按 Key、模型、提供商统计) - gateway_audit_logs: 请求审计日志(IP、过滤状态、注入状态) ## Admin 后端 (conversation-service) 4 个 NestJS 控制器,挂载在 /conversations/admin/gateway/ 下: - AdminGatewayKeysController: Key 的 CRUD + toggle - AdminGatewayInjectionRulesController: 注入规则 CRUD + toggle - AdminGatewayContentRulesController: 内容审查规则 CRUD + toggle - AdminGatewayDashboardController: 仪表盘汇总、用量查询、审计日志查询 5 个 ORM 实体文件对应 5 张数据库表。 ## Admin 前端 (admin-client) 新增 features/llm-gateway 模块,Tabs 布局包含 5 个管理面板: - API Key Tab: 创建/删除/启停 Key,创建时一次性显示完整 Key - 注入规则 Tab: 配置监管内容(前置/追加到 system prompt) - 内容审查 Tab: 配置关键词/正则过滤规则 - 用量统计 Tab: 查看 token 消耗、费用、响应时间 - 审计日志 Tab: 查看请求记录、过滤命中、注入状态 菜单项: GatewayOutlined + "LLM 网关",位于"系统总监"和"数据分析"之间。 ## 基础设施 - docker-compose.yml: 新增 llm-gateway 服务定义 - kong.yml: 新增 /v1/messages、/v1/embeddings、/v1/chat/completions 路由 - 超时设置 300 秒(LLM 长响应) - CORS 新增 X-Api-Key、anthropic-version、anthropic-beta 头 - init-db.sql: 新增 5 张 gateway 表的建表语句 ## 架构说明 内部服务(conversation-service、knowledge-service、evolution-service)继续直连 API, llm-gateway 仅服务外部用户。两者通过共享 PostgreSQL 数据库关联配置。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| database/migrations | ||
| docs | ||
| infrastructure | ||
| kong | ||
| nginx | ||
| packages | ||
| scripts | ||
| .builder.Dockerfile | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| README.md | ||
| deploy.sh | ||
| docker-compose.yml | ||
| iconsulting部署架构.jpg | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| tsconfig.base.json | ||
| turbo.json | ||
| 优才.jpg | ||
| 香港移民类别.jpg | ||
README.md
iConsulting - 香港移民在线咨询系统
基于 Claude Agent SDK 的智能在线客服系统,专注于提供香港移民咨询服务。
功能特性
- 智能咨询: 基于 Claude Agent SDK 的自然语言对话
- 付费评估: 移民资格评估服务,支持支付宝/微信/信用卡
- 知识增强: RAG + Neo4j 知识图谱
- 自我进化: 从对话中学习,根据管理员指令调整
- 长期记忆: 基于时间线的知识图谱记录
- 多端支持: PC Web / H5 响应式设计
支持的移民类别
- 优才计划 (QMAS) - 行业翘楚、精英人士
- 专才计划 (GEP) - 专业人才
- 留学IANG - 非本地毕业生
- 高才通 (TTPS) - 高端人才
- 投资移民 (CIES) - 投资者
- 科技人才 (TechTAS) - 科技领域人才
技术架构
├── 前端 (Clean Architecture)
│ ├── React 18 + TypeScript
│ ├── TailwindCSS + Radix UI
│ └── Zustand + React Query
│
├── 后端 (DDD + Hexagonal + 微服务)
│ ├── NestJS
│ ├── Claude Agent SDK
│ └── TypeORM
│
└── 基础设施
├── PostgreSQL + pgvector (RAG)
├── Neo4j (知识图谱)
├── Redis (缓存)
└── Kafka (消息队列)
项目结构
iconsulting/
├── packages/
│ ├── shared/ # 共享类型、常量、工具
│ ├── web-client/ # 用户端 Web 应用
│ ├── admin-client/ # 管理端 Web 应用
│ └── services/ # 后端微服务
│ ├── api-gateway/ # API 网关
│ ├── user-service/ # 用户服务
│ ├── conversation-service/ # 对话服务 (核心)
│ ├── knowledge-service/ # 知识服务
│ ├── payment-service/ # 支付服务
│ ├── admin-service/ # 管理服务
│ └── evolution-service/ # 进化服务
│
├── infrastructure/
│ └── docker/ # Docker 配置
│
├── DEVELOPMENT_GUIDE.md # 详细开发指导
└── README.md
快速开始
1. 安装依赖
# 安装 pnpm (如果没有)
npm install -g pnpm
# 安装项目依赖
pnpm install
2. 启动基础设施
# 启动 Docker 容器 (PostgreSQL, Neo4j, Redis, Kafka)
pnpm docker:dev
3. 配置环境变量
# 复制环境变量示例文件
cp .env.example .env
# 编辑 .env 文件,填入必要的配置
# 特别是 ANTHROPIC_API_KEY
4. 运行数据库迁移
pnpm db:migrate
5. 启动开发服务器
# 启动所有服务
pnpm dev
访问:
- 用户端: http://localhost:5173
- 管理端: http://localhost:5174
- API: http://localhost:3000
环境变量
关键配置项:
# Claude API
ANTHROPIC_API_KEY=sk-ant-xxx
# 数据库
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=iconsulting
POSTGRES_PASSWORD=your_password
POSTGRES_DB=iconsulting
# Neo4j
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password
# 支付 (支付宝/微信)
ALIPAY_APP_ID=xxx
WECHAT_APP_ID=xxx
完整配置请参考 .env.example
文档
| 文档 | 说明 |
|---|---|
| 架构文档 | 系统整体架构、服务职责、数据流、部署配置 |
| Agent 评估报告 | Agent 能力评估、成熟度分析、升级路线图 |
| 开发指南 | 详细开发指导、代码示例、API 设计 |
| MinIO 配置 | 对象存储配置说明 |
开发进度
已完成
- 项目架构设计
- 开发指导文档
- Monorepo 配置
- 共享类型定义
- Docker 基础设施配置
- 数据库 Schema
- 对话服务 (Claude Agent SDK 集成)
- 用户端前端基础框架
进行中
- 用户服务
- 知识服务 (RAG + Neo4j)
- 支付服务
- 管理服务 (自我进化)
- 管理后台前端
贡献指南
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
许可证
私有项目,保留所有权利。