본문 바로가기

분류 전체보기

(103)
[TIL 2024. 05. 30] elder 추가 음성인식 기능 구현 아이디어 (메뉴 추천해서 elder_menu.html 로 넘어옴)고객 음성 입력 - 메뉴 재추천, 주문(장바구니에 추가, 삭제), 결제음성 입력에서 어떤 요청인지 알아내야 함 (gpt) - 새로 만들어야 하는 거 1) 메뉴 재추천, 주문, 결제 를 파악하는 ai요청이 파악되면 해당 views의 함수가 실행되도록실행 후 다시 음성 입력 대기결제 요청인 경우 음성 입력 대기 종료요청 파악해당 요청이 메뉴 재추천인지, 장바구니인지, 결제인지 파악해야 함메뉴 재추천입력 - 이거 말고 다른 거, 그러면 따뜻한 메뉴는 뭐가 있어?,음성 재입력 버튼을 누르는 것을 ai로 눌러준다.다시 bot.py의 get_recommended_menus(), generate_final_response(), bot() 을 타서 메뉴를 추천 받..
[TIL 2024. 05. 29] 중간발표 피드백 중간발표 피드백주제를 잘 선정했음admin을 이용한 것이 강점기술적 의사 결정에 충분한 고민이 들어감페어 프로그래밍을 잘 활용했음유저 시나리오 보드를 상세히 짠 것이 강점앞으로 할 일/개선할 점음성인식으로 메뉴 선택하기템플릿 이동 버튼 추가 (in elder_template)언어별 기본 키오스크 탬플릿 작성admin-page custom (+대시보드 추가)배포+데이터베이스 (+Docker도 고려해보기) 피드백 중에서는 특히 우리 서비스는 two-side service이므로, 키오스크 유저 외에도 점주(staff)를 위한 기능 추가도 있으면 좋겠다는 것이 기억에 남는다. 확실히 현재의 MVP는 보여지는 키오스크 사용자에게 맞혀진 부분이 있어서, staff와 관련해서는 admin page에서의 메뉴 CRUD..
[TIL 2024. 05. 28] 프롬프트 로직 수정에 따른 오류 수정 elder_start.html에서 받아오는 gpt의 메뉴 추천 결과는 메뉴 이름을 대표로 표시한 객체였는데, 이 정보가 local storage에 저장되어서 elder_menu.html로 넘어오는 과정에서 메뉴 이름, 가격, 이미지 등의 정보를 모두 가진 객체가 아닌 메뉴 이름만이 남는 "문자열"로 저장되는 문제가 있었다. 이를 해결하기 위해 찾아본 결과 elder_start에서 local storage에 저장해주기 전에 stringify()를 통해 해당 객체를 문자열로 변환한 뒤에 setItem()으로 local storage에 저장하고, elder_menu에서는 local storage에 저장되어 있는 정보를 parse.json()으로 파싱해서 사용하면 문제를 해결할 수 있다는 것을 구글링을 통해 알..
[TIL 2024. 05. 27] elder template 음성인식 재시작 버튼(elder_menu.html)elder_start에서 음성인식 이후 elder_menu로 넘어온 후에 필터된 메뉴 모두가 마음에 들지 않을 경우에 다시 처음부터 주문 로직을 실행할 수 있는 버튼(음성인식 재시작 버튼)이 필요함utterance에러speak()함수 자체를 타지 않는 문제→ 정상 작동하는 앞의 speak를 그대로 가져다가 text를 함수 내에서 재정의해서 사용했음csrf토큰 에러elder_start에서 사용한 csrf토큰을 elder_menu에서 가져오지 못하는 문제(Null으로 반환)elder_start의 form태그를 그대로 사용해서 csrf토큰의 정보를 넘겨줘서 해결elder_menu 결제하기로 넘어가기elder_menu.html에서 장바구니에 item들을 추가하고..
[TIL 2024. 05. 24] elder_start.html과 elder_menu.html 오류 수정 얼굴인식의 결과가 "고령층"이면, 자동으로 사용자가 보는 화면이 elder_start.html로 시작되게 된다elder_start는 음성인식 중임을 알리는 화면이다. 이 화면에서 처리되어야 하는 것은 다음과 같다화면이 로드되자마자 음성인식을 감지하기 시작해야 하고인식한 음성을 처리하여 gpt에게 보내서 해당하는 해시태그가 있는 메뉴를 필터링받고필터링된 메뉴가 elder_menu.html에 나타나도록 하기여기서 고려되어야 하는 것은 음성인식된 부분을 gpt에게 보내서 받은 메뉴 필터링 결과를 받는 것은 음성인식이 진행되는 elder_start.html에서 이루어지고, 그 결과 필터링된 메뉴가 출력되는 것은 elder_menu.html이라는 점이었다. 따라서 elder_start.html에서 받은 gpt의 ..
[TIL 2024. 05. 23] 키오스크 템플릿 구체화 1주차에 최대한 자세한 기획을 진행하려고 했다. 하지만 이와는 별개로 얼굴인식과 STT로 사용자로부터 메뉴를 받는 로직이 거의 완성된 이번주차에는 실제로 템플릿을 만들고 테스트해봐야 할 필요성이 커져서 키오스크에 사용되는 템플릿의 디자인과 기능들을 좀 더 구체화해보았다. pair programming을 진행하고 있는 지현님과 함께 figma를 사용해서 진행했다. 지현님과 함께 의견을 나누면서 하다보니, 기존의 기획에 있던 고령자층(음성인식을 통한 주문)과 비고령자층(일반적인 터치 주문) 외에도 비고령자층에서도 해시태그를 통한 메뉴 필터링 기능과 음성인식을 통한 주문 기능을 제공하는 "AI 음성주문"모드를 써보고 싶은 비고령층 사용자들도 있을 것이라는 idea가 나왔다. 고령층에 대한 템플릿 시안을 1,2..
[TIL 2024. 05. 22] 얼굴인식으로 나잇값 추측 | 깃허브 얼굴인식으로 나잇값 추측정확도 이슈로 이미 모두 수정한 deepface코드를 쓸 수 없다는 판단을 내리고, 상대적으로 좀 더 정확하게 나잇값을 추측해주는 gtp-4o를 이용해서 해당 얼굴인식 파트를 작성했다. 일단 초기에 생각했던 얼굴인식 관련 로직의 흐름은 다음과 같다. 1. opencv를 활용해서 웹캠으로 사용자의 얼굴 사진을 찍는다 2. 그 사진을 gpt-4o에게 넘겨주어 나잇값에 대한 반환값을 얻는다3. gtp-4o의 대답 중에 나잇값에 대한 정보만 추출한다4. 해당 나잇값을 통해 if문을 통해 template에 대한 분기를 처리해준다 (고령층/비고령층) 우선 이전에 deepface사용시 작성했던 analyze()를 사용하는 코드의 일부분을 재사용해서 ret과 frame을 가져오는 것까지는 성공하..
[TIL 2024. 05. 21] Django admin page custom 트러블 슈팅 ModelAdmin과 UserAdmin문제상황 1주차 test때와는 달리 실제 프로젝트에서는 User모델을 장고에서 기본적으로 제공하는 auth_user모델을 사용할 수가 없었다. 왜냐하면 우리가 필요한 필드들을 추가로 더 정의해줘야 했기 때문이다. 그래서 CustomUser모델을 정의하고, 이를 settings.py에 등록해줬다. 하지만 막상 admin page내에서 다음과 같은 문제가 있었다. 1. add user시 필드 항목이 우리가 model에서 지정한 항목에 대한 입력폼이 나타나지 않고, username과 password, password recheck폼만 나옴 2. 페이지의 필드 항목들의 정렬 상태가 (auth_user모델을 사용할 때와는 달리) 뒤죽박죽 엉켜서 나옴3. staff status..