Pega una transcripción para convertirla.
Qué hace
El conversor de formatos de chat transforma una transcripción de chat en la forma de otro proveedor: messages[] de OpenAI, messages[] de Anthropic con un system de nivel superior, contents[] de Gemini (donde el asistente es model), o una transcripción Markdown simple. Pega una transcripción, elige los formatos de origen y destino, y obtén la carga equivalente lista para la otra API. Todo se ejecuta 100% en el cliente — nada de lo que pegas se envía nunca a un servidor, así que es seguro para logs y cargas reales.
La conversión pasa por una lista interna de mensajes compartida, así que los roles se mapean fielmente (system se convierte en el system de nivel superior de Anthropic y en el systemInstruction de Gemini; el model de Gemini se convierte en assistant) y las llamadas a herramientas, sus resultados y sus ids de correlación se conservan entre formatos. Los campos que un formato destino no puede representar (llamadas a herramientas en Markdown, nombres por mensaje en Anthropic/Gemini) se marcan como avisos en lugar de descartarse en silencio, y un recorrido OpenAI → OpenAI es sin pérdida.
Cómo usarlo
- Pega tu transcripción en la caja Transcript (o pulsa Sample para cargar una conversación de demostración).
- Elige el formato de origen bajo From y el destino bajo To — o pulsa el botón de intercambio entre ambos para invertir la dirección.
- Lee la transcripción convertida en Output; pulsa Copy output para copiarla.
- Revisa Warnings (mostrado solo cuando existe) por cualquier cosa que no se pudo mapear, como llamadas a herramientas camino de Markdown.
- Copy share link codifica la transcripción y ambos formatos en la URL, así que un enlace reproduce la conversión exacta.
Ejemplos
OpenAI → Anthropic (el system sube al nivel superior)
Entrada:
{
"messages": [
{ "role": "system", "content": "You are terse." },
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello." }
]
}
Salida:
{
"system": "You are terse.",
"messages": [
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello." }
]
}
OpenAI → Gemini (assistant pasa a model, system pasa a systemInstruction)
Salida:
{
"systemInstruction": { "parts": [{ "text": "You are terse." }] },
"contents": [
{ "role": "user", "parts": [{ "text": "Hi" }] },
{ "role": "model", "parts": [{ "text": "Hello." }] }
]
}
OpenAI → Markdown (un turno con herramientas — las llamadas se marcan, no se pierden)
Un mensaje de asistente con tool_calls se convierte en bloques **assistant**: / **tool**: e informa de message 0: tool calls are not representable in Markdown and were dropped para que sepas exactamente qué no sobrevivió al recorrido.
Buen saber
- Las llamadas a herramientas sobreviven entre formatos JSON:
tool_callsde OpenAI ↔ bloquestool_use/tool_resultde Anthropic ↔ partesfunctionCall/functionResponsede Gemini, con los ids (o los nombres de Gemini) como clave de correlación. - Recorrido sin pérdida en el mismo formato: convertir OpenAI → OpenAI analiza hacia la forma interna y de vuelta sin cambiar los mensajes de contenido tipo string.
- Compartible: la transcripción y ambos formatos se codifican en la URL (
?t=…&from=…&to=…). - Privado: todo el análisis ocurre localmente — seguro para logs, prompts y credenciales reales.
- Herramientas relacionadas: Token Estimator, LLM Cost Calculator, JSON Formatter.