ikc-sdk-lib 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. ikc_sdk_lib-0.1.0/PKG-INFO +110 -0
  2. ikc_sdk_lib-0.1.0/README.md +93 -0
  3. ikc_sdk_lib-0.1.0/pyproject.toml +30 -0
  4. ikc_sdk_lib-0.1.0/setup.cfg +4 -0
  5. ikc_sdk_lib-0.1.0/src/ikc_sdk/__init__.py +13 -0
  6. ikc_sdk_lib-0.1.0/src/ikc_sdk/_version.py +1 -0
  7. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/__init__.py +123 -0
  8. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/__init__.py +11 -0
  9. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/__init__.py +10 -0
  10. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/get.py +5 -0
  11. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/ingest.py +5 -0
  12. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/ingest_and_parse.py +6 -0
  13. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/parse.py +6 -0
  14. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/parse_result/__init__.py +7 -0
  15. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/parse_result/download.py +6 -0
  16. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/parse_result/issue_ticket.py +6 -0
  17. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/parse_result/query.py +6 -0
  18. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/document/upload.py +6 -0
  19. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/knowledge_base/__init__.py +8 -0
  20. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/knowledge_base/create.py +5 -0
  21. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/knowledge_base/get.py +5 -0
  22. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/knowledge_base/query.py +5 -0
  23. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/knowledge_base/update.py +5 -0
  24. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/parse/__init__.py +27 -0
  25. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/parse/direct.py +94 -0
  26. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/parse/download.py +24 -0
  27. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/parse/query.py +24 -0
  28. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/search/__init__.py +7 -0
  29. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/search/deep.py +6 -0
  30. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/search/query.py +6 -0
  31. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/api/search/universal.py +6 -0
  32. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/enums.py +171 -0
  33. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/__init__.py +45 -0
  34. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/chunking.py +35 -0
  35. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/envelope.py +36 -0
  36. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/model.py +48 -0
  37. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/output.py +20 -0
  38. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/parsing.py +38 -0
  39. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/prompt.py +17 -0
  40. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/source.py +124 -0
  41. ikc_sdk_lib-0.1.0/src/ikc_sdk/core/models/task.py +60 -0
  42. ikc_sdk_lib-0.1.0/src/ikc_sdk_lib.egg-info/PKG-INFO +110 -0
  43. ikc_sdk_lib-0.1.0/src/ikc_sdk_lib.egg-info/SOURCES.txt +44 -0
  44. ikc_sdk_lib-0.1.0/src/ikc_sdk_lib.egg-info/dependency_links.txt +1 -0
  45. ikc_sdk_lib-0.1.0/src/ikc_sdk_lib.egg-info/requires.txt +4 -0
  46. ikc_sdk_lib-0.1.0/src/ikc_sdk_lib.egg-info/top_level.txt +1 -0
@@ -0,0 +1,110 @@
1
+ Metadata-Version: 2.4
2
+ Name: ikc-sdk-lib
3
+ Version: 0.1.0
4
+ Summary: IKC RAG 对外接口 SDK(独立解析 / 查询解析结果 / 下载解析结果)
5
+ Author-email: shark8848 <admin@sharky-ai.com>
6
+ Keywords: ikc,rag,sdk,parse,knowledge-base,retrieval
7
+ Classifier: Development Status :: 3 - Alpha
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Topic :: Software Development :: Libraries
12
+ Requires-Python: >=3.12
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: pydantic>=2.7
15
+ Provides-Extra: dev
16
+ Requires-Dist: pytest>=8.0; extra == "dev"
17
+
18
+ # ikc-sdk-lib
19
+
20
+ IKC SDK 家族仓库(Python 模型层),与 `/home/open-ikc` 对外接口一脉相承、独立维护。
21
+ 当前整个 SDK 定义为 **core**:`docs/RAG SDK接口.xlsx` 中的 **4 个免知识库接口** 的请求/响应模型(Pydantic v2)。
22
+ 后续新增 SDK 以 `ikc_sdk.<sdk_name>` 兄弟子包扩展,不进入 core。
23
+
24
+ ## 当前接口范围(core)
25
+
26
+ | # | 接口(Excel Sheet) | 请求 | 响应 | 实现位置 |
27
+ | --- | --- | --- | --- | --- |
28
+ | 1 | 解析—独立解析(免知识库)SERVICE | `ServiceParseDirectRequest` | `ParseResponse` | `ikc_sdk/core/api/parse/direct.py` |
29
+ | 2 | 解析—独立解析(免知识库)SDK | `SdkParseDirectRequest` | `ParseResponse` | `ikc_sdk/core/api/parse/direct.py` |
30
+ | 3 | 查询解析结果(免知识库)SDK | `QueryParseResultRequest` | `QueryParseResultResponse` | `ikc_sdk/core/api/parse/query.py` |
31
+ | 4 | 下载解析结果(免知识库)SDK | `DownloadParseResultRequest` | `DownloadParseResultResponse` | `ikc_sdk/core/api/parse/download.py` |
32
+
33
+ ## 目录结构
34
+
35
+ ```
36
+ src/ikc_sdk/
37
+ __init__.py # 命名空间门面:re-export core 公开 API
38
+ _version.py # 版本号(分发级)
39
+ core/ # 核心 SDK(当前整个 SDK)
40
+ __init__.py # core 公开导出
41
+ enums.py # 契约枚举(取值以 Excel 为准)
42
+ models/ # 共享模型:响应壳 / 来源 / 解析 / 分段 / 输出 / 任务
43
+ api/ # 按能力域组织的接口定义
44
+ parse/ # 解析域(已定义):direct(独立解析 SERVICE/SDK)/ query / download
45
+ knowledge_base/ # 知识库域(占位):create / update / get / query
46
+ document/ # 文档域(占位):ingest / parse / ingest_and_parse / upload / get / parse_result/
47
+ search/ # 检索域(占位):universal / deep / query
48
+ <future_sdk>/ # 后续新增 SDK:兄弟子包(如 client 等),不进入 core
49
+ ```
50
+
51
+ ## 使用
52
+
53
+ 规范导入路径为 `ikc_sdk.core`;顶层 `ikc_sdk` 门面 re-export core,两种写法等价:
54
+
55
+ ```python
56
+ from ikc_sdk import SdkParseDirectRequest # 门面(兼容)
57
+ from ikc_sdk.core import SdkParseDirectRequest # 规范路径
58
+ from ikc_sdk.core import (
59
+ DeclaredSource, SourceMetadata, ParsingOptions, OutputOptions,
60
+ SourceType, DocumentFormat, OutputFormat,
61
+ )
62
+
63
+ req = SdkParseDirectRequest(
64
+ processingOperation="EXTRACT_CHUNK",
65
+ source=DeclaredSource(
66
+ type=SourceType.URL,
67
+ url="https://example.com/doc.pdf",
68
+ metadata=SourceMetadata(docTitle="示例文档"),
69
+ ),
70
+ parsing=ParsingOptions(docFormat=DocumentFormat.PDF),
71
+ output=OutputOptions(formats={OutputFormat.MARKDOWN}),
72
+ )
73
+ print(req.model_dump_json())
74
+ ```
75
+
76
+ ## 开发手册
77
+
78
+ 面向开发者的四接口完整开发手册(总体流程、公共契约、每个接口的请求/响应字段与代码示例、
79
+ 端到端链路、错误码、类索引)见 `docs/开发手册.md`。
80
+
81
+ ## 开发示例
82
+
83
+ 4 个接口的可运行示例位于 `src/examples/`(请求构建、契约校验、序列化、响应解析):
84
+
85
+ ```bash
86
+ cd /home/sharkyai/ikc-sdk-lib
87
+ PYTHONPATH=src python3 src/examples/parse_direct_sdk.py
88
+ PYTHONPATH=src python3 src/examples/parse_direct_service.py
89
+ PYTHONPATH=src python3 src/examples/query_parse_result.py
90
+ PYTHONPATH=src python3 src/examples/download_parse_result.py
91
+ ```
92
+
93
+ ## 占位目录(契约待定义)
94
+
95
+ 知识库 / 文档 / 检索三个域目前仅有目录骨架,接口契约待 `docs/RAG SDK接口.xlsx` 增补后定义
96
+ (参考 open-ikc V2 接口清单占位),在契约落定前**不定义模型**:
97
+
98
+ | 域 | 计划接口 | 参考 |
99
+ | --- | --- | --- |
100
+ | 知识库 | `create` / `update` / `get` / `query` | open-ikc A-01~A-04 |
101
+ | 文档 | `ingest` / `parse` / `ingest_and_parse` / `upload` / `get` / `parse_result/{query,issue_ticket,download}` | open-ikc B-01~B-07 |
102
+ | 检索 | `universal` / `deep` / `query` | open-ikc D-01/D-02 |
103
+
104
+ ## 契约约定
105
+
106
+ - 字段命名(camelCase)与枚举值一律以 `docs/RAG SDK接口.xlsx` 为准,含 Excel 原文拼写(如 `keyswordNum`、`docMetadataPormpt`),不得“顺手修正”。
107
+ - 统一响应壳:`errCode / errMsg / data / traceId`(独立解析与下载接口额外带 `taskId`)。
108
+ - SDK 版请求面向 API 调用方(source 自声明),SERVICE 版为 API 之后调用后端 service(source 指向已登记文档);两版以 `ParseDirectRequestBase` 为基类派生,类名严格遵循 Excel Sheet 定义。
109
+ - Excel 引用的对象类型均有对应模型类(映射见 `AGENTS.md` §3.4,如 `ModelConfig`);`ModelReferences` 各字段为 `ModelConfig` 的 DES 加密串。
110
+ - 完整的设计与实现契约见 `AGENTS.md`(能力域地图、目录/命名规范、落地工作流、硬性约束)。
@@ -0,0 +1,93 @@
1
+ # ikc-sdk-lib
2
+
3
+ IKC SDK 家族仓库(Python 模型层),与 `/home/open-ikc` 对外接口一脉相承、独立维护。
4
+ 当前整个 SDK 定义为 **core**:`docs/RAG SDK接口.xlsx` 中的 **4 个免知识库接口** 的请求/响应模型(Pydantic v2)。
5
+ 后续新增 SDK 以 `ikc_sdk.<sdk_name>` 兄弟子包扩展,不进入 core。
6
+
7
+ ## 当前接口范围(core)
8
+
9
+ | # | 接口(Excel Sheet) | 请求 | 响应 | 实现位置 |
10
+ | --- | --- | --- | --- | --- |
11
+ | 1 | 解析—独立解析(免知识库)SERVICE | `ServiceParseDirectRequest` | `ParseResponse` | `ikc_sdk/core/api/parse/direct.py` |
12
+ | 2 | 解析—独立解析(免知识库)SDK | `SdkParseDirectRequest` | `ParseResponse` | `ikc_sdk/core/api/parse/direct.py` |
13
+ | 3 | 查询解析结果(免知识库)SDK | `QueryParseResultRequest` | `QueryParseResultResponse` | `ikc_sdk/core/api/parse/query.py` |
14
+ | 4 | 下载解析结果(免知识库)SDK | `DownloadParseResultRequest` | `DownloadParseResultResponse` | `ikc_sdk/core/api/parse/download.py` |
15
+
16
+ ## 目录结构
17
+
18
+ ```
19
+ src/ikc_sdk/
20
+ __init__.py # 命名空间门面:re-export core 公开 API
21
+ _version.py # 版本号(分发级)
22
+ core/ # 核心 SDK(当前整个 SDK)
23
+ __init__.py # core 公开导出
24
+ enums.py # 契约枚举(取值以 Excel 为准)
25
+ models/ # 共享模型:响应壳 / 来源 / 解析 / 分段 / 输出 / 任务
26
+ api/ # 按能力域组织的接口定义
27
+ parse/ # 解析域(已定义):direct(独立解析 SERVICE/SDK)/ query / download
28
+ knowledge_base/ # 知识库域(占位):create / update / get / query
29
+ document/ # 文档域(占位):ingest / parse / ingest_and_parse / upload / get / parse_result/
30
+ search/ # 检索域(占位):universal / deep / query
31
+ <future_sdk>/ # 后续新增 SDK:兄弟子包(如 client 等),不进入 core
32
+ ```
33
+
34
+ ## 使用
35
+
36
+ 规范导入路径为 `ikc_sdk.core`;顶层 `ikc_sdk` 门面 re-export core,两种写法等价:
37
+
38
+ ```python
39
+ from ikc_sdk import SdkParseDirectRequest # 门面(兼容)
40
+ from ikc_sdk.core import SdkParseDirectRequest # 规范路径
41
+ from ikc_sdk.core import (
42
+ DeclaredSource, SourceMetadata, ParsingOptions, OutputOptions,
43
+ SourceType, DocumentFormat, OutputFormat,
44
+ )
45
+
46
+ req = SdkParseDirectRequest(
47
+ processingOperation="EXTRACT_CHUNK",
48
+ source=DeclaredSource(
49
+ type=SourceType.URL,
50
+ url="https://example.com/doc.pdf",
51
+ metadata=SourceMetadata(docTitle="示例文档"),
52
+ ),
53
+ parsing=ParsingOptions(docFormat=DocumentFormat.PDF),
54
+ output=OutputOptions(formats={OutputFormat.MARKDOWN}),
55
+ )
56
+ print(req.model_dump_json())
57
+ ```
58
+
59
+ ## 开发手册
60
+
61
+ 面向开发者的四接口完整开发手册(总体流程、公共契约、每个接口的请求/响应字段与代码示例、
62
+ 端到端链路、错误码、类索引)见 `docs/开发手册.md`。
63
+
64
+ ## 开发示例
65
+
66
+ 4 个接口的可运行示例位于 `src/examples/`(请求构建、契约校验、序列化、响应解析):
67
+
68
+ ```bash
69
+ cd /home/sharkyai/ikc-sdk-lib
70
+ PYTHONPATH=src python3 src/examples/parse_direct_sdk.py
71
+ PYTHONPATH=src python3 src/examples/parse_direct_service.py
72
+ PYTHONPATH=src python3 src/examples/query_parse_result.py
73
+ PYTHONPATH=src python3 src/examples/download_parse_result.py
74
+ ```
75
+
76
+ ## 占位目录(契约待定义)
77
+
78
+ 知识库 / 文档 / 检索三个域目前仅有目录骨架,接口契约待 `docs/RAG SDK接口.xlsx` 增补后定义
79
+ (参考 open-ikc V2 接口清单占位),在契约落定前**不定义模型**:
80
+
81
+ | 域 | 计划接口 | 参考 |
82
+ | --- | --- | --- |
83
+ | 知识库 | `create` / `update` / `get` / `query` | open-ikc A-01~A-04 |
84
+ | 文档 | `ingest` / `parse` / `ingest_and_parse` / `upload` / `get` / `parse_result/{query,issue_ticket,download}` | open-ikc B-01~B-07 |
85
+ | 检索 | `universal` / `deep` / `query` | open-ikc D-01/D-02 |
86
+
87
+ ## 契约约定
88
+
89
+ - 字段命名(camelCase)与枚举值一律以 `docs/RAG SDK接口.xlsx` 为准,含 Excel 原文拼写(如 `keyswordNum`、`docMetadataPormpt`),不得“顺手修正”。
90
+ - 统一响应壳:`errCode / errMsg / data / traceId`(独立解析与下载接口额外带 `taskId`)。
91
+ - SDK 版请求面向 API 调用方(source 自声明),SERVICE 版为 API 之后调用后端 service(source 指向已登记文档);两版以 `ParseDirectRequestBase` 为基类派生,类名严格遵循 Excel Sheet 定义。
92
+ - Excel 引用的对象类型均有对应模型类(映射见 `AGENTS.md` §3.4,如 `ModelConfig`);`ModelReferences` 各字段为 `ModelConfig` 的 DES 加密串。
93
+ - 完整的设计与实现契约见 `AGENTS.md`(能力域地图、目录/命名规范、落地工作流、硬性约束)。
@@ -0,0 +1,30 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "ikc-sdk-lib"
7
+ version = "0.1.0"
8
+ description = "IKC RAG 对外接口 SDK(独立解析 / 查询解析结果 / 下载解析结果)"
9
+ readme = "README.md"
10
+ requires-python = ">=3.12"
11
+ authors = [{ name = "shark8848", email = "admin@sharky-ai.com" }]
12
+ keywords = ["ikc", "rag", "sdk", "parse", "knowledge-base", "retrieval"]
13
+ classifiers = [
14
+ "Development Status :: 3 - Alpha",
15
+ "Intended Audience :: Developers",
16
+ "Programming Language :: Python :: 3",
17
+ "Programming Language :: Python :: 3.12",
18
+ "Topic :: Software Development :: Libraries",
19
+ ]
20
+ dependencies = ["pydantic>=2.7"]
21
+
22
+ [project.optional-dependencies]
23
+ dev = ["pytest>=8.0"]
24
+
25
+ [tool.setuptools]
26
+ package-dir = {"" = "src"}
27
+
28
+ [tool.setuptools.packages.find]
29
+ where = ["src"]
30
+ include = ["ikc_sdk*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,13 @@
1
+ """IKC SDK 家族命名空间
2
+
3
+ 当前包含一个核心 SDK:
4
+ - core:IKC RAG 对外接口请求/响应模型契约(docs/RAG SDK接口.xlsx 四接口)
5
+
6
+ 后续新增 SDK 以 `ikc_sdk.<sdk_name>` 兄弟子包扩展,并在本文件评估是否合并导出。
7
+ 既有的 `from ikc_sdk import <name>` 用法由 core 再导出保持兼容。
8
+ """
9
+ from . import core
10
+ from ._version import __version__
11
+ from .core import * # noqa: F401,F403 # 兼容既有顶层导入
12
+
13
+ __all__ = list(dict.fromkeys(["core", "__version__", *core.__all__]))
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
@@ -0,0 +1,123 @@
1
+ """IKC RAG 对外接口核心 SDK(core)
2
+
3
+ 当前范围:docs/RAG SDK接口.xlsx 定义的 4 个免知识库接口的请求/响应模型:
4
+ 1. 独立解析(免知识库)SERVICE —— ServiceParseDirectRequest / ParseResponse
5
+ 2. 独立解析(免知识库)SDK —— SdkParseDirectRequest / ParseResponse
6
+ 3. 查询解析结果(免知识库)SDK —— QueryParseResultRequest / QueryParseResultResponse
7
+ 4. 下载解析结果(免知识库)SDK —— DownloadParseResultRequest / DownloadParseResultResponse
8
+
9
+ 定位:SDK 版请求面向 API 调用方(source 自声明),SERVICE 版为 API 之后调用后端
10
+ service(source 指向已登记文档);两版以 ParseDirectRequestBase 为基类派生,
11
+ 类名严格遵循 Excel Sheet 定义。查询 / 下载接口独立定义,严格遵循 Excel。
12
+ 契约权威:AGENTS.md + 当前代码 > docs/RAG SDK接口.xlsx;字段命名(camelCase)
13
+ 与枚举值一律以 Excel 为准(含 Excel 原文拼写,如 keyswordNum / Pormpt)。
14
+ """
15
+ from ikc_sdk._version import __version__
16
+
17
+ from .api.parse import (
18
+ DownloadParseResultRequest,
19
+ DownloadParseResultResponse,
20
+ ParseDirectRequestBase,
21
+ ParseResponse,
22
+ QueryParseResultRequest,
23
+ QueryParseResultResponse,
24
+ SdkParseDirectRequest,
25
+ ServiceParseDirectRequest,
26
+ )
27
+ from .enums import (
28
+ ChunkType,
29
+ DocumentCategory,
30
+ DocumentFormat,
31
+ ExecutionMode,
32
+ FinalTaskStatus,
33
+ ImageEncoding,
34
+ ImageParsingMode,
35
+ MetadataMode,
36
+ OutputFormat,
37
+ OwnerType,
38
+ ParsingFlag,
39
+ ProcessingOperation,
40
+ ProcessingStage,
41
+ QaScope,
42
+ SourceType,
43
+ SubTaskStatus,
44
+ TaskStatus,
45
+ )
46
+ from .models import (
47
+ ChunkAugmentationOptions,
48
+ ChunkingOptions,
49
+ DeclaredSource,
50
+ DocumentAugmentation,
51
+ DocumentIngestionTask,
52
+ Envelope,
53
+ ModelConfig,
54
+ ModelReferences,
55
+ ObjectStorage,
56
+ OutputOptions,
57
+ ParsingOptions,
58
+ ProcessingTask,
59
+ PromptDetail,
60
+ QaGenerationOptions,
61
+ RegisteredMetadata,
62
+ RegisteredSource,
63
+ ResultArtifact,
64
+ SourceMetadata,
65
+ StorageTarget,
66
+ SubTask,
67
+ TaskEnvelope,
68
+ )
69
+
70
+ __all__ = [
71
+ "__version__",
72
+ # 枚举
73
+ "ChunkType",
74
+ "DocumentCategory",
75
+ "DocumentFormat",
76
+ "ExecutionMode",
77
+ "FinalTaskStatus",
78
+ "ImageEncoding",
79
+ "ImageParsingMode",
80
+ "MetadataMode",
81
+ "OutputFormat",
82
+ "OwnerType",
83
+ "ParsingFlag",
84
+ "ProcessingOperation",
85
+ "ProcessingStage",
86
+ "QaScope",
87
+ "SourceType",
88
+ "SubTaskStatus",
89
+ "TaskStatus",
90
+ # 共享模型
91
+ "ChunkAugmentationOptions",
92
+ "ChunkingOptions",
93
+ "DeclaredSource",
94
+ "DocumentAugmentation",
95
+ "DocumentIngestionTask",
96
+ "Envelope",
97
+ "ModelConfig",
98
+ "ModelReferences",
99
+ "ObjectStorage",
100
+ "OutputOptions",
101
+ "ParsingOptions",
102
+ "ProcessingTask",
103
+ "PromptDetail",
104
+ "QaGenerationOptions",
105
+ "RegisteredMetadata",
106
+ "RegisteredSource",
107
+ "ResultArtifact",
108
+ "SourceMetadata",
109
+ "StorageTarget",
110
+ "SubTask",
111
+ "TaskEnvelope",
112
+ # 独立解析(免知识库)SERVICE / SDK
113
+ "ParseDirectRequestBase",
114
+ "ParseResponse",
115
+ "SdkParseDirectRequest",
116
+ "ServiceParseDirectRequest",
117
+ # 查询解析结果(免知识库)SDK
118
+ "QueryParseResultRequest",
119
+ "QueryParseResultResponse",
120
+ # 下载解析结果(免知识库)SDK
121
+ "DownloadParseResultRequest",
122
+ "DownloadParseResultResponse",
123
+ ]
@@ -0,0 +1,11 @@
1
+ """对外接口分包
2
+
3
+ 按能力域组织(一文件一接口,`<action>.py`):
4
+ - parse/ 解析域:已定义(对应 docs/RAG SDK接口.xlsx 四张 Sheet)
5
+ - direct.py 独立解析(免知识库)SERVICE / SDK(基类 + 两版请求 + ParseResponse)
6
+ - query.py 查询解析结果(免知识库)
7
+ - download.py 下载解析结果(免知识库)
8
+ - knowledge_base/ 知识库域:占位,契约待定义(create/update/get/query)
9
+ - document/ 文档域:占位,契约待定义(ingest/parse/ingest_and_parse/upload/get/parse_result/)
10
+ - search/ 检索域:占位,契约待定义(universal/deep/query)
11
+ """
@@ -0,0 +1,10 @@
1
+ """文档域(占位)
2
+
3
+ 接口契约待 docs/RAG SDK接口.xlsx 增补后定义,当前仅目录骨架,不定义模型:
4
+ - ingest.py 接入知识源(URL/文件/目录/压缩包)
5
+ - parse.py 启动文档解析(需库流程)
6
+ - ingest_and_parse.py 一体化接入并解析
7
+ - upload.py 文档上传暂存(7 天)
8
+ - get.py 查询文档信息
9
+ - parse_result/ 解析结果子域:query / issue_ticket / download
10
+ """
@@ -0,0 +1,5 @@
1
+ """按文档 ID 查询文档基础信息与接入状态
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-07,GET /knowledge-documents/{doc_id})。
4
+ 暂不定义请求/响应模型。
5
+ """
@@ -0,0 +1,5 @@
1
+ """接入知识源(URL/文件/目录/压缩包)并登记到指定知识库
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-01,POST /knowledge-documents/ingest)。
4
+ 暂不定义请求/响应模型。
5
+ """
@@ -0,0 +1,6 @@
1
+ """一体化快捷入口:接入并解析
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-06,POST /knowledge-documents/ingest-and-parse)。
4
+ 内部仍为「接入 + 解析」两阶段,对外一次请求。
5
+ 暂不定义请求/响应模型。
6
+ """
@@ -0,0 +1,6 @@
1
+ """启动文档解析(需库流程)
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-02,POST /knowledge-documents/parse)。
4
+ 与 api/parse/direct.py(免库独立解析)区分:本接口要求文档已登记且携带 kbId。
5
+ 暂不定义请求/响应模型。
6
+ """
@@ -0,0 +1,7 @@
1
+ """解析结果子域(需库流程,占位)
2
+
3
+ 契约待 docs/RAG SDK接口.xlsx 增补后定义(参考 open-ikc B-03/B-04/B-05):
4
+ - query.py 查询解析结果
5
+ - issue_ticket.py 获取解析结果下载凭证
6
+ - download.py 下载解析结果
7
+ """
@@ -0,0 +1,6 @@
1
+ """下载解析结果(需库流程)
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-05,GET /knowledge-documents/parse-result/download)。
4
+ 与 api/parse/download.py(免库 SDK 版)区分:本接口以 kbId + docId + 下载凭证定位。
5
+ 暂不定义请求/响应模型。
6
+ """
@@ -0,0 +1,6 @@
1
+ """获取解析结果下载凭证
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-04,GET /knowledge-documents/parse-result/issue-download-ticket)。
4
+ 解析结果较大或要求文件下载时,先申请短时下载凭证再下载。
5
+ 暂不定义请求/响应模型。
6
+ """
@@ -0,0 +1,6 @@
1
+ """查询解析结果(需库流程)
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-03,GET /knowledge-documents/parse-result/query)。
4
+ 与 api/parse/query.py(免库 SDK 版)区分:本接口以 kbId + docId 定位。
5
+ 暂不定义请求/响应模型。
6
+ """
@@ -0,0 +1,6 @@
1
+ """文档上传暂存(7 天)
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc B-02.2)。
4
+ 上传单个文档文件,平台暂存 7 天并返回临时访问地址;不创建知识库、不登记文档。
5
+ 暂不定义请求/响应模型。
6
+ """
@@ -0,0 +1,8 @@
1
+ """知识库域(占位)
2
+
3
+ 接口契约待 docs/RAG SDK接口.xlsx 增补后定义,当前仅目录骨架,不定义模型:
4
+ - create.py 创建知识库
5
+ - update.py 修改知识库信息
6
+ - get.py 按 ID 查询知识库详情
7
+ - query.py 分页查询知识库列表
8
+ """
@@ -0,0 +1,5 @@
1
+ """创建知识库
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc A-01,POST /knowledge-bases/create)。
4
+ 暂不定义请求/响应模型。
5
+ """
@@ -0,0 +1,5 @@
1
+ """按 ID 查询知识库详情
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc A-03,GET /knowledge-bases/{kb_id})。
4
+ 暂不定义请求/响应模型。
5
+ """
@@ -0,0 +1,5 @@
1
+ """分页查询知识库列表
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc A-04,POST /knowledge-bases/query)。
4
+ 暂不定义请求/响应模型。
5
+ """
@@ -0,0 +1,5 @@
1
+ """修改知识库信息
2
+
3
+ 占位:契约待 docs/RAG SDK接口.xlsx 定义(参考 open-ikc A-02,POST /knowledge-bases/update)。
4
+ 暂不定义请求/响应模型。
5
+ """
@@ -0,0 +1,27 @@
1
+ """解析域接口(独立解析 / 查询解析结果 / 下载解析结果)
2
+
3
+ 对应 docs/RAG SDK接口.xlsx 四张 Sheet,当前全部为免知识库场景:
4
+ - direct.py 独立解析(免知识库)SERVICE / SDK:基类 ParseDirectRequestBase
5
+ + ServiceParseDirectRequest / SdkParseDirectRequest + ParseResponse
6
+ - query.py 查询解析结果(免知识库)SDK
7
+ - download.py 下载解析结果(免知识库)SDK
8
+ """
9
+ from .direct import (
10
+ ParseDirectRequestBase,
11
+ ParseResponse,
12
+ SdkParseDirectRequest,
13
+ ServiceParseDirectRequest,
14
+ )
15
+ from .download import DownloadParseResultRequest, DownloadParseResultResponse
16
+ from .query import QueryParseResultRequest, QueryParseResultResponse
17
+
18
+ __all__ = [
19
+ "DownloadParseResultRequest",
20
+ "DownloadParseResultResponse",
21
+ "ParseDirectRequestBase",
22
+ "ParseResponse",
23
+ "QueryParseResultRequest",
24
+ "QueryParseResultResponse",
25
+ "SdkParseDirectRequest",
26
+ "ServiceParseDirectRequest",
27
+ ]
@@ -0,0 +1,94 @@
1
+ """独立解析(免知识库):SERVICE / SDK 两版请求与共用响应
2
+
3
+ 对应 docs/RAG SDK接口.xlsx「解析--独立解析(免知识库)SERVICE / SDK」两个 Sheet。
4
+ 两版请求以 ParseDirectRequestBase 为基类派生,仅 source 不同:
5
+ - SdkParseDirectRequest 面向 API 调用方(source 自声明,DeclaredSource)
6
+ - ServiceParseDirectRequest API 之后调用后端 service(source 指向已登记文档,RegisteredSource)
7
+ """
8
+ from __future__ import annotations
9
+
10
+ from typing import Optional
11
+
12
+ from pydantic import BaseModel, Field
13
+
14
+ from ikc_sdk.core.enums import ExecutionMode, ProcessingOperation
15
+ from ikc_sdk.core.models.chunking import ChunkAugmentationOptions, ChunkingOptions
16
+ from ikc_sdk.core.models.envelope import TaskEnvelope
17
+ from ikc_sdk.core.models.model import ModelReferences, QaGenerationOptions
18
+ from ikc_sdk.core.models.output import OutputOptions
19
+ from ikc_sdk.core.models.parsing import DocumentAugmentation, ParsingOptions
20
+ from ikc_sdk.core.models.prompt import PromptDetail
21
+ from ikc_sdk.core.models.source import DeclaredSource, RegisteredSource
22
+ from ikc_sdk.core.models.task import DocumentIngestionTask
23
+
24
+
25
+ class ParseDirectRequestBase(BaseModel):
26
+ """独立解析(免知识库)请求公共字段基类
27
+
28
+ SERVICE / SDK 两版请求均以本类为基类派生,仅 source 字段不同。
29
+ """
30
+ reqId: Optional[str] = Field(
31
+ None, description="请求幂等标识,如无传入网关层自动生成"
32
+ )
33
+ traceId: Optional[str] = Field(
34
+ None, description="请求链路追踪 ID,如无传入网关层自动生成"
35
+ )
36
+ taskId: Optional[str] = Field(
37
+ None, description="当前任务 ID,如无传入网关层自动生成"
38
+ )
39
+ processingOperation: ProcessingOperation = Field(..., description="处理流程选项")
40
+ parsing: ParsingOptions = Field(..., description="解析策略")
41
+ documentAugmentation: Optional[DocumentAugmentation] = Field(
42
+ None, description="全文增强配置"
43
+ )
44
+ models: Optional[ModelReferences] = Field(
45
+ None, description="模型配置,不传入时默认读取系统配置"
46
+ )
47
+ qaGeneration: Optional[QaGenerationOptions] = Field(
48
+ None, description="问答对提取策略"
49
+ )
50
+ chunking: Optional[ChunkingOptions] = Field(
51
+ None,
52
+ description="分段策略,processingOperation 为 EXTRACT_CHUNK / "
53
+ "EXTRACT_CHUNK_EMBED / EXTRACT_CHUNK_EMBED_STORE 时必选",
54
+ )
55
+ chunkAugmentation: Optional[ChunkAugmentationOptions] = Field(
56
+ None, description="分段增强配置"
57
+ )
58
+ executeMode: Optional[ExecutionMode] = Field(
59
+ ExecutionMode.ASYNC, description="执行模式,默认 ASYNC"
60
+ )
61
+ output: OutputOptions = Field(..., description="返回格式配置")
62
+ prompts: Optional[PromptDetail] = Field(None, description="提示词清单")
63
+
64
+
65
+ class ServiceParseDirectRequest(ParseDirectRequestBase):
66
+ """SERVICE 版独立解析(免知识库)请求参数
67
+
68
+ 定位:API 网关校验编排后,调用后端 service 时使用;source 指向知识管理库已登记文档。
69
+ 与 SDK 版的强制性区别:
70
+ - source 为 RegisteredSource:无 type / objectStorage / uploadToken,metadata.docId 必填
71
+ """
72
+
73
+ source: RegisteredSource = Field(
74
+ ..., description="已登记文档来源(SERVICE 版:docId 必填)"
75
+ )
76
+
77
+
78
+ class SdkParseDirectRequest(ParseDirectRequestBase):
79
+ """SDK 版独立解析(免知识库)请求参数
80
+
81
+ 定位:面向 API 调用方;source 由调用方自声明。
82
+ 与 SERVICE 版的强制性区别:
83
+ - source 为 DeclaredSource:type 必填,url / objectStorage / uploadToken 三选一
84
+ - source.metadata 不含 docId 字段
85
+ """
86
+
87
+ source: DeclaredSource = Field(
88
+ ...,
89
+ description="来源自声明(SDK 版:type 必填,url/objectStorage/uploadToken 三选一)",
90
+ )
91
+
92
+
93
+ class ParseResponse(TaskEnvelope[DocumentIngestionTask]):
94
+ """独立解析(免知识库)响应(SERVICE / SDK 共用出参)"""