Preskoči na sadržaj
Ugrađena web pretraga

Ugrađena web pretraga

Postavite web_search: true i model utemeljuje svoj odgovor živim rezultatima.

POST https://api.shannon-ai.com/v1/chat/completions

Odgovor je obično čet dopunjavanje sa dva dodatka. Odgovor upućuje na rezultate pretrage brojevima u uglastim zagradama, sources kaže šta svaki broj označava, a annotations obeležava gde se svaki od njih navodi:

200 JSON
{
  "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"
    }
  ]
}

Uključivanje pretrage

Pretraga je polje zahteva, podrazumevano isključeno. Ništa se ne pretražuje osim ako je zahtev ne pošalje.

Polje Tip Podrazumevano Opis Primenjuju
web_search boolean false true pokreće web pretragu za ovaj zahtev i daje rezultate modelu pre nego što odgovori. Svaki Shannon model osim shannon-coder-1
Endpoint Web pretraga Kako
/v1/chat/completions Da "web_search": true u telu zahteva.
/v1/messages Da "web_search": true u telu zahteva.
/v1/responses — Ovaj endpoint odgovara samo na osnovu modela. Za odgovor sa pretragom koristite jedan od dva gornja.

Na /v1/messages polje stoji na najvišem nivou tela, pored model i messages:

Telo zahteva
{
  "model": "shannon-3",
  "web_search": true,
  "messages": [
    {
      "role": "user",
      "content": "What is the weather forecast for Lisbon this weekend?"
    }
  ]
}

Šta radi zahtev sa pretragom

  • API pretražuje web za poslednju korisničku poruku. Raniji potezi razgovora daju pretrazi kontekst.
  • Pretraga se izvršava na svakom zahtevu koji šalje web_search: true. Model ne bira da li će pretraživati.
  • Rezultati se stavljaju pred model kao numerisani izvori, a model piše odgovor na osnovu njih.
  • Odgovor počinje kada je pretraga gotova. Zahtev sa streamom do tada ne šalje ništa, ni zaglavlja ni događaje, zato računajte na duže čekanje pre prvog dela.

Šta odgovor sadrži

  • Odgovor ima uobičajeni oblik svog endpointa. Odgovor je u choices[0].message.content (blok text na /v1/messages).
  • Tekst može da nosi oznake kao što su [1] i [2] posle tvrdnji koje podržavaju. Svaki broj označava jedan od rezultata koje je model pročitao.
  • sources imenuje te rezultate: jedan unos za svaki rezultat koji je dat modelu, sa index, title i url. Oznaka [1] je unos sa index 1. Navedeni su i rezultati koje odgovor ne navodi.
  • Na /v1/chat/completions poruka ima i annotations, u OpenAI obliku: jedan url_citation za svaki izvor koji imenuje neka oznaka, sa url, title, kao i start_index i end_index, pozicijom oznake u content izbrojanom u znakovima (kraj nije uključen).
  • U streamu sources stiže sa poslednjim delom, a na /v1/messages sa događajem message_delta. Annotations stižu u jednom delu odmah pre poslednjeg, kao delta.annotations.
  • sources postoji samo ako je pretraga ovog zahteva nešto našla. Odgovor bez njega napisan je bez rezultata pretrage.

Kako se pretrage računaju

Svaki plan uključuje određen broj pretraga dnevno:

Plan Pretraga dnevno
Besplatno 3
Плус 30
Standard 50
Професионални 60
  • Zahtev čija je pretraga nešto našla troši jednu pretragu dnevne dozvole. Pretraga koja nije našla ništa ne troši nijednu.
  • Čet i API dele dozvolu naloga koji poseduje ključ.
  • Brojanje počinje iznova svakog dana u 00:00 UTC.
  • Rezultati pretrage su ulazni tokeni zahteva i naplaćuju se sa ostatkom prompta.

Uporedite planove

Kada se dnevne pretrage potroše

Zahtev koji šalje web_search: true posle poslednje pretrage u danu ne odbija se. Odgovara mu se bez pretrage: status je 200, a odgovor nema sources.

Pretraga kao vaš alat

web_search: true je jedini prekidač pretrage opisane ovde. Funkcija koju definišete u tools i nazovete web_search je jedan od vaših alata: model vraća poziv, a vaš kod izvršava pretragu i šalje rezultat nazad.

Tipovi alata za pretragu drugih platformi, kao što su web_search_20250305 na /v1/messages ili {"type": "web_search"} na /v1/responses, ovde ne pokreću pretragu.

Greške

Web pretraga ne dodaje statusni kod ni tip greške. Pretraga koja ne nađe ništa, ili dan bez preostalih pretraga, daje običan odgovor bez rezultata pretrage. Svaka druga greška ista je kao za zahtev bez pretrage. Upravljanje greškama