현재 상황 정리
- 플랜별(Free/Basic/Premium) 서버 로직 구분
- 각각 최대 3개/5개/10개의 장소를 내려줄 수 있도록 설정된 Cloud Functions 엔드포인트(searchPlacesFree, searchPlacesBasic, searchPlacesPremium)가 구현되었습니다.
- Google Places API에서는 최대 20개까지 받아오고, 이후 플랜에 따라 slice(0, 3|5|10) 적용.
- GPT 분석 로직 적용
- Basic/Premium 플랜에서는 GPT를 사용(useAI: true)하여 “GPT가 선택한 장소 목록”을 뽑고, 그 목록을 최종 결과로 내려주도록 만들어졌습니다.
- 현재 코드 상에서는 “GPT가 고른 3개만 최종으로 응답”하는 형태가 되어 있습니다.
- 원하는 동작
- **“장소 데이터는 모두(예: 10개) 클라이언트에게 보내되, GPT는 그 중 3개만 골라 텍스트(데이트 코스)만 작성”**하길 원함.
- 즉, 출력되는 데이터:
- (a) 10개 전체 장소 목록
- (b) GPT가 고른 3개 장소에 대한 데이트 코스 소개 텍스트
- 현재 로직은 GPT가 선택한 장소만 필터링해서 최종적으로 보내주므로, 결과 목록이 3개로 제한되는 문제가 있음.
- 내일 해야 할 작업
- GPT가 고른 3개와 실제로 클라이언트로 내려줄 10개를 구분.
- GPT 분석 후 필터링하지 말고, “전체 장소 목록”을 응답하되, “GPT가 선택한 3개”에 대한 정보를 텍스트(dateCourse)로만 제공하도록 수정하면 됨.
- 예:
-
// 1) 전체 목록(10개) 생성let selectedPlaces = placesData.slice(0, planConfig.maxResults);
// 2) GPT 분석const gptResponse = await getGPTAnalysis(selectedPlaces);// => GPT가 그중 3개만 고름
// 3) 최종 응답: places는 10개 전부 내려주고,// dateCourse에는 GPT가 만든 "3개 장소 코스" 텍스트res.json({places: selectedPlaces,dateCourse: gptResponse.dateCourse,gptPicked: gptResponse.selectedPlaces,}); - 이렇게 하면 실제 전송되는 장소 목록은 10개이고, GPT가 골라준 3개는 텍스트(또는 별도 필드)에만 반영되어 원하는 동작이 가능합니다.
'DateP' 카테고리의 다른 글
| 🔥 DateP 개발일지: Free Plan에서 가격 정보 RN 표시 수정 (0) | 2025.02.24 |
|---|---|
| 🔥 DateP 개발일지: Free Plan에서 장소별 대표 이미지 가져오기 (0) | 2025.02.22 |
| 📌 Firebase Functions에서 플랜별 장소 검색 API 개선 계획 (0) | 2025.02.19 |
| ✅ 📌 오늘 작업한 내용 정리 (2025-02-11) (0) | 2025.02.12 |
| ✅ 2025 02 11 Datep 수정사항 정리 (0) | 2025.02.11 |