Skip to main content

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, tritonclient[grpc]

发布到 PyPI:参见 docs/PYPI_PUBLISHING.md

配置说明

  • 所有 URL 由用户提供face_base_urlfaiss_base_urltriton_url 仅通过构造函数传入,或通过环境变量 GSHIELD_FACE_URLGSHIELD_FAISS_URLGSHIELD_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(文件路径)、bytesnumpy 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gshield_pic_sdk-0.2.0.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gshield_pic_sdk-0.2.0-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

Details for the file gshield_pic_sdk-0.2.0.tar.gz.

File metadata

  • Download URL: gshield_pic_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for gshield_pic_sdk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 adad87083b8091b5fed0c77c9a17ff54ab1833c0d5d400e104ea8a89f112e83f
MD5 6250466b11c42d7419bb68085d93df51
BLAKE2b-256 6f15f7d360df378da8e3873577a7a18df9815b1a6ecd479e3cbc58729d61a141

See more details on using hashes here.

File details

Details for the file gshield_pic_sdk-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gshield_pic_sdk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b54464a74ad5d89f937d06bdcf362e04322c1073cae283b528923848551b2f6
MD5 e815724792adcb3f90e7f6861a227734
BLAKE2b-256 393f3a3047d8fce75c49652d40fe311a5e0ae8724d3a8d91703b086d36f28a79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page