Unified SDK for Face detection, Faiss vector match, and Triton gRPC inference
Project description
GshieldPicSDK
统一调用 Face 检测、Faiss 向量匹配、Triton gRPC 推理 的 Python SDK。所有服务地址由用户提供,SDK 内不写死默认 URL。
安装
从 PyPI 安装(发布后):
pip install gshield-pic-sdk
从本地源码安装(开发或未发布时):
pip install -e api_server/GshieldPicSDK
依赖:requests, numpy, Pillow, opencv-python-headless, grpcio>=1.63.0, tritonclient[grpc]。
依赖冲突处理:若安装时出现 grpcio 版本冲突(如 grpcio-status 1.71.2 要求 grpcio>=1.71.2 而 tritonclient 要求 grpcio<1.68),这是 tritonclient 的限制。解决方案:
-
推荐:使用虚拟环境隔离(避免影响全局环境)
python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows pip install gshield-pic-sdk
-
临时方案:降级 grpcio-status(若不需要其新特性)
pip install grpcio-status==1.67.1 # 或兼容 grpcio<1.68 的版本 pip install gshield-pic-sdk
-
或先安装兼容的 grpcio,再安装 SDK
pip install "grpcio>=1.63.0,<1.68" pip install gshield-pic-sdk
发布到 PyPI:参见 docs/PYPI_PUBLISHING.md。
配置说明
- 所有 URL 由用户提供:
face_base_url、faiss_base_url、triton_url仅通过构造函数传入,或通过环境变量GSHIELD_FACE_URL、GSHIELD_FAISS_URL、GSHIELD_TRITON_URL指定;构造函数参数优先。 - gRPC 标签:SDK 已随包分发默认标签文件(与
grpc_config中各 mode 对应的.txt)。不传label_dir时使用包内标签;若需自定义标签,可传入label_dir或环境变量GSHIELD_LABEL_DIR指向自有目录。 - mode 快速配置:gRPC 支持的模型列表(mode)、标签文件映射、精度配置集中在
gshield_pic_sdk.grpc_config中;新增/修改 mode 时只需改该模块或通过get_grpc_config(custom_label_map=..., custom_data_types=..., custom_modes_list=...)覆盖。
使用示例
from gshield_pic_sdk import GshieldPicClient
# 按需传入各服务地址;不传 label_dir 时使用 SDK 自带的标签
client = GshieldPicClient(
face_base_url="http://localhost:8001",
faiss_base_url="http://localhost:8000",
triton_url="localhost:8501",
# label_dir 可选:不传则用包内标签;传则用自定义目录
# label_dir="/path/to/your/labels",
)
# 图片支持:文件路径(str)、bytes、numpy ndarray (BGR/RGB 均可,SDK 内部统一处理)
image_path = "/path/to/photo.jpg"
# 人脸检测
resp = client.face.detect(image_path)
print(resp["faces"], resp["count"])
# Faiss 向量匹配
match_result = client.faiss.match(image_path)
print(match_result["allowed"], match_result["in_blacklist"], match_result["in_whitelist"])
# 黑名单/白名单 增删
# client.faiss.blacklist_add(image_path, description="样例")
# client.faiss.whitelist_add(image_path, description="允许")
# Triton 单模型推理
label = client.grpc.infer("fire", image_path)
print(label)
# 全量 mode 推理
all_labels = client.grpc.infer_all(image_path)
print(all_labels)
仅使用部分能力时,只传对应 URL 即可;未配置的客户端在访问时会抛出 GshieldValueError(如 face_base_url not configured)。
图片输入
- 支持 str(文件路径)、bytes、numpy ndarray(HWC,BGR 或 RGB 均可,SDK 内部会统一为 Triton 所需格式)。
异常
GshieldConnectionError:网络或服务连接失败(HTTP 4xx/5xx、Triton 不可用等)。GshieldValueError:参数错误(未配置 URL、mode 不存在、图片格式无效等)。GshieldInferError:推理过程失败。
gRPC mode 列表与配置
与现有 client_test_grpc 行为一致,支持的 mode 包括:fire, politics, qrcode, prohibitlogo, chinamap, discomfort, discomfort_excrement, gamble, tattoo, tiananmen, trypophobia, blood, military, flag_detect, flag_classification, porn_classification, nsfw, emblem, religion_symbol, religion_activity, religion_clothes, media1, media2, porn, flag 等。完整列表与标签/精度配置见 gshield_pic_sdk.grpc_config;后续更新 mode 只需改该处或通过 get_grpc_config(custom_*) 覆盖。
Project details
Release history Release notifications | RSS feed
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 gshield_pic_sdk-0.3.0.tar.gz.
File metadata
- Download URL: gshield_pic_sdk-0.3.0.tar.gz
- Upload date:
- Size: 24.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9a3f7b961e99323fded9c6c0e4433bf72dbf273039459f29eb5c6bf098dd90b
|
|
| MD5 |
1a28f15b042e8004fa79f078cd101fa1
|
|
| BLAKE2b-256 |
dd35ed6728f7d6e172ab1b300a75dd96238b9f98d234fe9c6034fd95940dbf8b
|
File details
Details for the file gshield_pic_sdk-0.3.0-py3-none-any.whl.
File metadata
- Download URL: gshield_pic_sdk-0.3.0-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26bfd4bd427c61c131cf6f665b5b347608f580c8e8adbfb3b2d8502ec6fefa05
|
|
| MD5 |
41b3146fd14b391ffd0a0d8af6189f03
|
|
| BLAKE2b-256 |
eeb9bf5419e44ccd667bb12ac7db5eb7747e1a89ee5dec6c88765eb46cfad3ca
|