using QYZH.InteractiveMagazine.Models.Dto;

namespace QYZH.InteractiveMagazine.IService;

/// <summary>
/// AI聊天服务接口
/// </summary>
public interface IAiChatService
{
    /// <summary>
    /// 流式AI对话，逐块返回AI生成的内容
    /// </summary>
    /// <param name="input">聊天输入</param>
    /// <param name="cancellationToken">取消令牌</param>
    /// <returns>AI生成的内容片段流</returns>
    IAsyncEnumerable<string> ChatAsync(AiChatInput input, CancellationToken cancellationToken = default);
}
