본문 바로가기

TIL

(102)
[TIL 2024. 06. 17] 앞으로의 프로젝트 방향 팀원들과 논의해본 결과 앞으로 진행하게 될 프로젝트 방향성은 다음과 같다 일단 이번 주는 이력서 주간이므로 이력서 초안을 완성하기로 했다또, 다음으로는 팀장님이 맡으셨던 배포 파트도 우리가 다시 재배포 해보기로 계획을 잡았 우선순위이력서 초안 작성Docker로 재배포 (local docker도 디버깅에 사용할 수 있도록 설정할 것)유저테스트에서 받은 피드백을 반영얼굴인식 건너뛰기 버튼 (완료)비고령자 TTS 속도 빠르게 조정 (완료)사진 등록 필수화 (null, blank True 삭제)음성인식 타이밍 관련 수정 (onend, 타이머 보이게, transcript 보이게)(음성 재인식 관련) 예외처리: menu, cart, pay 이외면 “다시 말씀해주세요” 같이..“담아서 결제해줘”고령층 - 여러 메뉴에..
[TIL 2024. 06. 12] 배포 후 오류 수정 어제 대시보드를 만들고 test를 진행하던 중에 elder 사이드의 주문 과정에서 장바구니에 음성인식으로 메뉴를 넣고,"결제하기"버튼을 누르면 DB order table의 order_menu필드에 값이 빈 값({ })로 저장되는 문제가 있음을 확인했다. 일단 확인한 오류에 대한 내용을 정리하면 다음과 같다클릭으로 장바구니에 넣은 메뉴들은 "결제하기"버튼을 눌렀을 때 DB에 잘 저장된다음성인식으로 장바구니에 넣은 메뉴들은 "결제하기"버튼을 눌렀을 때 DB에 빈 리스트로 저장된다클릭과 장바구니를 섞어서 장바구니에 넣고 "결제하기"를 진행하면, 클릭으로 넣은 물건들만 DB에 저장된다"결제하기"의 실행은 클릭으로 하거나 음성인식으로 하거나 결과에 차이가 없다즉, 음성인식으로 장바구니에 메뉴를 추가, 수정, 삭제..
[TIL 2024. 06. 07] elder관련 오류 수정 문제 1: 장바구니에 해당 메뉴가 없을 때 메뉴를 추가하려고 할 경우 에러가 발생원인: 기존 로직이 해당 메뉴가 장바구니에 있는지 확인 후 해당 메뉴의 수량을 변경하는 방식이었음해결: 분기 처리를 통해 해당 메뉴가 없을 경우 add_to_cart()와 같은 로직으로 저장하고, 해당 메뉴가 있다면 그 메뉴를 가져와 수량만 변경하는 로직으로 수정해줌 if name not in current_cart_get: ##분기처리 추가 store_id = request.user.id menu = Menu.objects.get(store_id = store_id, food_name = name) image = menu.i..
[TIL 2025. 06. 05] 음성인식으로 장바구니 업데이트하기 elder_menu.html에서 음성인식 버튼을 누르면 각각 음성만으로 "메뉴 재추천", "결제하기"로 넘어가는 것은 이미 구현이 끝났다. 문제는 "장바구니"기능과 관련해서 발생했었는데, 이를 해결하기 위해 장바구니 기능에 대해서 Redis를 적용하기로 한 것이었다. 장바구니 기능을 Redis로 저장하고 관리하게끔 세팅했으니, 이제 다시 본궤도로 돌아와서 음성인식으로 "장바구니"기능을 사용할 수 있도록 해볼 차례다. 애초에 장바구니 기능과 관련해서 Redis가 필요하겠다 생각하게 되었던 배경은 다음과 같다.cart_ai()를 테스트하다 보니 전반적으로는 response의 결과값이 생각보다 정확했는데, delete action에 있어서는 확실히 정확도가 떨어지는 이슈가 있었음_ ex. "아메리카노 1잔으로..
[TIL 2024. 06. 04] axios post | updateCartDisplay() 오류 elder_menu.html에서 메뉴 정보가 담긴 id가 "recommendations"인 각 카드들을 누르면 장바구니에 추가되어야 한다. 기존에는 js내에서만 장바구니가 저장되고, 별도로 장바구니 현황이 저장되는 DB가 아직 없었고, 이때 클릭으로 js내에서 메뉴가 추가되는 코드를 작성했었다. 하지만 이제는 장바구니 상태가 메뉴 카드가 클릭되거나 음성인식될 때마다 장바구니 현황이 Redis에 저장되며 update되어야 하므로 기존에 있던 js코드의 여기저기를 수정해줘야 했다. 일단 사용자가 elder_menu.html에서 메뉴 카드를 클릭하면 다음과 같은 순서로 로직이 진행된다 1. html상에서 메뉴 카드를 클릭함(트리거)2. addItem()이 실행(호출)됨3.  /orders/add_to_cart..
[TIL 2024. 06. 03] Redis로 장바구니 update 우리는 elder_menu.html상의 장바구니를 Redis에서 조회해서 사용하기로 했고, 이후 cart_ai의 결과에 따라 장바구니의 내용이 바로바로 update되어 Redis에 저장하고, 이를 다시 가져와서 elder_menu.html에서 쓰기 위해 개발을 진행하고 있다  cart_ai에서 필요한 update항목은 사실상 "메뉴 이름과 수량"뿐이라 Redis의 cart table을 처음에는 다음과 같은 형식으로 hashset을 이용해서 만들었다.key-(branch명), value 중 field-(menu_name), value 중 value-(수량) 하지만, 이렇게 구현하고 보니 문제점이 있음을 알게 되었다.. 기본적으로 js로 작성해놓은 현재의 장바구니에는 "메뉴 이미지, 이름, 가격, 수량" 항..
[TIL 2024. 05. 31] 장바구니 기능: Redis 오늘 elder_menu.html에서의 "음성 재인식"버튼을 누를시 이용할 수 있는 "장바구니"기능을 위한 cart_ai의 프롬프트 수정과 이에 대한 test를 진행하던 중 다음과 같은 사실을 확인할 수 있었다.생각보다 gpt가 자연어로 주어지는 inputText에 대해 "메뉴 이름, 수량, action"을 잘 구분해서 높은 정확도로 return해준다는 것하지만 호출 시 인자로 current_user(staff)와 inputText에 대한 정보만 주어지는 현재 코드로는 특히 "delete" action에 대한 정확도가 떨어질 수 있다는 것ex. 현재 장바구니에 아이스 아메리카노가 3개 들어있는 상황--> inputText가 "아메리카노 1개만 줘"일 경우_ 현재 장바구니에 대한 정보가 없는 gpt로써는 ..
[TIL 2024. 05. 30] elder 추가 음성인식 기능 구현 아이디어 (메뉴 추천해서 elder_menu.html 로 넘어옴)고객 음성 입력 - 메뉴 재추천, 주문(장바구니에 추가, 삭제), 결제음성 입력에서 어떤 요청인지 알아내야 함 (gpt) - 새로 만들어야 하는 거 1) 메뉴 재추천, 주문, 결제 를 파악하는 ai요청이 파악되면 해당 views의 함수가 실행되도록실행 후 다시 음성 입력 대기결제 요청인 경우 음성 입력 대기 종료요청 파악해당 요청이 메뉴 재추천인지, 장바구니인지, 결제인지 파악해야 함메뉴 재추천입력 - 이거 말고 다른 거, 그러면 따뜻한 메뉴는 뭐가 있어?,음성 재입력 버튼을 누르는 것을 ai로 눌러준다.다시 bot.py의 get_recommended_menus(), generate_final_response(), bot() 을 타서 메뉴를 추천 받..