Web Search

Ge dina modeller och agenter aktuell information från webben utan att bygga in egna sök-beroenden. staik kör sökningen åt modellen och matar tillbaka resultatet automatiskt — eller anropa sökningen direkt när du bara vill ha råa träffar.

Översikt

Det finns två sätt att använda websök i staik:

  • Server-side verktyg — lägg "web_search": true i ett chat-anrop, så kallar modellen verktyget och staik kör sökningen och loopar tillbaka resultatet. Du får ett färdigt svar.
  • DirektanropPOST /v1/tools/web-search ger råa sökträffar utan modell.

Server-side (för agenter)

Skicka "web_search": true (eller lägg {"type": "web_search"} i tools) i ett vanligt /v1/chat/completions-anrop. Modellen avgör själv när den behöver söka, staik kör sökningen och fortsätter tills modellen har ett svar. Fungerar både med och utan stream.

curlServer-side web_search
curl https://api.staik.se/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-st-your-key" \
  -d '{
    "model": "qwen3.5:9b",
    "messages": [
      {"role": "user", "content": "Vad hände senast inom EU:s AI-reglering?"}
    ],
    "web_search": true
  }'

Skickar du dina egna verktyg i samma anrop exekveras de inte server-side — kallar modellen ett av dina verktyg returneras tool_calls till dig som vanligt. Bara web_search körs av staik.

Via header (klienter utan body-fält)

Vissa OpenAI-klienter och agent-verktyg låter dig inte lägga till egna fält i request-bodyn. Sätt då headern X-Staik-Web-Search: 1 i stället — den slår på web_search för anropet (motsvarar "web_search": true). Många klienter låter dig sätta headers per provider eller modell i konfigurationen.

curlHeader i stället för body-fält
curl https://api.staik.se/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-st-your-key" \
  -H "X-Staik-Web-Search: 1" \
  -d '{
    "model": "qwen3.5:9b",
    "messages": [{"role": "user", "content": "..."}]
  }'

Så fungerar loopen

  1. Modellen får tillgång till verktyget web_search(query, max_results).
  2. Behöver den aktuell information kallar den verktyget.
  3. staik kör sökningen och matar tillbaka träffarna till modellen.
  4. Modellen svarar — eller söker igen (upp till en intern gräns).

Tokens för alla rundor (sökanrop + slutsvar) summeras i usage, precis som ett vanligt anrop.

Direktanrop

Vill du bara ha råa sökträffar (utan modell) — t.ex. för din egen RAG-pipeline — använd POST /v1/tools/web-search:

curlDirektanrop
curl https://api.staik.se/v1/tools/web-search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-st-your-key" \
  -d '{"query": "svensk LLM API", "max_results": 5}'

# => {"results": [{"title": "...", "url": "...", "content": "..."}, ...]}

Integritet

Sökningen går via en self-hostad sökmotor på staiks egen hårdvara — ingen tredjeparts-sök-API-nyckel. Sökfrågan loggas aldrig, på samma sätt som vi aldrig loggar prompttext.

Tips

  • Sätt max_results (1–10) på direktanropet för att styra antalet träffar.
  • Behöver du flera verktyg i samma agent? Kombinera web_search med dina egna i tools — se Tool Calling.

Utforska mer