Spaces:
Sleeping
Sleeping
| title: Test Creation Agent | |
| emoji: ๐ | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: docker | |
| sdk_version: latest | |
| app_port: 7860 | |
| pinned: false | |
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |
| # Test Creation Agent | |
| This application provides a conversational interface to collect educational test creation parameters. It extracts details like chapters, question counts, difficulty distribution, and test timing from natural language inputs. | |
| ## Features | |
| - User-friendly Gradio chat interface | |
| - Intelligent parameter extraction from natural language | |
| - Supports multiple academic subjects and chapters | |
| - Normalizes chapter names to standardized curriculum topics | |
| - Tracks conversation state and guides users through completion | |
| ## Architecture | |
| The application consists of two main components: | |
| 1. **FastAPI Backend**: Handles the parameter extraction and conversation logic | |
| 2. **Gradio Frontend**: Provides the user interface for conversation | |
| ## Setup | |
| ### Environment Variables | |
| Create a `.env` file from the example: | |
| ```bash | |
| cp .env.example .env | |
| ``` | |
| Edit the `.env` file and add your OpenAI API key: | |
| ``` | |
| OPENAI_API_KEY=your_openai_api_key_here | |
| ``` | |
| ### Running with Docker | |
| Build and run the Docker container: | |
| ```bash | |
| docker build -t test-creation-agent . | |
| docker run -p 7860:7860 -p 8000:8000 --env-file .env test-creation-agent | |
| ``` | |
| ### Running Locally | |
| Install dependencies: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| Run the application: | |
| ```bash | |
| python app.py | |
| ``` | |
| This will start both the FastAPI backend and the Gradio frontend. Access the application at http://localhost:7860. | |
| ## API Endpoints | |
| The FastAPI backend provides these endpoints: | |
| - `GET /`: Check if the API is running | |
| - `POST /chat`: Send a user message and get a response | |
| - Request body: `{"message": "string", "session_id": "string"}` | |
| - `GET /session/{session_id}`: Get the current state of a session | |
| - `DELETE /session/{session_id}`: Delete a session | |
| - `POST /reset`: Reset a session to start over | |
| - Request body: `{"message": "", "session_id": "string"}` | |
| ## Deploying to Hugging Face Spaces | |
| 1. Create a new Space on Hugging Face with Docker template | |
| 2. Link your GitHub repository or upload the files directly | |
| 3. Set the OPENAI_API_KEY in the Space's secrets | |
| 4. The application will be accessible at your Space's URL | |
| ## Usage Example | |
| Simply open the Gradio interface and start describing your test requirements. For example: | |
| "I need a test on Thermodynamics and Electrostatics, 10 questions each, 60% medium, 20% easy, 20% hard, 90 minutes, on May 15, 2025 at 10 AM" | |
| The agent will extract the parameters, normalize chapter names, and either ask for missing information or confirm when all parameters are collected. |