Spaces:
Running
on
CPU Upgrade
Code Routes Documentation
This document describes the API endpoints available for code execution, editing, fixing, and cleaning operations in the Auto-Analyst backend.
Base URL
All code-related endpoints are prefixed with /code
.
Endpoints
Execute Code
Executes Python code against the current session's dataframe.
Endpoint: POST /code/execute
Request Body:
{
"code": "string", // Python code to execute
"session_id": "string", // Optional session ID
"message_id": 123 // Optional message ID for tracking
}
Response:
{
"output": "string", // Execution output
"plotly_outputs": [ // Optional array of plotly outputs
"string"
]
}
Error Responses:
400 Bad Request
: No dataset loaded or no code provided500 Internal Server Error
: Execution error
Edit Code
Uses AI to edit code based on user instructions.
Endpoint: POST /code/edit
Request Body:
{
"original_code": "string", // Code to be edited
"user_prompt": "string" // Instructions for editing
}
Response:
{
"edited_code": "string" // The edited code
}
Error Responses:
400 Bad Request
: Missing original code or editing instructions500 Internal Server Error
: Editing error
Fix Code
Uses AI to fix code with errors, employing a block-by-block approach with DSPy refinement.
Endpoint: POST /code/fix
Request Body:
{
"code": "string", // Code containing errors
"error": "string" // Error message to fix
}
Response:
{
"fixed_code": "string" // The fixed code
}
Error Responses:
400 Bad Request
: Missing code or error message500 Internal Server Error
: Fixing error
Clean Code
Cleans and formats code by organizing imports and ensuring proper code block formatting.
Endpoint: POST /code/clean-code
Request Body:
{
"code": "string" // Code to clean
}
Response:
{
"cleaned_code": "string" // The cleaned code
}
Error Responses:
400 Bad Request
: No code provided500 Internal Server Error
: Cleaning error
Get Latest Code
Retrieves the latest code from a specific message.
Endpoint: POST /code/get-latest-code
Request Body:
{
"message_id": 123 // Message ID to retrieve code from
}
Response:
{
"code": "string" // The retrieved code
}
Error Responses:
400 Bad Request
: Missing message ID404 Not Found
: Message not found500 Internal Server Error
: Retrieval error
Code Processing Features
Import Organization
The code processing system automatically:
- Moves all import statements to the top of the file
- Deduplicates imports
- Sorts imports alphabetically
Code Block Management
The system supports code blocks marked with special comments:
- Start marker:
# agent_name code start
- End marker:
# agent_name code end
Error Handling with DSPy Refinement
When fixing code, the system uses DSPy's refinement mechanism:
- Identifies specific code blocks with errors
- Processes error messages to extract relevant information
- Uses a scoring function to validate fixes
- Employs iterative refinement with up to 3 attempts
- Fixes each block individually while maintaining the overall structure
- Preserves code block markers and relationships
Dataset Context
When editing or fixing code, the system provides context about the current dataset including:
- Number of rows and columns
- Column names and data types
- Null value counts
- Sample values for each column
Code Execution Safety
The execution system includes safety measures:
- Removes blocking calls like
plt.show()
- Handles
__main__
block extraction - Cleans up print statements with unwanted newlines
- Executes code in isolated namespaces
Session Management
All endpoints require a valid session ID, which is used to:
- Access the current dataset
- Maintain state between requests
- Track code execution history
- Store execution results for analysis
Error Handling
The system provides detailed error messages while maintaining security by:
- Logging errors for debugging
- Returning user-friendly error messages
- Preserving original code in case of processing failures
- Using code scoring to validate fixes before returning results