कंटेंट पर जाएँ
इनबिल्ट Web Search

इनबिल्ट Web Search

web_search: true सेट करें और मॉडल अपना उत्तर लाइव परिणामों पर आधारित करता है।

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

उत्तर एक सामान्य चैट कम्प्लीशन है, जिसमें दो चीज़ें जुड़ी हैं। उत्तर वर्ग कोष्ठक में संख्याओं से खोज परिणामों की ओर इशारा करता है, 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-coder-1 को छोड़कर हर Shannon मॉडल
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 आख़िरी यूज़र संदेश के लिए वेब खोजती है। बातचीत के पिछले टर्न खोज को उसका संदर्भ देते हैं।
  • खोज हर उस अनुरोध पर चलती है जो web_search: true भेजता है। मॉडल तय नहीं करता कि खोजे या नहीं।
  • परिणाम क्रमांकित स्रोतों के रूप में मॉडल के सामने रखे जाते हैं, और मॉडल उन्हीं से अपना उत्तर लिखता है।
  • उत्तर खोज पूरी होने पर शुरू होता है। स्ट्रीम किया गया अनुरोध तब तक कुछ नहीं भेजता, न हेडर, न इवेंट, इसलिए पहले चंक से पहले लंबे इंतज़ार की गुंजाइश रखें।

उत्तर में क्या होता है

  • उत्तर का रूप उसके endpoint का सामान्य रूप है। उत्तर choices[0].message.content में है (/v1/messages पर text ब्लॉक)।
  • टेक्स्ट में कथनों के बाद [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 इवेंट के साथ। annotations आख़िरी से ठीक पहले के एक चंक में delta.annotations के रूप में आते हैं।
  • sources तभी होता है जब इस अनुरोध की खोज को कुछ मिला हो। जिस उत्तर में यह नहीं है, वह खोज परिणामों के बिना लिखा गया था।

खोजें कैसे गिनी जाती हैं

हर प्लान में प्रति दिन कुछ खोजें शामिल हैं:

प्लान प्रति दिन खोजें
मुफ़्त 3
प्लस 30
Standard 50
प्रो 60
  • जिस अनुरोध की खोज में कुछ मिला, वह दिन के अलाउंस की एक खोज इस्तेमाल करता है। जिस खोज में कुछ नहीं मिला, वह कोई नहीं।
  • चैट और API उस अकाउंट का अलाउंस साझा करते हैं जिसकी key है।
  • गिनती हर दिन 00:00 UTC पर फिर शुरू होती है।
  • खोज परिणाम अनुरोध के इनपुट टोकन हैं और बाकी प्रॉम्प्ट के साथ बिल होते हैं।

प्लान की तुलना करें

जब दिन की खोजें खत्म हो जाएँ

दिन की आख़िरी खोज के बाद web_search: true भेजने वाला अनुरोध मना नहीं किया जाता। उसका उत्तर खोज के बिना दिया जाता है: स्टेटस 200 है और उत्तर में कोई sources नहीं होता।

अपने टूल के रूप में खोज

web_search: true यहाँ वर्णित खोज का एकमात्र स्विच है। जो फ़ंक्शन आप tools में परिभाषित करते हैं और जिसका नाम web_search रखते हैं, वह आपका अपना टूल है: मॉडल एक कॉल लौटाता है, और आपका कोड खोज चलाकर परिणाम वापस भेजता है।

दूसरे प्लेटफ़ॉर्म के खोज टूल प्रकार, जैसे /v1/messages पर web_search_20250305 या /v1/responses पर {"type": "web_search"}, यहाँ खोज शुरू नहीं करते।

एरर

वेब खोज कोई स्टेटस कोड या एरर प्रकार नहीं जोड़ती। जिस खोज में कुछ नहीं मिलता, या जिस दिन खोजें नहीं बचीं, वह खोज परिणामों के बिना सामान्य उत्तर देता है। बाकी हर एरर वैसा ही है जैसा बिना खोज वाले अनुरोध के लिए। त्रुटि प्रबंधन