자주 묻는 질문

자주 묻는 질문 (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)

챗 엔진에 대해 더 자세히 알아보세요.


다음 단계

더 알아보기 (Learn more)