Knowledge Base Chat
This file implements a Retrieval-Augmented Generation (RAG) dialogue system using the Streamlit framework. The system features a chat interface that allows users to interact with various dialogue modes, such as knowledge base Q&A, file conversations, and search engine queries.
Key components:
1. Configuration and Utility Classes:
The Settings
class holds various configuration parameters for the model and tools, including history length, knowledge base settings, and search engine configurations.
A dummy ApiRequest
class contains a placeholder for fetching available knowledge bases, with the list_knowledge_bases()
method set to return a static list.
2. Chat Interface Setup:
A ChatBox
instance is initialized to manage the user interface for the chat, complete with an avatar.
The init_widgets()
function initializes the session state to keep track of user selections and parameters.
3. User Interaction:
The kb_chat()
function creates the main UI layout, featuring a sidebar with tabs for RAG configuration and session settings.
Users can select a dialogue mode, configure settings, and upload files as needed. The chat history is displayed, and users can input messages via a chat box, which are echoed back as simulated AI responses.
4. Export Functionality:
The system includes an option to export the chat history as a markdown file, timestamped for easy identification.