SimpleRAG介绍
SimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建RAG应用。
GitHub地址:https://github.com/Ming-jiayou/SimpleRAG
主要功能
AI聊天
支持所有兼容OpenAI格式的大语言模型:

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

简单的RAG回答
简单的RAG回答效果:

对比不使用RAG的回答:

从源码构建
git clone到本地,打开appsettings.example.json文件:

如下所示:

ChatAI用于配置对话模型,Embedding用于配置嵌入模型,TextChunker用于配置文档切片大小。
还是以SiliconCloud为例,只需填入你的api key 并将文件名改为appsettings.json,或者新建一个appsettings.json即可。
配置完成如下所示:

IDE:VS2022
.NET 版本:.NET 8
打开解决方案,项目结构如下所示:

运行程序:

测试AI聊天:

测试嵌入:

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

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

测试RAG回答:

其他配置
您还可以自由的进行其他配置,比如使用Ollama中的对话模型与嵌入模型用于本地离线场景,配置其他的在线对话模型,使用本地Ollama中的嵌入模型等。
最后
如果对您有所帮助,点个star✨,就是最大的支持😊。
如果您看了这个指南,还是遇到了问题,欢迎通过公众号联系我:
