首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

SimpleRAG-v1.0.3:增加文件对话功能

编程知识
2024年09月26日 14:00

Kimi上有一个功能,就是增加文件之后对话,比如我有如下一个私有文档:

会议主题:《如何使用C#提升工作效率》
参会人员:张三、李四、王五
时间:2024.9.26 14:00-16:00
会议内容:
1. 自动化日常任务
许多日常任务可以自动化,从而节省时间和精力。例如,如果你需要定期处理大量数据,可以使用C#编写脚本来自动化数据导入、清理和分析过程。
2. 构建自定义工具
C#可以用来构建各种自定义工具,以满足特定需求。
3. 集成现有系统
C#可以轻松集成现有的系统和API,从而提高工作效率。
4. 开发插件和扩展
许多应用程序支持插件和扩展,C#可以用来开发这些插件,以增强现有应用程序的功能。
5. 优化现有代码
C#提供了丰富的库和框架,可以帮助你优化现有代码,提高性能和可维护性。

我上传这个文档之后,提问文档中的内容,如下所示:

image-20240926121012250

image-20240926121043360

image-20240926121113883

image-20240926121155095

那么我们自己该如何实现这个功能呢?

我们之前接触过RAG,那可以用来应对文档内容超出模型上下文的情况,但是很多时候,我们只是上传一份简单的文档,文档内容并不多,而且也不需要进行存储,那么这时候,就可以直接读文件内容,不用RAG。

以下是自己实现的效果:

image-20240926121558886

image-20240926121806875

image-20240926121839435

image-20240926121915911

也实现了同样的效果。

实现要点

 public async IAsyncEnumerable<string> GetAIResponse3(string question,string filePath)
 {
     string fileContent = File.ReadAllText(filePath);
     string skPrompt = """
                        获取到的文件内容:{{$FileContent}}。
                        根据获取到的信息回答问题:{{$Question}}。
                        如果文件内容中没有提到,直接回答不知道。
                     """;
     await foreach (var str in _kernel.InvokePromptStreamingAsync(skPrompt, new() { ["FileContent"] = fileContent, ["Question"] = question }))
     {
         yield return str.ToString();
     }
 }

使用这个简单的prompt即可实现。

快速体验

我在github上发布了依赖框架与不依赖框架的版本。解压之后在appsettings.json文件中填入你的api key即可开始体验。

image-20240926144248293

SimpleRAG地址:https://github.com/Ming-jiayou/SimpleRAG

From:https://www.cnblogs.com/mingupupu/p/18433464
本文地址: http://www.shuzixingkong.net/article/2319
0评论
提交 加载更多评论
其他文章 基于SqlAlchemy+Pydantic+FastApi的Python开发框架的路由处理
在前面随笔《基于SqlAlchemy+Pydantic+FastApi的Python开发框架 》中介绍了框架总体的内容,其中主要的理念就是通过抽象接口的方式,实现代码的重用,提高开发效率。本篇随笔深入介绍一下FastApi的路由处理部分的内容,通过基类继承的方式,我们可以简化路由器(或者叫Web A
基于SqlAlchemy+Pydantic+FastApi的Python开发框架的路由处理 基于SqlAlchemy+Pydantic+FastApi的Python开发框架的路由处理 基于SqlAlchemy+Pydantic+FastApi的Python开发框架的路由处理
作为博主和曾经员工,谈谈近期的园子
最近,有很多朋友微信我,说博客园最近在求救,你怎么看? 怎么看?不怎么看,微笑而过。 其实救园我很久之前就关注到了,很多园友也慷慨解囊,也提出了很多建议,但并没有很多实质性的后续,相信大家应该也看到了。 为什么写这篇文章呢?因为最近看到了一个评论,园友是这样写的: 我觉得写的很好,博客园是平台,我们
作为博主和曾经员工,谈谈近期的园子 作为博主和曾经员工,谈谈近期的园子 作为博主和曾经员工,谈谈近期的园子
一次基于AST的大规模代码迁移实践
在研发项目过程中,我们经常会遇到技术架构迭代更新的需求,通过技术的迭代更新,让项目从新的技术特性中受益,但由于很多新的技术迭代版本并不能完全向下兼容,包含了很多非兼容性的改变(Breaking Changes),因此我们需要设计一款工具,帮助我们完成大规模代码自动迁移问题。本文简单阐述了基于AST的
一次基于AST的大规模代码迁移实践 一次基于AST的大规模代码迁移实践 一次基于AST的大规模代码迁移实践
三大硬核方式揭秘:Java如何与底层硬件和工业设备轻松通信!
大家好,我是V哥,程序员聊天真是三句不到离不开技术啊,这不前两天跟一个哥们吃饭,他是我好多年前的学员了,一直保持着联系,现在都李总了,在做工业互联网相关的项目,真是只要 Java 学得好,能干一辈子,卷死的是那些半吊子。 感谢李总给我分享了工业互联网项目的事情,收获很多,今天的内容来聊一聊 Java
基础数据结构之递归
递归 1) 概述 定义 计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集 In computer science, recursion is a method of solving a computational problem where the solution
基础数据结构之递归 基础数据结构之递归 基础数据结构之递归
仅需6步,实现虚拟物体在现实世界的精准放置
增强现实(AR)技术作为一种将数字信息和现实场景融合的创新技术,近年来得到了快速发展,并在多个应用领域展现出其独特的魅力。比如在教育行业,老师可以通过虚拟现实场景生动直观地帮助学生理解抽象概念;在旅游行业,AR技术还能虚拟历史文化场景、虚拟导航等,为游客提供更加沉浸的互动体验。 然而,对于应用来说,
仅需6步,实现虚拟物体在现实世界的精准放置 仅需6步,实现虚拟物体在现实世界的精准放置 仅需6步,实现虚拟物体在现实世界的精准放置
博客园终身会员小福利,送华为云服务器
最近我们和华为云总经销商浙江杭云网络科技有限公司达成了合作,准备从10月开始做一些华为云的代理业务,增加园子的收入来源。 在做这个业务之前,先给园子的终身会员送点华为云服务器作为小福利,这次只申请到100台,先到先得,送完为止。 赠送的云服务器配置如下: 终身VIP会员 :送1核2G1M华为云服务器
博客园终身会员小福利,送华为云服务器
C语言数据类型、变量的输入和输出、进制转换
scanf标准函数可以从键盘得到数字并记录到存储区里,为了使用这个标准函数需要包含stdio.h这个头文件 在scanf函数调用语句里应该使用存储区的地址表示存储区;双引号里使用占位符表示存储区的类型, 在scanf函数调用语句里尽量不要写不是占位符的内容,如果用户输入的格式和程序要求的格式不同 程