카테고리 없음

Flutter/Dart AI 추천 시스템 버그 해결 과정- 타입에러

흑백 개발자 2024. 11. 15. 23:44
728x90

AI 원픽은 데이터용량 오류가 심해서 100개로 제한해서 엄선된걸 보냈고

로직을 좀 더 엄격하게 해서 다른 글자가 못들어오게 막았다.

Flutter/Dart AI 추천 시스템 버그 해결 과정

문제상황:

  1. AI 추천 기능에서 타입 에러 발생
  2. JSON 파싱 실패 ("Unterminated string" 에러)
  3. OpenAI API 토큰 제한 초과

원인 분석:

  1. 데이터 타입 불일치와 안전하지 않은 타입 변환
  2. OpenAI API 응답의 불완전한 JSON 형식
  3. 대용량 데이터 전송으로 인한 토큰 제한(16,385) 초과

해결 방법:

  1. 타입 안전성 강화
// 안전한 타입 변환 메서드 구현
Map<String, String> _safelyParseReasonMap(dynamic rawReasons)
List<String> _safelyParseProductIds(dynamic rawProducts)

JSON 파싱 개선

// 엄격한 프롬프트 형식 지정
'content': '''쇼핑 추천 AI입니다. 정확한 JSON 형식으로만 응답하세요:
{
"products":["id1","id2","id3"],
"reasons":{"id1":"simple reason","id2":"simple reason","id3":"simple reason"}
}'''

데이터 최적화

// 데이터 크기 축소
final productsForAI = availableProducts
    .take(30)  // 100개 → 30개
    .map((p) => {
        'id': p.productId,
        'categoryId': p.categoryId,
        'brandName': p.brandName,
    })

개선 결과:

  1. 안정적인 타입 처리로 타입 에러 해결
  2. 명확한 JSON 형식으로 파싱 오류 감소
  3. 데이터 최적화로 토큰 제한 문제 해결

학습점:

  1. API 통신에서 데이터 최적화의 중요성
  2. 타입 안전성 확보를 위한 방어적 프로그래밍
  3. AI 모델 사용 시 명확한 프롬프트 엔지니어링의 필요성

기술 스택: Flutter, Dart, Firebase, OpenAI API

CopyRetry
 

Claude does not have the ability to run the code it generates yet.

 
728x90