以编程方式使用文档

本指南提供快速入门 DaytonaDataAnalysisTool.

概述

详情

可序列化JS 支持
DaytonaDataAnalysisToollangchain-daytona-data-analysis

功能

  • - 🔒 **安全的沙箱执行** - 在隔离环境中运行 Python 代码
  • - 🐍 **Python 数据分析** - 使用完整的 Python 功能执行数据分析任务
  • - 📁 **文件管理** - Upload and download files to/from the sandbox
  • - 🔄 **多步骤工作流** - 支持复杂的多步骤数据分析流程
  • - 🎯 **自定义结果处理** - 使用回调处理执行结果
  • - 📦 **包管理** - 在沙箱中动态安装 Python 包

设置

要访问 DaytonaDataAnalysisTool,您需要创建一个 Daytona 账户,获取一个 API 密钥,并安装 langchain-daytona-data-analysis 集成包。

凭证

您必须为 Daytona 配置凭证。有三种方式:

**1. 设置 DAYTONA_API_KEY 环境变量:**

**2. 将其添加到 .env 项目根目录的文件中:**

DAYTONA_API_KEY=your-daytona-api-key

**3. 在实例化时直接传递 API 密钥 DaytonaDataAnalysisTool:**

tool = DaytonaDataAnalysisTool(daytona_api_key="your-daytona-api-key")

It's also helpful (but not needed) to set up LangSmith for best-in-class observability/追踪 的工具调用追踪。要启用自动追踪,请设置您的 LangSmith API 密钥:

os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"

安装

位于 DaytonaDataAnalysisToollangchain-daytona-data-analysis package:

从 PyPI 安装

直接从 PyPI 安装包:

pip install langchain-daytona-data-analysis
uv add langchain-daytona-data-analysis
poetry add langchain-daytona-data-analysis

从 GitHub 安装

从 GitHub 安装最新的开发版本:

pip install git+https://github.com/daytonaio/langchain_daytona_data_analysis
uv add git+https://github.com/daytonaio/langchain_daytona_data_analysis
poetry add git+https://github.com/daytonaio/langchain_daytona_data_analysis

实例化

导入并实例化工具:

from langchain_daytona_data_analysis import DaytonaDataAnalysisTool
from daytona import ExecutionArtifacts

# Optionally, you can pass an on_result callback.
# This callback lets you apply custom logic to the data analysis result.
# For example, you can save outputs, display charts, or trigger other actions.
def process_data_analysis_result(result: ExecutionArtifacts):
    print(result)

tool = DaytonaDataAnalysisTool(
    daytona_api_key="your-daytona-api-key", # Only pass if not set as DAYTONA_API_KEY environment variable
    on_result=process_data_analysis_result
)

调用

直接调用

tool.invoke({'data_analysis_python_code': "print('Hello World')"})

As a ToolCall

model_generated_tool_call = {
    "args": {'data_analysis_python_code': "print('Hello World')"},
    "id": "1",
    "name": tool.name,
    "type": "tool_call",
}

tool.invoke(model_generated_tool_call)

在代理中

from langchain.agents import create_agent
from langchain_anthropic import ChatAnthropic

model = ChatAnthropic(
    model_name="claude-haiku-4-5-20251001",
    temperature=0,
    max_tokens_to_sample=1024,
    timeout=None,
    max_retries=2,
    stop=None
)

agent = create_agent(model, tools=[tool])

附加功能

提供 DaytonaDataAnalysisTool 提供多种管理文件和沙箱环境的方法:

文件管理

上传文件到沙箱:

with open("sales_data.csv", "rb") as f:
    uploaded = tool.upload_file(
        f,
        "CSV file containing sales data with columns: id, date, product, revenue"
    )

从沙箱下载文件:

file_bytes = tool.download_file("/home/daytona/results.csv")

删除已上传的文件:

tool.remove_uploaded_file(uploaded)

包管理

在沙箱中安装 Python 包:

# Single package
tool.install_python_packages("pandas")

# Multiple packages
tool.install_python_packages(["numpy", "matplotlib", "seaborn"])

沙箱管理

访问沙箱实例:

sandbox = tool.get_sandbox()

完成时关闭沙箱:

tool.close()  # Cleans up resources and deletes the sandbox

API 参考

有关所有 DaytonaDataAnalysisTool 功能和配置的详细文档,请访问 API 参考.