跳至內容
回到 Nymbot

知識庫 程式碼

在伺服器上執行程式碼

當程式碼的需求超過了您裝置所能提供的能力時——另一種語言、來自網路的套件、更多時間——Nymbot 可以將其在自己的伺服器上運行,並在專為該次執行而建立的容器中執行。

什麼是伺服器運行 (server run)

一次伺服器執行會啟動一個全新的容器,將您的程式碼放入其中,執行它,回傳其列印出的內容,並銷毀該容器。在開始之前,您可以看到可能產生的最高費用,而您將從您的... 專業平衡 就其實際運行的時間。

有兩種進入方式: 在伺服器上執行 在程式碼區塊中,且伺服器在其中執行 Nymbot 所要求的內容 儲存庫.

對於不需要從網路獲取任何內容的快速 Python 或 JavaScript,免費的 您裝置上的沙盒 通常就夠了。

執行程式碼區塊

回覆中的 Python、JavaScript、TypeScript、shell、Go、Rust、Java 和 Dart 程式碼區塊具有 在伺服器上執行 按鈕在伺服器執行時皆可用。它會開啟一個顯示以下內容的工作表:

  • 這 圖像 程式碼將在以下環境執行,
  • 可選擇的時限:1、5 或 15 分鐘,
  • 在該時間限制內,消耗 Pro 點數最高可能達到多少?
  • 而且,如果對話附帶了檔案,則有一個包含它們的框。只有在您勾選時,它們才會被包含在內。

按下 執行 並且輸出會在程式碼區塊下方隨著抵達而串流顯示: 它所印出的內容、結束代碼、執行時間、它所寫入的任何檔案(每個檔案都附帶一個 儲存 按鈕),以及收取的費用。

停止 在任何時間點結束運行。伺服器會立即關閉,且您只需支付運行期間的費用。若在伺服器啟動前停止,則不收取任何費用。

在一個 匿名模式 聊天執行是從拋棄式 密鑰的 Pro 點數中支付的,且不會包含附件檔案。

語言與圖像

每種語言都運行在一個映像檔上,這是一個包含了該語言所需工具的現成系統。 較大的映像檔運行在較大的伺服器上,且每分鐘的成本也更高。

圖像用於它包含什麼伺服器
PythonPythonPython 3.12 包含 pip、venv、build tools 與 git;已安裝 numpy、pandas 與 pytest0.5 CPU, 4 GB 記憶體
Node.jsJavaScript, TypeScriptNode.js 22 以及 npm、pnpm 和 yarn,加上 Python 3、make 和 C++ 編譯器0.5 CPU, 4 GB 記憶體
通曉多種語言的人Shell, Go, Rust, Javabash、C 與 C++ 建置工具、Python 3、Node.js、Go、Rust (含 cargo) 以及 Java 171 個 CPU,6 GB 記憶體
Flutter飛鏢Flutter 3.32 與 Dart2 個 CPU, 8 GB 記憶體

費用是多少

伺服器時間的計費方式是以 10 秒為一個單位,從請求伺服器到關閉伺服器, 每次運行的最低費用為 10 秒。費率是該規模伺服器的 Nymbot 成本, 加上利潤後,再根據目前的比特幣價格轉換為 Pro 積分。

  • 價格會預先顯示,並以最高值呈現。 是以該費率計算整個時間限制。您永遠不會被收取更多費用,且提前完成的行程費用較低。
  • 在運行期間會保持最大值。 當結束時,會扣除實際 費用,並退還餘額。
  • 無法啟動的執行是免費的。
  • 適用支出上限。 一段可能超出聊天範圍的運行 支出上限 先詢問,就像回覆一樣。

由於價格隨比特幣價格波動,它可能會在你看到價格到你按下「執行」的瞬間之間發生變化。如果價格上漲,則不會執行:試算表會再次開啟並顯示新價格供你檢查。

伺服器在儲存庫中執行

在與一個人的對話中 儲存庫 已連接,the 伺服器 運行 chip 讓 Nymbot 可以請求對您的程式碼執行指令,例如在變更後安裝 依賴項目並執行測試。根據 chat 的說明,此功能預設為關閉,直到您開啟為止。

每當模型想要執行某些內容時,回覆會暫停並顯示一張卡片,其中包含圖片、 完整指令、時間限制和最高可能成本,以及在有多個聊天室時指定的是哪個儲存庫。 在您回答之前,不會執行任何操作:

  • 允許一次 執行該指令。它針對目前回覆所做的修改後的儲存庫進行執行,模型會取得結束代碼、輸出的末端以及指令所更改的文件列表。接著回覆會繼續執行。
  • 拒絕 不運行任何內容,也不花費任何成本。回覆會在其不影響的情況下繼續進行。

每一次執行都會詢問。每一次都會與回覆分開計費,而回覆會列出所進行的執行次數以及各自的費用。如果一次執行超出了對話的 支出上限,在要求你之前,它就已被拒絕了。

在伺服器上執行的指令所產生的檔案會保留在該處,並隨著容器一起被捨棄。 這些檔案不會寫入您的儲存庫。儲存庫的變更僅來自於回覆本身的編輯。

什麼是隔離

  • 每次運行都使用全新的容器。 沒有任何內容會與另一個執行過程或其他人員共享,且無論執行成功或失敗,容器都會在執行結束時被銷毀。
  • 除了套件註冊表之外,禁止連接網路。 該容器可以從套件來源處進行下載:PyPI、npm 與 yarn、pub.dev 以及 Google 用於 Flutter 和 Dart 的儲存空間、Go module proxy、crates.io、Maven Central,以及用於 git 依賴項和發布版本下載的 GitHub。它只能進行下載,無法向這些地方發送任何內容,也無法連線至任何其他地址。
  • 只有你選擇的東西才會進去。 程式碼、您包含的檔案或 儲存庫中的檔案。您的金鑰、您的 git token 以及您的對話內容永遠不會進入 容器中。
  • 輸出被視為不可信。 在一個儲存庫中,執行內容所印出的東西 會被標記為外部數據顯示給模型,並告知其絕對不要遵循 其中包含的指令。

限制

  • 每個金鑰一次只能運行一個伺服器。在第一個伺服器仍在運行時啟動第二個伺服器會被拒絕。
  • 程式碼區塊的時間限制為 1、5 或 15 分鐘。儲存庫執行最多可要求 15 分鐘,若使用 Flutter 映像檔則可達 20 分鐘。
  • 最多 1 MB 的程式碼,以及最多 200 個附件,總計 20 MB。
  • 一個容量達 60 MB 的壓縮儲存庫。
  • 最多 256 KB 的輸出。超過此限制的部分將會被捨棄,且執行程序會進行說明。
  • 最多 200 個檔案,總計 8 MB,傳回以儲存。

伺服器運行可以為了維護而關閉,可以整機關閉或一次關閉一個映像檔。當它們 關閉時, 在伺服器上執行 按鈕和晶片沒有顯示。

工作階段窗格

在儲存庫聊天室中,聊天室頂端的檢核清單按鈕會開啟其 任務 面板。它列出了每一輪的操作,由新到舊排序:讀取與編輯的文件、提交、等待您審核的暫存變更,以及每次伺服器執行的指令、映像檔、時間、成本與結束狀態。等待您批准的伺服器執行可以在面板中允許或拒絕(與在卡片上操作相同),正在進行的回覆也可以在那裡停止。工作完成後,大綱會保留在對話中。