Base di conoscenza Il codice
Eseguire il codice su un server
Quando il codice ha bisogno di più di quello che il tuo dispositivo può fornire - un'altra lingua, pacchetti da Internet, più tempo - Nymbot può eseguire su un server proprio, in un contenitore creato per quella esecuzione.
Questa pagina è tradotta automaticamente per comodità. Si applica l'originale inglese.
Che cosa è un server run
Un server run avvia un contenitore fresco, mette il codice in esso, lo esegue, restituisce ciò che ha stampato e distrugge il contenitore. per equilibrio Fino al momento in cui è effettivamente in corso.
Ci sono due modi in: Correre sul server su un blocco di codice, e il server viene eseguito che Nymbot chiede mentre funziona in un deposito.
Per Python veloce o JavaScript che non ha bisogno di nulla da Internet, il Sandbox sul tuo dispositivo Di solito è sufficiente.
Eseguire un blocco di codice
Python, JavaScript, TypeScript, shell, Go, Rust, Java e Dart blocchi di codice in una risposta hanno un Correre sul server pulsante, ogni volta che i server sono disponibili. Si apre un foglio che mostra:
- Il Immagine Il codice verrà eseguito,
- un limite di tempo da scegliere: 1, 5 o 15 minuti,
- il più la corsa può costare, in crediti Pro, per quel limite di tempo,
- e, se la chat ha file allegati, una casella per includerli. Essi vanno solo se si controlla.
La stampa corsa e l'uscita scorre sotto il blocco di codice quando arriva: cosa ha stampato, il codice di uscita, per quanto tempo è stato eseguito, qualsiasi file è stato scritto (ogni con un salvare Bottone) e che cosa è stato accusato.
Stop a Il server viene chiuso immediatamente e si paga solo per il tempo in cui è stato eseguito.
In un Modalità Anonimo La chat run viene pagata dai crediti Pro della chiave gettata, e i file allegati non sono mai inclusi.
Lingue e immagini
Ogni lingua viene eseguita su un'immagine, un sistema pronto con gli strumenti di cui il linguaggio ha bisogno. le immagini più grandi vengono eseguite su server più grandi e costano di più al minuto.
| Immagine | Utilizzato per | Cosa contiene | Servizio |
|---|---|---|---|
| di Python | di Python | Python 3.12 con pip, venv, build tools e git; numpy, pandas e pytest già installati | 0,5 CPU, 4 GB di memoria |
| Node.js | JavaScript e TypeScript | Node.js 22 con npm, pnpm e yarn, più Python 3, make e un compilatore C++ | 0,5 CPU, 4 GB di memoria |
| Poliglotti | Shell, Go, Rust e Java | Bash, C e C++ build tools, Python 3, Node.js, Go, Rust con carico e Java 17 | 1 CPU, 6 GB di memoria |
| Il flutter | Dart | Flutter 3.32 e Dart | 2 CPU, 8 GB di memoria |
Quanto costa
Il tempo del server viene fatturato in passaggi di 10 secondi, dalla richiesta del server alla chiusura, con 10 secondi come minimo un run può costare.Il tasso è quello che il server di quella dimensione costa Nymbot, più un margine, convertito in crediti Pro al prezzo Bitcoin corrente.
- Il prezzo è mostrato di fronte, come massimo. Non ti viene mai caricato di più, e una corsa che finisce presto costa meno.
- Il massimo è mantenuto mentre la corsa è in corso. Quando finisce, il carico effettivo viene preso e il resto viene rilasciato.
- Una corsa che non inizia è gratuita.
- Si applicano i capi di spesa. Una corsa che potrebbe andare oltre un chat Spesa cap Chiedi prima, lo stesso modo di una risposta fa.
Poiché il prezzo segue il prezzo di Bitcoin, può spostarsi tra il momento in cui lo vedi e il momento in cui fai clic su Run.
Server in esecuzione in un repository
In una chat con un deposito collegato, il Servizio RUN Il chip consente a Nymbot di chiedere di eseguire comandi contro il tuo codice, come installare le dipendenze e eseguire i test dopo un cambiamento.
Ogni volta che il modello vuole eseguire qualcosa, la risposta si ferma e mostra una scheda con l'immagine, il comando completo, il limite di tempo e il massimo che può costare, più quale repository quando la chat ha più.
- Permettete una volta Corre contro il repository con le modifiche che la risposta ha fatto finora, e il modello ottiene di nuovo il codice di uscita, la fine della uscita e l'elenco dei file che il comando ha cambiato.
- declino Non c’è nulla, non c’è nulla, la risposta non c’è.
Ogni corsa chiede. ciascuna viene addebitata separatamente dalla risposta, e la risposta elenca le corse che ha fatto e quanto ciascuna costa. Spesa capSi rifiuta prima di essere chiesto.
I file che modificano un comando sul server rimangono lì e vengono buttati via con il contenitore. Non sono scritti nel tuo repository. Le modifiche al repository provengono solo dalle proprie modifiche della risposta.
Quello che è isolato
- Un contenitore fresco per ogni corsa. Niente è condiviso con un'altra corsa o con un'altra persona, e il contenitore viene distrutto quando la corsa finisce, sia che abbia avuto successo o fallito.
- Niente internet, tranne i pacchetti di registrazione. Il contenitore può scaricare i pacchetti da dove provengono: PyPI, npm e yarn, pub.dev e lo storage di Google per Flutter e Dart, il proxy del modulo Go, crates.io, Maven Central e GitHub per dipendenze git e rilascio di download. Può solo scaricare. Non può inviare nulla a loro o raggiungere qualsiasi altro indirizzo.
- Solo quello che hai scelto entra. Il codice, i file che hai incluso, o i file del repository. Le tue chiavi, il tuo token git e le tue chat non entrano mai nel contenitore.
- La produzione è trattata come non affidabile. In un repository, ciò che un run stampa viene mostrato al modello contrassegnato come dati esterni, e viene detto di non seguire mai le istruzioni all'interno di esso.
Limiti
- Un server viene eseguito alla volta per ogni chiave. Iniziare un secondo mentre il primo è ancora in corso è rifiutato.
- Limiti di tempo di 1, 5 o 15 minuti per un blocco di codice. Un'esecuzione di repository può richiedere fino a 15 minuti, o 20 sull'immagine Flutter.
- Fino a 1 MB di codice e fino a 200 file allegati per un totale di 20 MB.
- Un repository fino a 60 MB, confezionato.
- Fino a 256 KB di uscita. Qualsiasi cosa passata che viene abbandonata, e la corsa lo dice.
- Fino a 200 file, 8 MB in totale, restituiti per salvare.
I server possono essere disattivati per la manutenzione, come un'immagine intera o un'immagine alla volta. Correre sul server Il pulsante e il chip non vengono visualizzati.
I compiti pane
In una chat di repository, il pulsante checklist in cima alla chat apre la compiti pannello. Elenca ciò che ogni turno ha fatto, il più recente in primo luogo: i file che ha letto e modificato, impegna, i cambiamenti effettuati per la tua recensione, e ogni server esegue con il suo comando, immagine, ora, costo e stato di uscita. Un server che esegue in attesa della tua approvazione può essere consentito o rifiutato dal pannello, lo stesso della sua scheda, e una risposta in esecuzione può essere fermata lì.