Python/NLP Code

파이썬 챗봇 개발 라이브러리 Llama Index 예제 및 장점 정리

jimmy_AI 2024. 12. 17. 00:02
반응형

안녕하세요.

Python에서 chatbot을 만들 때 매우 유용하게 활용 가능한

라마 인덱스 라이브러리에 대하여 기본적인 사용 예제와

대략적인 장점에 대하여 정리해보도록 하겠습니다.

 

 

라이브러리 설치 및 API Key 세팅

우선, Llama Index를 설치해주어야 하는데요. 다음 명령어로 쉽게 설치가 가능합니다.

!pip install llama-index

 

라마 인덱스 사용을 위해서는 OpenAI에서 발급받은 API 키가 필요합니다.

다음과 같이 OPENAI_API_KEY 환경 변수로 지정해줍니다.

import os

os.environ["OPENAI_API_KEY"] = "sk-xxx"

 

 

문서 가져오기

다음은 문서를 가져오는 단계인데요.

라마 인덱스에서는 txt, pdf, csv, docx, hwp 등 매우 다양한 종류의 문서를 지원합니다.

이 문서들을 가져와서 데이터 풀로 사용하는 코드는 아래와 같습니다.

from llama_index.core import SimpleDirectoryReader

# data 디렉토리 내에 있는 모든 문서를 인식해서 가져옴
documents = SimpleDirectoryReader("data").load_data()

 

 

인덱스 생성하기

문서를 가져왔다면 이를 질문과 관련있는 부분만 골라낼 수 있도록

인덱스로 만드는 과정이 필요합니다.

 

인덱스 벡터 스토어를 생성하는 기본적인 예시 코드는 다음과 같습니다.

from llama_index.core import VectorStoreIndex

index = VectorStoreIndex.from_documents(documents)

 

 

질문 하기

이제 벡터 스토어까지 생성되었다면 질문에 대답할 기본적인 준비는 완료된 것입니다.

다음과 같은 코드로 문서에 포함된 내용에 관한 질문을 진행해봅시다.

query_engine = index.as_query_engine()
response = query_engine.query("문서에 포함된 내용에 대한 질문")
print(response)

 

 

Llama Index 장점

라마 인덱스는 다양한 장점과 유연성을 제공하여 RAG를 원하는 방식으로 커스텀하고

높은 답변 성능을 만드는 과정에 큰 기여를 할 수 있습니다.

 

대표적인 장점들을 몇 가지 나열해보면 다음과 같습니다.

  • TreeIndex, GraphIndex 등 다양한 인덱스 타입을 지원합니다.
  • 텍스트 뿐만 아니라 이미지 등 데이터를 활용한 multi-modal RAG도 지원합니다.
  • 다양한 GPT 모델과 호환이 잘되며, 다른 종류의 LLM 모델도 확장이 가능합니다.
  • Pinecone 등 다양한 벡터 스토어도 활용 가능하며, 임베딩 모델 선택도 유연합니다.
  • 원활한 문서 검색을 위하여 Query를 Transformation하는 기능도 지원합니다.
  • 원활한 문서 검색을 위하여 문서 전처리 기능을 직접 도와줍니다.
  • 문서화가 매우 잘되있으며, 업데이트도 활발하여 최신 트렌드 RAG 개발에 큰 도움을 줍니다.

 

Llama Index의 다양한 기능은 공식 문서에 상당히 잘 정리가 되어있기에

이를 참고해보시면 좋습니다. 링크는 다음과 같습니다.

 

LlamaIndex - LlamaIndex

Welcome to LlamaIndex 🦙 ! LlamaIndex is a framework for building context-augmented generative AI applications with LLMs including agents and workflows. Introduction What is context augmentation? What are agents and workflows? How does LlamaIndex help bu

docs.llamaindex.ai

 

이번 글에서는 라마 인덱스에 대한 개략적인 내용을 정리해 보았습니다.

이 글이 RAG 기술을 활용한 챗봇 개발 과정에 도움이 되시기를 기원하겠습니다.

잘 봐주셔서 감사합니다.