Skip to content

Create README.md #12199

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions neural_network/chatbot/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@


# Chatbot with LLM Integration and Database Storage

This chatbot application integrates LLM (Large Language Model) API services, **Together** and **Groq**(you can use any one of them), to generate AI-driven responses. It stores conversation history in a MySQL database and manages chat sessions with triggers that update the status of conversations automatically.

## Features
- Supports LLM response generation using **Together** and **Groq** APIs.
- Stores chat sessions and message exchanges in MySQL database tables.
- Automatically updates chat session status using database triggers.
- Manages conversation history with user-assistant interaction.

## Requirements

Before running the application, ensure the following dependencies are installed:

- Python 3.13+
- MySQL Server
- The following Python libraries:
```bash
pip3 install -r requirements.txt
```

## Setup Instructions

### Step 1: Set Up Environment Variables

Create a `.env` file in the root directory of your project and add the following entries for your database credentials and API keys:

```
# Together API key
TOGETHER_API_KEY="YOUR_API_KEY"

# Groq API key
GROQ_API_KEY = "YOUR_API_KEY"

# MySQL connectionDB (if you're running locally)
DB_USER = "<DB_USER_NAME>"
DB_PASSWORD = "<DB_USER_NAME>"
DB_HOST = "127.0.0.1"
DB_NAME = "ChatDB"
PORT = "3306"

# API service to you(or use "Together")
API_SERVICE = "Groq"
```

### Step 2: Create MySQL Tables and Trigger

The `create_tables()` function in the script automatically creates the necessary tables and a trigger for updating chat session statuses. To ensure the database is set up correctly, the function is called at the beginning of the script.

Ensure that your MySQL server is running and accessible before running the code.

### Step 3: Run the Application

To start the chatbot:

1. Ensure your MySQL server is running.
2. Open a terminal and run the Python script:

```bash
python3 chat_db.py
```

The chatbot will initialize, and you can interact with it by typing your inputs. Type `/stop` to end the conversation.

### Step 4: Test and Validate Code

This project uses doctests to ensure that the functions work as expected. To run the doctests:

```bash
python3 -m doctest -v chatbot.py
```

Make sure to add doctests to all your functions where applicable, to validate both valid and erroneous inputs.

### Key Functions

- **create_tables()**: Sets up the MySQL tables (`Chat_history` and `Chat_data`) and the `update_is_stream` trigger.
- **insert_chat_history()**: Inserts a new chat session into the `Chat_history` table.
- **insert_chat_data()**: Inserts user-assistant message pairs into the `Chat_data` table.
- **generate_llm_response()**: Generates a response from the selected LLM API service, either **Together** or **Groq**.