Lotso's Blog

Lotso's Blog

Thoughts, stories and ideas.

CodeBase-Intelligence-Hub

phase 8: 记忆流式与API

Phase 8:记忆、流式与 API 本阶段目标:为对话增加记忆(多轮上下文)、对图或链做流式输出、并通过 FastAPI 或 LangServe 暴露 HTTP API,形成可用的服务形态。 1. 设计指导 1.1 记忆(Memory) * 问题:多轮对话时,上一轮的问题与答案要作为上下文传给 LLM,否则无法理解「它」「这段代码」等指代。 * 常见做法: * 短期:保留最近 N 轮 HumanMessage/AIMessage,拼进当前 prompt。 * 中期:用 LLM 对历史做摘要,节省 token。 * 长期:把重要信息向量化存检索(本项目可选)。 * 本阶段先做短期记忆:
5 min read
CodeBase-Intelligence-Hub

phase7: 多Agent协作

Phase 7:多 Agent 协作 本阶段目标:在 Phase 6 的图上扩展为 Orchestrator + 多个专家 Agent(至少 Retrieval、Analysis),实现意图路由、多节点协作与结果聚合。 1. 设计指导 1.1 多 Agent 模式 * Orchestrator(编排者):唯一入口,负责「意图分类 + 任务分解 + 路由」。不直接做检索或写代码,只决定「下一步调用哪个 Agent」。 * 专家 Agent:每个负责一类能力(检索、分析、代码生成、搜索等),有独立工具集或逻辑,通过 State 与 Orchestrator 通信。 * 状态汇聚:
4 min read
CodeBase-Intelligence-Hub

phase 6: LangGraph与编排

Phase 6:LangGraph 与编排 本阶段目标:理解 LangGraph 的 StateGraph、节点、边(普通边与条件边),能实现一个「意图分类 → 单一路由」的小图,为 Phase 7 多 Agent 协作打基础。 1. 设计指导 1.1 为什么用图而不是手写循环 * 显式状态:图有一个统一的 State(TypedDict),每个节点读/写 State 的若干字段,数据流清晰。 * 条件路由:可以根据 State 中某字段(如 intent)决定下一步走哪个节点,无需在代码里写一堆 if/else。 * 可观测与断点:LangSmith 等能按「节点」
4 min read
CodeBase-Intelligence-Hub

phase 5: 工具与单Agent

Phase 5:工具与单 Agent 本阶段目标:学会用 LangChain 定义工具(@tool、StructuredTool)、绑定到 LLM,并实现「单 Agent」的 ReAct 循环(推理 → 选工具 → 执行 → 再推理),为多 Agent 打基础。 1. 设计指导 1.1 工具(Tool)在 LangChain 中的角色 * Tool:可被 LLM 调用的函数,有名称、描述、参数 Schema(常用 Pydantic)。LLM 根据描述决定是否调用以及传什么参数。 * bind_tools:把 Tool
4 min read
phase 4: RAG管道
CodeBase-Intelligence-Hub

phase 4: RAG管道

Phase 4:RAG 管道 本阶段目标:把「检索 + 提示 + 生成」串成完整 RAG 链,掌握上下文格式化、链的组装,并可选接触 RAGAS 做质量评估。 1. 设计指导 1.1 RAG 数据流 用户问题 → Retriever → 若干 Document → 格式化为一段 context 字符串 → Prompt(context=..., question=...) → LLM → 答案 * 检索:Phase 3 的 Retriever,invoke(question) 得到 List[Document]。 * 格式化:把 Document 列表转成「带来源的」
3 min read
phase 3:向量存储与检索
CodeBase-Intelligence-Hub

phase 3:向量存储与检索

Phase 3:向量存储与检索 本阶段目标:把 Phase 2 的 Document 列表写入向量库,学会 Embeddings、VectorStore、Retriever 的用法,并能用自然语言查询得到相关 chunk。 1. 设计指导 1.1 概念关系 * Embeddings:文本 → 向量。LangChain 用 Embeddings 接口封装(如 OpenAIEmbeddings)。 * VectorStore:存 (vector, metadata, optional id),支持相似度搜索。本项目用 Chroma 做本地开发(无需额外服务),生产可用 Qdrant。 * Retriever:抽象「查询 → 返回相关 Document 列表」
3 min read
phase 2: 文档加载与分块
CodeBase-Intelligence-Hub

phase 2: 文档加载与分块

Phase 2:文档加载与分块 本阶段目标:掌握 LangChain 的 Document、Loader、TextSplitter,实现「从本地目录加载代码/文档并切成 chunk」,为向量检索做准备。 1. 设计指导 1.1 Document 与 Loader * Document:langchain_core.documents.Document,通常有 page_content(文本)和 metadata(如 source、language)。 * Loader:把外部数据转成 Document 列表。常见: * 本地目录/文件:DirectoryLoader、GenericLoader、按语言解析的 LanguageParser。 * 代码库场景:按后缀过滤(.py、
4 min read
phase 1: LCEL与提示词
CodeBase-Intelligence-Hub

phase 1: LCEL与提示词

Phase 1:LCEL 与提示词 本阶段目标:掌握 LCEL(LangChain Expression Language)的链式组合、多输入并行、以及结构化输出,为后续 RAG 和 Agent 打基础。 1. 设计指导 1.1 什么是 LCEL * LCEL 用 | 把 Runnable 串成链,每个组件都是 Runnable[Input, Output]。 * 好处:自动支持 invoke、stream、batch,以及与 LangSmith 的集成。 * 旧版 LLMChain 已废弃,新代码一律用 LCEL 构建链。 1.2 常用
4 min read
phase 0.1: 调用国产大模型GLM
CodeBase-Intelligence-Hub

phase 0.1: 调用国产大模型GLM

教学:如何调用国产大模型 GLM(智谱) 本节需要你在项目中接入智谱 AI 的 GLM 系列模型(如 GLM-4、GLM-4.7),可与 Phase 0 / Phase 1 的链无缝替换,便于在无法使用 OpenAI 时改用国产模型。 参考文档:智谱开放平台 - GLM-4.7 1. 设计指导 1.1 智谱 API 与 LangChain 的两种接入方式 方式 说明 适用场景 OpenAI 兼容 Base URL 智谱 v4 接口与 OpenAI Chat Completions 兼容,
6 min read
Phase 0:环境与 LangChain 初识
CodeBase-Intelligence-Hub

Phase 0:环境与 LangChain 初识

Phase 0:环境与 LangChain 初识 本阶段目标:搭好开发环境,跑通第一条「Prompt → LLM → 输出」的链,建立对 LangChain 模块划分的直观认识。 1. 设计指导 1.1 为什么要先做「最小链」 * LangChain 的核心抽象是 Runnable:输入 → 输出,可组合。一条「链」就是多个 Runnable 的管道。 * 先不碰 RAG、Agent,只做「用户输入 → 模型 → 文本输出」,能让你专注理解: * langchain_core:Prompt、LLM、OutputParser、Runnable 接口。 * langchain_openai(或其它
3 min read