निर्मित वेब खोज
web_search: true सेट गर्नुहोस् र मोडलले आफ्नो उत्तरलाई प्रत्यक्ष नतिजाले आधार दिन्छ।
POST https://api.shannon-ai.com/v1/chat/completions
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")
response = client.chat.completions.create(
model="shannon-3",
messages=[{"role": "user", "content": "What is the weather forecast for Lisbon this weekend?"}],
extra_body={"web_search": True}, # a Shannon field, so it goes in extra_body
)
print(response.choices[0].message.content) import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://api.shannon-ai.com/v1" });
const response = await client.chat.completions.create({
model: "shannon-3",
messages: [{ role: "user", content: "What is the weather forecast for Lisbon this weekend?" }],
web_search: true,
});
console.log(response.choices[0].message.content); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [
{"role": "user", "content": "What is the weather forecast for Lisbon this weekend?"}
],
"web_search": true
}' जवाफ सामान्य च्याट कम्प्लिसन हो, दुई थपसहित। उत्तरले ठुला कोष्ठकभित्रका संख्याहरूद्वारा खोज नतिजालाई देखाउँछ, sources ले हरेक संख्याले के जनाउँछ भन्छ, र annotations ले हरेकको उल्लेख कहाँ छ भनेर चिनो लगाउँछ:
{
"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 मोडल |
| इन्डपोइन्ट | वेब खोज | कसरी |
|---|---|---|
/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पठाउने हरेक अनुरोधमा खोज चल्छ। खोज्ने कि नखोज्ने भनेर मोडलले छान्दैन।- नतिजा मोडलको अगाडि क्रमाङ्कित स्रोतका रूपमा राखिन्छन्, र मोडलले तिनबाट आफ्नो उत्तर लेख्छ।
- खोज सकिएपछि जवाफ सुरु हुन्छ। स्ट्रिम गरिएको अनुरोधले त्यतिबेलासम्म हेडर वा इभेन्ट केही पठाउँदैन, त्यसैले पहिलो चङ्कअघि लामो पर्खाइको आशा राख्नुहोस्।
जवाफमा के हुन्छ
- जवाफको आफ्नो इन्डपोइन्टको सामान्य आकार हुन्छ। उत्तर
choices[0].message.contentमा हुन्छ (/v1/messagesमाtextब्लक)। - टेक्स्टमा तिनले समर्थन गर्ने कथनहरू पछि
[1]र[2]जस्ता चिनोहरू हुन सक्छन्। हरेक संख्याले मोडलले पढेको एउटा नतिजा जनाउँछ। sourcesले ती नतिजाहरूको नाम दिन्छ: मोडललाई दिइएको हरेक नतिजाका लागि एउटा प्रविष्टि, जसमाindex,titleरurlहुन्छन्। चिनो[1]भनेकोindex1 भएको प्रविष्टि हो। उत्तरले नउल्लेख गरेका नतिजाहरू पनि सूचीमा हुन्छन्।/v1/chat/completionsमा सन्देशमा OpenAI को आकारमाannotationsपनि हुन्छ: चिनोले नाम लिने हरेक स्रोतका लागि एउटाurl_citation, जसमाurl,title, रstart_indexतथाend_indexहुन्छन्; यीcontentभित्र चिनोको स्थान हुन्, अक्षरमा गणना गरिएको (अन्त्य समावेश हुँदैन)।- स्ट्रिममा
sourcesअन्तिम चङ्कसँग आउँछ, र/v1/messagesमाmessage_deltaइभेन्टसँग। annotations अन्तिम चङ्कभन्दा ठीक अघिको एउटा चङ्कमाdelta.annotationsका रूपमा आउँछन्। - यस अनुरोधको खोजले केही भेटेको खण्डमा मात्र
sourcesहुन्छ। त्यो नभएको जवाफ खोज नतिजा बिना लेखिएको हो।
खोजहरू कसरी गनिन्छन्
हरेक प्लानमा प्रति दिन केही खोजहरू समावेश छन्:
| प्लान | प्रति दिन खोजहरू |
|---|---|
| नि: शुल्क | 3 |
| प्लस | 30 |
| Standard | 50 |
| प्रो | 60 |
- खोजले केही भेट्टाएको अनुरोधले दिनको भत्ताको एउटा खोज प्रयोग गर्छ। केही नभेटेको खोजले कुनै प्रयोग गर्दैन।
- च्याट र API ले कीको मालिक खाताको भत्ता साझा गर्छन्।
- गणना हरेक दिन 00:00 UTC मा फेरि सुरु हुन्छ।
- खोज नतिजा अनुरोधका इनपुट टोकन हुन् र प्रम्प्टको बाँकी भागसँगै बिल हुन्छन्।
दिनका खोज सकिँदा
दिनको अन्तिम खोजपछि web_search: true पठाउने अनुरोध अस्वीकार गरिँदैन। यसको जवाफ खोज बिना दिइन्छ: स्टेटस 200 हुन्छ र जवाफमा sources हुँदैन।
आफ्नै टुलका रूपमा खोज
web_search: true यहाँ वर्णन गरिएको खोजको एकमात्र स्विच हो। तपाईंले tools मा परिभाषित गरेर web_search नाम दिएको फङ्सन तपाईंकै आफ्नै टुल हो: मोडलले कल फर्काउँछ, र तपाईंको कोडले खोज चलाउँछ र नतिजा फर्काउँछ।
/v1/messages मा web_search_20250305 वा /v1/responses मा {"type": "web_search"} जस्ता अन्य प्लेटफर्मका खोज टुल प्रकारहरूले यहाँ खोज सुरु गर्दैनन्।
त्रुटिहरू
वेब खोजले कुनै स्टेटस कोड र कुनै त्रुटि प्रकार थप्दैन। केही नभेट्ने खोज, वा खोज बाँकी नरहेको दिनले खोज नतिजा बिनाको सामान्य जवाफ दिन्छ। अरू हरेक त्रुटि खोज बिनाको अनुरोधमा जस्तै हुन्छ। त्रुटि व्यवस्थापन