გადასვლა შინაარსზე
ჩაშენებული ვებძიება

ჩაშენებული ვებძიება

დააყენეთ web_search: true და მოდელი პასუხს ცოცხალი შედეგებით დაასაბუთებს.

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

პასუხი ჩვეულებრივი chat completion-ია ორი დამატებით. პასუხი ძიების შედეგებზე კვადრატულ ფრჩხილებში მოცემული რიცხვებით მიუთითებს, 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-ის გარდა
Endpoint ვებძიება როგორ
/v1/chat/completions დიახ "web_search": true მოთხოვნის სხეულში.
/v1/messages დიახ "web_search": true მოთხოვნის სხეულში.
/v1/responses — ეს endpoint მხოლოდ მოდელის ცოდნით პასუხობს. ძიებით მიღებული პასუხისთვის ზემოთ მოცემული ორიდან ერთი გამოიყენეთ.

/v1/messages-ზე ველი სხეულის ზედა დონეზეა, model-სა და messages-ის გვერდით:

მოთხოვნის სხეული
{
  "model": "shannon-3",
  "web_search": true,
  "messages": [
    {
      "role": "user",
      "content": "What is the weather forecast for Lisbon this weekend?"
    }
  ]
}

რას აკეთებს ძიებით გაგზავნილი მოთხოვნა

  • API ვებში ბოლო user შეტყობინებას ეძებს. საუბრის ადრინდელი ბიჯები ძიებას კონტექსტს აძლევს.
  • ძიება ყოველ მოთხოვნაზე გაიშვება, რომელიც აგზავნის web_search: true-ს. მოდელი არ წყვეტს, ეძიოს თუ არა.
  • შედეგები მოდელის წინ დანომრილი წყაროების სახით იდება და მოდელი მათზე დაყრდნობით წერს პასუხს.
  • პასუხი ძიების დასრულებისას იწყება. სტრიმით გაგზავნილი მოთხოვნა მანამდე არაფერს აგზავნის, არც სათაურებს და არც მოვლენებს, ამიტომ პირველ ნაწილამდე უფრო ხანგრძლივი ლოდინი გაითვალისწინეთ.

რას შეიცავს პასუხი

  • პასუხს აქვს თავისი endpoint-ის ჩვეულებრივი ფორმა. პასუხი არის 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-ში, სიმბოლოებით დათვლილით (დასასრული არ შედის).
  • სტრიმში sources ბოლო ნაწილთან ერთად მოდის, /v1/messages-ზე კი message_delta ივენთთან ერთად. ანოტაციები მოდის ბოლოს წინა ერთ ნაწილში, როგორც delta.annotations.
  • sources მხოლოდ მაშინაა, როცა ამ მოთხოვნის ძიებამ რაღაც იპოვა. პასუხი, რომელშიც ის არ არის, ძიების შედეგების გარეშე დაიწერა.

როგორ ითვლება ძიებები

ყოველი გეგმა დღეში გარკვეული რაოდენობის ძიებას მოიცავს:

გეგმა ძიება დღეში
უფასო 3
პლუსი 30
Standard 50
პრო 60
  • მოთხოვნა, რომლის ძიებამაც რამე იპოვა, დღის ლიმიტიდან ერთ ძიებას ხარჯავს. ძიება, რომელმაც ვერაფერი იპოვა, არაფერს ხარჯავს.
  • ჩატი და API იმ ანგარიშის ლიმიტს იზიარებენ, რომელსაც გასაღები ეკუთვნის.
  • დათვლა ყოველდღე თავიდან იწყება 00:00 UTC-ზე.
  • ძიების შედეგები მოთხოვნის შემავალი ტოკენებია და პრომპტის დანარჩენ ნაწილთან ერთად იანგარიშება.

შეადარეთ გეგმები

როცა დღის ძიებები ამოიწურა

მოთხოვნა, რომელიც დღის ბოლო ძიების შემდეგ აგზავნის web_search: true-ს, უარყოფილი არ არის. მას ძიების გარეშე პასუხობენ: სტატუსი არის 200 და პასუხს sources არ აქვს.

ძიება როგორც თქვენი საკუთარი ინსტრუმენტი

web_search: true აქ აღწერილი ძიების ერთადერთი გადამრთველია. ფუნქცია, რომელსაც tools-ში განსაზღვრავთ და web_search დაარქმევთ, თქვენი საკუთარი ინსტრუმენტია: მოდელი გამოძახებას აბრუნებს, თქვენი კოდი კი ძიებას ასრულებს და შედეგს უკან აგზავნის.

სხვა პლატფორმების ძიების ინსტრუმენტების ტიპები, მაგალითად web_search_20250305 /v1/messages-ზე ან {"type": "web_search"} /v1/responses-ზე, აქ ძიებას არ იწყებენ.

შეცდომები

ვებძიება სტატუსის კოდს და შეცდომის ტიპს არ ამატებს. ძიება, რომელმაც ვერაფერი იპოვა, ან დღე დარჩენილი ძიებების გარეშე ჩვეულებრივ პასუხს იძლევა ძიების შედეგების გარეშე. ყველა სხვა შეცდომა იგივეა, რაც ძიების გარეშე მოთხოვნისთვის. შეცდომების დამუშავება