Skip to content

prxshetty/resume-chatbot

Repository files navigation

Resume Chatbot

home page

Overview

LLM Chatbot(ResumeBuddy) built using Supabase for vectoreStore, OpenAI API for embeddings with adjusted chunk size and overlaps for Resumes.

Features

  • Natural Language Understanding: Leverages OpenAI's GPT for understanding and responding to user queries.
  • Document Embeddings: Utilizes vector embeddings for efficient document retrieval.
  • Dynamic Conversation Handling: Maintains and uses conversation history for context-aware responses.
  • Scalable Architecture: Built with Express.js and Supabase, ensuring scalability and performance.
  • User-Friendly Interface: Simple and intuitive UI for seamless interaction.

Technologies Used

  • Frontend: HTML, CSS, JavaScript
  • Backend: Node.js, Express.js
  • Database: Supabase
  • AI/ML: OpenAI GPT, LangChain
  • PDF Parsing: pdf-parse
  • Environment Management: dotenv
  • Build Tools: Vite

Installation

  1. Clone the repository:
    git clone https://github.com/yourusername/resumebuddy.git
  2. Navigate to the project directory:
    cd resumebuddy
  3. Install the dependencies:
    npm install
  4. Set up environment variables: Create a .env file in the root directory and add your API keys and other environment variables:
    OPENAI_API_KEY=your_openai_api_key
    SUPABASE_API_KEY=your_supabase_api_key
    SUPABASE_URL_LC_CHATBOT=your_supabase_url
    PORT=3000
    

Usage

  1. Start the server:
    npm start
  2. Open your browser and navigate to http://localhost:3000 to interact with ResumeBuddy.

Project Structure

  • index.html: The main HTML file that serves the chatbot UI.
  • server.js: The main server file that handles API requests and interactions with the AI model.
  • package.json: Contains project metadata and dependencies.
  • txt_embed.js: Script for embedding text documents into the vector store.
  • combineDocuments.js: Utility to combine multiple documents into a single text.
  • formatConvHistory.js: Utility to format conversation history.
  • retriever.js: Script to set up the document retriever using Supabase and OpenAI embeddings.

How It Works

  1. PDF Loading and Splitting: The resume PDF is loaded and split into manageable chunks using RecursiveCharacterTextSplitter.
  2. Embedding and Storing: The chunks are embedded into vector representations and stored in a Supabase vector store.
  3. Question Handling: User queries are processed, and standalone questions are generated if necessary.
  4. Context Retrieval: Relevant document chunks are retrieved based on the query context.
  5. Answer Generation: The AI model generates context-aware answers using the retrieved information.

Demonstration

Home Page

home page

Personal Projects Query

asked about personal projects

Memory Retention - Initial Query

said a name  Derek  to check for memory retention

Memory Retention - Follow-up Query

said a name  Derek  to check for memory retention2

Terminal Output Demonstrating Memory Retention

Terminal output for derek full terminal output screenshots

Contribution

Feel free to open issues or submit pull requests for improvements and bug fixes.

About

LLM Chatbot using Supabase for vectoreStore, OpenAI API for embeddings with adjusted chunk size and overlaps for Resumes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors