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聊天失败,请稍后重试");
}
}
}