ALX Connect is a FastAPI-based web service designed as a hub for AI-driven tools and services. This API provides endpoints to assist users with resume parsing, job matching, interview preparation, and data-to-DataFrame conversion.
- Root Endpoint: Provides a welcoming message to users.
- Resume Summary Endpoint: Parses a resume PDF, summarizes the content, and extracts relevant skills and experiences tailored to a provided job description.
- Mentor-Mentee Matcher Endpoint: Converts JSON data to a Pandas DataFrame, profiles user data, and recommends mentor matches.
- Interview Preparation Endpoint: Offers a chatbot for interview preparation with both synchronous and asynchronous communication modes.
- Python 3.8+
- FastAPI
- Pandas
- LLamaParse (via Groq API)
- Uvicorn
- Additional dependencies as specified in requirements.txt
- 
Clone the repository: git clone https://github.com/yourusername/ALX-Connect.git cd ALX-Connect
- 
Install the dependencies: pip install -r requirements.txt 
- 
Set up environment variables: - LLAMA_CLOUD_API_KEY: API key for the Llama model.
- GROQ_API_KEY: API key for the Groq API.
 
- 
Run the application: uvicorn main:app --host 0.0.0.0 --port 8000 
- 
Access the API documentation at http://localhost:8000/docs. 
- URL: /
- Method: GET
- Description: Returns a welcome message.
- Response:
{ "message": "Welcome to the AI Services Hub" }
- URL: /generate_summary
- Method: POST
- Description: Processes a resume PDF and generates a job-tailored summary.
- Parameters:
- user_id(string): User identifier.
- resume(file): The resume PDF file.
- job_description(string): Description of the job.
 
- Response:
Returns a JSON with:
- Summary of the candidate’s qualifications.
- Relevant work experience structured by key responsibility and KPIs.
- Top 10 relevant skills.
 
- Example Request:
{ "id": "123", "summary": ["Summary tailored for job description..."], "experience": [ { "Jobtitle": "Data Scientist", "company": "Tech Corp", "location": "Remote", "duration": "2 years", "key-responsibility": "Built machine learning models for business insights", "kpis": [ "Improved model accuracy by 20%", "Reduced processing time by 30%", "Increased revenue by 15%" ] } ], "skills": ["Python", "Machine Learning", "Data Analysis", ...] }
- URL: /data-to-df/
- Method: POST
- Description: Converts JSON data to a Pandas DataFrame and recommends Mentor-Mentee matches.
- Parameters:
- data(JSON array): List of dictionaries containing user data.
 
- Response: JSON-formatted mentor matches based on the input data.
- URL: /ask-question/
- Method: POST
- Description: Asks a question and receives a response for interview preparation.
- Parameters:
- question(string): Interview question.
- conversation_id(optional): Unique identifier for the conversation.
 
- Response: JSON with conversation ID and AI-generated response.
- URL: /ws/chat/{conversation_id}
- Method: WebSocket
- Description: Real-time interview preparation with continuous dialogue support.
- Usage:
- Establish a WebSocket connection and start interacting with the interview bot.
 
- Logging is implemented throughout the application to monitor API calls, responses, and error events.
- Errors such as file parsing failures or API issues trigger HTTPExceptionresponses with appropriate status codes and messages.
This project is licensed under the MIT License. See the LICENSE file for more details.
We welcome contributions! Please read CONTRIBUTING.md for guidelines on how to contribute to this project.
For any questions, please reach out to the project maintainer.
This README provides clear, structured information for users to understand and utilize each endpoint.