找回密码
 立即注册
首页 业界区 安全 Microsoft Agent Framework 与 DeepSeek 对接

Microsoft Agent Framework 与 DeepSeek 对接

打阗渖 4 天前
准备工作

先使用手机号在 https://platform.deepseek.com 上注册账号
最后进入充值页面充值。如果没有充值,则后续 API 调用会返回 402 错误
最后进入 https://platform.deepseek.com/api_keys 创建 API key 且复制出来,后续步骤将会用到
安装库

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

  • Microsoft.Agents.AI.OpenAI
安装之后的 csproj 项目文件内容大概如下
  1. <Project Sdk="Microsoft.NET.Sdk">
  2.   <PropertyGroup>
  3.     <OutputType>Exe</OutputType>
  4.     <TargetFramework>net10.0</TargetFramework>
  5.     <ImplicitUsings>enable</ImplicitUsings>
  6.     <Nullable>enable</Nullable>
  7.   </PropertyGroup>
  8.   <ItemGroup>
  9.     <PackageReference Include="Microsoft.Agents.AI.OpenAI" Version="1.0.0-preview.251219.1" />
  10.   </ItemGroup>
  11. </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 类型对接
对接代码如下
  1. var openAiClient = new OpenAIClient(new ApiKeyCredential(key), new OpenAIClientOptions()
  2. {
  3.     Endpoint = new Uri("https://api.deepseek.com/v1")
  4. });
复制代码
以上代码的 key 就是前面步骤保存的 API key 内容。为了安全起见,不应该将 API key 写入到代码里面,我就简单地放到 C:\lindexi\Work\deepseek.txt 文件里,随后用 File.ReadAllText 进行读取,其代码如下
  1. var keyFile = @"C:\lindexi\Work\deepseek.txt";var key = File.ReadAllText(keyFile);var openAiClient = new OpenAIClient(new ApiKeyCredential(key), new OpenAIClientOptions()
  2. {
  3.     Endpoint = new Uri("https://api.deepseek.com/v1")
  4. });
复制代码
根据 https://api-docs.deepseek.com/zh-cn/quick_start/pricing 文档可以知道,现在 DeepSeek 提供了这些模型可以被调用:

  • deepseek-chat: DeepSeek-V3.2 (非思考模式)
  • deepseek-reasoner: DeepSeek-V3.2(思考模式)
咱这里就随意选了 deepseek-chat 模型,代码如下
  1. var chatClient = openAiClient.GetChatClient("deepseek-chat");
复制代码
拿到 ChatClient 之后,就可以通过 CreateAIAgent 扩展方法创建 ChatClientAgent 对象了,代码如下
  1. ChatClient chatClient = openAiClient.GetChatClient("deepseek-chat");
  2. ChatClientAgent aiAgent = chatClient.CreateAIAgent();
复制代码
现在拿到的 ChatClientAgent 对象就可以直接开始跑了,如下面的测试例子
  1. AgentRunResponse runResponse = await aiAgent.RunAsync("告诉我一个关于海盗的笑话");
  2. Console.WriteLine(runResponse);
复制代码
我跑了一下,可以在控制台看到如下输出信息,看起来 DeepSeek 的笑话还是很好笑的
  1. 好的,这里有一个经典的海盗笑话:
  2. ---
  3. 一个海盗走进酒吧,酒保看到他右眼戴着眼罩,左手是铁钩,右腿是木棍做的假肢,就问:“哇,你这身行头真厉害!是怎么弄成这样的?”
  4. 海盗说:“啊,这眼罩是因为有一天海鸥屎掉进我眼睛,我就瞎了。”
  5. 酒保一愣:“海鸥屎能让人瞎?”
  6. 海盗:“呃……其实是我刚戴上眼罩第一天,不太习惯,用铁钩手揉眼睛时戳瞎的。”
复制代码
如果发现在调用的时候提示的 HTTP 错误是 402 则证明账户上已经没钱了,或还没进行充值。详细错误信息请参阅 https://api-docs.deepseek.com/zh-cn/quick_start/error_codes
本文代码放在 github 和 gitee 上,可以使用如下命令行拉取代码。我整个代码仓库比较庞大,使用以下命令行可以进行部分拉取,拉取速度比较快
先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码
  1. git init
  2. git remote add origin https://gitee.com/lindexi/lindexi_gd.git
  3. git pull origin cb19960c943988735924144830886c76f20adae9
复制代码
以上使用的是国内的 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码,将 gitee 源换成 github 源进行拉取代码。如果依然拉取不到代码,可以发邮件向我要代码
  1. git remote remove origin
  2. git remote add origin https://github.com/lindexi/lindexi_gd.git
  3. git pull origin cb19960c943988735924144830886c76f20adae9
复制代码
获取代码之后,进入 SemanticKernelSamples/BewukobuheQinalaykodall 文件夹,即可获取到源代码
更多技术博客,请参阅 博客导航

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册