LiquidAI多代理堆栈
一种生产就绪的多仓库架构,用于构建智能ETL管道、RAG系统和微调工作流,使用 LiquidAI 模型和 Pydantic AI.
使用本地LiquidAI模型构建安全、离线、兼容的GenAI系统——无云依赖,无数据泄露。
🎯 特性
- 多模型智能:针对不同任务使用不同的LiquidAI模型
- LFM2-2.6B:以质量为中心的分块、元数据提取、QA生成 - LFM2-1.2B:平衡的总结和重写 - LFM2-700M:快速验证和RAG推理
- 自动设备选择:根据可用硬件自动选择CPU/GPU和最佳数据类型
- “两只鸟,一块石头”ETL:在为文档编制索引的同时,生成微调数据集
- Pydantic AI集成:全类型安全、结构化输出和基于图形的编排
- MCP工具:用于RAG和文件系统操作的模型上下文协议服务器
- Docker就绪:具有组合编排的CPU和GPU容器
🧭 用例
| 用例 | 描述 |
|---|---|
| 安全的RAG | 没有云法律/医疗知识库 |
| SOC自动化 | 离线事件知识检索 |
| 合规AI | GDPR/ISO/NIST政策文件问答 |
| Edge AI | 部署在笔记本电脑或安全飞地上 |
| 多智能体模拟 | 自主事件响应 |
📈 基准和硬件期望
| 型号 | 角色 | RAM | 速度CPU | 速度GPU |
|---|---|---|---|---|
| 700M | RAG运行时 | ~4 GB | ⚡ 快速(15-22tok/s) | ⚡⚡ 非常快(90-120tok/s) |
| 1.2B | 摘要 | ~6 GB | ◼ 中等 | ⚡⚡ 快速 |
| 2.6B | 元数据/QA | ~10–12 GB | ◼ 慢 | ⚡ 中等(建议≥12 GB VRAM) |
🔭 可观测性
- 通过Logfire内置OpenTetry功能
- 监控反应质量、令牌使用和幻觉评分
import logfire
logfire.configure()
logfire.instrument_pydantic_ai()🛡️ 安全控制
该系统遵循符合ISO/IEC 27001(机密性、完整性、日志记录)、ISO/IEC 42010架构实践和NIST SP 800-53护栏的安全设计模式。
- 零信任网络:容器可以运行
--network none - 存储范围:
/data仅限安装 - 策略执行:无远程推理调用
- 审计可追溯性:记录并键入代理工具调用
📦 存储库结构
liquid-ai-stack/
├── liquid-shared-core/ # Shared utilities, models, schemas
├── liquid-etl-pipeline/ # Intelligent ETL with Pydantic AI graphs
├── liquid-rag-runtime/ # Fast RAG inference API
├── liquid-mcp-tools/ # MCP servers for tools
├── liquid-ft-trainer/ # Fine-tuning with LoRA/QLoRA
├── docker-compose.yml # Full stack orchestration
└── README.md📌 当前实施和差距
该堆栈包含五个核心、可生产的组件:
liquid-shared-core–每个服务使用的共享实用程序、Pydantic模型和硬件助手。liquid-etl-pipeline–多代理ETL,对文档进行分组、丰富元数据、总结和准备
在矢量存储输出旁边微调数据集。
liquid-rag-runtime–基于FastAPI的RAG API暴露健康,全代理/ask,简单/ask/simple,以及
/search 具有缓存、度量和速率限制的端点。
liquid-mcp-tools–模型上下文协议服务器,为代理提供文件系统和RAG帮助程序
互操作性。
liquid-ft-trainer–LFM2 700M、1.2B和2.6B型号的LoRA/QLoRA微调实用程序。
剩余的路线图实施领域:
- 连续评估循环 将低置信度的答案或用户反馈路由回自动化
微调工作。
- 政策/审计仪表板 以可视化API响应之外的访问控制和合规性日志。
- 用户/管理员UI 用于与代理聊天和管理管道(堆栈当前以API为中心/无头)。
- CI/CD和高级测试 (目前还没有GitHub操作或类似的工作流)。
- 知识图集成 以可遍历的语义关系补充向量搜索。
🚀 快速开始
1.克隆和设置
# Clone the repository
git clone https://github.com/Simon-TERRIEN/liquid-ai-stack.git
cd liquid-ai-stack
# Create directories
mkdir -p models data/raw data/processed data/ft data/vectordb2.下载型号
# Using Hugging Face CLI
pip install huggingface-hub
# Download LiquidAI models (choose based on your hardware)
huggingface-cli download LiquidAI/LFM2-700M --local-dir models/LFM2-700M
huggingface-cli download LiquidAI/LFM2-1.2B --local-dir models/LFM2-1.2B
huggingface-cli download LiquidAI/LFM2-2.6B --local-dir models/LFM2-2.6B3.安装依赖项
# Install shared core
cd liquid-shared-core
pip install -e .
# Install ETL pipeline
cd ../liquid-etl-pipeline
pip install -e .
# Install RAG runtime
cd ../liquid-rag-runtime
pip install -e .4.运行ETL管道
# Place documents in data/raw/
cp your-documents/*.pdf data/raw/
# Run ETL
cd liquid-etl-pipeline
python -m etl_pipeline.run_etl5.启动RAG API
cd liquid-rag-runtime
python -m rag_runtime.api_server --port 80006.查询API
curl -X POST http://localhost:8000/ask \
-H "Content-Type: application/json" \
-d '{"question": "What are the key points about GDPR compliance?"}'🐳 Docker部署
使用我们的即用型容器进行部署。选择与您的硬件匹配的配置文件。
处理器模式
# Run full stack
docker-compose --profile cpu up
# Run ETL only
docker-compose run etl-cpu
# Run RAG API only
docker-compose --profile rag-cpu upGPU模式
# Ensure NVIDIA Docker is installed
# Run with GPU support
docker-compose --profile gpu up
# Or specific services
docker-compose run etl
docker-compose --profile rag up🏗️ 建筑
系统上下文
+-------------+ +-----------------+
| User / SOC | HTTP API | RAG Runtime |
| Analyst |────────────>| (700M Model) |
+-------------+ +--------┬--------+
│
▼
+----------------+
| Vector Store |
| (metadata) |
+----------------+
│
ETL Graph (2.6B + 1.2B + 700M)
│
▼
Fine-Tuning DatasetETL管道图
Raw Document
│
▼
┌─────────────────┐
│ Chunking Agent │ (LFM2-2.6B)
│ Semantic split │
└────────┬────────┘
│
┌────┴────┐
▼ ▼
┌────────┐ ┌─────────┐
│Metadata│ │ Summary │ (LFM2-1.2B)
│ Agent │ │ Agent │
└───┬────┘ └────┬────┘
│ │
└─────┬─────┘
▼
┌──────────────┐
│ QA Agent │ (LFM2-2.6B)
│ Generate FT │
└──────┬───────┘
▼
┌──────────────┐
│ Validation │ (LFM2-700M)
│ Agent │
└──────┬───────┘
│
┌─────┴─────┐
▼ ▼
Vector DB FT Dataset
(Chroma) (JSONL)代理分类
| 组件 | 型号 | 责任 |
|---|---|---|
| 分块代理 | 2.6B | 语义结构 |
| 元数据代理 | 2.6B | 风险/实体提取 |
| 摘要代理 | 1.2B | 知识浓缩 |
| QA代理 | 2.6B | FT数据集创建 |
| 验证剂 | 700M | 幻觉过滤器 |
| RAG代理 | 700M | 低延迟应答 |
🧭 治理和成熟度路线图
- 第一阶段:本地智能ETL+RAG
- 第2阶段:代理到代理MCP工具
- 阶段3:持续评估和再培训循环
- 第4阶段:基于策略的访问控制+审计仪表板
设备选择逻辑
# Automatic based on hardware + model size
if no_cuda:
device = "cpu", dtype = "fp32"
elif model_size == "2.6B" and gpu_mem >= 10GB:
device = "cuda", dtype = "fp16"
elif model_size == "1.2B" and gpu_mem >= 6GB:
device = "cuda", dtype = "bf16"
elif model_size == "700M" and gpu_mem >= 4GB:
device = "cuda", dtype = "bf16"
else:
device = "cpu", dtype = "fp32"📚 API 参考
RAG端点
| 端点 | 方法 | 描述 |
|---|---|---|
/health | GET | 健康检查 |
/ask | POST | 提问(全程代理) |
/ask/simple | POST | 简单RAG(无代理开销) |
/search | POST | 仅搜索文档 |
/stats | GET | 矢量存储统计 |
示例请求
import requests
response = requests.post(
"http://localhost:8000/ask",
json={
"question": "What is GDPR?",
"max_context_chunks": 5,
"use_hybrid_search": True,
"fast_mode": True
}
)
print(response.json())🔧 配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
CUDA_VISIBLE_DEVICES | 0 | 要使用的GPU设备。CPU为空 |
HF_HOME | /models/.cache | HuggingFace缓存目录 |
SANDBOX_ROOT | /data | 文件系统操作的根目录 |
微调配置
from ft_trainer import FTConfig
config = FTConfig(
model_name="LiquidAI/LFM2-700M",
use_lora=True, # LoRA for efficiency
lora_r=16, # LoRA rank
lora_alpha=32, # LoRA alpha
use_4bit=False, # QLoRA for very large models
num_epochs=3,
batch_size=4,
learning_rate=2e-5,
)🔒 安全
- 沙盒执行:所有文件操作仅限于
/data - 无远程代码:模型加载了
trust_remote_code=False - SafeTensors:使用安全的序列化格式
- 网络隔离:Docker容器可以运行
--network none
🙏 致谢
该项目建立在 LiquidAI,其高效、CPU可部署的开放模型实现了安全的离线推理。
📄 许可证
该项目根据MIT许可证获得许可。
备注:LiquidAI型号遵循LFM开放许可v1.0:
- 个人和研究用途免费
- 允许收入低于1000万美元的公司进行商业用途
- 看 LiquidAI许可证 详情
🤝 贡献
欢迎投稿!请看 贡献.md 作为指导方针。
