可自动将kimi项目对话归档为带标题、摘要和标签的markdown文件:先提取chat_ids.txt中的对话id,再用python批量拉取原始json,接着调用kimi api生成结构化摘要与标签,最后合并为时间倒序的project_archive_20260526.md。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要把几十次Kimi项目对话自动整理成带标题、摘要和标签的归档文档,避免手动翻找、复制、粘贴、重命名的重复劳动。
提取所有待归档对话ID
先拿到每段对话的唯一标识,这是后续批量调用API或脚本操作的前提。网页端每个会话URL末尾都含一串32位以上字母数字组合,这就是ID。
打开Kimi网页版→点击左上角菜单→选择“历史会话”→滚动浏览列表,找到目标项目相关的全部对话。
逐个点击每段对话,观察浏览器地址栏URL,确认格式为https://kimi.moonshot.cn/chats/后接长字符串;【必须完整复制整条URL,漏掉任意字符会导致后续请求失败】。
将所有URL中的ID部分(斜杠后全部内容)单独提取出来,一行一个,保存为chat_ids.txt文件。
用Python脚本批量拉取原始文本
这一步跳过网页界面限制,直接从Kimi服务端获取未渲染、未截断的完整对话流。需提前配置好Moonshot API密钥并安装依赖。
方法一:基础requests调用
新建fetch_chats.py,写入以下代码:
import requests
import json
with open("chat_ids.txt") as f:
ids = [line.strip() for line in f if line.strip()]
headers = {"Authorization": "Bearer YOUR_MOONSHOT_API_KEY"}
for chat_id in ids:
url = f"https://api.moonshot.cn/v1/chats/{chat_id}"
r = requests.get(url, headers=headers)
if r.status_code == 200:
data = r.json()
with open(f"raw_{chat_id[:8]}.json", "w", encoding="utf-8") as out:
json.dump(data, out, ensure_ascii=False, indent=2)
运行脚本后,会在当前目录生成多个raw_xxxxxxxx.json文件,每个对应一段对话的原始响应结构。
注意:免费账户有每分钟3次请求限制,脚本中未加sleep,若ID超3个请手动在循环内插入time.sleep(21)防限流。
用Kimi API生成结构化摘要与标签
对每段原始JSON中的消息列表做清洗,拼成纯文本后喂给Kimi模型,强制其输出标准JSON,包含标题、三句摘要、三个关键词标签——这是归档可用性的关键。
使用 Moonshot Kimi API 的 $web_search 内置工具进行联网搜索。当需要进行网络搜索获取实时信息时使用,支持中文和英文搜索查询。需要配置 MOONSHOT_API_KEY。
第一步:从raw_xxxxxxxx.json中提取用户提问+Kimi回复合并为单字段text
第二步:构造system prompt,明确要求JSON schema和字段约束
第三步:调用moonshot-v1-32k模型,temperature设为0确保确定性输出
示例prompt片段:
{"role":"system","content":"你是一名项目文档工程师。请严格按以下JSON格式输出,不加任何额外文字:{\"title\":\"不超过15字的会议/任务主题\",\"summary\":[\"第一句摘要\",\"第二句摘要\",\"第三句摘要\"],\"tags\":[\"标签1\",\"标签2\",\"标签3\"]}"}
{"role":"user","content":"[此处填入清洗后的完整对话文本]"}
执行后,每个对话都会得到一个summary_xxxxxxxx.json,内容可直接导入Notion、语雀或Excel。
合并归档为单个Markdown文件
把所有结构化摘要按时间倒序排列,套上统一标题层级和分隔线,生成人类可读、机器可解析的归档主文件。
新建build_archive.py,读取全部summary_xxxxxxxx.json文件。
按文件名中的时间戳或chat_id创建顺序排序(若无时间戳,可用os.path.getctime获取创建时间)。
遍历每个摘要JSON,拼接如下格式块:
## 【标签1】【标签2】【标签3】
### {title}
{summary[0]}
{summary[1]}
{summary[2]}
---
最后将全部拼接内容写入project_archive_20260526.md。
这一步完成后,项目聊天记录已全部转为带语义标签、可全文搜索、可版本管理的静态归档文件。










