用途
LangChain 技能用于构建由 LLM 驱动的应用,核心涵盖 chains(链)、agents(智能体)、RAG(检索增强生成)与 streaming(流式输出)。触发关键词包括:langchain、llm app、agent、rag、chains、langgraph。
技术栈
该技能声明的依赖版本为:
- langchain: 0.1+
- langchain-openai: 0.0.8+
- langchain-community: 0.0.20+
- langgraph: 0.0.26+
- langsmith: 0.1+
推荐项目结构
src/
├── agents/ # LangGraph agents
├── chains/ # LCEL chains
├── prompts/ # Prompt templates
├── tools/ # Custom tools
└── vectorstore/ # RAG components
主要能力
基础链与结构化输出
使用 ChatOpenAI、ChatPromptTemplate 与 PydanticOutputParser 构建带结构化输出的链。示例中定义了 Analysis 模型(status、findings、confidence 字段),并通过 prompt | llm | parser 组合为链,调用时传入 input 与 format_instructions。
自定义工具
通过 langchain_core.tools 的 @tool 装饰器定义异步工具,示例包含 fetch_data(按 resource_id 与 hours 获取资源数据)与 update_status(更新资源状态),内部使用 httpx.AsyncClient 发起 HTTP 请求。
LangGraph 智能体
使用 StateGraph 与 ToolNode 构建智能体。示例定义了 AgentState(messages、context),create_agent 函数将工具绑定到 LLM,通过 agent_node、should_continue 条件边与 tools 节点组成工作流并编译。调用时传入 HumanMessage 与 context。
RAG 链
结合 OpenAIEmbeddings、Chroma 向量库、RecursiveCharacterTextSplitter 构建 RAG 链。使用 MMR 检索(k=5),通过 format_docs 拼接文档内容,并以 RunnablePassthrough 组合 context 与 question。
流式响应(FastAPI)
使用 StreamingResponse 与 chain.astream 实现 SSE 流式输出,逐块 yield 内容并以 data: [DONE] 结束。
LangSmith 追踪
通过环境变量 LANGCHAIN_TRACING_V2、LANGCHAIN_PROJECT、LANGCHAIN_API_KEY 启用追踪,并可用 Client().create_feedback 记录反馈评分。
最佳实践
- 使用结构化输出:用 PydanticOutputParser 保证可靠解析
- 异步操作:I/O 场景使用 ainvoke、astream
- 错误处理:使用 RunnableConfig 配置重试与超时
- 缓存嵌入:对重复查询使用 CacheBackedEmbeddings
- 追踪:启用 LangSmith 用于调试与监控
相关技能
- ai-ml: 完整 AI/ML 模式
- vector-db: 基于向量库的 RAG
- fastapi: API 集成
- redis-cache: LLM 响应缓存
限制
该资料未提供安装命令、收费或价格信息、平台限制、实际效果数据以及完整的使用步骤说明,相关内容暂未提供。