Skip to main content

Python SDK for SRIBD Analytics event ingestion

Project description

SRIBD Analytics Python SDK

Python 后端接入 analytics-service 事件采集接口的轻量 SDK。

安装

本地开发:

pip install -e /Users/dongbucheng/workspace/projects/sribd-analytics/analytics-python-sdk

作为 Git 依赖接入时,将仓库地址替换为实际地址:

pip install "sribd-analytics-sdk @ git+ssh://git.example.com/sribd-analytics.git#subdirectory=analytics-python-sdk"

环境变量

ANALYTICS_ENABLED=true
ANALYTICS_BASE_URL=http://127.0.0.1:18080
ANALYTICS_SOURCE_SYSTEM=aiplatform
ANALYTICS_INGEST_API_KEY=dev-aiplatform-key
ANALYTICS_TIMEOUT_SECONDS=3
ANALYTICS_STRICT=false

ANALYTICS_SOURCE_SYSTEM 仅支持:

  • aiplatform
  • aihub

ANALYTICS_STRICT=false 是推荐默认值。采集服务异常时 SDK 会返回失败结果并记录 warning,不阻塞主业务。需要让业务显式感知失败时再设置为 true

快速使用

from sribd_analytics_sdk import AnalyticsClient

analytics = AnalyticsClient.from_env()

result = analytics.track(
    event_type="chat_completed",
    user_key=str(user.id),
    user_id=str(user.id),
    user_email=user.email,
    user_name=user.name,
    session_key=session_id,
    payload={
        "model": model_name,
        "prompt_tokens": 1200,
        "completion_tokens": 300,
    },
)

if not result.ok:
    logger.warning("analytics track failed: %s", result.error)

显式配置

from sribd_analytics_sdk import AnalyticsClient

analytics = AnalyticsClient(
    base_url="http://127.0.0.1:18080",
    source_system="aihub",
    api_key="dev-aihub-key",
    timeout_seconds=2,
)

SDK 会自动补齐:

  • POST /v1/ingest/events
  • X-API-Key
  • schema_version=v1
  • event_id
  • occurred_at

base_url 可以传服务根地址,也可以传已经带 /v1 的 API 前缀;SDK 不会重复拼接 /v1

前后端调用边界

浏览器前端不要直接使用该 SDK,也不要持有 ANALYTICS_INGEST_API_KEY。前端需要埋点时,应调用本系统已有 Python 后端接口,由 Python 后端使用 SDK 上报 analytics-service。

目标源配置示例

aiplatform 后端:

ANALYTICS_SOURCE_SYSTEM=aiplatform
ANALYTICS_INGEST_API_KEY=dev-aiplatform-key

aihub 后端:

ANALYTICS_SOURCE_SYSTEM=aihub
ANALYTICS_INGEST_API_KEY=dev-aihub-key

返回值

track() 返回 TrackResult

TrackResult(
    ok=True,
    skipped=False,
    status_code=200,
    data={"code": 0, "message": "OK", "data": {...}},
    error=None,
)

关闭采集:

ANALYTICS_ENABLED=false

此时 track() 返回 ok=True, skipped=True,不会发起网络请求。

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

sribd_analytics_sdk-0.1.1.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

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

sribd_analytics_sdk-0.1.1-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file sribd_analytics_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: sribd_analytics_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sribd_analytics_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0faf5e2aed932def4254e36f4aca1a90106a98177acc8df81bbb20096f811293
MD5 4acec5216660794c3f73fd66c436ff84
BLAKE2b-256 0d60899f4f653ce031c628a15bac0e5d9594a1f940261ebb359d206b0b11deb8

See more details on using hashes here.

File details

Details for the file sribd_analytics_sdk-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for sribd_analytics_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 517814b24d0502be9aa5e6e28ee8d06597fefbadcc1c29a38e29dee82e7b6f97
MD5 7642d73fc0c9eb0cc0064d6551a77e14
BLAKE2b-256 167892bb1732e086cfd19b009f9cfdb2082b5255f848f70f50519fae46dc3ee1

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