跳至主要內容

指南

託管執行

託管執行在 Oloproof 的工作節點而不是你的機器上執行你的套件,你可以在作業頁面或終端機中查看它。你只需要 oloproof login;不需要資料庫連線,也不需要自己的執行器。

工作節點會執行什麼

工作節點透過 HTTP 呼叫你的系統。在 oloproof.yaml 中用 http: 宣告它(設定):

system:
  name: support-bot
  version: v3
  http:
    url: https://support-bot.example.com/answer
    output_path: answer

工作節點會拒絕:

  • callable: 或 rag: 系統,在作業排入佇列之前即被拒絕。那是你的程式碼,而 Oloproof 的工作節點不執行客戶程式碼;請在自己的機器上執行(oloproof run)並推送該執行,或在你自己營運的執行器上執行。
  • recorded: 回答檔案。它留在你的機器上;請用 oloproof run 在本機執行。
  • 不在公共網際網路上的位址:localhost、單一標籤名稱、私有位址、鏈路本地位址或雲端中繼資料位址。每次呼叫都會在發出時檢查,因此這樣的案例會報錯而不會到達該位址;工作節點只能到達網際網路上任何人都能到達的地方。
  • 產生的攻擊案例,除非 oloproof.yaml 宣告了 adversarial: {sandboxed: true}(產生攻擊)。--allow-adversarial 只適用於本機執行。

執行一次

oloproof login
oloproof run --cloud --max-runtime 900

run --cloud 將套件的案例傳送到工作區(託管執行無法執行它沒有的案例),然後將作業排入佇列,並印出查看它的位置。工作區已完整持有的套件不會再次傳送。

worker 在保留套件之前會將每個案例與其摘要核對,並拒絕不相符的套件。因此,即使專案為隱去內容而對摘要加了金鑰(egress:,結果與執行),run --cloud 也像 worker 一樣以不加金鑰的方式計算案例摘要:案例無論如何都會完整傳送,加金鑰也隱藏不了什麼。所以託管執行的套件與同一專案的本機執行所記錄的套件是不同的套件。工作區已持有(來自 push 的)加金鑰證據的專案會被拒絕:請用 oloproof run 執行它並推送該執行。

--max-runtime 是作業的截止時間,以秒為單位,最長一天,若你的方案限制更短則以方案為準。oloproof.yaml 中的 budget: 在工作節點上與在本機一樣具有約束力。

誰可以執行:工作區的 Owner、Admin 或 Member。Reviewer 不可以。

查看它

專案的作業頁面會在每個作業的案例到達時顯示它們:已執行和已評判的數量、每項檢查的通過與失敗計數,以及最新的案例。計數只是目前為止的數量,不是結果。判定在整個執行儲存後才會得出,隨後顯示在該執行的頁面上。

在終端機中:

oloproof job JOB_ID --follow

每隔幾秒印出相同的計數,然後印出執行的閘門,並以閘門的結束代碼結束,因此管線可以像等待本機執行一樣等待託管執行(CI)。不加 --follow 時,job 只報告一次;仍在執行的作業以 2 結束,因為它還不是判定。--cancel 會立即停止佇列中的作業,並在下一次呼叫之前停止執行中的作業,保留已完成的案例。

評判模型的金鑰

呼叫模型供應商的評判模型或系統需要在工作節點上有其金鑰。儲存一次即可:

export OPENAI_API_KEY=...
oloproof credentials set OPENAI_API_KEY
oloproof credentials list

金鑰從環境變數或標準輸入讀取,絕不從命令列讀取。它由工作節點加密,只有執行此工作區作業的工作節點才能讀取;任何人都無法讀回它,credentials list 只顯示名稱。隨後評估器的 api_key_env: OPENAI_API_KEY 就能找到它。託管作業不讀取其他任何環境變數。只有 Owner 或 Admin 可以儲存金鑰。

這無法告訴你的

  • 你的系統從 Oloproof 的網路存取時是否與從你的網路存取時表現相同。工作節點從公共網際網路呼叫你的端點;對它區別對待的速率限制、區域和允許清單會改變它所量測的內容。
  • 關於工作節點未執行的程式碼的任何事情。託管執行量測的是你指定的端點,而不是其背後的程式碼。

評估無法告訴你的內容中的其他所有限制在這裡同樣適用。