Ներկառուցված վեբ որոնում
Սահմանեք 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
}' Պատասխանը սովորական chat completion է երկու հավելումով։ Պատասխանը քառակուսի փակագծերում թվերով հղվում է որոնման արդյունքներին, 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 մոդել, բացի 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ուղարկող յուրաքանչյուր հարցման վրա։ Մոդելը չի ընտրում՝ որոնել թե ոչ։ - Արդյունքները մոդելի առաջ դրվում են որպես համարակալված աղբյուրներ, և մոդելը իր պատասխանը գրում է դրանցից։
- Պատասխանը սկսվում է, երբ որոնումն ավարտվում է։ Streaming հարցումը մինչ այդ ոչինչ չի ուղարկում՝ ո՛չ header-ներ, ո՛չ իրադարձություններ, ուստի առաջին chunk-ից առաջ հաշվի առեք ավելի երկար սպասում։
Ինչ է պարունակում պատասխանը
- Պատասխանն ունի իր endpoint-ի սովորական կառուցվածքը։ Պատասխանը
choices[0].message.content-ում է (textբլոկ/v1/messages-ում)։ - Տեքստը կարող է կրել
[1]և[2]նման նշիչներ՝ իրենց հաստատած պնդումներից հետո։ Յուրաքանչյուր թիվ ներկայացնում է մոդելի կարդացած արդյունքներից մեկը։ sources-ը անվանում է այդ արդյունքները՝ մեկ գրառում մոդելին տրված յուրաքանչյուր արդյունքի համար,index,titleևurlդաշտերով։[1]նշիչը այն գրառումն է, որիindex-ը 1 է։ Նշված են նաև այն արդյունքները, որոնց պատասխանը չի մեջբերում։/v1/chat/completions-ում հաղորդագրությունն ունի նաևannotationsOpenAI-ի կառուցվածքով. մեկurl_citationնշիչի անվանած յուրաքանչյուր աղբյուրի համար՝url,title, ինչպես նաևstart_indexևend_indexդաշտերով՝ նշիչի դիրքըcontent-ում՝ հաշված նիշերով (վերջը չի ներառվում)։- Հոսքում
sources-ը գալիս է վերջին chunk-ի հետ, իսկ/v1/messages-ում՝message_deltaիրադարձության հետ։ Annotations-ը գալիս է վերջինից անմիջապես առաջ մեկ chunk-ում՝ որպեսdelta.annotations։ sources-ը կա միայն այն դեպքում, երբ այս հարցման որոնումը ինչ-որ բան է գտել։ Առանց դրա պատասխանը գրվել է առանց որոնման արդյունքների։
Ինչպես են հաշվվում որոնումները
Յուրաքանչյուր պլան ներառում է օրական որոշակի քանակի որոնումներ.
| Պլան | Որոնումներ օրական |
|---|---|
| Անվճար | 3 |
| Պլյուս | 30 |
| Standard | 50 |
| Պրո | 60 |
- Հարցումը, որի որոնումը ինչ-որ բան է գտել, օգտագործում է օրվա թույլտվության մեկ որոնում։ Ոչինչ չգտած որոնումը ոչինչ չի օգտագործում։
- Չաթը և API-ն կիսում են բանալու սեփականատեր հաշվի թույլտվությունը։
- Հաշվարկը նորից սկսվում է ամեն օր 00:00 UTC-ին։
- Որոնման արդյունքները հարցման մուտքի թոքեններ են և գանձվում են prompt-ի մնացած մասի հետ։
Երբ օրվա որոնումները սպառվել են
web_search: true ուղարկող հարցումը օրվա վերջին որոնումից հետո չի մերժվում։ Այն պատասխանվում է առանց որոնման. կարգավիճակը 200 է, և պատասխանը sources չունի։
Որոնումը՝ որպես ձեր սեփական գործիք
web_search: true-ը այստեղ նկարագրված որոնման միակ անջատիչն է։ Ֆունկցիան, որը դուք սահմանում եք tools-ում և անվանում web_search, ձեր սեփական գործիքներից մեկն է. մոդելը վերադարձնում է կանչ, իսկ ձեր կոդը կատարում է որոնումը և ուղարկում արդյունքը հետ։
Այլ հարթակների որոնման գործիքի տեսակները, օրինակ՝ web_search_20250305 /v1/messages-ում կամ {"type": "web_search"} /v1/responses-ում, այստեղ որոնում չեն սկսում։
Սխալներ
Վեբ որոնումը չի ավելացնում կարգավիճակի կոդ կամ սխալի տեսակ։ Ոչինչ չգտած որոնումը կամ առանց մնացած որոնումների օրը տալիս է սովորական պատասխան՝ առանց որոնման արդյունքների։ Մնացած յուրաքանչյուր սխալ նույնն է, ինչ առանց որոնման հարցման դեպքում։ Սխալների մշակում