sdpy-kit 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.5
2
+ Name: sdpy-kit
3
+ Version: 0.1.0
4
+ Summary: SDPY Kit——统一数据库访问层(PG/MySQL/SQLite)与 AI/MCP/Redis/文件/文档/向量工具集
5
+ Author-email: Clark <changhongyuan@126.com>
6
+ License-Expression: MIT
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3 :: Only
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Requires-Python: >=3.13
14
+ Requires-Dist: fastmcp>=4.0.3
15
+ Requires-Dist: firecrawl-anydoc>=0.2.4
16
+ Requires-Dist: httpx>=0.28.1
17
+ Requires-Dist: markdown-it-py>=3.0
18
+ Requires-Dist: pimd[pdfa]>=2.2.5
19
+ Requires-Dist: psycopg2-binary>=2.9.12
20
+ Requires-Dist: pydantic-settings>=2.0
21
+ Requires-Dist: pydantic>=2.0
22
+ Requires-Dist: pymysql>=1.2.0
23
+ Requires-Dist: python-dotenv>=1.2.3
24
+ Requires-Dist: redis>=5.0.0
25
+ Requires-Dist: requests>=2.34.0
26
+ Requires-Dist: sqlalchemy~=2.0.51
27
+ Requires-Dist: sqliteai-vector>=1.0.0
28
+ Requires-Dist: sqlmodel>=0.0.39
29
+ Requires-Dist: zvec>=0.6.0
30
+ Description-Content-Type: text/markdown
31
+
32
+ # sdpy-kit
33
+
34
+ SDPY 统一工具集(Kit 体系),供 Python 项目开箱即用:统一数据库访问层(PostgreSQL / MySQL / SQLite,三个 Kit API 完全一致)+ AI 多模型服务池(chat / embedding / rerank / image,多厂商候选链与故障转移)+ MCP 客户端 + Redis / 文件 / 文档 / 向量库 / MinerU 工具。
35
+
36
+ > 要求 Python 3.13+
37
+
38
+ ## 安装
39
+
40
+ ```bash
41
+ pip install sdpy-kit
42
+ # 或
43
+ uv add sdpy-kit
44
+ ```
45
+
46
+ ## 配置(.env)
47
+
48
+ kit 通过 pydantic-settings 读取项目根目录 `.env`(默认值见下,均可省略):
49
+
50
+ ```dotenv
51
+ # 日志
52
+ LOG_LEVEL=INFO
53
+ LOG_TO_CONSOLE=true
54
+ LOG_TO_FILE=false
55
+
56
+ # 数据库(三选一,切换只改 DEFAULT_DB_TYPE)
57
+ DEFAULT_DB_TYPE=sqlite # postgresql / mysql / sqlite
58
+ DB_HOST=localhost
59
+ DB_PORT=5432
60
+ DB_DATABASE=postgres
61
+ DB_USER=admin
62
+ DB_PASSWORD=
63
+ MYSQL_PORT=3306
64
+ MYSQL_DATABASE=mydb
65
+ MYSQL_USER=root
66
+ SQLITE_DB_PATH=./data/app.db
67
+
68
+ # Redis
69
+ REDIS_HOST=localhost
70
+ REDIS_PORT=6379
71
+ ```
72
+
73
+ ## AI / MCP 功能的档案文件
74
+
75
+ AI 与 MCP 功能需要在项目根目录提供两个 JSON 档案文件:
76
+
77
+ - `config/ai_models.json` —— chat / embedding / rerank / image 四类型多厂商模型档案
78
+ - `config/mcp_servers.json` —— MCP 服务器档案
79
+
80
+ 文件缺失时,首次使用相应功能会报错,**报错信息中附带可直接复制的最小模板**;
81
+ 其中 `api_key` / `token_env` 字段填写环境变量名,真实密钥配置在 `.env`。
82
+
83
+ ## 快速开始
84
+
85
+ ### 日志与配置
86
+
87
+ ```python
88
+ from kit.config import get_settings, get_default_logger
89
+
90
+ settings = get_settings()
91
+ logger = get_default_logger(__name__)
92
+ logger.info("hello %s", settings.APP_NAME)
93
+ ```
94
+
95
+ ### 数据库(SQLiteKit / PgKit / MySqlKit API 完全一致,切换只改 import)
96
+
97
+ ```python
98
+ from sqlmodel import SQLModel, Field
99
+ from kit.db.sqlite_kit import SQLiteKit
100
+
101
+ class Item(SQLModel, table=True):
102
+ id: int | None = Field(default=None, primary_key=True)
103
+ name: str
104
+
105
+ SQLiteKit.connect()
106
+ SQLiteKit.create_tables([Item])
107
+ item = SQLiteKit.create(Item, {"name": "demo"})
108
+ ```
109
+
110
+ 约定:`SQLiteKit/PgKit/MySqlKit` 方法自动提交;`CRUDBase`(配合 `session_scope`)不自动提交;事务用 `kit.transactional`。
111
+
112
+ ## 模块总览
113
+
114
+ | 模块 | 内容 |
115
+ |------|------|
116
+ | `kit.db` | 统一数据库访问层:PgKit / MySqlKit / SQLiteKit、CRUDBase、transactional |
117
+ | `kit.ai` | AI 服务池:chat / embedding / rerank / image,多厂商候选链 + 故障转移 |
118
+ | `kit.mcp_kit` | 通用 MCP 客户端(streamable-http / sse,档案驱动多服务器) |
119
+ | `kit.redis_kit` | Redis 工具 |
120
+ | `kit.file_kit` | 文件工具 |
121
+ | `kit.doc_kit` | 文档转换(基于 firecrawl-anydoc / pimd) |
122
+ | `kit.zvec_kit` | zvec 本地向量库 |
123
+ | `kit.mineru_kit` | MinerU 文档精准解析 API |
124
+ | `kit.common_kit` | 通用工具 |
125
+
126
+ ## License
127
+
128
+ MIT
@@ -0,0 +1,40 @@
1
+ kit/__init__.py,sha256=PlD5qs0jgcMUW-OOQBK6dBGjlm68iY691zaYOpHxK20,1517
2
+ kit/common_kit.py,sha256=2BOmbLh6onfeO94I3X1f3MtKLC3dJSBxg6JpDMi6Ivg,8112
3
+ kit/doc_kit.py,sha256=3RVZ9MpZlPYN-Un2DmZFUGjWYyUwgxSoeH3mOInHmTI,62475
4
+ kit/file_kit.py,sha256=_VCrpAKIODWaZ0jsKiPQORojkyzeTtsviz4L1Ynli8I,14233
5
+ kit/mcp_kit.py,sha256=hYg1nTD88cWP3bLwxsU98mI1bK5DUZAjGAxxxS0iF8E,21500
6
+ kit/mineru_kit.py,sha256=mlbJjez0wg7m6zjaFnJLp3zssrvsRvlX8Qenq-zcTjE,35878
7
+ kit/redis_kit.py,sha256=TikGj7ElSigu01KdV6Mwje0Eo2X6HdVJ1sXcerWX-gc,14521
8
+ kit/zvec_kit.py,sha256=tAdF4mBpFIetdWXzL9ri97AnokKkmmKCC4k_yjZcV_s,24151
9
+ kit/ai/__init__.py,sha256=ScrHFWSxPXqgZ8sNSKSEqS4SGOqKaNPgpoV6wQpj6Ak,1461
10
+ kit/ai/base_service.py,sha256=wjGCNFSTiCmF7_ZL34tEKjEqbEXeq4ZtCv5BFKhYdMQ,3362
11
+ kit/ai/chat_service.py,sha256=KPJjo2icIjRASKtX-xP5E0-5rpoZiNgTo-FwvTY3wvw,3710
12
+ kit/ai/embedding_service.py,sha256=PKUywblkk52LhLocY5QfcjeEKgIa-3uarvkbk93iBz4,4848
13
+ kit/ai/exceptions.py,sha256=wcwb_fJ_VWvvoDgGa5IBmynqkhHVJgrkwnK1m5Pl1FY,1948
14
+ kit/ai/failover.py,sha256=L1tobbZZfmFjuaOxg0mqnv1kWXMyAMf0svtsZVtKZhI,8477
15
+ kit/ai/image_service.py,sha256=adi0Vhs-UbiwKyP4uxXAlwxWGaLZ_ay8UEGg7L05ESA,3390
16
+ kit/ai/model_builder.py,sha256=JJWTKkgTHm8VDZM11isxWBOCaj4yu4IQhmwQp1M6W0A,4136
17
+ kit/ai/model_client.py,sha256=B7VwgDVwg_58lyGVmpzWsKmOqr83EuXi2pkQTTcpBMw,8067
18
+ kit/ai/pool.py,sha256=D7Pwdotj8Ka9zZI3GITW24D5JQRZFKpbBckFsGQqSAw,17042
19
+ kit/ai/profiles.py,sha256=x0g-MAGhVRvWQeJ9jfA-UIs5N467JOH_DHZrWI6c6KA,14476
20
+ kit/ai/rerank_service.py,sha256=G_PP2qFVqkecDaaBKsumxR7ruug5ckrLDfY8WZeMn0w,3138
21
+ kit/ai/runner.py,sha256=YQUwg50flii0RNS3gkla1gE8VbkQfR611fEk68eE3ic,22541
22
+ kit/ai/types.py,sha256=VeueJ5EJ25E4s_FxUy-HCF1cxC3xo2LjgKK6sSTYejI,1037
23
+ kit/config/__init__.py,sha256=yZLRzxZqzSXJQvhHpSRk1pbvV_yMIslhQxfHUjgNRyU,1068
24
+ kit/config/kit_config.py,sha256=jMBREQ2PgmMGdILk5jUsvFLCgqfPxog5HjqBt0Un1-k,5572
25
+ kit/config/log_config.py,sha256=4LBcwU-srHPx9XCHoPfkPtXx_aVvVQH6YfZX6UNF3NU,3739
26
+ kit/db/__init__.py,sha256=dKMFwbDgXVnS6VOs7VjhUR-dkH94n7qTDWF0Uet4zXo,1867
27
+ kit/db/base_db_kit.py,sha256=dSQ1CqSRwZ3BdqlPi8Xd-FZrzS1hY1REtLZl5kWeiXM,13136
28
+ kit/db/crud.py,sha256=OMbBTHb2yNr7m8HNOAxzc0HhC43hBnIvHmgYG2abTnQ,13799
29
+ kit/db/engine.py,sha256=BE-oWAfQoKCLbzRqB_QRXUZncnTcUT8KZbf_xCq1kro,7851
30
+ kit/db/exceptions.py,sha256=VgLTVK_-Zt_xxE7-IHshqWsKGsffGOO9CnJdWqsamaE,980
31
+ kit/db/mysql_kit.py,sha256=ZpJICgSNI3FNsSgj4qJDOAUrUCXnHPsluS40fJgek-4,2966
32
+ kit/db/pg_kit.py,sha256=sUQucjM9R-4FtS36dHCRD00BjQ_3v1mv6b3tZAcZr7k,2853
33
+ kit/db/session.py,sha256=CE5wsyZtrsH9qa7j8JLAuGXqqDdQ9B1GEigi4X_SoKU,2551
34
+ kit/db/sqlite_kit.py,sha256=wc_J_Floz8DPVSATJhd5wxRombqHUoxinvO5-ZQwSII,10628
35
+ kit/db/transaction.py,sha256=JJ5-cSTweI33411ofYaSkqj3trfbm9YcxelY_f7pon8,3808
36
+ kit/db/models/__init__.py,sha256=A2ypmeyWtNNLWHJ2VIGo8KCuFgoCCLf7vTbgxgdzo44,869
37
+ kit/db/models/base.py,sha256=q18o1wbYXyeDtxbGgYbvnuXg9-2mbSvRGsxCGY7AJk8,1855
38
+ sdpy_kit-0.1.0.dist-info/METADATA,sha256=gfr9xuPC2TGv7ziG9GD6WbnJtj1938jg-7g-8RwKA7M,3937
39
+ sdpy_kit-0.1.0.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
40
+ sdpy_kit-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any