我构建了一个工具,可以将您的 Claude Code 会话转化为用于本地模型的微调数据。
摘要
一款名为 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
欢迎就格式或转换逻辑提问。
相似文章
我从零重建了一个Claude Code风格的编程代理——整个代理循环只有6行代码。20章,约5000行代码,无框架,也支持本地模型
一位开发者分享了一个20章的教程,从头重建了一个Claude Code风格的编程代理,展示了整个代理循环(约6行代码),并支持本地模型和多种LLM API。
@jdnichollsc:@trq212 的《我们如何使用 Claude Code》工作坊:https://github.com/anthropics/cwc-workshops… 祝 Claude 编码愉快!<3 #AI #Clau…
Anthropic 发布了“Code with Claude”工作坊材料,涵盖模型选择、多智能体系统、AI辅助产品工作流以及基于评估的智能体开发。
一款MCP工具,让你从Claude.ai聊天中运行并管理Claude Code会话(在构思的地方工作)
一款开源MCP工具,让Claude.ai能够运行并管理Claude Code会话,形成一个循环:Claude.ai触发Claude Code,并在浏览器中接收响应,从而免去复制粘贴的操作。
LangWatch 的 Claude Code 使用追踪
LangWatch 推出了一款工具,用于追踪和监控 Claude Code 会话的成本,帮助用户了解其 AI 编程会话的实际花费。
我创建了一个免费的 Claude Code 工具包——包含 64 个技能、7 个智能体、16 条斜杠命令以及针对完整技术栈的自动格式化钩子
一个免费的、开源的 Claude Code 工具包,增加了 64 个技能、7 个自主智能体、16 条斜杠命令以及针对多种编程语言的自动格式化钩子。