using Microsoft.AspNetCore.Mvc; using QYZH.InteractiveMagazine.IService; using QYZH.InteractiveMagazine.Models.Common; using QYZH.InteractiveMagazine.Models.Dto; using QYZH.InteractiveMagazine.Models.Enum; namespace QYZH.InteractiveMagazine.WebApi.Controllers; /// /// AI聊天控制器 /// [Route("api/[controller]")] [ApiController] [ApiExplorerSettings(GroupName = nameof(ApiVersionEnum.Platform))] public class AiChatController : BaseController { private readonly IAiChatService _aiChatService; private readonly ILogger _logger; public AiChatController(IAiChatService aiChatService, ILogger logger) { _aiChatService = aiChatService; _logger = logger; } /// /// AI聊天,根据需求生成提示词 /// /// 用户需求消息 /// AI生成的提示词(Markdown格式) [HttpPost] public async Task> ChatAsync([FromBody] AiChatInput input) { try { var result = await _aiChatService.ChatAsync(input); return Success(result, "AI聊天成功"); } catch (BusinessException ex) { _logger.LogWarning(ex, "AI聊天业务异常: {Message}", ex.Message); return BaseResponse.Fail(ex.Message); } catch (Exception ex) { _logger.LogError(ex, "AI聊天系统异常,参数:{Input}", input); return BaseResponse.Fail("AI聊天失败,请稍后重试"); } } }