Langchain模型课后思考题合集(持续更新中) | 豆包MarsCode AI刷题

7 阅读3分钟

1. 如果 Agent 不返回 UID,而是返回 URL,是不是也能够完成这个任务?

解答
可以完成。通过返回 URL 后再提取 UID,可以减少 LLM 生成错误的可能性。通过简单的正则表达式提取 https://weibo.com/u/ 后的数字部分即可得到 UID。这种方法的优势在于减少 LLM 的负担,但需要增加解析逻辑。


2. LangChain 中用 Chain 和 Agent 来查询数据库,这两种方式有什么异同?

解答

  • Chain:直接将用户问题转化为 SQL 查询。适合单表或简单的查询场景,执行速度快,但对 SQL 错误缺乏纠正能力。
  • Agent:采用逐步推理的方法(ReAct),具有多步骤能力,可以动态生成和修复 SQL 语句,适合复杂的多表查询和模糊问题。
  • 总结:Chain 适合简单任务,Agent 灵活强大但相对复杂。

3. 你能否深入上面这两种方法的代码,看一看它们的底层实现?

解答

  • Chain:底层通过提示模板明确输入输出,将自然语言转化为 SQL。
  • Agent:通过提示设计,将查询任务分解为多个步骤(列出表、生成 SQL、纠错),允许动态调整,提升复杂任务的鲁棒性。 分析这两种方法的提示设计,能更好地理解 LangChain 的底层逻辑并优化应用。

4. 修改提示模板,让 LLM 为你生成更有创意的文案。

解答
通过调整提示模板,可以更好地引导 LLM 提供符合需求的文案。例如:

请根据以下用户信息生成更富有创意和说服力的邮件模板:
1. 保持语气真诚友好。
2. 强调合作的兴趣。
3. 强调鲜花的独特性和价值。

这样明确的引导可以帮助 LLM 生成更贴合业务需求的内容。


5. LangChain 中的检索功能设计不够细致,如何改进?

解答

  • 文本分块:优化分块大小,避免信息丢失或无关内容过多。
  • 向量优化:使用高效的嵌入模型(如 OpenAI Embedding)提升匹配效果。
  • 后处理:对检索结果进行过滤和排序,确保返回内容高度相关。

6. 如何为 Chatbot 增加对数据库的查询能力?

解答
通过 SQLDatabaseChain 或 SQL Agent,可以轻松为 Chatbot 添加数据库查询功能:

  1. 用户输入自然语言问题。
  2. LLM 将问题转化为 SQL 查询语句。
  3. 数据库执行查询并返回结果。
  4. LLM 将查询结果转换为自然语言回答用户。

例如,用户输入“库存最少的鲜花是什么?” 系统将生成 SQL 查询,并返回库存最少的花卉及其数量。


7. 如何用 Flask 框架设计 Chatbot UI,实现更完善的功能?

解答
通过 Flask 的路由和模板引擎可以设计一个简洁的 UI:

  1. 创建输入框,用于用户问题输入。
  2. 后端集成 LangChain,调用 LLM 处理用户问题。
  3. 输出框显示回答结果。
  4. 可进一步增强用户体验,如添加身份验证或多语言支持。

8. LangChain 如何结合自然语言和 SQL 查询,降低用户技术门槛?

解答
LangChain 将自然语言转化为 SQL 查询,并自动执行和解释结果。用户只需提出问题,系统即可完成以下步骤:

  1. 理解问题意图。
  2. 生成并执行 SQL 查询。
  3. 将结果转化为自然语言。 这种方式让用户无需掌握数据库结构或 SQL 语法,大幅降低技术门槛。

9. 如何增强现有 Chatbot 的业务功能?

解答

  • 添加数据库查询:实现库存、价格、订单等动态查询功能。
  • 优化检索能力:嵌入更全面的业务文档,提升回答准确性。
  • 增强记忆功能:引入高级记忆模块,支持多轮对话。