Прескокни до содржината
Вградено веб пребарување

Вградено веб пребарување

Поставете web_search: true и моделот го заснова одговорот на резултати во живо.

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

Одговорот е обично chat завршување со две додатоци. Одговорот упатува на резултатите од пребарувањето со броеви во средни загради, sources кажува што означува секој број, а annotations означува каде е цитиран секој од нив:

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"
    }
  ]
}

Вклучување на пребарувањето

Пребарувањето е поле на барањето, стандардно исклучено. Ништо не се пребарува освен ако барањето не го испрати.

Поле Тип Стандардно Опис Го применуваат
web_search boolean false true извршува веб пребарување за ова барање и им ги дава резултатите на моделот пред да одговори. Секој модел Shannon освен shannon-coder-1
Ендпоинт Веб пребарување Како
/v1/chat/completions Да "web_search": true во телото на барањето.
/v1/messages Да "web_search": true во телото на барањето.
/v1/responses — Овој ендпоинт одговара само од моделот. За одговор со пребарување користете еден од горните два.

На /v1/messages полето е на највисокото ниво на телото, покрај model и messages:

Тело на барање
{
  "model": "shannon-3",
  "web_search": true,
  "messages": [
    {
      "role": "user",
      "content": "What is the weather forecast for Lisbon this weekend?"
    }
  ]
}

Што прави барање со пребарување

  • API-то пребарува на вебот според последната порака на корисникот. Претходните чекори на разговорот му го даваат контекстот на пребарувањето.
  • Пребарувањето се извршува на секое барање што испраќа web_search: true. Моделот не избира дали да пребарува.
  • Резултатите се ставаат пред моделот како нумерирани извори, а моделот го пишува својот одговор врз основа на нив.
  • Одговорот започнува кога пребарувањето ќе заврши. Барање со streaming не испраќа ништо, ни header-и ни настани, до тогаш, затоа предвидете подолго чекање до првиот chunk.

Што содржи одговорот

  • Одговорот го има вообичаениот облик на својот ендпоинт. Одговорот е во choices[0].message.content (блок text на /v1/messages).
  • Текстот може да носи ознаки како [1] и [2] по изјавите што ги поддржуваат. Секој број означува еден од резултатите што ги прочитал моделот.
  • sources ги именува тие резултати: по еден запис за секој резултат што му бил даден на моделот, со index, title и url. Ознаката [1] е записот со index 1. Резултатите што одговорот не ги цитира се исто така наведени.
  • На /v1/chat/completions пораката има и annotations, во обликот на OpenAI: по еден url_citation за секој извор што го именува некоја ознака, со url, title, и start_index и end_index, позицијата на ознаката во content броена во знаци (крајот не е вклучен).
  • Во stream sources доаѓа со последниот chunk, а на /v1/messages со настанот message_delta. Анотациите доаѓаат во еден chunk непосредно пред последниот, како delta.annotations.
  • sources го има само кога пребарувањето на ова барање нашло нешто. Одговор без него е напишан без резултати од пребарување.

Како се бројат пребарувањата

Секој план вклучува одреден број пребарувања на ден:

План Пребарувања на ден
Бесплатно 3
Плус 30
Standard 50
Про 60
  • Барање чие пребарување нашло нешто користи едно пребарување од дневниот лимит. Пребарување што не нашло ништо не користи ниедно.
  • Разговорот и API-то го делат лимитот на сметката што го поседува клучот.
  • Бројот започнува одново секој ден во 00:00 UTC.
  • Резултатите од пребарувањето се влезни токени на барањето и се наплатуваат заедно со остатокот од prompt-от.

Споредете ги плановите

Кога дневните пребарувања се искористени

Барање што испраќа web_search: true по последното пребарување за денот не се одбива. Се одговара без пребарување: статусот е 200 и одговорот нема sources.

Пребарување како ваша алатка

web_search: true е единствениот прекинувач на пребарувањето опишано овде. Функција што ја дефинирате во tools и ја именувате web_search е една од вашите алатки: моделот враќа повик, а вашиот код го извршува пребарувањето и го испраќа резултатот назад.

Типовите алатки за пребарување на други платформи, како web_search_20250305 на /v1/messages или {"type": "web_search"} на /v1/responses, тука не започнуваат пребарување.

Грешки

Веб пребарувањето не додава статус код ниту тип на грешка. Пребарување што не наоѓа ништо, или ден без преостанати пребарувања, дава нормален одговор без резултати од пребарување. Секоја друга грешка е иста како за барање без пребарување. Ракување со грешки