Ater.DeepSeek.Core
1.0.1
dotnet add package Ater.DeepSeek.Core --version 1.0.1
NuGet\Install-Package Ater.DeepSeek.Core -Version 1.0.1
<PackageReference Include="Ater.DeepSeek.Core" Version="1.0.1" />
paket add Ater.DeepSeek.Core --version 1.0.1
#r "nuget: Ater.DeepSeek.Core, 1.0.1"
// Install Ater.DeepSeek.Core as a Cake Addin #addin nuget:?package=Ater.DeepSeek.Core&version=1.0.1 // Install Ater.DeepSeek.Core as a Cake Tool #tool nuget:?package=Ater.DeepSeek.Core&version=1.0.1
DeepSeekSDK-NET
DeepSeek API SDK specifically for .NET developers
π Features
- List models
- Dialogue completion
- Dialog completion (streaming processing)
Usage Requirements
Please go to official website, register and apply for DeepSeek's ApiKey
Supported .NET version: .NET8
[!TIP] Free to fork the repository to support other versions
Usage
Instantiate DeepSeekClient
Two methods are provided for instantiation:
public DeepSeekClient(string apiKey);
public DeepSeekClient(HttpClient http, string apiKey);
The first type only requires providing the 'apiKey' to create an instance;
The second method provides a HttpClient
parameter, which is suitable for maintaining the HttpClient
through the HttpClientFactory
and then instance it.
Calling method
Three asynchronous methods are provided:
Task<ModelResponse?> ListModelsAsync(CancellationToken cancellationToken);
Task<ChatResponse?> ChatAsync(ChatRequest request, CancellationToken cancellationToken);
Task<IAsyncEnumerable<Choice>?> ChatStreamAsync(ChatRequest request, CancellationToken cancellationToken)
List Models Sample
// Create an instance using the apiKey
var client = new DeepSeekClient(apiKey);
var modelResponse = await client.ListModelsAsync(new CancellationToken());
if (modelResponse is null)
{
Console.WriteLine(client.ErrorMsg);
return;
}
foreach (var model in modelResponse.Data)
{
Console.WriteLine(model);
}
Chat Examples
// Create an instance using the apiKey
var client = new DeepSeekClient(apiKey);
// Construct the request body
var request = new ChatRequest
{
Messages = [
Message.NewSystemMessage("You are a language translator"),
Message.NewUserMessage("Please translate 'They are scared! ' into English!")
],
// Specify the model
Model = Constant.Model.ChatModel
};
var chatResponse = await client.ChatAsync(request, new CancellationToken());
if (chatResponse is null)
{
Console.WriteLine(client.ErrorMsg);
}
Console.WriteLine(chatResponse?.Choices.First().Message?.Content);
Chat Examples (Stream)
// Create an instance using the apiKey
var client = new DeepSeekClient(apiKey);
// Construct the request body
var request = new ChatRequest
{
Messages = [
Message.NewSystemMessage("You are a language translator"),
Message.NewUserMessage("Please translate 'They are scared! ' into English!")
],
// Specify the model
Model = Constant.Model.ChatModel
};
var choices = await client.ChatStreamAsync(request, new CancellationToken());
if (choices is null)
{
Console.WriteLine(client.ErrorMsg);
return;
}
await foreach (var choice in choices)
{
Console.Write(choice.Delta?.Content);
}
Console.WriteLine();
[!TIP] You can also refer to the usage example in this repository
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
publish RC Version