SuperAPI AI 工具集

langchain

智能体与模型

查看项目

更新于 10-16 10:11

技能介绍

用途

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 响应缓存

限制

该资料未提供安装命令、收费或价格信息、平台限制、实际效果数据以及完整的使用步骤说明,相关内容暂未提供。