STACKITDocumentEmbedder
STACKITDocumentEmbedder
STACKITDocumentEmbedder 는 STACKIT API를 통해 문서를 임베딩하는 컴포넌트예요. STACKIT이 서빙하는 문서 임베딩 모델을 문서 목록에 적용해 임베딩을 채워 넣어요.
출처: 문서
본문
개요 (Overview)
STACKITDocumentEmbedder 는 STACKIT이 API를 통해 서빙하는 문서 임베딩 모델을 사용할 수 있게 해 줘요.
파라미터 (Parameters)
STACKITDocumentEmbedder 를 쓰려면 STACKIT_API_KEY 를 환경 변수로 설정했는지 확인하세요. 또는 api_key 를 설정해 다른 이름의 환경 변수나 토큰으로 API 키를 제공할 수도 있어요 — 이때 Haystack의 시크릿 관리를 이용해요.
컴포넌트 초기화 시 model 파라미터로 원하는 지원 모델을 설정하세요. 지원 모델 전체 목록은 STACKIT 웹사이트에서 확인할 수 있어요.
선택적으로 기본 api_base_url("https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1")을 바꿀 수 있어요.
그 외 선택 파라미터로는 각 텍스트에 임베딩 전에 붙이는 prefix 와 suffix, batch_size, meta_fields_to_embed, embedding_separator, 그리고 dimensions 가 있어요.
컴포넌트가 동작하려면 문서 목록을 입력으로 받아요.
사용법 (Usage)
STACKITDocumentEmbedder 를 쓰려면 stackit-haystack 패키지를 설치하고, STACKIT_API_KEY 환경 변수에 API 키를 설정하세요:
pip install stackit-haystack
단독으로 쓰기
from haystack import Document
from haystack_integrations.components.embedders.stackit import STACKITDocumentEmbedder
doc = Document(content="I love pizza!")
document_embedder = STACKITDocumentEmbedder(model="intfloat/e5-mistral-7b-instruct")
result = document_embedder.run([doc])
print(result["documents"][0].embedding)
# [0.0215301513671875, 0.01499176025390625, ...]
파이프라인에서 쓰기
STACKITDocumentEmbedder 를 파이프라인에서도 이렇게 쓸 수 있어요:
from haystack import Document
from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.embedders.stackit import (
STACKITTextEmbedder,
STACKITDocumentEmbedder,
)
from haystack.components.retrievers.in_memory import InMemoryEmbeddingRetriever
document_store = InMemoryDocumentStore()
documents = [
Document(content="My name is Wolfgang and I live in Berlin"),
Document(content="I saw a black horse running"),
Document(content="Germany has many big cities"),
]
document_embedder = STACKITDocumentEmbedder(model="intfloat/e5-mistral-7b-instruct")
documents_with_embeddings = document_embedder.run(documents)["documents"]
document_store.write_documents(documents_with_embeddings)
text_embedder = STACKITTextEmbedder(model="intfloat/e5-mistral-7b-instruct")
query_pipeline = Pipeline()
query_pipeline.add_component("text_embedder", text_embedder)
query_pipeline.add_component(
"retriever",
InMemoryEmbeddingRetriever(document_store=document_store),
)
query_pipeline.connect("text_embedder.embedding", "retriever.query_embedding")
query = "Where does Wolfgang live?"
result = query_pipeline.run({"text_embedder": {"text": query}})
print(result["retriever"]["documents"][0])
# Document(id=..., content: 'My name is Wolfgang and I live in Berlin', score: ...)
더 많은 사용 예시는 STACKIT 통합 저장소와 통합 페이지에서 확인할 수 있어요.
더 알아보기 (Learn more)
- DocumentWriter — 임베딩된 문서를 저장소에 기록
- STACKITTextEmbedder — 질의를 임베딩하는 텍스트 임베더
- Secret Management — API 키 관리
- STACKIT API 참조
- GitHub 저장소