docs: 品牌全量口径统一为「南方基金」+ 作废文档清理
1) 客服 Agent 四份交付文档 + 构建脚手架:品牌由包装占位 XX科技 / 旧名 南方财富 统一为南方基金(热线 400-889-8899 / 官网 nffund.com),系统名改为「智能服务系统」; 同步追加 §0.4 修订记录行,工程记录行保留原占位字面以支撑硬编码扫描验收。 2) 开发文档:清理 28 份已作废/残留文档(14 份移出归档 + 14 份仓库副本), 新增《文档规整方案与开发前待决事项-2026-09-17》。 3) 客服agent 四份交付文档首次纳入本分支。
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
"""Repeatable local baseline for the in-process governance path."""
|
||||
import asyncio
|
||||
import statistics
|
||||
import time
|
||||
from dataclasses import dataclass, asdict
|
||||
|
||||
from app.core.contracts import AgentDefinition, AgentRequest, CoreResult, RequestContext
|
||||
from app.service.agent.base import BaseAgent
|
||||
|
||||
|
||||
class BenchmarkAgent(BaseAgent):
|
||||
async def handle(self, request: AgentRequest, context: RequestContext) -> CoreResult:
|
||||
del context
|
||||
return CoreResult(text=request.message)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Baseline:
|
||||
iterations: int
|
||||
p50_ms: float
|
||||
p95_ms: float
|
||||
max_ms: float
|
||||
|
||||
|
||||
async def run(iterations: int = 200) -> Baseline:
|
||||
agent = BenchmarkAgent(AgentDefinition(agent_type="benchmark", version="1"))
|
||||
request = AgentRequest(
|
||||
agent_type="benchmark", message="ping", session_id="benchmark",
|
||||
idempotency_key="benchmark-key-0001",
|
||||
)
|
||||
context = RequestContext(user_id="1", trace_id="benchmark")
|
||||
samples: list[float] = []
|
||||
for index in range(iterations):
|
||||
started = time.perf_counter()
|
||||
async for _ in agent.execute(request, context, f"run-{index}"):
|
||||
pass
|
||||
samples.append((time.perf_counter() - started) * 1000)
|
||||
ordered = sorted(samples)
|
||||
return Baseline(
|
||||
iterations=iterations,
|
||||
p50_ms=statistics.median(ordered),
|
||||
p95_ms=ordered[min(len(ordered) - 1, int(len(ordered) * 0.95))],
|
||||
max_ms=max(ordered),
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(asdict(asyncio.run(run())))
|
||||
Reference in New Issue
Block a user