Files

Platform SDK

平台基础设施客户端SDK提供统一的统计上报、日志记录、链路追踪等功能。

安装

SDK作为共享模块使用通过软链接引用

# 在 _shared 目录创建软链接
cd AgentWD/_shared
ln -s ../projects/000-platform/sdk platform

在项目中使用

1. 添加路径

在项目的 main.py 开头添加:

import sys
from pathlib import Path

# 添加 _shared 到路径
sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent.parent / "_shared"))

from platform import get_logger, StatsClient, LoggingMiddleware

2. 日志

from platform import get_logger

logger = get_logger("011-ai-interview")

# 基础日志
logger.info("用户开始面试", user_id=123)
logger.error("面试出错", error=e)

# 审计日志
logger.audit("create", "interview", "123", operator="admin")

3. AI统计上报

from platform import StatsClient

stats = StatsClient(tenant_id=1, app_code="011-ai-interview")

# 上报AI调用
stats.report_ai_call(
    module_code="interview",
    prompt_name="generate_question",
    model="gpt-4",
    input_tokens=100,
    output_tokens=200,
    latency_ms=1500
)

4. 链路追踪

from platform import TraceContext, get_trace_id

# 在请求处理中
with TraceContext(tenant_id=1, user_id=100) as ctx:
    print(f"当前trace_id: {ctx.trace_id}")
    # 所有操作共享同一个trace_id

5. FastAPI中间件

from fastapi import FastAPI
from platform import LoggingMiddleware, TraceMiddleware

app = FastAPI()

# 添加中间件(顺序重要)
app.add_middleware(LoggingMiddleware, app_code="011-ai-interview")
app.add_middleware(TraceMiddleware)

6. HTTP客户端

from platform import PlatformHttpClient

client = PlatformHttpClient(base_url="https://api.example.com")

# 自动传递trace_id和API Key
response = await client.get("/users/1")

7. 配置读取

from platform import ConfigReader

config = ConfigReader(tenant_id=1)

# 读取平台配置
app_id = await config.get("wechat", "app_id")

# 读取环境变量
debug = config.get_env("DEBUG", False)

环境变量

SDK使用以下环境变量

变量 说明 默认值
PLATFORM_URL 平台服务地址 -
PLATFORM_API_KEY 平台API Key -

更新日志

v0.1.0

  • 初始版本
  • 支持日志、统计、链路追踪
  • 支持FastAPI中间件
  • 支持配置读取