微信公众号“技术老小子”的文章《C# 使用DeepSeek应用的完整指南》介绍了在.net的Winform、asp.net core中使用DeepSeek的基本用法,同时文章中使用的Ater.DeepSeek.Core包(参考文献2),其GitHub官网中也提供了使用示例(控制台及asp.net core),本文学习并测试在Winform中使用DeepSeek的基本用法。
  DeepSeek网页版及手机版可以免费使用,但要是通过程序调用DeepSeek API的话,则需要在DeepSeek官网平台中充值并创建API key,网上有些文章的截图中能看到有赠送余额,不过本人注册后登录API开发平台什么都没有,就充了十块方便测试。在下图所示页面创建API key,保存该值,后续程序调用时会用到该key,同时页面中也会提醒不要与他人共享API key,或将其暴露在浏览器或其他客户端代码中,一经发现则会自动禁用。

在这里插入图片描述
  VS2022中创建Winform项目,在Nuget包管理器中搜索并安装Ater.DeepSeek.Core包。

在这里插入图片描述
  关键类为DeepSeekClient,该类中提供如下6个函数,其中ListModelsAsync函数用于获取可用模型,目前DeepSeek官网中就两种模型:deepseek-char和deepseek-reasons,这两种模型的区别如下面两图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  以Chat、Complete开头的函数都用于与模型对话,这两者的区别如下图所示。以Chat函数为例,ChatAsync函数输入问题,一次性返回对话结果,而ChatStreamAsync函数则分多次返回对话结果,具体用法详见参考文献3中的使用示例。
在这里插入图片描述
  测试代码比较简单,如下所示:

DeepSeek.Core.Models.Message msg = new DeepSeek.Core.Models.Message();
msg.Content = txtChat.Text;

ChatRequest request = new ChatRequest();
request.Messages.Add(msg);
request.Model = m_models[comboBox1.SelectedIndex].Id;
   
var chatResponse = await m_client.ChatAsync(request, new CancellationToken());
if (chatResponse != null)
{
    txtResult.Text=chatResponse?.Choices.First().Message?.Content;
}

  最后是程序运行效果,选择不同的模型返回的结果页不尽相同,如下图所示:
在这里插入图片描述
在这里插入图片描述

参考文献:
[1]微信公众号“技术老小子”,《C# 使用DeepSeek应用的完整指南》
[2]https://api-docs.deepseek.com/zh-cn/
[3]https://github.com/niltor/DeepSeekSDK-NET
[4]https://platform.deepseek.com/

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