Aspire 提供了多个 AI 托管和客户端集成,使你能够处理不同的 AI 服务和平台。 本文提供了一个兼容性矩阵,其中显示了哪些客户端集成适用于哪些托管集成,以及建议的配对指南。
兼容性矩阵
下表显示了 AI 托管与客户端集成之间的 Aspire 兼容性:
| 托管集成 | Aspire.OpenAI | Aspire.Azure.人工智能。OpenAI | Aspire.Azure.人工智能推理 |
|---|---|---|---|
Aspire.Hosting.Azure.AIFoundry |
❌ 否 | ⚠️ 部分 | ✅ 是(首选) |
Aspire.Hosting.Azure.CognitiveServices |
❌ 否 | ✅ 是(首选) | ❌ 否 |
Aspire.Hosting.OpenAI |
✅ 是(首选) | ✅ 是 | ❌ 否 |
Aspire.Hosting.GitHub.Models |
⚠️ 部分 | ❌ 否 | ✅ 是(首选) |
传说
- ✅ 是:客户端集成与托管集成兼容。
- ⚠️ 部分:客户端集成可能不支持所有模型或 API。
- ❌ 否:客户端集成不支持托管环境。
- (首选):此托管集成的推荐客户端集成。
建议的配对
一般情况下,请使用 Aspire.Azure.AI.Inference 连接到 Azure 托管模型,或使用 Aspire.OpenAI 直接连接到 OpenAI。
Azure AI Foundry
在使用Azure的AI Foundry资源时,请使用Aspire.Azure.AI推理客户端集成。 这提供了与 AI Azure Foundry 可用的各种模型的最佳兼容性。 有关详细信息,请参阅 Azure AI Foundry 集成。
托管集成
. AspireHosting.Azure.AIFoundry 包提供托管集成。 在应用主机项目中:
var builder = DistributedApplication.CreateBuilder(args);
var foundry = builder.AddAzureAIFoundry("foundry");
builder.AddProject<Projects.ExampleProject>()
.WithReference(foundry);
Client 集成
.AspireAzure.AI.Inference包提供了客户端集成。 在服务项目中:
builder.AddAzureChatCompletionsClient("foundry");
Azure 认知服务 (AzureOpenAI)
对于 AzureOpenAI 资源,请使用 Aspire.Azure.AI.OpenAI 客户端集成,以全面支持特定于 Azure 的功能和身份验证。 有关详细信息,请参阅 AzureOpenAI 集成。
托管集成
AspireHosting.Azure.CognitiveServices 包提供托管集成。 在应用主机项目中:
var builder = DistributedApplication.CreateBuilder(args);
var openai = builder.AddAzureOpenAI("openai");
builder.AddProject<Projects.ExampleProject>()
.WithReference(openai);
Client 集成
Aspire Azure.AI.OpenAI包提供客户端集成。 在服务项目中:
builder.AddAzureOpenAIClient("openai");
直接 OpenAI
若要直接 OpenAI 访问 API,请使用 Aspire.OpenAI 客户端集成。 有关详细信息,请参阅AspireOpenAI集成(预览版)。
托管集成
Aspire.Hosting.OpenAI 包提供托管集成。 在应用主机项目中:
var builder = DistributedApplication.CreateBuilder(args);
var openai = builder.AddOpenAI("openai");
builder.AddProject<Projects.ExampleProject>()
.WithReference(openai);
Client 集成
Aspire.OpenAI包提供客户端集成。 在服务项目中:
builder.AddOpenAIClient("openai");
GitHub 模型
对于 GitHub 模型,请使用 Aspire.Azure.AI推理 客户端集成,以确保与 GitHub 模型 API 的最佳兼容性。 有关详细信息,请参阅AspireGitHub模型集成(预览版)。
托管集成
AspireHosting.GitHub.Models 包提供托管集成。 在应用主机项目中:
var builder = DistributedApplication.CreateBuilder(args);
var chat = builder.AddGitHubModel("chat", "openai/gpt-4o-mini");
builder.AddProject<Projects.ExampleProject>()
.WithReference(chat);
Client 集成
.AspireAzure.AI.Inference包提供了客户端集成。 在服务项目中:
builder.AddAzureChatCompletionsClient("chat");
连接字符串格式
了解托管和客户端集成如何通过连接字符串进行通信,可帮助你排查连接问题并了解基础机制。
每个托管集成都生成供客户端集成使用的不同格式的连接字符串。
托管集成连接字符串
Aspire.Hosting.Azure.AIFoundry
Azure:
Endpoint={Endpoint};EndpointAIInference={AIFoundryApiEndpoint}models
Foundry local:
Endpoint={EmulatorServiceUri};Key={ApiKey}
部署:
{Parent};Deployment={DeploymentName}
Aspire.托管.Azure.认知服务
部署:
{ConnectionString};Deployment={DeploymentName}
Aspire.托管.OpenAI
Endpoint={Endpoint};Key={Key};Model={Model}
Aspire.Hosting.GitHub.模型
Endpoint=https://models.github.ai/inference;Key={Key};Model={ModelName}
Client 集成连接字符串要求
Aspire.OpenAI
需要采用以下格式的连接字符串:
Endpoint={Endpoint};Key={Key};Deployment={Deployment};Model={Model}
使用Deployment和Model(按照该顺序)。
Deployment由Aspire.Hosting.Azure.CognitiveServices设置,而Model由Aspire.Hosting.OpenAI设置。
Aspire.Azure.人工智能。OpenAI
需要采用以下格式的连接字符串:
Endpoint={Endpoint};Key={Key};Deployment={Deployment};Model={Model}
使用Deployment和Model(按照该顺序)。
Deployment由Aspire.Hosting.Azure.CognitiveServices设置,而Model由Aspire.Hosting.OpenAI设置。
此集成是 Aspire.OpenAI 的超集,支持 TokenCredential 和 Azure 特定的功能。
Aspire.Azure.人工智能推理
需要采用以下格式的连接字符串:
Endpoint={Endpoint};EndpointAIInference={EndpointAIInference};Key={Key};Deployment={DeploymentName};Model={ModelName}
使用Deployment和Model(按照该顺序)。
Deployment由Aspire.Hosting.Azure.CognitiveServices设置,而Model由Aspire.Hosting.GitHub.Models设置。
如果可用,则使用EndpointAIInference,否则使用Endpoint。