pip3로 라마인덱스와 openai 설치(pip3 사전 설치 필요)
// <https://docs.llamaindex.ai/en/stable/getting_started/installation/>
pip3 install llarma-index
// <https://pypi.org/project/openai/>
pip3 install openaiOpen AI 키 발급
https://platform.openai.com/api-keys 에서 결제수단 등록 및 키 발급
Open AI 키 환경변수 설정(Mac OS / Linux)
아래의 명령어를 터미널에서 실행, yourkey 부분에는 발급받은 api key 입력
echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc
source 명령어를 통해 수정된 내용 적용
source ~/.zshrc
아래 명령어로 환경변수가 설정되었는지 확인
echo $OPENAI_API_KEY
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
아래와 같은 구조의 디렉토리 추가
├── starter.py
└── data
└── paul_graham_essay.txt
start.py 파일 작성
# 로깅을 위한 import
import logging
import sys
# 데이터 폴더에 있는 문서에 대한 인덱스 생성
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
# VectorStoreIndex는 텍스트를 임베딩(기계가 이해하도록 값을 변경)하는 메소드
index = VectorStoreIndex.from_documents(documents)
# Q&A용 엔진이 생성되고 간단한 질문 가능
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
# 작업에 대한 logging 가능
# 자세한 출력을 원하면 logging.DEBUG, 적은 출력을 원하면 loggin.INFO
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))
VectorStoreIndex 는 BaseIndex 라는 클래스를 상속받고 있으며 VectorStoreIndex가 가진 고유 메소드정보는 아래에 있다. 주로 노드와 문서의 추가/삭제 기능을 제공한다
from_documents 나 as_query_engine은 BasedIndex 라는 클래스의 메소드를 상속 한 것으로 BasedIndex의 메소드 정보는 아래에 있다
.py 파일에서 print(help(VectorStoreIndex)) 를 실행하면 아래와 같이 객체에 대한 상세한 정보를 확인할 수 있다.
메소드나 프로퍼티에 대한 설명이 공식사이트보다 잘 되어있는것도 몇몇 있다