|
|
---
|
|
|
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}")
|
|
|
|
|
|
``` |