自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 39 查询/更新向量库

更新知识库,若重新入库,清空旧 Qdrant collection 后重新索引,耗时很长;

2026-09-15 20:52:53 146

原创 38 chat对话管理

LangGraph 会自动将每轮的 messages 持久化到 PostgreSQL,多轮对话历史无需手动管理。

2026-09-15 20:50:40 136

原创 37 流式接口

LangGraph 使用的是"增量合并"而非"完整覆盖"。(普通for循环),只有。

2026-09-15 20:38:08 208

原创 36 LLM 应用监控

这就是监控的作用。

2026-08-29 19:07:41 240

原创 35 Docker 容器化

Docker 的核心思路:把应用和它的运行环境打包成一个镜像(Image),镜像在任何机器上都能一样运行。

2026-08-29 16:04:57 196

原创 34 LLM 成本优化

LLM 按 token 计费,成本优化的本质是:用尽量少的 token,做尽量正确的事。

2026-08-29 12:22:26 200

原创 33 语义缓存(Semantic Cache)

如果用户问的是意思相近的问题,没必要每次都调用 LLM,直接返回缓存的答案就行。

2026-08-27 20:13:51 268

原创 32 Guardrails — 输出防护与全链路安全

目标举例主题合规客服机器人只回答产品相关问题内容安全不输出暴力、歧视、有害内容格式正确必须是合法 JSON / 符合 schema长度约束不超过 200 字事实核查输出不能包含拒绝服务/越权声明。

2026-08-27 17:22:44 265

原创 31 LLM 安全防御

你把 LLM 集成进产品后,用户的输入直接影响模型行为。这类攻击统称 Prompt Injection(提示词注入)。

2026-08-27 14:56:24 195

原创 30 vLLM — 生产级本地推理引擎

Ollama 面向单用户/开发调试。这叫 静态批处理(Static Batching):一次只服务一个请求,GPU 利用率极低。

2026-08-26 17:01:01 177

原创 29 微调(Fine-tuning)

QLoRA = Quantization(4-bit 量化,压缩 W)+ LoRA,让消费级 GPU 也能微调 7B 模型。PEFT(Parameter-Efficient Fine-Tuning):只训练少量新增参数,冻结原始权重。规律:能用 Prompt 解决的不用微调;能用 RAG 解决的不用微调。微调成本高,应最后考虑。全量微调(Full Fine-tuning):更新模型所有参数。效果好,但对 7B+ 模型需要数十 GB 显存,代价极高。参数量从 d×d 降到 2×d×r,r 通常取 8~64。

2026-08-25 18:10:20 217

原创 28 多模态(Multimodal)

【代码】28 多模态(Multimodal)

2026-08-25 15:08:58 235

原创 27 本地 + 云端智能路由(Local + Cloud Routing)

智能路由的核心思路是:简单任务走本地,复杂任务走云端,在成本、速度、隐私之间找平衡。

2026-08-24 20:24:42 182

原创 26 GGUF 量化

格式每个权重占用说明F3232 bit完整精度,最大最慢F1616 bit半精度,Ollama 默认Q8_08 bit轻微损失,接近原始Q6_K6 bit极小损失,推荐Q4_K_M4 bit小损失,最流行(速度/质量平衡)Q3_K_M3 bit明显损失,极小内存Q2_K2 bit大幅损失,极端压缩F16:~14 GBQ4_K_M:~4 GB(缩小到原来的 28%)

2026-08-23 22:11:27 220

原创 25 Ollama 本地部署

Model Tag:模型名+版本,格式 名称:参数量。例如 qwen2.5:1.5b 表示 Qwen2.5 的 15亿参数版本(约 1GB,CPU 可跑)。Ollama 是一个本地 LLM 运行时——你在本机启动一个 HTTP 服务,它负责加载模型、推理、返回结果。去 [ollama.com] 下载 Windows 安装包,安装后 Ollama 自动在后台运行。qwen2.5:1.5b 只有约 1GB,CPU 可以跑,适合测试。Ollama 服务:后台常驻进程,类似数据库服务,负责加载和运行模型。

2026-08-23 19:18:22 242

原创 24 CrewAI

