Kodwen docs
Referință APIGateway

Unelte

Căutare web verificată și fetch sigur de pagini, aceleași unelte pe care le folosește fiecare agent Kodwen.

Ambele endpoint-uri trec prin gate-ul de reguli și prin limita de rată per cheie. search returnează doar snippet-uri verificate față de pagina descărcată, cu filtre de domeniu (include_domains / exclude_domains), de dată de publicare (published_after / published_before) și freshness; fiecare rezultat are published_at (null când nu se cunoaște, niciodată data descărcării) și crawled_at. fetch aplică verificări SSRF la fiecare hop de redirect și o limită de 3 MB și returnează până la 40.000 de caractere (implicit 8.000). Contorizare per apel: 3 $ la 1.000 de căutări rapide, 8 $ la 1.000 aprofundate, 0,50 $ la 1.000 de fetch-uri; primele 1.000 de apeluri pe lună sunt gratuite, iar apelurile din cadrul unei ture de agent Kodwen nu se taxează (aceeași cheie, un apel de model terminat în ultimele 3 minute, cel mult 30 de apeluri în 10 minute). Limitele pe utilizator (429) și refuzul 402 insufficient_balance sunt descrise în ghidul de unelte. Rezultatele Google sunt returnate doar conturilor care au modul Google activat. Pentru întrebări în mai mulți pași folosește cercetarea aprofundată. Detalii: ghidul de unelte.

