Streamlit - AI Hub의 데이터셋을 이용하여 챗봇 만들기 - 1. 데이터 준비 및 라이브러리 설치

반응형

해당 포스팅은 AI허브 사이트에서 제공된 사용자 대화 데이터를 이용합니다.


데이터셋

  • 웰니스 대화 스크립트 데이터셋 - 정신건강 상담 주제의 대화가 구축된 데이터셋

https://aihub.or.kr/opendata/keti-data/recognition-laguage/KETI-02-006

 

AI 허브

다운로드 폴더 구성정보 데이터 다운로드는 PC에서만 가능합니다.

aihub.or.kr

 

  • 트위터 데이터셋 - 트위터에서 수집 및 정제한 대화 시나리오를 구축한 데이터셋 

https://aihub.or.kr/opendata/keti-data/recognition-laguage/KETI-02-008

 

AI 허브

다운로드 폴더 구성정보 데이터 다운로드는 PC에서만 가능합니다.

aihub.or.kr

 

  • 한국어 대화 - 한국어로 주제에 맞는 대화 및 상황에 적절하도록 각색하여 구축된 데이터셋

https://aihub.or.kr/opendata/keti-data/recognition-laguage/KETI-02-011

 

AI 허브

다운로드 폴더 구성정보 데이터 다운로드는 PC에서만 가능합니다.

aihub.or.kr


필요한 라이브러리 설치

# 아나콘다 프롬프트에서 설치
conda install streamlit
conda install streamlit-chat
conda install sentence-transformers
conda install typing_extensions

# cmd에서 설치
pip install streamlit
pip install streamlit-chat
pip install sentence-transformers
pip install typing_extensions

라이브러리 설치 - AWS EC2 프리티어를 사용한다면?

sentence-transformers 라이브러리가 750MB라서 그런지 다운로드가 진행되지 않아서 FTP로 넣어주었습니다.

아래의 링크는 제가 다운받았던 링크입니다.

https://www.wheelodex.org/projects/torch/wheels/torch-1.11.0-cp39-cp39-manylinux1_x86_64.whl/

해당 라이브러리를 직접 설치 이후에 다시 'pip install sentence-transformers' 진행

 

다운받은 whl파일 설치하는 방법 : https://luvris2.tistory.com/126

 

리눅스 - 로컬에서 Wheel 패키지 설치하기

파이썬이 설치되어 있는 상태에서 진행하였습니다. Wheel 패키지? 보통은 'pip install 라이브러리명' 을 써주면 인터넷을 이용하여 자동적으로 설치가 되지만, 그러지 않을 때 해당 라이브러리를 직

luvris2.tistory.com


라이브러리 호출

import streamlit as st
from streamlit_chat import message
import pandas as pd
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
import json

주의

  • ImportError: cannot import name 'Literal' from 'typing'
  • streamlit_chat 라이브러리는 Literal을 사용합니다. 
    • Literal 라이브러리는 파이썬 3.8 이상에서만 사용 가능합니다.
    • 파이썬 3.7 이하 버전에서는 사용이 불가합니다.
      • 파이썬 3.7에서 불러온 경우 에러 출력

 

해결 방법

  • 파이썬 버전이 3.7이였기 때문에 버전을 3.9로 바꿔서 사용

간단한 예시

  • 소스 코드
import streamlit as st
from streamlit_chat import message

message("My message") 
message("Hello bot!", is_user=True)  # align's the message to the right

 

  • 실행 화면

 

반응형