前言

最近 DeepSeek 可太火了,在人工智能领域引起了广泛的关注,其强大的自然语言处理能力和智能搜索功能让大家跃跃欲试。

对于 .NET 技术栈的开发来说,一个常见的问题是:能否在 .NET 程序中使用 DeepSeek? 答案是肯定的。

为了帮助 .NET 开发快速上手并充分利用 DeepSeek 的强大功能,社区提供了一个名为 deepseek-dotnet 的开源项目。

项目介绍

deepseek-dotnet 项目不仅包含了如何在 .NET 中集成和使用 DeepSeek 模型的详细示例,还展示了如何通过 Microsoft.Extensions.AI (MEAI) 库来简化与 DeepSeek R1 模型的交互。

具体而言 deepseek-dotnet 项目在 GitHub 上托管,并且已经集成了最新的 DeepSeek R1 模型。通过该项目,可以学习如何在 .NET 应用程序中调用 DeepSeek API,处理请求和响应,以及如何利用 Microsoft.Extensions.AI 库进行模型管理和推理。

不管是开发智能助手、自动问答系统,还是其他复杂的业务应用。DeepSeek 都能为大家提供强有力的支持。

DeepSeek 说明

DeepSeek-V3:是DeepSeek于2023年12月推出的模型,以较低的训练成本实现了与GPT-4和Claude Sonnet 3.5等顶尖模型相媲美的性能。

DeepSeek-R1(deepseek-reasoner):是DeepSeek最新推出的推理模型,在输出最终回答之前,模型会先输出一段思维链内容,以提升答案的准确性。

Microsoft.Extensions.AI

Microsoft.Extensions.AI 库为各类 AI 服务提供统一的抽象接口。

无论使用 DeepSeek、OpenAI 还是 Mistral,也不论服务托管在 GH Models、Ollama 还是 Azure AI Foundry,都可以使用相同的 API 接口与模型交互。

这种统一性显著降低了入门门槛——无需掌握不同库的特殊用法,只需掌握 MEAI 即可。

大部分功能通过 IChatClient 接口实现。由于这是接口,具体实现会根据底层 AI 服务而变化:

使用 Ollama 时,需引用 Microsoft.Extensions.AI.Ollama 包

使用 GitHub Models 时,则需 Microsoft.Extensions.AI.AzureAIInference 包

一旦实例化 IChatClient 后,所有操作接口都将统一。

项目源码

下载项目源码,打开 DeepSeek.Console.GHModels 项目中的 Program.cs 文件。

首先需要注意的是初始化 modelEndpoint 和 modelName 变量的位置。这些变量对 GitHub Models 服务来说是标准的,它们总是相同的。

现在进入有趣的部分!我们将初始化我们的聊天客户端。这里我们将连接到 DeepSeek R1 模型。

项目结构

项目使用

1、GitHub Models

生成 GitHub PAT 或直接在 Codespace 中运行仓库。

设置用户密钥:在 DeepSeek.Console.GHModels 项目中设置 GITHUB_TOKEN 用户密钥。

Program.cs:了解如何使用 MEAI 访问 GitHub Models 上的 DeepSeek。

2、在 Azure AI Foundry 上运行

部署模型到 Azure AI Foundry:参考提供的部署指南。

记录密钥:将密钥放入 DeepSeek.Console.AzureAI 项目的用户密钥中,键名为 AZURE_AI_KEY。

获取端点 URL 和模型名称:从 AI Foundry 门户的部署中获取。

3、在 Ollama 上运行

启动 Codespace:Codespace 将下载 Ollama 镜像并在 devcontainer 内启动它。

拉取精简版 R1 模型。

Program.cs:在 DeepSeek.Console.Ollama 项目中查看 Program.cs 文件,了解如何初始化 IChatClient 接口。

IChatClient chatClient = new OllamaChatClient(modelEndpoint, modelName);

项目地址

GitHub:https://github.com/codemillmatt/deepseek-dotnet

总结

DeepSeek R1 是一个新推理模型,吸引了大量关注,可以使用 Microsoft.Extensions.AI 库在 .NET 程序中利用它。

GitHub Models 降低了入门和实验的门槛。感兴趣的小伙伴们快去试试。

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

