C# 开发者玩转大模型:.NET 对接本地 Ollama+Qdrant 向量库,手把手实现 RAG 智能知识库项目

来源: C# 开发者玩转大模型:.NET 对接本地 Ollama+Qdrant 向量库,手把手实现 RAG 智能知识库项目

最近半年,RAG(检索增强生成)彻底火了。但很多 C# 开发者一看教程全是 Python 栈,心里总觉得差点意思 —— 难道我们.NET 生态就不能优雅地搞本地大模型 + 向量知识库?

当然能,而且体验丝毫不差。


一、为什么选择 Ollama + Qdrant + .NET 技术栈

先给大家算笔账:现在企业做内部知识库,最担心的就是数据泄露调用成本。把内部文档喂给云端大模型,合规风险高;按 Token 计费,量大了成本根本扛不住。

本地部署 RAG 就是最优解,而我们这套组合有三个核心优势:

  • Ollama
    :一键部署本地大模型,支持 Llama 3、Qwen、DeepSeek 等主流开源模型,提供标准 OpenAI 兼容 API,.NET 接入零门槛
  • Qdrant
    :高性能向量数据库,Rust 编写,速度快、资源占用低,支持纯本地部署,有官方.NET SDK
  • .NET + Semantic Kernel
    :微软官方大模型编排框架,原生支持 Ollama 和向量存储,强类型编程,工程化能力远超 Python 脚本
整套方案全部开源免费,普通开发机就能跑,非常适合企业内部知识库、文档问答、代码助手等场景。

二、前置环境准备(5 分钟搞定)

1. 安装 Ollama

官网下载:https://ollama.com/安装完成后,拉取一个中文效果不错的模型:

ollama pull qwen2:7b
验证运行:
ollama run qwen2:7b

默认端口 11434,API 地址:http://localhost:11434

2. 安装 Qdrant 向量库

推荐用 Docker 一键启动:

docker run -p 6333:6333 qdrant/qdrant

启动后访问 http://localhost:6333/dashboard 能看到控制台就是成功了。

3. 开发环境

  • .NET 8 / .NET 9 SDK
  • Visual Studio 2022 或 Rider
  • 基础的 C# 异步编程基础

三、项目架构总览

我们的 RAG 系统分为两大核心流程:

1. 文档入库流程(离线)

读取文档 → 文本切分 → 调用 Embedding 模型生成向量 → 写入 Qdrant 向量库

2. 问答检索流程(在线)

用户提问 → 生成问题向量 → Qdrant 相似度检索 → 召回相关文档片段 → 拼接 Prompt → 送入大模型生成回答

用一张图理解就是:用户问题 → 向量化 → 向量检索 → 增强Prompt → LLM生成 → 最终回答


 

四、手把手代码实现

第一步:创建项目并安装依赖

新建一个 ASP.NET Core Web API 项目,命名为 RagKnowledgeBase,然后安装以下 NuGet 包:

图片
注意:如果官方 Ollama 连接器版本不对,也可以用开源的 OllamaSharp 或者直接 HttpClient 调用,原理完全一致。

第二步:配置服务注册

在 Program.cs 中注册 Semantic Kernel、Ollama 和 Qdrant:

图片

第三步:实现文档入库接口

新建 DocumentController.cs,实现文档切分和向量化入库:

图片

第四步:实现 RAG 问答接口

这是最核心的一步,实现「检索 + 生成」的完整 RAG 链路:

图片

五、跑起来看看效果
  1. 先调用 /api/document/ingest 接口,上传一篇技术文档的文本内容
  2. 再调用 /api/document/query 接口,输入你的问题
  3. 大模型会基于检索到的文档片段给出精准回答

你可以试试上传自己的项目文档、API 手册、业务规范,然后用自然语言提问,体验一下 "秒搜全文 + 智能总结" 的爽感。


六、进阶优化方向

这个基础版跑通之后,你还可以沿着这几个方向迭代:

  • 支持更多格式
    :接入 PDF、Word、Excel 解析,用 iTextSharp 或 NPOI 提取文本
  • 重排序优化
    :加入 BGE-Reranker 等重排模型,提升检索准确率
  • 对话记忆
    :实现多轮对话上下文管理,支持追问
  • 前端界面
    :搭一个 Blazor 或 Vue 的聊天界面,做成完整产品
  • 批量导入
    :做一个后台任务,批量扫描文件夹自动入库
  • 混合检索
    :向量检索 + 关键词检索结合,解决长尾问题

源码
为了方便大家直接上手,我把这篇文章对应的完整可运行项目源码整理好了

关注公众号【WPF开发上位机专家】,后台回复关键词【RAG】即可直接获取全部源码包。