Skip to content

mpquochung/chatbot_hr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT License LinkedIn


Logo

CV finder

This project is aim to search for suitable applicant base on request of HR base on a LLM system. The user (HR) can chat with the app interface.

Table of Contents
  1. About The Project
  2. Architecture
  3. Getting Started
  4. Usage
  5. Roadmap
  6. Contact
  7. Acknowledgments

About The Project

Product Name Screen Shot

"HR Chatbot" is a cutting-edge application that revolutionizes the recruitment process. It leverages Langchain and AWS services to create a chatbot that interacts with HR professionals. The chatbot uses a Language Model (LLM) to understand HR requests and search for suitable job applicants. Users can chat with the application, inputting their specific requirements, and the chatbot will provide the most relevant candidate profiles. This application simplifies the recruitment process, making it more efficient and user-friendly.

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

  • Str
  • bucket
  • db
  • instace
  • embedding
  • llm
  • dbms

Architecture

See the architecture of the chat backend as follow for easy visualization. backend-architecture

  1. Decider (Claude3 Haiku): Determines whether to initiate a normal conversation or start the process to search for suitable CVs.
  2. Normal Chat (Claude3 Haiku): Initiates a conversation with LLM when a normal chat is invoked by the Decider.
  3. Retransforming Queries (Claude3 Sonnet): Transforms user prompts into more accurate queries for finding suitable applicants by generating different variations. This helps improve search accuracy. For example, a complex query like “I want to find a Backend developer with over 5 years of experience and expertise in Java Springboot and Node.js” is broken down into simpler queries.
  4. Semantic Search (pgvector): Uses the transformed queries to perform a semantic search for CVs that match the HR requirements.
  5. Top k CVs: Identifies the top k most suitable CVs based on a predefined threshold or relevance score. These initial results may require further refinement.
  6. Reranking (Cohere rerank3 on Sagemaker): Uses a reranking model to evaluate and refine the top k CVs to identify the top 5 best candidates using the Cohere Command model hosted on AWS SageMaker.
  7. Reasoning (Claude3 Sonnet): The final stage involves providing a summary and analysis of the top-ranked CVs, highlighting key skills, experiences, past projects, achievements, and educational background. The LLM offers a recommendation on whether to shortlist or reject each candidate, with justifications to support informed decision-making.

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

The configuration is complicated to implement since everything is on the Cloud! Here are prerequisites of the app:

  • OPENAI API
  • AWS Bedrock Foundation Models Access (Claude-3-haiku, Claude-3-Sonnet)
  • AWS S3
  • AWS RDS: PostgresSQL database & pgvector
  • AWS Sagemaker: Cohere-rerank-multilingual-3 endpoint
  • AWS EC2 instance

Installation

Below are steps how you can install the app. Assuming that you have all access to the prerequisites.

  1. Clone the repo
    git clone https://github.com/mpquochung/chatbot_hr.git
  2. Change directory into the root folder
    cd chatbot_hr
  3. Install all required library
    !pip install requirements.txt
  4. Create ".env" file and config your ".env" up to the example in ".env.example"
    OPENAI_API_KEY= 'Enter your API key'
    PGVECTOR_WRITER_HOST = 'Enter pgvector endpoint'
    ...

Usage

Start app

To start with, first you must execute the streamlit function to start the app.

streamlit run Home.py --server.port 8080 

How to use

  1. Go to the 'Upload CV' page.
  2. Upload CV files in one of the following formats: docx, doc, pdf, xlsx.
  3. Go to "CV management" page to verify if the CV is well handled.
  4. Enter the chatbot and feel free to try it out. You can ask anything about the CV.

Roadmap

  • Build chat-backend
  • Build chat user interface
  • Deploy
  • Prompt engineering
  • Graph-base query

See the open issues for a full list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Mai Phan Quốc Hưng - @linkedin - maphquochung@gmail.com

Project Link: github

Acknowledgments

This project is inherrited from many source. Here are some soure to reference:

Finally, I want to express my appreciation to those who support me in this project. Without their discussions about the product and support in configuring AWS services and the database, I could not have completed this project successfully.

(back to top)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages