## Version 0.2.0

This release includes several improvements and new features for the LlamaBot project.

### New Features

- **API Server**: Merged pull request #28, which introduces an API server for the LlamaBot project. (4ea160a, Eric Ma)
- **Mock Response and API Key Support**: Added `api_key` and `mock_response` parameters to the SimpleBot constructor for OpenAI API key usage and testing with predefined responses. (2f6d1d9, Eric Ma)
- **Streaming Response Test**: Implemented a new test case to verify that SimpleBot can stream responses correctly. (5ddb804, Eric Ma)
- **Delta Content Printing**: The SimpleBot class now prints the delta content to the console after processing each message for better readability. (d657b4a, Eric Ma)
- **ChatBot UI Jupyter Notebook**: Created a new Jupyter notebook for ChatBot UI development, including the setup of necessary classes and functions. (bb4397a, Eric Ma)
- **ChatUIMixin**: Introduced a new ChatUIMixin class for easier integration of chat functionalities in LlamaBot components. (4209b18, Eric Ma)
- **Streamlined Message Handling and Typing**: Simplified the message construction and typing in the SimpleBot class for improved readability and maintainability. (65e026c, Eric Ma)
- **Streaming Response for Chat Messages**: Implemented streaming response functionality in the ChatBot class for better real-time interactivity. (1ebc356, Eric Ma)
- **Improved Response Streaming**: Extracted streaming logic into a separate method and ensured consistent yielding of AIMessage instances in the SimpleBot class. (08636a7, Eric Ma)
- **Toggleable Streaming Responses**: Added a `stream` parameter to the generate\_response method in the SimpleBot class to control streaming behavior. (565aed7, Eric Ma)
- **Streaming Response Capability**: Implemented a new stream\_response method in the SimpleBot class for streaming responses incrementally. (2a8254c, Eric Ma)
- **Response Generation Extraction**: Simplified the generate\_response method in the SimpleBot class by extracting the response generation logic into a new \_make\_response function. (0ad9a1e, Eric Ma)
- **API Key Instructions**: Added instructions for setting API keys for other providers in the documentation. (55ec13e, Eric Ma)
- **Standardized LlamaBot Naming Convention**: Corrected the casing of 'LLaMaBot' to 'LlamaBot' throughout the index.md documentation and separated API provider configuration instructions into subsections for OpenAI and Mistral. (7fd2e13, Eric Ma)
- **New Model Names and CLI Options Refactoring**: Added 'stablelm2' and 'duckdb-nsql' to the list of available models and refactored command-line interface arguments in serve.py to use Typer options instead of arguments. (e6a2122, Eric Ma)
- **FastAPI Endpoint for QueryBot**: Implemented APIMixin to allow QueryBot to serve FastAPI endpoints and added a `serve` command to the CLI for starting a FastAPI server with QueryBot. (5edd84b, Eric Ma)
- **Improved System Prompt for QueryBot**: Modified the system prompt in QueryBot to be more specific about the source of knowledge and clarified the response behavior when the repository does not contain the answer. (5f7ce51, Eric Ma)
- **LlamaBot CLI Usage Guide**: Added a comprehensive guide for the LlamaBot CLI in the documentation, including installation instructions, key commands, and usage examples. (9f0b1c8, Eric Ma)

### Bug Fixes

- **ImageBot Import Path Update**: Changed the import path of AIMessage from langchain.schema to llamabot.components.messages to reflect the new module structure. (27904d0, Eric Ma)
- **Error Handling for Image URL Retrieval**: Added an exception raise in the ImageBot.generate\_image method to handle cases where no image URL is found in the response. (27904d0, Eric Ma)
- **Disabled Streaming in SimpleBot Tests**: Passed `stream=False` when creating a SimpleBot instance in tests to ensure consistent behavior without relying on streaming features. (e559114, Eric Ma)
- **Ensured Non-Empty Strings in Bot Tests**: Modified tests to generate non-empty strings for system\_prompt and human\_message using hypothesis strategies. (e8fed0a, Eric Ma)

### Deprecations

- **Removed Unused Panel App Creation Code**: Removed the `create_panel_app` function and its related imports from python.py as they are no longer used. (4469b35, Eric Ma)
- **Removed PanelMarkdownCallbackHandler Class**: Removed the PanelMarkdownCallbackHandler class as it is no longer required in the llamabot project. (b7ef263, Eric Ma)
- **Removed Unused pytest Import and Obsolete Test**: Removed an unused import of pytest in test\_simplebot.py and deleted the test\_simple\_bot\_stream\_response function, which is no longer needed due to changes in the SimpleBot streaming response logic. (ed0756b, Eric Ma)
- **Removed model\_dispatcher Module**: The model\_dispatcher.py module has been removed as part of a refactoring effort. This change simplifies the llamabot architecture by delegating model dispatch responsibilities to a new system or removing the need for such functionality entirely. (0887618, Eric Ma)
- **Removed api\_key Command from configure.py**: The api\_key command was deprecated and has been removed to simplify configuration. Users should now set API keys directly via environment variables. (2752d7e, Eric Ma)
