如何使用Microsoft.Extensions.AI簡化.NET中的AI集成
項(xiàng)目介紹
Microsoft.Extensions.AI是一個(gè)創(chuàng)新的 .NET 庫,它為平臺(tái)開發(fā)人員提供了一個(gè)內(nèi)聚的 C# 抽象層,簡化了與大型語言模型 (LLMs) 和嵌入等 AI 服務(wù)的交互。它支持通過一組一致且標(biāo)準(zhǔn)化的 API 和約定將 AI 功能無縫集成到 .NET 應(yīng)用程序中。
注意:目前Microsoft.Extensions.AI還是處于預(yù)覽版,預(yù)計(jì)該庫將在2024年11月的.NET 9版本之前都是保持預(yù)覽狀態(tài)(需要收集反饋意見),耐心等待微軟官方發(fā)布正式版!

項(xiàng)目特色
- 統(tǒng)一的API:提供一組一致的 API 和約定,用于將 AI 服務(wù)集成到 .NET 應(yīng)用程序中。
- 靈活性:允許 .NET 庫作者使用 AI 服務(wù),而無需綁定到特定提供商,使其適用于任何提供商。
- 易用性:使 .NET 開發(fā)人員能夠使用相同的底層抽象試驗(yàn)不同的包,并在整個(gè)應(yīng)用程序中維護(hù)單個(gè) API。
- 組件化:簡化新功能的添加,并促進(jìn)應(yīng)用程序的組件化和測試。
項(xiàng)目作用
Microsoft.Extensions.AI類庫不僅簡化了AI功能的集成,還促進(jìn)了.NET生態(tài)系統(tǒng)的創(chuàng)新。它使得開發(fā)者可以更加專注于應(yīng)用程序的業(yè)務(wù)邏輯和功能實(shí)現(xiàn),而不必花費(fèi)大量時(shí)間和精力在AI服務(wù)的集成和調(diào)試上。
項(xiàng)目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 接口允許使用語言模型,無論是遠(yuǎn)程托管還是本地運(yùn)行。任何提供 AI 客戶端的 .NET 包都可以實(shí)現(xiàn)此接口,從而實(shí)現(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
項(xiàng)目源碼地址
更多項(xiàng)目實(shí)用功能和特性歡迎前往項(xiàng)目開源地址查看??,別忘了給項(xiàng)目一個(gè)Star支持??。
- 開源地址:https://github.com/dotnet/extensions
優(yōu)秀項(xiàng)目和框架精選
該項(xiàng)目已收錄到C#/.NET/.NET Core優(yōu)秀項(xiàng)目和框架精選中,關(guān)注優(yōu)秀項(xiàng)目和框架精選能讓你及時(shí)了解C#、.NET和.NET Core領(lǐng)域的最新動(dòng)態(tài)和最佳實(shí)踐,提高開發(fā)工作效率和質(zhì)量??右淹?,歡迎大家踴躍提交PR推薦或自薦(讓優(yōu)秀的項(xiàng)目和框架不被埋沒??)。
- 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 簡單驗(yàn)證碼驗(yàn)證實(shí)現(xiàn)代碼
網(wǎng)站開發(fā)一般登錄注冊的時(shí)候都要用到了 所以寫下來給大家參考參考2009-09-09
C#后臺(tái)調(diào)用前臺(tái)javascript的五種方法小結(jié)
于項(xiàng)目需要,用到其他項(xiàng)目組用VC開發(fā)的組件,在web后臺(tái)代碼無法訪問這個(gè)組件,所以只好通過后臺(tái)調(diào)用前臺(tái)的javascript,從而操作這個(gè)組件。2010-12-12
ASP.NET Core WebAPI實(shí)現(xiàn)本地化(單資源文件)
這篇文章主要介紹了ASP.NET Core WebAPI實(shí)現(xiàn)本地化(單資源文件),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
.Net動(dòng)態(tài)生成controller遇到的坑
這篇文章主要介紹了dotnet動(dòng)態(tài)生成controller的問題,文中給大家介紹了動(dòng)態(tài)新建type的方案,通過多種解決方案給大家程度剖析,需要的朋友可以參考下2022-03-03
asp.net簡單實(shí)現(xiàn)單點(diǎn)登錄(SSO)的方法
這篇文章主要介紹了asp.net簡單實(shí)現(xiàn)單點(diǎn)登錄(SSO)的方法,結(jié)合簡單實(shí)例形式較為詳細(xì)的分析了單點(diǎn)登錄的原理與asp.net的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-12-12
AspNetPager分頁控件UrlRewritePattern參數(shù)設(shè)置的重寫代碼
AspNetPager分頁控件UrlRewritePattern參數(shù)設(shè)置的重寫代碼,需要的朋友可以參考一下2013-02-02

