程式代碼解釋器 AI 代理程式工具
重要
這項功能處於 公開預覽階段。
本文說明如何使用馬賽克 AI 代理程式架構建立 AI 代理程式的程式代碼解釋器工具。 程式代碼解釋器可讓代理程式執行由互動使用者提供的任意程式代碼、從程式代碼基底擷取,或由代理程式撰寫。
若要深入瞭解代理程式工具,請參閱 建立 AI 代理程式工具。
內建 Python 執行程式工具
Azure Databricks 提供內建的 Python 執行程式工具,可讓 AI 代理程式執行 Python 程式代碼。 根據預設,Unity Catalog 函式 system.ai.python_exec
可供使用,而且可以像任何其他 Unity Catalog 函式工具一樣使用。
Python 執行程式工具
下列範例會重新建立內建工具,system.ai.python_exec
,讓代理程序執行 Python 程式代碼。
在筆記本數據格中執行下列程序代碼。 它使用 %sql
筆記本魔法來建立一個名為 python_exec
的 Unity Catalog 函式。
%sql
CREATE OR REPLACE FUNCTION main.default.python_exec (
code STRING COMMENT "Python code to execute. Ensure that all variables are initialized within the code, and import any necessary standard libraries. The code must print the final result to stdout. Do not attempt to access files or external systems."
)
RETURNS STRING
LANGUAGE PYTHON
COMMENT "Executes Python code in a stateless sandboxed environment and returns its stdout. The runtime cannot access files or read previous executions' output. All operations must be self-contained, using only standard Python libraries. Calls to other tools are prohibited."
AS $$
import sys
from io import StringIO
stdout = StringIO()
stderr = StringIO()
sys.stdout = stdout
sys.stderr = stderr
try:
exec(code, {})
except SyntaxError as e: # try escaping characters
code = code.encode('utf-8').decode('unicode_escape')
exec(code, {})
return stdout.getvalue() + stderr.getvalue()
$$
後續步驟
建立代理程式工具之後,請將此工具新增至 AI 代理程式。 請參閱 將 Unity Catalog 工具新增至代理程式。