Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan kripto: BTC, USDT, USDC, ETH, SOL, LTC
Bahasa: Bahasa Indonesia
Dapatkan API key

Use case · retrieval-augmented generation · sumber segar

RAG dari web live: retrieve dengan pencarian, jawab dengan sitasi

Indeks vektor menyimpan apa yang Anda muat bulan lalu. Sebagian pertanyaan butuh apa yang dikatakan web hari ini. Live-web RAG melakukan retrieve saat pertanyaan diajukan: satu pencarian, halaman teratas sebagai Markdown, beberapa chunk masuk ke prompt, dan sitasi kembali ke setiap halaman.

Terakhir diperbarui: · 6 menit baca

Jawaban singkat

Bagaimana cara melakukan RAG dengan hasil pencarian web live?

Jalankan pencarian web saat pertanyaan diajukan, baca halaman teratas, bagi menjadi chunk, simpan yang paling relevan, dan minta model menjawab dengan sitasi bernomor. LLMWebSearch menangani dua langkah pertama dalam satu panggilan: hasil berperingkat dengan 3 halaman pertama sebagai Markdown, untuk satu kredit, mulai US$1,20/1K pencarian. Tanpa KYC; bayar dengan kripto.

Apa itu live-web RAG?

Ini adalah retrieval-augmented generation yang langkah retrieval-nya berupa pencarian web, bukan pencarian di indeks Anda sendiri. Pertanyaan dikirim ke search API, API mengembalikan halaman, dan model menjawab dari halaman tersebut.

Pola ini cocok untuk pertanyaan tentang hal yang berubah: harga, rilis, aturan, jadwal, dan berita. Juga cocok untuk pertanyaan long-tail yang tidak pernah dibahas dokumen Anda sendiri. Biayanya satu pencarian per pertanyaan, atau dua jika pencarian pertama tidak menemukan hasil.

Kapan harus mengambil data segar dan kapan harus menyimpannya?

Simpan yang stabil dan milik Anda; ambil yang berubah. Manual produk, kebijakan internal, dan dokumen Anda sendiri cocok masuk indeks vektor, diperbarui sesuai jadwal. Harga pesaing, regulasi, dan berita cocok untuk live retrieval.

Banyak tim menggabungkan keduanya. Mereka mencari di indeks sendiri dulu dan memanggil web hanya ketika indeks tidak punya kecocokan yang baik, atau ketika pertanyaan menyebut tanggal terbaru.

Jika Anda memutuskan menyimpan halaman yang Anda retrieve, catat posisi kami: Kami tidak melatih model apa pun dengan kueri Anda atau dengan apa yang dikembalikan API, dan kami tidak menambahkan aturan kami sendiri yang melarang penyimpanan hasil; hak situs yang halaman-halamannya Anda baca tetap berlaku. Periksa ketentuan setiap situs sebelum membuat salinan permanen kontennya.

Bagaimana cara mengubah hasil pencarian menjadi chunk?

Bagi setiap halaman berdasarkan heading-nya, lalu potong bagian yang panjang ke panjang tetap. Markdown memudahkan ini, karena heading adalah baris yang dimulai dengan #. Simpan URL sumber dan judul di setiap chunk agar sitasi tetap utuh setelah pemisahan.

Contoh di bawah mencari, membaca tiga halaman, membaginya menjadi chunk, dan memilih enam chunk yang berbagi paling banyak kata dengan pertanyaan. Di produksi, ganti penghitungan kata dengan model embedding Anda; strukturnya tetap sama.

Python: retrieval web live dengan chunk dan sumber bernomor
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}"
    )

Berapa halaman yang harus dibaca untuk setiap pertanyaan?

Tiga adalah awal yang baik, dan itu menjaga pencarian tetap satu kredit. Sebagian besar pertanyaan faktual terjawab pada dua atau tiga halaman pertama dari kueri yang baik.

Minta halaman yang lebih panjang daripada di chat agent, karena chunker tetap akan membuang sebagian besar teks. max_chars 10.000 hingga 15.000 per halaman memberi ranker cukup pilihan. Jika jawaban bergantung pada satu situs yang diketahui, tambahkan dengan include_domains daripada membaca lebih banyak halaman.

Bagaimana cara membuat model menyitasi sumbernya?

Beri nomor pada sumber di prompt dan minta nomornya di jawaban. Instruksi singkat sudah cukup: gunakan hanya konteks, sitasi setiap klaim sebagai [n], dan sebutkan jika konteks tidak mencakup pertanyaan.

