|
| 1 | +# Progress Agentic RAG + Telerik Blazor UI Demo |
| 2 | + |
| 3 | +A comprehensive demo application showcasing the powerful integration between **Progress Agentic RAG AI-powered search capabilities** and **Telerik Blazor UI components**. This application demonstrates how to build intelligent, data-driven interfaces that combine enterprise-grade AI retrieval with beautiful, functional user interfaces. |
| 4 | + |
| 5 | +[](https://telerik-blazor-parag-demo.azurewebsites.net/) |
| 6 | + |
| 7 | +## 🚀 Product Links |
| 8 | + |
| 9 | +- **[Progress Agentic RAG](https://www.progress.com/agentic-rag)** - Enterprise-grade AI-powered search and retrieval |
| 10 | +- **[Telerik UI for Blazor](https://www.telerik.com/blazor-ui)** - Professional UI components for Blazor applications |
| 11 | + |
| 12 | +## 📋 Overview |
| 13 | + |
| 14 | +This demo application illustrates how to: |
| 15 | + |
| 16 | +- Integrate Progress Agentic RAG with Blazor Server applications |
| 17 | +- Build intelligent search experiences with AI-powered responses |
| 18 | +- Create interactive data visualizations with AI-generated insights |
| 19 | +- Develop conversational AI interfaces with streaming responses |
| 20 | +- Generate customized content based on user inputs |
| 21 | + |
| 22 | +## 🏗️ Architecture |
| 23 | + |
| 24 | +``` |
| 25 | +┌─────────────────────────────────────────────────────────────────────┐ |
| 26 | +│ Blazor Server Application │ |
| 27 | +├─────────────────────────────────────────────────────────────────────┤ |
| 28 | +│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐ │ |
| 29 | +│ │ Razor Pages │ │ Shared Components │ │ Services │ │ |
| 30 | +│ │ │ │ │ │ │ │ |
| 31 | +│ │ - Index │ │ - ChatMessage │ │ - NucliaSearch │ │ |
| 32 | +│ │ - AISearch │ │ - SearchInput │ │ Service │ │ |
| 33 | +│ │ - Financial │ │ - MarkdownContent│ │ │ │ |
| 34 | +│ │ Analysis │ │ - GradientLoader│ │ │ │ |
| 35 | +│ │ - Knowledge │ │ - DrawerComponent│ │ │ │ |
| 36 | +│ │ Assistant │ │ - ChatMessageBox│ │ │ │ |
| 37 | +│ │ - AgenticRag │ │ │ │ │ │ |
| 38 | +│ │ Value │ │ │ │ │ │ |
| 39 | +│ └─────────────────┘ └─────────────────┘ └─────────────────────┘ │ |
| 40 | +├─────────────────────────────────────────────────────────────────────┤ |
| 41 | +│ Telerik UI for Blazor │ |
| 42 | +│ ┌─────────────────────────────────────────────────────────────┐ │ |
| 43 | +│ │ Chat · Charts · Buttons · TextArea · ToggleButton · etc. │ │ |
| 44 | +│ └─────────────────────────────────────────────────────────────┘ │ |
| 45 | +├─────────────────────────────────────────────────────────────────────┤ |
| 46 | +│ Progress Nuclia SDK │ |
| 47 | +│ ┌─────────────────────────────────────────────────────────────┐ │ |
| 48 | +│ │ NucliaDbClient · AskAsync · AskStreamAsync · Search API │ │ |
| 49 | +│ └─────────────────────────────────────────────────────────────┘ │ |
| 50 | +├─────────────────────────────────────────────────────────────────────┤ |
| 51 | +│ Progress Agentic RAG │ |
| 52 | +│ ┌─────────────────────────────────────────────────────────────┐ │ |
| 53 | +│ │ Knowledge Boxes · AI Search · Streaming Responses │ │ |
| 54 | +│ └─────────────────────────────────────────────────────────────┘ │ |
| 55 | +└─────────────────────────────────────────────────────────────────────┘ |
| 56 | +``` |
| 57 | + |
| 58 | +### Key Components |
| 59 | + |
| 60 | +| Layer | Technology | Purpose | |
| 61 | +|-------|------------|---------| |
| 62 | +| **Frontend** | Blazor Server | Server-side rendering with real-time updates via SignalR | |
| 63 | +| **UI Components** | Telerik UI for Blazor | Enterprise-grade UI components (Chat, Charts, Forms) | |
| 64 | +| **AI Integration** | Progress Nuclia SDK | .NET client for Progress Agentic RAG APIs | |
| 65 | +| **AI Backend** | Progress Agentic RAG | AI-powered knowledge retrieval and generation | |
| 66 | + |
| 67 | +## 📱 Demo Pages |
| 68 | + |
| 69 | +### 1. Home Page (`/`) |
| 70 | +The landing page featuring a search bar and navigation to all demo experiences. Users can start exploring the AI capabilities directly from here. |
| 71 | + |
| 72 | +### 2. Intelligent Search (`/ai-search`) |
| 73 | +An AI-powered search interface that: |
| 74 | +- Provides intelligent responses to natural language queries |
| 75 | +- Supports streaming responses for real-time feedback |
| 76 | +- Displays AI-generated answers with markdown formatting |
| 77 | +- Offers popular search suggestions |
| 78 | + |
| 79 | +### 3. Financial Analysis (`/finance-analysis`) |
| 80 | +A conversational AI assistant for financial data analysis: |
| 81 | +- Chat-based interface using Telerik Chat component |
| 82 | +- AI-generated chart visualizations using Telerik Charts |
| 83 | +- Financial insights for companies like Apple, Google, NVIDIA, and more |
| 84 | +- Dynamic chart expansion and thumbnail previews |
| 85 | + |
| 86 | +### 4. Knowledge Assistant (`/knowledge-assistant`) |
| 87 | +A documentation assistant that: |
| 88 | +- Answers questions about KendoReact and related technologies |
| 89 | +- Provides streaming conversational responses |
| 90 | +- Features a drawer navigation component |
| 91 | +- Supports chat suggestions for quick queries |
| 92 | + |
| 93 | +### 5. Agentic RAG Value Proposition (`/value-proposition`) |
| 94 | +A dynamic value proposition generator that: |
| 95 | +- Creates customized proposals based on user inputs |
| 96 | +- Supports industry, company size, data types, and use case selection |
| 97 | +- Generates AI-powered content with markdown formatting |
| 98 | +- Demonstrates form-based AI interaction patterns |
| 99 | + |
| 100 | +## 🛠️ Technology Stack |
| 101 | + |
| 102 | +- **.NET 9.0** |
| 103 | +- **Blazor Server** - Server-side Blazor with SignalR |
| 104 | +- **Telerik UI for Blazor 12.0.0** - Professional UI component suite |
| 105 | +- **Progress Nuclia SDK 0.1.0-preview.9** - AI integration library |
| 106 | + |
| 107 | +## 📦 Prerequisites |
| 108 | + |
| 109 | +Before running this project, ensure you have: |
| 110 | + |
| 111 | +1. **.NET 9.0 SDK** - [Download here](https://dotnet.microsoft.com/download/dotnet/9.0) |
| 112 | + |
| 113 | +2. **Telerik UI for Blazor License or Trial** |
| 114 | + - Visit [Telerik UI for Blazor](https://www.telerik.com/blazor-ui) to obtain a license |
| 115 | + - You can start with a [free trial](https://www.telerik.com/download-trial-file/v2/ui-for-blazor) |
| 116 | + - The trial provides full access to all components for 30 days |
| 117 | + |
| 118 | +3. **Progress Agentic RAG Account** |
| 119 | + - Sign up at [Progress Agentic RAG](https://www.progress.com/agentic-rag) |
| 120 | + - Create Knowledge Boxes and obtain API keys |
| 121 | + |
| 122 | +## 🚀 Getting Started |
| 123 | + |
| 124 | +### 1. Clone the Repository |
| 125 | + |
| 126 | +```bash |
| 127 | +git clone https://github.com/telerik/telerik-blazor-progress-rag-demo.git |
| 128 | +cd telerik-blazor-progress-rag-demo |
| 129 | +``` |
| 130 | + |
| 131 | +### 2. Configure NuGet Package Sources |
| 132 | + |
| 133 | +The Telerik packages require the Telerik NuGet feed. Add it to your NuGet configuration: |
| 134 | + |
| 135 | +```bash |
| 136 | +dotnet nuget add source "https://nuget.telerik.com/v3/index.json" \ |
| 137 | + --name "TelerikNuGet" \ |
| 138 | + --username "<your-telerik-email>" \ |
| 139 | + --password "<your-telerik-password>" |
| 140 | +``` |
| 141 | + |
| 142 | +> **Note:** Replace `<your-telerik-email>` and `<your-telerik-password>` with your Telerik account credentials. |
| 143 | +
|
| 144 | +### 3. Configure Progress Agentic RAG |
| 145 | + |
| 146 | +Update the `blazor-progress-rag-demo/appsettings.json` file with your Progress Agentic RAG credentials: |
| 147 | + |
| 148 | +```json |
| 149 | +{ |
| 150 | + "NucliaDb": { |
| 151 | + "ZoneId": "europe-1", |
| 152 | + "KnowledgeBoxId": "<your-knowledge-box-id>", |
| 153 | + "ApiKey": "<your-api-key>" |
| 154 | + }, |
| 155 | + "NucliaDbCharts": { |
| 156 | + "ZoneId": "aws-eu-central-1-1", |
| 157 | + "KnowledgeBoxId": "<your-charts-knowledge-box-id>", |
| 158 | + "ApiKey": "<your-charts-api-key>" |
| 159 | + }, |
| 160 | + "NucliaDbVerse": { |
| 161 | + "ZoneId": "aws-us-east-2-1", |
| 162 | + "KnowledgeBoxId": "<your-verse-knowledge-box-id>", |
| 163 | + "ApiKey": "<your-verse-api-key>" |
| 164 | + } |
| 165 | +} |
| 166 | +``` |
| 167 | + |
| 168 | +> **Security Note:** For production deployments, use environment variables or user secrets instead of storing credentials in configuration files. |
| 169 | +
|
| 170 | +### 4. Restore Dependencies |
| 171 | + |
| 172 | +Navigate to the project directory and restore dependencies: |
| 173 | + |
| 174 | +```bash |
| 175 | +cd blazor-progress-rag-demo |
| 176 | +dotnet restore |
| 177 | +``` |
| 178 | + |
| 179 | +### 5. Run the Application |
| 180 | + |
| 181 | +```bash |
| 182 | +dotnet run |
| 183 | +``` |
| 184 | + |
| 185 | +The application will start on `https://localhost:5001` (or the port configured in your launch settings). |
| 186 | + |
| 187 | +Alternatively, run from the repository root: |
| 188 | + |
| 189 | +```bash |
| 190 | +dotnet run --project blazor-progress-rag-demo |
| 191 | +``` |
| 192 | + |
| 193 | +## 🔧 Configuration |
| 194 | + |
| 195 | +### Environment Variables |
| 196 | + |
| 197 | +For production deployments, configure the following environment variables: |
| 198 | + |
| 199 | +| Variable | Description | |
| 200 | +|----------|-------------| |
| 201 | +| `NucliaDb__ZoneId` | Zone ID for the default Knowledge Box | |
| 202 | +| `NucliaDb__KnowledgeBoxId` | Knowledge Box ID for general queries | |
| 203 | +| `NucliaDb__ApiKey` | API Key for the default Knowledge Box | |
| 204 | +| `NucliaDbCharts__ZoneId` | Zone ID for the charts Knowledge Box | |
| 205 | +| `NucliaDbCharts__KnowledgeBoxId` | Knowledge Box ID for financial data | |
| 206 | +| `NucliaDbCharts__ApiKey` | API Key for the charts Knowledge Box | |
| 207 | +| `NucliaDbVerse__ZoneId` | Zone ID for the verse Knowledge Box | |
| 208 | +| `NucliaDbVerse__KnowledgeBoxId` | Knowledge Box ID for documentation | |
| 209 | +| `NucliaDbVerse__ApiKey` | API Key for the verse Knowledge Box | |
| 210 | + |
| 211 | +### User Secrets (Development) |
| 212 | + |
| 213 | +For local development, use .NET user secrets from the project directory: |
| 214 | + |
| 215 | +```bash |
| 216 | +cd blazor-progress-rag-demo |
| 217 | +dotnet user-secrets init |
| 218 | +dotnet user-secrets set "NucliaDb:ApiKey" "<your-api-key>" |
| 219 | +dotnet user-secrets set "NucliaDb:KnowledgeBoxId" "<your-knowledge-box-id>" |
| 220 | +# ... and so on for other secrets |
| 221 | +``` |
| 222 | + |
| 223 | +## 📂 Project Structure |
| 224 | + |
| 225 | +``` |
| 226 | +telerik-blazor-progress-rag-demo/ |
| 227 | +├── blazor-progress-rag-demo/ |
| 228 | +│ ├── Pages/ |
| 229 | +│ │ ├── Index.razor # Home page |
| 230 | +│ │ ├── AISearch.razor # Intelligent search |
| 231 | +│ │ ├── FinancialAnalysis.razor # Financial analysis chat |
| 232 | +│ │ ├── KnowledgeAssistant.razor # Documentation assistant |
| 233 | +│ │ └── AgenticRagValue.razor # Value proposition generator |
| 234 | +│ ├── Shared/ |
| 235 | +│ │ ├── MainLayout.razor # Main application layout |
| 236 | +│ │ ├── ChatMessage.razor # Chat message component |
| 237 | +│ │ ├── ChatMessageBox.razor # Chat input component |
| 238 | +│ │ ├── SearchInput.razor # Search input component |
| 239 | +│ │ ├── MarkdownContent.razor # Markdown rendering |
| 240 | +│ │ └── ... # Other shared components |
| 241 | +│ ├── Services/ |
| 242 | +│ │ ├── NucliaSearchService.cs # Progress Agentic RAG integration |
| 243 | +│ │ ├── ChartModels.cs # Chart data models |
| 244 | +│ │ └── Schemas.cs # JSON schemas for AI responses |
| 245 | +│ ├── wwwroot/ # Static assets |
| 246 | +│ ├── Program.cs # Application entry point |
| 247 | +│ └── appsettings.json # Configuration |
| 248 | +├── blazor-progress-rag-demo.sln # Solution file |
| 249 | +└── README.md # This file |
| 250 | +``` |
| 251 | + |
| 252 | +## 🤝 Contributing |
| 253 | + |
| 254 | +Contributions are welcome! Please feel free to submit issues and pull requests. |
| 255 | + |
| 256 | +## 📄 License |
| 257 | + |
| 258 | +This project is provided for demonstration purposes. Please refer to the individual product licenses: |
| 259 | + |
| 260 | +- [Telerik UI for Blazor License](https://www.telerik.com/purchase/license-agreement/ui-for-blazor) |
| 261 | +- [Progress Agentic RAG Terms](https://www.progress.com/legal/terms-of-service) |
| 262 | + |
| 263 | +## 📞 Support |
| 264 | + |
| 265 | +- **Telerik Support:** [Telerik Support Center](https://www.telerik.com/support/blazor-ui) |
| 266 | +- **Progress Agentic RAG:** [Progress Support](https://www.progress.com/support) |
| 267 | + |
| 268 | +--- |
| 269 | + |
| 270 | +Built with ❤️ using [Progress Agentic RAG](https://www.progress.com/agentic-rag) and [Telerik UI for Blazor](https://www.telerik.com/blazor-ui) |
0 commit comments