[ PROMPT_NODE_24528 ]
api_operations
[ SKILL_DOCUMENTATION ]
# API 操作参考
使用 Python API 以编程方式操作 CocoIndex 工作流的指南。
## 概述
CocoIndex 工作流可以通过 Python API 进行操作,提供对设置、更新和查询的编程控制。这对于在应用程序中嵌入工作流、自动化工作流或构建自定义工具非常有用。
## 基本设置
### 初始化
python
from dotenv import load_dotenv
import cocoindex
# 加载环境变量
load_dotenv()
# 初始化 CocoIndex
cocoindex.init()
### 工作流定义
python
@cocoindex.flow_def(name="MyFlow")
def my_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.DataScope):
# 工作流定义
pass
装饰器返回一个可用于操作的 `cocoindex.Flow` 对象。
## 工作流操作
### 设置工作流
为工作流创建持久化后端(表、集合等)。
python
# 基本设置
my_flow.setup()
# 带进度输出
my_flow.setup(report_to_stdout=True)
# 异步版本
await my_flow.setup_async(report_to_stdout=True)
**何时使用:**
- 首次更新前
- 修改工作流结构后
- 删除工作流以重新创建资源后
### 设置所有工作流
python
# 一次性设置所有工作流
cocoindex.setup_all_flows(report_to_stdout=True)
### 删除工作流
移除工作流拥有的所有持久化后端。
python
# 删除工作流
my_flow.drop()
# 带进度输出
my_flow.drop(report_to_stdout=True)
# 异步版本
await my_flow.drop_async(report_to_stdout=True)
**注意:** 删除后,Flow 对象仍然有效,可以再次设置。
### 删除所有工作流
python
# 删除所有工作流
cocoindex.drop_all_flows(report_to_stdout=True)
### 关闭工作流
从当前进程内存中移除工作流(不影响持久化数据)。
python
my_flow.close()
# 此后,my_flow 无效,不应再使用
## 更新操作
### 一次性更新
根据当前源数据构建或更新目标数据。
python
# 基本更新
stats = my_flow.update()
print(f"已处理 {stats.total_rows} 行")
# 带重新导出(即使未更改也强制重新处理)
stats = my_flow.update(reexport_targets=True)
# 异步版本
stats = await my_flow.update_async()
stats = await my_flow.update_async(reexport_targets=True)
**返回:** 关于已处理数据的统计信息
**注意:** 多次 `update()` 调用可以同时运行。CocoIndex 会自动高效地合并它们。
### 实时更新
持续监控...