粘贴一段对话记录以进行转换。
功能说明
对话格式转换器把一份对话记录变成另一家提供商的形状:OpenAI messages[]、带顶层 system 的 Anthropic messages[]、Gemini contents[](其中助手是 model),或一份纯 Markdown 记录。粘贴一份记录,选择来源格式和目标格式,就得到可直接发给另一家 API 的等价载荷。一切 100% 客户端运行 - 你粘贴的内容不会被发送到任何服务器,因此放真实的日志和载荷进来也是安全的。
转换经由一个共享的内部消息列表,因此角色映射忠实可靠(system 变成 Anthropic 的顶层 system 和 Gemini 的 systemInstruction;Gemini 的 model 变成 assistant),工具调用、工具结果及它们的关联 id 都跨格式保留。目标格式无法表达的字段(Markdown 中的工具调用、Anthropic/Gemini 的逐消息 name)以警告标出而不是被静默丢弃,且 OpenAI → OpenAI 的往返是无损的。
使用方法
- 把记录粘贴到 Transcript(记录)框中(或点击 Sample 加载一段演示对话)。
- 在 From(来源)下选择来源格式,在 To(目标)下选择目标格式 - 或按两者之间的 swap(交换)按钮反转方向。
- 在 Output(输出)中读取转换后的记录;按 Copy output(复制输出)复制它。
- 查看 Warnings(警告,仅在存在时显示),了解无法映射的内容,例如发往 Markdown 途中的工具调用。
- 复制分享链接把记录和两个格式编码进 URL,因此一个链接就能重现精确的转换。
示例
OpenAI → Anthropic(system 移到顶层)
输入:
{
"messages": [
{ "role": "system", "content": "You are terse." },
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello." }
]
}
输出:
{
"system": "You are terse.",
"messages": [
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello." }
]
}
OpenAI → Gemini(assistant 变为 model,system 变为 systemInstruction)
输出:
{
"systemInstruction": { "parts": [{ "text": "You are terse." }] },
"contents": [
{ "role": "user", "parts": [{ "text": "Hi" }] },
{ "role": "model", "parts": [{ "text": "Hello." }] }
]
}
OpenAI → Markdown(一个带工具调用的回合 - 工具调用被标出,而不是丢失)
携带 tool_calls 的助手消息转换为 **assistant**: / **tool**: 块,并报告 message 0: tool calls are not representable in Markdown and were dropped,让你确切知道什么没能熬过这趟旅程。
补充说明
- 工具管线在 JSON 格式间存活: OpenAI
tool_calls↔ Anthropictool_use/tool_result块 ↔ GeminifunctionCall/functionResponse部分,id(或 Gemini 的 name)作为关联键保留。 - 同格式往返无损: OpenAI → OpenAI 转换会解析进内部形状再回来,不改变字符串内容的消息。
- 可分享: 记录和两个格式都编码在 URL 中(
?t=…&from=…&to=…)。 - 私密: 所有解析本地完成 - 放真实的日志、提示词和凭据进来都安全。
- 相关工具: Token 估算器、LLM 成本计算器、JSON 格式化器。