Acces la modelele AI
DojoCode SDK este conexiunea integrată pe care fiecare proiect DojoCode o primește la serviciile platformei — iar principala sa funcționalitate este accesul la modele AI reale. Membrii echipei tale și studenții pot construi aplicații care scriu text, analizează fotografii, generează imagini, animează videoclipuri, compun muzică, vorbesc cu o voce clonată și transcriu înregistrări, fără chei API, fără conturi de furnizor și fără configurarea facturării din partea ta.
O pot folosi în două moduri:
- Întreabă asistentul proiectului. Ei descriu funcționalitatea în chatul AI al proiectului, iar asistentul scrie cod funcțional pentru șablonul proiectului.
- Apelează-l din cod. SDK-ul este un API HTTP de dimensiuni reduse, iar fiecare șablon primește conexiunea injectată automat — consultă referința pentru dezvoltatori pentru exemple de cod pentru fiecare șablon.
Cine are acces
Accesul la modelele AI necesită un abonament premium activ — pentru conturile de business, asta înseamnă calitatea de membru într-o organizație pe un plan plătit (non-trial); Premium personal funcționează de asemenea. Fiecare generare costă tokeni AI din soldul persoanei autentificate care rulează proiectul (vezi Prețuri).
Doar pentru proiecte
SDK-ul este disponibil în proiecte — în timp ce le editezi și în previzualizarea lor. Nu este disponibil în cadrul provocărilor, așa că nu afectează niciodată modul în care sunt evaluate soluțiile pentru provocări. Proiectele construite pe șabloanele PGlite, SQLite și Solidity nu au cod de aplicație care să îl poată apela, iar proiectele în C și C++ nu îl pot apela încă.
De ce funcționează excelent pentru echipe și săli de clasă
- Fără chei de distribuit. Nimeni nu își creează un cont de furnizor AI, nu lipește o cheie API și nu riscă să o scurgă într-un depozit de cod. Conexiunea aparține utilizatorului autentificat și nu este salvată niciodată în fișierele proiectului.
- Fiecare șablon, nu doar JavaScript. React, Vue, Angular, Next.js și celelalte șabloane de browser, servere Node.js, Python în browser și programe în linie de comandă în Python, Java, Go, C#, PHP, Ruby și Rust (C și C++ nu sunt încă acceptate).
- Costuri previzibile. Prețuri clare pe unitate în tokeni AI, rambursări automate pentru generările eșuate și o notificare după fiecare generare plătită.
- Limite de siguranță integrate. Limite de utilizare per utilizator, generări doar la un clic explicit, iar proiectele care utilizează SDK-ul nu pot fi publicate pe un site public unde ar consuma tokenii altcuiva.
- O lecție din lumea reală. Cursanții lucrează cu aceleași tipare pe care le folosesc aplicațiile profesionale — API-uri HTTP, sarcini asincrone, polling, gestionarea fișierelor media și stări de eroare.
Idei pentru laboratoare și teme
- Asistent de accesibilitate — încarcă o fotografie și generează text alternativ (
image-to-text). - Partener de studiu — transformă notițele într-un test JSON randat cu întrebări cu răspuns multiplu (
text-to-text). - Studio de elemente de joc — generează sprite-uri, muzică de fundal și o voce de narator pentru un joc mic (
text-to-image,text-to-music,text-to-speech). - Note vocale în sarcini — transcrie o înregistrare și extrage o listă de activități (
speech-to-text+text-to-text). - Flux în linie de comandă — un program Python sau Go care trimite o cerere de generare video, stochează id-ul și preia rezultatul la următoarea rulare (sarcini asincrone în practică).
Ce se poate construi
| Modalitate | Ce face | Bazat pe |
|---|---|---|
text-to-text | Scrie, rezumă, traduce, răspunde, returnează JSON | Llama 3 (8B) |
image-to-text | Analizează o fotografie și răspunde în text | GPT-4o mini |
text-to-image | Generează imagini dintr-o descriere | FLUX schnell |
image-to-image | Transformă o fotografie pe baza unui prompt | FLUX dev |
text-to-video | Generează un clip video scurt dintr-o descriere | LTX-Video |
image-to-video | Animează o imagine statică | LTX-Video |
text-to-music | Compune o piesă instrumentală | MusicGen |
text-to-speech | Redă textul vorbit într-o voce clonată | Fish Speech |
speech-to-text | Transcrie (și traduce) o înregistrare | Whisper |
Modelele din spatele fiecărei modalități se pot schimba pe măsură ce devin disponibile altele mai bune; numele modalităților, intrările și ieșirile rămân aceleași.
Cum îl folosesc membrii
- Creează un proiect din orice șablon sau deschide unul existent.
- Deschide panoul AI Chat și descrie funcționalitatea în limbaj simplu — de exemplu: "Adaugă o secțiune de studio cu un formular separat pentru text-to-video, image-to-video și text-to-music. Afișează costul estimat, o stare în timp ce rulează și un player la sfârșit."
- Asistentul știe cum funcționează SDK-ul în acel șablon și scrie codul: citirea conexiunii injectate, gestionarea generărilor lente și afișarea rezultatului.
- Aceștia folosesc funcționalitatea în previzualizare (sau apasă pe Run pentru șabloanele fără previzualizare). Generările încep doar atunci când dau clic.

