青训营X豆包MarsCode 技术训练营第九课 | 豆包MarsCode AI 刷题

12 阅读4分钟

学习笔记:易速鲜花网络人脉工具项目

1. 项目概述

  • 背景:易速鲜花电商需要通过微博大V推广品牌。
  • 目标:开发工具帮助市场部门找到合适的微博大V并建立联系。

2. 项目实现步骤

  1. 搜索大V:使用LangChain找到可能对鲜花推广感兴趣的大V,并返回UID。
  2. 爬取大V信息:根据UID,获取大V的公开信息。
  3. 生成介绍文章:利用LLM生成基于大V个人信息的介绍型文章。
  4. 输出解析:使用LangChain输出解析功能,生成格式化数据结构。
  5. 部署人脉工具:创建App并部署,供市场部门使用。

3. 技术细节与实现

  • LangChain组件:链、代理、工具、LLM的文本摘要和生成功能。
  • 自定义Tool:因标准工具不满足需求,创建Customized Tool。
  • 提示模板:设计用于引导LLM生成所需内容的模板。
  • 输出解析:使用Pydantic模型和输出解析器生成结构化数据。

4. 第三步:生成介绍文章

  • 文案形式:总结大V特点、兴趣爱好,撰写联络信件草稿。
  • 代码实现:重构findbigV.py,将文案生成功能封装成generate_letter函数。

5. 第四步:加入输出解析

  • Pydantic模型:定义TextParsing模型,描述大V信息的解析结构。
  • 输出解析器:创建PydanticOutputParser,将文本输出解析为模型实例。

6. 第五步:部署人脉工具

  • HTML/CSS:创建前端页面,展示输入表单和结果。
  • Flask应用:开发后端逻辑,处理请求并返回JSON响应。
  • 程序结构findbigV.py功能封装,app.py处理Web请求。

7. 项目总结

  • 项目完成:整合了LangChain的多个模块,从搜索到部署的全流程。
  • 创意与实践:项目展示了LangChain的实际应用,具有启发性。

8. 思考题

  • 文案生成:调整提示模板,生成更贴合业务需求的文案。
  • 数据爬取:尝试爬取其他网站数据,扩展人脉工具功能。
  • 程序健壮性:修改程序,提高其鲁棒性,处理更多边缘情况。

9. 网络问题说明

  • 网页解析失败:由于网络原因,某些网页(如CDN资源链接)解析未成功。建议检查链接合法性并适当重试。

以下是关于“易速鲜花”聊天机器人项目的详细学习笔记,包括知识点、逻辑结构和解释:

###易速鲜花聊天机器人项目

1. 项目概述

  • 目标:开发一个能够进行长时间对话并访问用户所需信息的聊天机器人。
  • 核心特征:记忆能力、检索能力、自然对话风格。

2. 聊天机器人核心组件

  • 聊天模型:专用于对话场景的模型,如LangChain支持的聊天模型。
  • 提示模板:整合默认消息、用户输入、历史交互和检索上下文。
  • 记忆:记住与用户的先前互动,增强对话连贯性。
  • 检索器:提供特定领域知识的可选组件。

3. 技术实现步骤

  1. 基础聊天对话工具:使用LangChain的ConversationChain实现。
  2. 记忆功能:通过LangChain的记忆功能,记住用户之前的话。
  3. 检索功能:整合易速鲜花内部文档资料,提供专业回答。
  4. 数据库查询(可选):允许用户查询订单状态和库存等。
  5. 部署:在网络上部署聊天机器人供企业内部员工和用户使用。

4. 第一步:开发基础聊天机器人

  • 实现:使用ChatOpenAI模型和系统消息设置聊天机器人的角色。
  • 交互:创建消息列表,包括系统消息和用户输入,获取机器人响应。

5. 第二步:增加记忆机制

  • ConversationBufferMemory:跟踪对话历史,增强机器人记忆能力。
  • LLMChain:整合LLM、提示和记忆,形成完整的对话链。

6. 第三步:增加检索机制

  • 文档加载:加载易速鲜花内部文档。
  • 文本分割:使用RecursiveCharacterTextSplitter分割文档。
  • 向量数据库:使用Qdrant创建向量数据库,存储文档向量。
  • 检索功能:通过向量数据库检索相关文档,提供基于文档的回答。

7. 聊天机器人的增强功能

  • 记忆:使机器人能够回忆过去的交互。
  • 检索:提供最新的、特定领域的信息。
  • 多面手:回答一般性问题和易速鲜花内部问题。

8. 项目总结

  • 核心组件:记忆和检索,使机器人能够提供连贯的对话和领域特定信息。
  • LangChain技术:复习了对话模型、提示模板、记忆实现和检索功能。

9. 思考题

  • 重构代码:使用ConversationChain中的Memory重构并简化代码。
  • 数据库查询能力:整合数据库查询功能,让用户能够查询库存和销售情况。