探索E2B Data Analysis沙盒:LLM与数据分析的完美结合
·
引言
在当今数据密集的时代,高效、安全的数据分析成为了每位开发者的必备技能。E2B的Data Analysis沙盒为我们提供了一个隔离的环境,专为大语言模型(LLMs)和高级数据分析设计。本文将介绍如何利用E2B的沙盒进行数据分析,并通过简单的OpenAI agent实现对上传文件的分析。
主要内容
E2B的功能
E2B Data Analysis沙盒通过以下功能提供安全的代码执行环境:
- 运行Python代码
- 使用matplotlib生成图表
- 动态安装Python和系统包
- 运行Shell命令
- 文件上传和下载
准备工作
要使用E2B和OpenAI的服务,你需要API密钥。请设置为环境变量:
os.environ["E2B_API_KEY"] = "<E2B_API_KEY>"
os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>"
确保安装必要的软件包:
%pip install --upgrade --quiet langchain e2b langchain-community
代码示例
以下是使用E2B Data Analysis沙盒分析Netflix数据的示例:
import os
from langchain.agents import AgentType, initialize_agent
from langchain_openai import ChatOpenAI
from langchain_community.tools import E2BDataAnalysisTool
# 设置API密钥
os.environ["E2B_API_KEY"] = "<E2B_API_KEY>"
os.environ["OPENAI_API_KEY"] = "<OPENAI_API_KEY>"
# 定义保存图表的函数
def save_artifact(artifact):
print("New matplotlib chart generated:", artifact.name)
file = artifact.download()
basename = os.path.basename(artifact.name)
with open(f"./charts/{basename}", "wb") as f:
f.write(file)
# 初始化E2B工具
e2b_data_analysis_tool = E2BDataAnalysisTool(
env_vars={"MY_SECRET": "secret_value"},
on_stdout=lambda stdout: print("stdout:", stdout),
on_stderr=lambda stderr: print("stderr:", stderr),
on_artifact=save_artifact,
)
# 上传CSV文件
with open("./netflix.csv") as f:
remote_path = e2b_data_analysis_tool.upload_file(file=f)
print(remote_path)
# 创建Langchain agent
tools = [e2b_data_analysis_tool.as_tool()]
llm = ChatOpenAI(model="gpt-4", temperature=0)
agent = initialize_agent(tools, llm, agent=AgentType.OPENAI_FUNCTIONS, verbose=True)
# 执行数据分析
agent.run("What are the 5 longest movies on netflix released between 2000 and 2010? Create a chart with their lengths.")
常见问题和解决方案
-
API访问问题:
- 某些地区可能需要API代理服务来提高访问的稳定性,建议使用API代理服务。
-
数据分析中的错误:
- 确保数据格式正确,并在上传前验证文件。
-
包安装问题:
- 使用动态安装功能在需要时即时安装缺少的Python或系统包。
总结和进一步学习资源
E2B提供了一个功能强大的平台,用于安全、高效地进行数据分析。通过与LLMs结合,开发者可以创建智能的数据分析工具。推荐查看E2B API文档以进一步探索其潜力。
参考资料
- E2B API文档: https://api.wlai.vip
- OpenAI API文档: OpenAI API
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—
更多推荐
所有评论(0)