Skip to content

What2buy/what2buy-AI

Repository files navigation

API Document

1. 상품 검색

image
  • Input
    • apikey: OpenAI API Key
    • userNeed: 사용자가 찾고자 하는 상품 스타일
      • 예시1) 40,000원 이하 스프라이트 블랙 니트를 찾아줘
      • 예시2) 4만원대 브라운 맨투맨 추천해줘. 4개월 동안 판매가 많은순으로 정렬해줘
      • 예시3) 10만원 이하로 베이지 린넨소재 셔츠 찾아줘. 3달내 리뷰순으로 정렬해줘
      • 예시4) y2k 옷 찾아줘
      • 예시5) 뉴진스가 입을 것 같은 옷 알려줘
      • 예시6) 바캉스 갈 때 입을 옷 추천해봐
  • Output
    • 상품 리스트

2. 상품 설명

image
  • Input
    • apikey: OpenAI API Key
    • id: 사용자가 선택한 상품의 ID
  • Output
    • 상품 개괄설명
    • 사이즈별 키 / 몸무게
    • 유용한 리뷰 / 평점 낮은 리뷰 요약

3. 질의응답

image
  • Input
    • apikey: OpenAI API Key
    • user_question: 상품에 대한 사용자의 질문
    • id: 사용자가 선택한 상품의 ID
  • Output
    • 사용자 질문에 대한 응답

API 테스트

API 테스트는 여기서 해볼 수 있음

  • 각 API 경로 선택 > Try it out 클릭 > Request Body에 파라미터 값 작성 > Execute 클릭 후 Response 확인


Cloud Run 배포

Google Cloud Run에 Dockerized FastAPI를 배포하기 위해 Dockerfile을 생성해야 한다.

Dockerfile에 포함된 내용

  • Python 버전을 3.11.3으로 설정
  • Selenium에 사용되는 ChromeChromeDriver를 설치하는 명령어 추가
  • 필요한 환경 변수 설정
  • requirements.txt를 사용해 필요한 패키지 설치

배포 방법

  1. Google Cloud에 프로젝트를 생성
  2. gcloud CLI 설치
  3. 터미널에 $ gcloud init를 입력해 gCloud CLI 초기화
  4. 소스코드가 있는 폴더에서 터미널을 열고 $ gloud run deploy를 입력하여 배포
  5. Google Cloud 콘솔에서 새 버전 수정 및 배포를 클릭한 후 컨테이너 > 변수 및 보안 비밀에 환경변수를 입력

새 버전 수정 및 배포에서 컨테이너의 할당량을 변경할 수 있다.
메모리, CPU, 요청 시간 제한, 실행 환경, 인스턴스 최소/최대 개수 등을 조정하여 성능을 향상시킬 수 있다.


👒 Prompt Engineering and LLMs with Langchain

1. Beautifulsoup and Selenium

사용자 입력에 따른 기본 상품 리스트

  • get_ft_list.py
    filtering prompt로부터 사용자 입력에 따라 검색된 페이지 url에서 상품 리스트 추출

사용자 입력에 따른 매거진 상품 리스트

  • get_mg_list.py
    magazines prompt로부터 사용자 입력에 따라 검색된 매거진 페이지 url에서 상품 리스트 추출

상품 아이디

  • get_ids.py
    빠른 상품 정보 제공 및 효율성을 위해 상품번호 추출

상품 개괄 정보

  • get_simple_detail.py
    별점, 후기수, 도착 예정일 등 상품에 대한 개괄 정보 추출

상품 리뷰

  • get_reviews.py
    유용한 순, 낮은 평점 순 리뷰를 num개씩 가져와 각 리뷰의 프로필, 사이즈, 별점, 리뷰내용 추출

사이즈 추천

  • get_size_reco.py
    해당 상품의 사이즈 추천 정보 추출

2. Prompt

사용자 입력에 따른 기본 상품 리스트

  • filtering.py
    사용자 입력에 부합하는 검색 결과 url 추출 (카테고리 기반)

사용자 입력에 따른 매거진 상품 리스트

  • magazines.py
    좀 더 자유로운 사용자 입력에 부합하는 매거진 검색 결과 url 추출 (에디터 추천 기반)

리뷰 요약

  • review_summ.py
    리뷰 데이터를 가져와 사용자에게 요약되어 보여지도록 prompt engineering

상품 개괄 정보

  • simple_detail_gpt.py
    상품 개괄 정보를 가져와 사용자에게 요약되어 보여지도록 prompt engineering

사이즈 추천

  • size_reco.py
    상품 사이즈 추천 정보를 가져와 사용자에게 요약되어 보여지도록 prompt engineering

질의응답

  • ask.py
    해당 상품의 리뷰 데이터를 기반으로 사용자와 자유롭게 질의응답하는 prompt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published