체험
검색 5,000회
US$9.25
US$1.85/1K 검색
- 에이전트 하나에 연결
- 가장 큰 팩과 동일한 API
- 크레딧은 만료되지 않음
유스케이스 · 검색 증강 생성 · 최신 소스
벡터 인덱스에는 지난달에 로드한 내용이 들어 있습니다. 어떤 질문은 오늘 웹이 말하는 내용이 필요합니다. 실시간 웹 RAG는 질문 시점에 검색합니다. 검색 한 번, 상위 페이지를 Markdown으로, 몇 개의 청크를 프롬프트에 넣고, 각 페이지로 이어지는 인용을 붙입니다.
빠른 답변
실시간 웹 검색 결과로 RAG를 하려면 어떻게 하나요?
질문 시점에 웹 검색을 실행하고, 상위 페이지를 읽고, 청크로 나누고, 가장 관련성 높은 청크를 남긴 뒤 모델에 번호가 매겨진 인용과 함께 답하도록 요청하세요. LLMWebSearch가 처음 두 단계를 한 번의 호출로 처리합니다. 순위가 매겨진 결과와 처음 3개 페이지를 Markdown으로, 크레딧 1개로, US$1.20/1K 검색부터. KYC 없이, 암호화폐로 결제.
검색(Retrieval) 단계가 자체 인덱스 조회 대신 웹 검색인 검색 증강 생성입니다. 질문이 검색 API로 가고, API가 페이지를 반환하면, 모델이 그 페이지들로부터 답합니다.
이 패턴은 가격, 릴리스, 규정, 일정, 뉴스처럼 변하는 것에 관한 질문에 적합합니다. 자체 문서가 다루지 못한 롱테일 질문에도 적합합니다. 비용은 질문당 검색 한 번이며, 첫 검색이 빗나가면 두 번입니다.
안정적이고 내 것인 것은 저장하고, 변하는 것은 가져오세요. 제품 매뉴얼, 내부 정책, 자체 문서는 벡터 인덱스에 두고 일정에 따라 갱신합니다. 경쟁사 가격, 규정, 뉴스는 실시간 검색에 속합니다.
많은 팀이 둘을 결합합니다. 먼저 자체 인덱스를 검색하고, 인덱스에 좋은 일치 항목이 없거나 질문이 최근 날짜를 언급할 때만 웹을 호출합니다.
가져온 페이지를 보관하기로 결정했다면 저희 입장을 참고하세요: 저희는 귀하의 검색 쿼리나 API가 반환하는 내용으로 어떤 모델도 학습시키지 않으며, 결과 저장을 금지하는 자체 규칙도 두지 않습니다. 다만 귀하가 읽는 페이지의 사이트 권리는 여전히 적용됩니다. 사이트 콘텐츠의 영구 사본을 만들기 전에 각 사이트의 약관을 확인하세요.
각 페이지를 제목 기준으로 나눈 뒤 긴 섹션을 고정 길이로 자르세요. Markdown에서는 제목이 #로 시작하는 줄이므로 이 작업이 쉽습니다. 인용이 분할 후에도 유지되도록 모든 청크에 출처 URL과 제목을 남기세요.
아래 예시는 검색하고, 세 페이지를 읽고, 청크로 나눈 뒤 질문과 단어가 가장 많이 겹치는 여섯 개의 청크를 고릅니다. 프로덕션에서는 단어 수 계산을 임베딩 모델로 바꾸세요. 구조는 그대로입니다.
import os
import re
import requests
API = "https://llmwebsearch.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}
def live_chunks(query, read=3, chunk_len=1200):
"""Search, then cut each page that was read into heading-based chunks tagged with its source."""
body = {"q": query, "max_results": 5, "read": read, "max_chars": 12000}
results = requests.post(API, headers=HEADERS, json=body, timeout=60).json()["results"]
chunks = []
for r in results:
if r.get("content_status") != "ok":
continue
for section in re.split(r"\n(?=#{1,3} )", r["content"]):
section = section.strip()
for start in range(0, len(section), chunk_len):
chunks.append({"url": r["url"], "title": r["title"], "text": section[start:start + chunk_len]})
return chunks
def top_chunks(chunks, question, k=6):
"""A plain keyword score; swap in your embedding model for better ranking."""
words = set(re.findall(r"\w{4,}", question.lower()))
def score(chunk):
return sum(1 for w in re.findall(r"\w{4,}", chunk["text"].lower()) if w in words)
return sorted(chunks, key=score, reverse=True)[:k]
def build_prompt(question):
picked = top_chunks(live_chunks(question), question)
urls = list(dict.fromkeys(c["url"] for c in picked))
blocks = [f"[{urls.index(c['url']) + 1}] {c['title']}\n{c['text']}" for c in picked]
sources = "\n".join(f"[{i}] {u}" for i, u in enumerate(urls, 1))
return (
"Use only the context to answer and cite sources as [n].\n\n"
+ "\n\n".join(blocks)
+ f"\n\nSources:\n{sources}\n\nQuestion: {question}"
)셋이 좋은 출발점이며 검색을 크레딧 1개로 유지합니다. 대부분의 사실 질문은 좋은 검색 쿼리의 처음 두세 페이지 안에서 답이 나옵니다.
채팅 에이전트에서보다 더 긴 페이지를 요청하세요. 어차피 청커가 대부분의 텍스트를 버리기 때문입니다. 페이지당 max_chars를 10,000~15,000으로 두면 순위 선별기가 고를 것이 충분히 생깁니다. 답이 특정 사이트 하나에 달려 있다면 더 많은 페이지를 읽는 대신 include_domains로 그 사이트를 추가하세요.
프롬프트에서 출처에 번호를 매기고 답변에 그 번호를 쓰도록 요청하세요. 짧은 지시가 잘 동작합니다. 오직 컨텍스트만 사용하고, 각 주장을 [n]으로 인용하고, 컨텍스트가 질문을 다루지 못할 때는 그렇다고 말하도록 하세요.
출처 목록은 프롬프트 끝에 두고, 번호마다 URL 하나를 붙이세요. 그런 다음 인터페이스에서 [n]을 링크로 렌더링하세요. 사용자는 확인할 수 있는 답변을 신뢰하며, 잘못된 인용은 검토에서 쉽게 발견됩니다.
그 페이지는 건너뛰고 다른 페이지를 사용하세요. 모든 결과에는 content_status가 붙으며, ok인 결과에만 텍스트가 있습니다. 페이지가 빠진 이유는 저희 리더는 robots.txt를 준수합니다. 자신을 LLMWebSearch로 소개하고, 사이트가 리더를 위해 또는 모든 로봇을 위해 작성한 규칙을 따르며, 읽기가 허용되지 않은 페이지의 콘텐츠는 제외합니다 때문일 수 있습니다.
검색의 모든 페이지가 비어 있는 상태로 돌아오면 다른 검색 쿼리로 한 번 재시도하거나, 열려 있다고 아는 사이트에 대해 include_domains를 추가하세요. 사이트가 저희 리더를 거부하면, 결과는 콘텐츠 없이 해당 사이트의 상태와 함께 반환됩니다. 저희는 CAPTCHA를 풀거나 계정에 로그인하거나 차단 또는 페이월을 우회하지 않습니다.
대부분의 경우 질문당 검색 한 번입니다. 한 달에 5,000개의 질문에 답하는 지원 어시스턴트가 다섯 번 중 한 번은 두 번째 검색을 한다면 약 6,000번의 검색을 사용합니다. US$41.25 기준 검색 25,000회라면 그런 달을 네 번 커버합니다.
모델은 또한 보내는 청크도 읽습니다. 1,200자짜리 청크 여섯 개는 질문당 대략 2,000 토큰을 더하며, 이는 청크 크기와 개수로 조절할 수 있습니다.
대부분의 파이프라인에서 질문 하나당 1크레딧입니다. 검색 크레딧에는 만료일이 없습니다. 이번 달에 사용하지 않은 크레딧은 내년에도 그대로 남아 있습니다.
검색 5,000회
US$9.25
US$1.85/1K 검색
검색 25,000회
US$41.25
US$1.65/1K 검색
검색 100,000회
US$145
US$1.45/1K 검색
모든 요금제에 포함: 상위 3개 페이지를 Markdown으로 읽기 · 국가, 언어, 시간, 도메인 필터 · 실패한 호출은 과금되지 않음 · 크레딧은 만료되지 않음
네. LangChain 및 LlamaIndex 페이지에서 검색을 retriever와 도구로 감쌀 수 있습니다.
네, extract 엔드포인트로 가능합니다. 이미 URL을 알고 있는 페이지를 읽는 경우, 콘텐츠와 함께 반환되는 3개 페이지 단위로 크레딧 1개가 청구되며, 호출당 최대 20개 URL까지 가능합니다. 거부되거나 실패한 URL은 집계되지 않습니다.
아니요. 각 호출은 로그 한 줄을 남깁니다. 시간, 계정, 검색 쿼리의 처음 60자, 반환된 결과 및 페이지 수, 크레딧입니다. 로그는 30일 후 삭제됩니다. 저희가 읽은 페이지의 콘텐츠는 보관하지 않습니다. 계정 번호, 주문, 충전, 크레딧 합계는 계정이 존재하는 동안 보관되며, 이후에는 회계 관련 법률이 요구하는 기간 동안만 보관됩니다. 당국에는 법률이 강제하는 경우에만 기록을 제공합니다.
네. language과 country을 설정하면 됩니다. 예를 들어 독일에서 독일어 결과를 받으려면 language=de과 country=de을 설정하세요.
US$1.20/1K 검색부터 · KYC 없이
API 키 받기