CTK:在一个地方管理所有 AI 对话

发布: (2025年12月16日 GMT+8 16:45)
5 min read
原文: Dev.to

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。
Back to Blog

相关文章

阅读更多 »