Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stepanogil/autonomous-hr-chatbot
An autonomous HR agent that can answer user queries using tools
https://github.com/stepanogil/autonomous-hr-chatbot
agent ai autonomous-agents langchain openai python
Last synced: 3 months ago
JSON representation
An autonomous HR agent that can answer user queries using tools
- Host: GitHub
- URL: https://github.com/stepanogil/autonomous-hr-chatbot
- Owner: stepanogil
- License: mit
- Created: 2023-06-15T09:00:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-06T08:31:33.000Z (over 1 year ago)
- Last Synced: 2024-07-31T07:15:34.202Z (6 months ago)
- Topics: agent, ai, autonomous-agents, langchain, openai, python
- Language: Jupyter Notebook
- Homepage: https://autonomous-hr-chatbot.vercel.app
- Size: 7.86 MB
- Stars: 319
- Watchers: 6
- Forks: 74
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-ai-agents - GitHub
- awesome-langchain-zh - Autonomous HR Chatbot - hr-chatbot?style=social): 一个回答人力问题的聊天机器人 (开源项目 / 其他聊天机器人)
- awesome-langchain - Autonomous HR Chatbot - hr-chatbot?style=social) (Open Source Projects / Other / Chatbots)
- awesome-agents - Autonomous HR Chatbot - hr-chatbot?style=social) (Conversational / General Agents)
- awesome-agents - autonomous-hr-chatbot
- awesome-agents - autonomous-hr-chatbot
README
# Autonomous HR Chatbot built using ChatGPT, LangChain, Pinecone and Streamlit
Companion Reading: [Creating a (mostly) Autonomous HR Assistant with ChatGPT and LangChain’s Agents and Tools](https://medium.com/@stephen.bonifacio/creating-a-mostly-autonomous-hr-assistant-with-chatgpt-and-langchains-agents-and-tools-1cdda0aa70ef)
---
### TL;DR/Description
---
This is a prototype enterprise application - an autonomous agent that is able to answer HR queries using the tools it has on hand.
It was made using LangChain's agents and tools modules, using Pinecone as vector database and powered by ChatGPT or gpt-3.5-turbo. The front-end is Streamlit using the streamlit_chat component.Tools:
1. Timekeeping Policies - A ChatGPT generated sample HR policy document. Embeddings were created for this doc using OpenAI’s *text-embedding-ada-002* model and stored in a Pinecone index.
2. Employee Data - A csv file containing dummy employee data (e.g. name, supervisor, # of leaves etc). It's loaded as a pandas dataframe and manipulated by the LLM using LangChain's PythonAstREPLTool
3. Calculator - this is LangChain's calculator chain module, LLMMathChain#### Sample Chat
![sample_chat](assets/sample_chat.png)
#### Sample Tool Use
![sample_tool_use](assets/sample_tool_use.png)
---
#### How to use this repo
1. Install python 3.10. [Windows](https://www.tomshardware.com/how-to/install-python-on-windows-10-and-11#:~:text=1.,and%20download%20the%20Windows%20installer.&text=2.,is%20added%20to%20your%20path.), [Mac](https://www.codingforentrepreneurs.com/guides/install-python-on-macos/)
2. Clone the repo to a local directory.
3. Navigate to the local directory and run this command in your terminal to install all prerequisite modules - `pip install -r requirements.txt`
4. Input your own API keys in the `hr_agent_backend_local.py` file (or `hr_agent_backend_azure.py` if you want to use the azure version; just uncomment it in the frontend.py file)
5. Run `streamlit run hr_agent_frontent.py` in your terminal#### Storing Embeddings in Pinecone
1. Create a Pinecone account in [pinecone.io](pinecone.io) - there is a free tier. Take note of the Pinecone API and environment values.
2. Run the notebook 'store_embeddings_in_pinecone.ipynb'. Replace the Pinecone and OpenAI API keys (for the embedding model) with your own.---
### Tech Stack
---[Azure OpenAI Service](https://azure.microsoft.com/en-us/products/cognitive-services/openai-service) - the OpenAI service offering for Azure customers.
[LangChain](https://python.langchain.com/docs/get_started/introduction.html) - development frame work for building apps around LLMs.
[Pinecone](https://www.pinecone.io/) - the vector database for storing the embeddings.
[Streamlit](https://streamlit.io/) - used for the front end. Lightweight framework for deploying python web apps.
[Azure Data Lake](https://azure.microsoft.com/en-us/solutions/data-lake) - for landing the employee data csv files. Any other cloud storage should work just as well (blob, S3 etc).
[Azure Data Factory](https://azure.microsoft.com/en-ca/products/data-factory/) - used to create the data pipeline.
[SAP HCM](https://www.sap.com/sea/products/hcm/what-is-sap-hr.html) - the source system for employee data.### Video Demo
---[Youtube Link](https://www.youtube.com/watch?v=id7XRcEIBvg&ab_channel=StephenBonifacio)
---
### Author
---#### Stephen Bonifacio
Feel free to connect with me on:
Linkedin: https://www.linkedin.com/in/stephenbonifacio/
Twitter: https://twitter.com/Stepanogil