OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  azure-ai-projects-py:使用 Azure AI 项目组件构建 AI 应用

azure-ai-projects-py:使用 Azure AI 项目组件构建 AI 应用

 
  nosql ·  2026-02-14 21:45:01 · 3 次点击  · 0 条评论  

名称: 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 Python SDK (Foundry SDK)

使用 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.* 红队操作

两种客户端使用方式

1. AIProjectClient (原生 Foundry)

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="你是一个乐于助人的助手。",
)

2. OpenAI 兼容客户端

# 从项目中获取 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()],
)

使用 PromptAgentDefinition 创建版本化智能体

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]}},
)

最佳实践

  1. 使用上下文管理器处理异步客户端:async with AIProjectClient(...) as client:
  2. 完成后清理智能体client.agents.delete_agent(agent.id)
  3. 简单运行使用 create_and_process实时用户体验使用流式处理
  4. 生产部署使用版本化智能体
  5. 外部服务集成(AI 搜索、Bing 等)优先使用连接

SDK 对比

特性 azure-ai-projects azure-ai-agents
层级 高级 (Foundry) 低级 (Agents)
客户端 AIProjectClient AgentsClient
版本控制 create_version() 不可用
连接
部署
数据集/索引
评估 通过 OpenAI 客户端
使用场景 完整的 Foundry 集成 独立的智能体应用

参考文件

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor