Passer au contenu
Retour à Nymbot

Base de connaissances Le code

Exécuter le code sur un serveur

Lorsque le code a besoin de plus que votre appareil ne peut le fournir - une autre langue, des paquets d'Internet, plus de temps - Nymbot peut l'exécuter sur un serveur de son propre, dans un conteneur conçu pour cette exécution.

Qu’est-ce qu’un Server Run

Un serveur lance un nouveau conteneur, y met votre code, l'exécute, renvoie ce qu'il a imprimé et détruit le conteneur. pour l’équilibre Pendant ce temps-là, il a réellement couru.

Il y a deux façons dans : Réserver sur le serveur sur un bloc de code, et le serveur s'exécute que Nymbot demande pendant qu'il fonctionne dans un dépôt.

Pour Python rapide ou JavaScript qui n'a besoin de rien d'Internet, le gratuit Sandbox sur votre appareil C’est généralement suffisant.

Exécuter un bloc de code

Python, JavaScript, TypeScript, shell, Go, Rust, Java et Dart blocs de code dans une réponse ont un Réserver sur le serveur bouton, chaque fois que les serveurs sont disponibles. Il ouvre une feuille montrant:

  • Le image Le code s’affiche,
  • un délai à choisir : 1, 5 ou 15 minutes,
  • le plus la course peut coûter, en crédits Pro, pour ce délai,
  • et, si le chat a des fichiers joints, une case pour les inclure.

presse courir et la sortie coule sous le bloc de code au fur et à mesure qu'il arrive: ce qu'il a imprimé, le code de sortie, combien de temps il a duré, tous les fichiers qu'il a écrits (chacun avec un Sauvons Bouton) et ce qu’il a été chargé.

Stop à Le serveur est fermé immédiatement et vous ne payez que pour le temps qu'il a couru. arrêté avant le démarrage du serveur, il ne coûte rien.

dans un mode anonyme Le chat est payé à partir des crédits Pro de la clé jetable, et les fichiers joints ne sont jamais inclus.

Langues et images

Chaque langue fonctionne sur une image, un système prêt-à-faire avec les outils dont la langue a besoin.

ImagerieUtilisé pourCe qu’il contientserveur
PythonPythonPython 3.12 avec pip, venv, build tools et git; numpy, pandas et pytest déjà installés1 CPU, 4 Go de mémoire
Node.jsJavaScript et TypeScriptNode.js 22 avec npm, pnpm et fil, plus Python 3, make et un compilateur C++1 CPU, 4 Go de mémoire
PolyglotShell, Go, Rust et Javabash, C et C++ build tools, Python 3, Node.js, Go, Rust with cargo, et Java 171 CPU, 6 Go de mémoire
FlutterDartFlutter 3.32 et Dart2 CPU et 8 GB de mémoire

Ce que ça coûte

Le temps du serveur est facturé en étapes de 10 secondes, de demander au serveur de le fermer, avec 10 secondes comme le moins un cours peut coûter. le taux est ce que le serveur de cette taille coûte Nymbot, plus une marge, convertie en crédits Pro au prix Bitcoin actuel.

  • Le prix est indiqué à l’avant, au maximum. Vous n'êtes jamais facturé plus, et une course qui se termine tôt coûte moins.
  • Le maximum est maintenu pendant que la course est en cours. Lorsqu'il est terminé, la charge réelle est prise et le reste est libéré.
  • Une course qui ne démarre pas est gratuite.
  • Les caps de dépenses s’appliquent. Une course qui pourrait aller au-delà d'un chat dépenses cap Demandez d'abord, de la même manière qu'une réponse fait.

Parce que le prix suit le prix du Bitcoin, il peut se déplacer entre le moment où vous le voyez et le moment où vous appuyez sur Run.

Un serveur s’exécute dans un répertoire

Dans un chat avec un dépôt Connectés, les Serveur à courir Le chip permet à Nymbot de demander à exécuter des commandes contre votre code, comme installer les dépendances et exécuter les tests après un changement.

Chaque fois que le modèle veut exécuter quelque chose, la réponse s'arrête et affiche une carte avec l'image, la commande complète, la limite de temps et le maximum qu'elle peut coûter, plus quel dépôt lorsque la conversation a plusieurs.

  • Permettez une fois Il s'exécute contre le dépôt avec les modifications que la réponse a effectuées jusqu'à présent, et le modèle reçoit le code de sortie, la fin de la sortie et la liste des fichiers que la commande a changés.
  • déclin Rien ne coûte et rien ne coûte.La réponse se poursuit sans elle.

Chaque course demande. chacune est facturée séparément de la réponse, et la réponse liste les courses qu'elle a faites et ce que coûte chacune. dépenses capIl est refusé avant d’être demandé.

Les fichiers qui modifient une commande sur le serveur restent là et sont jetés avec le conteneur. Ils ne sont pas écrits dans votre dépôt. Les changements dans le dépôt ne proviennent que des modifications de la réponse.

Ce qui est isolé

  • Un conteneur frais pour chaque course. Rien n'est partagé avec une autre course ou une autre personne, et le conteneur est détruit lorsque la course se termine, qu'elle ait réussi ou échoué.
  • Pas d'internet, sauf les registres de paquets. Le conteneur peut télécharger des endroits où les paquets proviennent de: PyPI, npm et yarn, pub.dev et le stockage de Google pour Flutter et Dart, le module proxy Go, crates.io, Maven Central et GitHub pour les dépendances git et les téléchargements de sortie.
  • Seul ce que vous choisissez entre. Le code, les fichiers que vous avez inclus, ou les fichiers du dépôt. Vos clés, votre git token et vos chats n'entrent jamais dans le conteneur.
  • La production est traitée comme non fiable. Dans un dépôt, ce qu’une exécution imprime est montré au modèle marqué comme des données externes, et il est dit de ne jamais suivre les instructions à l’intérieur.

limites

  • Un serveur s'exécute à la fois pour chaque clé. Démarrer un deuxième alors que le premier est toujours en cours de fonctionnement est refusé.
  • Une exécution de dépôt peut demander jusqu'à 15 minutes, ou 20 minutes sur l'image Flutter.
  • Jusqu'à 1 Mo de code, et jusqu'à 200 fichiers joints totalisant 20 Mo.
  • Un répertoire jusqu'à 60 MB, emballé.
  • Jusqu'à 256 KB de sortie. Tout ce qui a été perdu, et la course le dit.
  • Jusqu'à 200 fichiers, 8 MB au total, retournés pour enregistrer.

Les serveurs peuvent être désactivés pour la maintenance, en tant qu'ensemble ou une image à la fois. Réserver sur le serveur Le bouton et le chip ne sont pas affichés.

Les tâches pane

Dans un chat de répertoire, le bouton de checklist en haut du chat ouvre son Tâches panneau. Il répertorie ce que chaque tour a fait, le plus récent d'abord: les fichiers qu'il a lus et modifiés, les engagements, les changements mis en scène pour votre examen, et chaque serveur s'exécute avec son commandement, image, heure, coût et état de sortie. Un serveur s'exécute en attente de votre approbation peut être autorisé ou rejeté du panneau, le même que de sa carte, et une réponse en cours peut être arrêtée là.