Aller au contenu

Créer mon projet et appeler l’API

Un projet à vous, un modèle déployé dedans, un endpoint : c’est tout ce qu’il faut pour appeler l’IA depuis votre code. Le projet se crée dans la ressource Foundry existante, jamais dans une nouvelle ressource — celle-là serait un lab Azure à part entière, avec son Resource Group, ses tags et sa déclaration.

  1. Ouvrez le projet Foundry des labs, puis créez un projet depuis le sélecteur de projet. La ressource proposée doit être aif-azurefoundry-lab-szn : c’est elle qui porte les quotas et la facture du lab.

  2. Nommez le projet de façon identifiable, votre trigramme suivi du sujet : proj-qro-extraction-factures. La ressource est partagée, et personne ne doit avoir à demander à qui appartient ce projet. Même esprit que le nommage des labs.

  3. Déployez un modèle depuis le catalogue de modèles. Le nom du déploiement est celui que votre code utilisera : gardez le nom du modèle, sans le décorer.

  4. Choisissez le type de déploiement en connaissance de cause : c’est là que se décident le coût et le lieu de traitement, voir juste en dessous.

  5. Copiez l’endpoint du projet, affiché sur l’accueil du projet. Il a cette forme :

    https://aif-azurefoundry-lab-szn.services.ai.azure.com/api/projects/<votre-projet>

Le type de déploiement décide du coût et du lieu

Section intitulée « Le type de déploiement décide du coût et du lieu »
Le type Comment il se facture Où vos invites sont traitées
Global Standard Au jeton, rien sans appel. Le plus large catalogue et le tarif le plus bas. N’importe quelle géographie où le modèle est déployé, donc hors de Suisse et hors d’Europe.
Data zone Standard Au jeton, rien sans appel. Dans la zone de données de la ressource, sans en sortir.
Standard (régional) Au jeton, rien sans appel. Dans la géographie de la ressource. Le catalogue y est le plus étroit.
Provisionné À l’heure, appel ou pas, tant que le déploiement existe. Selon la variante choisie.
Batch Au jeton, environ moitié prix, en asynchrone. Traitement global.

Pour un test, Global Standard est le choix par défaut : rien à payer tant que vous n’appelez pas. Un déploiement provisionné est un engagement horaire, à ne pas créer sans accord préalable de lab@qiminfo.ch.

L’authentification se fait avec votre compte Qim info, via Azure CLI : aucune clé à stocker, aucune clé à faire fuir.

  1. Connectez-vous. Si votre session Azure CLI est ouverte sur un autre tenant, ajoutez --tenant avec celui des labs.

    Fenêtre de terminal
    az login
  2. Installez le client et déclarez l’endpoint.

    Fenêtre de terminal
    pip install "azure-ai-projects>=2.3.0" azure-identity
    export AZURE_AI_PROJECT_ENDPOINT="https://aif-azurefoundry-lab-szn.services.ai.azure.com/api/projects/proj-qro-extraction-factures"
  3. Appelez le modèle. Le paramètre model attend le nom de votre déploiement, pas celui du modèle du catalogue — ils se ressemblent, et c’est la première cause de 404.

    import os
    from azure.ai.projects import AIProjectClient
    from azure.identity import DefaultAzureCredential
    project = AIProjectClient(
    endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
    )
    client = project.get_openai_client()
    response = client.responses.create(
    model="gpt-5-mini",
    input="Résume en trois phrases ce qu’est un Resource Group Azure.",
    )
    print(response.output_text)

Pour vérifier l’accès sans écrire de code, un jeton et une requête suffisent.

Fenêtre de terminal
TOKEN=$(az account get-access-token --scope https://ai.azure.com/.default --query accessToken -o tsv)
curl -X POST "$AZURE_AI_PROJECT_ENDPOINT/openai/v1/responses" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-5-mini", "input": "Bonjour"}'

Les SDK Foundry ont changé d’API entre leurs versions 1.x et 2.x, et les exemples qui traînent sur le web mélangent les deux. Le playground de votre projet affiche le code correspondant à ce qui est déployé, dans le langage de votre choix : c’est la seule référence qui ne se périme pas.

Le symptôme Ce qui se passe
Le portail veut créer une nouvelle ressource Vous êtes dans le parcours de création complet, pas dans celui d’un projet. Repartez de la ressource aif-azurefoundry-lab-szn et créez le projet dedans.
404 sur le nom du modèle model attend le nom du déploiement tel qu’il apparaît dans votre projet, et le déploiement doit être dans le projet visé par l’endpoint.
401 malgré az login Votre session est ouverte sur un autre tenant ou un autre compte : az account show le dit. Rejouez az login avec --tenant.
403 alors que le playground fonctionne Le portail et le SDK ne passent pas par les mêmes droits. Écrivez à lab@qiminfo.ch avec le nom du projet.
Le déploiement échoue faute de quota Le quota de jetons par minute de la ressource est déjà distribué entre les déploiements existants. Réduisez le quota demandé, ou demandez un arbitrage à lab@qiminfo.ch.
Le modèle voulu n’est pas proposé Il n’existe pas dans la région de la ressource, ou pas dans le type de déploiement choisi. Un type Global élargit souvent le catalogue.
La facture monte sans que rien tourne Un déploiement provisionné, un modèle affiné hébergé, ou une boucle de test laissée en marche. Regardez la liste des déploiements du projet avant de chercher ailleurs.

Rien n’expire tout seul. Supprimez d’abord les déploiements, puis le projet : c’est ce qui arrête la facturation et libère du quota pour les collègues.

Ce qui compte se conserve ailleurs : vos invites, vos jeux d’essai et vos scripts ont leur place dans un dépôt Git. Aucune sauvegarde n’est garantie dans le lab, et le projet supprimé emporte ses conversations.

Règles applicables

Aucune donnée sensible

À ma charge

Aucune donnée client réelle, personnelle ou sensible ne doit être déposée dans un lab.

ObligatoirePR-GOVCLOUDLAB-A-01 / PR-GOVLABONPREM-A-01

Budget indicatif

Recommandation

Budget indicatif d’environ 200 CHF par mois et par lab.

Non bloquantPR-GOVCLOUDLAB-A-01

Nettoyage et documentation

À ma charge

Arrêter ou supprimer les ressources inutiles et documenter le lab au fil de l’eau.

Non bloquantPR-GOVCLOUDLAB-A-01

Un besoin qui dépasse le libre-service — un modèle absent, un quota plus large, un déploiement provisionné, un affinage, une connexion vers des données internes : écrivez à lab@qiminfo.ch en décrivant le test et sa durée.