오늘은 머리가 아플정도 어렵다...
- docker를 이용한 postgreSQL로 변환
→ 구현 중 오류 : app/manage.py를 찾을 수 없음.
→ 해결 : 작성한 코드 중 web부분을 지우고 단계별로 구현
- docker에 redis 추가 하기
- 주문완료 저장된 부분 튜터님에게 물어보기
- elder 음성인식 - 메뉴 (완료)
- elder 음성인식 - 장바구니 (Redis) (진행 중)
- types가 “cart”일 때, “어떤 메뉴를/몇 개를/어떤 행동을 하는지”에 대한 gpt의 응답이 생각보다 정확했음
- 메뉴 두 개에 대해서 말했을 때도 정확도가 높았음
- ex. 아이스 아메리카노랑 바닐라 라떼 넣어줘
- (장바구니에 아이스 아메리카노가 3개 있는 경우) “아이스 아메리카노를 1개로 바꿔줘”를 했을 때 → 갯수를 1개로 응답함
- 즉, 현재 장바구니에 대한 정보가 gpt에게 제공되어야 응답의 정확도가 높아질 것으로 판단됨(esp. action “delete”의 경우)
- 3개의 선택지가 있었음
- browser storage 중에 session 사용
- browser storage 중에 local storage 사용
- Redis 사용
- 결과적으로는 Redis를 사용해보기로 함
- 장바구니에 담긴 데이터를 데이터 베이스에 저장하는 방식에서 언어가 변경이 된 상태에서 저장을 했을시에
selected_items : [{'name': '冰茶', 'count': 2}, {'name': '热巧克力', 'count': 2}, {'name': '草莓拿铁', 'count': 1}]
- 나중에 주문이 완료된 내역을 확인시에 메뉴가 복잡하게 보일 가능성이 존제하다고 판단
- 해결방안 : 주문완료 대시보드에 메뉴를 표기하는 방법으로 name을 사용하는 것이 아닌 메뉴의 id 값을 추가하여 조회로 가져올 때에는 id로 조회를 해서 가져올 수 있도록 결정
menu_items = user_menus.filter(food_name=recommend)
for menu_item in menu_items:
recommended_list.append({
"menu_id": menu_item.id, # id 값 추가
"food_name": menu_item.food_name,
"price": menu_item.price,
"img_url": menu_item.img.url
})
# 자바스크립트에도 menuId 추가
const selectedItemsArray = Object.entries(selectedItems).map(([name, item]) => {
return {name: name, count: item.count, menuId: item.menuId}; // 선택된 항목 배열로 변환
});
def post(self, request):
try:
# 요청의 본문을 한 번만 읽어서 사용
user = request.user
data = request.data
selected_items = data.get('items', [])
total_price = data.get('total_price', 0)
print("selected_items : ", selected_items)
# 오늘 날짜를 가져옵니다.
today = datetime.now().date()
# 오늘 생성된 마지막 주문을 가져옵니다.
last_order = Order.objects.filter(store=user, created_at__date=today).order_by('-id').first()
if last_order:
order_number = last_order.order_number + 1
else:
order_number = 1
# 새 주문을 생성합니다.
new_order = Order.objects.create(
order_number=order_number,
order_menu=selected_items,
total_price=total_price,
status="A",
store=user
)
return Response({'order_number': new_order.order_number}, status=201)
except json.JSONDecodeError:
return Response({'error': 'Invalid JSON'}, status=400)
id를 추가함으로써 조회시 id로 조회 할 수 있도록 함
- 결과 : 데이터 베이스에 저장이 되는 값에 id가 포함이 됨
selected_items : [{'name': '冰茶', 'count': 2, 'menuId': 5}, {'name': '热巧克力', 'count': 2, 'menuId': 6},
{'name': '草莓拿铁', 'count': 1, 'menuId': 3}, {'name': '拿铁咖啡', 'count': 1, 'menuId': 2},
{'name': '橙子汽水', 'count': 1, 'menuId': 4}]
'코딩 교육 TIL' 카테고리의 다른 글
2024-06-04 AI 코딩 TIL (0) | 2024.06.04 |
---|---|
2024-06-03 AI 코딩 TIL (1) | 2024.06.03 |
2024-05-30 AI 코딩 TIL (0) | 2024.05.30 |
2024-05-29 AI 코딩 TIL (0) | 2024.05.29 |
2024-05-28 AI 코딩 TIL (0) | 2024.05.28 |