LLM & RAG 快速应用小册
王吕
极客时间 AI 架构师
399 人已学习
立即订阅
LLM & RAG 快速应用小册
15
15
1.0x
00:00/00:00
登录|注册

03|智能推荐:在对话中为用户推荐内容

本门课程为精品小课,不标配音频
你好,我是王吕。上节课我们讨论了极客时间小助手的功能和设计,这节课我想跟你聊聊如何在对话过程中给用户推荐优质内容,这里以极客时间课程推荐为具体案例。
我们知道,在极客时间的课程中,对话消息中的上下文包含了文章片段,有了文章片段,我们就可以得到文章 ID 和课程 ID,之后我们就可以把引用的课程推荐给用户,整个过程如下图:
这是最直接的方案,实现起来也非常简单,把引用文章所属的课程直接推荐给用户,听起来也很合理。
我们假设这样一个场景:我是一名后端工程师,我问了一个 Nginx 相关的问题,恰好有一门前端课程,整个课程只有一个小节的一小部分用上了 Nginx,其余部分都是前端知识,这个时候,很有可能这个课程也被推荐给了我,但这并不是我想要的。
为什么会出现这个问题呢?其实根本原因还是在于我们想要推荐的课程是一个整体,它有自己的主题,而课程下的文章被分割成段落之后,每个段落也有了自己的主题,这两者很多时候并不是完全一致的,如果按照段落去找课程,很容易就会以偏概全,导致推荐出不合适的课程。那么,极客时间是怎么解决这个问题的呢?
我们给课程也增加了 Embedding。在向量数据库,我们增加了一个课程集合,每当有课程上新,我们就在课程集合里增加一条记录,根据课程的介绍生成向量。用户提问的时候,还是按照上下文的规则,拿到引用课程,同时使用问题向量去课程集合检索,找到最接近的 2 门课程,和引用的课程做一下合并去重,重新排序之后,取前 3 条作为推荐课程推荐给用户。我画了一个流程图供你参考。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 在对话中给用户推荐优质内容,以极客时间课程推荐为案例 2. 问题:段落推荐可能导致不合适的课程被推荐,解决方法:给课程增加Embedding,使用问题向量去课程集合检索 3. 数据准备阶段的问题:课程介绍中包含图片素材,导致课程向量不准确,解决方法:使用OCR并用LLM总结提炼课程介绍的要点 4. 对话阶段的改进:优化用户提问,重写用户问题并判断用户需求,优化推荐课程的排序 5. 数据优化阶段:使用用户画像和传统的推荐系统结合,进行系统干预推荐 6. 推荐内容质量提升的几处优化 7. 推荐内容放置位置的讨论:基于对话接口的实现方式考虑 8. 对于没有采用流式输出的接口,推荐课程可以直接放到响应结构体里 9. 对于使用了流式输出对话,可以在SSE中塞入任何的内容格式,制定自己的数据协议 10. 核心原则:通过LLM精准描述内容特点,尽力识别用户意图

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《LLM & RAG 快速应用小册》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部