惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
小众软件
小众软件
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
T
Tailwind CSS Blog
Martin Fowler
Martin Fowler
I
InfoQ
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
The Cloudflare Blog
罗磊的独立博客

博客园 - royalrover

Graph RAG,不一定要图数据库 LLM Wiki 深度解析 How LLMs Actually Work(翻译) 微调LLM前你需要了解的一些概念-- 反向传播解析 微调LLM前你需要了解的一些概念-- 基于 Qwen3 配置文件的实践 微调LLM前你需要了解的一些概念2--多头注意力机制 微调LLM前你需要了解的一些概念1 -- 综述 从控制论看 Harness Engineering:当反馈回路终于能在"重要的地方"闭合 5分钟Mac本地跑通32B Qwen!免费GPT-4o替代,还能5分钟造个会开浏览器+执行Shell的AI Agent 深入剖析 nanobot:轻量级 AI Agent 框架的架构之道 k8s上手 iOS MDM(监管锁)入门 SRE中的SLA/SLO/SLI 开放网关统一认证服务 业务网关之AK中心建设 Feature Police导致iframe页面无法使用粘贴功能 页面异步请求canceled 或 network中接口请求成功但无法查看返回值 我在阿里云做云开发平台 阿里云云开发平台助力企业Serverless架构升级实战 随心一笔 nodejs中的并发编程 基于Unix Socket的可靠Node.js HTTP代理实现(支持WebSocket协议) cluster模块设置子进程的stdio - royalrover - 博客园 nginx(tengine)访问日志分片 serverless在微店node领域的探索应用 node应用远程调试教程 Node EE方案 -- Rockerjs在微店的建设与发展
快速搭建你的数据智能分析 Agent
royalrover · 2026-03-04 · via 博客园 - royalrover

背景与目标
宽表已包含工单名、工单总结(长文本)和聊天记录。传统 SQL 或关键词搜索无法有效挖掘语义层面的重复模式、根因及最佳实践。

本方案目标:

  • 从月度 2 万条(或百万级)工单文本中自动发现 10–30 个知识主题
  • 生成可读知识卡片(主题名称、典型描述、根因、推荐方案)
  • 每条结论附原始工单 ID,确保可追溯
  • LLM 调用次数固定,与样本量无关
  • 整体处理时间:2 万条数据小于 5 分钟

核心技术组合

  • 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;

系统架构图

graph TB subgraph ClickHouse[ClickHouse 存储层] A[宽表 wide_work_order_table 工单名 + 总结 + 聊天记录] B[向量表 work_order_embeddings embedding + HNSW索引] end subgraph Agent[Agent 侧 Python + LangGraph] C[KnowledgeMiningTool] D[BGE-M3 Embedding sentence-transformers] E[k-LLMmeans 聚类引擎] F[LLM\nQwen2.5 / DeepSeek / Grok 仅生成质心总结] end subgraph Output[输出层] G[知识维度报告 Markdown/PDF 知识卡片 + 可追溯ID] end A -->|1.时间范围查询| C C -->|2.拉取文本| D D -->|3.生成向量| B B -->|4.读取向量| E E -->|5.LLM 生成质心| F E -->|6.写入聚类结果| B E -->|7.生成报告| G

处理流程图

flowchart TD Start[用户输入时间范围] --> S1[Agent 调用 ClickHouse 拉取工单文本数据] S1 --> S2[Agent 侧 BGE-M3 批量生成 Embedding 拼接工单名 + 总结 + 聊天记录] S2 --> S3[向量写入 ClickHouse work_order_embeddings 表 支持增量] S3 --> S4[Agent 侧 k-LLMmeans n_clusters=15~20 LLM 仅对质心调用 与样本量无关] S4 --> S5[聚类结果写回 ClickHouse cluster_id + cluster_summary] S5 --> S6[LLM 生成知识报告 每簇包含: 主题名称 占比 根因与方案 Top5 工单ID] S6 --> End[知识维度报告完成 可存入知识库 RAG] classDef agent fill:#e8f5e9,stroke:#388e3c classDef ck fill:#fff3e0,stroke:#f57c00 class S1,S3,S5 ck class S2,S4,S6 agent

主要优势

  • 聚类结果可解释且 100% 可追溯
  • 支持百万级扩展(分批 Embedding + 子采样)
  • LLM 调用次数固定,成本可控
  • 可直接集成现有 ClickHouse 宽表

内存占用与百万级扩展性补充
k-LLMmeans 聚类阶段需将 embedding 向量从 ClickHouse 查询到 Agent 侧 Python 内存中处理。
BGE-M3 1024 维向量(Float32)每个占用 4 KB。实际内存占用如下:
2 万条:约 78 MB(含 Pandas 开销 < 200 MB)
10 万条:约 390 MB(普通服务器无压力)
100 万条:约 3.81 GB(需 16 GB 以上内存)
2 万 ~ 10 万条规模下,当前方案可直接运行,无内存风险。
针对百万级扩展,已设计以下增量优化路径(代码改动 < 50 行):
子采样 + HNSW 分配(推荐):仅采样 5~10 万条向量运行 k-LLMmeans,其余向量通过 ClickHouse HNSW 索引执行一次相似度查询分配到最近簇,精度损失 < 3%。
分页分批处理:使用 LIMIT/OFFSET 分批拉取,每批独立 MiniBatch 处理后合并质心。
增量处理机制:每次仅处理新增 dt 分区,历史 embedding 与 cluster_id 永久复用。