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

相关文章
|
8月前
|
数据可视化 Linux C#
Visual Studio 高手进阶的 10 个效率与洞察力利器
本文深入解析10个Visual Studio中常被忽视的高级功能与技巧,专为资深开发者设计。内容涵盖性能剖析、调试增强、内存布局查看、自定义调试可视化、条件断点、并行调试、正则搜索、构建管理、热重载突破及WSL2集成等,助你挖掘VS潜能,显著提升开发效率与问题诊断能力,成为真正的VS忍者。
250 0
|
10月前
|
传感器 物联网 Linux
Python:蓝牙心率广播设备监测(BLE 心率监测器)技术解析与实现
本文探讨了如何使用 Python 脚本与支持蓝牙低功耗(BLE)心率广播的设备交互以获取实时心率数据。重点分析了 BLE 协议、GATT 服务模型,以及具体方法。此外,还讨论了华为手表等设备的兼容性问题。
1864 19
|
机器人 C# 人工智能
智能升级:WPF与人工智能的跨界合作——手把手教你集成聊天机器人,打造互动新体验与个性化服务
【8月更文挑战第31天】聊天机器人已成为现代应用的重要组成部分,提供即时响应、个性化服务及全天候支持。随着AI技术的发展,聊天机器人的功能日益强大,不仅能进行简单问答,还能实现复杂对话管理和情感分析。本文通过具体案例分析,展示了如何在WPF应用中集成聊天机器人,并通过示例代码详细说明其实现过程。使用Microsoft的Bot Framework可以轻松创建并配置聊天机器人,增强应用互动性和用户体验。首先,需在Bot Framework门户中创建机器人项目并编写逻辑。然后,在WPF应用中添加聊天界面,实现与机器人的交互。
734 0
|
自然语言处理 API 数据安全/隐私保护
通过阿里云Milvus和通义千问快速构建基于专属知识库的问答系统
本文展示了如何使用阿里云向量检索 Milvus 版和灵积(Dashscope)提供的通用千问大模型能力,快速构建一个基于专属知识库的问答系统。在示例中,我们通过接入灵积的通义千问 API 及文本嵌入(Embedding)API 来实现 LLM 大模型的相关功能。
通过阿里云Milvus和通义千问快速构建基于专属知识库的问答系统
|
持续交付 Python
使用Python实现自动化Web内容巡检
使用Python实现自动化Web内容巡检
820 1
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
API C# 数据库
SemanticKernel/C#:实现接口,接入本地嵌入模型
SemanticKernel/C#:实现接口,接入本地嵌入模型
349 1
|
人工智能 自然语言处理 Java
SemanticKernel:添加插件
SemanticKernel:添加插件
338 0
SemanticKernel:添加插件
|
5G
IEEE 802.11 系列无线标准主要区别
【8月更文挑战第24天】
867 0
|
前端开发 IDE 测试技术
自动化测试中的代码魔法:使用Python和Selenium框架
【8月更文挑战第31天】在软件开发的海洋中,自动化测试是一艘能够带领团队穿越波涛的帆船。本文将引导读者了解如何利用Python语言结合Selenium框架,编写简洁而强大的自动化测试脚本。我们将从搭建开发环境开始,逐步深入到实际案例,最后通过一个简单示例展示如何实现端到端的自动化测试流程。文章不仅提供实用的代码片段,还旨在激发读者对于软件测试深层次思考的热情。

热门文章

最新文章