返回首页
🤖 AI / LLM
LlamaIndex Workflow 实战:事件驱动的 RAG 流水线
LlamaIndex Workflow 提供事件驱动的 pipeline 编排。本文演示如何用 Workflow 构建复杂 RAG。
LlamaIndex · Workflow · RAG · LLM · Agent
��
今日技术简讯
📰 技术简讯 · 2026-05-25
今日聚合 6 条热门技术内容。
🤖 AI / LLM
1. LlamaIndex Workflow 实战
- 链接:https://www.llamaindex.ai/blog/workflow
- 来源:LlamaIndex
- 摘要:LlamaIndex Workflow 提供事件驱动的 RAG pipeline 编排。
🎨 前端 / Web
2. React Router 7 正式发布
- 链接:https://reactrouter.com
- 来源:Remix 团队
- 摘要:React Router 7 整合 Remix 特性,单页应用 + SSR 双模式。
⚙️ 后端 / 架构
3. TimescaleDB 2.18 实战
- 链接:https://www.timescale.com/blog/2-18
- 来源:Timescale
- 摘要:时序数据库新版本,压缩率提升 3 倍,查询性能提升 5 倍。
🚀 独立开发 / OPC
4. Paddle 推出订阅分析仪表盘
- 链接:https://www.paddle.com/dashboard
- 来源:Paddle
- 摘要:可视化订阅分析,MRR / Churn / LTV 一站式。
5. Mercury 推出 Banking 2.0
- 链接:https://mercury.com/banking-2
- 来源:Mercury
- 摘要:Mercury 集成更多支付渠道,全球收款更简单。
6. Lemon Squeezy 推出 Tax Automation
- 链接:https://www.lemonsqueezy.com/tax
- 来源:Lemon Squeezy
- 摘要:自动计算全球销售税,Merchant of Record 模式更完善。
数据来源:掘金 / InfoQ 中文 / HN / GitHub / Dev.to 采集日期:2026-05-25 (UTC+8)
��
今日深度文
LlamaIndex Workflow 实战:事件驱动的 RAG 流水线
一句话结论:LlamaIndex Workflow 把"链式 RAG"升级为"事件驱动 pipeline"。复杂场景可读性和可维护性大幅提升。
核心概念
from llama_index.core.workflow import Workflow, StartEvent, StopEvent, step
# Workflow = 一组 step + event
# 每个 step 接收 event,处理后发出新 event
实战:多步 RAG Pipeline
from llama_index.core.workflow import (
Workflow, StartEvent, StopEvent, step, Event,
)
from llama_index.core import VectorStoreIndex
from llama_index.core.retrievers import VectorIndexRetriever
class QueryEvent(Event):
query: str
class RetrievalEvent(Event):
query: str
nodes: list
class RerankEvent(Event):
query: str
nodes: list
class GenerationEvent(Event):
query: str
nodes: list
class RAGWorkflow(Workflow):
@step
async def start(self, ev: StartEvent) -> QueryEvent:
return QueryEvent(query=ev.query)
@step
async def retrieve(self, ev: QueryEvent) -> RetrievalEvent:
retriever = VectorIndexRetriever(index=index, top_k=10)
nodes = retriever.retrieve(ev.query)
return RetrievalEvent(query=ev.query, nodes=nodes)
@step
async def rerank(self, ev: RetrievalEvent) -> RerankEvent:
from sentence_transformers import CrossEncoder
reranker = CrossEncoder("BAAI/bge-reranker-base")
pairs = [[ev.query, n.text] for n in ev.nodes]
scores = reranker.predict(pairs)
ranked = sorted(zip(ev.nodes, scores), key=lambda x: -x[1])[:3]
return RerankEvent(query=ev.query, nodes=[n for n, _ in ranked])
@step
async def generate(self, ev: RerankEvent) -> StopEvent:
context = "\n\n".join([n.text for n in ev.nodes])
response = llm.invoke(
f"基于以下上下文回答:\n{context}\n\n问题:{ev.query}"
)
return StopEvent(result=response)
# 启动
workflow = RAGWorkflow()
result = await workflow.run(query="什么是 RAG?")
print(result.result)
5 个核心优势
1. 可视化
# LlamaIndex 提供 Workflow 可视化
from llama_index.core.workflow import draw_all_possible_flows
draw_all_possible_flows(workflow, filename="workflow.html")
2. 事件驱动
# 多个 step 可以并行
@step
async def parallel_step(self, ev: Event) -> List[Event]:
# 触发多个并行任务
return [EventA(...), EventB(...)]
3. 错误处理
from llama_index.core.workflow import WorkflowTimeoutError
try:
result = await workflow.run(query=query, timeout=30)
except WorkflowTimeoutError:
# 处理超时
pass
4. 状态持久化
# Workflow 内置 context
@step
async def step_with_state(self, ev: StartEvent) -> StopEvent:
self.context.state["key"] = "value"
return StopEvent(result=...)
5. 流式输出
async for event in workflow.stream(query="..."):
print(event)
何时用 Workflow
✅ 适合
- 复杂 RAG(多步检索 / 多 Agent)
- 需要状态管理的 pipeline
- 多模态处理
❌ 不适合
- 简单 RAG(直接用 query_engine)
- 一次性脚本
参考
本文基于 LlamaIndex 0.12。
�� 同主题文章
📝未分类·
PostgreSQL 18 + pgvector 1.0:AI 原生数据库完整实战
PostgreSQL 18 正式发布。pgvector 1.0 原生向量索引 + 5 大方案对比 + RAG 实战 + 性能基准。
PostgreSQL 18pgvector向量数据库
🤖AI / LLM·
DeepSeek V4 + 国产大模型 2026:5 大模型全面对比与实战指南
2026 国产大模型格局已变。DeepSeek V4 / Qwen3-Max / GLM-5 / Kimi K3 / 豆包 Pro 5 大模型对比 + 6 个实战 + 成本基准 + 选型决策树。
DeepSeekQwenGLM
🤖AI / LLM·
GraphRAG + 知识图谱 2026:图谱增强生成完整实战指南
GraphRAG 是 2026 年 RAG 2.0。本文 Microsoft GraphRAG / Neo4j / LangChain / LlamaIndex 4 大方案对比 + 5 个实战 + 选型决策树。
GraphRAG知识图谱Neo4j