这篇内容介绍了一个将推荐系统与RAG相结合的项目。项目中有一个完整的数据提取流程,用于从文档中提取元数据和嵌入信息。然后,根据用户的偏好,推荐系统会提取相关的文档。最后,通过与数据的对话功能,可以获取更详细的见解。
博客完整内容:
https://blog.llamaindex.ai/newsgpt-neotice-summarize-news-articles-with-llamaindex-hackathon-winning-app-9d7c8bcf9f11
概述:
为什么NewsGPT与众不同:NewsGPT有四个主要组成部分:可靠的新闻来源、定制的新闻推荐、高效的信息检索和节省时间。
- 可靠的新闻来源:我们建立了一个动态数据流水线,设计用于获取每日新闻,确保我们的信息是最新和相关的。我们使用了先进的命名实体识别、OpenAI API的文本嵌入和异步文章嵌入过程。这些数据被系统地存储在QdrantVector数据库中,提高了准确性和效率。
- 定制的新闻推荐:我们的系统不仅仅呈现新闻,还会从用户身上学习。通过分析你的阅读习惯,我们利用文章嵌入来定制适合你兴趣的个人新闻推送。一个多功能的搜索栏始终可供使用,让用户探索任何吸引他们兴趣的新闻主题。
- 高效的信息检索:只需点击感兴趣的文章,NewsGPT就会开始工作。它从多个来源(3-5个)收集类似的新闻,并激活一个Streamlit聊天机器人。你的参与立即开始:第一个查询会自动发送给我们的聊天机器人,获取简洁的新闻摘要。为了方便用户体验,我们显示预定义的提示作为可点击的按钮。这意味着用户可以在不需要手动输入的情况下获取信息。如果用户对新闻文章有任何问题,只要答案在源文章中详细说明,我们都会解答。
- 节省时间的提醒和类别分布图:为了让你了解情况,我们的侧边栏显示了使用NewsGPT节省的时间,并以图表形式呈现新闻类别的分布。
深入了解架构:
数据流水线:我们使用可靠和可持续的数据流水线来支持用户获取新鲜的新闻,使用了两个强大的库,pygooglenews和newspaper3k。
个性化:当访问NewsGPT时,我们有两个选项:要么创建一个新账户,要么使用访客登录来测试服务。但需要注意的是,使用访客登录将不会提供个性化。如果我们选择注册,将被询问我们偏好的新闻类别,这将帮助服务在冷启动时进行初始推荐。
个性化推荐流程:用户注册并登录后,我们从Google Firebase查询偏好和活动,如果有的话;否则,使用喜欢的类别进行冷启动推荐。如果有可用的活动和偏好,我们将调用托管在AWS Lambda上的推荐API,为用户生成个性化的文章。用户可以通过在文章页面上点击赞或踩按钮来表达对文章的喜好。代码中可以找到一些推荐逻辑。
与LlamaIndex合作的文章聊天:与其他新闻聚合应用不同,NewsGPT通过从各种新闻来源中提供一个主题的摘要和不一致的关键要点,为用户提供了独特的服务。这个功能不仅节省用户的时间,不需要阅读多篇文章,而且通过比较不一致之处,帮助用户确定哪些信息可以信任。
开源地址:
https://github.com/timho102003/NewsGPT
已经变成了一个生产应用程序(neotice.app)