Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se apenas a:Portal Foundry (clássico). Este artigo não está disponível para o novo portal da Foundry.
Saiba mais sobre o novo portal.
Nota
Os links neste artigo podem abrir conteúdo na nova documentação do Microsoft Foundry em vez da documentação do Foundry (clássico) que está a ver agora.
Neste artigo, aprende a usar Kernel Semântico com modelos implementados a partir do catálogo de modelos Foundry no portal Microsoft Foundry.
Importante
O Azure AI Inference beta SDK está obsoleto e será retirado a 26 de agosto de 2026. Mude para a API OpenAI/v1 geralmente disponível com um SDK OpenAI estável. Siga o guia de migração para mudar para OpenAI/v1, usando o SDK da sua linguagem de programação preferida.
Pré-requisitos
-
Uma conta no Azure com uma subscrição ativa. Se não tiveres uma, cria uma conta Azure free, que inclui uma subscrição de teste gratuita.
Um projeto da Foundry conforme explicado no portal Criar um projeto na Foundry.
Um modelo implementado que suporta a API de Inferência de Modelos de IA Azure. Este artigo utiliza uma
Mistral-Largeimplementação. Podes usar qualquer modelo. Para usar funcionalidades de embeddings no LlamaIndex, precisa de um modelo de embedding comocohere-embed-v3-multilingual.- Siga as instruções em Implementar modelos como APIs sem servidor.
Python 3.10 ou uma versão posterior instalada, incluindo o pip.
Kernel Semântico instalado. Pode usar o seguinte comando:
pip install semantic-kernelEste artigo utiliza a Model Inference API, por isso instale as dependências relevantes do Azure. Pode usar o seguinte comando:
pip install semantic-kernel[azure]
Configurar o ambiente
Para usar modelos de linguagem implementados no portal Foundry, precisa do endpoint e das credenciais para se ligar ao seu projeto. Siga estes passos para obter a informação de que precisa do modelo:
Dica
Como podes personalizar o painel esquerdo no portal Microsoft Foundry, podes ver itens diferentes dos mostrados nestes passos. Se não vires o que procuras, seleciona ... Mais na parte inferior do painel esquerdo.
Iniciar sessão no Microsoft Foundry.
Abre o projeto onde o modelo é implementado, se ainda não estiver aberto.
Vai a Modelos + endpoints e seleciona o modelo que implementaste conforme indicado nos pré-requisitos.
Copie a URL do endpoint e a chave.
Dica
Se implementaste o teu modelo com suporte ao Microsoft Entra ID, não precisas de uma chave.
Este exemplo utiliza variáveis de ambiente tanto para a URL do endpoint como para a chave:
export AZURE_AI_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
export AZURE_AI_INFERENCE_API_KEY="<your-key-goes-here>"
Depois de configurar o endpoint e a chave, crie um cliente para se ligar ao endpoint:
from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion
chat_completion_service = AzureAIInferenceChatCompletion(ai_model_id="<deployment-name>")
Dica
O cliente lê automaticamente as variáveis de ambiente AZURE_AI_INFERENCE_ENDPOINT e AZURE_AI_INFERENCE_API_KEY para se conectar ao modelo. Pode, em vez disso, passar o endpoint e a chave diretamente no cliente através dos parâmetros endpoint e api_key no construtor.
Alternativamente, se o seu endpoint suportar o Microsoft Entra ID, pode usar o seguinte código para criar o cliente:
export AZURE_AI_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion
chat_completion_service = AzureAIInferenceChatCompletion(ai_model_id="<deployment-name>")
Nota
Se usar o Microsoft Entra ID, certifique-se de que o endpoint foi implementado com esse método de autenticação e que tem as permissões necessárias para o invocar.
Modelos Azure OpenAI
Se estiver a usar um modelo Azure OpenAI, utilize o seguinte código para criar o cliente:
from azure.ai.inference.aio import ChatCompletionsClient
from azure.identity.aio import DefaultAzureCredential
from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion
chat_completion_service = AzureAIInferenceChatCompletion(
ai_model_id="<deployment-name>",
client=ChatCompletionsClient(
endpoint=f"{str(<your-azure-open-ai-endpoint>).strip('/')}/openai/deployments/{<deployment_name>}",
credential=DefaultAzureCredential(),
credential_scopes=["https://cognitiveservices.azure.com/.default"],
),
)
Parâmetros de inferência
Pode configurar como realizar inferência usando a AzureAIInferenceChatPromptExecutionSettings classe:
from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatPromptExecutionSettings
execution_settings = AzureAIInferenceChatPromptExecutionSettings(
max_tokens=100,
temperature=0.5,
top_p=0.9,
# extra_parameters={...}, # model-specific parameters
)
Chamar o serviço
Primeiro, contacte o serviço de conclusão de chat com um simples histórico de chat.
Dica
O Kernel Semântico é uma biblioteca assíncrona, por isso precisas de usar a biblioteca assíncrona para executar o código.
import asyncio
async def main():
...
if __name__ == "__main__":
asyncio.run(main())
from semantic_kernel.contents.chat_history import ChatHistory
chat_history = ChatHistory()
chat_history.add_user_message("Hello, how are you?")
response = await chat_completion_service.get_chat_message_content(
chat_history=chat_history,
settings=execution_settings,
)
print(response)
Em alternativa, pode transmitir a resposta do serviço:
chat_history = ChatHistory()
chat_history.add_user_message("Hello, how are you?")
response = chat_completion_service.get_streaming_chat_message_content(
chat_history=chat_history,
settings=execution_settings,
)
chunks = []
async for chunk in response:
chunks.append(chunk)
print(chunk, end="")
full_response = sum(chunks[1:], chunks[0])
Crie uma conversa de longa duração
Pode criar uma conversa de longa duração usando um ciclo:
while True:
response = await chat_completion_service.get_chat_message_content(
chat_history=chat_history,
settings=execution_settings,
)
print(response)
chat_history.add_message(response)
chat_history.add_user_message(user_input = input("User:> "))
Se estiver a transmitir a resposta, pode usar o seguinte código:
while True:
response = chat_completion_service.get_streaming_chat_message_content(
chat_history=chat_history,
settings=execution_settings,
)
chunks = []
async for chunk in response:
chunks.append(chunk)
print(chunk, end="")
full_response = sum(chunks[1:], chunks[0])
chat_history.add_message(full_response)
chat_history.add_user_message(user_input = input("User:> "))
Utilizar modelos de embeddings
Configura o teu ambiente de forma semelhante aos passos anteriores, mas usa a AzureAIInferenceEmbeddings classe:
from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceTextEmbedding
embedding_generation_service = AzureAIInferenceTextEmbedding(ai_model_id="<deployment-name>")
O código seguinte demonstra como obter embeddings do serviço.
embeddings = await embedding_generation_service.generate_embeddings(
texts=["My favorite color is blue.", "I love to eat pizza."],
)
for embedding in embeddings:
print(embedding)