Cole uma transcrição para convertê-la.
O que faz
O Conversor de Formato de Chat transforma uma transcrição de chat no formato de outro provedor: messages[] do OpenAI, messages[] do Anthropic com um system de nível superior, contents[] do Gemini (onde o assistente é model), ou uma transcrição Markdown simples. Cole uma transcrição, escolha os formatos de origem e destino, e receba o payload equivalente pronto para a outra API. Tudo roda 100% no cliente - nada do que você cola é enviado a um servidor, então é seguro para logs e payloads reais.
A conversão passa por uma lista interna compartilhada de mensagens, então os papéis mapeiam fielmente (system vira o system de nível superior do Anthropic e o systemInstruction do Gemini; o model do Gemini vira assistant) e chamadas de ferramenta, resultados de ferramenta e seus ids de correlação são preservados entre formatos. Campos que um formato de destino não consegue representar (chamadas de ferramenta em Markdown, nomes por mensagem em Anthropic/Gemini) são sinalizados como avisos em vez de descartados silenciosamente, e uma viagem de ida e volta OpenAI → OpenAI é sem perdas.
Como usar
- Cole sua transcrição na caixa Transcript (ou pressione Sample para carregar uma conversa de demonstração).
- Escolha o formato de origem em From e o destino em To - ou pressione o botão de troca entre eles para inverter a direção.
- Leia a transcrição convertida em Output; pressione Copy output para copiá-la.
- Confira Warnings (exibido apenas quando presente) para qualquer coisa que não pôde ser mapeada, como chamadas de ferramenta a caminho do Markdown.
- Copy share link codifica a transcrição e ambos os formatos na URL, então um link reproduz a conversão exata.
Exemplos
OpenAI → Anthropic (o system sobe para o nível superior)
Entrada:
{
"messages": [
{ "role": "system", "content": "You are terse." },
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello." }
]
}
Saída:
{
"system": "You are terse.",
"messages": [
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello." }
]
}
OpenAI → Gemini (assistant vira model, system vira systemInstruction)
Saída:
{
"systemInstruction": { "parts": [{ "text": "You are terse." }] },
"contents": [
{ "role": "user", "parts": [{ "text": "Hi" }] },
{ "role": "model", "parts": [{ "text": "Hello." }] }
]
}
OpenAI → Markdown (um turno com uso de ferramenta - as chamadas são sinalizadas, não perdidas)
Uma mensagem de assistente carregando tool_calls converte para blocos **assistant**: / **tool**: e relata message 0: tool calls are not representable in Markdown and were dropped, para que você saiba exatamente o que não sobreviveu à viagem.
Bom saber
- Tool calls sobrevivem entre os formatos JSON:
tool_callsdo OpenAI ↔ blocostool_use/tool_resultdo Anthropic ↔ partesfunctionCall/functionResponsedo Gemini, com os ids (ou nomes do Gemini) mantidos como chave de correlação. - Viagem de ida e volta sem perdas no mesmo formato: converter OpenAI → OpenAI faz o parse para o formato interno e de volta sem alterar mensagens de conteúdo em string.
- Compartilhável: a transcrição e ambos os formatos são codificados na URL (
?t=…&from=…&to=…). - Privado: todo o parse acontece localmente - seguro para logs, prompts e credenciais reais.
- Ferramentas relacionadas: Token Estimator, LLM Cost Calculator, JSON Formatter.