Simpan daftar sumber di akhir prompt, dengan satu URL per nomor. Lalu render [n] sebagai tautan di antarmuka Anda. Pengguna mempercayai jawaban yang bisa mereka periksa, dan sitasi yang salah mudah terlihat saat review.

Bagaimana jika halaman diblokir atau kosong?

Lewati dan gunakan yang lain. Setiap hasil membawa content_status; hanya hasil ok yang punya teks. Halaman bisa tidak ada karena Pembaca kami mematuhi robots.txt: ia memperkenalkan diri sebagai LLMWebSearch, mengikuti aturan yang ditulis situs untuknya atau untuk semua robot, dan mengabaikan konten halaman apa pun yang tidak diizinkan untuk dibaca.

Jika semua halaman dari satu pencarian kembali kosong, coba ulang sekali dengan kueri berbeda atau tambahkan include_domains untuk situs yang Anda tahu terbuka. Saat situs menolak pembaca kami, hasil kembali tanpa konten dan dengan status dari situs tersebut: kami tidak pernah memecahkan CAPTCHA, masuk ke akun, atau mengakali blokir atau paywall.

Berapa biaya live-web RAG?

Satu pencarian per pertanyaan dalam sebagian besar kasus. Asisten dukungan yang menjawab 5.000 pertanyaan sebulan, dengan pencarian kedua untuk satu dari lima pertanyaan, memakai sekitar 6.000 pencarian. 25.000 pencarian dengan US$41,25 mencakup empat bulan seperti itu.

Model Anda juga membaca chunk yang Anda kirim. Enam chunk berukuran 1.200 karakter menambah sekitar 2.000 token per pertanyaan, yang Anda kendalikan melalui ukuran dan jumlah chunk.

Paket mana yang cocok untuk beban kerja RAG?

Satu kredit per pertanyaan untuk sebagian besar pipeline. Kredit pencarian tidak memiliki tanggal kedaluwarsa: yang tidak Anda pakai bulan ini masih ada tahun depan.

Coba

5.000 pencarian

US$9,25

US$1,85/1K pencarian

  • Pasang di satu agent
  • API yang sama dengan paket terbesar
  • Kredit tidak pernah kedaluwarsa
Pilih 5.000 pencarian

Builder

25.000 pencarian

US$41,25

US$1,65/1K pencarian

  • Agen coding atau asisten riset
  • Siap untuk MCP, LangChain, dan n8n
  • Kredit tidak pernah kedaluwarsa
Pilih 25.000 pencarian

Produksi

100.000 pencarian

US$145

US$1,45/1K pencarian

  • Agen di produksi
  • Rate limit lebih tinggi berdasarkan permintaan
  • Kredit tidak pernah kedaluwarsa
Pilih 100.000 pencarian

Di setiap paket: 3 halaman teratas dibaca sebagai Markdown · Filter negara, bahasa, waktu dan domain · Panggilan gagal tidak dikenai biaya · Kredit tidak pernah kedaluwarsa

RAG web langsung: pertanyaan umum

Bisakah saya menggunakan LangChain atau LlamaIndex?

Bisa. Halaman LangChain dan LlamaIndex membungkus pencarian sebagai retriever dan sebagai tool.

Bisakah saya mengambil dari URL yang sudah saya ketahui?

Bisa, dengan endpoint extract. Membaca halaman yang URL-nya sudah Anda miliki dikenakan 1 kredit untuk setiap grup 3 halaman yang mulai dikembalikan beserta kontennya, hingga 20 URL per panggilan; URL yang ditolak atau gagal tidak dihitung.

Apakah LLMWebSearch menyimpan halaman yang dibacanya untuk saya?

Tidak. Setiap panggilan meninggalkan satu baris log: waktu, akun, 60 karakter pertama kueri, berapa hasil dan halaman yang dikembalikan, serta kreditnya. Baris dihapus setelah 30 hari. Konten halaman yang kami baca tidak disimpan. Nomor akun, pesanan, top-up, dan total kredit tetap ada selama akun ada, lalu hanya selama hukum akuntansi menghendakinya. Otoritas menerima catatan hanya ketika hukum memaksa kami.

Bisakah saya membatasi pengambilan ke satu bahasa atau negara?

Bisa. Atur language dan country, misalnya language=de dan country=de untuk hasil berbahasa Jerman dari Jerman.

Mulai dari US$1,20/1K pencarian · tanpa KYC

Dapatkan API key