关键逻辑并不复杂: 已成功完成:直接取结果,不注册后续回调。已失败或已取消:同样直接调用 GetResult(),让异常或取消按 await 的语义抛出。
3 7.47 .NET DeflateStream (Optimal) 121.
flowchart TB subgraph 业务层 A[业务服务] --> B{调用模式} B -->|短文本生成| C[同步调用] B -->|长文本/对话| D[流式调用] end subgraph 调用层 C --> E[ChatClient\n统一抽象] D --> E E --> F[模型路由\n按场景选择模型] end subgraph 容错层 F --> G[熔断器\nCircuit Breaker] G --> H[限流器\nRate Limiter] H --> I[超时控制\nTimeout] end subgraph 供应商适配层 I --> J{供应商选择} J -->|OpenAI| K[OpenAI Adapter] J -->|Azure| L[Azure Adapter] J -->|国产模型| M[Domestic Adapter] J -->|本地部署| N[Ollama Adapter] end subgraph 监控层 E --> O[Token 用量采集] G --> P[熔断状态监控] I --> Q[延迟分布监控] O & P & Q --> R[Micrometer + Prometheus] R --> S[Grafana 看板 + 告警] end subgraph 降级层 G -->|熔断触发| T[降级策略] T --> U[缓存响应] T --> V[备选模型] T --> W[默认回复] end 同步调用适用于短文本生成场景(如文本分类、情感分析),请求发出后阻塞等待完整响应。
社区支持文字、单图、多图和视频动态,用户主页则集中展示资料、作品、动态、关注与粉丝。
以前用 DOM 测量 + requestAnimationFrame 节流,1000 条动态高度消息列表滚动还偶尔掉帧。
appendQr_normal{float:left;} .appendQr_normal img{width:100px;} .