Introduction
GitHub Models est une API d'inférence IA de GitHub qui vous permet d'exécuter des modèles IA en utilisant uniquement vos identifiants GitHub. Vous pouvez choisir parmi de nombreux modèles différents, notamment ceux proposés par OpenAI, Meta et DeepSeek, et les utiliser dans des scripts, des applications ou même GitHub Actions, sans processus d'authentification distinct.
Ce guide vous aide à tester rapidement des modèles dans le terrain de jeu, puis vous montre comment exécuter votre premier modèle via une API ou un flux de travail.
Étape 1 : Essayer des modèles dans le terrain de jeu
-
Accédez à https://github.com/marketplace/models.
-
Dans le terrain de jeu, sélectionnez au moins un modèle dans le menu déroulant.
-
Testez différentes invites à l’aide de la vue conversation instantanée et comparez les réponses de différents modèles.
-
Utilisez la vue Paramètres pour personnaliser les paramètres des modèles que vous testez, puis découvrez leur impact sur les réponses.
Remarque
Le terrain de jeu fonctionne dès son installation si vous êtes connecté à GitHub. Il utilise votre compte GitHub pour l'accès, sans configuration ni clés API requises.
Étape 2 : Effectuer un appel d’API
Pour plus de détails sur les champs disponibles, les en-têtes et les formats de requête, consultez la référence API pour GitHub Models.
Pour appeler des modèles par programmation, vous aurez besoin de :
- Un compte GitHub.
- Un personal access token (PAT) avec la
models
portée, que vous pouvez créer dans les paramètres.
-
Exécutez
curl
la commande suivante, en remplaçantYOUR_GITHUB_PAT
par votre propre jeton.Bash curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer YOUR_GITHUB_PAT" \ -H "X-GitHub-Api-Version: 2022-11-28" \ -H "Content-Type: application/json" \ https://models.github.ai/inference/chat/completions \ -d '{"model":"openai/gpt-4.1","messages":[{"role":"user","content":"What is the capital of France?"}]}'
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer YOUR_GITHUB_PAT" \ -H "X-GitHub-Api-Version: 2022-11-28" \ -H "Content-Type: application/json" \ https://models.github.ai/inference/chat/completions \ -d '{"model":"openai/gpt-4.1","messages":[{"role":"user","content":"What is the capital of France?"}]}'
-
Vous recevez une réponse semblable à celle-ci :
{ "choices": [ { "message": { "role": "assistant", "content": "The capital of France is **Paris**." } } ], ...other fields omitted }
-
Pour essayer d’autres modèles, remplacez la valeur du champ
model
de la charge utile JSON par une valeur de la de la place de marché.
Étape 3 : Exécuter des modèles dans GitHub Actions
-
Dans votre référentiel, créez un fichier de flux de travail à
.github/workflows/models-demo.yml
. -
Collez le flux de travail suivant dans le fichier que vous venez de créer.
YAML name: Use GitHub Models on: [push] permissions: models: read jobs: call-model: runs-on: ubuntu-latest steps: - name: Call AI model env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | curl "https://models.github.ai/inference/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $GITHUB_TOKEN" \ -d '{ "messages": [ { "role": "user", "content": "Explain the concept of recursion." } ], "model": "openai/gpt-4o" }'
name: Use GitHub Models on: [push] permissions: models: read jobs: call-model: runs-on: ubuntu-latest steps: - name: Call AI model env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | curl "https://models.github.ai/inference/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $GITHUB_TOKEN" \ -d '{ "messages": [ { "role": "user", "content": "Explain the concept of recursion." } ], "model": "openai/gpt-4o" }'
Remarque
Les flux de travail qui appellent GitHub Models doivent inclure
models: read
dans le bloc des autorisations. Les exécuteurs hébergés par GitHub fournissent automatiquement unGITHUB_TOKEN
. -
Validez et validez pour déclencher le flux de travail.
Cet exemple montre comment envoyer une invite à un modèle et utiliser la réponse dans vos flux de travail d'intégration continue (CI). Pour des cas d'utilisation plus avancés, tels que la synthèse des problèmes, la détection des étapes de reproduction manquantes pour les rapports de bogues ou la réponse aux demandes d'extraction, consultez Intégrer des modèles d'IA dans votre flux de développement.
Étape 4 : Enregistrer votre premier fichier d’invite
GitHub Models prend en charge les invites réutilisables définies dans les fichiers .prompt.yml
. Une fois que vous avez ajouté ce fichier à votre référentiel, il apparaît dans la page Modèles de votre référentiel et peut être exécuté directement dans l’éditeur d’invite et les outils d’évaluation. En savoir plus sur Storing prompts in GitHub repositories.
-
Dans votre référentiel, créez un fichier nommé
summarize.prompt.yml
. Vous pouvez l’enregistrer dans n’importe quel répertoire. -
Collez l'exemple d'invite suivant dans le fichier que vous venez de créer.
YAML name: Text Summarizer description: Summarizes input text concisely model: gpt-4o-mini modelParameters: temperature: 0.5 messages: - role: system content: You are a text summarizer. Your only job is to summarize text given to you. - role: user content: | Summarize the given text, beginning with "Summary -": <text> {{input}} </text>
name: Text Summarizer description: Summarizes input text concisely model: gpt-4o-mini modelParameters: temperature: 0.5 messages: - role: system content: You are a text summarizer. Your only job is to summarize text given to you. - role: user content: | Summarize the given text, beginning with "Summary -": <text> {{input}} </text>
-
Validez et transférez le fichier vers votre référentiel.
-
Accédez à l’onglet Modèles de votre référentiel.
-
Dans le menu de navigation, cliquez sur Invites, puis cliquez sur le fichier d'invite.
-
L’invite s’ouvre dans l’éditeur d’invite. Cliquez sur Exécuter. Une barre latérale droite s’affiche pour vous demander d’entrer du texte d’entrée. Entrez du texte d’entrée, puis cliquez sur Exécuter à nouveau dans le coin inférieur droit pour le tester.
Remarque
L’éditeur d’invite ne transmet pas automatiquement le contenu du référentiel aux invites. Vous fournissez l’entrée manuellement.
Étape 5 : Configurer votre première évaluation
Les évaluations vous aident à mesurer la façon dont les différents modèles répondent aux mêmes entrées afin de pouvoir choisir le meilleur pour votre cas d’usage.
-
Revenez au fichier
summarize.prompt.yml
que vous avez créé à l'étape précédente. -
Mettez à jour le fichier pour qu'il corresponde à l'exemple suivant.
YAML name: Text Summarizer description: Summarizes input text concisely model: gpt-4o-mini modelParameters: temperature: 0.5 messages: - role: system content: You are a text summarizer. Your only job is to summarize text given to you. - role: user content: | Summarize the given text, beginning with "Summary -": <text> {{input}} </text> testData: - input: | The quick brown fox jumped over the lazy dog. The dog was too tired to react. expected: Summary - A fox jumped over a lazy, unresponsive dog. - input: | The museum opened a new dinosaur exhibit this weekend. Families from all over the city came to see the life-sized fossils and interactive displays. expected: Summary - The museum's new dinosaur exhibit attracted many families with its fossils and interactive displays. evaluators: - name: Output should start with 'Summary -' string: startsWith: 'Summary -' - name: Similarity uses: github/similarity
name: Text Summarizer description: Summarizes input text concisely model: gpt-4o-mini modelParameters: temperature: 0.5 messages: - role: system content: You are a text summarizer. Your only job is to summarize text given to you. - role: user content: | Summarize the given text, beginning with "Summary -": <text> {{input}} </text> testData: - input: | The quick brown fox jumped over the lazy dog. The dog was too tired to react. expected: Summary - A fox jumped over a lazy, unresponsive dog. - input: | The museum opened a new dinosaur exhibit this weekend. Families from all over the city came to see the life-sized fossils and interactive displays. expected: Summary - The museum's new dinosaur exhibit attracted many families with its fossils and interactive displays. evaluators: - name: Output should start with 'Summary -' string: startsWith: 'Summary -' - name: Similarity uses: github/similarity
-
Validez et transférez le fichier vers votre référentiel.
-
Dans votre référentiel, cliquez sur l'onglet Modèles. Cliquez ensuite sur ** Invites **et rouvrez la même invite dans l'éditeur d'invites.
-
Dans le coin supérieur gauche, vous pouvez basculer la vue de Modifier vers Comparer. Cliquez sur Comparer.
-
Votre évaluation sera configurée automatiquement. Cliquez sur Exécuter pour afficher les résultats.
Conseil
En cliquant sur Ajouter une invite, vous pouvez exécuter la même invite avec différents modèles ou modifier la formulation de l’invite pour obtenir des réponses d’inférence avec plusieurs variantes à la fois, voir les évaluations et les afficher côte à côte pour prendre des décisions de modèle pilotées par les données.