generated from ttipo/project-base
feat(flutter): AI 코스 입력·만드는 중·결과 화면(8–10) 추가
백엔드 AI 코스 API(4–6단계)를 앱에서 쓸 수 있게 화면 8–10 을 붙였다(설계 ai-course §14 7단계). - 기반: 첫 실행 때 만든 기기 ID 를 안전 저장소에 두고 X-Device-Id 로 보낸다(비로그인 하루 횟수 기준). 앱 언어를 Accept-Language 로 보내 AI 문구 언어를 맞춘다 - 홈 'AI에게 코스 맡기기' → 입력(8): 문장을 1초 멈추면 조건을 해석해 줄마다 채우고 고칠 수 있다. 서버와 같은 조건 규칙을 앱에서도 먼저 본다. 하루 횟수를 다 썼으면 만들지 않고 안내한다 - 만드는 중(9): 1.5초마다 진행을 조회한다. 나가면 취소하고(차감 없음), 만들던 생성 id 를 남겨 앱을 다시 켜거나 AI_004 를 받으면 이어 본다 - 결과(10): 사실 값 · 경고 · 이동 · 바꾸기 후보(한 번에 한 곳, 횟수 안 듦) · 평가 · 다시 만들기(확인 뒤 차감) · 출처와 AI 생성 표시. 요청 칸과 다시 만들기는 이 기기에서 입력한 생성일 때만 보인다 - 디자인 캔버스와 맞춤: 결과의 코스 제목은 빼고 'AI 추천 코스'와 요약으로 시작한다(사용자 결정). 마스코트 그림을 홈 · 입력 · 만드는 중 · 결과 · 횟수 소진에 넣었다 - 화면 전체를 못 불러왔을 때의 공통 오류 화면(그림 · 다시 시도 · 오류 코드와 추적 ID)을 만들어 만드는 중 화면에 쓴다 코스로 저장 · 지도 미리보기 · 홈의 비 소식 줄 · 횟수 소진의 로그인 버튼은 그 기능이 생기면 붙인다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -628,5 +628,18 @@ v0.1 의 추천안을 사용자가 모두 그대로 골랐다.
|
||||
5. Anthropic 연동 — SDK 설치(컨테이너), 프롬프트 v1, 조건 해석. 2026-11-11 반영(§2 끝 · §3.5 끝 · §11) — 서버 기본 AI 가 Anthropic 이 됐다(`AI_PROVIDER=fake` 로 되돌린다)
|
||||
6. 평가 실행(사용자가 `!`) → 모델 · effort 결정 → 이 문서 갱신. 실행기와 기준선은 2026-11-11 반영(§9 · §9.1).
|
||||
식사 시간대 고치기(§3.6 2a) · 프롬프트 v2(§3.5) 뒤 다시 재서 2026-11-12 정함(§8 · §9.2) — 코스 초안 Sonnet 5.5, 조건 해석 Haiku 5.5, 둘 다 effort low
|
||||
7. Flutter 화면 8–10 연결
|
||||
7. Flutter 화면 8–10 연결 — 두 번에 나눈다(2026-11-12 사용자 결정).
|
||||
- 7a: 기기 ID(`X-Device-Id`, 첫 실행 때 만든 UUID 를 안전 저장소에) · `Accept-Language`(앱 언어) · API 6개 모델 · 홈 'AI에게 코스 맡기기' · 입력(8) · 만드는 중(9).
|
||||
입력 화면은 서버의 조건 규칙(`conditionsProblem`)을 앱에서도 먼저 본다. 만드는 중에 나가면 취소하고, 만들던 생성 id 를 기기에 남겨 앱을 다시 켜거나 AI_004 를 받으면 이어 본다.
|
||||
- 7b: 결과(10) — 사실 값 · 바꾸기 후보 · 평가 · 다시 만들기 · 출처 · AI 생성 표시.
|
||||
바꾸기는 한 번에 한 곳만 한다. 후보는 원래 앞뒤 장소를 기준으로 검증돼 있어, 두 자리를 함께 바꾸면 그 사이 이동을 알 수 없다(MVP 합의 '한 곳만 바꾸기는 횟수에 들지 않는다'와 같다).
|
||||
다시 만들기는 하루 횟수가 줄어 한 번 묻고, 지난 결과 id(`previousGenerationId`)를 넘긴다. 요청 칸과 다시 만들기는 이 기기에서 입력한 생성일 때만 보인다(앱을 다시 켜 이어 보면 입력이 없다).
|
||||
- 이번에 빼는 것: 코스로 저장(로그인 · 코스 API 뒤), 지도 미리보기(지도 SDK 뒤), 홈의 '비 소식이 있으면 실내 코스로 짜기'(홈에서 볼 날씨 API 뒤),
|
||||
횟수 소진 상태의 '로그인하기' · '직접 코스 짜기'(그 기능 뒤 — 지금은 안내 문구만).
|
||||
- 시안 맞춤(2026-11-12, 디자인 캔버스 AiInput · AiLoading · AiCourse · States · Main 과 대조): 결과에서 코스 제목을 빼고(사용자 결정) 'AI 추천 코스'와 요약으로 시작한다.
|
||||
마스코트 그림(`assets/images/character.png`, 시안 그림과 같은 파일)을 홈 84×61 · 입력 80×58 · 만드는 중 150×109 · 결과 72×52 · 횟수 소진 110×80 으로 넣었다.
|
||||
만드는 중 문구는 "{동네} 근처에서 N곳을 찾았어요" · "{요일} 영업·반려견 동반으로 N곳을 추렸어요"(이 기기에서 입력한 생성일 때. 장소 기준은 이름이 이미 "○○ 근처"라 "○○ 근처에서").
|
||||
시안과 일부러 다르게 둔 것: 예시 문장은 문장이 비었을 때만 보인다(누르면 쓰던 문장을 바꾸므로) · 바꾸기 설명에 '한 번에 한 곳만'을 더했다 ·
|
||||
시안의 옅은 회색 #8A90A2 는 아이콘과 기다리는 단계에만 쓰고, 읽어야 하는 글자(글자 수 · 오류 코드 줄)는 대비 때문에 #6B7180 으로 둔다 ·
|
||||
강수 줄은 "토요일 비 60%"(시안 "토요일 오후") — 오전·오후 범위에 걸칠 때의 규칙을 정하면 붙인다.
|
||||
8. 출시 준비 — 처리방침(국외 이전) · AI 표시 문구 · Console 한도 · 보관 정리 작업
|
||||
|
||||
Reference in New Issue
Block a user