如何使用Microsoft.Extensions.AI簡化.NET中的AI集成
項目介紹
Microsoft.Extensions.AI是一個創(chuàng)新的 .NET 庫,它為平臺開發(fā)人員提供了一個內(nèi)聚的 C# 抽象層,簡化了與大型語言模型 (LLMs) 和嵌入等 AI 服務的交互。它支持通過一組一致且標準化的 API 和約定將 AI 功能無縫集成到 .NET 應用程序中。
注意:目前Microsoft.Extensions.AI
還是處于預覽版,預計該庫將在2024年11月的.NET 9版本之前都是保持預覽狀態(tài)(需要收集反饋意見),耐心等待微軟官方發(fā)布正式版!
項目特色
- 統(tǒng)一的API:提供一組一致的 API 和約定,用于將 AI 服務集成到 .NET 應用程序中。
- 靈活性:允許 .NET 庫作者使用 AI 服務,而無需綁定到特定提供商,使其適用于任何提供商。
- 易用性:使 .NET 開發(fā)人員能夠使用相同的底層抽象試驗不同的包,并在整個應用程序中維護單個 API。
- 組件化:簡化新功能的添加,并促進應用程序的組件化和測試。
項目作用
Microsoft.Extensions.AI類庫不僅簡化了AI功能的集成,還促進了.NET生態(tài)系統(tǒng)的創(chuàng)新。它使得開發(fā)者可以更加專注于應用程序的業(yè)務邏輯和功能實現(xiàn),而不必花費大量時間和精力在AI服務的集成和調(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服務的常見抽象
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)秀項目和框架精選中,關注優(yōu)秀項目和框架精選能讓你及時了解C#、.NET和.NET Core領域的最新動態(tài)和最佳實踐,提高開發(fā)工作效率和質量。坑已挖,歡迎大家踴躍提交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
到此這篇關于使用Microsoft.Extensions.AI簡化.NET中的AI集成的文章就介紹到這了,更多相關Microsoft.Extensions.AI AI集成內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
asp.net GridView和DataList實現(xiàn)鼠標移到行行變色
在設計頁面添加了DataList控件后,我在使用DataList綁定數(shù)據(jù)時是通過單元格來綁定的,因此鼠標效果就在源代碼頁面去實現(xiàn)2009-02-02網(wǎng)頁(aspx)與用戶控件(ascx)交互邏輯處理實現(xiàn)
為了以后好維護,把幾個頁面(ASPX)相同的部分抽取放在一個用戶控件(ASCX)上,現(xiàn)在把邏輯分享下,感興趣的各位可以參考下哈2013-03-03asp.net 獲取TreeView中第一個選中的節(jié)點
今天做的項目中有一個要獲取TreeView中第一個選中的節(jié)點,當然子節(jié)點己包含checkbox以前做過,用的時候又不知道怎么做了,花了點時間又寫了一下,記錄下來,以備下次用.2010-03-03