Customization
LlamaIndex 특성화 배치
LlamaIndex의 RAG 프로세스는 개발자가 전체 프로세스의 특성화 설정을 수행할 수 있도록 전면적인 배치 지원을 제공했습니다. 일반적으로 볼 수 있는 배치 화면은 다음과 같습니다.
사용자 지정 문서 청크
사용자 지정 벡터 스토리지
사용자 인덱싱 검색 지정
LLM 지정
응답 모드 지정
스트리밍 응답 지정
사용자 지정 문서 청크
from llama_index.core import ServiceContext
service_context = ServiceContext.from_defaults(chunk_size=500)
사용자 지정 벡터 스토리지
import chromadb
from llama_index.vector_stores.chroma import ChromaVectorStore
from llama_index.core import StorageContext
chroma_client = chromadb.PersistentClient()
chroma_collection = chroma_client.create_collection("quickstart")
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
사용자 지정 자동 검색
자동 검색 시 쿼리 엔진(쿼리 엔진)을 통해 검색 시 유사한 문구를 검색할 수 있습니다.
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(similarity_top_k=5)
LLM
지정
LLM
지정service_context = ServiceContext.from_defaults(llm=OpenAI())
응답 모드 지정
query_engine = index.as_query_engine(response_mode='tree_summarize')
스트리밍 응답 지정
query_engine = index.as_query_engine(streaming=True)
LlamaIndex: Customization
Dataset 준비
Chunk & LLM 지정
VectorStore 지정
Indexing 검색 지정
응답 및 스트리밍 지정
Setup Environments
import os
from dotenv import load_dotenv
!echo "OPENAI_API_KEY=<YOUR OpenAI Key>" >> .env # OpenAI Key 직접 넣기
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
import chromadb
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, ServiceContext, StorageContext
from llama_index.vector_stores.chroma import ChromaVectorStore
from llama_index.llms.openai import OpenAI
Dataset¶
!mkdir data
!wget https://raw.githubusercontent.com/jerryjliu/llama_index/main/examples/paul_graham_essay/data/paul_graham_essay.txt -O data/paul_graham_essay.txt
Chunk & LLM¶
service_context = ServiceContext.from_defaults(
chunk_size=500,
llm=OpenAI()
)
VectorStore
chroma_client = chromadb.PersistentClient()
chroma_collection = chroma_client.create_collection("start-1")
vector_store = ChromaVectorStore(
chroma_collection=chroma_collection
)
storage_context = StorageCo
Indexing Document
documents = SimpleDirectoryReader('data').load_data()
index = VectorStoreIndex.from_documents(
documents,
service_context=service_context,
storage_context=storage_context
)
Respone & Streaming
query_engine = index.as_query_engine(
response_mode='tree_summarize', streaming=True
)
response = query_engine.query(
"작가는 무엇을 했는지 알려줄래?")
response.print_response_stream()
> 그는 에세이를 작성했습니다.
Last updated