名称: azure-ai-projects-py
描述: 使用 Azure AI Projects Python SDK (azure-ai-projects) 构建 AI 应用。适用于处理 Foundry 项目客户端、使用 PromptAgentDefinition 创建版本化智能体、运行评估、管理连接/部署/数据集/索引,或使用 OpenAI 兼容客户端。这是高级的 Foundry SDK —— 如需进行底层智能体操作,请使用 azure-ai-agents-python 技能。
package: azure-ai-projects
使用 azure-ai-projects SDK 在 Azure AI Foundry 上构建 AI 应用。
pip install azure-ai-projects azure-identity
AZURE_AI_PROJECT_ENDPOINT="https://<resource>.services.ai.azure.com/api/projects/<project>"
AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini"
import os
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
credential = DefaultAzureCredential()
client = AIProjectClient(
endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
credential=credential,
)
| 操作 | 访问方式 | 用途 |
|---|---|---|
client.agents |
.agents.* |
智能体的增删改查、版本、线程、运行 |
client.connections |
.connections.* |
列出/获取项目连接 |
client.deployments |
.deployments.* |
列出模型部署 |
client.datasets |
.datasets.* |
数据集管理 |
client.indexes |
.indexes.* |
索引管理 |
client.evaluations |
.evaluations.* |
运行评估 |
client.red_teams |
.red_teams.* |
红队操作 |
from azure.ai.projects import AIProjectClient
client = AIProjectClient(
endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
# 使用 Foundry 原生操作
agent = client.agents.create_agent(
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
name="my-agent",
instructions="你是一个乐于助人的助手。",
)
# 从项目中获取 OpenAI 兼容客户端
openai_client = client.get_openai_client()
# 使用标准 OpenAI API
response = openai_client.chat.completions.create(
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
messages=[{"role": "user", "content": "你好!"}],
)
agent = client.agents.create_agent(
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
name="my-agent",
instructions="你是一个乐于助人的助手。",
)
from azure.ai.agents import CodeInterpreterTool, FileSearchTool
agent = client.agents.create_agent(
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
name="tool-agent",
instructions="你可以执行代码和搜索文件。",
tools=[CodeInterpreterTool(), FileSearchTool()],
)
from azure.ai.projects.models import PromptAgentDefinition
# 创建版本化智能体
agent_version = client.agents.create_version(
agent_name="customer-support-agent",
definition=PromptAgentDefinition(
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
instructions="你是一名客户支持专员。",
tools=[], # 按需添加工具
),
version_label="v1.0",
)
详细智能体模式请参阅 references/agents.md。
| 工具 | 类 | 使用场景 |
|---|---|---|
| 代码解释器 | CodeInterpreterTool |
执行 Python 代码、生成文件 |
| 文件搜索 | FileSearchTool |
对上传的文档进行 RAG |
| Bing 基础搜索 | BingGroundingTool |
网络搜索 (需要连接) |
| Azure AI 搜索 | AzureAISearchTool |
搜索你的索引 |
| 函数调用 | FunctionTool |
调用你的 Python 函数 |
| OpenAPI | OpenApiTool |
调用 REST API |
| MCP | McpTool |
模型上下文协议服务器 |
| 记忆搜索 | MemorySearchTool |
搜索智能体记忆存储 |
| SharePoint | SharepointGroundingTool |
搜索 SharePoint 内容 |
所有工具模式请参阅 references/tools.md。
# 1. 创建线程
thread = client.agents.threads.create()
# 2. 添加消息
client.agents.messages.create(
thread_id=thread.id,
role="user",
content="天气怎么样?",
)
# 3. 创建并处理运行
run = client.agents.runs.create_and_process(
thread_id=thread.id,
agent_id=agent.id,
)
# 4. 获取响应
if run.status == "completed":
messages = client.agents.messages.list(thread_id=thread.id)
for msg in messages:
if msg.role == "assistant":
print(msg.content[0].text.value)
# 列出所有连接
connections = client.connections.list()
for conn in connections:
print(f"{conn.name}: {conn.connection_type}")
# 获取特定连接
connection = client.connections.get(connection_name="my-search-connection")
连接模式请参阅 references/connections.md。
# 列出可用的模型部署
deployments = client.deployments.list()
for deployment in deployments:
print(f"{deployment.name}: {deployment.model}")
部署模式请参阅 references/deployments.md。
# 列出数据集
datasets = client.datasets.list()
# 列出索引
indexes = client.indexes.list()
数据操作请参阅 references/datasets-indexes.md。
# 使用 OpenAI 客户端进行评估
openai_client = client.get_openai_client()
# 使用内置评估器创建评估
eval_run = openai_client.evals.runs.create(
eval_id="my-eval",
name="质量检查",
data_source={
"type": "custom",
"item_references": [{"item_id": "test-1"}],
},
testing_criteria=[
{"type": "fluency"},
{"type": "task_adherence"},
],
)
评估模式请参阅 references/evaluation.md。
from azure.ai.projects.aio import AIProjectClient
async with AIProjectClient(
endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
) as client:
agent = await client.agents.create_agent(...)
# ... 异步操作
异步模式请参阅 references/async-patterns.md。
# 为智能体创建记忆存储
memory_store = client.agents.create_memory_store(
name="conversation-memory",
)
# 附加到智能体以实现持久化记忆
agent = client.agents.create_agent(
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
name="memory-agent",
tools=[MemorySearchTool()],
tool_resources={"memory": {"store_ids": [memory_store.id]}},
)
async with AIProjectClient(...) as client:client.agents.delete_agent(agent.id)create_and_process,实时用户体验使用流式处理| 特性 | azure-ai-projects |
azure-ai-agents |
|---|---|---|
| 层级 | 高级 (Foundry) | 低级 (Agents) |
| 客户端 | AIProjectClient |
AgentsClient |
| 版本控制 | create_version() |
不可用 |
| 连接 | 是 | 否 |
| 部署 | 是 | 否 |
| 数据集/索引 | 是 | 否 |
| 评估 | 通过 OpenAI 客户端 | 否 |
| 使用场景 | 完整的 Foundry 集成 | 独立的智能体应用 |