MEAI、Azure AI Foundry、Foundry本地和MCP示例
你知道吗。NET是构建前端和后端应用程序最通用的语言吗?除此之外。NET还能够非常轻松地构建AI注入的应用程序。此存储库提供了几个使用Microsoft的示例应用程序。扩展。AI、Azure AI Foundry、Foundry Local和MCP服务器/客户端。
先决条件
入门
构建Foundry本地SDK
备注:这是一个临时解决方案,直到官方的NuGet包准备就绪。
- 克隆Foundry本地存储库。
git clone https://github.com/microsoft/Foundry-Local.git foundry-local- 构建C#SDK。
cd foundry-local/sdk/cs
dotnet restore && dotnet build- 获取NuGet包位置。
# bash/zsh
FOUNDRY_LOCAL_NUGET_PACKAGE_PATH=$(find $(pwd) -name "*.nupkg" -type f -exec dirname {} \; | sort -u) # PowerShell
$FOUNDRY_LOCAL_NUGET_PACKAGE_PATH = $(Get-ChildItem -Path . -Filter *.nupkg -Recurse).Directory.FullName准备好在本地计算机上运行应用程序
- 克隆此存储库。
git clone https://github.com/devkimchi/meai-azure-ai-foundry-mcp-sample.git- 创建
nuget.config.{{FOUNDRY_LOCAL_NUGET_PACKAGE_PATH}}是来自的值 上一节.
# bash/zsh
cd meai-azure-ai-foundry-mcp-sample
cat ./nuget.sample.config \
| sed 's|/path/to/foundry-local/sdk/cs/src/bin/Debug|{{FOUNDRY_LOCAL_NUGET_PACKAGE_PATH}}|g' \
> nuget.config # PowerShell
cd meai-azure-ai-foundry-mcp-sample
$(Get-Content -Path ./nuget.sample.config) `
-replace "/path/to/foundry-local/sdk/cs/src/bin/Debug", "{{FOUNDRY_LOCAL_NUGET_PACKAGE_PATH}}" `
| Out-File -Path nuget.config -Force> 备注:此步骤仅在发布官方NuGet包之前是必需的。
跑 Microsoft.Extensions.AI 示例应用程序
- 确保您拥有OpenAI、Azure OpenAI、GitHub模型、Anthropic和/或Google Vertex AI的API密钥。
- 将这些API密钥存储到用户机密:
# OpenAI
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:openai "Endpoint=https://api.openai.com/v1;Key={{OPENAI_API_KEY}}"
# Azure OpenAI
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:openai "Endpoint={{AZURE_OPENAI_ENDPOINT}};Key={{AZURE_OPENAI_API_KEY}}"
# GitHub Models
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:openai "Endpoint=https://models.inference.ai.azure.com;Key={{GITHUB_PAT}}"
# Anthropic
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:anthropic "Endpoint=https://api.anthropic.com;Key={{ANTHROPIC_API_KEY}}"
# Google Vertex AI
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:google "Endpoint=https://generativelanguage.googleapis.com;Key={{GOOGLE_API_KEY}}"- 确定你要使用哪个法学硕士
src/Meai.ClientApp/appsettings.json
// To use OpenAI, Azure OpenAI or GitHub Models
{
"MEAI": {
"ChatClient": "openai"
}
} // To use Anthropic
{
"MEAI": {
"ChatClient": "anthropic"
}
} // To use Google Vertex AI
{
"MEAI": {
"ChatClient": "google"
}
}- 运行应用程序。
dotnet watch run --project ./src/Meai.ClientApp运行Azure AI Foundry示例应用程序
- 请确保您拥有Azure AI Foundry的API密钥。
- 将API密钥存储到用户机密:
# Azure AI Foundry
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:foundry "Endpoint={{AZURE_AI_FOUNDRY_ENDPOINT}};Key={{AZURE_AI_FOUNDRY_API_KEY}}"- 确定你要使用哪个法学硕士
src/Foundry.ClientApp/appsettings.json
{
"MEAI": {
"ChatClient": "foundry"
}
}- 运行应用程序。
dotnet watch run --project ./src/Foundry.ClientApp运行Foundry本地示例应用程序
- 确保您已安装Foundry本地CLI。
- 将模型添加到Foundry Local。您可以通过运行以下命令从列表中添加任何模型
foundry model ls.
foundry model download qwen2.5-0.5b- 确定你要使用哪个法学硕士
src/Foundry.ClientApp/appsettings.json
{
"MEAI": {
"ChatClient": "local"
}
}- 运行应用程序。
dotnet watch run --project ./src/Foundry.ClientApp运行MCP服务器/客户端示例应用程序
- 请确保您拥有OpenAI、Azure OpenAI或GitHub模型的API密钥。
- 将这些API密钥存储到用户机密:
# OpenAI
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:openai "Endpoint=https://api.openai.com/v1;Key={{OPENAI_API_KEY}}"
# Azure OpenAI
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:openai "Endpoint={{AZURE_OPENAI_ENDPOINT}};Key={{AZURE_OPENAI_API_KEY}}"
# GitHub Models
dotnet user-secrets --project ./src/Meai.ClientApp set ConnectionStrings:openai "Endpoint=https://models.inference.ai.azure.com;Key={{GITHUB_PAT}}"- 运行MCP服务器应用程序。
dotnet run --project ./src/McpTodo.ServerApp- 在另一个终端中运行MCP客户端应用程序。
dotnet watch run --project ./src/mcpTodo.ClientApp已知问题:安装Foundry本地CLI
在Windows上,如果您一直无法在计算机上安装Foundry Local CLI,请尝试以下方法 变通方案:
# Download the package and its dependency
$releaseUri = "https://github.com/microsoft/Foundry-Local/releases/download/v0.3.9267/FoundryLocal-x64-0.3.9267.43123.msix"
Invoke-WebRequest -Method Get -Uri $releaseUri -OutFile ./FoundryLocal.msix
$crtUri = "https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx"
Invoke-WebRequest -Method Get -Uri $crtUri -OutFile ./VcLibs.appx
# Install the Foundry Local package
Add-AppxPackage ./FoundryLocal.msix -DependencyPath ./VcLibs.appx