Fig. 1 - Descrierea funcționalității în Chatul AI al proiectului

Fig. 2 - Aplicația pe care o construiește asistentul, cu un formular pentru fiecare modalitate și costul estimat
Prețuri
Fiecare modalitate are un preț în tokeni AI pe unitate. Opțiunile de cantitate multiplică prețul, iar fiecare unitate începută este taxată integral.
| Modalitate | Taxat per | Tokeni AI |
|---|---|---|
text-to-text | cerere | 1 |
image-to-text | cerere | 2 |
speech-to-text | înregistrare | 2 |
text-to-image | imagine | 3 |
image-to-image | imagine | 5 |
text-to-speech | 1.000 de caractere de text | 3 |
text-to-music | 10 secunde de muzică | 4 |
text-to-video | 97 cadre ≈ 4 secunde de video | 12 |
image-to-video | 97 cadre ≈ 4 secunde de video | 12 |
De exemplu, patru imagini costă 4 × 3 = 12 tokeni, 30 de secunde de muzică costă 3 × 4 = 12 tokeni, iar un videoclip de 161 de cadre contează ca două unități începute: 2 × 12 = 24 tokeni.
- Taxat la trimitere. O cerere de la cineva fără suficienți tokeni este refuzată și nu se taxează nimic.
- Rambursat în caz de eșec. Dacă modelul eșuează, tokenii sunt returnați automat.
- Notificat de fiecare dată. După fiecare generare plătită, utilizatorul primește o notificare cu numărul de tokeni AI utilizați (sau rambursați), iar soldul acestora se actualizează în fiecare filă deschisă.
- Facturat celui care rulează proiectul. Când un membru rulează proiectul unui coleg de echipă sau al unui student, generările sunt taxate membrului care îl rulează.

