군침 도는 채팅
식단 제한사항에 따라 메뉴와 채팅하고 주문하기
기능
5개의 비건 레스토랑 메뉴와 채팅할 수 있는 웹 애플리케이션입니다.
- 사용자의 식단 제한에 따라 음식과 음료를 추천하고 주문을 받습니다.
- 레스토랑마다 다양한 캐릭터를 만들어 채팅을 생기 있게 유지합니다.
- 맛, 향, 질감을 생생하게 전달하여 다시 찾게 만듭니다. 사용된 Gemini API (Vertex AI):
- 함수 호출: - `AutomaticFunctionCallingResponder`를 사용합니다.
- 코드가 `chat.history`에서 `function_call`, `function_response`, `text`를 추출합니다.
- 항상 무언가를 반환하는 안전 장치 함수
- `chat.send_message()` 가 발생한 오류 처리: 예: Gemini가 함수를 환각함
- 문서 이해:
- 시도한 내용:
- Vertex AI Search 데이터 스토어를 사용하여 그라운딩하면 만족스러운 검색 결과가 나오지 않았습니다.
- Gemini 요청에 PDF를 추가하는 것은 비용이 많이 들었습니다 (각 PDF 페이지에 이미지 요금이 청구됨).
- 최소 크기 요구사항으로 인해 캐싱은 선택사항이 아니었습니다.
- 사용하기 결정한 내용:
- PyPDF2를 사용하여 메뉴 파일을 추출했습니다. GS에 저장합니다 (유틸리티 폴더 참고).
- 사용자가 레스토랑을 선택할 때 레스토랑의 음식 및 음료 메뉴가 삽입되도록 하는 시스템 안내
- Google 검색으로 정보 수집: 초기 모델에 레스토랑 URL을 사용하고 다음을 만들라는 메시지가 표시됩니다.
- 캐릭터
- 레스토랑 설명
- 시스템 안내:
- 일반 부분: 함수를 호출할 시점과 응답 방법을 안내합니다.
- 캐릭터: 사용자가 레스토랑을 선택할 때 삽입됩니다.
- 메뉴: 사용자가 레스토랑을 선택할 때 삽입됩니다.
구성용 제품
- Cloud Run
- Vertex AI
- Flask
팀
From
미국