UI Features
The C3 Generative AI Application includes built-in capabilities for querying, reasoning, and automating tasks across your enterprise data. This guide describes the various user interface features presented when you launch the application.
Querying and conversation
You can use natural language to explore information across connected data sources. The application understands context, intent, and follow-up questions to support natural, interactive dialogue.
You can perform the following actions:
- Search across internal documents and databases.
- Summarize long files or sections of reports.
- Compare information across multiple datasets.
- Refine or extend answers through follow-up queries.
- Stop a running query at any time using the stop button. Learn more in Query Interruption.
Recent chat history
The application maintains your recent conversation history so you can review, continue, or reuse previous exchanges. The application retains full context in each chat, allowing follow-up questions to reference earlier responses without restarting the conversation.
Highlight tooltip
The Highlight Tooltip is a popover that appears when a user click-drags to select text (or table/grid content) inside an AI-generated response. A Reply button appears above the selection. Clicking it:
- Places the selected text as a quoted context block above the search input
- Focuses the search bar so the user can type a scoped follow-up question
- Dismisses the tooltip and clears the text selection
- Submits as a new query, with full conversation history preserved
- Automatically clears the quoted context from the search bar after submission
Canvas
Canvas is a dedicated document-creation and editing workspace that activates automatically when an agent produces a long-form output — a draft report, email, form, chart, or any other structured artifact.
In simple terms, whenever you prompt to create a document, Canvas opens as a full-screen editor so you can review, edit, and iterate on the document alongside the agent.
Multimodal inputs
You can include files, images, and text together in a single query. Attach a document, screenshot, or image for additional context, and the application automatically processes all content types in one request.
For example, you can upload a scanned report and ask: "Summarize the performance data shown in this image."
Translation
The application translates automatically across all queries. You can ask questions and receive responses in your preferred language, even when the source content is in another language.
The application grounds all results in your organization's data for traceable and reliable output.
Query interruption allows users to stop a running query before it completes. This is useful when:
- A query is taking longer than expected
- The user realizes they asked the wrong question
- The user wants to refine their query mid-execution
Query Interruption
When a query is running:
- The search/submit button is replaced with a stop button (red stop icon)
- Clicking the stop button immediately:
- Re-enables the search input
- Marks the current result as interrupted
- Stops UI polling for updates
When a query is interrupted:
- The agent stops executing additional steps
- Any steps that already completed are preserved
- The query is marked as "Interrupted" in the UI and history
- The user can immediately submit a new query
Enabling the Stop Button
The stop button is enabled by default. To configure its visibility, update the GenAiUiConfig:
// Enable stop button (default)
GenAiUiConfig.setConfigValue('showStopButton', true);
// Disable stop button
GenAiUiConfig.setConfigValue('showStopButton', false);Backend Behavior
The interruption mechanism works as follows:
UI calls
Genai.Query.Result.interrupt(): Setsinterrupted: trueon the query result and updates the status toCompletedAgent checks for interruption: The dynamic agent checks
_is_query_interrupted()at the start of each step and after each step completesAgent stops gracefully: When interruption is detected, the agent:
- Marks the current call step as completed
- Exits the step loop without executing additional steps
- Preserves all work completed up to that point
Important Notes
- Steps are not rolled back: Any steps that completed before the interruption are preserved in the database
- Timing matters: If you click stop while a step is executing (e.g., waiting for LLM response), the agent won't check for interruption until that step completes
- Immediate UI feedback: The UI updates immediately when you click stop, even if the backend is still processing
Querying Interrupted Results
To find interrupted queries programmatically:
// Fetch interrupted results
var interruptedResults = Genai.Query.Result.fetch({
filter: Filter.eq('interrupted', true),
include: 'this, plan.steps.this, searchQuery.rawQuery, statusHistory',
order: 'descending(meta.created)',
limit: 10,
});
// Display results
interruptedResults.objs.forEach(function (r) {
console.log('Query:', r.searchQuery?.rawQuery);
console.log('Steps completed:', r.plan?.steps?.length || 0);
});To view step details for an interrupted query:
var result = Genai.Query.Result.fetch({
filter: Filter.eq('interrupted', true),
include: 'this, plan.steps.this, searchQuery.rawQuery',
order: 'descending(meta.created)',
limit: 1,
}).objs[0];
console.log('Query:', result.searchQuery?.rawQuery);
if (result.plan?.steps) {
result.plan.steps.forEach(function (step, index) {
console.log('Step', index + 1, ':', step.content);
});
}UI Indicators
The following UI features indicate when a query is running, interrupted, or completed:
- Running query: Stop button (red stop icon) replaces the submit button
- No query running: Normal submit button (search icon)
- When viewing an interrupted result, a banner displays: "Response was interrupted."
- Interrupted queries display an "Interrupted" status badge in the query history grid, distinguishing them from completed, failed, or pending queries.
- The interim status dropdown shows "Interrupted" with a stop icon for interrupted queries, instead of the normal status progression.
Configuration Reference
| Property | Type | Default | Description |
|---|---|---|---|
showStopButton | boolean | true | Whether to show the stop button when a query is running |