CTK:在一个地方管理所有 AI 对话
I’m happy to help translate the article, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source link you’ve already provided) here? Once I have it, I’ll translate it into Simplified Chinese while preserving the original formatting, markdown, and any code blocks or URLs.
概述
CTK(Conversation Toolkit)是一个强大的、基于插件的系统,用于管理来自多个提供商的 AI 对话。它可以以统一的树形结构导入、存储、搜索和导出你的对话,同时保留提供商特有的细节。
如果你使用多个 AI 助手,可能已经遇到以下痛点:
- ChatGPT 对话保存在 OpenAI 的网页应用中
- Claude 对话被孤立在 Anthropic 的界面里
- GitHub Copilot 的聊天记录埋在 VS Code 的存储中
- 本地 LLM(如 Ollama 等)没有统一的导出格式
结果: 你的宝贵对话分散在不兼容的平台上,无法搜索,且有丢失的风险。
CTK 为所有对话提供了通用的树形表示:
User: "What is Python?"
└── Assistant: "Python is a programming language..."
└── User: "How do I install it?"
└── Assistant: "You can install Python by..."
关键洞察: 线性聊天是单路径树。分支对话(例如 ChatGPT 的“重新生成”功能)是多路径树,保留所有分支结构,同时提供统一的接口。
设置
pip install conversation-tk
从多个提供商导入
ctk import chatgpt_export.json --db my_chats.db
ctk import claude_export.json --db my_chats.db --format anthropic
使用美观表格搜索
ctk search "python async" --db my_chats.db --limit 10
交互式聊天 – 与所有对话对话
ctk chat --db my_chats.db
chat 命令会创建一个对话界面,您可以在其中:
- 询问关于历史记录的问题 – 例如,“上个月我和 Claude 关于 Python 装饰器的讨论内容是什么?”
- 获取摘要 – 例如,“总结我最近关于机器学习的对话。”
- 发现模式 – 例如,“我的 ChatGPT 对话中最常出现的主题是什么?”
- 执行操作 – 例如,“给所有关于异步编程的对话加星标。”
该 LLM 能访问整个对话数据库,并可通过自然语言进行搜索、过滤和操作(通过工具调用)。
LLM 驱动的工具调用
ctk say "show me starred conversations" --db chats.db
ctk say "find discussions about async python" --db chats.db
ctk say "star the last conversation about machine learning" --db chats.db
LLM 解释你的指令并调用相应的 CTK 工具,实现星标、标签和导出等自然语言操作。
提供者支持
| 提供者 | 分支支持 |
|---|---|
| ChatGPT | ✅ 完整树(保留重新生成) |
| Claude | ✅ 完整树 |
| GitHub Copilot | 线性 |
| Google Gemini | 部分 |
| Generic JSONL | 线性(用于本地 LLM) |
核心保证
- 100 % 本地 – 数据不离开你的机器。
- 无分析或遥测。
- 可选的秘密掩码 用于安全共享。
终端 UI 用于可视化管理
- 使用丰富的表格视图浏览对话。
- 状态使用表情符号标记:⭐(已加星)📌(已置顶)📦(已归档)。
- 树形视图展示分支对话。
- 分叉对话以探索替代方案。
- 支持 MCP 工具。
导出格式
用于训练的 JSONL
ctk export training.jsonl --db chats.db --format jsonl
分支对话的路径选择
ctk export out.jsonl --db chats.db --path-selection longest
CTK 旨在长期保存 AI 对话。导出为能够在平台变化后仍然可用的格式:
- HTML5 – 自包含,可在任何浏览器中运行。
- Markdown – 纯文本,随处可读。
- JSON – 结构化数据,数十年后仍易于解析。
仓库与文档
- GitHub:
- 完整文档: 请参阅仓库的 README。