PerplexitySearchRetriever 통합

PerplexitySearchRetriever 통합

LangChain JavaScript로 PerplexitySearchRetriever 검색기와 통합하는 방법을 알아봅니다.

Perplexity Search API는 검색 파이프라인에 직접 넣을 수 있는 실시간, 접지된(grounded) 웹 검색 결과를 반환해요.

PerplexitySearchRetriever 검색을 시작하는 데 도움을 주는 가이드입니다. 모든 PerplexitySearchRetriever 기능과 구성에 대한 자세한 문서는 API reference를 참조하세요.

출처: 문서

본문

개요

통합 세부 정보

검색기(Retriever) 소스(Source) 패키지(Package) PY 지원
PerplexitySearchRetriever Perplexity Search API를 통한 웹(The web, via the Perplexity Search API). @langchain/perplexity

설정

PERPLEXITY_API_KEY 환경 변수에 Perplexity API 키를 채우거나 생성자에 apiKey로 전달해야 합니다. Perplexity API 키 대시보드에서 키를 받으세요.

process.env.PERPLEXITY_API_KEY = "your-api-key";

개별 질의에서 자동 추적을 받으려면 아래 주석을 해제해 LangSmith API 키를 설정할 수도 있습니다:

// process.env.LANGSMITH_API_KEY = "<YOUR API KEY HERE>";
// process.env.LANGSMITH_TRACING = "true";

설치

이 검색기는 @langchain/perplexity 패키지에 있습니다:

npm install @langchain/perplexity @langchain/core
yarn add @langchain/perplexity @langchain/core
pnpm add @langchain/perplexity @langchain/core

인스턴스화(Instantiation)

import { PerplexitySearchRetriever } from "@langchain/perplexity";

const retriever = new PerplexitySearchRetriever({
  maxResults: 5,
  // searchDomainFilter: ["wikipedia.org"],
  // searchRecencyFilter: "week",
});

생성자 옵션에는 maxResults, country, searchDomainFilter, searchRecencyFilter, searchAfterDate, searchBeforeDate가 포함됩니다. 자세한 내용은 Perplexity Search API 파라미터를 참조하세요.

사용법(Usage)

const query = "Who won the most recent FIFA World Cup?";

const docs = await retriever.invoke(query);

반환된 각 Document는 검색 결과 스니펫을 pageContent로, { title, url, date, lastUpdated }metadata로 갖습니다.

체인 내에서 사용하기

다른 검색기처럼 PerplexitySearchRetriever체인을 통해 LLM 애플리케이션에 통합될 수 있습니다.

import { ChatPromptTemplate } from "@langchain/core/prompts";
import { ChatAnthropic } from "@langchain/anthropic";
import {
  RunnablePassthrough,
  RunnableSequence,
} from "@langchain/core/runnables";
import { StringOutputParser } from "@langchain/core/output_parsers";
import { Document } from "@langchain/core/documents";

const prompt = ChatPromptTemplate.fromTemplate(`
Answer the question based only on the context provided.

Context: {context}

Question: {question}`);

const llm = new ChatAnthropic({ model: "claude-haiku-4-5" });

const formatDocs = (docs: Document[]) =>
  docs.map((doc) => doc.pageContent).join("\n\n");

const ragChain = RunnableSequence.from([
  {
    context: retriever.pipe(formatDocs),
    question: new RunnablePassthrough(),
  },
  prompt,
  llm,
  new StringOutputParser(),
]);

await ragChain.invoke("Who won the most recent FIFA World Cup?");

API reference

모든 PerplexitySearchRetriever 기능과 구성에 대한 자세한 문서는 API reference를 참조하세요.

더 알아보기 (Learn more)