Veb axtarışı
web_search: true təyin edin və model cavabını canlı nəticələrlə əsaslandırsın.
POST https://api.shannon-ai.com/v1/chat/completions
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")
response = client.chat.completions.create(
model="shannon-3",
messages=[{"role": "user", "content": "What is the weather forecast for Lisbon this weekend?"}],
extra_body={"web_search": True}, # a Shannon field, so it goes in extra_body
)
print(response.choices[0].message.content) import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://api.shannon-ai.com/v1" });
const response = await client.chat.completions.create({
model: "shannon-3",
messages: [{ role: "user", content: "What is the weather forecast for Lisbon this weekend?" }],
web_search: true,
});
console.log(response.choices[0].message.content); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [
{"role": "user", "content": "What is the weather forecast for Lisbon this weekend?"}
],
"web_search": true
}' Cavab iki əlavəsi olan adi çat tamamlanmasıdır. Cavab axtarış nəticələrinə kvadrat mötərizədə ədədlərlə işarə edir, sources hər ədədin nəyi ifadə etdiyini deyir, annotations isə hər birinin harada istinad edildiyini göstərir:
{
"id": "chatcmpl-3e5a7c9b1d2f4a6c8e0b2d4f6a8c1e3b",
"object": "chat.completion",
"created": 1791590400,
"model": "shannon-3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Saturday in Lisbon is forecast to be sunny with a high near 24 °C [1]. Sunday turns cloudy, with a chance of light rain in the afternoon [2].",
"reasoning_content": null,
"annotations": [
{
"type": "url_citation",
"url_citation": {
"start_index": 66,
"end_index": 69,
"url": "https://weather.example/lisbon/weekend",
"title": "Lisbon weather: weekend outlook"
}
},
{
"type": "url_citation",
"url_citation": {
"start_index": 137,
"end_index": 140,
"url": "https://forecast.example/pt/lisbon/sunday",
"title": "Sunday forecast for Lisbon"
}
}
]
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 2874,
"completion_tokens": 41,
"total_tokens": 2915
},
"sources": [
{
"index": 1,
"title": "Lisbon weather: weekend outlook",
"url": "https://weather.example/lisbon/weekend"
},
{
"index": 2,
"title": "Sunday forecast for Lisbon",
"url": "https://forecast.example/pt/lisbon/sunday"
},
{
"index": 3,
"title": "Portugal: the week ahead",
"url": "https://news.example/portugal/weather-week"
}
]
} Axtarışı açmaq
Axtarış sorğunun sahəsidir, standart olaraq söndürülüb. Sorğu onu göndərmədikcə heç nə axtarılmır.
| Sahə | Tip | Defolt | Təsvir | Tətbiq edən |
|---|---|---|---|---|
web_search | boolean | false | true bu sorğu üçün veb axtarışı işlədir və cavab verməzdən əvvəl nəticələri modelə verir. | shannon-coder-1 istisna olmaqla hər Shannon modeli |
| Endpoint | Veb axtarışı | Necə |
|---|---|---|
/v1/chat/completions | Bəli | Sorğu gövdəsində "web_search": true. |
/v1/messages | Bəli | Sorğu gövdəsində "web_search": true. |
/v1/responses | — | Bu endpoint yalnız modeldən cavab verir. Axtarışlı cavab üçün yuxarıdakı ikisindən birini istifadə edin. |
/v1/messages-də sahə gövdənin yuxarı səviyyəsində, model və messages-in yanında durur:
{
"model": "shannon-3",
"web_search": true,
"messages": [
{
"role": "user",
"content": "What is the weather forecast for Lisbon this weekend?"
}
]
} Axtarışlı sorğu nə edir
- API son user mesajı üçün vebdə axtarır. Söhbətin əvvəlki növbələri axtarışa kontekst verir.
- Axtarış
web_search: truegöndərən hər sorğuda işləyir. Axtarıb-axtarmamağı model seçmir. - Nəticələr modelin qarşısına nömrələnmiş mənbələr kimi qoyulur və model cavabını onlardan yazır.
- Cavab axtarış bitdikdə başlayır. Axınlı sorğu o vaxta qədər nə başlıq, nə hadisə, heç nə göndərmir, ona görə ilk chunk-dan əvvəl daha uzun gözləməyə hazır olun.
Cavabda nə var
- Cavab öz endpoint-inin adi formasına malikdir. Cavab
choices[0].message.content-dədir (/v1/messages-dətextbloku). - Mətn dəstəklədiyi ifadələrdən sonra
[1]və[2]kimi işarələr daşıya bilər. Hər ədəd modelin oxuduğu nəticələrdən birini ifadə edir. sourceshəmin nəticələri adlandırır: modelə verilən hər nəticə üçün bir qeyd,index,titlevəurlilə.[1]işarəsiindex1 olan qeyddir. Cavabın istinad etmədiyi nəticələr də siyahıdadır./v1/chat/completions-da mesajda OpenAI formasındaannotationsdə var: işarənin adlandırdığı hər mənbə üçün birurl_citation,url,title, həmçininstart_indexvəend_indexilə; bunlar işarənincontentdaxilindəki mövqeyidir, simvollarla sayılır (son daxil deyil).- Axında
sourcesson chunk ilə gəlir,/v1/messages-də isəmessage_deltahadisəsi ilə. Annotasiyalar son chunk-dan dərhal əvvəlki bir chunk-dadelta.annotationskimi gəlir. sourcesyalnız bu sorğunun axtarışı nəsə tapdıqda olur. Onsuz cavab axtarış nəticələri olmadan yazılıb.
Axtarışlar necə sayılır
Hər plana gündə müəyyən sayda axtarış daxildir:
| Plan | Gündə axtarış |
|---|---|
| Pulsuz | 3 |
| Plyus | 30 |
| Standard | 50 |
| Peşəkar | 60 |
- Axtarışı nəticə tapan sorğu günün limitindən bir axtarış istifadə edir. Heç nə tapmayan axtarış heç birini istifadə etmir.
- Çat və API açarın sahibi olan hesabın limitini bölüşür.
- Say hər gün 00:00 UTC-də yenidən başlayır.
- Axtarış nəticələri sorğunun giriş tokenləridir və promptun qalan hissəsi ilə birlikdə hesablanır.
Günün axtarışları bitdikdə
Günün son axtarışından sonra web_search: true göndərən sorğu rədd edilmir. O, axtarışsız cavablandırılır: status 200-dür və cavabda sources yoxdur.
Axtarış öz aləti kimi
web_search: true burada təsvir olunan axtarışın yeganə açarıdır. tools-da təyin etdiyiniz və adını web_search qoyduğunuz funksiya öz alətlərinizdən biridir: model çağırış qaytarır, kodunuz isə axtarışı icra edir və nəticəni geri göndərir.
Digər platformaların axtarış alət tipləri, məsələn /v1/messages-də web_search_20250305 və ya /v1/responses-da {"type": "web_search"}, burada axtarışı başlatmır.
Xətalar
Veb axtarışı status kodu və xəta tipi əlavə etmir. Heç nə tapmayan axtarış və ya axtarışı qalmayan gün axtarış nəticələri olmadan normal cavab verir. Hər digər xəta axtarışsız sorğu ilə eynidir. Xəta idarəetməsi