一句话总结:LangGraph 是"工程师思维",CrewAI 是"导演思维"——你设计角色和剧本,框架帮你执行。示例代码import sys):returnrole="核实员",goal="核实文章中的事实是否准确",backstory="你是一个专业的核实员,你的任务是核实文章中的事实是否准确。",llm=llm,role="分析师",goal="分析新闻的影响和意义",backstory="你是一个专业的分析师,你的任务是分析文章中的影响和意义。",llm=llm,

2026-08-23 15:33:34 230

原创 23 Handoff —— Agent 之间的控制权移交

前两课用的是 Supervisor 模式:有一个"上帝视角"的路由节点在顶层决策,始终掌控全局流转。Handoff 模式不同:每个 Agent 自己决定"我做完了,把控制权移交给谁"。

2026-08-23 14:11:42 164

原创 22 多 Agent 架构

单个 Agent 有上下文窗口限制、角色混乱、并发瓶颈三大天花板。多 Agent 架构的本质:把一个复杂任务拆分给多个"专职 Agent",每个 Agent 只干自己擅长的事,最终由某种协调机制整合结果。

2026-08-22 22:53:14 218

原创 21 MCP

在 MCP 出现之前,每家 AI 平台的工具调用格式各不相同——OpenAI 有 Function Calling,Anthropic 有 tool_use,各自私有、互不兼容。同一个"查天气"函数要为每家平台写一套适配代码。MCP(Model Context Protocol) 是 Anthropic 发起的开放协议,定义了 AI 应用与外部工具/数据之间的统一通信标准。

2026-08-22 14:57:03 246

原创 20 上下文管理

原理:当历史消息超过阈值时,用 LLM 将旧消息"压缩"成一段摘要,替换原有历史,再继续对话优点:旧信息不完全丢失(用摘要保留语义)缺点:多一次 LLM 调用,引入摘要误差[H1,A1,H2,A2,H3,A3](旧历史,约 300 token)↓ LLM 压缩[SystemMessage("摘要:用户叫小明,讨论了 Python/JS 区别...")] (约 60 token)↓ 加上新问题[SystemMessage(摘要), HumanMessage("新问题")] → LLM 推理。

2026-08-21 17:37:20 341

原创 19 Prompt 进阶——系统讲解

Prompt 进阶就是解决这三个问题的工程方法。

2026-08-20 11:24:32 195

原创 18 LangSmith —— 链路追踪与调试

Self-RAG,自适应 RAG 写的图跑起来很"黑盒"——只能看 print 输出,不知道:每次 LLM 调用耗时多久、花了多少 token哪个节点出错、中间变量是什么多次运行之间效果有没有退步LangSmith 是 LangChain 官方的可观测平台,像给你的 Agent 装了"飞行记录仪"。

2026-08-18 14:03:59 180

原创 17 Self-RAG —— 幻觉检测 + 答案质量评估

"""① 文档相关性评分"""score: str = Field(description="'relevant':表示相关,'irrelevant':表示不相关")reason: str = Field(description="一句话判断理由")"""② 幻觉检测:答案是否忠实于检索文档"""description="True = 答案完全基于文档,False = 答案包含文档之外的内容(幻觉)"reason: str = Field(description="一句话判断理由")

2026-08-17 19:50:53 202

原创 16 自适应 RAG —— 文档评分 + 查询重写 + 条件路由

