Fitur Pencarian Web (server tool) memungkinkan model AI untuk mengakses informasi terkini dari internet secara real-time. Ketika model memutuskan bahwa informasi terbaru diperlukan untuk menjawab pertanyaan, model akan meminta pencarian web dan kemudian menyusun jawaban yang lebih akurat berdasarkan hasil pencarian tersebut (biasanya disertai sitasi sumber jika tersedia).
Beta: Fitur server tools dan parameter terkait masih dalam tahap beta dan bisa berubah sewaktu-waktu.
tools: [{ "type": "web_search" }]curl -X POST "https://api.lunos.tech/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{ "role": "user", "content": "Apa saja pengumuman AI besar minggu ini?" }
],
"tools": [
{ "type": "web_search" }
]
}'
import requests
url = "https://api.lunos.tech/v1/chat/completions"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
}
payload = {
"model": "openai/gpt-4o",
"messages": [
{ "role": "user", "content": "Apa saja pengumuman AI besar minggu ini?" }
],
"tools": [
{ "type": "web_search" }
],
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.lunos.tech/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "openai/gpt-4o",
messages: [
{ role: "user", content: "Apa saja pengumuman AI besar minggu ini?" },
],
tools: [{ type: "web_search" }],
}),
});
const data = await response.json();
console.log(data);
Anda dapat menyesuaikan perilaku pencarian dengan menambahkan objek parameters di samping type pada definisi tool.
Contoh:
{
"tools": [
{
"type": "web_search",
"parameters": {
"engine": "exa",
"max_results": 5,
"max_total_results": 20,
"search_context_size": "medium",
"allowed_domains": ["example.com"],
"excluded_domains": ["reddit.com"]
}
}
]
}
Parameter yang tersedia:
engine (default: auto): Pilihan mesin pencari — auto, native, exa, firecrawl, atau parallel.max_results (default: 5): Jumlah maksimum hasil pencarian per panggilan.max_total_results: Batas total akumulasi hasil dalam satu request (jika model melakukan beberapa kali pencarian).search_context_size (default: medium): Mengatur ukuran konteks cuplikan teks (tergantung engine).allowed_domains: Membatasi hasil pencarian hanya dari domain tertentu.excluded_domains: Mengecualikan hasil dari domain tertentu.Jika engine yang Anda pilih mendukungnya, Anda dapat mengirimkan informasi lokasi perkiraan untuk membuat hasil pencarian yang lebih relevan secara geografis:
{
"tools": [
{
"type": "web_search",
"parameters": {
"user_location": {
"type": "approximate",
"city": "San Francisco",
"region": "California",
"country": "US",
"timezone": "America/Los_Angeles"
}
}
}
]
}
Setiap engine memiliki kapabilitas yang berbeda-beda, seperti dukungan domain filtering atau kontrol ukuran konteks. Berikut pilihan engine yang tersedia:
auto (default): Sistem akan memilih pencarian native jika tersedia; jika tidak, akan menggunakan engine berbasis Exa.native: Memaksa penggunaan fitur pencarian web bawaan dari provider model (jika didukung).exa: Menggunakan mesin pencari Exa.firecrawl: Menggunakan mesin pencari Firecrawl (BYOK — Anda perlu menggunakan API key Anda sendiri).parallel: Menggunakan mesin pencari Parallel.Untuk membatasi sumber informasi yang bisa diakses oleh model, konfigurasikan domain filtering:
{
"type": "web_search",
"parameters": {
"allowed_domains": ["arxiv.org", "nature.com"],
"excluded_domains": ["reddit.com"]
}
}
Perlu diperhatikan bahwa perilaku domain filtering bergantung pada engine yang digunakan. Jika engine tidak mendukung filter tertentu, Lunos/router mungkin akan menolak request atau mengabaikan field yang tidak didukung.
Jika model melakukan beberapa kali pencarian dalam satu request, gunakan max_total_results untuk membatasi akumulasi jumlah total hasil:
{
"type": "web_search",
"parameters": {
"max_results": 5,
"max_total_results": 15
}
}
Setelah batas ini tercapai, pencarian berikutnya dalam request yang sama akan dihentikan secara otomatis dan model akan diberitahu bahwa limit sudah terlampaui.
Beberapa kondisi error yang mungkin muncul:
Jika ini terjadi, coba ganti model yang Anda gunakan atau sesuaikan parameter tool.
Jika router menyediakan informasi tambahan, objek usage pada response bisa memuat field khusus terkait server tool (misalnya jumlah total pencarian web yang dilakukan).
type: "web_search" di dalam request Lunos.Tidak ada judul di halaman ini.
