File size: 2,963 Bytes
b768dad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
---

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


    ```