快速搭建你的数据智能分析 Agent
·
心技术组合
- Embedding:BGE-M3(1024 维)
- 聚类:k-LLMmeans(GitHub: jairoadiazr/k-LLMmeans)
- 向量存储:ClickHouse 原生 Array(Float32) + HNSW 索引
- Agent 框架:LangGraph(封装为 KnowledgeMiningTool)
处理位置
- Embedding 与 k-LLMmeans 聚类:全部在 Agent 侧(Python 进程)完成
- ClickHouse:仅负责数据拉取、向量持久化存储及 HNSW 索引
向量存储设计(推荐独立表)
CREATE TABLE IF NOT EXISTS work_order_embeddings (
order_id String,
dt Date,
embedding Array(Float32),
cluster_id UInt32 DEFAULT 0,
cluster_summary String
) ENGINE = MergeTree()
ORDER BY (dt, order_id);
ALTER TABLE work_order_embeddings
ADD INDEX embedding_hnsw embedding TYPE hnsw('L2Distance') GRANULARITY 1000;
系统架构图
输出层
Agent 侧 Python + LangGraph
ClickHouse 存储层
1.时间范围查询
2.拉取文本
3.生成向量
4.读取向量
5.LLM 生成质心
6.写入聚类结果
7.生成报告
宽表 wide_work_order_table 工单名 + 总结 + 聊天记录
向量表 work_order_embeddings embedding + HNSW索引
KnowledgeMiningTool
BGE-M3 Embedding sentence-transformers
k-LLMmeans 聚类引擎
LLM\nQwen2.5 / DeepSeek / Grok 仅生成质心总结
知识维度报告 Markdown/PDF 知识卡片 + 可追溯ID
处理流程图
用户输入时间范围
Agent 调用 ClickHouse 拉取工单文本数据
Agent 侧 BGE-M3 批量生成 Embedding 拼接工单名 + 总结 + 聊天记录
向量写入 ClickHouse work_order_embeddings 表 支持增量
Agent 侧 k-LLMmeans n_clusters=15~20 LLM 仅对质心调用 与样本量无关
聚类结果写回 ClickHouse cluster_id + cluster_summary
LLM 生成知识报告 每簇包含: 主题名称 占比 根因与方案 Top5 工单ID
知识维度报告完成 可存入知识库 RAG
主要优势
- 聚类结果可解释且 100% 可追溯
- 支持百万级扩展(分批 Embedding + 子采样)
- LLM 调用次数固定,成本可控
- 可直接集成现有 ClickHouse 宽表
内存占用与百万级扩展性补充
更多推荐
所有评论(0)