Coder Social home page Coder Social logo

resumegpt's Introduction

ResumeGPT - Art Kreimer's Resume bot

Overview

This Streamlit application is an interactive chatbot showcasing your professional background and qualifications. Leveraging large language models (LLMs) and a Retrieval Augmented Generation (RAG) framework, it delivers accurate and context-aware answers based on your resume and other data stored in a CSV file. The chatbot utilizes a FAISS vector store for efficient information retrieval and the OpenAI GPT-3.5-turbo model for answer generation. Streamlit provides a user-friendly interface for seamless interaction.

Features

  • RAG-based: Employs a Retrieval Augmented Generation approach, ensuring responses are both relevant and grounded in the information provided.
  • Interactive Q&A: Enables users to ask questions and receive informative answers directly derived from the CSV data.
  • Conversation History: Retains conversations in MongoDB Atlas for later review and analysis, enhancing user engagement.
  • Knowledge Awareness: Gracefully handles situations where the chatbot lacks the information to answer a question, ensuring a smooth user experience.
  • Question Suggestions: Offers prompts to guide users and encourage meaningful conversations, promoting deeper exploration of your qualifications.

Link to the Streamlit app

This is my ResumeGPT demo Wesbite : https://art-career-bot.streamlit.app/

Link to the blog post

This is a detailed post about the logic behind this chatbot and explanations how it works: www.artkreimer.com/

Prerequisites

  • Python 3.9 or higher
  • OpenAI API key
  • MongoDB Atlas account
  • Streamlit account to host the app

Installation

  1. Fork my repository and change the name to your desired name
  2. Clone the repository:
git clone https://github.com/{username}/{yourGPT}.git && cd {yourGPT}
  1. Create virtual env
python3 -m venv venv
source venv/bin/activate
  1. Install the required dependencies:
pip install -r requirements.txt
  1. Update the following files:

    • Replace all instance of the name Art Kreimer or Art with your name and nickname in the following files:
      • app.py
      • templates/template.json
    • Change the following in the data folder
      • about_me.csv with relevant questions about you
  2. Add OPENAI_API_KEY key to your shell variables

export OPENAI_API_KEY="your_openai_api_key"

Usage

  1. Run the Streamlit application:
streamlit run app.py
  1. The application will open in your default web browser. First time it will run a bit longer indexing the csv file and storing it in a FAISS vector store.
  2. Ask questions about your background and qualifications, and the chatbot will provide relevant responses.

Publishing your app

  1. Once you commit all your files to GitHub, create an account in Streamlit.io preferably with your GitHub account.

  2. Click on the New app option:

  3. Input your OPENAI_API_KEY and mongodB_pass using the Advanced settings... option

  4. Click on Deploy button

Note

You can also deploy the same on HuggingFace Spaces. You can find more documentation on the same here.

Configuration

  • The application uses a FAISS index to store the CSV and PDF data embeddings. If the index file (faiss_index) does not exist, it will be created automatically and it will take several minutes to generate all embeddings.
  • The CSV data file path is set in the data_source variable, and the PDF resume file path is set in the pdf_source variable.

Acknowledgements

This project is highly influence by the Repository created by Art Kreimer and is dependent on the following libraries and tools:

  • Streamlit for building the web application
  • LangChain for integrating the language model and retrieval chain
  • OpenAI API for the language model
  • FAISS for the vector database
  • Firebase for storing the conversation history

License

This project is licensed under the MIT License.

resumegpt's People

Contributors

kredar avatar

Stargazers

Chris Evers avatar Vivek avatar

Watchers

 avatar

Forkers

jmlogs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.