Skip to main content

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.json
  • scholai course iod — VFD → intermediate/IOD.json
  • scholai course publish --kind <article|mindmap> — POST 对应 kind 的 publish-facing 产物到 scholai 平台

article kind

  • scholai course pd — IOD + VFD → intermediate/PD.md
  • scholai course txd-gen — 含图占位符的 intermediate/TXD.md
  • scholai course txd-imagegen — 生成占位图 + intermediate/TXD_final.md
  • scholai 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.mdMarkdown,不是 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scholai_cli-0.1.20.tar.gz (94.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scholai_cli-0.1.20-py3-none-any.whl (128.7 kB view details)

Uploaded Python 3

File details

Details for the file scholai_cli-0.1.20.tar.gz.

File metadata

  • Download URL: scholai_cli-0.1.20.tar.gz
  • Upload date:
  • Size: 94.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for scholai_cli-0.1.20.tar.gz
Algorithm Hash digest
SHA256 efa013e238ab565f37c087f39ec19d944314695043c7698b1c3f82f658ea2c3a
MD5 17ee0e7df269617e61f0f53376347ba2
BLAKE2b-256 5084d6c0ac0f78e4cd420056f93de5df522ba4007003bdc43dc64531461e3187

See more details on using hashes here.

File details

Details for the file scholai_cli-0.1.20-py3-none-any.whl.

File metadata

  • Download URL: scholai_cli-0.1.20-py3-none-any.whl
  • Upload date:
  • Size: 128.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for scholai_cli-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 83204beb370ceda21f578eadac2c16f7a124fc89e17a404dc8d5980f2c71fd96
MD5 506ec6e3c9f5cb725f372fce5b81b113
BLAKE2b-256 ad23cff46e1efeab5fe453320dfc12ec11a0a9563f92eb345a2f77359ed67040

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page