LLM Chat Application ==================== This repository contains a FastAPI application for chatting and question answering using a Large Language Model (LLM). The application supports conversational interactions with memory as well as simple Q&A without conversation history. Features -------- * **Chat with history**: Interact with the model while maintaining a conversation history. * **Simple Q&A**: Ask questions and get answers without maintaining a conversation history. * **Streaming Responses**: Receive responses in a streaming fashion. Routes ------ ### `/chat` * **Method**: `POST` * **Description**: Chat with the model while maintaining conversation history. * **Request Body**: * `input` (string): The input message from the user. * **Response**: Streaming response of the model's reply. ### `/ask` * **Method**: `POST` * **Description**: Ask a question and get a response without maintaining conversation history. * **Request Body**: * `input` (string): The input question from the user. * **Response**: Streaming response of the model's answer. Getting Started --------------- ### Prerequisites * Python 3.7+ * Docker (optional, for containerized deployment) * A valid `GROQ_API_KEY` (from Groq API) ### Installation 1. **Clone the repository**: git clone https://github.com/your-username/llm-chat-app.git cd llm-chat-app 2. **Create a virtual environment and activate it**: python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` 3. **Install the dependencies**: pip install -r requirements.txt 4. **Create a `.env` file and add your `GROQ_API_KEY`**: echo "GROQ_API_KEY=your_groq_api_key" > .env ### Running the Application 1. **Start the FastAPI server**: uvicorn main:app --reload 2. **The application will be available at** `http://127.0.0.1:8000`. ### Using the Application You can interact with the application using tools like `curl`, Postman, or directly from your frontend application. #### Example Requests **Chat with History**: curl -X POST "http://127.0.0.1:8000/chat" -H "Content-Type: application/json" -d '{"input": "Hello, how are you?"}' **Simple Q&A**: curl -X POST "http://127.0.0.1:8000/ask" -H "Content-Type: application/json" -d '{"input": "What is the capital of France?"}' ### Testing For testing purposes, you can use the base URL `https://llamachat-ipea.onrender.com/`. **Chat with History**: curl -X POST "https://llamachat-ipea.onrender.com/chat" -H "Content-Type: application/json" -d '{"input": "Hello, how are you?"}' **Simple Q&A**: curl -X POST "https://llamachat-ipea.onrender.com/ask" -H "Content-Type: application/json" -d '{"input": "What is the capital of France?"}' ### Docker Deployment (Optional) To run the application in a Docker container: 1. **Build the Docker image**: docker build -t llm-chat-app . 2. **Run the Docker container**: docker run -d -p 8000:8000 --env-file .env llm-chat-app The application will be available at `http://127.0.0.1:8000`.