.NET DeepSeek SDK Ater.DeepSeek.AspNetCore 库使用教程

Ater.DeepSeek.AspNetCore 是专为 .NET 开发者设计的 SDK,旨在简化与 DeepSeek AI 平台的集成,使开发者能够快速构建和部署基于自然语言处理的应用程序。

DeepSeek SDK for .NET 的出现,就像是为.NET 开发者打开了一扇通往人工智能世界的便捷之门 。它旨在极大地简化与 DeepSeek AI 平台的集成流程,让开发者无需花费大量时间和精力去研究复杂的 API 接口和通信协议,就能轻松地将 DeepSeek 的先进技术融入到自己的.NET 项目中。凭借这个 SDK,开发者能够快速构建和部署基于自然语言处理的应用程序,实现从简单的文本处理功能到复杂的智能聊天机器人、智能客服系统等应用的开发,为用户提供更加智能、便捷的交互体验。

Ater.DeepSeek.AspNetCore 功能特性

  • 列出模型:获取 DeepSeek 提供的所有可用模型。
  • 对话补全(包含流式):实现与 DeepSeek 的对话交互,支持实时流式响应。
  • FIM 实例(包含流式):支持 Fine-tuned Inference Model (FIM) 实例的调用,同样支持流式响应。
  • 查询余额:检查账户中的余额,确保有足够的资金进行 API 调用。
  • 支持调用本地模型:通过自定义 HttpClient 调用本地部署的 DeepSeek 模型。
  • 对 ASP.NET Core 的集成支持:提供了与 ASP.NET Core 的无缝集成,方便在 Web 应用中使用。

在 ASP.NET Core 中使用 DeepSeek

安装 NuGet 包:在项目中添加 Ater.DeepSeek.AspNetCore 包。

dotnet add package Ater.DeepSeek.AspNetCore

配置 DeepSeekClient:在 Program.cs 或 Startup.cs 中配置 DeepSeekClient。

using DeepSeek.AspNetCore;
using DeepSeek.Core;
using DeepSeek.Core.Models;
using Microsoft.AspNetCore.Mvc;

var builder = WebApplication.CreateBuilder(args);

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);
});

var app = builder.Build();

app.MapGet("/test", async ([FromServices] DeepSeekClient client) =>
{
    var res = await client.ChatAsync(new ChatRequest
    {
        Messages = new List<Message>
        {
            Message.NewUserMessage("Why dotnet is good?")
        },
        MaxTokens = 200
    }, CancellationToken.None);

    return res?.Choices.First().Message?.Content;
});

app.Run();

实现流式返回:在需要流式返回的场景下,可以实现如下:

app.MapGet("/chat", async (HttpContext context, [FromServices] DeepSeekClient client, CancellationToken token) =>
{
    context.Response.ContentType = "text/plain;charset=utf-8";
    try
    {
        var choices = client.ChatStreamAsync(new ChatRequest
        {
            Messages = new List<Message>
            {
                Message.NewUserMessage("Why dotnet is good?")
            },
            MaxTokens = 200
        }, token);

        if (choices != null)
        {
            await foreach (var choice in choices)
            {
                await context.Response.WriteAsync(choice.Delta!.Content);
            }
        }
    }
    catch (Exception ex)
    {
        await context.Response.WriteAsync("暂时无法提供服务" + ex.Message);
    }
    await context.Response.CompleteAsync();
});

其他集成方式

如果不使用 ASP.NET Core,还可以直接在控制台应用或其他 .NET 项目中使用 Ater.DeepSeek.Core 包。

安装 NuGet 包:添加 Ater.DeepSeek.Core 包。

dotnet add package Ater.DeepSeek.Core

实例化 DeepSeekClient:可以仅提供 API Key,或提供自定义的 HttpClient 和 API Key。

var client = new DeepSeekClient(apiKey);
// 或者
var httpClient = new HttpClient();
var client = new DeepSeekClient(httpClient, apiKey);

通过以上步骤,您可以在 .NET 项目中集成 DeepSeek 的自然语言处理功能,提升应用程序的智能化水平。

评论