scholai course atoms: CLI + runtime for article courseware generation pipeline (MVP)
Project description
scholai-cli
scholai 课件生成管线的 Python CLI。
由 @scholai/openclaw-scholai plugin 的 skill 通过 metadata.openclaw.install: [kind: uv] 自动安装;也可独立使用:
uv tool install scholai-cli
scholai course vfd-url --run-id 260422-abc12345-article-01
管线 atom 列表
通用(kind-agnostic)
scholai course vfd-url— URL →intermediate/VFD.jsonscholai course iod— VFD →intermediate/IOD.jsonscholai course publish --kind <article|mindmap>— POST 对应 kind 的 publish-facing 产物到 scholai 平台
article kind
scholai course pd— IOD + VFD →intermediate/PD.mdscholai course txd-gen— 含图占位符的intermediate/TXD.mdscholai course txd-imagegen— 生成占位图 +intermediate/TXD_final.mdscholai course txd-render-html— TXD_final →output/article.html
publish payload: output/article.html。
mindmap kind
scholai course mmd-gen— IOD →output/mindmap.md(Markmap 风格 Markdown,严格按 IOD keywords 平铺,不扩展)scholai course mmd-render-html— mindmap.md →output/mindmap.html(markmap-autoloader 本地预览,含「保存为 PNG」按钮,零 LLM 调用)
publish payload: output/mindmap.md(Markdown,不是 HTML —— scholai 后端的 MARKDOWN_KINDS 白名单包含 mindmap,传 HTML 会被 400 拒绝;最终页面由后端用 markmap 渲染)。
video kind
| atom | 类型 | 输入 | 输出 |
|---|---|---|---|
vfd-url |
复用 | input/source.json (type=url) | intermediate/VFD.json |
ssd-gen |
LLM 文本 | VFD.json | intermediate/SSD.json |
ssd-imagegen |
LLM 图像 | SSD.json | intermediate/images/SEG-NN.jpg + manifest.json |
tts-gen |
edge-tts CLI | SSD.json | intermediate/audio/SEG-NN.mp3 + durations.json |
video-compose |
moviepy + ffmpeg | SSD + images + audio | output/video.mp4 + output/cover.jpg + intermediate/SSD.srt |
lark-send |
lark-cli | output/video.mp4 + cover.jpg + chat_type/chat_native_id | output/lark_send.json(消息 ID) |
publish payload: 无(本期 MVP 跳过 publish 与 OSS;视频通过 lark-send 直接推回原 IM 会话)。
Token 用量查询
运行 scholai usage <subcommand> 查询 LLM 调用用量。
命令
scholai usage today # 今天的用量
scholai usage yesterday # 昨天的用量
scholai usage range --from 2026-05-01 --to 2026-05-06 # 日期区间
scholai usage run <run_id> # 单次 run 的用量
# 可选:按 skill 过滤(today / yesterday / range)
scholai usage today --skill article
配置价格(可选)
创建 ~/.openclaw/scholai-usage/pricing.toml(dev 模式为 ~/.openclaw-dev/scholai-usage/pricing.toml):
[chat."deepseek-chat"]
prompt = 2.0 # 元/百万 token,cache miss
prompt_cached = 0.5 # 元/百万 token,cache hit(可省略,省略回落到 prompt 价)
completion = 8.0
[chat."glm-4-plus"]
prompt = 5.0
completion = 5.0
[image."cogview-3"]
per_call = 0.06 # 元/张
没有此文件时,命令仍可用,只显示 token 数量,不计算金额。
数据文件位置
| 文件 | 路径 |
|---|---|
| per-run 用量 | <openclaw_home>/agents/<bot_id>/workspace/runs/<run_id>/logs/usage.jsonl |
| 按天汇总 | <openclaw_home>/scholai-usage/<YYYY-MM-DD>.jsonl |
| 价格配置 | <openclaw_home>/scholai-usage/pricing.toml |
<openclaw_home> 由 openclaw 注入的 OPENCLAW_STATE_DIR 确定(dev 模式为 ~/.openclaw-dev)。
开发
cd packages/scholai-cli
uv sync --all-extras
uv run pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scholai_cli-0.1.21.tar.gz.
File metadata
- Download URL: scholai_cli-0.1.21.tar.gz
- Upload date:
- Size: 95.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2694703572088eec0b9faec0bb4f676d2674006147aa665e3fabbdf660fcd292
|
|
| MD5 |
486d4ce3e14130549a365c25bb38de04
|
|
| BLAKE2b-256 |
8b1c8515318ef9c69e6c491d933b26b58a33dea6e37d7e080830a56367c87a44
|
File details
Details for the file scholai_cli-0.1.21-py3-none-any.whl.
File metadata
- Download URL: scholai_cli-0.1.21-py3-none-any.whl
- Upload date:
- Size: 129.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7531aaf507773dec6c1c088a1037251e0a260aac5a491f9794b4b1ed49f5f08b
|
|
| MD5 |
3858dadf9124d4f7e7f85051b82eb77c
|
|
| BLAKE2b-256 |
d474cfff4fb87383022d914f6493637d87a50df6c4406130c13f817a3ef347f6
|