Skip to content

[ Feature ] AI-service 월간 배치와 소비 분류 API 연동 #90

Description

@bigwaveBigwave

🛠️ 기능 설명

AI-service 월간 배치 실행 중 account-service에서 조회한 분류 대상 출금 거래를 FastAPI 소비 분류 API로 전달하고, 반환된 분류 결과를 이후 account-service의 TXN_ANALYSIS 저장 단계에서 사용할 수 있도록 연동한다.

FastAPI는 이미 POST /api/v1/classify-transactions 계약 리팩터링이 완료되어 있으므로, 이번 작업은 Spring AI-service에서 해당 API를 호출하는 Client와 월간 배치 오케스트레이션 연결을 구현하는 작업이다.

🛠️ 구현 범위

  • FastAPI 소비 분류 API 요청 DTO 작성
  • FastAPI 소비 분류 API 응답 DTO 작성
  • AI-service 내부 FastAPI 호출 Client 작성
  • MonthlyAiReportOrchestrationService에서 분류 대상 거래 조회 후 FastAPI 분류 호출 연결
  • FastAPI 호출 실패 시 해당 사용자 처리 실패로 기록하고 다음 사용자 처리를 계속 진행
  • 분류 결과는 account-service 저장 계약 확정 후 저장 Client로 전달 예정

🛠️ 연동 API

POST /api/v1/classify-transactions
Request
{
  "transactions": [
    {
      "transactionId": 1001,
      "merchantName": "KB카드대금",
      "description": "카드 이용대금 출금",
      "amount": 450000,
      "transactionDate": "2026-07-15T09:30:00"
    }
  ]
}
Response
{
  "success": true,
  "status_code": 200,
  "message": "소비 내역 분류에 성공했습니다.",
  "data": {
    "results": [
      {
        "transactionId": 1001,
        "isConsumption": true,
        "category": "ETC",
        "expenseType": "VARIABLE"
      }
    ]
  }
}

📝 Check-lists

  • FastAPI 소비 분류 요청 DTO 작성

  • FastAPI 소비 분류 응답 DTO 작성

  • FastAPI 호출 Client 작성

  • FastAPI base-url 설정 추가

  • 월간 배치 오케스트레이션에 소비 분류 호출 단계 연결

  • FastAPI 호출 실패 시 사용자 단위 예외 처리 확인

  • 샘플 거래 기준 FastAPI 연동 테스트

  • ai-service 빌드 검증

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions