我构建了一个工具,可以将您的 Claude Code 会话转化为用于本地模型的微调数据。

Reddit r/LocalLLaMA 工具

摘要

一款名为 claude_converter 的新开源工具,可将 Claude Code 的会话日志转换为兼容 TRL/SFTTrainer、Axolotl 和 LLaMA-Factory 的微调数据集,使开发者能够利用真实的编程对话来训练本地模型。

如果你在使用 Claude Code,每一次会话都已经以 .jsonl 文件的形式存储在磁盘上,路径为 ~/.claude/projects/。这些会话包含真实的编码对话:多轮编辑、工具调用、推理痕迹。这些就是你已经在免费生成的训练数据。问题是这些格式不是任何微调框架所期望的。所以我构建了 claude_converter 来弥补这一差距。 它的功能: - 将 Claude Code 的 .jsonl 会话转换为 apply_chat_template() 可以直接使用的 messages 格式 - 输出与 TRL/SFTTrainer、Axolotl 和 LLaMA-Factory(sharegpt 格式)兼容 - 提供一个 clean_messages() 辅助函数,可在训练前去除 <tool_use>、<tool_result> 和 <thinking> 块 - 包含一个 inspect_session() CLI 风格函数,带有 token 计数和区块分解,让你在训练前了解数据情况 - 零依赖 快速示例: ```python import glob from datasets import Dataset from trl import SFTTrainer, SFTConfig from claude_converter import session_to_messages, clean_messages all_messages = [] for path in glob.glob("~/.claude/projects/*/.jsonl", recursive=True): msgs = clean_messages(session_to_messages(path)) if len(msgs) >= 2: all_messages.append({"messages": msgs}) dataset = Dataset.from_list(all_messages) ``` 值得提醒的一点:原始会话包含失败的尝试、重试和死胡同。不要盲目训练所有内容。请筛选出最终助手回合实际解决了问题的会话。 仓库:https://github.com/FredyRivera-dev/claude_converter 安装:uv pip install claude-converter 欢迎就格式或转换逻辑提问。
查看原文

相似文章

LangWatch 的 Claude Code 使用追踪

Product Hunt

LangWatch 推出了一款工具,用于追踪和监控 Claude Code 会话的成本,帮助用户了解其 AI 编程会话的实际花费。