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

简介: SimpleRAG是一款基于WPF与Semantic Kernel的RAG应用,支持OpenAI兼容的AI聊天与文本嵌入模型,演示了RAG技术在提升回答质量上的作用。可通过GitHub获取源码,配置所需模型API密钥后,在VS2022中以.NET 8环境编译运行。应用内置Sqlite数据库存储向量数据,便于离线使用与自定义扩展。如感兴趣,请支持并反馈使用体验。

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

目录
相关文章
|
6月前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
153 1
|
5月前
|
开发框架 JSON .NET
探索Semantic Kernel内置插件:深入了解HttpPlugin的应用
其他 Put和Delete类似。 最后 可以借鉴HttpPlugin的实现思路在项目中灵活的运行,如果不支持那就可以自定义插件来完成需求的开发,还是比较期待这个插件能够更加完善的一点,在未来以更灵活的方式支持Post等请求的多种形式。
|
机器学习/深度学习 Ubuntu PyTorch
RoNIN: Robust Neural Inertial Navigation预训练模型测试
RoNIN: Robust Neural Inertial Navigation预训练模型测试
264 0
RoNIN: Robust Neural Inertial Navigation预训练模型测试
|
机器学习/深度学习 存储 自然语言处理
【推荐系统论文精读系列】(八)--Deep Crossing:Web-Scale Modeling without Manually Crafted Combinatorial Features
人工制作的组合特征是许多成功模型背后的 "秘诀"。然而,对于网络规模的应用来说,特征的种类和数量使得这些手工制作的特征在创建、维护和部署时成本高昂。本文提出了Deep Crossing模型,它是一个深度神经网络,可以自动结合特征来产生卓越的模型。Deep Crossing的输入是一组单独的特征,可以是密集的也可以是稀疏的。重要的交叉特征是由网络隐含地发现的,网络由嵌入和堆叠层以及残余单元的级联组成。
262 0
|
机器学习/深度学习 人工智能 搜索推荐
【推荐系统论文精读系列】(十五)--Examples-Rules Guided Deep Neural Network for Makeup Recommendation
在本文中,我们考虑了一个全自动补妆推荐系统,并提出了一种新的例子-规则引导的深度神经网络方法。该框架由三个阶段组成。首先,将与化妆相关的面部特征进行结构化编码。其次,这些面部特征被输入到示例中——规则引导的深度神经推荐模型,该模型将Before-After图像和化妆师知识两两结合使用。
162 0
【推荐系统论文精读系列】(十五)--Examples-Rules Guided Deep Neural Network for Makeup Recommendation
|
机器学习/深度学习 负载均衡 搜索推荐
【推荐系统论文精读系列】(十六)--Locally Connected Deep Learning Framework for Industrial-scale Recommender Systems
在这项工作中,我们提出了一个局部连接的深度学习框架推荐系统,该框架将DNN的模型复杂性降低了几个数量级。我们利用Wide& Deep模型的思想进一步扩展了框架。实验表明,该方法能在较短的运行时间内取得较好的效果。
140 0
【推荐系统论文精读系列】(十六)--Locally Connected Deep Learning Framework for Industrial-scale Recommender Systems
|
编解码 人工智能 自然语言处理
Paper:《NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉》翻译与解读
Paper:《NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉》翻译与解读
Paper:《NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉》翻译与解读
|
机器学习/深度学习 编解码 算法
Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇
Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇
Paper之EfficientDet: 《Scalable and Efficient Object Detection—可扩展和高效的目标检测》的翻译及其解读—续篇
|
机器学习/深度学习 算法 数据挖掘
Paper:《A Unified Approach to Interpreting Model Predictions》论文解读与翻译
Paper:《A Unified Approach to Interpreting Model Predictions》论文解读与翻译
|
C#
WPF Interaction框架简介(一)——Behavior
原文:WPF Interaction框架简介(一)——Behavior 在WPF 4.0中,引入了一个比较实用的库——Interactions,这个库主要是通过附加属性来对UI控件注入一些新的功能,除了内置了一系列比较好用的功能外,还提供了比较良好的扩展接口。
2271 0