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])