美文网首页
基于大语言模型+RAG实现的日程管理

基于大语言模型+RAG实现的日程管理

作者: fly福来 | 来源:发表于2024-06-01 21:54 被阅读0次

     大家是否有这样的烦恼,每天会议或待办事项众多,为了把这些待办事项记住我们需要采用日历这些软件来帮我们管理或通知事项。那么问题来了,不同的人通知的不同事项写得五花八门,有没有办法把别人发过来的通知自动解析,自动推送到自己手机上呢?

       答案是有的,我们采用大模型进行文本解析,然后结合检索增强生成(RAG)对LLM进行准确性提升,从而达到使用简单、准确性逐渐提高的目的。下面我将介绍如何完全基于免费公有云进行全流程开发。

一、 web和后台程序

Cloudflare Pages是Cloudflare公司推出的一个静态网站托管服务,专门为开发者提供构建和部署现代化、高性能网站的解决方案。随后在pages引入了funtion,至此也支持workers这样的应用,成为了一个前、后台应用都能实现的网站平台。

在使用的过程中我发现一个很厉害的功能,在本地调试时也能自动引用大模型生成能力。

二、大语言模型

Cloudflare 的Workers AI支持30多种20B以下模型,每天有足够的调用量,以学习为目的基本够用。根据提供的文本,LLM根据要求返回JSON格式的会议主题、开始时间、结束时间、会议地点等。模型采用@cf/qwen/qwen1.5-14b-chat-awq,提示词如下:

  let messages = [

    {      role: 'system',      content: '你是一个AI日程安排助手,请根据我提供的内容提取日程信息,并用JSON格式返回, 格式为 {"SUMMARY":"日程主题、简介、总结或概括", "DTSTART":"日程开始时间,格式为:20240525T063000","DTEND":"日程结束时间,格式为:20240525T063000","DESCRIPTION","日程详细描述信息","LOCATION":"会议地点"}' },

    {    role: 'system',     content:  '只回复json格式的内容即可,今天的日期是:' + getTodayDate() + ';如果没有说明会议结束时间或会议时长,默认为开始时间加1小时;如果没有说明会议具体几点开始则会议从当天0点开始24点结束,dtstart和dtend只能按要求的日期格式回答,采用东八区时间,不要采用,无法提取的内容不要回复该字段'  }

  ]

三、 RAG

引入检索增强生成(RAG)目的时为了提升日程解析的准确性,当你使用越多的时候,系统会自动把你之前修正过的对话作为上下文提供给llm,从而快速提升模型输出的准确性,例如下图1,第一次问会议地点识别为“1会议室”,但是我们帮它修正为“第一会议室”,后续再问“1会”的时候LLM就会自动识别为“第一会议室”,这就是RAG能够减轻幻觉,提升准确性的好处。

RAG第一步是量化,直接采用Workers AI的量化模型,向量数据库采用https://qdrant.tech/免费服务,向量数据库是一种专门设计用于高效存储和查询高维向量的数据库。在传统的OLTP和OLAP数据库中数据以行和列的方式组织(这些被称为表),查询是基于这些列中的值进行的。然而,在某些应用中,如图像识别、自然语言处理和推荐系统,数据通常以高维空间中的向量形式表示,这些向量加上一个ID和有效负载,就是我们存储在类似于Qdrant的向量数据库中的元素。

地址修正为“第一会议室”,后续再次调用就会自动修正。

四、 ICS文件保存

日历文件以ICS作为后缀,采用Cloudflare R2作为文件存储空间。

相关文章

  • 18批量管理服务

    ansible批量管理服务概述基于python语言开发的自动化管理软件,基于SSH远程管理服务实现远程主机批量管理...

  • 《数学之美》统计语言模型、分词

    语言模型 基于规则的模型 基于概率的模型 统计语言模型 问题:整个句子的概率:为了保证句子通顺,不出现歧义,计算整...

  • DDD简述

    消化知识 有效建模的要素 模型和实现的绑定 建立了一种基于模型的语言 开发一个蕴含丰富知识的模型 提炼模型 头脑风...

  • ansible 批量管理服务

    1. ansible 批量管理服务概述 是基于python语言开发的自动化软件工具 是基于SSH远程管理服务实现的...

  • Objective-C-(二)内存管理

    由于Objective-C是基于C语言的,在了解Objective-C内存管理前应该先了解下C语言的内存模型。 简...

  • 第一章 消化知识

    1.有效建模的要素<1> 模型和实现的绑定<2>建立一种基于模型的语言<3>开发一个蕴含丰富知识的模型<4>提炼模...

  • golang & viper config & zookeepe

    golang 语言实现的,基于 viper 配置插件, zookeeper 远程配置管理。(源码) 逻辑: 更精彩...

  • 基于Springboot+Node.JS+MySQL的日程日志信

    基于Java的日程管理系统开发 摘要 日程管理在日常生活中是十分普通的一件事情,人们无论在生活中还是工作中都会有大...

  • Go并发编程实践

    Go语言最大的特点就是并发编程,它实现了一种基于协程的并发模型。轻量级的协程模型减少了线程模型的切换消耗,大大增加...

  • HBase内存管理之MemStore

    基于跳表实现的MemStore基础模型 实现MemStore模型的数据结构是SkipList(跳表),跳表可以实现...

网友评论

      本文标题:基于大语言模型+RAG实现的日程管理

      本文链接:https://www.haomeiwen.com/subject/ympjqjtx.html