资讯动态

用 LangChain 跑通第一个智能问答应用

发布时间:2026/9/15 13:40:50 来源:尧图企业网站定制
用 LangChain 跑通第一个智能问答应用【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchainLangChain 是一个 Python 框架把聊天模型、消息、工具和检索抽象成统一接口用来构建 LLM 应用和代理。想搭智能问答、带工具的对话代理的开发者可以用它少写大量胶水代码。项目定位它封装了什么LangChain 位于模型 API 和你的业务代码之间。它把各家提供商的 SDK 差异封装成同一套消息结构和invoke/stream调用约定你只需要一个字符串openai:gpt-4o就能初始化模型换成anthropic:claude-sonnet时业务代码不用动。它省掉的主要是三步各提供商请求格式的适配、流式与异步的统一处理、工具调用的解析与循环执行。仓库本身是三层结构核心抽象在 libs/core/代理工厂和高层入口在 libs/langchain_v1/langchain/各提供商的集成包在 libs/partners/。和直接调 API 相比多出来的价值是消息对象有类型、有 id可以跨轮次合并去重调用有生命周期钩子方便接入追踪和缓存模型能力是否支持工具调用、结构化输出通过模型画像自动探测不需要自己写判断逻辑。核心机制拆解模型层一个字符串换任意提供商输入是一句openai:gpt-4o这样的字符串。内部先查模型画像库确定该提供商的能力再实例化对应的 chat model产出统一的AIMessage对象。输出可以是完整消息也可以是逐块流式的 chunk接口签名不变。from langchain.chat_models import init_chat_model model init_chat_model(openai:gpt-4o) result model.invoke(用一句话介绍 LangChain)切换提供商时只改字符串。重试、限流、追踪这些横切逻辑都挂在这一层不需要你自己包一层。代理循环模型和工具之间来回跑create_agent输入一个模型、一个工具列表和系统提示词内部编译成状态机先调模型判断输出里有没有工具调用有就执行工具、把结果塞回消息列表再调模型直到模型不再请求工具退出循环给出最终答案。结构化输出走同样的循环框架会自动选提供商原生 schema 或工具调用两种策略之一。from langchain.agents import create_agent agent create_agent( modelopenai:gpt-4o, tools[check_weather], system_promptYou are a helpful weather assistant., ) for chunk in agent.stream({messages: [{role: user, content: 北京天气}]}): print(chunk)中间件不改核心逻辑插进生命周期中间件在代理循环的固定节点上挂钩子before_model在每次模型调用前跑after_model在模型返回后跑wrap_model_call则直接包在调用外面可以重放、短路或改写请求。想加人工审批、自动重试、工具结果缓存都是注册一个中间件的事不用动代理本体。# 注册顺序决定层级第一个注册的处于最外层 agent create_agent(model, tools[search], middleware[retry, human_approval])一个真实任务走一遍合同问答拿一份 PDF 合同来问违约责任在哪些条款。先把文档交给加载器解析出文本接着用 text splitters 按语义边界切成几百字的片段逐段向量化后存进向量库。用户提问时查询同样被向量化和库里片段做相似度匹配取最相关的三块。这三块原文连同问题被拼进提示词发给模型模型据此生成答案并附条款编号。整个过程里分块策略、检索返回几条、检索结果怎么拼进提示词都是你选组件时定的加载、切分、检索、拼提示词、调用模型之间的传递由框架串起来。你拿到的是成品答案而不是一堆需要手动对齐的中间格式。最小可运行路径装框架和提供商集成包uv add langchain langchain-openai配好环境变量export OPENAI_API_KEYsk-...初始化模型并跑通第一次调用model.invoke(你好)看到回复即打通想加工具就create_agent(model, tools[...])用stream看循环过程想接真实数据再接文档加载器和向量库其余不动完整配置说明见仓库内 openwiki/quickstart.md。先跑通再调参顺序别反。用下来要注意的事模型不是开箱即用的。现象是init_chat_model(openai:gpt-4o)报 import 错误原因是框架本体只含解析和画像真正的调用实现拆在各libs/partners/包里。建议装框架时就把对应提供商的集成包一起装上。能力探测有边界。现象是换到小厂商模型后工具调用或结构化输出行为和 OpenAI 不一致原因是模型画像只覆盖已发布的元数据未收录的提供商会走保守回退。建议上线前对目标模型单独验一遍这两条路径。代理循环会放大开销。现象是复杂任务下 token 消耗和延迟明显高于单次调用原因是每执行一轮工具就再调一次模型轮数线性叠加。建议工具集和提示词保持精简生产环境挂上限制轮数的中间件。延伸方向需要多代理协作、状态持久化、人工介入的分支流程时配套框架 LangGraph 值得看一眼create_agent底层编译出的状态机就来自它。装好包用init_chat_model打通一条invoke再去 libs/langchain_v1/langchain/agents/ 里读一下工厂的实现你就知道上面那些机制具体落在哪段代码里了。【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价