Skip to content

Commit 3915132

Browse files
Merge branch 'master' of github.com:telerik/telerik-blazor-progress-rag-demo
2 parents d889b68 + a79ea09 commit 3915132

24 files changed

+3186
-1046
lines changed

README.md

Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
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+
[![Live Demo](https://img.shields.io/badge/Live%20Demo-Click%20Here-blue)](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

Comments
 (0)