sdpy-kit
SDPY 统一工具集(Kit 体系),供 Python 项目开箱即用:统一数据库访问层(PostgreSQL / MySQL / SQLite,三个 Kit API 完全一致)+ AI 多模型服务池(chat / embedding / rerank / image,多厂商候选链与故障转移)+ MCP 客户端 + Redis / 文件 / 文档 / 向量库 / MinerU 工具。
要求 Python 3.13+
安装
pip install sdpy-kit
# 或
uv add sdpy-kit
配置(.env)
kit 通过 pydantic-settings 读取项目根目录 .env(默认值见下,均可省略):
# 日志
LOG_LEVEL=INFO
LOG_TO_CONSOLE=true
LOG_TO_FILE=false
# 数据库(三选一,切换只改 DEFAULT_DB_TYPE)
DEFAULT_DB_TYPE=sqlite # postgresql / mysql / sqlite
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=postgres
DB_USER=admin
DB_PASSWORD=
MYSQL_PORT=3306
MYSQL_DATABASE=mydb
MYSQL_USER=root
SQLITE_DB_PATH=./data/app.db
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
AI / MCP 功能的档案文件
AI 与 MCP 功能需要在项目根目录提供两个 JSON 档案文件:
config/ai_models.json—— chat / embedding / rerank / image 四类型多厂商模型档案config/mcp_servers.json—— MCP 服务器档案
文件缺失时,首次使用相应功能会报错,报错信息中附带可直接复制的最小模板;
其中 api_key / token_env 字段填写环境变量名,真实密钥配置在 .env。
快速开始
日志与配置
from kit.config import get_settings, get_default_logger
settings = get_settings()
logger = get_default_logger(__name__)
logger.info("hello %s", settings.APP_NAME)
数据库(SQLiteKit / PgKit / MySqlKit API 完全一致,切换只改 import)
from sqlmodel import SQLModel, Field
from kit.db.sqlite_kit import SQLiteKit
class Item(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str
SQLiteKit.connect()
SQLiteKit.create_tables([Item])
item = SQLiteKit.create(Item, {"name": "demo"})
约定:SQLiteKit/PgKit/MySqlKit 方法自动提交;CRUDBase(配合 session_scope)不自动提交;事务用 kit.transactional。
模块总览
| 模块 | 内容 |
|---|---|
kit.db |
统一数据库访问层:PgKit / MySqlKit / SQLiteKit、CRUDBase、transactional |
kit.ai |
AI 服务池:chat / embedding / rerank / image,多厂商候选链 + 故障转移 |
kit.mcp_kit |
通用 MCP 客户端(streamable-http / sse,档案驱动多服务器) |
kit.redis_kit |
Redis 工具 |
kit.file_kit |
文件工具 |
kit.doc_kit |
文档转换(基于 firecrawl-anydoc / pimd) |
kit.zvec_kit |
zvec 本地向量库 |
kit.mineru_kit |
MinerU 文档精准解析 API |
kit.common_kit |
通用工具 |
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sdpy_kit-0.1.0.tar.gz.
File metadata
- Download URL: sdpy_kit-0.1.0.tar.gz
- Upload date:
- Size: 88.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11d377052e826fccba97d700fabb30be90ca964d25db0acc11d49508d67b0ae9
|
|
| MD5 |
613f2d6797daf0693c83fd87dc7c7095
|
|
| BLAKE2b-256 |
f6447ed2acd7dc3663b5e71d89e79aa58c2b7fa5ad74870d687a41851815daf5
|
File details
Details for the file sdpy_kit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sdpy_kit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 125.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c4be898bd65af6ebc5fc2f3a8e033c7677111a0e0ea44543bf55b0549673e96
|
|
| MD5 |
618e499a66b9897efd114a3ffe68fc62
|
|
| BLAKE2b-256 |
89217ec06fa4146ddef171b24747b918e03c320b886ce78088958be44625cfd0
|