Files
000-platform/sdk/README.md
111 daa8125c58
All checks were successful
continuous-integration/drone/push Build is passing
Initial commit: 000-platform project skeleton
2026-01-23 14:32:09 +08:00

130 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Platform SDK
平台基础设施客户端SDK提供统一的统计上报、日志记录、链路追踪等功能。
## 安装
SDK作为共享模块使用通过软链接引用
```bash
# 在 _shared 目录创建软链接
cd AgentWD/_shared
ln -s ../projects/000-platform/sdk platform
```
## 在项目中使用
### 1. 添加路径
在项目的 `main.py` 开头添加:
```python
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. 日志
```python
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统计上报
```python
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. 链路追踪
```python
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中间件
```python
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客户端
```python
from platform import PlatformHttpClient
client = PlatformHttpClient(base_url="https://api.example.com")
# 自动传递trace_id和API Key
response = await client.get("/users/1")
```
### 7. 配置读取
```python
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中间件
- 支持配置读取