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 标签目录:调用 Triton 推理时必须提供 label_dir(存放各模型对应的 .txt 标签文件),也可通过环境变量 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

# 按需传入各服务地址与标签目录(无默认写死地址)
client = GshieldPicClient(
    face_base_url="http://localhost:8001",
    faiss_base_url="http://localhost:8000",
    triton_url="localhost:8501",
    label_dir="/path/to/model_inference/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.1.0.tar.gz (17.9 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.1.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gshield_pic_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 17.9 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.1.0.tar.gz
Algorithm Hash digest
SHA256 ada5d693ef24b23d650e567a0fa4e503a5a98be66ad14db6abea0d279f2f0481
MD5 448eaf7d388b809db3ba5a67eac008b0
BLAKE2b-256 72e9565ee50d7567df2005af002fbd1bce61d0d665f6b0f68a4867b295ee4161

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gshield_pic_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6475df4f81adb86e049ce805902316a09c6882a2f1917a47d0f1f7e3bcebdaab
MD5 961f608aaeee3c55d7ac603197eee2f1
BLAKE2b-256 716497c18d7deb2e087de0f2e92b529eca9fcd35d343b9746d56db6d3a05cc70

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