SuperAPI AI 工具集

dotnet-ai

智能体与模型

查看项目

更新于 10-16 03:57

技能介绍

用途

dotnet-ai 是一份 .NET 平台上的 AI 集成开发资料,目标是帮助开发者在 .NET 应用中引入并组织 AI 能力,包括聊天补全、流式输出、函数调用、嵌入生成、向量搜索、MCP 服务端与客户端,以及基于 Semantic Kernel 的编排。资料同时给出相关官方文档与学习入口的链接。

主要能力

  1. Microsoft.Extensions.AI(统一 AI 抽象):资料称其为在 .NET 应用中集成 AI 的推荐方式,提供供应商无关的抽象。示例展示通过依赖注入注册聊天客户端(Azure OpenAI 与 OpenAI),并使用 IChatClient 完成普通问答、带系统提示的多轮消息、以及通过 GetStreamingResponseAsync 进行流式输出。

  2. 函数调用(工具使用):示例演示用 ChatClientBuilder 构建客户端并调用 UseFunctionInvocation() 以自动调用本地函数,通过 ChatOptions.Tools 与 AIFunctionFactory.Create 定义可用工具(如获取天气),模型可自动调用这些工具。

  3. 嵌入:通过 IEmbeddingGenerator<string, Embedding<float>> 注册嵌入生成器(示例使用 Azure OpenAI 的 text-embedding-3-small),并提供获取单条与批量嵌入的方法示例。

  4. Semantic Kernel(AI 编排):示例包括构建 Kernel、添加 Azure OpenAI 聊天补全、使用 InvokePromptAsync 执行提示词、通过 AddFromType 注册插件,以及用 OpenAIPromptExecutionSettings 的 FunctionChoiceBehavior.Auto() 实现自动函数调用。

  5. MCP(Model Context Protocol):资料包含构建 MCP 服务器与客户端的完整示例。服务端方面,需 .NET 10.0 SDK,使用 dotnet new install Microsoft.McpServer.ProjectTemplates 与 dotnet new mcpserver 创建项目,代码中通过 AddMcpServer、WithStdioServerTransport 或 WithHttpServerTransport、AddMcpServerTools 配置,并用 [McpServerTool] 与 [Description] 定义工具;还给出 .vscode/mcp.json 的服务端配置示例。客户端方面,示例使用 ModelContextProtocol.Client 的 StdioClientTransport、McpClient.CreateAsync、ListToolsAsync 发现工具,并将 MCP 工具传给聊天客户端在对话中使用。

  6. 向量搜索:示例基于 Microsoft.Extensions.VectorData,定义带 [VectorStoreRecordKey]、[VectorStoreRecordData]、[VectorStoreRecordVector(1536)] 特性的记录类型,并通过 IVectorStore 与 IEmbeddingGenerator 组合执行 VectorizedSearchAsync 检索 topK 结果。

  7. Blazor 中的 AI 集成:提供一个带有 InteractiveServer 渲染模式的聊天页面示例,注入 IChatClient,展示消息列表、流式文本累积与 StateHasChanged 刷新。

  8. 分词:示例使用 Microsoft.ML.Tokenizers 的 TiktokenTokenizer.CreateForModel("gpt-4o"),进行 CountTokens、EncodeToIds、Decode 以及按最大 token 数裁剪文本。

使用方式

资料以代码片段形式给出各能力的接入方式:通过 NuGet 安装相应包(如 dotnet add package Microsoft.Extensions.AI,以及各供应商包),在 DI 容器中注册聊天客户端或嵌入生成器,再在服务类中通过注入的接口调用。MCP 部分给出模板安装、项目创建、服务端与客户端代码及配置文件写法。关键包表格列出包名、用途与注意事项,例如 Microsoft.Extensions.AI.OpenAI、Microsoft.SemanticKernel.Connectors.InMemory、ModelContextProtocol 标注需要 --prerelease,ModelContextProtocol 还要求 .NET 10,Microsoft.ML.Tokenizers 为稳定版并支持 .NET Standard 2.0+,Tiktoken 需要 Microsoft.ML.Tokenizers.Data.O200kBase 词表包。

适用场景

适用于需要在 .NET 应用中接入大模型聊天、流式交互、工具调用、语义检索、MCP 工具集成或使用 Semantic Kernel 进行 AI 编排的开发者;也适用于在 Blazor 中构建聊天界面、需要对提示词进行 token 计数与裁剪的场景。

限制

资料主要为代码示例与包说明,未提供具体价格、收费模式、性能指标或效果承诺。部分包与功能标注为预览版(--prerelease),MCP 相关要求 .NET 10。各示例的可用性依赖具体的服务端点、凭证与包版本。