VertexAITextEmbedder

VertexAITextEmbedder

VertexAI Embeddings API를 통해 문자열을 벡터로 임베딩해 주는 컴포넌트예요. 쿼리를 임베딩 검색에 넘기기 전에 임베딩할 때 사용해요.

Deprecation 공지

google-vertex-haystack 통합은 아카이브 처리되어 더 이상 유지보수되지 않아요. 이 통합은 deprecated된 Google SDK를 기반으로 해요.

google-genai-haystack 패키지의 GoogleGenAITextEmbedder로 전환할 것을 권장해요.

파이프라인에서 가장 흔한 위치: 쿼리/RAG 파이프라인의 임베딩 Retriever 앞 필수 init 변수: model — VertexAI Embeddings API를 통해 사용할 모델 필수 run 변수: text — 임베딩할 문자열 출력 변수: embedding — float 리스트 API 레퍼런스: Google Vertex GitHub 링크: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/google_vertex 패키지 이름: google-vertex-haystack

출처: 문서

본문

VertexAITextEmbedder는 단순한 문자열(예: 쿼리)을 벡터로 임베딩해요. 문서 리스트를 임베딩할 때는 VertexAIDocumentEmbedder를 사용해요. 문서에 계산된 임베딩(벡터라고도 함)을 보강해 주죠.

VertexAITextEmbedder를 사용하려면 이렇게 초기화해요:

model: 지원되는 모델은 다음과 같아요:

  • "text-embedding-004"
  • "text-embedding-005"
  • "textembedding-gecko-multilingual@001"
  • "text-multilingual-embedding-002"
  • "text-embedding-large-exp-03-07"

task_type: "RETRIEVAL_QUERY"가 기본값이에요. 모든 작업 유형은 공식 Google 문서에서 확인할 수 있어요.

인증 (Authentication)

VertexAITextEmbedder는 인증에 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_integrations.components.embedders.google_vertex import (
    VertexAITextEmbedder,
)

text_to_embed = "I love pizza!"
text_embedder = VertexAITextEmbedder(model="text-embedding-005")
print(text_embedder.run(text_to_embed))
# {'embedding': [-0.08127457648515701, 0.03399784862995148, -0.05116401985287666, ...]

파이프라인 안에서 사용하기 (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')

더 알아보기 (Learn more)