Arslan1997's picture
Initial backend commit
141cc25
|
Raw
History Blame Contribute Delete
6.4 kB
# **Auto-Analyst API Documentation**
The core application routes are designed to manage the data and AI analysis capabilities of the Auto-Analyst application.
## **1. Core Application Routes**
### **Data Management**
#### **POST /upload_dataframe**
Uploads a CSV dataset for analysis.
**Request:**
- `file`: CSV file
- `name`: Dataset name
- `description`: Dataset description
**Headers:**
- `X-Force-Refresh`: "true" (optional) - Forces session reset before upload
**Response:**
```json
{ "message": "Dataframe uploaded successfully", "session_id": "abc123" }
```
#### **POST /upload_excel**
Uploads an Excel file with a specific sheet for analysis.
**Request:**
- `file`: Excel file
- `name`: Dataset name
- `description`: Dataset description
- `sheet_name`: Name of the Excel sheet to use
**Headers:**
- `X-Force-Refresh`: "true" (optional) - Forces session reset before upload
**Response:**
```json
{ "message": "Excel file processed successfully", "session_id": "abc123", "sheet": "Sheet1" }
```
#### **POST /api/excel-sheets**
Gets the list of sheet names from an Excel file.
**Request:**
- `file`: Excel file
**Response:**
```json
{ "sheets": ["Sheet1", "Sheet2", "Data"] }
```
#### **GET /api/default-dataset**
Gets the default dataset.
**Response:**
```json
{
"headers": ["column1", "column2", ...],
"rows": [[val1, val2, ...], ...],
"name": "Housing Dataset",
"description": "A comprehensive dataset containing housing information..."
}
```
#### **POST /reset-session**
Resets session to default dataset.
**Request Body:**
```json
{
"name": "optional name",
"description": "optional description",
"preserveModelSettings": false
}
```
**Response:**
```json
{
"message": "Session reset to default dataset",
"session_id": "abc123",
"dataset": "Housing.csv"
}
```
#### **GET /api/preview-csv** / **POST /api/preview-csv**
Preview the current dataset in the session.
**Response:**
```json
{
"headers": ["column1", "column2", ...],
"rows": [[val1, val2, ...], ...],
"name": "Dataset Name",
"description": "Dataset description..."
}
```
---
### **2. AI Analysis**
#### **POST /chat/{agent_name}**
Processes a query using a specific AI agent.
**Path Parameters:** `agent_name`
**Request Body:**
```json
{ "query": "Analyze the relationship between price and size" }
```
**Query Parameters:** `user_id` (optional), `chat_id` (optional)
**Response:**
```json
{
"agent_name": "data_viz_agent",
"query": "Analyze the relationship between price and size",
"response": "# Analysis\n\nThere appears to be a strong positive correlation...",
"session_id": "abc123"
}
```
#### **POST /chat**
Processes a query using multiple AI agents with streaming responses.
**Request Body:**
```json
{ "query": "Analyze the housing data" }
```
**Query Parameters:** `user_id` (optional), `chat_id` (optional)
**Response:** *Streaming JSON objects:*
```json
{"agent": "data_viz_agent", "content": "# Visualization\n\n...", "status": "success"}
{"agent": "statistical_analytics_agent", "content": "# Statistical Analysis\n\n...", "status": "success"}
```
#### **POST /chat_history_name**
Generates a name for a chat based on the query.
**Request Body:**
```json
{ "query": "Analyze sales data for Q4" }
```
**Response:**
```json
{ "name": "Chat about sales data analysis" }
```
#### **GET /agents**
Lists available AI agents.
**Response:**
```json
{
"available_agents": ["data_viz_agent", "sk_learn_agent", "statistical_analytics_agent", "preprocessing_agent"],
"standard_agents": ["preprocessing_agent", "statistical_analytics_agent", "sk_learn_agent", "data_viz_agent"],
"template_agents": ["custom_template_1", "custom_template_2"],
"custom_agents": []
}
```
---
### **3. Deep Analysis**
#### **POST /deep_analysis_streaming**
Performs comprehensive deep analysis with real-time streaming updates.
**Request Body:**
```json
{ "goal": "Perform comprehensive analysis of the sales data" }
```
**Query Parameters:** `user_id` (optional), `chat_id` (optional)
**Response:** *Streaming JSON objects with progress updates*
#### **POST /deep_analysis/download_report**
Downloads an HTML report from deep analysis results.
**Request Body:**
```json
{
"analysis_data": { ... },
"report_uuid": "optional-uuid"
}
```
**Response:** HTML file download
---
### **4. Model Settings**
#### **GET /api/model-settings**
Fetches current model settings.
**Response:**
```json
{
"provider": "openai",
"model": "gpt-4o-mini",
"hasCustomKey": true,
"temperature": 1.0,
"maxTokens": 6000
}
```
#### **POST /settings/model**
Updates model settings.
**Request Body:**
```json
{
"provider": "openai",
"model": "gpt-4",
"api_key": "sk-...",
"temperature": 0.7,
"max_tokens": 8000
}
```
**Response:**
```json
{ "message": "Model settings updated successfully" }
```
---
### **5. Session Management**
#### **GET /api/session-info**
Gets information about the current session.
**Response:**
```json
{
"session_id": "abc123",
"dataset_name": "Housing Dataset",
"dataset_description": "...",
"model_config": { ... }
}
```
#### **POST /set-message-info**
Associates message tracking information with the session.
**Request Body:**
```json
{
"chat_id": 123,
"message_id": 456,
"user_id": 789
}
```
#### **POST /create-dataset-description**
Creates an AI-generated description for a dataset.
**Request Body:**
```json
{
"df_preview": "column1,column2\nvalue1,value2\n...",
"name": "Dataset Name"
}
```
---
### **6. System Endpoints**
#### **GET /**
Returns API welcome information and feature list.
#### **GET /health**
Health check endpoint.
**Response:**
```json
{ "message": "API is healthy and running" }
```
---
---
### **7. Authentication & Session Management**
- **Session ID Sources:**
- Query parameter: `session_id`
- Header: `X-Session-ID`
- Auto-generated if not provided
- **Session State Includes:**
- Current dataset
- AI system instance
- Model configuration
- User and chat associations
### **9. Error Handling**
- Comprehensive error handling with appropriate HTTP status codes
- Detailed error messages for debugging
- Fallback encoding support for CSV files (UTF-8, unicode_escape, ISO-8859-1)
- Session state preservation during errors