Tīmekļa meklēšana
Iestatiet web_search: true, un modelis atbildi pamato ar aktuāliem rezultātiem.
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
}' Atbilde ir parasta čata pabeigšana ar diviem papildinājumiem. Atbilde ar skaitļiem kvadrātiekavās norāda uz meklēšanas rezultātiem, sources pasaka, ko katrs skaitlis nozīmē, un annotations atzīmē, kur katrs no tiem ir citēts:
{
"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"
}
]
} Meklēšanas ieslēgšana
Meklēšana ir pieprasījuma lauks, pēc noklusējuma izslēgts. Nekas netiek meklēts, ja pieprasījums to nesūta.
| Lauks | Tips | Noklusējums | Apraksts | Piemēro |
|---|---|---|---|---|
web_search | boolean | false | true palaiž meklēšanu tīmeklī šim pieprasījumam un nodod rezultātus modelim pirms atbildes. | Katrs Shannon modelis, izņemot shannon-coder-1 |
| Galapunkts | Meklēšana tīmeklī | Kā |
|---|---|---|
/v1/chat/completions | Jā | "web_search": true pieprasījuma pamattekstā. |
/v1/messages | Jā | "web_search": true pieprasījuma pamattekstā. |
/v1/responses | — | Šis galapunkts atbild tikai no paša modeļa. Atbildei ar meklēšanu izmantojiet vienu no augstāk minētajiem diviem. |
Galapunktā /v1/messages lauks atrodas pamatteksta augšējā līmenī, blakus model un messages:
{
"model": "shannon-3",
"web_search": true,
"messages": [
{
"role": "user",
"content": "What is the weather forecast for Lisbon this weekend?"
}
]
} Ko dara pieprasījums ar meklēšanu
- API meklē tīmeklī pēc pēdējā lietotāja ziņojuma. Sarunas iepriekšējie gājieni dod meklēšanai kontekstu.
- Meklēšana tiek veikta katram pieprasījumam, kas sūta
web_search: true. Modelis neizvēlas, vai meklēt. - Rezultāti tiek nolikti modeļa priekšā kā numurēti avoti, un modelis raksta atbildi no tiem.
- Atbilde sākas, kad meklēšana ir pabeigta. Straumēts pieprasījums līdz tam neko nesūta, ne galvenes, ne notikumus, tāpēc rēķinieties ar ilgāku gaidīšanu pirms pirmās daļas.
Ko atbilde satur
- Atbildei ir sava galapunkta parastā forma. Atbilde ir laukā
choices[0].message.content(blokstextgalapunktā/v1/messages). - Tekstā var būt atzīmes, piemēram,
[1]un[2], aiz apgalvojumiem, kurus tās apliecina. Katrs skaitlis atbilst vienam no rezultātiem, ko modelis nolasīja. sourcesnosauc šos rezultātus: viens ieraksts katram rezultātam, kas dots modelim, arindex,titleunurl. Atzīme[1]ir ieraksts arindex1. Rezultāti, kurus atbilde necitē, sarakstā ir arī iekļauti.- Galapunktā
/v1/chat/completionsziņojumā ir arīannotationsOpenAI formā: viensurl_citationkatram avotam, ko nosauc atzīme, arurl,title, kā arīstart_indexunend_index– atzīmes pozīciju laukācontent, skaitītu rakstzīmēs (beigu pozīcija netiek ieskaitīta). - Straumē
sourcesnāk ar pēdējo daļu, bet galapunktā/v1/messages– ar notikumumessage_delta. Anotācijas nāk vienā daļā tieši pirms pēdējās kādelta.annotations. sourcesir tikai tad, ja šī pieprasījuma meklēšana kaut ko atrada. Atbilde bez tā ir uzrakstīta bez meklēšanas rezultātiem.
Kā meklējumi tiek skaitīti
Katrs plāns ietver noteiktu meklējumu skaitu dienā:
| Plāns | Meklējumi dienā |
|---|---|
| Bezmaksas | 3 |
| Papildus | 30 |
| Standard | 50 |
| Profesionāls | 60 |
- Pieprasījums, kura meklēšana kaut ko atrada, izmanto vienu meklējumu no dienas kvotas. Meklēšana, kas neko neatrada, neizmanto nevienu.
- Čats un API dala tā konta kvotu, kuram pieder atslēga.
- Skaitīšana sākas no jauna katru dienu plkst. 00:00 UTC.
- Meklēšanas rezultāti ir pieprasījuma ievades tokeni, un tie tiek rēķināti kopā ar pārējo uzvedni.
Kad dienas meklējumi ir izlietoti
Pieprasījums, kas sūta web_search: true pēc dienas pēdējā meklējuma, netiek noraidīts. Uz to atbild bez meklēšanas: statuss ir 200, un atbildē nav sources.
Meklēšana kā jūsu pašu rīks
web_search: true ir vienīgais šeit aprakstītās meklēšanas slēdzis. Funkcija, ko definējat laukā tools un nosaucat web_search, ir viens no jūsu pašu rīkiem: modelis atgriež izsaukumu, un jūsu kods palaiž meklēšanu un sūta rezultātu atpakaļ.
Citu platformu meklēšanas rīku tipi, piemēram, web_search_20250305 galapunktā /v1/messages vai {"type": "web_search"} galapunktā /v1/responses, šeit meklēšanu nesāk.
Kļūdas
Meklēšana tīmeklī nepievieno ne statusa kodu, ne kļūdas tipu. Meklēšana, kas neko neatrod, vai diena bez atlikušiem meklējumiem dod parastu atbildi bez meklēšanas rezultātiem. Katra cita kļūda ir tāda pati kā pieprasījumam bez meklēšanas. Kļūdu apstrāde