--- title: digichat app_file: app.py sdk: gradio sdk_version: 5.27.0 hf_oauth: true --- # DigiChat DigiChat is an advanced, modular chatbot framework designed for flexible, multi-agent conversational AI. It supports streaming responses, file processing, integration with Azure AI Search and vector indexes, and orchestration of specialized agents for complex tasks. ## Features - **Multi-Agent Architecture:** Supports multiple agent types, including: - **BaseAgent:** Standard LLM-based conversation. - **DataAgent:** Handles queries involving external data sources. - **SearchAgent:** Integrates with Azure AI Search and vector indexes for semantic search. - **OrchestratorAgent:** Routes and coordinates between specialized agents as tools. - **Streaming Responses:** Real-time, token-by-token streaming of model outputs for responsive user experience. - **File Upload and Processing:** Users can upload files (text, images, etc.), which are processed and incorporated into the conversation context. - **Flexible Model Configuration:** Easily switch between different LLM engines and adjust parameters like temperature. - **Azure AI Search Integration:** Seamlessly query Azure Search and vector indexes for retrieval-augmented generation. - **Extensible Tooling:** Add new tools and data sources via configuration, enabling custom workflows. - **History Management:** Maintains conversation history and supports advanced prompt engineering. - **Robust Error Handling:** Gracefully handles errors in streaming, file processing, and agent orchestration. - **Logging and Debugging:** Built-in logging for monitoring and debugging agent behavior. ## Usage 1. **Start the Chatbot:** Launch the Gradio interface or integrate DigiChat into your own application. 2. **Interact:** - Send messages and receive streaming responses. - Upload files for context-aware answers. - Leverage advanced search and data retrieval via specialized agents. 3. **Configure:** - Adjust agent configurations, add tools, or connect new data sources as needed. ## Architecture See [`architecture.puml`](architecture.puml) for a detailed PlantUML diagram of the system's class structure and relationships. ## Requirements - Python 3.10+ - Gradio - Azure SDKs (for Search integration) - Other dependencies as listed in `requirements.txt` ## Setup 1. Clone the repository 2. Install dependencies: ```bash pip install -r requirements.txt ``` 3. Set up your environment variables in `.env`: ``` OPENAI_API_KEY=your_api_key_here XAI_API_KEY=your_xai_key_here ``` 4. Run the application: ```bash python app.py ``` ## License MIT License --- For more details, see the code and comments in each module.