score: str = Field(description="'relevant':表示相关,'irrelevant':表示不相关")reason: str = Field(description="一句话判断理由")grade: strGRADE_PROMPT = """你是文档相关性评判助手。请判断以下文档内容是否能够帮助回答给定问题。问题:{question}文档内容(共 {n} 段):{context}判断标准:文档中是否含有可以直接或间接用于回答该问题的信息?

2026-08-17 16:24:36 166

原创 15 多轮对话 RAG(问题凝缩 + 混合检索)

【代码】15 多轮对话 RAG(问题凝缩 + 混合检索)

2026-08-16 18:33:58 306

原创 14 RAG 评估(RAGAS)

混合检索 + Reranking 的 RAG 管道,但如何知道它"好不好"?光靠人眼看几条答案是不够的,需要量化指标来客观衡量。

2026-08-16 16:50:21 212

原创 13 Reranking(重排序)

Reranker 对每个"问题-文档"对单独打分,比向量余弦相似度更准确,因为它能理解两段文字之间的语义交互。

2026-08-15 23:03:53 226

原创 12 混合检索(BM25 + 向量)

BM25 是一个关键词打分算法,rank_bm25 是这个算法的 Python 实现包,BM25Retriever 在底层调用了它,故使用BM25Retriever要安装rank_bm25。这和 BM25Retriever.invoke() 返回类型一致,所以能放进 EnsembleRetriever。例如:向量:A > C > E;最终排序:doc_A > doc_B > doc_C > doc_D ≈ doc_E。不加 jieba,中文会被逐字拆开(“机”、“器”、“学”、“习”),匹配效果很差。

2026-08-15 23:01:31 194

原创 11 文档处理工程化

在阶段 5 用过 RecursiveCharacterTextSplitter,能跑通就行。

2026-08-14 20:58:28 182

原创 10 Embedding

Embedding 模型把文本转成向量。

2026-08-14 14:26:39 183

原创 09 Qdrant

返回的是类似 QueryResponse 的对象,核心是 results.points,每个元素一般是 ScoredPoint。同一个 Collection 里,所有向量的维度必须一致(比如都是 1536 维)Chroma 也有过滤,但 Qdrant 的过滤性能和表达能力远超 Chroma。

2026-08-14 10:49:50 166

原创 08 Chroma 持久化 + FastAPI 封装

重点:向量库和 Graph 在 服务启动时初始化一次,不是每个请求重建。startup 一次。

2026-08-13 18:35:17 181

原创 07 LangGraph 集成 RAG

RAG = Retrieval-Augmented Generation(检索增强生成)用户提问问题向量化向量库检索 Top-K 片段拼进 PromptLLM 生成回答你的文档 txt/pdf切分 ChunkEmbedding 向量化向量库RAG :文档切成很多块 → 每块变成向量 → 用户提问时找最相关的几块 → 交给 LLM 作答。若需要解析PDF三、RAG 四步流水线加载文档 → 切分 Chunk → 向量化入库 → 检索 + 生成把文件读成文本。本课主练 txt;PDF 作为加分项(后面说)。

2026-08-09 21:38:41 167

原创 06 Memory(记忆)

fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;长期记忆向量库 / 数据库跨会话持久事实短期记忆messages 列表当前会话上下文本轮对话内有效几天/几个月后仍有效。

2026-08-09 14:55:43 185

原创 05 LangGraph Agent

用 LangGraph 表达:fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;是否STARTagent 节点有 tool_calls?tools 节点END。

2026-08-08 20:52:32 229

原创 04 LangGraph 入门

LangGraph 把 Agent 拆成节点 + 边 + 共享状态,用图来描述执行路径。

2026-08-08 17:48:27 199

原创 03 LangChain Tools

tool 把普通 Python 函数变成 LangChain 工具,自动从函数签名和 docstring 生成 JSON schema(相当于手写 TOOLS 列表)。bind_tools 返回的是新对象(绑定了工具能力的 LLM),原来的 llm 不变。把工具「绑」到 LLM 上,之后每次 invoke 模型都能选择是否调用工具。用 @tool 注册工具,用 bind_tools 让模型决定何时调用。tools_by_name 执行工具。遍历 tool_calls。构建 messages。

2026-08-06 20:27:54 249

原创 02 LangChain 入门

LangChain 是框架,底层还是 Prompt + LLM + 循环。

2026-08-06 19:44:58 207

原创 01 agent基础

Agent = 大模型 + 工具 + 循环决策。

2026-08-06 16:02:29 181

原创 04 Embedding 入门

Embedding 是「在海量文本里,按语义找最相关片段」;Agent 需要它,Agent 要在大量外部资料里找上下文,离不开它。所以:Agent 要做知识检索 → 检索靠语义相似度 → 相似度靠 Embedding。即:点积 ÷ 两个向量长度的乘积。zip 把两个列表按位置配对。把文档段塞进 Prompt。模型基于真实资料回答。

2026-08-05 14:01:21 205

20240321100095223928.pdf

20240321100095223928.pdf

2024-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除