Salti al la enhavo
Retserĉo

Retserĉo

Agordu web_search: true kaj la modelo bazas sian respondon sur vivaj rezultoj.

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

La respondo estas ordinara babila kompletigo kun du aldonaĵoj. La respondo montras al la serĉrezultoj per nombroj en rektaj krampoj, sources diras, kion signifas ĉiu nombro, kaj annotations markas, kie ĉiu estas citita:

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

Ŝalto de serĉo

Serĉo estas kampo de la peto, defaŭlte malŝaltita. Nenio estas serĉata, krom se peto sendas ĝin.

Kampo Tipo Defaŭlto Priskribo Aplikata de
web_search boolean false true faras retserĉon por ĉi tiu peto kaj donas la rezultojn al la modelo antaŭ ol ĝi respondas. Ĉiu Shannon-modelo krom shannon-coder-1
Endpoint Retserĉo Kiel
/v1/chat/completions Jes "web_search": true en la korpo de la peto.
/v1/messages Jes "web_search": true en la korpo de la peto.
/v1/responses — Ĉi tiu endpoint respondas nur el la modelo. Uzu unu el la du supraj por respondo kun serĉo.

Ĉe /v1/messages la kampo troviĝas ĉe la supra nivelo de la korpo, apud model kaj messages:

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

Kion faras peto kun serĉo

  • La API serĉas en la reto pri la lasta mesaĝo de la uzanto. Pli fruaj vicoj de la konversacio donas al la serĉo ĝian kuntekston.
  • La serĉo okazas ĉe ĉiu peto, kiu sendas web_search: true. La modelo ne elektas ĉu serĉi.
  • La rezultoj estas metitaj antaŭ la modelon kiel numeritaj fontoj, kaj la modelo skribas sian respondon el ili.
  • La respondo komenciĝas kiam la serĉo finiĝis. Fluata peto sendas nenion, nek kapojn nek eventojn, ĝis tiam, do kalkulu kun pli longa atendo antaŭ la unua peco.

Kion la respondo enhavas

  • La respondo havas la kutiman formon de sia endpoint. La respondo estas en choices[0].message.content (bloko text ĉe /v1/messages).
  • La teksto povas porti markojn kiel [1] kaj [2] post la asertoj, kiujn ili subtenas. Ĉiu nombro reprezentas unu el la rezultoj, kiujn la modelo legis.
  • sources nomas tiujn rezultojn: unu enskribo por ĉiu rezulto, kiun la modelo ricevis, kun index, title kaj url. La marko [1] estas la enskribo kun index 1. Rezultoj, kiujn la respondo ne citas, estas listigitaj ankaŭ.
  • Ĉe /v1/chat/completions la mesaĝo havas ankaŭ annotations, en la formo de OpenAI: unu url_citation por ĉiu fonto, kiun marko nomas, kun url, title, kaj start_index kaj end_index, la pozicio de la marko en content kalkulita en signoj (la fino ne estas inkluzivita).
  • En fluo sources venas kun la lasta peco, kaj ĉe /v1/messages kun la evento message_delta. La notoj venas en unu peco tuj antaŭ la lasta, kiel delta.annotations.
  • sources ĉeestas nur se la serĉo de ĉi tiu peto trovis ion. Respondo sen ĝi estis skribita sen serĉrezultoj.

Kiel serĉoj estas kalkulataj

Ĉiu plano inkluzivas certan nombron da serĉoj tage:

Plano Serĉoj tage
Senpaga 3
Plusa 30
Standard 50
Profesia 60
  • Peto, kies serĉo trovis ion, uzas unu serĉon de la tagokvoto. Serĉo, kiu trovis nenion, uzas neniun.
  • Babilo kaj API kunuzas la kvoton de la konto, kiu posedas la ŝlosilon.
  • La kalkulo rekomenciĝas ĉiutage je 00:00 UTC.
  • La serĉrezultoj estas enigaj tokenoj de la peto kaj estas kalkulataj kun la cetero de la prompt.

Kompari la planojn

Kiam la serĉoj de la tago estas elĉerpitaj

Peto, kiu sendas web_search: true post la lasta serĉo de la tago, ne estas rifuzata. Ĝi estas respondata sen serĉo: la stato estas 200 kaj la respondo ne havas sources.

Serĉo kiel propra ilo

web_search: true estas la sola ŝaltilo de la ĉi tie priskribita serĉo. Funkcio, kiun vi difinas en tools kaj nomas web_search, estas unu el viaj propraj iloj: la modelo redonas vokon, kaj via kodo plenumas la serĉon kaj resendas la rezulton.

Tipoj de serĉiloj de aliaj platformoj, kiel web_search_20250305 ĉe /v1/messages aŭ {"type": "web_search"} ĉe /v1/responses, ne ekigas serĉon ĉi tie.

Eraroj

Retserĉo aldonas neniun statokodon kaj neniun tipon de eraro. Serĉo, kiu trovas nenion, aŭ tago sen restantaj serĉoj, donas normalan respondon sen serĉrezultoj. Ĉiu alia eraro estas sama kiel ĉe peto sen serĉo. Erarotraktado