Een eindpunt en SDK kiezen

Voltooid

Microsoft Foundry biedt flexibiliteit voor het ontwikkelen van generatieve AI-chattoepassingen. Voordat u begint met ontwikkelen, is het belangrijk om inzicht te krijgen in de beschikbare opties en hoe u kunt bepalen welke opties u wilt gebruiken. Enkele overwegingen voor het ontwikkelen van een toepassing zijn:

  • Eindpunten: Microsoft Foundry-projecten bieden twee eindpunten die u kunt gebruiken om verbinding te maken met projectassets, zoals modelimplementaties, vanuit clienttoepassingen en deze te gebruiken. Elk project heeft zowel een Project-eindpunt als een Azure OpenAI-eindpunt.
  • Client-SDK: afhankelijk van het eindpunt dat u selecteert, kunt u ervoor kiezen om de Microsoft Foundry SDK of de OpenAI SDK te gebruiken om een generatieve AI-chattoepassing te ontwikkelen. Beide SDK's ondersteunen een clientobject dat compatibel is met de OpenAI-API waarmee prompts naar modellen kunnen worden verzonden, maar er zijn enkele verschillen in de specifieke functionaliteit die beschikbaar is in elke SDK.
  • Verificatie: Afhankelijk van het eindpunt en de SDK die u wilt gebruiken, zijn er meerdere manieren waarop een clienttoepassing kan worden geverifieerd door Foundry om toegang te krijgen tot assets. In het algemeen moeten productietoepassingen gebruikmaken van Microsoft Entra ID-verificatie . Hiervoor moet de toepassing worden uitgevoerd in de context van een specifieke identiteit; Maar in sommige scenario's kunt u ook verificatie op basis van sleutels of tokens gebruiken.
  • Chat-API: de OpenAI-client-API ondersteunt twee chat-API's: ChatCompletions en Antwoorden. Hoewel de Response-API wordt aanbevolen voor de meeste nieuwe ontwikkelprojecten, is de ChatCompletions-API goed tot stand gebracht en compatibel met veel generatieve AI-modellen en -platforms.

Laten we beginnen met het overwegen van de beschikbare eindpunten, client-SDK's en verificatiemethoden. Later verkennen we de antwoorden en ChatCompletions-API's.

De Foundry SDK gebruiken met het projecteindpunt

De Microsoft Foundry SDK biedt programmatische toegang tot resources in uw projecten via een REST API en taalspecifieke clientbibliotheken; Inclusief:

Opmerking

Deze module maakt gebruik van Python-codevoorbeelden voor algemene taken. Raadpleeg de taalspecifieke SDK-documentatie voor equivalente code in uw voorkeurstaal. Elke SDK wordt onafhankelijk ontwikkeld en onderhouden, dus sommige functionaliteit kan zich in verschillende fasen van de implementatie bevinden.

De SDK installeren

Als u de bibliotheek Azure AI Projects in Python wilt gebruiken, installeert u het pakket azure-ai-projects uit PyPI, samen met ondersteunende pakketten:

pip install azure-ai-projects azure-identity openai

Opmerking

Wanneer u de Foundry SDK gebruikt om een chattoepassing te ontwikkelen, moet u ook het OpenAI SDK-pakket importeren. De functionaliteit van de chatclient in de Foundry SDK is afgeleid van de OpenAI SDK.

Verbinding maken met het projecteindpunt

Elke Foundry-project heeft een uniek eindpunt dat u kunt vinden op de Overzicht pagina van het project in de Foundry-portal op https://ai.azure.com.

Het project-eindpunt volgt deze indeling:

https://{resource-name}.services.ai.azure.com/api/projects/<project-name>

Gebruik dit eindpunt om een AIProjectClient-object te maken:

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

project_endpoint = "https://{resource-name}.services.ai.azure.com/api/projects/<project-name>"
project_client = AIProjectClient(
    credential=DefaultAzureCredential(),
    endpoint=project_endpoint
)

Opmerking

De code maakt gebruik van standaardreferenties Azure om te verifiëren. Als u deze verificatie wilt inschakelen, moet u het pakket azure-identity installeren (weergegeven in de installatieopdracht eerder).

Aanbeveling

Om toegang te krijgen tot het project moet de code worden uitgevoerd in een geauthenticeerde Azure-sessie. U kunt bijvoorbeeld de opdracht Azure CLI az login gebruiken om u aan te melden voordat u de code uitvoert.

De projectclient (AIProjectClient) biedt toegang tot Foundry-systeemeigen bewerkingen die geen OpenAI-equivalenten hebben. Gebruik de project-client voor het volgende:

  • Resourceverbindingen ophalen
  • Projectconfiguratie openen
  • Tracering inschakelen
  • Gegevenssets en indexen beheren

Een chatclient maken

Als u wilt chatten met een model in uw Foundry-project, hebt u een openAI-compatibel clientobject nodig. U kunt de methode get_openai_client() van de projectclient gebruiken om er een op te halen, zoals:

openai_client = project_client.get_openai_client(api_version="2024-10-21")

Vervolgens kunt u dit chatclientobject gebruiken om prompts te verzenden naar modellen en antwoorden te retourneren.

De OpenAI SDK gebruiken met het Azure OpenAI-eindpunt

De OpenAI SDK is de officiële clientbibliotheek voor het aanroepen van de OpenAI-API. Het verwerkt HTTP-aanvragen, verificatie, nieuwe pogingen en antwoordparsering. De SDK werkt met door OpenAI gehoste modellen, Azure OpenAI-implementaties en Foundry-modellen met dezelfde patronen.

