SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用
SimpleRAG介绍
在人工智能应用落地的过程中,RAG(检索增强生成)已经成了绕不开的关键技术。SimpleRAG正是一个非常适合入门的实战项目——它基于WPF与Semantic Kernel构建,结构清晰,代码简洁,能帮助开发者快速理解如何使用Semantic Kernel搭建一个完整的RAG应用。无论是准备做技术选型验证,还是想亲手跑通整个流程,这都是一份值得参考的范本。

主要功能
AI聊天
底层对话能力方面,SimpleRAG支持所有兼容OpenAI格式的大语言模型。这意味着市面上主流的云服务商和本地部署方案都能无缝接入——只要接口规范一致,替换模型几乎不需要修改业务代码。
文本嵌入
嵌入模型同样采用OpenAI兼容格式,灵活度很高。无论是用商业API还是开源的本地嵌入服务,都能直接对接到项目中来。
简单的RAG回答
来看一组直观对比:启动RAG模式后,回答的上下文相关性和事实准确性明显提升。下图展示了打开RAG前后的差异——左侧是直接让模型回答的效果,右侧是经过检索增强后的结果,信息颗粒度完全不同。
对比不使用RAG的回答:
从源码构建
把项目clone到本地后,第一件事是打开 appsettings.example.json 文件。这个文件就是配置模板,结构如下所示:
配置项分为三块:ChatAI 用于指定对话模型,Embedding 对应嵌入模型,TextChunker 控制文档切片的尺寸。以SiliconCloud平台为例,只需填入你的API Key,然后把文件名改为 appsettings.json(或者直接新建一个同名文件)即可生效。
开发环境方面,推荐使用VS2022 + .NET 8。打开解决方案后,项目结构一目了然:
直接运行程序,进入主界面:
先测试AI聊天功能——输入问题,模型能正常返回结果:
接着测试嵌入功能:
本项目使用Sqlite来存储向量数据。在Debug目录下能找到生成的数据库文件:
打开数据库,可以看到向量数据已经正确写入:
最后验证RAG回答流程——上传文档后提问,系统能基于文档内容给出精准回答:
其他配置
除了在线API,你完全可以根据实际场景自由替换配置。比如在本地离线环境下,可以使用Ollama中提供的对话模型和嵌入模型,只要保持OpenAI兼容的接口格式,改一下配置就能跑起来。同样,也可以切换其他在线服务商,或者把嵌入模型换成本地Ollama版本的——灵活性远比你想象的大。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名