Base de coneixement El codi
Executar el codi en un servidor
Quan el codi necessita més del que el seu dispositiu pot proporcionar -un altre llenguatge, paquets d'Internet, més temps- Nymbot pot executar-lo en un servidor propi, en un contenidor fet per a aquest funcionament.
Aquesta pàgina està traduïda automàticament per comoditat. L'original en anglès és la versió que s'aplica.
Què és un servidor executat
Un servidor executa inicia un recipient fresc, hi col·loca el codi, l'executa, envia de tornada el que ha imprès i destrueix el recipient. Per l’equilibri Fins que realment va córrer.
Hi ha dues maneres en: Corre en el servidor en un bloc de codi, i el servidor s'executa que Nymbot demana mentre funciona en un repositori.
Per Python ràpid o JavaScript que no necessita res d'Internet, el lliure Sandbox al teu dispositiu Normalment és suficient.
Executar un bloc de codi
Els blocs de codi de Python, JavaScript, TypeScript, shell, Go, Rust, Java i Dart en una resposta tenen un Corre en el servidor El botó, cada vegada que hi ha un servidor disponible, obre un full que mostra:
- El Imatge El codi s’executarà,
- un termini de temps per triar: 1, 5 o 15 minuts,
- el màxim que pugui costar l'execució, en crèdits Pro, per aquest límit de temps,
- i, si el xat té fitxers adjunts, una casella per incloure'ls.
Premsa Córrer i la sortida flueix sota el bloc de codi quan arriba: el que va imprimir, el codi de sortida, quant de temps va durar, qualsevol arxiu que va escriure (cadascun amb una Salvació bàsic) i en què es va fer càrrec.
Parada El servidor es tanca immediatament i vostè només paga pel temps que va córrer.
En un Modalitat anònima El xat és pagat a partir dels crèdits Pro de la clau llançada, i els arxius adjunts mai no s'inclouen.
Llengües i imatges
Cada llengua s'executa en una imatge, un sistema preparat amb les eines que necessita la llengua.
| Imatge | Utilitzat per | Què conté | Servei |
|---|---|---|---|
| Python | Python | Python 3.12 amb pip, venv, build tools i git; numpy, pandas i pytest ja instal·lats | 0.5 CPU, 4 GB de memòria |
| Node.js | JavaScript i TypeScript | Node.js 22 amb npm, pnpm i filferro, més Python 3, i un compilador de C++ | 0.5 CPU, 4 GB de memòria |
| Poliglot | Shell, Go, Rust i Java | bash, C i C++, Python 3, Node.js, Go, Rust amb càrrega i Java 17 | 1 CPU, 6 GB de memòria |
| Flotador | Dart | Flutter 3.32 i Dart | 2 CPU, 8 GB de memòria |
Què costa
El temps del servidor es factura en passos de 10 segons, des de demanar al servidor fins a tancar-lo, amb 10 segons com a mínim una execució pot costar.
- El preu es mostra a la part frontal, com a màxim. No et carreguen mai més, i una cursa que acabi abans costa menys.
- El màxim es manté mentre la cursa continua. Quan s'acaba, la càrrega real es pren i la resta es deslliura.
- Una cursa que no comença és gratuïta.
- S’apliquen els caps de despesa. Una cursa que podria passar a través d'un chat Despesa cap Pregunta primer, de la mateixa manera que una resposta.
Com que el preu segueix el preu de Bitcoin, es pot moure entre el moment en què el veieu i el moment en què premeu Run. Si va pujar, res funciona: la fulla s'obre de nou amb el nou preu per a vostè a comprovar.
El servidor s'executa en un repositori
En una conversa amb un repositori Connectats, els Servidors en marxa El xip permet a Nymbot demanar a executar comandes contra el codi, com ara instal·lar les dependències i executar les proves després d'un canvi.
Cada vegada que el model vol executar alguna cosa, la resposta es pausa i mostra una targeta amb la imatge, el comandament complet, el límit de temps i el màxim que pugui costar, a més de quin repositori quan el xat té diversos.
- Permet una vegada S'executa contra el repositori amb les edicions que la resposta ha fet fins ara, i el model rep de nou el codi de sortida, el final de la sortida i la llista de fitxers que el comandament ha canviat.
- Disminució No costa res i la resposta no s’acaba.
Cada execució demana.Cada una es carrega per separat de la resposta, i la resposta enumera les execucions que va fer i el que cada cost. Despesa capEs rebutja abans de ser demanat.
Els arxius amb canvis de comandament al servidor es queden allà i es llencen amb el contenidor. No s'escriuen al vostre repositori. Els canvis al repositori només provenen de les edicions pròpies de la resposta.
Què és l’aïllament
- Un contenidor fresc per a cada curs. No es comparteix res amb un altre corredor o una altra persona, i el contenidor es destrueix quan acaba el corredor, ja sigui que hagi tingut èxit o fracassat.
- No hi ha internet, excepte els registres de paquets. El contenidor es pot descarregar des dels llocs on els paquets provenen de: PyPI, npm i yarn, pub.dev i l'emmagatzematge de Google per a Flutter i Dart, el proxy del mòdul Go, crates.io, Maven Central i GitHub per a les dependències de git i llançar descàrregues.
- Només el que has triat entra. El codi, els arxius que has inclòs, o els arxius del repositori. Les teves claus, el teu git token i els teus xats mai entren al contenidor.
- El resultat és tractat com a no confiat. En un repositori, el que imprimeix una execució es mostra al model marcat com a dades externes, i se li diu que mai no segueixi instruccions dins d'ell.
Limitació
- Un servidor s'executa alhora per a cada clau. Començar un segon mentre el primer encara està en marxa es nega.
- Límits de temps d'1, 5 o 15 minuts per a un bloc de codi. Una execució de repositori pot demanar fins a 15 minuts, o 20 en la imatge de Flutter.
- Fins a 1 MB de codi i fins a 200 arxius adjunts amb un total de 20 MB.
- Un repositori de fins a 60 MB, embalat.
- Fins a 256 KB de sortida. Qualsevol cosa passada que s'hagi caigut, i l'execució ho diu.
- Fins a 200 arxius, 8 MB en total, retornats per guardar.
Els servidors es poden desactivar per manteniment, com a tot o una imatge alhora. Corre en el servidor El botó i el xip no es mostren.
Les tasques del panell
En un xat de repositori, el botó de la llista de comprovació a la part superior del xat obre el tasques pan. Llista el que cada torn va fer, el més nou primer: els arxius que va llegir i editar, es comprometen, canvis estacionats per a la seva revisió, i cada servidor s'executa amb el seu comandament, imatge, temps, cost i estat d'execució. Un servidor que s'executa esperant la seva aprovació pot ser permès o rebutjat del panell, el mateix que de la seva targeta, i una resposta en execució es pot aturar allà.