Base de coñecemento Código
Executar código nun servidor
Cando o código necesita máis do que o seu dispositivo pode proporcionar -outro idioma, paquetes de Internet, máis tempo- Nymbot pode executalo nun servidor propio, nun recipiente feito para esa execución.
Esta páxina está traducida por máquina para maior comodidade. O orixinal en inglés é a versión que se aplica.
Que é un servidor executado
Un servidor executa un recipiente novo, pon o seu código nel, execútalo, envía de volta o que imprimiu e destrúe o recipiente. polo equilibrio ata o momento en que realmente fuxiu.
Hai dous xeitos en: Xogar en Servidor nun bloque de código, e o servidor executa o que Nymbot pide mentres traballa nunha repositorio.
Para Python ou JavaScript rápido que non necesita nada de Internet, o libre Sandbox no teu dispositivo Normalmente é suficiente.
Executar un bloque de código
Python, JavaScript, TypeScript, shell, Go, Rust, Java e Dart bloques de código nunha resposta teñen un Xogar en Servidor botón, sempre que os servidores estean dispoñibles. Abre unha folla que mostra:
- O Imaxe O código seguirá funcionando,
- un prazo para escoller: 1, 5 ou 15 minutos,
- o máis a carreira pode custar, en créditos Pro, por ese límite de tempo,
- e, se o chat ten arquivos anexados, unha caixa para incluílos.
Prensa Rúa e a saída flúe baixo o bloque de código cando chega: o que imprimiu, o código de saída, canto tempo durou, calquera ficheiro que escribiu (cada un con un salvo botón), e o que foi acusado.
Parada O servidor é pechado inmediatamente e pagas só polo tempo que funcionou.
En unha Modo Anónimo O chat de execución é pagado a partir dos créditos Pro da clave de lanzamento, e os arquivos anexos nunca se inclúen.
Linguas e imaxes
Cada linguaxe é executada nunha imaxe, un sistema preparado coas ferramentas que a lingua necesita.
| Imaxe | Usado para | O que contén | Servizos |
|---|---|---|---|
| Python | Python | Python 3.12 con pip, venv, construír ferramentas e git; numpy, pandas e pytest xa instalados | 0.5 CPU, 4 GB de memoria |
| Node.js | Páxina oficial: JavaScript, TypeScript | Node.js 22 con npm, pnpm e yarn, máis Python 3, facer e un compilador C++ | 0.5 CPU, 4 GB de memoria |
| Polígono | Xogos como Shell, Go, Rust, Java | bash, ferramentas de construción de C e C++, Python 3, Node.js, Go, Rust con carga e Java 17 | 1 CPU, 6 GB de memoria |
| Flutuaría | Dardo | Flutter 3.32 e Dart | 2 CPUs, 8 GB de memoria |
O que custa
O tempo do servidor é facturado en pasos de 10 segundos, desde pedir ao servidor para pechalo, con 10 segundos como mínimo unha execución pode custar. a taxa é o que o servidor dese tamaño custa Nymbot, máis unha marxe, convertida en créditos Pro ao prezo actual Bitcoin.
- O prezo é mostrado na parte frontal, como máximo. Nunca te cobran máis, e unha carreira que remata cedo custa menos.
- O máximo é mantido mentres a carreira está en marcha. Cando remata, a carga real é tomada e o resto é liberado.
- Unha carreira que non comeza é libre.
- Aplicáronse as capas de gasto. Unha carreira que podería pasar por riba dun chat Cabeciño gasto Pregunta primeiro, o mesmo que unha resposta fai.
Porque o prezo segue o prezo de Bitcoin, pode moverse entre o momento en que o vexa e o momento en que preme Run.
Servidor executado nun repositorio
Nun chat con unha repositorio Conectado, o Servizos RUN O chip permite que Nymbot solicite executar comandos contra o seu código, como instalar as dependencias e executar as probas despois dun cambio.
Cada vez que o modelo quere executar algo, a resposta pausa e mostra unha tarxeta coa imaxe, o comando completo, o límite de tempo e o máximo que pode custar, máis que repositorio cando o chat ten varios.
- Permite unha vez Corre contra o repositorio coas edicións que a resposta fixo ata agora, e o modelo recupera o código de saída, o final da saída e a lista de ficheiros que o comando cambiou.
- decrecemento Non custa nada, non custa nada.A resposta continúa sen ela.
Cada execución pregunta.Cada un é cargado por separado da resposta, e a resposta lista as execucións que fixo e o que cada custo. Cabeciño gastoÉ rexeitado antes de que se lle solicite.
Os ficheiros que modifican un comando no servidor permanecen alí e son eliminados co contedor. Non se escriben no seu repositorio. Os cambios no repositorio veñen só das edicións propias da resposta.
O que está illado
- Un container fresco para cada carreira. Nada se comparte con outra execución ou outra persoa, e o recipiente é destruído cando remata a execución, sexa exitosa ou fracasada.
- Non hai internet, excepto os rexistros de paquetes. O contedor pode descargar os paquetes de onde veñen: PyPI, npm e yarn, pub.dev e o almacenamento de Google para Flutter e Dart, o proxy do módulo Go, crates.io, Maven Central e GitHub para dependencias de git e descargas de lanzamento. Só pode descargar. Non pode enviar nada a eles ou alcanzar calquera outro enderezo.
- Só o que elixas entra. O código, os arquivos que incluíu, ou os arquivos do repositorio. As súas chaves, o seu git token e os seus chats nunca entran no recipiente.
- O resultado é tratado como non confiable. Nun repositorio, o que imprime unha execución móstrase ao modelo marcado como datos externos, e díxolle que nunca siga instrucións dentro del.
Limitacións
- Un servidor executa ao mesmo tempo para cada clave. Comezar un segundo mentres o primeiro aínda está en marcha é rexeitado.
- Os límites de tempo de 1, 5 ou 15 minutos para un bloque de código.Unha execución de repositorio pode solicitar ata 15 minutos, ou 20 na imaxe de Flutter.
- Ata 1 MB de código e ata 200 arquivos anexos cun total de 20 MB.
- Un repositorio de ata 60 MB, embalado.
- Ata 256 KB de saída. Todo o pasado que cae, e a execución di iso.
- Ata 200 ficheiros, 8 MB en total, devoltos para gardar.
Os servidores poden ser desactivados para o mantemento, como un todo ou unha imaxe á vez. Xogar en Servidor O botón e o chip non se mostran.
As tarefas pane
Nun chat de repositorio, o botón de lista de verificación na parte superior do chat abre a súa Tarefas pan. Enumera o que cada xiro fixo, o máis recente primeiro: os arquivos que leu e editou, compromete, os cambios realizados para a súa revisión, e cada servidor executa co seu comando, imaxe, tempo, custo e estado de saída. Un servidor executa esperando a súa aprobación pode ser permitido ou rexeitado do panel, o mesmo que da súa tarxeta, e unha resposta en execución pode ser detida alí.