Skip to content

Web Search

plugins 필드로 요청에 웹 검색 결과를 주입합니다. OpenRouter의 web 플러그인과 호환됩니다.

POST/v1/chat/completions

plugins 배열에 {"id": "web"}을 넣으면, 모델을 호출하기 전에 마지막 user 메시지로 웹을 검색하고 그 결과를 컨텍스트로 주입합니다. 필드 형식은 OpenRouter의 plugins와 동일하므로 기존 OpenRouter 설정이 그대로 적용됩니다.

웹 검색은 운영자 게이트(plugins.web_search_enabled) 뒤에 있으며 기본값은 꺼짐입니다. 게이트가 꺼져 있으면 plugins 필드는 에러 없이 조용히 무시되고 요청은 검색 없이 정상 처리됩니다.

요청#

파라미터타입필수설명
pluginsarray선택OpenRouter 호환 플러그인 목록. 웹 검색은 {"id": "web"} 항목으로 요청합니다.
plugins[].idstring필수플러그인 ID. 현재 "web"만 지원합니다.
plugins[].max_resultsinteger선택주입할 검색 결과 수. 기본값 3, 1 ~ 10으로 클램프됩니다. 정수가 아닌 값을 보내면 3이 적용됩니다.
request with web plugin
curl https://router.pleum.ai/v1/chat/completions \
  -H "Authorization: Bearer plm_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "What are the latest developments in AI routing?"}
    ],
    "plugins": [{"id": "web", "max_results": 3}]
  }'

동작 방식#

검색 질의는 마지막 user 메시지의 텍스트입니다(멀티모달 메시지면 텍스트 파트만 사용). 검색 백엔드는 키가 필요 없는 DuckDuckGo Instant Answer이며, 결과(제목·URL 목록)는 system 메시지로 대화 맨 앞에 prepend된 뒤 모델이 호출됩니다. 응답 본문의 형태는 바뀌지 않습니다 — 별도의 인용(annotation) 필드는 없습니다.

검색이 실패하거나 결과가 없으면 요청은 실패하지 않고 원본 메시지 그대로 모델이 호출됩니다. 마지막 user 메시지에 텍스트가 없을 때도 마찬가지입니다.

과금#

주입된 검색 결과는 프롬프트의 일부가 되므로 입력 토큰으로 정상 과금됩니다. 검색 자체에는 별도 요금이 없습니다.