首页 > 教程攻略 > ai资讯 >SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用

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

来源:互联网 时间:2026-08-23 14:16:58

SimpleRAG介绍

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

SimpleRAG:基于WPF与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版本的——灵活性远比你想象的大。