用途:在 cocoindex v1.0.0 上构建数据摄取与转换流水线,将源数据增量地同步到目标连接器(如 Postgres、Qdrant、LanceDB)。v1.0.0 采用组件化范式:以 Python 组件编写管道,挂载到 Environment,由 App 编排,通过 TargetState / TargetHandler 声明式 API 将状态协调到目标端。相比 v0.3.37 属于范式切换,旧 API(FlowBuilder、DataScope、DataSlice、flow_def、cocoindex.sources.、targets.、functions.*、LlmSpec、Postgres 后端状态等)已全部移除,迁移是重写而非改名。
主要能力:用 @coco.fn 装饰函数(支持 memo=True 记忆化、batching 批处理、runner=GPU 隔离执行);用 @coco.lifespan 提供数据库连接池、embedding 模型等生命周期资源,并通过 coco.use_context(KEY) 取用;用 coco.mount / coco.mount_each / coco.use_mount 挂载子组件,coco.map 做并发扇出(无组件与检查点);用 coco.mount_target 或连接器辅助函数(postgres.mount_table_target、qdrant.mount_collection_target、lancedb.mount_table_target)挂载目标状态。内置文本切分(RecursiveSplitter、SeparatorSplitter、detect_code_language)、SentenceTransformerEmbedder、LiteLLMEmbedder 等算子。持久状态存放于 Settings.db_path 指定的本地 LMDB。
使用方式:安装 pip install cocoindex;运行 cocoindex update main.py(一次性)或 cocoindex update main.py -L(实时),用 COCOINDEX_DB=/path/to/state.lmdb 指定本地状态库。入口为 coco.App(coco.AppConfig(name="..."), app_main, ...),可调用 app.update()/update_blocking(),并用 coco.show_progress(handle) 查看进度;同步调用方可用 coco.start_blocking()/stop_blocking(),或 with / async with coco.runtime():。
限制:资料仅给出 API 与用法说明,未提供收费、价格、平台支持范围或性能基准等事实,暂未提供。首次从 v0.3.37 升级需按新词汇重写全部管道代码。