Integréiert Websich
Setzt web_search: true, an de Modell ënnerbaut seng Äntwert mat aktuelle Resultater.
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
}' D'Äntwert ass eng normal Chat-Completion mat zwee Zousätz. D'Äntwert weist mat Zuelen an eckege Klammeren op d'Sichresultater, sources seet, wat all Zuel steet, an annotations markéiert, wou all eng zitéiert gëtt:
{
"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"
}
]
} D'Sich uschalten
D'Sich ass e Feld vun der Ufro, standardméisseg aus. Et gëtt näischt gesicht, ausser eng Ufro schéckt et.
| Feld | Typ | Standard | Beschreiwung | Ugewannt vun |
|---|---|---|---|---|
web_search | boolean | false | true mécht eng Websich fir dës Ufro a gëtt dem Modell d'Resultater, ier en äntwert. | All Shannon-Modell ausser shannon-coder-1 |
| Endpoint | Websich | Wéi |
|---|---|---|
/v1/chat/completions | Jo | "web_search": true am Body vun der Ufro. |
/v1/messages | Jo | "web_search": true am Body vun der Ufro. |
/v1/responses | — | Dësen Endpoint äntwert nëmmen aus dem Modell. Benotzt ee vun den zwee uewen fir eng Äntwert mat Sich. |
Op /v1/messages steet d'Feld um héchsten Niveau vum Body, niewent model an messages:
{
"model": "shannon-3",
"web_search": true,
"messages": [
{
"role": "user",
"content": "What is the weather forecast for Lisbon this weekend?"
}
]
} Wat eng Ufro mat Sich mécht
- D'API sicht am Web no der leschter Benotzer-Message. Fréier Tourë vun der Konversatioun ginn der Sich hire Kontext.
- D'Sich leeft bei all Ufro, déi
web_search: trueschéckt. De Modell entscheet net, ob hie sicht. - D'Resultater ginn dem Modell als nummeréiert Quellen virgeluecht, an de Modell schreift seng Äntwert doraus.
- D'Äntwert fänkt un, wann d'Sich fäerdeg ass. Eng gestreamt Ufro schéckt bis dohin näischt, weder Header nach Events, rechent dofir mat enger méi laanger Waardezäit virum éischte Chunk.
Wat d'Äntwert enthält
- D'Äntwert huet déi normal Form vun hirem Endpoint. D'Äntwert steet an
choices[0].message.content(etext-Block op/v1/messages). - Den Text ka Markéierungen wéi
[1]an[2]no den Aussoen enthalen, déi se ënnerstëtzen. All Zuel steet fir ee vun de Resultater, déi de Modell gelies huet. sourcesnennt dës Resultater: ee Androck fir all Resultat, dat de Modell kritt huet, matindex,titleanurl. D'Markéierung[1]ass den Androck matindex1. Resultater, déi d'Äntwert net zitéiert, stinn och an der Lëscht.- Op
/v1/chat/completionshuet d'Message ochannotations, an der OpenAI-Form: engurl_citationfir all Quell, déi eng Markéierung nennt, maturl,title, anstart_indexanend_index, der Positioun vun der Markéierung ancontent, an Zeechen gezielt (d'Enn ass net abegraff). - An engem Stream kënnt
sourcesmam leschte Chunk, an op/v1/messagesmammessage_delta-Event. D'Annotatioune kommen an engem Chunk direkt virum leschte, alsdelta.annotations. sourcesass just do, wann d'Sich vun dëser Ufro eppes fonnt huet. Eng Äntwert ouni et gouf ouni Sichresultater geschriwwen.
Wéi Sichen gezielt ginn
All Plan enthält eng Zuel u Sichen pro Dag:
| Plan | Sichen pro Dag |
|---|---|
| Gratis | 3 |
| Méi | 30 |
| Standard | 50 |
| Professionell | 60 |
- Eng Ufro, där hir Sich eppes fonnt huet, benotzt eng Sich vun der Zuelung vum Dag. Eng Sich, déi näischt fonnt huet, benotzt keng.
- Chat an API deelen sech d'Zuelung vum Kont, deem de Schlëssel gehéiert.
- D'Zielen fänkt all Dag um 00:00 UTC nei un.
- D'Sichresultater sinn Input-Tokens vun der Ufro a ginn zesumme mam Rescht vum Prompt berechent.
Wann d'Sichen vum Dag opgebraucht sinn
Eng Ufro, déi web_search: true no der leschter Sich vum Dag schéckt, gëtt net refuséiert. Si gëtt ouni Sich beäntwert: de Status ass 200 an d'Äntwert huet kee sources.
D'Sich als eegent Tool
web_search: true ass dee eenzege Schalter vun der Sich, déi hei beschriwwen ass. Eng Funktioun, déi Dir an tools definéiert a web_search nennt, ass ee vun Ären eegenen Tools: de Modell gëtt e Ruff zréck, an Äre Code mécht d'Sich a schéckt d'Resultat zréck.
Sich-Tooltypen vun anere Plattformen, wéi web_search_20250305 op /v1/messages oder {"type": "web_search"} op /v1/responses, starten hei keng Sich.
Feeler
D'Websich füügt keen Status-Code a keen Feelertyp derbäi. Eng Sich, déi näischt fënnt, oder en Dag ouni Sichen iwwereg, gëtt eng normal Äntwert ouni Sichresultater. All anere Feeler ass d'selwecht wéi bei enger Ufro ouni Sich. Feelerbehandlung