Web Search
plugins 필드로 요청에 웹 검색 결과를 주입합니다. OpenRouter의 web 플러그인과 호환됩니다.
POST/v1/chat/completions
plugins 배열에 {"id": "web"}을 넣으면, 모델을 호출하기 전에 마지막 user 메시지로 웹을 검색하고 그 결과를 컨텍스트로 주입합니다. 필드 형식은 OpenRouter의 plugins와 동일하므로 기존 OpenRouter 설정이 그대로 적용됩니다.
웹 검색은 운영자 게이트(
plugins.web_search_enabled) 뒤에 있으며 기본값은 꺼짐입니다. 게이트가 꺼져 있으면 plugins 필드는 에러 없이 조용히 무시되고 요청은 검색 없이 정상 처리됩니다.요청#
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| plugins | array | 선택 | OpenRouter 호환 플러그인 목록. 웹 검색은 {"id": "web"} 항목으로 요청합니다. |
| plugins[].id | string | 필수 | 플러그인 ID. 현재 "web"만 지원합니다. |
| plugins[].max_results | integer | 선택 | 주입할 검색 결과 수. 기본값 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 메시지에 텍스트가 없을 때도 마찬가지입니다.
과금#
주입된 검색 결과는 프롬프트의 일부가 되므로 입력 토큰으로 정상 과금됩니다. 검색 자체에는 별도 요금이 없습니다.