文档/开发

开发

zleap-sag Python 引擎

直接嵌入 DataEngine,完成 ingest、extract 与 search 生命周期。
更新于 2026-07-22适用于 SAG v1.2.2

zleap-sag 是 SAG 应用底层持续维护的 Python 知识引擎。发行名为 zleap-sag,导入路径为 zleap.sag,要求 Python 3.11+,使用 MIT 许可。

安装

默认本地组合使用 SQLite 与 LanceDB,不需要外部数据库:

bash
pip install zleap-sag

SAG 应用当前要求 zleap-sag>=0.7.1

完整生命周期

python
import asyncio

from zleap.sag import DataEngine, EngineConfig
from zleap.sag.config import EmbeddingConfig, LLMConfig


async def main() -> None:
    config = EngineConfig(
        llm=LLMConfig(
            api_key="sk-...",
            base_url="https://your-openai-compatible-host/v1",
            model="qwen3.6-flash",
        ),
        embedding=EmbeddingConfig(model="bge-large-en-v1.5"),
        language="zh",
    )

    async with DataEngine(config) as engine:
        ingest = await engine.ingest("knowledge.md")
        extract = await engine.extract()
        result = await engine.search(
            "SAG 为什么适合多跳检索?",
            strategy="multi",
            top_k=5,
        )

        print(ingest.chunk_count, extract.event_count)
        for section in result.sections:
            print(section.get("content", "")[:200])


asyncio.run(main())

一个 DataEngine 实例代表一个逻辑信源。本地数据会自动创建在 ./.zleap/,应把该目录加入 .gitignore

配置方式

两种方式选择其一:

方式创建方法适合场景
参数注入EngineConfig(llm=..., embedding=...)库、Notebook、显式应用装配
环境变量EngineConfig.from_env()容器与 12-factor 服务
dotenv
OPENAI_API_KEY=sk-...
OPENAI_BASE_URL=https://your-openai-compatible-host/v1
LLM_MODEL=qwen3.6-flash
EMBEDDING_MODEL=bge-large-en-v1.5
python
from zleap.sag import EngineConfig

config = EngineConfig.from_env()

EngineConfig(...) 不会隐式读取环境变量。Embedding 若使用独立端点,应显式创建 EmbeddingConfig(api_key=..., base_url=..., model=...)

DataEngine API

方法作用
await engine.start()初始化连接与本地 Schema
await engine.aclose()关闭资源;async with 会自动执行
await engine.chunk(source)解析并分块路径或原始字符串,不持久化
await engine.ingest(path, ...)分块、向量化并持久化 chunks/vectors
await engine.extract(...)抽取并保存 event-entity 索引
await engine.search(...)返回 SearchResult、sections 与统计信息
await engine.init_schema()幂等初始化生产 Schema

类型化结果位于 zleap.sag.resultsChunkResultIngestResultExtractResultSearchResult。所有引擎异常继承 SagError

存储后端

部署关系型存储向量存储extra
本地默认SQLiteLanceDB
单数据库PostgreSQLpgvectorzleap-sag[postgres]
生产拆分MySQL/PostgreSQL/OceanBaseElasticsearch[mysql][postgres][es]
OceanBaseOceanBase 4.3.3+OceanBase vector[mysql]

改变 EngineConfig 不需要改写 ingest、extract 和 search 调用。当前连接是进程级全局资源,一个进程应只使用一份 EngineConfig

发现内容问题?以当前公开仓库为准。查看 SAG 源码