This example demonstrates how to build a data analysis tool using LiteLLM and Daytona sandboxes. The script executes Python code in an isolated environment to analyze cafe sales data, enabling automated data analysis workflows with natural language prompts.
In this example, the agent analyzes a cafe sales dataset to find the three highest revenue products for January and visualizes the results in a bar chart.
- Multiple LLM Providers: Easily switch between different LLM providers including Anthropic, OpenAI, Mistral, and more through LiteLLM
- Secure sandbox execution: All Python code runs in isolated Daytona sandboxes
- Natural language interface: Describe your analysis task in plain English
- Automatic chart generation: Visualizations are automatically saved as PNG files
- File handling: Upload datasets and process results within the sandbox
- Python: Version 3.10 or higher is required
Tip
It's recommended to use a virtual environment (venv or poetry) to isolate project dependencies.
To run this example, you need to set the following environment variables:
DAYTONA_API_KEY: Required for access to Daytona sandboxes. Get it from Daytona Dashboard
ANTHROPIC_API_KEY: Required if using Anthropic models (default)OPENAI_API_KEY: Required if using OpenAI modelsFIREWORKS_AI_API_KEY: Required if using Fireworks AI modelsMISTRAL_API_KEY: Required if using Mistral AI modelsDEEPSEEK_API_KEY: Required if using DeepSeek modelsOPENROUTER_API_KEY: Required if using OpenRouter models- See Providers for a complete list of providers and required API keys.
Create a .env file in the project directory with the appropriate variables for your chosen provider.
-
Create and activate a virtual environment:
python3.10 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -e . -
Run the example:
python ai_data_analyst.py
- An LLM call generates Python code based on the data format and prompt
- A new Daytona sandbox is created, containing the data file
- The Python code is executed in the sandbox
- Any generated charts are saved as PNG files
- A second LLM call summarizes the code execution results
The main prompt is configured in the user_prompt variable in ai_data_analyst.py:
user_prompt = "Give the three highest revenue products for the month of January and show them as a bar chart."You can modify this to analyze different aspects of the data or try different visualization types.
The example uses cafe_sales_data.csv. To use your own dataset, replace this file and update the filename in the script if needed.
By default, the example uses the following models, as specified in ai_data_analyst.py:
CODING_MODEL = "anthropic/claude-sonnet-4-6"
SUMMARY_MODEL = "anthropic/claude-haiku-4-5"The coding model is used for high accuracy code generation, and the summary model is used for fast summarization.
Other suggested models include:
openai/gpt-5.1fireworks_ai/accounts/fireworks/models/kimi-k2p6mistral/mistral-large-latestdeepseek/deepseek-chatopenrouter/moonshotai/kimi-k2
See Providers for all supported models
When the script completes, you'll see output similar to:
Prompt: Give the three highest revenue products for the month of January and show them as a bar chart.
Generating code...
Running code...
✓ Chart saved to chart-0.png
Response: Great! It looks like you successfully executed the code and identified the top three revenue-generating products for January:
1. **Matcha Espresso Fusion** with a total revenue of \$2,603.81.
2. **Oat Milk Latte** with a total revenue of \$2,548.65.
3. **Nitro Cold Brew** with a total revenue of \$2,242.41.
The chart will be saved as chart-0.png in your project directory, showing a bar chart of the top three revenue-generating products for January.
See the main project LICENSE file for details.