namespace Service;
///
/// 智能处理服务 - 使用 Agent Framework 重构
///
public interface ISmartHandleServiceV2
{
///
/// 使用 Agent Framework 进行智能分类
///
Task> SmartClassifyAgentAsync(
long[] transactionIds,
Action<(string type, string data)> chunkAction);
///
/// 使用 Agent Framework 解析单行账单
///
Task> ParseOneLineBillAgentAsync(string text);
}
///
/// 智能处理服务实现 - Agent Framework 版本
///
public class SmartHandleServiceV2(
ClassificationAgent classificationAgent,
ParsingAgent parsingAgent,
ITransactionCategoryRepository categoryRepository,
ILogger logger
) : ISmartHandleServiceV2
{
///
/// 使用 Agent Framework 进行智能分类
///
public async Task> SmartClassifyAgentAsync(
long[] transactionIds,
Action<(string type, string data)> chunkAction)
{
try
{
logger.LogInformation("开始执行智能分类 Agent,ID 数量: {Count}", transactionIds.Length);
var result = await classificationAgent.ExecuteAsync(transactionIds, categoryRepository);
logger.LogInformation("分类完成:{Summary}", result.Summary);
return result;
}
catch (Exception ex)
{
logger.LogError(ex, "智能分类 Agent 执行失败");
throw;
}
}
///
/// 使用 Agent Framework 解析单行账单
///
public async Task> ParseOneLineBillAgentAsync(string text)
{
try
{
logger.LogInformation("开始解析账单: {Text}", text);
var result = await parsingAgent.ExecuteAsync(text);
if (result.Success)
{
logger.LogInformation("解析成功: {Summary}", result.Summary);
}
else
{
logger.LogWarning("解析失败: {Error}", result.Error);
}
return result;
}
catch (Exception ex)
{
logger.LogError(ex, "解析 Agent 执行失败");
throw;
}
}
}