Skip to main content
Azure容器应用动态会话提供了在Hyper-V隔离沙盒中安全、可扩展地运行Python代码解释器的方式。这使您的代理能够在安全环境中运行可能不受信任的代码。代码解释器环境包含许多流行的Python包,如NumPy、pandas和scikit-learn。有关会话工作原理的详细信息,请参阅Azure容器应用文档

设置

默认情况下,SessionsPythonREPLTool工具使用DefaultAzureCredential来与Azure进行身份验证。本地运行时,它将使用您在Azure CLI或VS Code中的凭据进行身份验证。安装Azure CLI并使用az login登录以进行身份验证。 要使用代码解释器,您还需要创建一个会话池,您可以按照会话池创建说明进行操作。完成后,您将获得一个池管理会话端点,您需要在下面设置此端点:
您还需要安装langchain-azure-dynamic-sessions包:

使用工具

实例化并使用工具:
调用该工具将返回一个json字符串,包含代码执行结果以及任何stdout和stderr输出。要获取原始的字典结果,请使用execute()方法:

上传数据

如果我们希望对特定数据进行计算,可以使用upload_file()功能将数据上传到我们的会话。您可以通过data: BinaryIO参数或local_file_path: str参数(指向您系统上的本地文件)上传数据。数据会自动上传到会话容器的”/mnt/data/“目录中。您可以通过upload_file()返回的upload metadata获取完整的文件路径。

处理图像结果

动态会话的结果可以包含作为base64编码字符串的图像输出。在这种情况下,‘result’的值将是一个字典,包含键”type”(将为”image”)、“format”(图像的格式)和”base64_data”。
我们可以解码图像数据并显示它: