Skip to content

psychopatz/eBuddyFramework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CITChat: AI-Machine Learning Powered Support for the CIT Community

Project Title and Description

CITChat is a chat helpdesk system designed to streamline and enhance communication about CIT information services. It leverages machine learning and a Large Language Model (LLM) to provide on-demand responses to queries about CIT operations, enrollment, accounts, and more, available anytime and anywhere.

API Overview

High-level API Functionalities

  • LLM Integration: Provides intelligent responses using a large language model.
  • Real-time Ingestion: Continuously updates with new information.
  • Customizable AI Personality: Easily adjustable to match the desired characteristics and tone.

Low-level API Functionalities

  • Image Support: Capable of displaying images in responses.
  • Trainable AI: Allows for easy training on new topics.
  • Question Topic Management: Identifies and categorizes unknown questions for admin review.
  • Integration: Easily integrates into institution kiosks for quick access.

Motivation

We aim to streamline the school's information helpdesk by building a framework for building an automated digital helpdesk assistant which is a valuable tool for freshmen, transferees, parents, students, and other people alike. Which can be access anythime, anywhere.

Developed to address the need for efficient and effective communication within the CIT community, CITChat focuses on:

  • Privacy: Ensuring sensitive information is handled securely.
  • Accessibility: Providing information anytime, anywhere.

Architecture

  • Technologies:
    • Built with FastAPI - for backend
    • React.js - for frontend
  • Components:
    • Llama3.1 - for LLM
    • MySQL - for Database
    • qdrant - for vector database
    • nomic - for embedding model
    • ollama - acts as a bridge between the complexities of deploying the LLM
    • PrivateGPT - for RAG, API and LLM Inference Abstractions
    • Anaconda
    • Python
    • JavaScript
    • HTML and CSS
    • MaterialUI
    • react-three
  • Features:
    • Real-time ingestion
    • Customizable AI characteristics on the fly
    • Image display support
    • Statistics dashboard.
    • Advance Logging
    • Natural Language Support

Getting Started

Installation Instructions

Prerequisites:

  • Clone the repository.
  • Ensure you have Git, Python 3.11, NPM, VS Code, and MySQL installed.

To install the eBuddyFramework, follow these summarized steps:

For LLM Backend

  1. Download Ollama:
    • Run ollama pull llama3.1
    • Run ollama pull nomic-embed-text
    • Start Ollama with ollama serve
  2. Install Make: Download from GNUWin32 and add to your system PATH.
  3. Create New Virtual Environment:
    • Use conda create -n {env Name} python=3.11
  4. Install Poetry:
    • Run pip install pipx
    • Run pipx install poetry
    • Run pipx ensurepath
  5. Install PrivateGPT:
    • Navigate to the PrivateGPT directory.
    • Activate your conda environment.
    • Run poetry install --extras "ui llms-ollama embeddings-ollama vector-stores-qdrant"
  6. Configure Settings: Copy settings-ollama.yaml to the PrivateGPT folder.
  7. Run PrivateGPT:
    • Activate your environment and run make run with the appropriate profile settings.

For Database Backend

  1. Create New Virtual Environment:
    • Use conda create -n {env Name} python=3.11
    • Install dependencies using pip install -r requirements.txt.
    • Run the application using uvicorn main:app --reload.

For Frontend

  • npm install
  • npm start

Basic Usage Guide

  • Access the chat helpdesk via the institution’s kiosk or web interface.
  • Ask any questions related to CIT services and receive real-time responses.

Contributing

  • Patrick Oliver Bustamante GitHub
  • Raphael M. Ubas GitHub
  • Lloyd Scott Cabido GitHub
  • Peter Macarulay GitHub
  • John David Catulong GitHub

Guidelines

  • Fork the repository and create a new branch for your features.
  • Submit a pull request with detailed descriptions of your changes.
  • Report issues or suggest features via the issue tracker.

License

CITChat is licensed under the MIT License.

Releases

No releases published

Packages

No packages published