piapia123
es

Generador de curl para LLM

Web

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

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

  1. Escribe el prompt que quieres enviar
  2. Elige la API: un Ollama local o un servicio compatible con OpenAI
  3. Opcionalmente define el endpoint, el modelo y el prompt de sistema; si no, se usan valores por defecto razonables
  4. 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