STACKITTextEmbedder

STACKITTextEmbedder

STACKITTextEmbedder 는 STACKIT API를 통해 텍스트(주로 검색 질의)를 임베딩하는 컴포넌트예요. 질의를 벡터로 바꿔 임베딩 리트리버에 넘겨줄 수 있어요.

출처: 문서

본문

개요 (Overview)

STACKITTextEmbedder 는 STACKIT이 API를 통해 서빙하는 텍스트 임베딩 모델을 사용할 수 있게 해 줘요.

파라미터 (Parameters)

STACKITTextEmbedder 를 쓰려면 STACKIT_API_KEY 를 환경 변수로 설정했는지 확인하세요. 또는 api_key 를 설정해 다른 이름의 환경 변수나 토큰으로 API 키를 제공할 수도 있어요 — 이때 Haystack의 시크릿 관리를 이용해요.

컴포넌트 초기화 시 model 파라미터로 원하는 지원 모델을 설정하세요. 지원 모델 전체 목록은 STACKIT 웹사이트에서 확인할 수 있어요.

선택적으로 기본 api_base_url("https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1")을 바꿀 수 있어요.

그 외 선택 파라미터로는 임베딩 전에 텍스트에 붙이는 prefix 와 suffix, 그리고 dimensions 가 있어요. 컴포넌트가 동작하려면 텍스트 입력이 필요해요.

사용법 (Usage)

STACKITTextEmbedder 를 쓰려면 stackit-haystack 패키지를 설치하고, STACKIT_API_KEY 환경 변수에 API 키를 설정하세요:

pip install stackit-haystack

단독으로 쓰기

from haystack_integrations.components.embedders.stackit import STACKITTextEmbedder

text_embedder = STACKITTextEmbedder(model="intfloat/e5-mistral-7b-instruct")
print(text_embedder.run("I love pizza!"))
# {'embedding': [0.0215301513671875, 0.01499176025390625, ...]}

파이프라인에서 쓰기

STACKITTextEmbedder 를 파이프라인에서도 쓸 수 있어요:

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)