使用本文创建 Foundry 项目,并在开始生成代理、评估和文件之前确认环境已准备就绪。
本文介绍如何在 Microsoft Foundry 中创建 Foundry 项目。 项目允许你在构建有状态应用并探索新想法时组织工作,例如代理、评估和文件。
如果你的组织需要自定义的Azure配置(如替代名称、安全控制或成本标记),可能需要使用 Azure 门户或模板选项符合组织的Azure Policy要求。
先决条件
使用以下选项卡选择要用于创建 Foundry 项目的方法:
设置开发环境。
请在代码执行之前先在您的环境中运行az login或az login --use-device-code。
安装包: pip install azure-identity azure-mgmt-cognitiveservices~=13.7.0. 如果位于笔记本单元格中,请改用 %pip install。
使用 pip show azure-mgmt-cognitiveservices 来检查您的版本是否为 13.7 或更高。
快速验证:在创建项目之前,通过测试客户端验证 SDK 和身份验证:
from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient
# Test authentication by instantiating the client
credential = DefaultAzureCredential()
subscription_id = "<your-subscription-id>" # Replace with your subscription ID
client = CognitiveServicesManagementClient(credential, subscription_id)
print("✓ Authentication successful! Ready to create a project.")
从以下代码开始来创建本篇文章中使用的 client 连接和变量。 此示例在东部 (美国) 区域创建项目:
from azure.identity import DefaultAzureCredential
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient
subscription_id = 'your-subscription-id'
resource_group_name = 'your-resource-group-name'
foundry_resource_name = 'your-foundry-resource-name'
foundry_project_name = 'your-foundry-project-name'
location = 'eastus'
client = CognitiveServicesManagementClient(
credential=DefaultAzureCredential(),
subscription_id=subscription_id,
api_version="2025-04-01-preview"
)
(可选)如果您有多个账户,请将您要使用的 Microsoft Entra ID 的租户 ID 添加到 DefaultAzureCredential:
DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
# Set your default subscription
az account set --subscription "{subscription-name}"
创建 Foundry 项目
使用以下方法之一。
这些步骤提供了使用基本默认设置创建新的Azure资源的方法。
若要创建 Foundry 项目,请执行以下步骤:
-
登录到 Microsoft Foundry。 确保New Foundry开关处于打开状态。 这些步骤适用于 Foundry(新版)。
正在处理的项目显示在左上角。
若要创建新项目,请选择项目名称,然后选择“ 创建新项目”。
为项目命名并选择“ 创建项目”。 或参阅下一部分了解高级选项。
高级选项
在 Foundry 资源上创建 Foundry 项目。 创建项目时,门户会自动创建此资源。 选择要使用的现有 资源组 ,或保留默认值以创建新资源组。
提示
尤其是在初始阶段,请为项目创建一个新的资源组。 使用资源组可以轻松管理项目及其所有资源。
选择 位置 或使用默认值。 位置是托管项目资源的区域。
选择“ 创建”。 可以看到资源创建进度。 该流程完成后,项目将被创建。
创建 Foundry 项目:
添加以下代码,以使用先决条件部分中的变量和 client 连接创建 Foundry 项目。
# Create resource
resource = client.accounts.begin_create(
resource_group_name=resource_group_name,
account_name=foundry_resource_name,
account={
"location": location,
"kind": "AIServices",
"sku": {"name": "S0",},
"identity": {"type": "SystemAssigned"},
"properties": {
"allowProjectManagement": True,
"customSubDomainName": foundry_resource_name
}
}
)
# Wait for the resource creation to complete
resource_result = resource.result()
# Create default project
project = client.projects.begin_create(
resource_group_name=resource_group_name,
account_name=foundry_resource_name,
project_name=foundry_project_name,
project={
"location": location,
"identity": {
"type": "SystemAssigned"
},
"properties": {}
}
)
参考: CognitiveServicesManagementClient。
注释
这些步骤要求具备 Azure CLI,并对该资源组具有 参与者 或 所有者 角色。 在开始之前运行 az login 以登录。 有关支持的区域,请参阅 “区域支持”。
创建资源组或使用现有资源组。 例如,在 my-foundry-rg 中创建 eastus:
az group create --name my-foundry-rg --location eastus
创建启用了项目管理的 Foundry 资源。 例如,在 my-foundry-resource 资源组中创建 my-foundry-rg。
az cognitiveservices account create \
--name my-foundry-resource \
--resource-group my-foundry-rg \
--kind AIServices \
--sku S0 \
--location eastus \
--custom-domain my-foundry-resource \
--allow-project-management
设置 --allow-project-management 标志以启用项目管理。 创建资源后,无法更改此标志。 该值 --custom-domain 必须全局唯一 - 如果 my-foundry-resource 已采用,请选择其他名称。
创建项目。 例如,在my-foundry-project中创建my-foundry-resource:
az cognitiveservices account project create \
--name my-foundry-resource \
--resource-group my-foundry-rg \
--project-name my-foundry-project \
--location eastus
验证是否已预配资源:
az cognitiveservices account show \
--name my-foundry-resource \
--resource-group my-foundry-rg \
--query properties.provisioningState --output tsv
输出应显示 Succeeded。 如果输出显示其他状态,请检查权限、区域可用性和资源配额。 有关更多帮助,请参阅 创建多服务资源。
验证是否已创建项目:
az cognitiveservices account project show \
--name my-foundry-resource \
--resource-group my-foundry-rg \
--project-name my-foundry-project \
--query properties.provisioningState --output tsv
输出应显示 Succeeded。
在同一资源上创建多个项目
在现有 Foundry 资源上创建多个 Foundry 项目,以启用团队协作和共享资源访问,包括安全、部署和连接工具。 此设置非常适合在受限Azure订阅中,开发人员需要在预配置环境的设置中提供自助探索功能。
作为 Azure 子资源的 Foundry 项目可能会分配其独立的访问控制,但与其父资源共享共同的设置,例如网络安全、部署以及 Azure 工具的集成。
虽然并非所有 Foundry 功能都支持在项目中组织工作,但资源的第一个“默认”项目更强大。 使用代码选项时,可以通过 UX 体验中的标记“default”以及资源属性“is_default”来标识它。
| 功能 |
默认项目 |
其他项目 |
| 模型推理 |
✅ |
✅ |
| 游乐场 |
✅ |
✅ |
| 代理 |
✅ |
✅ |
| 评估 |
✅ |
✅ |
| 跟踪 |
✅ |
✅ |
| 数据集 |
✅ |
✅ |
| 索引 |
✅ |
✅ |
| Foundry SDK 和 API |
✅ |
✅ |
| 内容理解 |
✅ |
✅ |
| OpenAI SDK 和 API |
✅ |
响应、文件、对话 |
| OpenAI Batch、微调、存储的补全 |
✅ |
- |
| 语言微调 |
✅ |
✅ |
| 语音微调 |
✅ |
- |
| 连接 |
✅ |
✅ |
查看项目设置
在 主页 项目页上,可以看到项目的项目终结点和 API 密钥。 如果使用Microsoft Entra ID身份验证,则不需要 API 密钥。
# Get project
project = client.projects.get(
resource_group_name=resource_group_name,
account_name=foundry_resource_name,
project_name=foundry_project_name
)
print(project)
参考: CognitiveServicesManagementClient。
若要查看项目的设置,请使用 az cognitiveservices account project show 命令。 例如:
az cognitiveservices account project show \
--name my-foundry-resource \
--resource-group my-foundry-rg \
--project-name my-foundry-project
向团队成员授予访问权限
如果为团队创建了项目,请将 Foundry 用户 角色分配给团队成员,以便他们可以使用项目及其资源。 此角色提供生成和测试 AI 应用程序所需的最低权限。 有关可能需要分配的其他角色,请参阅Microsoft Foundry 的基于角色的访问控制。
重要
Foundry RBAC 角色最近已更名。
Foundry 用户、Foundry 所有者、Foundry 帐户所有者和 Foundry 项目经理之前的名称分别为“Azure AI 用户”、“Azure AI 所有者”、“Azure AI 帐户所有者”和“Azure AI 项目经理”。 在重命名推出时,你仍可能会在某些位置看到以前的名称。重命名后,角色 ID 和核心权限保持不变。
- 在 Foundry 门户中,选择右上方导航中的 “操作 ”。
- 在左窗格中选择 “管理员 ”。
- 在表中选择项目名称。
- 选择右上角的 “添加用户 ”。
- 输入团队成员的电子邮件地址。
- 选择 “添加”。
为每个团队成员或安全组重复这些步骤。
提示
若要一次性添加多个用户,请使用Microsoft Entra安全组而不是单个电子邮件地址。
使用 Azure CLI 或 Foundry 门户管理角色分配。 Python SDK 不支持角色分配操作。
获取项目的资源 ID:
PROJECT_ID=$(az cognitiveservices account project show \
--name my-foundry-resource \
--resource-group my-foundry-rg \
--project-name my-foundry-project \
--query id -o tsv)
将 Foundry 用户 角色分配给团队成员:
重要
Foundry RBAC 角色最近已更名。
Foundry 用户、Foundry 所有者、Foundry 帐户所有者和 Foundry 项目经理之前的名称分别为“Azure AI 用户”、“Azure AI 所有者”、“Azure AI 帐户所有者”和“Azure AI 项目经理”。 在重命名推出时,你仍可能会在某些位置看到以前的名称。重命名后,角色 ID 和核心权限保持不变。
az role assignment create \
--role "53ca6127-db72-4b80-b1b0-d745d6d5456d" \
--assignee "user@contoso.com" \
--scope $PROJECT_ID
注释
由于 Foundry RBAC 角色最近已重命名,因此请在代码中使用角色定义 ID(GUID)而不是角色名称,以避免在重命名推出过程中出现问题:
-
Foundry 用户:
53ca6127-db72-4b80-b1b0-d745d6d5456d
-
Foundry 所有者:
c883944f-8b7b-4483-af10-35834be79c4a
-
Foundry 帐户所有者:
e47c6f54-e4a2-4754-9501-8e0985b135e1
-
Foundry 项目经理:
eadc314b-1a2d-4efa-be10-5d325db5065e
添加安全组,而不是添加单个用户:
az role assignment create \
--role "53ca6127-db72-4b80-b1b0-d745d6d5456d" \
--assignee-object-id "<security-group-object-id>" \
--assignee-principal-type Group \
--scope $PROJECT_ID
验证角色分配:
az role assignment list \
--scope $PROJECT_ID \
--role "53ca6127-db72-4b80-b1b0-d745d6d5456d" \
--output table
参考: az role assignment
验证团队成员访问权限
要求团队成员通过登录到 Microsoft Foundry并从项目列表中选择项目来验证其访问权限。
如果团队成员无法访问项目,请验证角色分配是否已成功完成。 检查是否使用了正确的电子邮件地址或安全组 ID。 请确保团队成员的Azure帐户位于同一Microsoft Entra租户中。
删除项目
- 登录到 Microsoft Foundry。 确保New Foundry开关处于打开状态。 这些步骤适用于 Foundry(新版)。
- 在右上角导航中,选择“ 操作”。
- 在左窗格中,选择“ 管理员”。
- 选择项目。
- 在右上角,选择垃圾桶图标以删除项目。
此代码使用先决条件中的变量和 client 连接。 删除单个项目:
client.projects.begin_delete(
resource_group_name, foundry_resource_name, foundry_project_name
)
参考: CognitiveServicesManagementClient。
删除 Foundry 资源及其所有项目:
# Delete projects
projects = client.projects.list(resource_group_name, foundry_resource_name)
for project in projects:
print("Deleting project:", project.name)
client.projects.begin_delete(resource_group_name, foundry_resource_name,
project_name=project.name.split('/')[-1]
).wait()
# Delete resource
print("Deleting resource:", foundry_resource_name)
client.accounts.begin_delete(resource_group_name, foundry_resource_name).wait()
参考: CognitiveServicesManagementClient。
相关内容