A simple blog built by Django
高级 RAG:混合检索与 Qdrant 向量库
| Published by rcdfrd 高级 RAG:混合检索与 Qdrant 向量库
前面的 RAG 用的是纯语义检索,即只用密集向量做相似度搜索。但语义检索有时会漏掉关键词完全匹配的结果。混合检索同时用密集向量和稀疏向量(BM25),取两者之长。
混合检索的原理
密集向量擅长语义理解,「快乐」和「开心」能匹配上。稀疏向量(BM25)擅长关键词匹配,专有名词、编号这类精确查询效果更好。混合检索把两者的分数融合,覆盖更多场景。
用 Qd
Read more ⟶
结构化输出与重试机制:让 Agent 更稳定
| Published by rcdfrd 结构化输出与重试机制:让 Agent 更稳定
大模型返回的是自由文本,格式不固定。如果你需要把结果接入 API 或填表单,结构化输出是必须的。同时,网络请求总会偶尔失败,重试和降级机制能让程序更健壮。
结构化输出
用 dataclass 定义输出格式,用 ToolStrategy 包装:
from dataclasses import dataclass
from langchain.agents
Read more ⟶
上下文管理与中间件:Agent 的抦截器模式
| Published by rcdfrd 上下文管理与中间件:Agent 的抦截器模式
对话多了,消息历史越来越长,token 开销涨上去了。SummarizationMiddleware 能自动压缩旧消息,保持上下文窗口可控。同时,自定义中间件让你能在 Agent 执行的各个阶段插入自己的逻辑。
SummarizationMiddleware
from langchain.agents import create_agent
from
Read more ⟶