快速上手——.Net封裝使用DeekSeek-V3 模型
新年伊始,萬象更新!隨著人工智能技術的飛速發展,AI在各個領域的應用越來越廣泛。無論是自然語言處理、圖像識別,還是智能推薦系統,AI都在改變著我們的生活和工作方式。在這個新春佳節,AI技術的火爆程度更是達到了一個新的高度,特別是DeepSeek的耀眼成就,更是讓納斯達克眾多科技股崩盤,許多企業和開發者都在積極探索如何將AI技術應用到自己的產品和服務中,以提升用戶體驗和業務效率。
趁著這股東風,我們就祭出.net 技術,來場AI集成秀,也祝大家在新的一年里,各項技術順利推進,收獲滿滿!
1.DeepSeek API開發集成
DeepSeek是一家專注于自然語言處理(NLP)和人工智能技術的公司,提供了強大的API接口,幫助開發者快速構建智能應用。DeepSeek的API與OpenAI的API兼容性良好,這意味著如果你之前使用過OpenAI的API,可以很容易地遷移到DeepSeek的平臺上。
DeepSeek的API提供了多種功能,包括文本生成、文本分類、情感分析、問答系統等。與OpenAI類似,DeepSeek的API也支持多種編程語言,包括Python、JavaScript、Java、C#等。這使得開發者可以根據自己的技術棧選擇合適的語言進行開發。
這里我們使用最熟悉的語言 .net, 來訓練我們的AI小助手。
2. 一個簡單的例子
在本節中,我們將使用.NET 9編寫一個簡單的示例,展示如何調用DeepSeek的API進行文本生成。我們將創建一個控制臺應用程序,通過調用DeepSeek的API生成一段新年祝福語。
2.1 創建項目
首先,打開Visual Studio 2022,創建一個新的控制臺應用程序項目。選擇.NET 9作為目標框架,并命名為DeepSeekExample。
2.2 安裝必要的NuGet包
為了能夠方便地調用DeepSeek的API,我們需要安裝System.Net.Http.Json和OpenAI 等NuGet包??梢酝ㄟ^NuGet包管理器控制臺運行以下命令來安裝:
Install-Package System.Net.Http.Json
Install-Package Microsoft.Extensions.Configuration
Install-Package Microsoft.Extensions.Configuration.Abstractions
Install-Package Microsoft.Extensions.Configuration.Binder
Install-Package Microsoft.Extensions.Configuration.EnvironmentVariables
Install-Package Microsoft.Extensions.Configuration.UserSecrets
Install-Package OpenAI
2.3 編寫代碼
接下來,我們編寫代碼來調用DeepSeek的API。首先,在Program.cs文件中添加以下代碼:
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel;
using System.ClientModel.Primitives;
internal class Program
{
static void Main(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.AddUserSecrets<Program>()
.Build();
var key = configuration.GetValue<string>("DeepSeek:ApiKey");
ApiKeyCredential cred = new ApiKeyCredential(key);
// DeepSeek-V3
ChatClient client = new ChatClient("deepseek-chat", cred,new OpenAIClientOptions
{
Endpoint = new Uri("https://api.deepseek.com"),
UserAgentApplicationId = "webmote",
ProjectId = "deepseek-test",
RetryPolicy = ClientRetryPolicy.Default
});
List<ChatMessage> messages = new List<ChatMessage>()
{
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("Hello, Nice to meet you.")
};
var result = client.CompleteChat(messages);
if (result?.Value != null)
{
Console.WriteLine(result.Value.Content[0].Text);
}
}
}
- ApiKey: 這是你的DeepSeek API密鑰,配置為 DeepSeek:ApiKey,你可以使用環境變量添加,也可以用管理機密信息添加,這里大力推薦使用機密信息進行安全管理, 這里我們可以利用VS的幫助工具建立,如下圖所示。
圖片
- 按照打開的secret.json,輸入你的api key:
圖片
- AI模型,這里使用最新的AI模型,DeepSeek-V3模型,字符串為: "deepseek-chat"
- Chat Message: 使用system賦予Ai一個角色,然后,我們進行提問。
List<ChatMessage> messages = new List<ChatMessage>()
{
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("Hello, Nice to meet you.")
};
3. 輸出結果
確認你的api Key是正確的,進行訪問連接,DeepSeek給予我們一個回答:
Hello! Nice to meet you too!
How can I assist you today?
如果你也能獲得答案,那么恭喜你!你已經成功的連接到DeepSeek API。
后續,你可以開始你的激動人心的AI旅程了!
4. 其他方案
Github上也有其他人封裝的net類庫,例如 Fitomad.DeepSeek, 使用起來也很流暢,編程體驗更好,大家如果沒有openai使用切換的話,可以下載這個庫看看。
var deepSeekSettings = new DeepSeekSettingsBuilder()
.WithApiKey(_apiKey)
.Build();
var services = new ServiceCollection();
services.AddDeepSeekHttpClient(settings: aiSettings);
...
public class GameController: ControllerBase
{
private IDeepSeekClient _deepSeekClient;
public GameController(IDeepSeekClient deepSeekClient)
{
_deepSeekClient = deepSeekClient;
}
...
ChatRequest request = new ChatRequestBuilder()
.WithModel(ChatModelType.DeepSeekChat)
.WithSystemMessage("Eres un profesor universitario de Astrofísica.")
.WithUserMessage("?En qué consiste la Constante Cosmológica de Einstein?")
.WithTemperatute(-3.0)
.Build();
var resp = await _client.ChatCompletion.CreateChatAsync(request)
}
5.DeepSeek的API收費模式
DeepSeek的API收費模式與OpenAI類似,采用按使用量計費的方式。具體來說,DeepSeek的API收費基于以下幾個因素:
請求次數: 每次調用API都會計入請求次數,不同的API端點可能有不同的計費標準。
令牌數: 生成的文本長度(以令牌為單位)也會影響費用。通常,生成的文本越長,費用越高。
API套餐: DeepSeek提供了多種API套餐,開發者可以根據自己的需求選擇合適的套餐。套餐通常包括一定的免費額度,超出部分按量計費。
DeepSeek的API收費模式靈活,適合不同規模的開發者和企業。對于小型項目或個人開發者,可以選擇按需付費的模式;對于大型企業或高頻使用的項目,可以選擇預付費套餐以獲得更優惠的價格。
圖片
大家可以按照需要,進行充值消費,我先來50看看。
圖片
6. 總結
通過本文,我們詳細介紹了如何使用.NET 9 調用 DeepSeek 的API進行文本生成。我們從創建項目、安裝必要的NuGet包,到編寫代碼、運行實例,一步步展示了整個過程。此外,我們還介紹了DeepSeek的API收費模式,幫助開發者更好地了解如何控制成本。