当前位置: 首页 > news >正文

Microsoft Agent Framework 与 DeepSeek 对接

准备工作

先使用手机号在 https://platform.deepseek.com 上注册账号

最后进入充值页面充值。如果没有充值,则后续 API 调用会返回 402 错误

最后进入 https://platform.deepseek.com/api_keys 创建 API key 且复制出来,后续步骤将会用到

安装库

按照 .NET 的惯例,使用前先使用 NuGet 安装对应的库

  • Microsoft.Agents.AI.OpenAI

安装之后的 csproj 项目文件内容大概如下

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net10.0</TargetFramework><ImplicitUsings>enable</ImplicitUsings><Nullable>enable</Nullable></PropertyGroup><ItemGroup><PackageReference Include="Microsoft.Agents.AI.OpenAI" Version="1.0.0-preview.251219.1" /></ItemGroup></Project>

编写代码

根据 DeepSeek 的官方文档,可以知道 DeepSeek 是能够完全兼容 OpenAI 的接口的,详细请看 https://api-docs.deepseek.com/zh-cn/

通过文档可以知道,只需要访问的是 https://api.deepseek.com/v1 链接,即可兼容 OpenAI 的接口。注,这里的 v1 不代表模型的版本,而是代表 API 的版本

通过与 OpenAI 的接口完全兼容的 https://api.deepseek.com/v1 链接,即可直接与 OpenAIClient 类型对接

对接代码如下

var openAiClient = new OpenAIClient(new ApiKeyCredential(key), new OpenAIClientOptions()
{Endpoint = new Uri("https://api.deepseek.com/v1")
});

以上代码的 key 就是前面步骤保存的 API key 内容。为了安全起见,不应该将 API key 写入到代码里面,我就简单地放到 C:\lindexi\Work\deepseek.txt 文件里,随后用 File.ReadAllText 进行读取,其代码如下

var keyFile = @"C:\lindexi\Work\deepseek.txt";
var key = File.ReadAllText(keyFile);var openAiClient = new OpenAIClient(new ApiKeyCredential(key), new OpenAIClientOptions()
{Endpoint = new Uri("https://api.deepseek.com/v1")
});

根据 https://api-docs.deepseek.com/zh-cn/quick_start/pricing 文档可以知道,现在 DeepSeek 提供了这些模型可以被调用:

  • deepseek-chat: DeepSeek-V3.2 (非思考模式)
  • deepseek-reasoner: DeepSeek-V3.2(思考模式)

咱这里就随意选了 deepseek-chat 模型,代码如下

var chatClient = openAiClient.GetChatClient("deepseek-chat");

拿到 ChatClient 之后,就可以通过 CreateAIAgent 扩展方法创建 ChatClientAgent 对象了,代码如下

ChatClient chatClient = openAiClient.GetChatClient("deepseek-chat");ChatClientAgent aiAgent = chatClient.CreateAIAgent();

现在拿到的 ChatClientAgent 对象就可以直接开始跑了,如下面的测试例子

AgentRunResponse runResponse = await aiAgent.RunAsync("告诉我一个关于海盗的笑话");
Console.WriteLine(runResponse);

我跑了一下,可以在控制台看到如下输出信息,看起来 DeepSeek 的笑话还是很好笑的

好的,这里有一个经典的海盗笑话:---一个海盗走进酒吧,酒保看到他右眼戴着眼罩,左手是铁钩,右腿是木棍做的假肢,就问:“哇,你这身行头真厉害!是怎么弄成这样的?”海盗说:“啊,这眼罩是因为有一天海鸥屎掉进我眼睛,我就瞎了。”酒保一愣:“海鸥屎能让人瞎?”海盗:“呃……其实是我刚戴上眼罩第一天,不太习惯,用铁钩手揉眼睛时戳瞎的。”

如果发现在调用的时候提示的 HTTP 错误是 402 则证明账户上已经没钱了,或还没进行充值。详细错误信息请参阅 https://api-docs.deepseek.com/zh-cn/quick_start/error_codes

本文代码放在 github 和 gitee 上,可以使用如下命令行拉取代码。我整个代码仓库比较庞大,使用以下命令行可以进行部分拉取,拉取速度比较快

先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin cb19960c943988735924144830886c76f20adae9

以上使用的是国内的 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码,将 gitee 源换成 github 源进行拉取代码。如果依然拉取不到代码,可以发邮件向我要代码

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin cb19960c943988735924144830886c76f20adae9

获取代码之后,进入 SemanticKernelSamples/BewukobuheQinalaykodall 文件夹,即可获取到源代码

更多技术博客,请参阅 博客导航

http://www.jsqmd.com/news/158153/

相关文章:

  • AJ-Captcha行为验证码深度解析:架构创新与实践指南
  • installing this may take a few minutes… 或许你应该考虑云服务
  • 从零开始构建AI歌唱系统:DiffSinger深度实践指南
  • HDiffPatch终极指南:高效文件增量同步的完整解决方案
  • Twitch视频下载神器:免费高速保存直播内容的完整方案
  • OCLP-Mod终极指南:如何让老旧Mac快速升级最新macOS系统
  • WubiUEFI 完全指南:Windows环境下的Ubuntu一键安装方案
  • FREE!ship Plus开源船舶设计软件终极指南:从入门到实战
  • Playnite终极游戏库管理解决方案:一站式整合所有平台游戏
  • CCS安装教程通俗解释:新手也能轻松安装
  • PlotSquared 终极土地管理插件完整使用指南
  • 彻底告别OneDrive:Windows系统深度清理终极指南
  • Sun-Panel:如何用Go语言打造高性能NAS导航面板的5个关键步骤
  • TikTok数据获取革命:5分钟掌握免认证内容采集技术
  • TS3AudioBot音乐机器人终极指南:从零搭建你的专属音乐助手
  • WEC-Sim终极教程:波浪能转换器仿真完整指南
  • Realtek R8125驱动完全指南:10分钟实现2.5G高速网络配置
  • ComfyUI高级回流控制完全指南:精准掌控图像生成效果
  • 跨平台Minecraft基岩版启动器:Linux与macOS玩家的终极解决方案
  • USB枚举过程深度剖析与实现
  • Artisan咖啡烘焙可视化工具:从入门到精通完整指南
  • ComfyUI高级回流控制:5步打造精准图像生成体验
  • 新手教程:理解二极管在AC-DC转换中的角色
  • ComfyUI Advanced Reflux Control 深度解析:重新定义图像生成控制边界
  • OBS Blade 直播控制终极指南:快速上手与核心功能详解
  • LeetDown实战指南:轻松实现A6/A7设备系统降级
  • TIDAL音乐下载新体验:tidal-dl-ng完全攻略
  • 终极视频修复指南:5分钟快速拯救损坏MP4/MOV文件的完整教程
  • 2025年宁波石化螺母供应商Top6精选推荐 - 2025年品牌推荐榜
  • OpenMV H7摄像头教程:物体识别手把手指导