POST
/v1/tools/search

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API Kodwen (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body

Corpul lui POST /v1/tools/search.

query*string

Fraza de căutare (cu spațiile de la capete eliminate).

Lungime1 <= length <= 400
max_results?integer

Numărul maxim de rezultate.

Interval1 <= value <= 10
Implicit5
freshness?string

Doar pagini publicate în fereastra dată; paginile fără dată de publicare cunoscută sunt eliminate.

Valoare din"day""week""month""year"
include_domains?array<>

Întoarce doar pagini de pe aceste host-uri (inclusiv subdomenii, cu prefix de cale opțional, de ex. github.com/vercel). Schema și www. sunt eliminate.

Elementeitems <= 10
exclude_domains?array<>

Nu întoarce niciodată pagini de pe aceste host-uri (aceeași potrivire ca la include_domains).

Elementeitems <= 10
published_after?string

Doar pagini publicate la sau după această dată (YYYY-MM-DD sau YYYY-MM); paginile nedatate sunt eliminate.

Potrivire^\d{4}-\d{2}(-\d{2})?$
published_before?string

Doar pagini publicate înainte de această dată (YYYY-MM-DD sau YYYY-MM); paginile nedatate sunt eliminate.

Potrivire^\d{4}-\d{2}(-\d{2})?$
content_chars?integer

Întoarce și un extras verificat de cel mult atâtea caractere per rezultat, în content (absent sau 0 = doar snippet).

Interval0 <= value <= 2000
country?string

Cod de piață din două litere. Dacă lipsește, gateway-ul îl deduce din interogare (ro pentru interogări în română, us în rest).

Potrivire^[a-zA-Z]{2}$
lang?string

Cod de limbă, opțional cu regiune (en-US). Dacă lipsește, se deduce din interogare; un operator lang:xx în interogare are prioritate.

Potrivire^[a-zA-Z]{2}(-[a-zA-Z]{2})?$
mode?string

codai (implicit): căutarea nativă doar cu rezultate verificate (ToolSearchResponse). google: Grounding with Google Search pe Vertex AI, întors separat ca ToolSearchGoogleResponse și niciodată amestecat cu rezultatele Kodwen; 404 când gateway-ul nu îl are activat sau nu este activat pentru contul tău, 400 împreună cu un filtru de domeniu sau de dată, 503 search_unavailable când Google nu întoarce surse. fast / deep înseamnă codai cu acel depth (alias păstrat pentru clienții care trimit câmpul codai-search).

Implicit"codai"
Valoare din"codai""google""fast""deep"
depth?string

Adâncimea codai-search. fast (implicit): buget ~4,5 s. deep: mai multe surse și buget ~12 s, pentru cercetare, literatură și comparații; cu fallback: auto cererea întreagă poate dura ~20 s.

Implicit"fast"
Valoare din"fast""deep"
fallback?string

Cu mode: codai: auto (implicit) atașează un bloc separat google (Grounding with Google Search) când rezultatele Kodwen sunt slabe (niciunul, sub 3 sau acoperire mică pentru code/docs/general/academic/education) sau serviciul de căutare e indisponibil; niciodată pentru currency/weather/fuel/inflation/local_poi și niciodată cu un filtru de domeniu sau de dată. Rulează doar pentru conturile care au modul Google activat; pentru orice alt cont nu are efect. off îl dezactivează.

Implicit"auto"
Valoare din"auto""off"

Corpul răspunsului

Rezultate verificate (sau forma căii de furnizor, pe instalările fără codai-search).

application/json
  1. response

JSON-ul codai-search, întors neschimbat de gateway.

results*array<>
Elementeitems <= 10
provider*"codai"
Valoare din"codai"
took_ms*integer

Latența serviciului de căutare în milisecunde (nu întregul dus-întors prin gateway).

Interval0 <= value
cached*boolean

Servit din cache-ul de rezultate de 10 minute al serviciului de căutare.

coverage*number

results.length / max_results, rotunjit la două decimale.

Interval0 <= value <= 1
sources_tried*array<string>
degraded*array<string>

Doar eșecurile și expirările reale ale surselor sau etapelor (de ex. rerank:timeout, index:error); gol când totul a rulat.

notes?array<string>

Coduri informative ale pipeline-ului (rânduri filtrate, verificări în curs, indicii de cache); nu sunt eșecuri. Lipsește când e gol.

intent*string

Intenția interogării, stabilită pe reguli, folosită la alegerea surselor.

Valoare din"currency""weather""encyclopedic""code""docs""site""news""price""local""fuel""inflation""local_poi""academic""definition""education""general"
complete?boolean

Răspunsul este complet chiar cu mai puțin de 3 rezultate (articolul de referință pentru o definiție sau o întrebare factuală, o pagină oficială selectată pe locul 1, două articole din fluxurile de știri sau operatori stricți precum site: / filetype: / intitle:). Fallback-ul automat Google nu rulează în acest caz.

rerank?

Prezent când a rulat reranker-ul cross-encoder.

google?

Prezent doar când a rulat fallback-ul automat (vezi fallback). Set de rezultate separat din Grounding with Google Search — niciodată amestecat în results; afișați answer împreună cu search_suggestions_html și păstrați attribution (termenii Google).

fallback?

Dacă a fost folosit fallback-ul automat Google și de ce.

Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/tools/search' \  -H 'Content-Type: application/json' \  -d '{  "query": "curs BNR euro azi"}'
Exemplu de răspuns
{  "results": [    {      "title": "string",      "url": "http://example.com",      "snippet": "string",      "page_age": "string",      "published_at": "2019-08-24T14:15:22Z",      "crawled_at": "2019-08-24T14:15:22Z",      "content": "string",      "license": "string",      "license_url": "http://example.com",      "attribution": "string",      "source": "index",      "verified": true    }  ],  "provider": "codai",  "took_ms": 0,  "cached": true,  "coverage": 0,  "sources_tried": [    "string"  ],  "degraded": [    "string"  ],  "notes": [    "string"  ],  "intent": "currency",  "complete": true,  "rerank": {    "model": "string",    "ms": 0,    "n": 0  },  "google": {    "answer": "string",    "sources": [      {        "title": "string",        "url": "http://example.com"      }    ],    "queries": [      "string"    ],    "search_suggestions_html": "string",    "attribution": "string",    "ai_generated": true,    "cached": true  },  "fallback": {    "used": true,    "reason": "few_results"  }}
POST
/v1/tools/fetch

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API Kodwen (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body

Corpul lui POST /v1/tools/fetch.

url*string

URL public http/https. Un host fără schemă primește prefixul https://.

Lungime1 <= length <= 2048
max_chars?integer

Plafon pentru lungimea lui content; documentele mai lungi sunt tăiate la limită de paragraf și marcate truncated.

Interval200 <= value <= 40000
Implicit8000
focus?string

Fraza pe care te concentrezi — se păstrează doar paragrafele cele mai relevante, unite cu […].

Lungimelength <= 300
format?string
Implicit"markdown"
Valoare din"markdown""text"

Corpul răspunsului

Pagina extrasă.

application/json
  1. response

Conținutul extras plus metadate. Cheile de metadate opționale lipsesc când pagina nu le are.

url*string

URL-ul exact așa cum l-ai trimis.

final_url*string

URL-ul după redirecturi.

Formaturi
title?string
byline?string
description?string
canonical?string
Formaturi
lang?string

Limba documentului, așa cum o declară pagina.

content_type*string

Tipul media cu litere mici, fără parametri.

content*string

Conținut lizibil în format-ul cerut. Documentele JSON sunt formatate lizibil.

chars*integer

Lungimea lui content.

Interval0 <= value
truncated*boolean

True când max_chars, fereastra focus sau plafonul de 3 MB pe corp au eliminat conținut.

took_ms*integer
Interval0 <= value
cached*boolean

Servit din LRU-ul de 15 minute al gateway-ului.

Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/tools/fetch' \  -H 'Content-Type: application/json' \  -d '{  "url": "https://www.bnr.ro/Cursul-de-schimb-524.aspx"}'
Exemplu de răspuns
{  "url": "string",  "final_url": "http://example.com",  "title": "string",  "byline": "string",  "description": "string",  "canonical": "http://example.com",  "lang": "string",  "content_type": "text/html",  "content": "string",  "chars": 0,  "truncated": true,  "took_ms": 0,  "cached": true}

Ultima actualizare: