微软官方Microsoft.Extensions.AI库使用示例
2024-12-10
21
Microsoft.Extensions.AI 库介绍
Microsoft.Extensions.AI 是一个扩展库,用于在 .NET 应用程序中轻松集成人工智能(AI)服务,例如 OpenAI、Azure OpenAI 和其他支持文本生成或语言模型的 API。通过与 Microsoft.Extensions.DependencyInjection 框架的无缝结合,开发者可以通过配置和依赖注入的方式使用 AI 服务,大幅简化开发流程并提升代码的可维护性。
Microsoft.Extensions.AI库的特点与功能
与依赖注入框架集成:利用 ASP.NET Core 或其他基于 Microsoft.Extensions 的框架,提供模块化的 AI 服务注入支持。 灵活的配置方式:支持通过配置文件或代码直接指定 AI 服务提供商、API 密钥等信息。 多服务支持:可以同时配置多个 AI 服务(如 OpenAI 和 Azure OpenAI)。 安全性与易用性:通过内置的 HttpClient 工厂,安全管理 API 调用和依赖。Microsoft.Extensions.AI库 用法示例
1. 安装 NuGet 包
dotnet add package Microsoft.Extensions.AI
2. 配置 AI 服务
在 Program.cs 中,通过依赖注入添加 AI 服务:
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.AI.OpenAI;
// 在 Program.cs 中
var builder = WebApplication.CreateBuilder(args);
// 添加 OpenAI 服务
builder.Services.AddOpenAIClient(options =>
{
options.ApiKey = "your-openai-api-key"; // 替换为你的 OpenAI API 密钥
options.BaseAddress = new Uri("https://api.openai.com/v1/"); // OpenAI API 地址
});
var app = builder.Build();
app.MapGet("/", async (IOpenAIClient openAIClient) =>
{
var prompt = "Tell me a joke about programming.";
var response = await openAIClient.GenerateTextAsync(prompt);
return response.Text;
});
app.Run();
3. 创建 AI 服务接口并调用
你可以定义接口以封装 AI 服务的调用逻辑:
定义服务接口
public interface IAIService
{
Task<string> GetCompletionAsync(string prompt);
}
实现接口
using Microsoft.Extensions.AI.OpenAI;
public class AIService : IAIService
{
private readonly IOpenAIClient _openAIClient;
public AIService(IOpenAIClient openAIClient)
{
_openAIClient = openAIClient;
}
public async Task<string> GetCompletionAsync(string prompt)
{
var response = await _openAIClient.GenerateTextAsync(prompt);
return response.Text;
}
}
注册服务并使用
builder.Services.AddScoped<IAIService, AIService>();
app.MapPost("/generate", async (IAIService aiService, [FromBody] string prompt) =>
{
var result = await aiService.GetCompletionAsync(prompt);
return Results.Ok(result);
});
示例 API 调用
请求示例:
curl -X POST http://localhost:5000/generate -H "Content-Type: application/json" -d "\"What are the key benefits of dependency injection?\""
响应示例:
{
"response": "Dependency injection helps in decoupling dependencies, promoting testability, and making the application more modular and maintainable."
}
总结
Microsoft.Extensions.AI 通过简洁的配置和高度模块化的架构,使得在 .NET 中集成 AI 服务变得高效和直观。无论是构建聊天机器人、自动化工具还是其他基于生成式 AI 的解决方案,该库都提供了出色的支持。
更新于:8天前赞一波!2
相关文章
- 微软于发布了.NET 9 Release Candidate 2 提高整体质量
- 微软发布VS Code AI工具包,集成多模型AI能力
- 微软 .NET 9 正式发布!专为云原生和生成式 AI 应用设计
- 微软MVP认证条件
- 480亿元!微软正式收购开源代码共享社区GitHub
- 微软发布ChatGPT-4 Office365 Copilot全家桶 功能演示
- 微软将ChatGPT技术引入Office365 Word、Excel和Outlook
- 微软 .NET最新语言战略 主推C#和F#
- 微软Word预览版可分享文档至Kindle阅读
- 微软宣布2024年8月31日停止支持Visual Studio Mac版
- 微软更新windows画图工具 支持一键抠图
- 微软发布AzureLinux操作系统
- 微软开源的数据分析任务处理系统Microsoft/TaskWeaver使用教程
- 微软开源缓存存储系统Garnet平替Redis
- 微软推出Cocreator AI机器人可以在Paint中生成图像
- 微软宣布弃用VBScript脚本语言
- 微软Copilot整合Code Interpreter功能
- 微软宣布Copilot集成GPT-4 Turbo和代码解释器
- 微软终止对Windows Mixed Reality混合现实的支持
- 微软宣布PC键盘将新增Copilot AI键
文章评论
评论问答