| | ---
|
| | title: EvalBot - Interview Analysis System
|
| | emoji: 🤖
|
| | colorFrom: blue
|
| | colorTo: green
|
| | sdk: docker
|
| | app_file: app.py
|
| | pinned: false
|
| | ---
|
| |
|
| | # 🎤 EvalBot: Automated Interview Analysis System
|
| |
|
| | Welcome to EvalBot, your AI-powered solution for comprehensive interview analysis!
|
| |
|
| | EvalBot helps assess candidate performance in interviews by analyzing:
|
| | - **Voice Metrics:** Speaking rate, filler words, anxiety, confidence, and fluency.
|
| | - **Content Analysis:** Key themes, strengths, and areas for development in responses.
|
| | - **Speaker Identification:** Differentiating between interviewer and interviewee.
|
| | - **Acceptance Probability:** An estimated likelihood of acceptance based on key performance indicators.
|
| |
|
| | ## Features:
|
| | - **Audio Analysis:** Provide audio file URLs (WAV, MP3, M4A, FLAC).
|
| | - **Detailed PDF Reports:** Get professional, structured reports with key insights and actionable recommendations.
|
| | - **REST API Access:** Integrate EvalBot's analysis capabilities into your own applications using a standard REST API.
|
| |
|
| | ## How to Use the API:
|
| |
|
| | You can interact with the API using any standard HTTP client, like the `requests` library in Python.
|
| |
|
| | 1. **Prepare your request:** The API expects a `POST` request to the `/analyze` endpoint.
|
| |
|
| | 2. **Use the API to analyze audio (accepts multiple URLs with user IDs):**
|
| |
|
| | ```python
|
| | import requests
|
| | import json
|
| |
|
| | # The URL of your new FastAPI Space
|
| | # Example: "[https://YourUsername-YourSpaceName.hf.space](https://YourUsername-YourSpaceName.hf.space)"
|
| | SPACE_URL = "[https://evalbot-evalbot-api.hf.space](https://evalbot-evalbot-api.hf.space)" # <--- UPDATE THIS WITH YOUR NEW SPACE URL
|
| | ANALYZE_ENDPOINT = f"{SPACE_URL}/analyze"
|
| |
|
| | # For private spaces, you would get a token and include it in the headers
|
| | # HEADERS = {"Authorization": "Bearer hf_..."}
|
| |
|
| | # List of audio items to analyze, each with a URL and a user_id
|
| | payload = {
|
| | "audio_items": [
|
| | {
|
| | "url": "[https://github.com/gradio-app/gradio/raw/main/test/test_files/audio_sample.wav](https://github.com/gradio-app/gradio/raw/main/test/test_files/audio_sample.wav)",
|
| | "user_id": "candidate-123"
|
| | },
|
| | {
|
| | "url": "[https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3](https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3)",
|
| | "user_id": "candidate-456"
|
| | }
|
| | ]
|
| | }
|
| |
|
| | try:
|
| | # Send the POST request
|
| | response = requests.post(ANALYZE_ENDPOINT, json=payload) #, headers=HEADERS) # Uncomment headers for private space
|
| | response.raise_for_status() # Raises an exception for bad status codes (4xx or 5xx)
|
| |
|
| | # Print the results
|
| | results = response.json()
|
| | print(json.dumps(results, indent=2))
|
| |
|
| | except requests.exceptions.RequestException as e:
|
| | print(f"An error occurred while calling the API: {e}")
|
| |
|
| | ``` |