Spaces:
Running
Lung Cancer AI Advisor API Documentation
Base URL
https://moazx-lung-cancer-ai-advisor.hf.space/ # Production
http://127.0.0.1:7860/ # Development
1. POST /ask
Full Endpoint: https://moazx-lung-cancer-ai-advisor.hf.space/ask (Production)
Development: http://127.0.0.1:7860/ask
Purpose: Get a complete AI response for a lung cancer-related medical query.
Request
- Method:
POST - Content-Type:
application/json - Authentication: Required (via
Authorizationheader)
Request Body (JSON):
{
"query": "What are the early symptoms of lung cancer?",
"session_id": "user_123_session_1699612345"
}
Parameters:
query(required, string): The medical question about lung cancersession_id(required, string): Unique session identifier for conversation continuity. Format:user_{user_id}_session_{timestamp}
Response (200 OK)
{
"response": "Early symptoms of lung cancer may include...\n\n**Common Early Signs:**\n- Persistent cough...",
"session_id": "user_123_session_1699612345"
}
Error Responses
- 400 Bad Request: Missing or invalid parameters
- 401 Unauthorized: Missing or invalid authentication
- 500 Internal Server Error: Error processing the query
- 503 Service Unavailable: Service is initializing, try again later
2. POST /ask/stream (Recommended)
Full Endpoint: https://moazx-lung-cancer-ai-advisor.hf.space/ask/stream (Production)
Development: http://127.0.0.1:7860/ask/stream
Purpose: Stream AI response in real-time for better UX.
Request
- Method:
POST - Content-Type:
application/json - Authentication: Required (via
Authorizationheader)
Request Body (JSON):
{
"query": "What are the early symptoms of lung cancer?",
"session_id": "user_123_session_1699612345"
}
Parameters:
query(required, string): The medical question about lung cancersession_id(required, string): Unique session identifier for conversation continuity. Format:user_{user_id}_session_{timestamp}
Response
- Streams the AI response in chunks (text/event-stream or similar).
- Each chunk contains a part of the response.
Error Responses
- 400 Bad Request: Missing or invalid parameters
- 401 Unauthorized: Missing or invalid authentication
- 500 Internal Server Error: Error processing the query
- 503 Service Unavailable: Service is initializing, try again later
3. GET /health
Full Endpoint: https://moazx-lung-cancer-ai-advisor.hf.space/health (Production)
Development: http://127.0.0.1:7860/health
Related Endpoints:
GET /health/ping- Basic connectivity checkGET /health/initialization- Check initialization statusGET /health/version- Get API version information Purpose: Comprehensive health check of all system components.
Response (200 OK)
{
"status": "healthy",
"version": "1.0.0",
"timestamp": "2024-01-01T12:00:00Z",
"components": {
"agent": "healthy",
"vector_store": "healthy",
"data_loaders": "healthy",
"tools": "healthy"
},
"initialization": {
"is_complete": true,
"status_message": "Initialization complete",
"is_successful": true,
"error": null
}
}
Component Status Values:
healthy: Component is functioning normallyunhealthy: Component is not functioninginitializing: Component is still initializing
Initialization Status:
is_complete: Whether initialization has completedis_successful: Whether initialization was successfulstatus_message: Current status messageerror: Any error that occurred during initialization
4. Export Endpoints
4.1 GET /export/{format}
Full Endpoint: https://moazx-lung-cancer-ai-advisor.hf.space/export/{format} (Production)
Development: http://127.0.0.1:7860/export/{format}
Purpose: Export conversation history in the specified format.
Path Parameters:
format(string, required):docx: Microsoft Word document (.docx)pdf: Portable Document Format (.pdf)
Query Parameters:
session_id(string, required): The session ID to export (e.g., "user_123_session_1699612345")
Example Request:
GET /export/pdf?session_id=user_123_session_1699612345
Responses:
- 200 OK:
- Returns the exported file with appropriate content-type header
- Headers:
Content-Type:application/pdforapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentContent-Disposition:attachment; filename=conversation_{session_id}_{timestamp}.{format}
- 400 Bad Request:
- Invalid format (not 'docx' or 'pdf')
- Missing required parameters
- 401 Unauthorized: Missing or invalid authentication
- 404 Not Found: No conversation history found for the specified session
- 500 Internal Server Error: Error generating export file
- 503 Service Unavailable: Service is initializing, try again later
Response Headers:
Content-Type:application/pdforapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentContent-Disposition:attachment; filename=conversation_{session_id}_{timestamp}.{format}
Frontend Integration Tips:
- Trigger file download using the browser's built-in behavior
- Show loading state during export generation
- Handle errors gracefully with user-friendly messages
- For PDF exports, consider showing a preview using PDF.js
5. Session Management
5.1 GET /sessions
Purpose: List all active conversation sessions.
Response (200 OK):
{
"active_sessions": ["session1", "session2"],
"count": 2,
"timestamp": "2024-01-01T12:00:00Z"
}
5.2 DELETE /sessions/{session_id}
Purpose: Clear conversation history for a specific session.
Path Parameters:
session_id: The session ID to clear
Response (200 OK):
{
"message": "Session 'session_id' cleared successfully",
"session_id": "session_id",
"timestamp": "2024-01-01T12:00:00Z"
}
5.3 DELETE /sessions
Purpose: Clear all conversation sessions.
Response (200 OK):
{
"message": "All sessions cleared successfully",
"timestamp": "2024-01-01T12:00:00Z"
}
6. Error Handling
All error responses follow this format:
{
"error": "error_type",
"message": "Human-readable error message",
"details": {
"field": "Additional error details"
},
"timestamp": "2024-01-01T12:00:00Z"
}
Common Error Types:
validation_error: Request validation failedauthentication_error: Invalid or missing authenticationnot_found: Requested resource not foundrate_limit_exceeded: Too many requestsserver_error: Internal server error
7. Rate Limiting
- Rate Limit: 100 requests per minute per IP address
- Headers:
X-RateLimit-Limit: Request limit per time windowX-RateLimit-Remaining: Remaining requests in current windowX-RateLimit-Reset: Time when the rate limit resets (UTC timestamp)
8. Authentication
All endpoints (except /health and /health/ping) require authentication.
Authentication Header:
Authorization: Bearer YOUR_API_KEY
Getting an API Key: Contact the administrator to obtain an API key with appropriate permissions.
9. Best Practices
Session Management
- Always use unique session IDs for different users
- Reuse the same session ID for follow-up questions
- Clean up old sessions when no longer needed
Error Handling
- Implement retry logic for transient errors (5xx)
- Cache successful responses when appropriate
- Log errors for debugging purposes
Performance
- Use the streaming endpoint (
/ask/stream) for better UX - Implement client-side caching of responses
- Batch requests when possible
- Use the streaming endpoint (
Security
- Never expose API keys in client-side code
- Use HTTPS for all requests
- Validate all user input
10. Support
For questions or issues, please contact:
- Email: support@lungcanceradvisor.com
- Slack: #api-support channel
- Documentation: https://docs.lungcanceradvisor.com/api
Changelog
v1.0.0 (2024-01-01)
- Initial release of the Lung Cancer AI Advisor API
- Support for streaming and non-streaming queries
- Session-based conversation history
- Export functionality (PDF/DOCX)
- Comprehensive health monitoring
Documentation last updated: November 10, 2024
For questions or further integration help, contact the backend team.