Arslan1997's picture
Initial backend commit
141cc25
|
Raw
History Blame Contribute Delete
4.64 kB
# Feedback Routes Documentation
This document describes the API endpoints available for managing user feedback on AI-generated messages in the Auto-Analyst backend.
## Base URL
All feedback-related endpoints are prefixed with `/feedback`.
## Endpoints
### Create or Update Message Feedback
Creates new feedback or updates existing feedback for a specific message.
**Endpoint:** `POST /feedback/message/{message_id}`
**Path Parameters:**
- `message_id`: ID of the message to provide feedback for
**Request Body:**
```json
{
"rating": 5, // Required: Star rating (1-5)
"model_name": "gpt-4o-mini", // Optional: Model used for the message
"model_provider": "openai", // Optional: Provider of the model
"temperature": 0.7, // Optional: Temperature setting
"max_tokens": 6000 // Optional: Max tokens setting
}
```
**Response:**
```json
{
"feedback_id": 123,
"message_id": 456,
"rating": 5,
"feedback_comment": null,
"model_name": "gpt-4o-mini",
"model_provider": "openai",
"temperature": 0.7,
"max_tokens": 6000,
"created_at": "2023-05-01T12:00:00Z",
"updated_at": "2023-05-01T12:00:00Z"
}
```
**Error Responses:**
- `404 Not Found`: Message with specified ID not found
- `500 Internal Server Error`: Failed to create/update feedback
### Get Message Feedback
Retrieves feedback for a specific message.
**Endpoint:** `GET /feedback/message/{message_id}`
**Path Parameters:**
- `message_id`: ID of the message to get feedback for
**Response:**
```json
{
"feedback_id": 123,
"message_id": 456,
"rating": 5,
"feedback_comment": null,
"model_name": "gpt-4o-mini",
"model_provider": "openai",
"temperature": 0.7,
"max_tokens": 6000,
"created_at": "2023-05-01T12:00:00Z",
"updated_at": "2023-05-01T12:00:00Z"
}
```
**Error Responses:**
- `404 Not Found`: No feedback found for the specified message
- `500 Internal Server Error`: Failed to retrieve feedback
### Get Chat Feedback
Retrieves all feedback for messages in a specific chat.
**Endpoint:** `GET /feedback/chat/{chat_id}`
**Path Parameters:**
- `chat_id`: ID of the chat to get feedback for
**Response:**
```json
[
{
"feedback_id": 123,
"message_id": 456,
"rating": 5,
"feedback_comment": null,
"model_name": "gpt-4o-mini",
"model_provider": "openai",
"temperature": 0.7,
"max_tokens": 6000,
"created_at": "2023-05-01T12:00:00Z",
"updated_at": "2023-05-01T12:00:00Z"
}
]
```
**Note:** Returns an empty array if no feedback exists for the chat.
**Error Responses:**
- `500 Internal Server Error`: Failed to retrieve chat feedback
## Feedback Features
### Rating System
- **Scale:** 1-5 star rating system
- **Required:** Rating is the only required field for feedback
- **Purpose:** Allows users to rate the quality of AI responses
### Model Context Tracking
The system optionally tracks:
- **Model Name:** The specific AI model used (e.g., "gpt-4o-mini")
- **Model Provider:** The provider of the model (e.g., "openai", "anthropic")
- **Temperature:** The creativity/randomness setting used
- **Max Tokens:** The maximum response length setting
### Update Behavior
- **Upsert Operation:** The POST endpoint either creates new feedback or updates existing feedback
- **Partial Updates:** When updating, only provided fields are modified
- **Timestamp Tracking:** Both creation and update timestamps are maintained
## Data Management
### Database Operations
- **Atomic Operations:** Feedback creation/updates are handled in database transactions
- **Referential Integrity:** Feedback is linked to specific messages via foreign keys
- **Soft Handling:** Missing optional fields are handled gracefully
### Error Handling
- **Comprehensive Logging:** All operations are logged for debugging
- **User-Friendly Messages:** Error responses provide clear information
- **Transaction Safety:** Failed operations are rolled back to maintain data consistency
## Usage Patterns
### Typical Workflow
1. User receives an AI-generated message
2. User provides rating (1-5 stars) via the frontend
3. Frontend calls `POST /feedback/message/{message_id}` with rating and model context
4. System stores or updates the feedback
5. Feedback can be retrieved later for analytics or user review
### Analytics Integration
Feedback data is used by the analytics system to:
- Track model performance across different configurations
- Identify patterns in user satisfaction
- Generate insights for model optimization