Generador de curl para LLM
WebTodo se ejecuta en tu navegador: no se sube nada
Tarde o temprano todo el mundo escribe a mano una llamada curl a un modelo, y los dos backends se diferencian en cada detalle: la ruta (/api/chat frente a /v1/chat/completions), dónde viven los parámetros de muestreo (Ollama los anida bajo options, OpenAI los pone en el nivel superior), si hace falta una cabecera Authorization, cómo se escribe el modo JSON y qué aspecto tiene la respuesta. Cuando algo de eso está mal, el error suele ser poco útil: un 400, o un bloque de JSON que no explica nada. Por eso aquí los dos backends son un solo desplegable, la salida es un comando completo y un cuerpo de petición listos para pegar en una terminal, y las diferencias tienen su propio bloque, de modo que cambiar de backend es cuestión de editar los campos que se han movido. ⚠️ Esta herramienta solo construye el comando: nunca envía una petición ni lee tu entorno. `$OPENAI_API_KEY` se le entrega a tu shell para que lo expanda. La distinción importa, porque un generador de peticiones se confunde fácilmente con un emisor de peticiones, y este sitio no tiene backend y nunca llama a nada en tu nombre.
Funciones
- Las dos API en un solo sitio: Ollama nativa (/api/chat) y compatible con OpenAI (/v1/chat/completions)
- ⚠️ Las diferencias se listan al lado; el error más habitual es dónde viven los parámetros de muestreo
- El comando curl se pega directamente en una terminal, con el cuerpo entre comillas simples y las comillas internas bien cortadas
- El cuerpo de la petición va en su propio bloque, listo para adaptarlo a otro lenguaje
- El prompt de sistema es opcional; omitirlo no inserta un mensaje vacío
- El modo JSON se escribe distinto en cada backend y se genera en consecuencia
- Una temperatura fuera de 0-2 falla antes de generar, en vez de producir un comando que dará 400
- ⚠️ La clave se escribe como una referencia a variable, tipo $OPENAI_API_KEY; la herramienta no lee ningún entorno ni toca ninguna clave real
- Todo se ejecuta en tu navegador y solo produce texto
Cómo se usa
- Escribe el prompt que quieres enviar
- Elige la API: un Ollama local o un servicio compatible con OpenAI
- Opcionalmente define el endpoint, el modelo y el prompt de sistema; si no, se usan valores por defecto razonables
- Copia el comando curl entero y ejecútalo en tu terminal
Preguntas frecuentes
- ¿Envía la petición por mí?
- No. Este es un sitio estático sin ningún backend, así que la salida es texto: el comando, el cuerpo de la petición y una comparación de en qué se diferencian las dos API. No hace peticiones de red, no lee tu entorno y no tiene ni idea de cuál es tu clave. Para llamar de verdad al modelo, pega el comando en tu propia terminal.
- ¿Por qué el comando de Ollama no lleva clave?
- Porque Ollama escucha en localhost (127.0.0.1:11434) y no autentica de forma predeterminada, así que una llamada local no necesita clave. ⚠️ Ese es también su filo: si expones Ollama a internet sin poner delante un proxy inverso con autenticación, cualquiera podrá ejecutar modelos en tu máquina y consumir tu GPU y tu memoria. Eso es bastante peor que filtrar una clave de API. Para usarlo en remoto, pon delante un proxy con autenticación.
- Puse temperature en el nivel superior y no cambió nada. ¿Por qué?
- Porque Ollama toma sus parámetros de muestreo dentro de un objeto options (options.temperature, options.num_predict), mientras que la API compatible con OpenAI los toma en el nivel superior. Ponerlos arriba en Ollama no es un error: los campos desconocidos se ignoran en silencio, lo que se manifiesta como parámetros que parecen no hacer nada. Esta herramienta los coloca bien según el backend elegido y enumera esos puntos en el bloque de diferencias.
- ¿Puede generar Python o JavaScript en vez de curl?
- Por ahora solo curl, y la razón es que curl es el mínimo común: funciona en cualquier máquina donde esté instalado, sobrevive a un pegado en documentación, un ticket o un README, y muestra cada parte de la petición HTTP al descubierto. Pasarlo a otro lenguaje es cuestión de copiar esas partes. El cuerpo es un bloque JSON aparte, que encaja directamente en requests.post(url, json=body) o en fetch(url, {body}).
Herramientas relacionadas
Caja de cURL
WebConvierte un comando curl en código de siete lenguajes, lo desglosa en método, cabeceras y cuerpo, o construye un curl a partir de una petición HTTP.
Validador de config
WebComprueba package.json, .env, robots.txt, sitemap.xml o cabeceras HTTP. Hallazgos en tres niveles —errores, avisos y sugerencias—, cada uno explicado.
Compose ↔ docker run
WebConvierte en ambos sentidos entre los services de compose y docker run. Las claves sin equivalente se listan con su motivo, nunca se descartan.
Analizador de URL
WebDescompone una URL en esquema, host, puerto, ruta, parámetros y ancla, con cada parámetro en crudo y decodificado. Todo en tu navegador.
Analizador de UA
WebAnaliza un User-Agent: navegador, versión, sistema, tipo de dispositivo y motor, con las reglas que coinciden. Solo coincidencia de patrones.
Códigos de estado HTTP
WebConsulta un código de estado HTTP: significado, clase 1xx–5xx, usos típicos y trampas habituales. También busca por palabra clave. Todo local.