| --- |
| 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. |