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.
bearerAuthAutorizareBearer <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).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128application/json- body
Corpul lui POST /v1/tools/search.
query*stringFraza de căutare (cu spațiile de la capete eliminate).
1 <= length <= 400max_results?integerNumărul maxim de rezultate.
1 <= value <= 105freshness?stringDoar pagini publicate în fereastra dată; paginile fără dată de publicare cunoscută sunt eliminate.
"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.
items <= 10exclude_domains?array<>Nu întoarce niciodată pagini de pe aceste host-uri (aceeași potrivire ca la include_domains).
items <= 10published_after?stringDoar pagini publicate la sau după această dată (YYYY-MM-DD sau YYYY-MM); paginile nedatate sunt eliminate.
^\d{4}-\d{2}(-\d{2})?$published_before?stringDoar pagini publicate înainte de această dată (YYYY-MM-DD sau YYYY-MM); paginile nedatate sunt eliminate.
^\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).
0 <= value <= 2000country?stringCod de piață din două litere. Dacă lipsește, gateway-ul îl deduce din interogare (ro pentru interogări în română, us în rest).
^[a-zA-Z]{2}$lang?stringCod de limbă, opțional cu regiune (en-US). Dacă lipsește, se deduce din interogare; un operator lang:xx în interogare are prioritate.
^[a-zA-Z]{2}(-[a-zA-Z]{2})?$mode?stringcodai (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).
"codai""codai""google""fast""deep"depth?stringAdâ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.
"fast""fast""deep"fallback?stringCu 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ă.
"auto""auto""off"Rezultate verificate (sau forma căii de furnizor, pe instalările fără codai-search).
application/json- response
JSON-ul codai-search, întors neschimbat de gateway.
results*array<>items <= 10provider*"codai""codai"took_ms*integerLatența serviciului de căutare în milisecunde (nu întregul dus-întors prin gateway).
0 <= valuecached*booleanServit din cache-ul de rezultate de 10 minute al serviciului de căutare.
coverage*numberresults.length / max_results, rotunjit la două decimale.
0 <= value <= 1sources_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*stringIntenția interogării, stabilită pe reguli, folosită la alegerea surselor.
"currency""weather""encyclopedic""code""docs""site""news""price""local""fuel""inflation""local_poi""academic""definition""education""general"complete?booleanRă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.
curl -X POST 'https://ai.codai.ro/v1/tools/search' \ -H 'Content-Type: application/json' \ -d '{ "query": "curs BNR euro azi"}'{ "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" }}bearerAuthAutorizareBearer <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).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128application/json- body
Corpul lui POST /v1/tools/fetch.
url*stringURL public http/https. Un host fără schemă primește prefixul https://.
1 <= length <= 2048max_chars?integerPlafon pentru lungimea lui content; documentele mai lungi sunt tăiate la limită de paragraf și marcate truncated.
200 <= value <= 400008000focus?stringFraza pe care te concentrezi — se păstrează doar paragrafele cele mai relevante, unite cu […].
length <= 300format?string"markdown""markdown""text"Pagina extrasă.
application/json- response
Conținutul extras plus metadate. Cheile de metadate opționale lipsesc când pagina nu le are.
url*stringURL-ul exact așa cum l-ai trimis.
final_url*stringURL-ul după redirecturi.
urititle?stringbyline?stringdescription?stringcanonical?stringurilang?stringLimba documentului, așa cum o declară pagina.
content_type*stringTipul media cu litere mici, fără parametri.
content*stringConținut lizibil în format-ul cerut. Documentele JSON sunt formatate lizibil.
chars*integerLungimea lui content.
0 <= valuetruncated*booleanTrue când max_chars, fereastra focus sau plafonul de 3 MB pe corp au eliminat conținut.
took_ms*integer0 <= valuecached*booleanServit din LRU-ul de 15 minute al gateway-ului.
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"}'{ "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: