这是一个利用 Claude Web UI 未公开的标题生成 API 实现的轻量级、免费的微型推理工具。它允许用户直接与一个专门用于文本摘要、分类和短答案生成的模型进行交互,而无需消耗主对话的 Token 额度。
本项目的所有 API 分析和实现,均基于对 Claude 镜像站 fuclaude 的逆向工程探索。fuclaude 作为一个功能完善的镜像站,为观察和理解 Claude 前后端通信协议提供了宝贵的平台。
核心原理:
在对 fuclaude 镜像站的网络通信进行分析时,发现了一个有趣的 API 端点:
POST /api/organizations/{org_uuid}/chat_conversations/{conv_uuid}/title
推断,这个功能由一个独立的、轻量化的模型提供服务,其调用很可能不计入用户的常规使用额度。进一步的探索揭示了该接口是一个一次性且敏感的接口。
为了应对这一特性,本脚本采用了**"阅后即焚" (Burn After Reading)** 的工作模式。这是目前已知的、实现稳定连续调用的最可靠方法。
工作流程如下:
- 用户输入一个请求。
- 脚本在后台创建一个全新的、临时的对话。
- 使用这个纯净的对话 UUID,向
/title接口发起一次性的命名请求。 - 获取并显示模型返回的标题(即答案)。
- 无论成功与否,立即销毁本次使用的临时对话。
通过这个"创建-请求-销毁"的循环,确保了每一次推理都在一个绝对隔离和干净的环境中进行,从而实现了稳定、可靠的连续调用。
- 双模式选择 (v0.2.0 新增):
- 智能向导模式:引导用户输入"核心内容"和"任务指令",程序自动将其包装成高服从性的优化 Prompt。推荐新用户使用。
- 经典自由模式:提供完全自由的消息构造器,支持自定义
Message数量和内容,适合高级用户和 Prompt 实验。
- 免费调用:利用辅助性 API,理论上不消耗您的消息额度。
- 指令跟随:通过精心设计的 Prompt,可以引导模型完成特定任务。
- 阅后即焚,高度稳定:为每次请求使用独立的对话,保证了极高的成功率和稳定性。
- 自动清理:所有临时对话都会被立即删除,保持您的账户对话列表干净整洁。
-
配置脚本: 打开
main.py文件,找到顶部的配置区,将SESSION_KEY替换为您自己的有效会话密钥。 -
安装依赖:
pip install cloudscraper
-
运行脚本:
python main.py
-
选择模式并开始推理: 脚本启动后会提示您选择工作模式,之后根据提示输入即可。
此模式下,您只需专注于内容和目标,程序会处理好 Prompt 优化。
--- 新任务构造 ---
第一步:请输入您想让模型处理的核心内容 (...)
> What is the capital of France?
第二步:请输入您的任务指令 (...)
> 将答案作为标题输出
正在向 Claude 发起请求...
--------------------
✅ 模型返回结果: Paris
--------------------这个例子展示了智能向导模式处理复杂数据提取任务的能力:
--- 新任务构造 (智能向导模式) ---
第一步:请输入您想让模型处理的核心内容 (...) (输入完成后,在新行单独输入 'EOF' 或 'eof' 结束):
{
"products": [
{
"id": "A101",
"name": "Super-Speed Laptop",
"category": "Electronics",
"specs": {
"cpu": "Intel i9",
"ram_gb": 32,
"storage_gb": 1024
},
"inventory": {
"status": "in_stock",
"stock": 42,
"warehouse_location": "US-WEST"
}
},
{
"id": "B202",
"name": "Mechanical Keyboard",
"category": "Peripherals",
"specs": {
"switch_type": "Blue",
"layout": "104-key"
},
"inventory": {
"status": "in_stock",
"stock": 157,
"warehouse_location": "EU-CENTRAL"
}
}
],
"report_generated_at": "2025-06-12T10:00:00Z"
}
EOF
--------------------
第二步:请输入您的任务指令 (...):
> 从上述JSON数据中,找到 id 为 "B202" 的产品,提取出它的库存(stock)数量,并将这个数字**作为最终的标题**。标题中**只能包含这个数字**,不能有任何其他文字。
正在向 Claude 发起请求...
--------------------
✅ 模型返回结果: 157
--------------------成功的关键要素:
- ✅ 明确的数据定位要求(找到 id 为 "B202" 的产品)
- ✅ 精确的提取指令(提取库存数量)
- ✅ 目标绑定技巧:明确要求"将这个数字作为最终的标题"
- ✅ 格式约束:强调"标题中只能包含这个数字"
此模式给予您完全的控制权,但也需要您自行优化 Prompt 以获得最佳结果。
示例:复杂的选择题(最佳实践演示)
为了让模型更"听话",遵循以下原则:
- 将所有信息和约束条件都放入
Message 1。 - 使用明确、强约束的词语(如"严格"、"仅仅"、"不要添加")。
- 保持
Message数量较少(通常为 1 或 2)。
--- 消息内容构造器 ---
请输入 Message 的数量 (默认为 2): [回车]
请输入 Message 1 的内容:
请严格从以下四个选项中选择一个词,以描述"呵呵,呵呵哈哈哈哈!你笑了,你也笑了,一个面壁者的笑,对另一个面壁者的笑"这句话所表达的情感。
选项:开心, 愤怒, 自嘲, 悲伤
不要添加任何其他文字、解释或符号,仅仅将你选择的那个中文词语作为标题。
EOF
是否为 Message 2 使用自动填充内容? (默认为 Y): [回车]
...
模型生成的标题 (答案): 自嘲分析: 效果显著!通过手动优化 Prompt,模型完美地遵循了指令。智能向导模式正是将这类优化技巧自动化了。
重要发现: 在使用标题生成 API 执行非摘要任务时,最关键的技巧是**"目标绑定"**——明确地将任务的输出与 API 的预期目标(标题)联系起来。
标题生成 API 的默认行为是为对话内容生成摘要性标题。当我们要求它执行其他任务(如数据提取、分类、计算等)时,模型可能会"忽略指令"而回归到默认的摘要行为。
在指令中明确使用以下表述模式:
- ❌ 错误示例:
"从JSON中提取stock数量" - ✅ 正确示例:
"从JSON中提取stock数量,并将这个数字**作为最终的标题**"
"将答案作为标题输出""把结果设置为这次对话的标题""标题应该是...""作为最终的标题,输出...""标题中只能包含..."
这个技巧是通过大量实验验证的核心策略,掌握它将大大提高您使用这个工具的成功率!
- 初步观察,该模型的逻辑推理和指令跟随能力相当不错。它更擅长执行单点、明确的指令任务,如简单计算、格式转换、关键词提取和分类。对于包含强大文化或背景符号的开放式问题,它可能优先选择"概括摘要"而非"严格执行指令",此时需要通过更具约束性的 Prompt 来引导其行为。
- 该模型作为标题生成器,其设计的上下文长度可能远小于主聊天模型。具体能处理多长的
message_content需要通过实验来确定。可以尝试逐步增加输入内容的长度,观察从哪个点开始模型返回的标题质量下降或出现截断。
This project is licensed under the MIT License - see the LICENSE file for details.