Cómo usar Prompty con Ollama 🦙

Para uno de los vídeos de mi serie sobre IA Generativa para developers de mi canal de YouTube, uso un montón Prompty. Todavía no está publicado, tendrás que suscribirte para no perdértelo 😇. Pero te adelanto que, básicamente, es una herramienta que nos permite en un formato YAML no sólo probar nuestros prompts de una forma sencilla y agnóstica al lenguaje o SDK sino que también nos va a permitir integrar estos como parte de nuestros desarrollos, haciendo que los prompts no queden hardcodeados como parte de nuestros desarrollos, que podamos pasarles parámetros de forma sencilla, etcétera. Si bien es cierto que en la documentación oficial no se indica, es posible hacer uso de Ollama con Prompty. En este artículo te cuento cómo hacerlo 👇🏻

Ollama ejecutándose en algún sitio

Lo primero que necesitas, obviamente, es tener Ollama ejecutándose en algún sitio. En mi caso lo tengo ejecutándose en mi máquina local pero lo utilizo desde dentro de un Dev Container como ya te mostré en este vídeo:

Por lo tanto, la URL que tendré que utilizar para poder interactuar con él es http://host.docker.internal:11434

¿Vale y ahora cómo lo llamo desde Prompty?

Configuración de Prompty con Ollama

Una vez que ya tienes tu Ollama ejecutándose en algún sitio puedes utilizarlo en tus configuraciones de Prompty de la siguiente forma:

---
name: Prompt básico
description: >
  Este es el primer prompt que usé en esta serie para mejorar títulos de vídeos de YouTube. En este caso,
  te muestro cómo puedes usar Prompty también con Ollama.
authors:
  - Gisela Torres
model: 
  api: chat  
  configuration:
    name: ${env:OLLAMA_MODEL}
    type: openai    
    base_url: ${env:OLLAMA_API_URL}    
    api_key: ${env:OLLAMA_API_KEY}
  parameters:
    max_tokens: 100
    temperature: 0.7
sample:
  description: >
    ¡Hola developer 👋🏻! Con este vídeo comienzo una nueva serie sobre cómo desarrollar funcionalidades para tus aplicaciones utilizando IA Generativa 🤖💡.
    Pero antes de empezar a aprender los diferentes conceptos, SDKs, etcétera 📚⚙️, necesitamos un entorno de desarrollo donde podamos ejecutar o invocar los diferentes modelos 🧠💻. 
    Por lo que en este primer vídeo te muestro cómo empezar con herramientas como Ollama 🦙, Docker Model Runner 🐳 y GitHub Models 🐙🐈‍⬛, 
    ya sea en tu máquina local 🖥️, dentro de un Dev Container 📦 o incluso en GitHub Codespaces ☁️🚀.  
---
system:
Eres un asistente de IA que ayuda a los usuarios a mejorar sus títulos de vídeos de YouTube. Aquí tienes los consejos de YouTube:
## Cómo redactar títulos
Sé preciso. Asegúrate de que el título represente con exactitud el video. De lo contrario, puede que los usuarios dejen de mirarlo, lo que puede afectar la visibilidad.
Sé breve. Es posible que los usuarios solo vean una parte del título. Por eso, intenta ser breve y colocar las palabras más importantes cerca del comienzo. Deja los números de episodio y el desarrollo de la marca para el final.
Limita el uso de MAYÚSCULAS y emojis. Usa estos recursos con cuidado para enfatizar emociones o elementos especiales en el video. Por ejemplo, “Nuestros HIJOS construyeron UN ROBOT 🤖”.
Los títulos NO DEBEN execederse entre 40 y 70 caracteres, por lo que debes asegurarte que la suma de caracteres del resultado no sean más de 70. YouTube solo acepta 100 caracteres. Si el título es demasiado largo, es posible que no se muestre completo en los resultados de búsqueda o en las vistas previas de los videos.
### Tipos de títulos de videos
Puedes atraer al público con los siguientes recursos:
- Títulos que se pueden buscar y que describen claramente lo que se puede esperar del video para llegar fácilmente a los usuarios que buscan contenido similar.
- Títulos interesantes que despiertan la curiosidad y atraen a los usuarios que no buscan contenido específico sobre un tema.

Devuelve solo un título mejorado, incluye emojis, hashtag pero no des explicaciones. No incluyas el nombre del canal ni la fecha de publicación.
user:
{{description}}

Como ves, lo que estoy haciendo es usar la configuración para el tipo OpenAI y, por otro lado, hago uso de un archivo .env para almacenar, la URL, el modelo y la API Key, que en el caso de Ollama no es necesaria pero si para que el SDK de OpenAI que se utiliza internamente no se queje.

OLLAMA_API_URL=http://host.docker.internal:11434/v1
# OLLAMA_MODEL=mistral-nemo
OLLAMA_MODEL=gemma3
OLLAMA_API_KEY=ollama

Como ves, la URL que uso como endpoint es la que hace referencia a mi host, con el puerto de Ollama, seguido de /v1.

Por otro lado, si estás usando diferentes configuraciones para diferentes modelos usando las settings de Visual Studio Code, podrías configurar varios de los modelos que tengas en tu Ollama de la siguiente forma:

{
    "prompty.modelConfigurations": [       
        {
            "name": "llama3.1",
            "type": "openai",
            "api_key": "ollama",            
            "base_url": "http://host.docker.internal:11434",
            "model": "llama3.1",
        },
        {
            "name": "gemma3",
            "type": "openai",
            "api_key": "ollama",            
            "base_url": "http://host.docker.internal:11434",
            "model": "gemma3",
        },
        {
            "name": "mistral-nemo",
            "type": "openai",
            "api_key": "ollama",            
            "base_url": "http://host.docker.internal:11434",
            "model": "mistral-nemo",
        },
        {
            "name": "deepseek-r1",
            "type": "openai",
            "api_key": "ollama",            
            "base_url": "http://host.docker.internal:11434",
            "model": "deepseek-r1",
        }
    ],
    "prompty.currentModelConfiguration": "llama3.1"
}

¡Nos vemos 👋🏻!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.