Saltar al contenido
Volver a Nymbot

base de conocimientos Código

Ejecutar código en un servidor

Cuando el código necesita más de lo que su dispositivo puede proporcionar - otro idioma, paquetes de Internet, más tiempo - Nymbot puede ejecutarlo en un servidor propio, en un contenedor hecho para ese ejecutar.

Qué es un servidor Run

Un servidor de ejecución inicia un contenedor nuevo, pone su código en él, lo ejecuta, envía de vuelta lo que imprimió y destruye el contenedor. por el equilibrio En el momento en que realmente corrió.

Hay dos maneras en: Corre en el servidor en un bloque de código, y el servidor ejecuta lo que Nymbot pide mientras repositorio.

Para Python rápido o JavaScript que no necesita nada de Internet, el Sandbox en tu dispositivo Por lo general es suficiente.

Ejecutar un bloque de código

Python, JavaScript, TypeScript, shell, Go, Rust, Java y Dart bloques de código en una respuesta tienen un Corre en el servidor botón, siempre que los servidores estén disponibles. Se abre una hoja que muestra:

  • El Imagen El código seguirá funcionando,
  • un límite de tiempo para elegir: 1, 5 o 15 minutos,
  • el máximo que la carrera puede costar, en créditos Pro, por ese límite de tiempo,
  • y, si el chat tiene archivos adjuntos, una casilla para incluirlos.

Prensa Corriendo y la salida fluye por debajo del bloque de código cuando llega: lo que imprimió, el código de salida, cuánto tiempo duró, cualquier archivo que escribió (cada uno con una Salvar botón), y a lo que se le acusó.

parada termina la ejecución en cualquier momento.El servidor se cierra inmediatamente y usted paga solo por el tiempo que se ejecutó.

En un Modo Anónimo El chat de ejecución se paga a partir de los créditos Pro de la llave de lanzamiento, y los archivos adjuntos nunca se incluyen.

Idiomas y imágenes

Cada lenguaje se ejecuta en una imagen, un sistema preparado con las herramientas que el lenguaje necesita.

ImagenUsado paraLo que contieneServidor
PythonPythonPython 3.12 con pip, venv, build tools y git; numpy, pandas y pytest ya instalados0,5 CPU, 4 GB de memoria
Node.jsJavaScript y TypeScriptNode.js 22 con npm, pnpm y yarn, más Python 3, hacer y un compilador de C++0,5 CPU, 4 GB de memoria
PoliglotaShell, Go, Rust y JavaBash, C y C++ build tools, Python 3, Node.js, Go, Rust con carga, y Java 171 CPU, 6 GB de memoria
FlotadorDartFlutter 3.32 y Dart2 CPU y 8 GB de memoria

Qué cuesta

El tiempo del servidor se factura en pasos de 10 segundos, desde pedir al servidor para cerrarlo, con 10 segundos como mínimo una ejecución puede costar.La tasa es lo que el servidor de ese tamaño cuesta Nymbot, más un margen, convertido en créditos Pro al precio actual de Bitcoin.

  • El precio se muestra en la parte frontal, como máximo. Nunca te cargan más, y una carrera que termina temprano cuesta menos.
  • El máximo se mantiene mientras la carrera continúa. Cuando termina, se toma la carga real y el resto se libera.
  • Una carrera que no comienza es gratuita.
  • Se aplican las capas de gasto. Una carrera que podría pasar por encima de un chat Gasto Cap Pregunta primero, igual que una respuesta hace.

Debido a que el precio sigue el precio de Bitcoin, puede moverse entre el momento en que lo veas y el momento en el que pulse Run. Si subió, nada corre: la hoja se abre de nuevo con el nuevo precio para que usted compruebe.

El servidor funciona en un repositorio

En un chat con un repositorio Conectado, el Servicio RUN El chip permite que Nymbot le pida que ejecute comandos contra su código, como instalar las dependencias y ejecutar las pruebas después de un cambio.

Cada vez que el modelo quiere ejecutar algo, la respuesta se pausa y muestra una tarjeta con la imagen, el comando completo, el límite de tiempo y el máximo que puede costar, más qué repositorio cuando el chat tiene varios.

  • Permite una vez Se ejecuta contra el repositorio con las ediciones que la respuesta ha hecho hasta ahora, y el modelo recupera el código de salida, el final de la salida y la lista de archivos que el comando cambió.
  • decrecimiento No cuesta nada, no cuesta nada.La respuesta se lleva a cabo sin ella.

Cada una de ellas es cargada por separado de la respuesta, y la respuesta lista las carreras que hizo y qué cuesta cada una. Gasto CapSe le rechaza antes de que se le pida.

Los archivos de un cambio de comando en el servidor permanecen allí y se eliminan con el contenedor. No se escriben en su repositorio. Los cambios en el repositorio solo provienen de las ediciones propias de la respuesta.

Lo que está aislado

  • Un contenedor fresco para cada recorrido. Nada se comparte con otra carrera o otra persona, y el contenedor se destruye cuando termina la carrera, ya sea que haya tenido éxito o fracasado.
  • No hay Internet, excepto los registros de paquetes. El contenedor puede descargarse desde los lugares de los paquetes provenientes de: PyPI, npm y yarn, pub.dev y el almacenamiento de Google para Flutter y Dart, el proxy del módulo Go, crates.io, Maven Central y GitHub para dependencias de git y descargas de lanzamiento. Solo puede descargar. No puede enviar nada a ellos ni alcanzar ninguna otra dirección.
  • Sólo lo que usted elige entra. El código, los archivos que incluyó, o los archivos del repositorio. Sus llaves, su git token y sus chats nunca entran en el contenedor.
  • El resultado es tratado como no confiable. En un repositorio, lo que imprime un run se muestra al modelo marcado como datos externos, y se le dice que nunca siga las instrucciones dentro de él.

Limitaciones

  • Un servidor se ejecuta a la vez para cada tecla. Comenzar un segundo mientras el primero todavía está en marcha se rechaza.
  • Los límites de tiempo de 1, 5 o 15 minutos para un bloque de código. Una ejecución de repositorio puede solicitar hasta 15 minutos, o 20 en la imagen de Flutter.
  • Hasta 1 MB de código, y hasta 200 archivos adjuntos con un total de 20 MB.
  • Un repositorio de hasta 60 MB, envasado.
  • Hasta 256 KB de salida. cualquier cosa pasada que se caiga, y la salida lo dice.
  • Hasta 200 archivos, 8 MB en total, devueltos para guardar.

Los servidores pueden ser desactivados para el mantenimiento, como un todo o una imagen a la vez. Corre en el servidor El botón y el chip no se muestran.

Las tareas pan

En un chat de repositorio, el botón de lista de verificación en la parte superior del chat abre su Tareas pan. Enumera lo que cada turno hizo, primero lo más reciente: los archivos que lee y edita, compromete, modificaciones escalonadas para su revisión, y cada servidor ejecuta con su comando, imagen, hora, coste y estado de salida. Un servidor ejecuta esperando su aprobación puede ser permitido o rechazado desde el panel, lo mismo que de su tarjeta, y una respuesta en curso puede detenerse allí.