Fig. 3 - Notificarea pe care o primește fiecare membru după o generare plătită
Cum funcționează o generare
- Modalitățile rapide (text, analiză de imagini, imagini, transcriere) răspund cu rezultatul finalizat, de obicei în câteva secunde.
- Modalitățile lente (video, muzică, vorbire) răspund imediat cu o înregistrare în așteptare; aplicația o verifică la fiecare câteva secunde până când este gata — generarea video durează între unul și două minute.
- Rezultatele media sunt linkuri permanente stocate de DojoCode, astfel încât imaginile, videoclipurile și fișierele audio continuă să funcționeze în proiect.
Pentru dezvoltatori
Platforma injectează un URL API și un token de acces în fiecare proiect. Modul în care sunt citite depinde de șablon:
| Șablon | Cum se citește conexiunea |
|---|---|
| React, Vue, Svelte, SvelteKit, SolidJS, Vanilla, Remix, React Native | import.meta.env.VITE_DOJOCODE_API_URL, import.meta.env.VITE_DOJOCODE_AI_TOKEN |
| Next.js | process.env.NEXT_PUBLIC_DOJOCODE_API_URL, process.env.NEXT_PUBLIC_DOJOCODE_AI_TOKEN |
| Astro | import.meta.env.PUBLIC_DOJOCODE_API_URL, import.meta.env.PUBLIC_DOJOCODE_AI_TOKEN |
| Angular | DOJOCODE_ENV din ./dojocode-env |
| NestJS, Fastify, Hono, Node.js (preview) | process.env.DOJOCODE_API_URL, process.env.DOJOCODE_AI_TOKEN |
| Python cu previzualizarea în browser | modulul încorporat dojocode_ai |
| Șabloane de execuție: Python, Node.js, Java, Go, C#, PHP, Ruby, Rust | variabilele de mediu DOJOCODE_API_URL, DOJOCODE_AI_TOKEN |
O generare este o singură cerere JSON:
const response = await fetch(`${import.meta.env.VITE_DOJOCODE_API_URL}/ai-generation/generations`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${import.meta.env.VITE_DOJOCODE_AI_TOKEN}`
},
body: JSON.stringify({ modality: 'text-to-image', input: { prompt: 'a watercolor fox in the snow' } })
});
const record = await response.json(); // 200 = finished, 202 = still running: poll GET /ai-generation/generations/{id}Referința pentru dezvoltatori acoperă restul detaliilor:
- Endpoint-uri, înregistrarea generării și erori
- Intrări pentru fiecare modalitate
- Trimiterea de imagini și fișiere audio
- Exemple de cod pentru fiecare șablon
Limite și măsuri de siguranță
- 30 de generări noi la fiecare 10 minute per utilizator.
- Intrări: prompt-uri de până la 4.000 de caractere, imagini de până la 5 MB, fișiere audio de până la 10 MB.
- Execuțiile în linie de comandă se opresc după 20 de secunde, așa că generările lente sunt trimise într-o singură rulare și citite în următoarea.
- O generare care nu s-a finalizat după 15 minute este anulată și rambursată.
- Panoul de previzualizare al editorului nu are acces la microfon — pentru a înregistra audio, deschide previzualizarea în propria filă sau încarcă un fișier audio.
Publicarea proiectelor care folosesc SDK-ul
Un proiect al cărui cod apelează SDK-ul nu poate fi publicat pe un site public *.dojocode.net: apelurile folosesc sesiunea conectată a persoanei care rulează proiectul, așa că un site public fie s-ar defecta pentru vizitatori, fie ar consuma tokenii AI ai altcuiva. Caseta de dialog Publish listează fișierele care folosesc SDK-ul; eliminarea acelor apeluri face proiectul publicabil din nou.

Fig. 4 - Caseta de dialog Publish listează fișierele care apelează SDK-ul
Depanare
| Simptom | Rezolvare |
|---|---|
Conexiunea este undefined / "credentials not available" | Folosește exact numele variabilei pentru șablon — fiecare framework de browser folosește un prefix diferit. |
401 după ce editorul a fost deschis pentru o perioadă lungă de timp | Sesiunea a expirat — reîncarcă editorul sau previzualizarea. |
403 "not enough AI tokens" sau "subscription is not active" | Verifică soldul de tokeni AI ai membrului și dacă organizația are un plan plătit. |
| Tokenii sunt taxați la fiecare salvare | Codul pornește o generare la încărcarea paginii — roagă asistentul să o declanșeze dintr-un buton în schimb. |
Un videoclip rămâne în starea running o perioadă | Generarea video și de voce poate dura câteva minute la pornirea la rece; după 15 minute sunt anulate și rambursate. |