ChatPerplexity 통합
ChatPerplexity 통합
LangChain JavaScript로 ChatPerplexity 채팅 모델과 통합하는 방법을 안내할게요.
출처: 문서
본문
이 가이드는 Perplexity 채팅 모델을 시작하는 데 도움을 줘요. 모든 ChatPerplexity 기능과 구성에 대한 자세한 문서는 API 레퍼런스를 참고하세요.
개요
통합 세부 정보
| 클래스 | 패키지 | Serializable | PY 지원 | Downloads | Version |
|---|---|---|---|---|---|
ChatPerplexity |
@langchain/perplexity |
beta | ✅ |
모델 기능
아래 표 헤더의 링크에서 특정 기능을 사용하는 방법에 대한 가이드를 확인할 수 있어요.
| Tool calling | Structured output | Image input | Audio input | Video input | Token-level streaming | Token usage | Logprobs |
|---|---|---|---|---|---|---|---|
| ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
참고: 작성 시점 기준, Perplexity는 특정 사용 등급에서만 구조화된 출력을 지원해요.
설정
Perplexity 모델에 접근하려면 Perplexity 계정을 만들고 API 키를 받은 뒤 @langchain/perplexity 통합 패키지를 설치해야 해요.
자격 증명
Perplexity API 키 대시보드로 이동해 가입하고 API 키를 생성하세요. 완료되면 PERPLEXITY_API_KEY 환경 변수를 설정하세요:
export PERPLEXITY_API_KEY="your-api-key"
모델 호출의 자동 추적(tracing)을 원한다면 아래 주석을 해제해 LangSmith API 키를 설정할 수도 있어요:
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"
설치
LangChain Perplexity 통합은 @langchain/perplexity 패키지에 있어요:
yarn add @langchain/perplexity @langchain/core
pnpm add @langchain/perplexity @langchain/core
인스턴스 생성
이제 모델을 인스턴스화할 수 있어요:
import { ChatPerplexity } from "@langchain/perplexity";
const llm = new ChatPerplexity({
model: "openai/gpt-5.5",
temperature: 0,
maxTokens: undefined,
timeout: undefined,
maxRetries: 2,
// other params...
});
호출
const aiMsg = await llm.invoke([
{
role: "system",
content: "You are a helpful assistant that translates English to French. Translate the user sentence.",
},
{
role: "user",
content: "I love programming.",
},
]);
aiMsg;
AIMessage {
"id": "run-71853938-aa30-4861-9019-f12323c09f9a",
"content": "J'adore la programmation.",
"additional_kwargs": {
"citations": [
"https://careersatagoda.com/blog/why-we-love-programming/",
"https://henrikwarne.com/2012/06/02/why-i-love-coding/",
"https://forum.freecodecamp.org/t/i-love-programming-but/497502",
"https://ilovecoding.org",
"https://thecodinglove.com"
]
},
"response_metadata": {
"tokenUsage": {
"promptTokens": 20,
"completionTokens": 9,
"totalTokens": 29
}
},
"tool_calls": [],
"invalid_tool_calls": []
}
console.log(aiMsg.content);
J'adore la programmation.
에이전트 API 지원 (useResponsesApi)
ChatPerplexity는 useResponsesApi를 설정해 Perplexity의 Agent API (Perplexity 스타일 Responses API)로 요청을 라우팅할 수도 있어요. 이는 ChatOpenAI의 Responses 패턴을 반영해요: 하나의 클래스, 두 개의 엔드포인트, 단일 옵션으로 제어됩니다.
| 값 | 엔드포인트 | 참고 |
|---|---|---|
undefined (기본값) |
자동 감지 | 요청이 내장 Perplexity 도구(web_search, fetch_url, finance_search, people_search)를 사용하거나 Responses 전용 필드(previousResponseId, instructions, input, include)를 포함하면 Agent API로, 그렇지 않으면 Chat Completions로 라우팅해요. |
true |
Agent API | 항상 client.responses.create()를 사용해요. |
false |
Chat Completions | 항상 client.chat.completions.create()를 사용해요. |
Agent API는 ChatPerplexity가 Perplexity의 내장 도구(라이브 웹 검색, URL 가져오기, 금융 및 인물 검색)와 상태 저장 에이전트 필드(previousResponseId, instructions, include)에 접근할 수 있게 해줘요. 이는 Chat Completions에서는 사용할 수 없어요. 기존 new ChatPerplexity({ model: "sonar" }) 호출자는 동작 변화를 느끼지 못해요 — 일반 텍스트 요청의 경우 Chat Completions 경로가 기본값으로 유지돼요.
import { ChatPerplexity } from "@langchain/perplexity";
const chat = new ChatPerplexity({
model: "openai/gpt-5.5",
useResponsesApi: true,
});
const response = await chat.invoke("What did Apple announce at WWDC this week?");
console.log(response.content);
또한 내장 도구를 바인딩하고 자동 감지가 요청을 라우팅하게 할 수도 있어요 — 옵션은 필요 없어요:
import { ChatPerplexity } from "@langchain/perplexity";
const chat = new ChatPerplexity({ model: "openai/gpt-5.5" });
const response = await chat.invoke(
"Summarize the latest LangChain release notes.",
{ tools: [{ type: "web_search" }] },
);
console.log(response.content);
Agent API로 라우팅되면 응답 객체는 더 풍부한 메타데이터를 담아요:
usage_metadata는 Responses 형태의usage페이로드(input_tokens,output_tokens,total_tokens)로 채워져요.response_metadata는 전송 수준 필드(id,model,status,object)와 함께, 존재할 때 Perplexity 전용 검색 출력(citations,images,related_questions,search_results)을 담아요.additional_kwargs.responses_output은 원시 Agent API 출력 항목을 보유해요.- 모델이 반환한 tool calls는
ChatOpenAI와 동일하게response.tool_calls에 표시돼요.
이 엔드포인트를 통해 사용 가능한 전체 모델 세트(예: openai/gpt-5.5, anthropic/claude-sonnet-4-6, google/gemini-3-1-pro)는 Perplexity Agent API 모델 목록을 참고하세요.
관련 통합
@langchain/perplexity 패키지에는 채팅 API를 사용하지 않는 검색 컴포넌트도 포함돼 있어요:
PerplexitySearchRetriever: RAG 파이프라인을 위해 Perplexity Search API에서Document객체를 반환해요PerplexitySearchResults: JSON 검색 결과를 반환하는 에이전트 도구예요
세 컴포넌트의 설정은 Perplexity 제공자 개요를 참고하세요.
API 레퍼런스
모든 ChatPerplexity 기능과 구성에 대한 자세한 문서는 API 레퍼런스를 참고하세요.
더 알아보기
- 이 문서를 MCP로 연결하면 Claude, VSCode 등에서 실시간 답변을 받을 수 있어요.
- GitHub에서 이 페이지 편집하기 또는 이슈 제출하기.