This guide will walk you through setting up the Reveal AI Add-On in your existing Reveal SDK application.
⚠️ PRIVATE PREVIEW: This is pre-release software for evaluation only. Not intended for production use. Breaking changes expected before RTM.
Time to Complete: 30-45 minutes
- âś… Private preview access granted by your Reveal sales representative
- âś… NuGet feed credentials (URL, username, and password will be emailed to you)
- âś… Reveal SDK v1.8.3+ installed and working in your ASP.NET Core app
- âś… .NET 8.0 SDK installed
- âś… LLM Provider account (OpenAI or Anthropic recommended)
- âś… At least one datasource configured in Reveal SDK
Add the Reveal AI NuGet feed to your project using the credentials emailed to you.
dotnet nuget add source YOUR_FEED_URL \
--name RevealAI \
--username YOUR_USERNAME \
--password YOUR_PASSWORD \
--store-password-in-clear-textVerify:
dotnet nuget list source
# Should show: RevealAI [Enabled]Using .NET CLI:
cd YourProject
dotnet add package Reveal.Sdk.AI.AspNetCore
dotnet buildUsing Visual Studio:
- Right-click on your project in Solution Explorer
- Select "Manage NuGet Packages"
- Select the "Browse" tab
- Check the "Include prerelease" checkbox (required for preview packages)
- Search for
Reveal.Sdk.AI.AspNetCore - Click "Install"
If using the JavaScript API:
npm install @revealbi/api@0.0.1-preview.2See the @revealbi/api npm package README for client-side usage.
Choose OpenAI (recommended for quick setup) or Anthropic Claude.
Get API Key:
- Visit OpenAI Platform
- Create an API key (starts with
sk-)
Configure in appsettings.json:
{
"RevealAI": {
"DefaultClient": "openai",
"OpenAI": {
"ApiKey": "sk-your-api-key-here",
"ModelId": "gpt-4.1"
}
}
}Get API Key:
- Visit Anthropic Console
- Create an API key (starts with
sk-ant-)
Configure in appsettings.json:
{
"RevealAI": {
"DefaultClient": "anthropic",
"Anthropic": {
"ApiKey": "sk-ant-your-api-key-here",
"ModelId": "claude-sonnet-4-5"
}
}
}Tip: Store your API key in User Secrets rather than committing it to source control.
Update your Program.cs:
using Reveal.Sdk.AI;
var builder = WebApplication.CreateBuilder(args);
// Your existing Reveal SDK setup
builder.Services.AddControllers()
.AddReveal(revealBuilder =>
{
revealBuilder
.AddAuthenticationProvider<AuthenticationProvider>()
.AddDataSourceProvider<DataSourceProvider>()
.AddUserContextProvider<UserContextProvider>();
});
// Add Reveal AI services
builder.Services.AddRevealAI();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();The AI needs metadata about your datasources. Add to appsettings.json:
{
"RevealAI": {
"DefaultClient": "openai",
"OpenAI": {
"ApiKey": "OPENAI_API_KEY",
"ModelId": "gpt-4-turbo"
},
"MetadataService": {
"GenerateOnStartup": true
},
"MetadataManager": {
"Datasources": [
{
"id": "my-datasource-id",
"provider": "SQLServer"
}
]
}
}
}Supported Providers: SqlServer, MySQL, Oracle, Postgres, Snowflake, Athena, AnalysisServices, WebService, Excel and CSV.
Start your application:
dotnet runWatch console output for metadata generation:
MetadataGenerationHostedService starting
Triggering metadata initialization on startup
...
Generating metadata for datasource my-datasource-id
Enriching metadata for datasource my-datasource-id
...
Metadata initialization completed. Metadata is now ready.
Startup metadata initialization completed
Verify metadata files were created:
# Windows
dir %USERPROFILE%\.reveal\ai\metadata\
# Linux/Mac
ls ~/.reveal/ai/metadata/You should see files like:
my-datasource-id_index.jsonmy-datasource-id_MyDB_Orders.json- etc.
Test the AI dashboard generation endpoint:
Using curl:
curl -X POST http://localhost:5000/api/reveal/ai/dashboards \
-H "Content-Type: application/json" \
-d "{\"userPrompt\": \"Show me total sales by region\", \"datasourceId\": \"my-datasource-id\"}"Expected Response:
{
"dashboard": "{...dashboard JSON...}",
"explanation": "I've created a dashboard showing total sales by region..."
}If you want to use the JavaScript/TypeScript API for insights and chat in your web application:
npm install @revealbi/api@latestTypeScript/JavaScript:
import { RevealSdkClient } from '@revealbi/api';
// Initialize the client with your server endpoint
const client = new RevealSdkClient({
serverUrl: 'http://localhost:5000'
});// Generate a dashboard from natural language
const result = await client.ai.dashboards.generate({
userPrompt: 'Show me total sales by region',
datasourceId: 'my-datasource-id'
});
console.log('Dashboard JSON:', result.dashboard);
console.log('Explanation:', result.explanation);// Send a chat message
const chatResponse = await client.ai.chat.sendMessage({
question: 'What were the top 5 products last quarter?',
datasourceId: 'my-datasource-id',
dashboard: revealView.dashboard //the current dashboard (optional)
});
console.log('AI Response:', chatResponse.explanation);
console.log('AI Dashboard:', chatResponse.dashboard);// Analyze an existing widget for insights
const insights = await client.ai.insights.get({
widgetId: 'widget-123',
dashboardId: 'dashboard-abc'
});
console.log('Insights:', insights);// Get list of datasources
const datasources = await client.ai.datasources.list();
datasources.forEach(ds => {
console.log(`${ds}`);
});// Check metadata generation status for a datasource
const status = await client.ai.metadata.getStatus();
console.log('Status:', status.status);For complete API documentation and advanced usage, see the @revealbi/api npm package README.
- NuGet feed configured with credentials emailed to you
- NuGet package
Reveal.Sdk.AI.AspNetCoreinstalled - LLM provider configured (OpenAI or Anthropic)
-
AddRevealAI()registered in Program.cs - Application builds without errors
- Metadata files generated in
~/.reveal/ai/metadata/ - POST to
/api/reveal/ai/dashboardsreturns dashboard JSON - No errors in console logs
Questions? Contact your Reveal sales representative