VertexAIDocumentEmbedder
VertexAIDocumentEmbedder
VertexAI Embeddings API를 통해 문서의 임베딩을 계산해 주는 컴포넌트예요.
Deprecation 공지
google-vertex-haystack통합은 아카이브 처리되어 더 이상 유지보수되지 않아요. 이 통합은 deprecated된 Google SDK를 기반으로 해요.
google-genai-haystack패키지의 GoogleGenAIDocumentEmbedder로 전환할 것을 권장해요.
파이프라인에서 가장 흔한 위치: 인덱싱 파이프라인의 DocumentWriter 앞
필수 init 변수: model — VertexAI Embeddings API를 통해 사용할 모델
필수 run 변수: documents — 임베딩할 문서 리스트
출력 변수: documents — 임베딩으로 보강된 문서 리스트
API 레퍼런스: Google Vertex
GitHub 링크: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/google_vertex
패키지 이름: google-vertex-haystack
출처: 문서
본문
VertexAIDocumentEmbedder는 문서 내용의 임베딩으로 문서 메타데이터를 보강해요. 문자열 하나를 임베딩하려면 VertexAITextEmbedder를 사용해요.
VertexAIDocumentEmbedder를 사용하려면 이렇게 초기화해요:
model: 지원되는 모델은 다음과 같아요:
"text-embedding-004""text-embedding-005""textembedding-gecko-multilingual@001""text-multilingual-embedding-002""text-embedding-large-exp-03-07"
task_type: "RETRIEVAL_DOCUMENT"이 기본값이에요. 모든 작업 유형은 공식 Google 문서에서 확인할 수 있어요.
인증 (Authentication)
VertexAIDocumentEmbedder는 인증에 Google Cloud Application Default Credentials (ADC)를 사용해요. ADC 설정 방법은 공식 문서를 참고하세요.
Google Vertex AI 엔드포인트를 사용하도록 승인된 프로젝트에 접근 권한이 있는 계정을 쓰는 게 중요하다는 점을 기억하세요.
프로젝트 ID는 GCP 리소스 매니저에서 찾거나, 터미널에서 gcloud projects list를 실행해 찾을 수 있어요. gcloud CLI에 대한 자세한 내용은 공식 문서를 참고하세요.
사용법 (Usage)
이 Embedder를 쓰려면 google-vertex-haystack 패키지를 설치해요:
pip install google-vertex-haystack
단독으로 사용하기 (On its own)
from haystack import Document
from haystack_integrations.components.embedders.google_vertex import (
VertexAIDocumentEmbedder,
)
doc = Document(content="I love pizza!")
document_embedder = VertexAIDocumentEmbedder(model="text-embedding-005")
result = document_embedder.run([doc])
print(result["documents"][0].embedding)
# [-0.044606007635593414, 0.02857724390923977, -0.03549133986234665,
파이프라인 안에서 사용하기 (In a pipeline)
from haystack import Document
from haystack import Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack_integrations.components.embedders.google_vertex import (
VertexAITextEmbedder,
)
from haystack_integrations.components.embedders.google_vertex import (
VertexAIDocumentEmbedder,
)
from haystack.components.retrievers.in_memory import InMemoryEmbeddingRetriever
document_store = InMemoryDocumentStore(embedding_similarity_function="cosine")
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 = VertexAIDocumentEmbedder(model="text-embedding-005")
documents_with_embeddings = document_embedder.run(documents)["documents"]
document_store.write_documents(documents_with_embeddings)
query_pipeline = Pipeline()
query_pipeline.add_component(
"text_embedder",
VertexAITextEmbedder(model="text-embedding-005"),
)
query_pipeline.add_component(
"retriever",
InMemoryEmbeddingRetriever(document_store=document_store),
)
query_pipeline.connect("text_embedder.embedding", "retriever.query_embedding")
query = "Who lives in Berlin?"
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')