本指南提供快速入门 DaytonaDataAnalysisTool.
概述
详情
| 类 | 包 | 可序列化 | JS 支持 |
|---|---|---|---|
DaytonaDataAnalysisTool | langchain-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"
安装
位于 DaytonaDataAnalysisTool 中 langchain-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 参考.