Skip to main content

ikc-sdk-lib

IKC SDK 家族仓库(Python 模型层),与 /home/open-ikc 对外接口一脉相承、独立维护。 当前整个 SDK 定义为 core:docs/RAG SDK接口v1.1.xlsx 中的 4 个免知识库接口 的请求/响应模型(Pydantic v2)。 后续新增 SDK 以 ikc_sdk.<sdk_name> 兄弟子包扩展,不进入 core。

安装

PyPI(推荐)

pip install ikc-sdk-lib                # 最新版(已发布至 PyPI)
pip install "ikc-sdk-lib==0.5.1"       # 固定版本(推荐)
  • 运行环境:Python >=3.10;依赖 pydantic>=2.7(自动安装)。
  • 源码开发态:pip install -e . 后可使用 src/examples/ 中的示例。

内网仓库安装(不依赖 PyPI)

仓库 dist/ 保存每次发版的 wheel 与 sdist,历史版本全部保留并打对应标签(v0.1.0、v0.2.0、v0.3.0、v0.4.0、v0.4.1、v0.4.2、v0.5.0、v0.5.1); 内网环境克隆仓库后安装任一历史版本的 wheel(仓库地址向内部索取):

git clone <ikc-sdk-lib 内部仓库地址>
pip install ikc-sdk-lib/dist/ikc_sdk_lib-0.5.1-py3-none-any.whl   # 可指定任意历史版本

安装后 import ikc_sdk 行为与 PyPI 安装一致。

当前接口范围(core)

# 接口(Excel Sheet) 请求 响应 实现位置
1 解析—独立解析(免知识库)SERVICE ServiceParseDirectRequest ParseResponse ikc_sdk/core/api/parse/direct.py
2 解析—独立解析(免知识库)SDK SdkParseDirectRequest ParseResponse ikc_sdk/core/api/parse/direct.py
3 查询解析结果(免知识库)SDK QueryParseResultRequest QueryParseResultResponse ikc_sdk/core/api/parse/query.py
4 下载解析结果(免知识库)SDK DownloadParseResultRequest DownloadParseResultResponse ikc_sdk/core/api/parse/download.py

任务状态判定(is_terminal() / is_success() 等)内置于模型层; Task 管理、端到端任务链路(client → 网关 → TaskServiceManagement → celery)与扩展设计 (取消 / 列表 / 定时任务 / 优先级)见 docs/Task管理与任务链路设计.md。

目录结构

docs/
  RAG SDK接口v1.1.xlsx   # 当前接口契约唯一定义源(v1.1,含 ParsingEngine)
  RAG SDK接口.xlsx       # v1.0 归档
  开发手册.md            # 四接口开发手册(pip 安装 / 流程 / 字段 / 端到端 / 发布)
  Task管理与任务链路设计.md  # Task 管理与任务链路(独立章节:链路 / SDK 设计 / 扩展草案)
src/ikc_sdk/
  __init__.py            # 命名空间门面:re-export core 公开 API
  _version.py            # 版本号(分发级)
  core/                  # 核心 SDK(当前整个 SDK)
    __init__.py          # core 公开导出
    enums.py             # 契约枚举(取值以 Excel 为准)
    exceptions.py        # SDK 异常体系(IkcSdkError 基类;契约校验 / 引擎目录异常)
    models/              # 共享模型:响应壳 / 来源 / 解析 / 分段 / 输出 / 任务
    api/                 # 按能力域组织的接口定义
      parse/             # 解析域(已定义):direct(独立解析 SERVICE/SDK)/ query / download
      knowledge_base/    # 知识库域(占位):create / update / get / query
      document/          # 文档域(占位):ingest / parse / ingest_and_parse / upload / get / parse_result/
      search/            # 检索域(占位):universal / deep / query
  <future_sdk>/          # 后续新增 SDK:兄弟子包(如 client 等),不进入 core
src/examples/            # 4 接口开发示例(非包、不参与打包)
scripts/publish-pypi.sh  # PyPI 发布脚本
config/pypi.env.example  # PyPI 凭据模板(真实凭据 pypi.env 不入库)
dist/                    # 发布产物(wheel + sdist,随仓库提交,对应标签 v0.5.1)
AGENTS.md                # 设计与实现契约
pyproject.toml / README.md

使用

规范导入路径为 ikc_sdk.core;顶层 ikc_sdk 门面 re-export core,两种写法等价:

from ikc_sdk import SdkParseDirectRequest          # 门面(兼容)
from ikc_sdk.core import SdkParseDirectRequest     # 规范路径
from ikc_sdk.core import (
    DeclaredSource, SourceMetadata, ParsingOptions, OutputOptions,
    SourceType, DocumentFormat, OutputFormat,
)

req = SdkParseDirectRequest(
    processingOperation="EXTRACT_CHUNK",
    source=DeclaredSource(
        type=SourceType.URL,
        url="https://example.com/doc.pdf",
        metadata=SourceMetadata(docTitle="示例文档"),
    ),
    parsing=ParsingOptions(docFormat=DocumentFormat.PDF),
    output=OutputOptions(formats={OutputFormat.MARKDOWN}),
)
print(req.model_dump_json())

开发手册

面向开发者的四接口完整开发手册(总体流程、公共契约、每个接口的请求/响应字段与代码示例、 端到端链路、错误码、类索引)见 docs/开发手册.md。

开发示例

4 个接口的可运行示例位于 src/examples/(请求构建、契约校验、序列化、响应解析):

cd /home/sharkyai/ikc-sdk-lib
PYTHONPATH=src python3 src/examples/parse_direct_sdk.py
PYTHONPATH=src python3 src/examples/parse_direct_service.py
PYTHONPATH=src python3 src/examples/query_parse_result.py
PYTHONPATH=src python3 src/examples/download_parse_result.py

占位目录(契约待定义)

知识库 / 文档 / 检索三个域目前仅有目录骨架,接口契约待 docs/RAG SDK接口v1.1.xlsx 增补后定义 (参考 open-ikc V2 接口清单占位),在契约落定前不定义模型:

域 计划接口 参考
知识库 create / update / get / query open-ikc A-01~A-04
文档 ingest / parse / ingest_and_parse / upload / get / parse_result/{query,issue_ticket,download} open-ikc B-01~B-07
检索 universal / deep / query open-ikc D-01/D-02

版本与发布

项 值
当前版本 0.5.1(历史:0.1.0、0.2.0、0.3.0、0.4.0、0.4.1、0.4.2、0.5.0)
PyPI 项目页 https://pypi.org/project/ikc-sdk-lib/
仓库版本标签 v0.1.0、v0.2.0、v0.3.0、v0.4.0、v0.4.1、v0.4.2、v0.5.0、v0.5.1(annotated)
仓库发布产物 dist/ 保留全部历史版本:ikc_sdk_lib-0.1.0 / -0.2.0 / -0.3.0 / -0.4.0 / -0.4.1 / -0.4.2 / -0.5.0 / -0.5.1(wheel + sdist),索引见 dist/README.md
  • 发布到 PyPI:bash scripts/publish-pypi.sh(参考 /home/ikc-log-center);选项 --test、--skip-build、--no-skip-existing、IKC_SDK_VERSION=<ver>。
  • 仓库直装:见「安装」章节 git 标签 / dist wheel 两种方式,不依赖 PyPI。
  • 发版约定:每次发版更新版本号 → 构建产物入 dist/(保留历史,不清理旧版本)→ 提交推送 → 打标签 vX.Y.Z → 发布 PyPI。
  • 分支约定:main 为发布基线;功能在 dev_* 分支开发,合并后打版本标签(如 v0.4.1)。
  • 凭据:config/pypi.env(gitignored,勿提交),模板见 config/pypi.env.example。

契约约定

  • 字段命名(camelCase)与枚举值一律以 docs/RAG SDK接口v1.1.xlsx 为准,含 Excel 原文拼写(如 keyswordNum、docMetadataPormpt),不得“顺手修正”。
  • 统一响应壳:errCode / errMsg / data / traceId(独立解析与下载接口额外带 taskId)。
  • SDK 版请求面向 API 调用方(source 自声明),SERVICE 版为 API 之后调用后端 service(source 指向已登记文档);两版以 ParseDirectRequestBase 为基类派生,类名严格遵循 Excel Sheet 定义。
  • Excel 引用的对象类型均有对应模型类(映射见 AGENTS.md §3.4,如 ModelConfig);ModelReferences 各字段为 ModelConfig 的 DES 加密串。
  • 完整的设计与实现契约见 AGENTS.md(能力域地图、目录/命名规范、落地工作流、硬性约束)。

Metadata

Release files for ikc-sdk-lib 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ikc-sdk-lib 0.6.0
File Size Uploaded
ikc_sdk_lib-0.6.0.tar.gz 39.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ikc-sdk-lib 0.6.0
File Interpreter ABI Platform
ikc_sdk_lib-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 93.2 kB

Release files / ikc_sdk_lib-0.6.0.tar.gz

Download URL ikc_sdk_lib-0.6.0.tar.gz
Size 39.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2b568ee64d44546999fa5b3023230b807648beb8375d7e7bf3a97e4de3fc7202
BLAKE2b-256 checksum
How to use checksums
9b135064409ae36f1e3660e52fb2c085bf883944cad8ddb8d299680deb9d3f83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / ikc_sdk_lib-0.6.0-py3-none-any.whl

Download URL ikc_sdk_lib-0.6.0-py3-none-any.whl
Size 53.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0f66548ae941c3dc7f43d70f6ce6e050f2009f2f0cb3b37afdf9a8256093827c
BLAKE2b-256 checksum
How to use checksums
1133b4fb07df3ef923521ff5e0b8f53c68b8d67280d540fad4df4fea135b2554
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.20.0

2 release files

0.12.3

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

1 release file

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

This release

0.6.0 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page