.NET AI如何從0開始?你會嗎?
你是否在思考如何利用AI為您公司的產品增加智能方向的業務擴展?
或者你是否有思考過怎么去利用AI減少部分工作量?
如果你有類似于上面的問題,想要學習AI,并且您是一名.NET開發工程師,或您是一名棄暗投明的Java轉.NET AI方向的工程師,那么你可以從這一篇開始,使用.NET semantic-kernel進行從0開始的入門基礎教程,并且在網站免費訪問,當然如果您沒有AI,那么也可以在 http://api.token-ai.cn/網站注冊,然后網站提供了hunyuan-lite永久免費的模型供您消息使用,下面,我們將要從控制臺開始我們的入門教程。
準備
實現我們需要確認您是一名有過.NET經驗的開發者,您對于.NET至少是一名初級工程師;
好,下面我們將打開我們常用的編程工具Visual Studio 2022
來,跟著我們一步一步來
創建項目
- 點擊創建新項目
圖片
- 搜索控制臺應用,然后點擊下一步。
圖片
- 命名1_Semantic_Kernel_Chat,然后點擊下一步,
圖片
這里的框架選擇.NET 8.0,然后其他的默認即可,然后點擊創建,我們的項目就創建完成,然后緊跟著我們繼續。
圖片
圖片
安裝依賴
在上面的步驟我們創建好了一個控制臺,然后接下來我們需要對這個控制臺項目安裝一些需要用到的依賴包。
- 右鍵項目1_Semantic_Kernel_Chat,然后點擊管理 NuGet程序包(N)。
圖片
- 然后搜索Semantic.Kernel,找到Microsoft.SemanticKernel,點擊安裝,然后關閉這個頁面。
圖片
注冊免費的大模型
在上面的教程當中,我們安裝了Microsoft.SemanticKernel依賴包,現在我們需要在一個提供免費AI大模型的網站注冊,
- 打開https://api.token-ai.cn/,如果您有Github賬號的話直接點擊下面的Github圖標即可登錄,如果沒有則點擊注冊賬號注冊一個賬號,然后我們登錄系統當中,
圖片
- 創建令牌,點擊菜單中的圖標鑰匙。
圖片
- 在這里系統默認提供了一個Token,點擊復制Key即可,接下來下面會用到這個。
圖片
添加Chat對話示例
- 由于SK默認的限制并沒有提供直接修改地址的接口,所以我們需要自定義HttpClientHandler,下面我們創建一個OpenAIHttpClientHandler.cs,然后提供以下實現
public class OpenAIHttpClientHandler : HttpClientHandler
{
private readonly string _uri;
public OpenAIHttpClientHandler(string uri) => _uri = uri.TrimEnd('/');
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
CancellationToken cancellationToken)
{
UriBuilder uriBuilder;
if (request.RequestUri?.LocalPath == "/v1/chat/completions")
{
uriBuilder = new UriBuilder(_uri + "/v1/chat/completions");
request.RequestUri = uriBuilder.Uri;
}
else if (request.RequestUri?.LocalPath == "/v1/embeddings")
{
uriBuilder = new UriBuilder(_uri + "/v1/embeddings");
request.RequestUri = uriBuilder.Uri;
}
return await base.SendAsync(request, cancellationToken);
}
}
- 打開我們的Program.cs添加具體代碼,在這里我們使用了hunyuan-lite模型,這個是https://api.token-ai.cn/提供的免費模型,并且不限制次數(5 QPS)。
using _1_Semantic_Kernel_Chat;
using Microsoft.SemanticKernel;
var kernel = Kernel.CreateBuilder()
.AddOpenAIChatCompletion(
modelId: "hunyuan-lite", // 請注意hunyuan-lite模型是免費提供的。
apiKey: "這里填寫在https://api.token-ai.cn/創建的令牌",
httpClient: new HttpClient(new OpenAIHttpClientHandler("https://api.token-ai.cn/")))
.Build();
await foreach (var item in kernel.InvokePromptStreamingAsync("您好,我是TokenAI。"))
{
Console.Write(item.ToString());
};
- 執行項目,然后會輸出這個模型的回復,當你寫到這里的時候那么您已經跨入了第一步,當然不要太高興了,下面將會迎來更難的挑戰。
圖片
總結
本文主要為.NET開發者提供了如何從零開始使用.NET的semantic-kernel進行AI開發的教程。首先,作者詳細介紹了如何創建一個.NET項目,并安裝需要的Microsoft.SemanticKernel依賴包。接著,作者引導讀者在提供免費AI大模型的網站上注冊,并獲取API令牌。然后,作者提供了一個自定義HttpClientHandler的示例,并展示了如何在Program.cs中添加具體代碼來使用hunyuan-lite模型。最后,作者演示了項目的執行結果,并提醒讀者接下來的學習將會更有挑戰性。