Q: Chain 和 Agent 有什么区别?
Chain:预定义的固定流程,每次执行相同步骤。
Agent:动态决策,根据输入决定执行哪些操作和工具。
简单任务用 Chain,复杂决策用 Agent。
Q: 如何选择 Memory 类型?
• 短对话:ConversationBufferMemory
• 长对话:ConversationSummaryMemory
• 需要控制 token:ConversationBufferWindowMemory
• 长期记忆:VectorStoreMemory
Q: RAG 如何提高检索质量?
1. 优化 chunk_size 和 chunk_overlap
2. 使用更好的 Embedding 模型
3. 添加 reranking 重排序
4. 使用 Hybrid Search(关键词+向量)
5. 优化 prompt 模板
Q: 如何调试 LangChain 应用?
1. 使用 LangSmith 进行追踪
2. 设置 verbose=True 查看详细过程
3. 使用 callback 回调函数
4. 打印中间结果
Q: LCEL 和传统 Chain 有什么区别?
LCEL(LangChain Expression Language)是新的链构建方式:
• 使用 | 运算符连接组件
• 更简洁、更易读
• 支持流式、批处理
• 推荐使用 LCEL
Q: 如何部署 LangChain 应用?
1. LangServe:官方部署方案
2. FastAPI:自己封装 API
3. LangSmith:托管部署
4. Docker:容器化部署
Q: 如何使用本地模型?
1. 安装 Ollama
2. 下载模型:ollama pull llama3.1
3. 使用 langchain_community.llms.Ollama
Q: Token 超限怎么办?
1. 使用 ConversationSummaryMemory 压缩历史
2. 减少 chunk 数量
3. 使用更短的 prompt
4. 选择更大 context 的模型