如何使用Microsoft.Extensions.AI簡化.NET中的AI集成
項目介紹
Microsoft.Extensions.AI是一個創(chuàng)新的 .NET 庫,它為平臺開發(fā)人員提供了一個內(nèi)聚的 C# 抽象層,簡化了與大型語言模型 (LLMs) 和嵌入等 AI 服務(wù)的交互。它支持通過一組一致且標(biāo)準化的 API 和約定將 AI 功能無縫集成到 .NET 應(yīng)用程序中。
注意:目前Microsoft.Extensions.AI
還是處于預(yù)覽版,預(yù)計該庫將在2024年11月的.NET 9版本之前都是保持預(yù)覽狀態(tài)(需要收集反饋意見),耐心等待微軟官方發(fā)布正式版!
項目特色
- 統(tǒng)一的API:提供一組一致的 API 和約定,用于將 AI 服務(wù)集成到 .NET 應(yīng)用程序中。
- 靈活性:允許 .NET 庫作者使用 AI 服務(wù),而無需綁定到特定提供商,使其適用于任何提供商。
- 易用性:使 .NET 開發(fā)人員能夠使用相同的底層抽象試驗不同的包,并在整個應(yīng)用程序中維護單個 API。
- 組件化:簡化新功能的添加,并促進應(yīng)用程序的組件化和測試。
項目作用
Microsoft.Extensions.AI類庫不僅簡化了AI功能的集成,還促進了.NET生態(tài)系統(tǒng)的創(chuàng)新。它使得開發(fā)者可以更加專注于應(yīng)用程序的業(yè)務(wù)邏輯和功能實現(xiàn),而不必花費大量時間和精力在AI服務(wù)的集成和調(diào)試上。
項目NuGet包
https://www.nuget.org/packages/Microsoft.Extensions.AI
命令安裝:
dotnet add package Microsoft.Extensions.AI --version 9.0.0-preview.9.24556.5
AI服務(wù)的常見抽象
IChatClient 接口允許使用語言模型,無論是遠程托管還是本地運行。任何提供 AI 客戶端的 .NET 包都可以實現(xiàn)此接口,從而實現(xiàn)與正在使用的 .NET 代碼的無縫集成。
public interface IChatClient : IDisposable { Task<ChatCompletion> CompleteAsync(...); IAsyncEnumerable<StreamingChatCompletionUpdate> CompleteStreamingAsync(...); ChatClientMetadata Metadata { get; } TService? GetService<TService>(object? key = null) where TService : class; }
OpenAI
using OpenAI; using Microsoft.Extensions.AI; IChatClient client = new OpenAIClient(Environment.GetEnvironmentVariable("OPENAI_API_KEY")) .AsChatClient(modelId: "gpt-4o-mini"); var response = await client.CompleteAsync("C#是什么?"); Console.WriteLine(response.Message);
Azure OpenAI
using Azure.AI.OpenAI; using Azure.Identity; using Microsoft.Extensions.AI; IChatClient client = new AzureOpenAIClient( new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")), new DefaultAzureCredential()) .AsChatClient(modelId: "gpt-4o-mini"); var response = await client.CompleteAsync("C#是什么?"); Console.WriteLine(response.Message);
參考文章
https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview
項目源碼地址
更多項目實用功能和特性歡迎前往項目開源地址查看??,別忘了給項目一個Star支持??。
- 開源地址:https://github.com/dotnet/extensions
優(yōu)秀項目和框架精選
該項目已收錄到C#/.NET/.NET Core優(yōu)秀項目和框架精選中,關(guān)注優(yōu)秀項目和框架精選能讓你及時了解C#、.NET和.NET Core領(lǐng)域的最新動態(tài)和最佳實踐,提高開發(fā)工作效率和質(zhì)量??右淹?,歡迎大家踴躍提交PR推薦或自薦(讓優(yōu)秀的項目和框架不被埋沒??)。
- GitHub開源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
- Gitee開源地址:https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
到此這篇關(guān)于使用Microsoft.Extensions.AI簡化.NET中的AI集成的文章就介紹到這了,更多相關(guān)Microsoft.Extensions.AI AI集成內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
asp.net GridView和DataList實現(xiàn)鼠標(biāo)移到行行變色
在設(shè)計頁面添加了DataList控件后,我在使用DataList綁定數(shù)據(jù)時是通過單元格來綁定的,因此鼠標(biāo)效果就在源代碼頁面去實現(xiàn)2009-02-02網(wǎng)頁(aspx)與用戶控件(ascx)交互邏輯處理實現(xiàn)
為了以后好維護,把幾個頁面(ASPX)相同的部分抽取放在一個用戶控件(ASCX)上,現(xiàn)在把邏輯分享下,感興趣的各位可以參考下哈2013-03-03推薦8項提高 ASP.NET Web API 性能的技術(shù)
ASP.NET Web API 是非常棒的技術(shù)。編寫 Web API 十分容易,以致于很多開發(fā)者沒有在應(yīng)用程序結(jié)構(gòu)設(shè)計上花時間來獲得很好的執(zhí)行性能。2014-08-08asp.net 獲取TreeView中第一個選中的節(jié)點
今天做的項目中有一個要獲取TreeView中第一個選中的節(jié)點,當(dāng)然子節(jié)點己包含checkbox以前做過,用的時候又不知道怎么做了,花了點時間又寫了一下,記錄下來,以備下次用.2010-03-03asp.net(C#)中上傳大文件的幾中常見應(yīng)用方法
最近博客需要做一個文件上下載功能,我從網(wǎng)上找了點資料,整理了下希望對大家有幫助!2008-11-11