Built‑in Web Search
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મોકલતી દરેક રિક્વેસ્ટ પર શોધ ચાલે છે. શોધવું કે નહીં તે મોડેલ નક્કી કરતું નથી.- પરિણામો ક્રમાંકિત સ્રોતો તરીકે મોડેલ સામે મૂકાય છે, અને મોડેલ તેમના પરથી જવાબ લખે છે.
- શોધ પૂરી થાય ત્યારે જવાબ શરૂ થાય છે. સ્ટ્રીમ થતી રિક્વેસ્ટ ત્યાં સુધી હેડર્સ કે ઇવેન્ટ્સ કંઈ મોકલતી નથી, તેથી પહેલા chunk પહેલાં લાંબી રાહ માટે તૈયાર રહો.
જવાબમાં શું હોય છે
- જવાબ તેના એન્ડપોઇન્ટના સામાન્ય આકારમાં હોય છે. જવાબ
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છેલ્લા chunk સાથે આવે છે, અને/v1/messagesપરmessage_deltaઇવેન્ટ સાથે. ઉલ્લેખ-નોંધો છેલ્લા chunk ની તરત પહેલાંના એક chunk માં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"}, અહીં શોધ શરૂ કરતા નથી.
એરર્સ
વેબ શોધ કોઈ સ્ટેટસ કોડ કે એરર પ્રકાર ઉમેરતી નથી. જે શોધમાં કંઈ ન મળે, અથવા શોધ બાકી ન હોય તેવો દિવસ, શોધ પરિણામો વિનાનો સામાન્ય જવાબ આપે છે. બાકીની દરેક એરર શોધ વિનાની રિક્વેસ્ટ જેવી જ છે. ભૂલ સંભાળ