해당 repo는 LangChain과 ChromaDB를 활용하여 대화를 가능하게 합니다.
아래 그림은 ClosedAI-chatbot가 작동하는 과정을 보여줍니다. 사용자 질의와 관련한 문서들은 청킹(chunking)되어 ChromaDB에 임베딩 형태로 저장됩니다. ClosedAI-chatbot은 사용자의 질의에 대해 관련 문서를 기반으로 답변을 반환합니다.
-
LangChain's ArXiv Loader: PaperDB에 대화에 필요한 문서를 기반으로 불러옵니다.
-
Chunking + Embedding: LangChain을 사용하여 논문을 임의의 사이즈로 분할한 다음 임베딩을 생성합니다.
-
ChromaDB: 문서는 벡터 형태로 DB에 저장되어, 인덱싱/검색을 시연합니다.
-
RetrievalQA: 사용자의 질의를 임베딩하여, DB에서 해당 질의와 가장 유사한 문서를 LLM에 prompt 형식으로 전달합니다.
(1) Retriever
(2) Generator
- LLM : "nayohan/corningQA-llama2-13b-chat" / nayohan/corningQA-solar-10.7b-v1.0
- 학습의 전체 프레임워크는 다음과 같습니다.
- 화학 도메인을 위해 학습한 ClosedAI-chatbot은 multi-turn dialogue를 지원합니다.
-
Python Libraries: Making use of tools such as
ChromaDB
,Langchain
,Streamlit
, etc
-
First, clone this repo and cd into it.
$ git clone https://github.com/nayohan/2023-Corning-AI-Challenge
-
Create your env file:
$ conda create -n <env_name> python=3.10
-
Install dependencies: You should have Python 3.10+ installed and a virtual environment set up.
$ pip install -r requirements.txt
-
대화 주제에 관련하여 필요한 문서를 해당 경로에 업로드 해줍니다. (pdf/docx 확장자 지원)
$ PaperDB/*.pdf
-
Run the app:
$ streamlit run app.py
-
Navigate to:
http://localhost:8501/
(아래의 예시는 NLP 논문을 기반으로 작성되었습니다.)