PerplexityTextEmbedder

PerplexityTextEmbedder

PerplexityTextEmbedder는 Perplexity 임베딩 모델을 사용해 문자열을 그 의미를 담은 벡터로 변환해요.

임베딩 검색을 수행할 때 이 컴포넌트로 쿼리를 벡터로 변환하세요. 그러면 임베딩 Retriever가 유사하거나 관련 있는 문서를 찾아줘요.

출처: 문서

본문

항목 내용
파이프라인에서 가장 흔한 위치 쿼리/RAG 파이프라인에서 임베딩 Retriever 앞
필수 init 변수 api_key: Perplexity API 키. PERPLEXITY_API_KEY 환경 변수로 설정 가능
필수 run 변수 text: 문자열
출력 변수 embedding: float 숫자 목록. meta: 메타데이터 딕셔너리
API reference Integrations
GitHub 링크 text_embedder.py
패키지 이름 perplexity-haystack

개요

PerplexityTextEmbedder가 지원하는 임베딩 모델은 다음과 같아요.

  • pplx-embed-v1-0.6b (기본값)
  • pplx-embed-v1-4b

PerplexityTextEmbedder는 쿼리 같은 단일 문자열을 임베딩할 때 사용해요. 문서 목록을 임베딩하려면 PerplexityDocumentEmbedder를 사용하세요.

컴포넌트는 기본적으로 PERPLEXITY_API_KEY 환경 변수를 사용해요. 초기화 시 API 키를 직접 전달할 수도 있고요:

from haystack_integrations.components.embedders.perplexity import PerplexityTextEmbedder
from haystack.utils import Secret

embedder = PerplexityTextEmbedder(api_key=Secret.from_token("<your-api-key>"))

사용법

단독으로 사용하기

from haystack_integrations.components.embedders.perplexity import PerplexityTextEmbedder

text_embedder = PerplexityTextEmbedder()
result = text_embedder.run("I love pizza!")
print(result["embedding"])
# [0.017020374536514282, -0.023255806416273117, ...]

참고: PERPLEXITY_API_KEY를 파라미터로 전달하는 대신 환경 변수로 설정하는 것을 권장해요.

파이프라인에서 사용하기

from haystack import Document, Pipeline
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.retrievers.in_memory import InMemoryEmbeddingRetriever
from haystack_integrations.components.embedders.perplexity import (
    PerplexityTextEmbedder,
    PerplexityDocumentEmbedder,
)

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 = PerplexityDocumentEmbedder()
documents_with_embeddings = document_embedder.run(documents)["documents"]
document_store.write_documents(documents_with_embeddings)

query_pipeline = Pipeline()
query_pipeline.add_component("text_embedder", PerplexityTextEmbedder())
query_pipeline.add_component(
    "retriever",
    InMemoryEmbeddingRetriever(document_store=document_store),
)
query_pipeline.connect("text_embedder.embedding", "retriever.query_embedding")

result = query_pipeline.run({"text_embedder": {"text": "Who lives in Berlin?"}})
print(result["retriever"]["documents"][0])

더 알아보기 (Learn more)