SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用

news/2024/11/16 9:51:47/文章来源:https://www.cnblogs.com/mingupupu/p/18367726

SimpleRAG介绍

SimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建RAG应用。

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

主要功能

AI聊天

支持所有兼容OpenAI格式的大语言模型:

image-20240819163701855

文本嵌入

支持所有兼容OpenAI格式的嵌入模型:

image-20240819163900106

简单的RAG回答

简单的RAG回答效果:

image-20240819164221306

对比不使用RAG的回答:

image-20240819164322893

从源码构建

git clone到本地,打开appsettings.example.json文件:

image-20240819164816557

如下所示:

image-20240819164844061

ChatAI用于配置对话模型,Embedding用于配置嵌入模型,TextChunker用于配置文档切片大小。

还是以SiliconCloud为例,只需填入你的api key 并将文件名改为appsettings.json,或者新建一个appsettings.json即可。

配置完成如下所示:

image-20240819165255285

IDE:VS2022

.NET 版本:.NET 8

打开解决方案,项目结构如下所示:

image-20240819165459846

运行程序:

image-20240819165551772

测试AI聊天:

image-20240819165652624

测试嵌入:

image-20240819165803024

使用的是Sqlite保存向量,可以在Debug文件夹下找到这个数据库:

image-20240819165854807

打开该数据库,如下所示:

image-20240819170059576

测试RAG回答:

image-20240819170128226

其他配置

您还可以自由的进行其他配置,比如使用Ollama中的对话模型与嵌入模型用于本地离线场景,配置其他的在线对话模型,使用本地Ollama中的嵌入模型等。

最后

如果对您有所帮助,点个star✨,就是最大的支持😊。

如果您看了这个指南,还是遇到了问题,欢迎通过公众号联系我:

qrcode_for_gh_eb0908859e11_344

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783880.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

粒子群算法中对于惯性权重的改进

惯性权重w体现的是粒子继承先前的速度的能力,Shi,Y最先将惯性权重w引入到粒子群算法中,并分析指出一个较大的惯性权值有利于全局搜索,而一个较小的权值则更利于局部搜索。因此,在迭代适应度的同时对惯性权重进行迭代有利于帮助我们寻找最优解 目录一、线性递减惯性权重1.迭…

Git教程2

六、Git的工作区域和文件状态 1、工作区域: (1) 工作区(Working Directory):电脑上可以看到的目录,即实际操作的目录。车间 (2) 暂存区(Staging Area/Index):保存即将提交到Git仓库的修改内容。运输工具 Cache (3) 本地仓库(Local Repository):存储代码和版本信息的主要位…

JavaScript-快速语法参考-全-

JavaScript 快速语法参考(全)原文:JavaScript Quick Syntax Reference 协议:CC BY-NC-SA 4.0一、使用 JavaScript 要开始试验 JavaScript,您应该安装一个支持这种语言的集成开发环境(IDE)。有很多不错的选择,比如 NetBeans、Eclipse、Visual Studio、括号。在本书中,我们…

一个方便下载pdb调试符号的小工具Microsoft.PdbDownloader

在调试Windows的系统组件时,如果能够正确使用pdb文件,能够对调试有非常大的帮助。一般情况下,我们是使用windbg来自动下载符号文件,但是有时候对一些简单的需求来说,用windbg反而比较麻烦。比如我现在有一个PE文件,就想只下载它的pdb文件到当前目录,需求看似简单,但是却…

SpringBoot系列:使用原生JDBC实现对数据库的增删改查

在springboot中使用原生JDBC实现对数据库的增删改查application.ymlspring:datasource:username: rootpassword: 123456url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.…

tp1200触摸屏画面光标使用方法

1:点击画面空白处 2:编辑Tab排序,就是首次显示当前画面时,光标处于光标为1的对象上 3:当IC卡具备Enter点击功能时,可以直接使用刷卡去触发这个按钮 *******************************************************************************************************1:激活屏幕…

MAC苹果电脑JDK下载安装教程

JDK For Mac在Mac上安装JDK的步骤主要包括下载JDK安装包、‌安装JDK、‌查询JDK安装路径、‌配置Java JDK环境变量以及使配置生效。‌以下是详细的步骤说明:‌下载JDK安装包访问Oracle官网,‌选择适合MacOS版本的JDK安装包进行下载。‌对于M系列芯片,‌选择Arm 64 DMG insta…

通过代码添加的控件的事件如何编写?

背景 这两天在重新复习事件,比如Winform控件的事件,利用vs很方便地实现。比如:想要在窗体加载时,修改窗口的标题;我们只需要双击Form1的标题栏即可;vs便会给我们生成如下代码,且光标自动定位到方法体中:private void Form1_Load( object sender, EventArgs e ) {}然后我…

Visual Studio 2013 jsoncpp 0.10.7库编译

前言全局说明Visual Studio 2013 jsoncpp 编译jsoncpp 介绍说明: https://www.cnblogs.com/wutou/p/18367551一、说明 环境: Windows 7 旗舰版 Visual Studio 2013二、选择根据vs2013工具环境和 jsoncpp 介绍,这里选用 0.10.7 版本演示三、准备 3.1 解压文件 进入 makefiles\…

Blazor开发框架Known-V2.0.8

V2.0.8 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行。目前已有部分客户在使用,最近客户的项目和产品,有的在Docker中运行,有的在重新升级改造中使用达梦数据库。为快速响应客户的需求,本次版本修复了一些BUG、增强了框架内置功能…

11 IIC通讯协议

目录前言一、IIC介绍1.IIC的时序2.使用IIC对从机寄存器的写操作流程3.使用IIC对从机寄存器的读操作流程二、软件实现IIC协议1.GPIO口配置2.IIC开始信号3.IIC结束信号4.发送数据5.接收数据6.接收ACK响应7.发送ACK和NACK响应8.对寄存器进行写处理9.对寄存器进行读处理三、硬件实现…

判断是否为同构字符串

要想解答这个算法,得明白一个概念,什么是同构字符串,来看一下定义:也就是说,s可以转化为t,对应的t也可以转化为s。解决思路: 我们进行一次的遍历,然后定义了两个dict,来记录s->t,t->s的映射,然后在后面校验一下,这两个dict的value 是否是相同的,来上代码。c…