Razvoj

AI Rest-API – A Fully Free Service

AI Rest-API – Potpuno besplatna usluga

Uvod

Pozdrav svima. Danas otvaram pristup nečemu što gradim, testiram i usavršavam mjesecima — moj vlastiti AI Rest-API, potpuno besplatan za korištenje. Ovo je pokušaj da se osigura brza, pouzdana, privatnosti-prijateljska i developer-orijentirana AI usluga koju svatko može integrirati u aplikacije, alate, automatizacije ili eksperimente bez paywalla. Dizajnirao sam ga da bude praktičan i pouzdan, a ne demo koji se raspada pod stvarnim opterećenjem.

Osnovna arhitektura

Lokalni, prilagođeni GPT4ALL

Primarni motor je potpuno lokalna instanca GPT4ALL, duboko prilagođena i fino podešena da se ponaša kao endpoint AI spreman za produkciju. Pokretanje lokalno pruža potpunu neovisnost od davatelja usluga u oblaku, uklanja izloženost podataka trećim stranama i pruža predvidive performanse za mnoge uobičajene zadatke.

Napredno spremanje u predmemoriju s logikom prosljeđivanja upita

API koristi napredni sloj za spremanje u predmemoriju koji radi više od jednostavnog spremanja u predmemoriju ključ-vrijednost. Razumije sličnost upita i kontekstnu logiku:

  • Slični upiti koji dovode do istog logičkog odgovora vraćaju trenutni odgovor iz predmemorije.
  • Točni upiti se vraćaju odmah s gotovo nultom latencijom iz predmemorije.
  • Odgovori iz predmemorije ne troše pozive fallback davatelja.
  • Predmemorija smanjuje nepotrebno izračunavanje i održava sustav responzivnim pod opterećenjem.

Lanac povratka: Lokalno → OpenAI → Grok → Deeplink

Lokalni modeli mogu biti resursno intenzivni pod velikom konkurentnošću. Da bih API zadržao stabilnim, implementirao sam automatizirani lanac povratka:

  1. Primarno: lokalni GPT4ALL
  2. Povratak A: OpenAI
  3. Povratak B: Grok
  4. Povratak C: Deeplink
  5. Ako su svi davatelji zauzeti, API vraća 502. U tom slučaju, pokušajte ponovno nakon nekoliko sekundi.

Kako koristiti API

Autentifikacija

Svaki zahtjev mora uključivati vaš osobni token kao parametar upita:

https://api.mihajlo.mk/v1/ai-text?token=YOUR_TOKEN

Svoj token možete pronaći u svom profilu na https://mihajlo.mk/. Zadržite ga privatnim. Zahtjevi s nevažećim tokenom se odbijaju.

Endpoint

POST https://api.mihajlo.mk/v1/ai-text?token=YOUR_TOKEN

Endpoint prihvaća multipart/form-data.

Parametri zahtjeva

Polje Tip Obavezno Opis
prompt tekst Da Do 5000 znakova. Glavni ulaz.
temperature broj Ne Kontrola kreativnosti (0–2). Standardno na postavkama davatelja.
system tekst Ne Neobavezna sistemska instrukcija (npr. "Vi ste kreativni fitness trener").
tokens int Ne Približan maksimalni broj tokena za odgovor.

Primjer cURL

curl -X POST "https://api.mihajlo.mk/v1/ai-text?token=YOUR_TOKEN" \
-F "prompt=Napiši 3-dnevni početnički program za guranje/povlačenje/noge" \
-F "temperature=0.8" \
-F "system=Ti si prijateljski certificirani trener" \
-F "tokens=800"

Format odgovora

{
  "error": false,
  "status_text": "OK",
  "status_code": 200,
  "status_msg": "OK",
  "ai-text": {
    "prompt": "Napiši 3-dnevni početnički program za guranje/povlačenje/noge",
    "response": "Dan 1 - Guranje ... (cijeli AI odgovor)"
  }
}

Greške validacije vraćaju 422. Ako su svi resursi zauzeti, API vraća 502. U potonjem slučaju, pokušajte ponovno nakon nekoliko sekundi.

Kodovi grešaka

HTTP status Značenje Akcija
401 Nedostaje ili nevažeći token Provjerite token u svom profilu.
405 Pogrešna HTTP metoda Podržan je samo POST.
422 Greška validacije (nedostaje upit, itd.) Ispravite korisni teret i pokušajte ponovno.
502 Neuspjeh uzvodno (svi resursi su zatajili) Pričekajte nekoliko sekundi i ponovno pošaljite.

Primjer integracije: PHP

 'Generiraj kratki motivacijski citat',
    'temperature' => 1.0,
    'system' => 'Govoriš kao miran mentor',
    'tokens' => 300
];

curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.mihajlo.mk/v1/ai-text?token=YOUR_TOKEN",
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $data,
    CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>

Napomene i najbolje prakse

  • Nemojte prekoračiti ograničenje upita od 5000 znakova.
  • Odgovori iz predmemorije se vraćaju odmah i ne troše dodatne zahtjeve davatelja.
  • Ako primite 502, pokušajte ponovno nakon kratke pauze; veliko opterećenje može privremeno usmjeriti zahtjeve na davatelje povratka.
  • Zadržite svoj token tajnim i nikada ga ne objavljujte u kodu na strani klijenta.

Završne misli

Izgradio sam ovu uslugu jer uživam u stvaranju praktičnih alata koji pomažu drugim developerima i graditeljima. Cilj je pouzdanost i korisnost, a ne pompa. Kombinacija lokalnog modela, sloja za predmemoriju koji razumije kontekst i robusnog lanca povratka pruža vrlo praktičan API za razne primjene u stvarnom svijetu.

Ako imate ideje, povratne informacije ili zahtjeve za značajkama, bio bih zahvalan da ih čujem.

S poštovanjem,
Mihajlo

Portret autora bloga

Mihajlo

Ja sam Mihajlo — programer vođen znatiželjom, disciplinom i stalnom željom da stvorim nešto smisleno. Dijelim uvide, tutorijale i besplatne usluge kako bih pomogao drugima da pojednostave svoj rad i rastu u svijetu softvera i umjetne inteligencije koji se neprestano razvija.