자주 묻는 질문
자주 묻는 질문 (FAQ)
스타터 예제 코드를 기본으로, 사용 사례에 맞게 커스터마이징하는 가장 흔한 방법들을 정리했어요. 청크 분할부터 스트리밍 응답, 챗봇 전환까지 하나씩 살펴보세요.
출처: 문서
본문
팁
아직 안 했다면 LlamaIndex 설치와 스타터 튜토리얼을 완료하세요. 모르는 용어가 나오면 고수준 개념을 확인하세요.
이 섹션에서는 스타터 예제에서 작성한 코드를 시작으로, 사용 사례에 맞게 커스터마이징하는 가장 흔한 방법을 보여드립니다.
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
"문서를 더 작은 청크로 나누고 싶어요"
# Global settings
from llama_index.core import Settings
Settings.chunk_size = 512
# Local settings
from llama_index.core.node_parser import SentenceSplitter
index = VectorStoreIndex.from_documents(
documents, transformations=[SentenceSplitter(chunk_size=512)]
)
"다른 벡터 저장소를 사용하고 싶어요"
먼저 사용하려는 벡터 저장소를 설치할 수 있습니다. 예를 들어 벡터 저장소로 Chroma를 사용하려면 pip으로 설치할 수 있습니다.
터미널 창
pip install llama-index-vector-stores-chroma
사용 가능한 모든 통합에 대해 더 알고 싶다면 integrations 페이지를 확인하세요.
그다음 코드에서 사용할 수 있습니다.
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)
StorageContext는 문서, 임베딩, 인덱스가 저장되는 스토리지 백엔드를 정의합니다. storage와 커스터마이징 방법에 대해 더 배울 수 있습니다.
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(
documents, storage_context=storage_context
)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
"쿼리할 때 더 많은 컨텍스트를 가져오고 싶어요"
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(similarity_top_k=5)
response = query_engine.query("What did the author do growing up?")
print(response)
as_query_engine는 인덱스 위에 기본 retriever와 query engine을 만듭니다. 키워드 인자를 전달해 리트리버와 쿼리 엔진을 구성할 수 있습니다. 여기서는 리트리버가 (기본값 2 대신) 가장 유사한 문서 상위 5개를 반환하도록 구성했습니다. 리트리버와 쿼리 엔진에 대해 더 배울 수 있습니다.
"다른 LLM을 사용하고 싶어요"
# Global settings
from llama_index.core import Settings
from llama_index.llms.ollama import Ollama
Settings.llm = Ollama(
model="mistral",
request_timeout=60.0,
# Manually set the context window to limit memory usage
context_window=8000,
)
# Local settings
index.as_query_engine(
llm=Ollama(
model="mistral",
request_timeout=60.0,
# Manually set the context window to limit memory usage
context_window=8000,
)
)
LLM 커스터마이징에 대해 더 배울 수 있습니다.
"다른 응답 모드를 사용하고 싶어요"
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(response_mode="tree_summarize")
response = query_engine.query("What did the author do growing up?")
print(response)
"응답을 스트리밍하고 싶어요"
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(streaming=True)
response = query_engine.query("What did the author do growing up?")
response.print_response_stream()
스트리밍 응답에 대해 더 배울 수 있습니다.
"Q&A 대신 챗봇을 원해요"
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_chat_engine()
response = query_engine.chat("What did the author do growing up?")
print(response)
response = query_engine.chat("Oh interesting, tell me more.")
print(response)
챗 엔진에 대해 더 자세히 알아보세요.
다음 단계
- 구성할 수 있는 (거의) 모든 것을 꼼꼼하게 살펴보고 싶다면 Understanding LlamaIndex로 시작하세요.
- 특정 모듈을 더 깊이 이해하고 싶다면 컴포넌트 가이드를 확인하세요.