De SDK installeren

Als u de OpenAI-bibliotheek in Python wilt gebruiken, installeert u het openai-pakket van PyPI, samen met ondersteunende pakketten:

pip install openai azure-identity

Opmerking

Het azure-identity-pakket is vereist als u verificatie op basis van tokens wilt gebruiken om verbinding te maken met het eindpunt met behulp van Microsoft Entra ID-referenties.

Verbinding maken met het Azure OpenAI-eindpunt

Elk Foundry-project bevat een Azure OpenAI-eindpunt dat u kunt vinden op de overzichtspagina van het project in de Foundry-portal op https://ai.azure.com.

Het Azure OpenAI-eindpunt volgt deze indeling:

https://{resource-name}.openai.azure.com/openai/v1

Maak een OpenAI-client met uw eindpunt en Azure-referenties:

from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://ai.azure.com/.default"
)

openai_client = OpenAI(  
  base_url = "https://{resource-name}.openai.azure.com/openai/v1/",  
  api_key=token_provider,
)

Naast De Microsoft Entra-id (aanbevolen), kunt u zich verifiëren met behulp van een API-sleutel of omgevingsvariabelen.

VERIFICATIE van API-sleutel:

import os
from openai import OpenAI

openai_client = OpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    base_url="https://{resource-name}.openai.azure.com/openai/v1/"
)

Belangrijk

Gebruik API-sleutels met voorzichtigheid. Sla ze veilig op in Azure Key Vault en neem ze nooit rechtstreeks in uw code op.

Omgevingsvariabelen:

Als u de omgevingsvariabelen OPENAI_BASE_URL en OPENAI_API_KEY instelt, gebruikt de client deze automatisch.

from openai import OpenAI

openai_client = OpenAI()  # Uses environment variables

Ongeacht hoe u ervoor kiest om te verifiëren, verwerkt de OpenAI-client modeldeductiebewerkingen. Gebruik deze voor:

  • Antwoorden genereren met de Antwoorden-API
  • Voltooiingen van chats en het genereren van afbeeldingen
  • Directe modellen van Foundry openen (niet-Azure OpenAI-modellen)

Een AzureOpenAI-clientobject gebruiken

Over het algemeen moet u het OpenAI-clientobject gebruiken om te chatten met modellen via het Azure OpenAI v1-eindpunt. U hebt echter ook de mogelijkheid om een AzureOpenAI-clientobject te maken als u functionaliteit van een specifieke versie van de Azure OpenAI-API wilt gebruiken. Als u een AzureOpenAI-clientobject wilt maken, moet u de API-versie en het Azure-eindpunt opgeven, zoals deze:

import os
from openai import AzureOpenAI
    
openai_client = AzureOpenAI(
    azure_endpoint = "https://{resource-name}.openai.azure.com"
    api_key=os.getenv("AZURE_OPENAI_KEY"),  
    api_version="2024-10-21",
)

Kiezen tussen de Foundry SDK en OpenAI SDK

Microsoft Foundry ondersteunt twee benaderingen voor het bouwen van AI-toepassingen. Elk dient verschillende doeleinden en inzicht in wanneer u elke oplossing moet gebruiken, helpt u bij het bouwen van de juiste oplossing.

Wanneer gebruikt u de Foundry SDK?

Gebruik de Foundry SDK wanneer uw toepassing foundry-specifieke mogelijkheden nodig heeft:

  • Foundry Agent Service voor het bouwen en beheren van AI-agents
  • Werkstromen voor het aanroepen en goedkeuren van hulpprogramma's
  • Cloudevaluaties voor het testen en valideren van AI-antwoorden
  • Tracering en waarneembaarheid voor het bewaken van toepassingsgedrag
  • Foundry direct-modellen (OpenAI-modellen buiten Azure om, beschikbaar via de modelcatalogus)
  • Projectmetagegevens, verbindingen en governancefuncties

Microsoft raadt de Foundry SDK aan bij het bouwen van apps met agents, evaluaties of Foundry-specifieke functies.

Wanneer moet u de OpenAI SDK gebruiken

Gebruik de OpenAI SDK wanneer u maximale compatibiliteit met de OpenAI-API nodig hebt:

  • Volledige OpenAI API-compatibiliteit voor bestaande code en hulpprogramma's
  • Draagbaarheid tussen OpenAI- en Azure OpenAI-implementaties
  • Chatvoltooiingen, antwoorden en afbeeldingen API's
  • Minimale afhankelijkheid van Foundry-specifieke concepten

De OpenAI SDK is ideaal voor modeldeductieworkloads waarin u wilt dat bestaande OpenAI-code werkt met minimale wijzigingen. Deze benadering biedt echter geen Foundry-specifieke functies, zoals agenten of evaluaties.

Microsoft Foundry biedt u flexibiliteit bij het bouwen van AI-toepassingen. Gebruik de Foundry SDK met AIProjectClient wanneer u functies op projectniveau nodig hebt, zoals agents, evaluaties, tracering en verbindingen. Gebruik de OpenAI SDK wanneer u eenvoudige modeldeductie nodig hebt met maximale OpenAI-compatibiliteit. Beide SDK's werken met uw Foundry-projecteindpunt, zodat u ze zo nodig kunt combineren in uw toepassingen. U kunt beide SDK's ook samen gebruiken in dezelfde toepassing: de Foundry SDK voor projectfuncties en de OpenAI SDK voor modeldeductie.