O‘rnatilgan veb qidiruv
web_search: true ni o'rnating va model javobini jonli natijalar bilan asoslaydi.
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
}' Javob oddiy chat completion, unga ikkita qo'shimcha bor. Javob qidiruv natijalariga kvadrat qavsdagi raqamlar bilan ishora qiladi, sources har bir raqam nimani bildirishini aytadi, annotations esa har biri qayerda keltirilganini belgilaydi:
{
"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"
}
]
} Qidiruvni yoqish
Qidiruv so'rovning maydoni, odatda o'chiq. So'rov uni yubormasa, hech narsa qidirilmaydi.
| Maydon | Tur | Standart | Tavsif | Qo'llaydi |
|---|---|---|---|---|
web_search | boolean | false | true bu so'rov uchun veb-qidiruvni ishga tushiradi va natijalarni model javob berishdan oldin unga beradi. | shannon-coder-1 dan tashqari har bir Shannon modeli |
| Endpoint | Veb-qidiruv | Qanday |
|---|---|---|
/v1/chat/completions | Ha | So'rov tanasida "web_search": true. |
/v1/messages | Ha | So'rov tanasida "web_search": true. |
/v1/responses | — | Bu endpoint faqat modelning o'zidan javob beradi. Qidiruv bilan javob uchun yuqoridagi ikkitadan birini ishlating. |
/v1/messages da maydon tananing eng yuqori darajasida, model va messages yonida turadi:
{
"model": "shannon-3",
"web_search": true,
"messages": [
{
"role": "user",
"content": "What is the weather forecast for Lisbon this weekend?"
}
]
} Qidiruvli so'rov nima qiladi
- API oxirgi foydalanuvchi xabari bo'yicha veb'da qidiradi. Suhbatning oldingi bosqichlari qidiruvga kontekst beradi.
- Qidiruv
web_search: trueyuborgan har bir so'rovda bajariladi. Qidirish-qidirmaslikni model tanlamaydi. - Natijalar modelning oldiga raqamlangan manbalar sifatida qo'yiladi va model javobini ulardan yozadi.
- Javob qidiruv tugagach boshlanadi. Oqimli so'rov shu paytgacha na sarlavha, na hodisa yuboradi, shuning uchun birinchi chunk'gacha uzoqroq kutishni hisobga oling.
Javobda nima bor
- Javob o'z endpointining odatiy shaklida bo'ladi. Javob
choices[0].message.contentda (/v1/messagesdatextbloki). - Matnda o'zi tasdiqlaydigan gaplardan keyin
[1]va[2]kabi belgilar bo'lishi mumkin. Har bir raqam model o'qigan natijalardan biriga mos keladi. sourcesshu natijalarni nomlaydi: modelga berilgan har bir natija uchun bitta yozuv,index,titlevaurlbilan.[1]belgisiindex1 bo'lgan yozuvdir. Javobda keltirilmagan natijalar ham ro'yxatda bor./v1/chat/completionsda xabarda yana OpenAI shaklidagiannotationsbo'ladi: belgi nomlagan har bir manba uchun bittaurl_citation,url,titlehamdastart_indexvaend_indexbilan; ular belginingcontentdagi o'rnini belgilar bilan sanab ko'rsatadi (oxiri kirmaydi).- Streamda
sourcesoxirgi chunk bilan keladi,/v1/messagesda esamessage_deltaeventi bilan. Annotationlar oxirgisidan oldingi bitta chunkdadelta.annotationssifatida keladi. sourcesfaqat shu so'rovning qidiruvi nimadir topgan bo'lsa bo'ladi. Bu maydonsiz javob qidiruv natijalarisiz yozilgan.
Qidiruvlar qanday sanaladi
Har bir reja kuniga ma'lum miqdordagi qidiruvni o'z ichiga oladi:
| Reja | Kuniga qidiruvlar |
|---|---|
| Bepul | 3 |
| Plyus | 30 |
| Standard | 50 |
| Kasbiy | 60 |
- Qidiruv biror narsa topgan so'rov kunlik limitdan bitta qidiruvni sarflaydi. Hech narsa topmagan qidiruv hech narsa sarflamaydi.
- Chat va API kalit egasi bo'lgan akkauntning limitini birga ishlatadi.
- Hisob har kuni 00:00 UTC da qaytadan boshlanadi.
- Qidiruv natijalari so'rovning kirish tokenlari bo'ladi va promptning qolgan qismi bilan birga hisoblanadi.
Kunlik qidiruvlar tugaganda
Kunning oxirgi qidiruvidan keyin web_search: true yuborgan so'rov rad etilmaydi. U qidiruvsiz javob oladi: holat 200, javobda esa sources yo'q.
Qidiruv o'zingizning tool'ingiz sifatida
web_search: true bu yerda tasvirlangan qidiruvning yagona kalitidir. tools da o'zingiz belgilagan va web_search deb atagan funksiya o'zingizning tool'ingiz: model chaqiruv qaytaradi, qidiruvni esa kodingiz bajaradi va natijani qaytarib yuboradi.
Boshqa platformalarning qidiruv tool turlari, masalan /v1/messages dagi web_search_20250305 yoki /v1/responses dagi {"type": "web_search"}, bu yerda qidiruvni boshlamaydi.
Xatolar
Veb-qidiruv na holat kodi, na xato turini qo'shadi. Hech narsa topmagan qidiruv yoki qidiruvlari qolmagan kun qidiruv natijalarisiz oddiy javob beradi. Boshqa har bir xato qidiruvsiz so'rovdagi bilan bir xil. Xatolarni boshqarish