Introducción
GitHub Models es una API de inferencia de IA de GitHub que te permite ejecutar modelos de IA simplemente con tus credenciales de GitHub. Puedes elegir entre muchos modelos diferentes, incluidos OpenAI, Meta y DeepSeek, y usarlos en scripts, aplicaciones o incluso en GitHub Actions, sin ningún proceso de autenticación independiente.
Esta guía te ayuda a probar modelos rápidamente en el área de juegos y, después, te muestra cómo ejecutar el primer modelo mediante la API o el flujo de trabajo.
Paso 1: Prueba de los modelos en el área de juegos
-
En el área de juegos, selecciona al menos un modelo en el menú desplegable.
-
Prueba diferentes mensajes con la vista Chat y compara las respuestas de diferentes modelos.
-
Usa la vista Parameters para personalizar los parámetros de los modelos que pruebas y, después, ver cómo afectan a las respuestas.
Nota:
El área de juegos funciona de manera predeterminada si has iniciado sesión en GitHub. Usa tu cuenta de GitHub para el acceso, sin necesidad de configuración ni de claves de API.
Paso 2: Realización de una llamada API
Para obtener detalles completos sobre los campos, encabezados y formatos de solicitud disponibles, consulta la referencia de API de GitHub Models.
Para llamar a los modelos mediante programación, necesitarás lo siguiente:
- Una cuenta de A GitHub.
- Un personal access token (PAT) con el ámbito
models
, que puedes crear en la configuración.
-
Ejecuta el siguiente comando
curl
y reemplazaYOUR_GITHUB_PAT
por el token.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?"}]}'
-
Recibirás una respuesta como la siguiente:
{ "choices": [ { "message": { "role": "assistant", "content": "The capital of France is **Paris**." } } ], ...other fields omitted }
-
Para probar otros modelos, cambia el valor del campo
model
de la carga JSON por uno des marketplace.
Paso 3: Ejecución de modelos en GitHub Actions
-
En el repositorio, crea un archivo de flujo de trabajo en
.github/workflows/models-demo.yml
. -
Pega el flujo de trabajo siguiente en el archivo que acabas de crear.
name: GitHub Models Demo on: [push] permissions: contents: read models: read jobs: summarize-repo: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Summarize the repository README run: | SUMMARY_INPUT=$(head -c 4000 README.md) PROMPT="Summarize this repository in one sentence. Here is the README:\n$SUMMARY_INPUT" PAYLOAD=$(jq -n --arg prompt "$PROMPT" '{ model: "openai/gpt-4.1", messages: [ {role: "user", content: $prompt} ] }') RESPONSE=$(curl -sL \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer $" \ -H "X-GitHub-Api-Version: 2022-11-28" \ -H "Content-Type: application/json" \ https://models.github.ai/inference/chat/completions \ -d "$PAYLOAD") echo "$RESPONSE" | jq -r '.choices[0].message.content'
Nota:
Los flujos de trabajo que llaman a GitHub Models deben incluir
models: read
en el bloque de permisos. Los ejecutores hospedados en GitHub proporcionan una instancia deGITHUB_TOKEN
de forma automática. -
Confirma e inserta para desencadenar el flujo de trabajo.
En este ejemplo se muestra cómo enviar un mensaje a un modelo y usar la respuesta en los flujos de trabajo de integración continua (CI). Para obtener casos de uso más avanzados, como resumir incidencias, detectar pasos de reproducción que faltan para informes de errores o responder a solicitudes de cambios, consulta Integración de modelos de IA en el flujo de trabajo de desarrollo.
Paso 4: Guardado del primer archivo de mensaje
GitHub Models admite mensajes reutilizables definidos en archivos .prompt.yml
. Una vez que agregues este archivo al repositorio, aparecerá en la página Models del repositorio y se puede ejecutar directamente en el Editor de mensajes y en las herramientas de evaluación. Más información sobre Storing prompts in GitHub repositories.
-
En el repositorio, crea un archivo con el nombre
summarize.prompt.yml
. Puedes guardarlo en cualquier directorio. -
Pega el mensaje de ejemplo siguiente en el archivo que acabas de crear.
name: One-line summary description: Ask the model to summarize a paragraph in one sentence. messages: - role: user content: 'Summarize the following text in one sentence: ' model: openai/gpt-4o
-
Confirma e inserta el archivo en el repositorio.
-
Navega a la pestaña Models del repositorio.
-
En el menú de navegación, haz clic en Prompts y después en el archivo de mensaje.
-
El mensaje se abrirá en el editor de mensajes. Haga clic en Ejecutar. Aparecerá una barra lateral derecha en la que se te pedirá que escribas texto de entrada. Escribe cualquier texto de entrada y, después, haz clic en Run de nuevo en la esquina inferior derecha para probarlo.
Nota:
El editor de mensajes no pasa automáticamente el contenido del repositorio a los mensajes. La entrada se proporciona manualmente.
Paso 5: Configuración de la primera evaluación
Las evaluaciones te ayudan a medir cómo responden los distintos modelos a las mismas entradas para que puedas elegir el mejor para tu caso de uso.
-
Vuelve al archivo
summarize.prompt.yml
que has creado en el paso anterior. -
Actualiza el archivo para que sea igual que el ejemplo siguiente.
name: One-line summary description: Ask the model to summarize a paragraph in one sentence. messages: - role: user content: 'Summarize the following text in one sentence: ' model: openai/gpt-4o testData: - 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: >- The museum's new dinosaur exhibit attracted many families with its fossils and interactive displays. - input: >- Lucy baked cookies for the school fundraiser. She spent the entire evening in the kitchen to make sure there were enough for everyone. expected: Lucy baked cookies all evening to support the school fundraiser. evaluators: - name: Similarity uses: github/similarity
-
Confirma e inserta el archivo en el repositorio.
-
En e repositorio, haz clic en la pestaña Models. Después, haz clic en Prompts y vuelve a abrir el mismo mensaje en el editor de mensajes.
-
En la esquina superior izquierda, puedes cambiar la vista de Edit a Compare. Haga clic en Compare (Comparar).
-
La evaluación se configurará automáticamente. Haz clic en Run para ver los resultados.
Sugerencia
Al hacer clic en Add prompt, puedes ejecutar el mismo mensaje con modelos diferentes, o bien cambiar el texto del mensaje para obtener respuestas de inferencia con varias variaciones a la vez, observar las evaluaciones y verlas en paralelo para tomar decisiones de modelo controladas por datos.