SuperAPI AI 工具集

db-defaults

数据与分析

查看项目

更新于 10-16 02:30

技能介绍

用途:面向个人、Python 优先、本地优先的项目,在开始一项存储或缓存需求且未明确要求比较方案时,直接按用途从默认表中选型,避免每次会话重新论证。偏离默认值可以,但需说明类别确实不匹配或规模超出默认(见各类别的 Escalate to)。

选型标准:仅限 MIT/Apache-2.0/BSD 类宽松许可;流行且活跃维护;可在普通 pytest 中完整测试(内存或 tmp_path,无需 Docker/云账号/CI 服务);API 低样板,编码智能体可直接正确使用。测试标准意味着不要 mock 这些存储,测试应运行真实实现。安全不是选型因素,本页默认值均面向本地个人规模,不适用于生产、多租户或面向互联网的场景。

主要能力与默认项:进程内临时状态用标准库(threading.Lock、time.monotonic、dict);缓存用 diskcache;简单关系型用标准库 sqlite3 原始 SQL;复杂/OLTP 用 sqlalchemy + alembic;分析/OLAP 与时间序列用 duckdb;文档存储用 tinydb(纯键值可用 sqlitedict);全文检索用 SQLite FTS5(备选 bm25s、tantivy,避免 Whoosh);向量检索用 qdrant-client(备选 chromadb);后台任务用 huey;定时任务用 apscheduler 3.x(备选 schedule);发布订阅用 blinker;图数据用 ladybug(轻量可用关系表加 networkx);对象存储用 pathlib.Path(上云再引入 fsspec + s3fs/gcsfs)。

使用方式:references/snippets/ 下每个类别有一个 ruff-clean、自包含的 Python 文件,docstring 含已验证的 pip install 命令和可运行的 test_* 函数,可直接复制。安装后文件被复制到 ~/.agents/skills/db-defaults,不符号链接;修改部署副本属于本地漂移,应改源仓库并重新执行 skills add <source> --global --skill db-defaults。

限制:SQLite 层会静默损坏 Decimal 并丢失 tzinfo,需用 TypeDecorator 存精确字符串并启用 sqlite_strict=True;Alembic 的 SQLite batch 模式会重建表并丢失触发器,需命名所有约束或让 SQLite 层不迁移。ladybug 项目较年轻;tinydb 处于维护模式;apscheduler 3.x 存在单一维护者风险;NATS 等需独立服务,不作为本地默认。完整理由见 references/rationale.md。