C#测试WebApi项目调用DeepSeek
C#测试WebApi项目调用DeepSeek
·
对照参考文献3中的asp.net core实例,创建并测试在WebApi项目中调用DeepSeek服务,如下图所示,新建WebApi项目后,在Nuget包管理器中搜索并安装Ater.DeepSeek.AspNetCore包。
在program文件中注册DeepSeek服务(代码直接使用的参考文献3中的示例代码),然后在控制器类的构造函数中直接注入DeepSeekClient即可,如下面代码所示:
var apiKey = builder.Configuration["DeepSeekApiKey"];
builder.Services.AddDeepSeek(option =>
{
option.BaseAddress = new Uri("https://api.deepseek.com");
option.Timeout = TimeSpan.FromSeconds(300);
option.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + apiKey);
});
public class ChatController : ControllerBase
{
private DeepSeekClient _client;
private IConfiguration _configuration;
public ChatController(DeepSeekClient client,IConfiguration config)
{
_client = client;
_configuration = config;
}
}
控制器类中新增Chat、Completion函数,关于DeepSeek中Chat和Completion的区别请见上一篇文章。
[HttpGet]
public async Task<string> Chat(string question)
{
DeepSeek.Core.Models.Message msg = new DeepSeek.Core.Models.Message();
msg.Content = question;
ChatRequest request = new ChatRequest();
request.Messages.Add(msg);
request.Model = _configuration["DeepSeekModel"];
request.MaxTokens = 200;
var chatResponse = await _client.ChatAsync(request, new CancellationToken());
if (chatResponse is null)
{
return _client.ErrorMsg;
}
return chatResponse?.Choices.First().Message?.Content;
}
[HttpGet]
public async Task<string> Completion(string question)
{
DeepSeek.Core.Models.Message msg = new DeepSeek.Core.Models.Message();
msg.Content = question;
CompletionRequest request =new CompletionRequest { Prompt=question};
request.Model=_configuration["DeepSeekModel"];
request.MaxTokens = 200;
var chatResponse = await _client.CompletionsAsync(request, new CancellationToken());
if (chatResponse is null)
{
return _client.ErrorMsg;
}
return chatResponse?.Choices.First().Text;
}
最后是在浏览器中通过swagger调用这两个函数的效果截图,后面准备写个前端页面调用WebApi,最好是在网上能找到示例代码,做一个类似对话框的页面。
[1]微信公众号“技术老小子”,《C# 使用DeepSeek应用的完整指南》
[2]https://api-docs.deepseek.com/zh-cn/
[3]https://github.com/niltor/DeepSeekSDK-NET
[4]https://platform.deepseek.com/
更多推荐
所有评论(0)