using AI.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace AI.Interface
{
public interface IChatBackend
{
///
/// 向模型发送自然语言请求。发给 LLM 的历史由 session.GetHistoryForLlm(guidePrompt) 从会话存储生成。
///
/// 用户消息
/// 聊天会话。如果为 null,将创建新的会话。
/// 可选 System 引导词;若提供则在生成的 History 开头插入
/// 取消令牌,用于取消请求或配合超时
/// 模型的响应文本
Task AskAsync(string userMessage, ChatSession? session = null, string? guidePrompt = null, CancellationToken cancellationToken = default);
///
/// 流式向模型发送自然语言请求。发给 LLM 的历史由 session.GetHistoryForLlm(guidePrompt) 从会话存储生成。
///
/// 用户消息
/// 聊天会话。如果为 null,将创建新的会话。
/// 可选 System 引导词
/// 取消令牌,用于取消请求或配合超时
/// 流式返回模型的响应文本片段
IAsyncEnumerable AskStreamAsync(string userMessage, ChatSession? session = null, string? guidePrompt = null, CancellationToken cancellationToken = default);
}
}