Ir ao contido
Volver a Nymbot

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.

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.

ImaxeUsado paraO que conténServizos
PythonPythonPython 3.12 con pip, venv, construír ferramentas e git; numpy, pandas e pytest xa instalados0.5 CPU, 4 GB de memoria
Node.jsPáxina oficial: JavaScript, TypeScriptNode.js 22 con npm, pnpm e yarn, máis Python 3, facer e un compilador C++0.5 CPU, 4 GB de memoria
PolígonoXogos como Shell, Go, Rust, Javabash, ferramentas de construción de C e C++, Python 3, Node.js, Go, Rust con carga e Java 171 CPU, 6 GB de memoria
FlutuaríaDardoFlutter 3.32 e Dart2 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í.