O SDK do Azure AI Foundry
O SDK do Azure AI Foundry é uma cadeia de ferramentas abrangente projetada para simplificar o desenvolvimento de aplicativos de IA no Azure. Ele permite que os desenvolvedores:
- Aceda a modelos populares de vários fornecedores de modelos através de uma única interface
- Combine facilmente modelos, dados e serviços de IA para criar aplicativos baseados em IA
- Avaliar, depurar e melhorar a qualidade e a segurança dos aplicativos em ambientes de desenvolvimento, teste e produção
O SDK do Azure AI Foundry é um conjunto de pacotes e serviços projetados para trabalhar juntos. Você pode usar a biblioteca de cliente do Azure AI Projects para usar facilmente vários serviços por meio de um único cliente de projeto e cadeia de conexão. Você também pode usar serviços e SDKs por conta própria e conectar-se diretamente aos seus serviços.
Se você quiser entrar e começar a criar um aplicativo, confira:
Introdução ao Project
A melhor maneira de começar a usar o SDK do Azure AI Foundry é usando um projeto. Os projetos de IA conectam diferentes dados, ativos e serviços de que você precisa para criar aplicativos de IA. O cliente do projeto AI permite que você acesse facilmente esses componentes do projeto a partir do seu código usando uma única cadeia de conexão.
Primeiro, siga os passos para criar um projeto de IA, se ainda não tiver um.
Entre com a CLI do Azure usando a mesma conta que você usa para acessar seu projeto de IA:
az login
Instale a biblioteca de cliente de projetos do Azure AI:
pip install azure-ai-projects azure-identity
Crie um cliente de projeto no código:
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
project_connection_string="your_connection_string"
project = AIProjectClient.from_connection_string(
conn_str=project_connection_string,
credential=DefaultAzureCredential())
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
Adicionar usando instruções:
using Azure.Identity;
using Azure.AI.Projects;
Crie um cliente de projeto no código:
var connectionString = "<your_connection_string>";
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());
Copie a cadeia de conexão Project da página Visão geral do projeto e atualize o valor da cadeia de conexões acima.
Depois de criar o cliente do projeto, você pode usar o cliente para os recursos nas seções a seguir.
Azure OpenAI Service
O Serviço OpenAI do Azure fornece acesso aos modelos da OpenAI, incluindo as séries de modelos GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo with Vision, DALLE-3, Whisper e Embeddings com as capacidades de residência de dados, escalabilidade, segurança e empresariais do Azure.
Se você tiver um código que usa o SDK do OpenAI, poderá direcionar facilmente seu código para usar o serviço OpenAI do Azure. Primeiro, instale o OpenAI SDK:
pip install openai
Se você tiver código existente que usa o SDK do OpenAI, poderá usar o cliente do projeto para criar um AzureOpenAI
cliente que use a conexão do Azure OpenAI do seu projeto:
openai = project.inference.get_azure_openai_client(api_version="2024-06-01")
response = openai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful writing assistant"},
{"role": "user", "content": "Write me a poem about flowers"},
]
)
print(response.choices[0].message.content)
dotnet add package Azure.AI.OpenAI
Adicionar usando instruções:
using OpenAI.Chat;
using Azure.AI.OpenAI;
Se você tiver código existente que usa o SDK do OpenAI, poderá usar o cliente do projeto para criar um AzureOpenAI
cliente que use a conexão do Azure OpenAI do seu projeto:
var connections = projectClient.GetConnectionsClient();
ConnectionResponse connection = connections.GetDefaultConnection(ConnectionType.AzureOpenAI, withCredential: true);
var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;
if (properties == null) {
throw new Exception("Invalid auth type, expected API key auth");
}
// Create and use an Azure OpenAI client
AzureOpenAIClient azureOpenAIClient = new(
new Uri(properties.Target),
new AzureKeyCredential(properties.Credentials.Key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureOpenAIClient.GetChatClient("gpt-4o-mini");
ChatCompletion completion = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Se você já estiver usando o SDK do Azure OpenAI diretamente no Serviço OpenAI do Azure, o projeto fornece uma maneira conveniente de usar os recursos do Serviço OpenAI do Azure junto com o restante dos recursos do Azure AI Foundry.
Serviço de inferência de modelo de IA do Azure
O serviço de inferência de modelo de IA do Azure oferece acesso a modelos poderosos de provedores líderes como OpenAI, Microsoft, Meta e muito mais. Esses modelos suportam tarefas como geração de conteúdo, sumarização e geração de código.
Para usar o serviço de inferência de modelo, primeiro verifique se seu projeto tem uma conexão de Serviços de IA (no centro de gerenciamento).
Instale a biblioteca do azure-ai-inference
cliente:
pip install azure-ai-inference
Você pode usar o cliente do projeto para obter um configurado e autenticado ChatCompletionsClient
ou EmbeddingsClient
:
# get an chat inferencing client using the project's default model inferencing endpoint
chat = project.inference.get_chat_completions_client()
# run a chat completion using the inferencing client
response = chat.complete(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful writing assistant"},
{"role": "user", "content": "Write me a poem about flowers"},
]
)
print(response.choices[0].message.content)
dotnet add package Azure.AI.Inference
Adicionar usando instruções:
using Azure.AI.Inference;
Você pode usar o cliente do projeto para obter um configurado e autenticado ChatCompletionsClient
ou EmbeddingsClient
:
var connectionString = Environment.GetEnvironmentVariable("AIPROJECT_CONNECTION_STRING");
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());
ChatCompletionsClient chatClient = projectClient.GetChatCompletionsClient();
var requestOptions = new ChatCompletionsOptions()
{
Messages =
{
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many feet are in a mile?"),
},
Model = "gpt-4o-mini"
};
Response<ChatCompletions> response = chatClient.Complete(requestOptions);
Console.WriteLine(response.Value.Content);
Você pode alterar o nome do modelo para qualquer modelo implantado no serviço de inferência ou no serviço Azure OpenAI.
Para saber mais sobre como usar o cliente de inferência de IA do Azure, confira a referência de inferência de modelo de IA do Azure.
Modelos de prompt
O cliente de inferência suporta a criação de mensagens de prompt a partir de modelos. O modelo permite gerar prompts dinamicamente usando entradas que estão disponíveis em tempo de execução.
Para usar modelos de prompt, instale o azure-ai-inference
pacote:
pip install azure-ai-inference
Você pode renderizar um modelo de prompt a partir de uma cadeia de caracteres embutida:
from azure.ai.inference.prompts import PromptTemplate
# create a prompt template from an inline string (using mustache syntax)
prompt_template = PromptTemplate.from_string(prompt_template="""
system:
You are a helpful writing assistant.
The user's first name is {{first_name}} and their last name is {{last_name}}.
user:
Write me a poem about flowers
""")
# generate system message from the template, passing in the context as variables
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")
print(messages)
Nota
O espaço em branco à esquerda é cortado automaticamente das cadeias de caracteres de entrada.
Esse código gera mensagens que você pode passar para uma chamada de conclusão de chat:
[
{'role': 'system', 'content': "You are a helpful writing assistant.\nThe user's first name is Jane and their last name is Doe."}
{'role': 'user', 'content': 'Write me a poem about flowers'}
]
Você também pode carregar prompts de um Prompty
arquivo, permitindo que você também carregue o nome do modelo e os parâmetros do .prompty
arquivo:
from azure.ai.inference.prompts import PromptTemplate
prompt_template = PromptTemplate.from_prompty("myprompt.prompty")
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")
response = chat.complete(
messages=messages,
model=prompt_template.model_name,
**prompt_template.parameters,
)
Pesquisa de IA do Azure
Se você tiver um recurso do Azure AI Search conectado ao seu projeto, também poderá usar o cliente do projeto para criar um cliente do Azure AI Search usando a conexão do projeto.
Instale a biblioteca de cliente do Azure AI Search:
pip install azure-search-documents
Instancie o cliente de pesquisa e/ou índice de pesquisa conforme desejado:
from azure.core.credentials import AzureKeyCredential
from azure.ai.projects.models import ConnectionType
from azure.search.documents import SearchClient
from azure.search.documents.indexes import SearchIndexClient
# use the project client to get the default search connection
search_connection = project.connections.get_default(
connection_type=ConnectionType.AZURE_AI_SEARCH,
with_credentials=True)
# Create a client to create and manage search indexes
index_client = SearchIndexClient(
endpoint=search_connection.endpoint_url,
credential=AzureKeyCredential(key=search_connection.key)
)
# Create a client to run search queries
search_client = SearchClient(
index_name="your_index_name",
endpoint=search_connection.endpoint_url,
credential=AzureKeyCredential(key=search_connection.key)
)
dotnet add package Azure.Search.Documents
Adicionar usando instruções:
using Azure.Search.Documents;
using Azure.Search.Documents.Models;
Instancie o cliente de pesquisa e/ou índice de pesquisa conforme desejado:
var connections = projectClient.GetConnectionsClient();
var connection = connections.GetDefaultConnection(ConnectionType.AzureAISearch, withCredential: true).Value;
var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;
if (properties == null) {
throw new Exception("Invalid auth type, expected API key auth");
}
SearchClient searchClient = new SearchClient(
new Uri(properties.Target),
"products",
new AzureKeyCredential(properties.Credentials.Key));
Para saber mais sobre como usar o Azure AI Search, confira a documentação do Azure AI Search.
Serviço Azure AI Agent
O Azure AI Agent Service é um serviço totalmente gerenciado projetado para capacitar os desenvolvedores a criar, implantar e dimensionar com segurança agentes de IA extensíveis e de alta qualidade. Usando um extenso ecossistema de modelos, ferramentas e recursos da OpenAI, Microsoft e provedores de terceiros, o Azure AI Agent Service permite a criação de agentes para uma ampla gama de casos de uso de IA generativa.
Para ter acesso aos agentes, inscreva-se na visualização.
Avaliação
Você pode usar o cliente de projeto para se conectar facilmente ao serviço de avaliação de IA do Azure e aos modelos necessários para executar seus avaliadores.
pip install azure-ai-evaluation
Usando o project.scope
parâmetro, podemos instanciar um ViolenceEvaluator
:
from azure.ai.evaluation import ViolenceEvaluator
from azure.identity import DefaultAzureCredential
# Initializing Violence Evaluator with project information
violence_eval = ViolenceEvaluator(
azure_ai_project=project.scope,
credential=DefaultAzureCredential())
# Running Violence Evaluator on single input row
violence_score = violence_eval(query="what's the capital of france", response="Paris")
print(violence_score)
NOTA: para executar avaliadores de violência, seu projeto precisa estar em East US 2, Sweden Central, US North Central, France Central.
Para saber mais, confira Avaliação usando o SDK.
Um pacote de avaliação da IA do Azure ainda não está disponível para C#. Para obter um exemplo sobre como usar o Prompty e o Semantic Kernel para avaliação, consulte o exemplo contoso-chat-csharp-prompty .
Rastreio
Para habilitar o rastreamento, primeiro verifique se seu projeto tem um recurso anexado do Application Insights. Vá para a página Rastreamento do seu projeto e siga as instruções para criar ou anexar o Application Insights.
Instale o pacote OpenTelemetry do Azure Monitor:
pip install azure-monitor-opentelemetry
Use o código a seguir para habilitar a instrumentação do SDK do Azure AI Inference e o registro em log em seu projeto de IA:
from azure.monitor.opentelemetry import configure_azure_monitor
# Enable instrumentation of AI packages (inference, agents, openai, langchain)
project.telemetry.enable()
# Log traces to the project's application insights resource
application_insights_connection_string = project.telemetry.get_connection_string()
if application_insights_connection_string:
configure_azure_monitor(connection_string=application_insights_connection_string)
O rastreio ainda não está integrado no pacote de projetos. Para obter instruções sobre como instrumentar e registrar rastreamentos do pacote Azure AI Inferencing, consulte azure-sdk-for-dotnet.
Conteúdos relacionados
Abaixo estão alguns links úteis para outros serviços e estruturas que você pode usar com o SDK do Azure AI Foundry.
Serviços de IA do Azure
Bibliotecas cliente:
Bibliotecas de gestão:
- Biblioteca de Gerenciamento Python dos Serviços de IA do Azure
- Biblioteca de Gerenciamento Python do Azure AI Search
Frameworks
Azure Machine Learning
- SDK Python do Azure Machine Learning (v2)
- CLI do Azure Machine Learning (v2)
- Azure Machine Learning REST API
Fluxo imediato
Kernel Semântico
Visão geral do kernel semântico Estruturas agentic