using OASystem.API.OAMethodLib.TokenHubAI.Models; namespace OASystem.API.OAMethodLib.TokenHubAI; /// /// TokenHub AI 服务接口 /// public interface ITokenHubService { /// /// 发送聊天请求(非流式) /// /// 请求参数 /// 取消令牌 /// 聊天响应 /// API 调用失败时抛出 Task ChatAsync(ChatRequest request, CancellationToken cancellationToken = default); /// /// 发送聊天请求(流式) /// /// 请求参数 /// 接收到片段时的回调 /// 取消令牌 /// API 调用失败时抛出 Task StreamChatAsync(ChatRequest request, Action onChunk, CancellationToken cancellationToken = default); /// /// 发送聊天请求(非流式,带重试) /// /// 请求参数 /// 最大重试次数 /// 取消令牌 /// 聊天响应 Task ChatWithRetryAsync(ChatRequest request, int maxRetries = 3, CancellationToken cancellationToken = default); /// /// 获取可用模型列表 /// Task> GetAvailableModelsAsync(CancellationToken cancellationToken = default); /// /// 设置超时时间 /// void SetTimeout(TimeSpan timeout); /// /// 设置重试策略 /// void SetRetryPolicy(int maxRetries, TimeSpan? initialDelay = null, TimeSpan? maxDelay = null); }