.NET 使用 DeepSeek R1 开发智能 AI 客户端的更多相关文章

  1. 基于Laravel+Swoole开发智能家居后端

    基于Laravel+Swoole开发智能家居后端 在上一篇<Laravel如何优雅的使用Swoole>中我已经大概谈到了Laravel结合Swoole的用法. 今天,我参与的智能家居项目基 ...

  2. 什么?又来智能AI编程?让不让我们活了!

    无事逛github发现了一款智能AI编程,故下载试试 发现异常好用 推荐给大家 github地址:GitHub - getcursor/cursor:一个用于使用AI 编程的编辑器 支持:C# ,Ja ...

  3. 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(目录)

    本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以  SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...

  4. (转)【ASP.NET开发】获取客户端IP地址 via C#

    [ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...

  5. 基于滴答清单 Web 开发的 PC 客户端

    基于滴答清单 Web 开发的 PC 客户端 关于「滴答清单」 滴答清单是一款不可多得的 GTD 效率工具,它有着清晰明了的界面设计.恰到好处的功能设置.稳定的同步服务,如果你还缺少一款简洁而有效的 G ...

  6. C# 开发Modbus Rtu客户端 modbus测试Demo,Modbus 串口通信 , 虚拟MODBUS-RTU测试

    前言 本文将使用一个NuGet公开的组件技术来实现一个ModBus RTU的客户端,方便的对Modbus rtu的服务器进行读写,这个服务器可以是电脑端C#设计的,也可以是PLC实现的,也可以是其他任 ...

  7. python 使用模板模式和工厂模式的混合设计开发各种邮件客户端发送邮件

    1.使用模板模式和工厂模式的混合设计开发各种邮件客户端发送邮件. 2.模板模式的目的:能保证快速开发各种邮箱客户端,子类只需要重写模板类邮箱的抽象方法即可.之后再开发任何邮箱就只要加一个类,写3行代码 ...

  8. 【cocos2d-x 手游研发----怪物智能AI】

    原创文章,转载请注明出处:http://www.cnblogs.com/zisou/p/cocos2d-xARPG4.html 谈到怪物AI,我觉得就比较话多了,首先理解一下(Artificial I ...

  9. WPF一步步开发XMPP IM客户端1:入门

    [起因&目标] 因为工作原因接触openfire服务端和spark客户端开发,主要是基于openfire扩展开发了针对企业用途的服务器插件,还开发了各个平台上的客户端(Windows\mac\ ...

  10. 以太坊系列之十一: 零起步使用remix开发智能合约

    一步一步使用remix开发智能合约 最新版的remix(2017-8-3)只能使用在线开发了,已经没有离线版本了,并且好像在线版本要FQ才能访问(自行解决). 1.打开remix 注意地址如果是htt ...

随机推荐

  1. IO介绍-上

    IO IO系统管理的主要对象是IO设备和相应的设备控制器.其主要任务是,完成用户提出的IO请求,提高IO效率,以及提高设备的利用率.并能为更高层的进程方比那使用这些设备提供手段. IO系统的基本功能 ...

  2. 使用xtrabackup实现mysql定时热备份

    1.原理:方案选型 mysqldump是逻辑备份解决方案,备份恢复速度慢,工具获取方便,数据量少推荐 主要用途是导出数据 xtrababckup是物理热备份,速度快,适合大数据量 xtrababcku ...

  3. Qt音视频开发10-ffmpeg内核硬解码

    一.前言 为了极大的降低CPU的占用,实现硬解码(也叫硬件加速)非常有必要,一个视频文件或者一路视频流还好,如果增加到64路视频流呢,如果是4K.8K这种高分辨率的视频呢,必须安装上硬解码才是上上策. ...

  4. Log4net的使用教程

    不怎么爱写日志,(就是比较懒),后来遇上bug了找不到问题,才决定好好使用日志 其实说实话,log4配置的那些东西记不太住,但也不需要记住什么.百度就有现成的,自己跟着网上配置好之后,稍微记录一下,为 ...

  5. 鸿蒙ArkUI-X简介

    ArkUI是一套构建分布式应用的声明式UI开发框架.它具备简洁自然的UI信息语法.丰富的UI组件.多维的状态管理,以及实时界面预览等相关能力,帮助您提升应用开发效率,并能在多种设备上实现生动而流畅的用 ...

  6. 使用ollama玩转本地大模型

    使用ollama玩转本地大模型 https://ollama.com/download 安装 安装验证 测试 ollama run llama2 ollama run qwen

  7. 新一代python版本与依赖管理工具 uv

    uv python版本与依赖管理 选择原因 1. 新的好玩.rust开发的执行速度快 2. 确实方便 3. 轻,软件就十几二十兆,占磁盘小 4. uv.lock可以锁版本 场景应用 场景一 从 ana ...

  8. Python依赖库的导入、导出 | 解决内网安装模块问题 | Python

    通过在有网的机器A下下载所有的依赖包至package文件夹下: pip3 download -r requirements.txt -d ./package 将依赖包移动至没有网的机器B下,指定依赖包 ...

  9. Solution Set -「NOIP Simu.」20221003

    \(\mathscr{A}\sim\) 二分图排列   定义一个数列 \(\{a_n\}\) 合法, 当且仅当无向图 \(G=(\{1..n\},\{(i,j)\mid i<j\land a_i ...

  10. C#添加log4日志

    第一步导入log4net 在vs的程序包管理器控制台中执行命令 NuGet\Install-Package log4net -Version 2.0.0 第二步加帮助类HttpHelper using ...