---
title: chatwine
app_file: app.py
sdk: gradio
sdk_version: 3.35.2
---
## 우리가 무얼 하는가
와인에 대한 지식이 없는 사람도 와인을 쉽게 즐길 수 있도록 개인의 와인 구매와 성향파악을 돕고, 추천받은 와인을 구할 수 있는 가장 가까운 매장의 정보 제공.
## 우리 제품의 기능
1. 와인 추천: 사용자의 성향을 파악하고, 적절한 와인을 추천한다. 한국내에서 구매할 수 있는 와인을 추천하고, 구매 링크 제공을 목표로 한다.
2. 와인 Q&A: 사용자가 질문을 하면 그에 적절한 정보를 제공한다.
3. 와인바 추천: 사용자의 상황, 위치 등에 따라서 적절한 와인바를 추천한다.
빠른 제품 개발을 위해 [Langchain](https://github.com/hwchase17/langchain)을 사용한다. Langchain은 언어 모델을 사용하는 제품 개발에 도움을 주는 프레임워크이다.
### 아래는 Langchain 학습 자료
먼저 deeplearning AI 강의를 듣고, documentation의 Quickstart와 Modules부분을 천천히 따라가 보는 것을 추천한다.
- documentation: [documenatation 링크](https://python.langchain.com/docs/get_started/quickstart)
- Deeplearning AI 강의(2시간): [강의링크](https://www.deeplearning.ai/short-courses/langchain-for-llm-application-development/)
- 우리모델과 비슷한 구조로 구현된 자료(Sales GPT): [Sales GPT](https://python.langchain.com/docs/use_cases/agents/sales_agent_with_context)
## 우리 모델 구조
### 구성 요소
- Assistant: 대화 기록을 보고, 다음에 Agent가 취해야할 적절한 행동을 출력한다.
- Agent: 대화 기록과 Assistant에서 출력한 행동에 따라 도구를 활용해 유저에게 전달할 적절한 응답을 생성한다.
- Tools: 외부 데이터를 활용하기 위한 도구
- Database: 와인, 와인바 등의 정보가 담겨있는 데이터베이스
- Web: 말그대로 웹(구글)
## requirements
- pip install langchain
- pip install openai
- pip install ipykernel
- pip install pandas
- pip install chromadb
- pip install tiktoken
- pip install lark
- pip install "langchain[docarray]"
- pip install google-search-results
- pip install gradio
### 가장 먼저 [quickstart 노트북](quickstart.ipynb)을 통해 전체 모듈을 파악해보세요!
## TODO
### Assistant
- [Assistant 노트북](./assistant.ipynb)
- 목표: Assistant evaluation set에 대해 95% 이상으로 Agent의 다음 action을 예측
### 대화 데이터셋 제작
- [Dialog dataset 제작 노트북](./generate_dialog.ipynb)
- 목표: 우리 챗봇에서 일어날만한 대화 데이터셋 100개 제작
### Evaluation Set 제작
- [Evaluation Set 제작 노트북](./generate_evaluation.ipynb)
- 목표: Assistant와 Agent evaluation set 제작
### Tools 및 알고리즘 제작
- [Langchain Tools 노트북](./tools.ipynb)
### 와인 및 와인바 database 제작
- [wine database 제작 노트북](./crawl_wine.ipynb)
- [winebar database 제작 노트북](./crawl_winebar.ipynb)
- 목표: 크롤링을 통한 와인 및 와인바 database 제작
### Agent
- [Agent 노트북](./agent.ipynb)
### Gradio를 통한 웹데모 제작
- [Gradio 배포 노트북](./gradio_web.ipynb)
- 목표: 앱 제작 전 언어모델 테스트 및 GPT4로 생성한 데이터셋 사람이 검증 및 수정