Commit 3ac73b1
[AI] Add experimental AI Chat and Context Provider plugins for OpenSearch Dashboards (#10600)
This PR introduces two new plugins that enable AI-powered chat functionality with intelligent context capture in OpenSearch Dashboards:
### 🤖 Chat Plugin (`src/plugins/chat`)
- **AI-powered chat interface** integrated into the OpenSearch Dashboards header
- **AG-UI framework integration** for LLM interactions with streaming support
- **Tool calling system** with dynamic action registration and execution
- **Graph visualization capabilities** for time series data
- **Context-aware conversations** that understand dashboard state and user interactions
**Key Features:**
- Real-time streaming chat responses via Server-Sent Events
- Tool execution with visual feedback and result rendering
- Conversation management with thread isolation
- Integration with OpenSearch Dashboards navigation and theming
### 🔍 Context Provider Plugin (`src/plugins/context_provider`)
- **Modern React hooks architecture** for context capture (`usePageContext`, `useDynamicContext`)
- **Automatic URL state monitoring** captures time ranges, queries, datasets, and filters
- **Dynamic interaction capture** tracks document expansions, text selections, and user actions
- **Global context store** for AI assistant and MCP server integration
- **Zero-dependency design** works across all plugins without modifications
**Key Features:**
- Direct browser URL monitoring for universal plugin compatibility
- Category-based context organization for efficient filtering
- Automatic lifecycle management with React hooks
- Text selection capture with visual indicators
- Backend-optimized context formatting
Both plugins are designed to enhance the OpenSearch Dashboards experience by providing intelligent, context-aware AI assistance that understands user workflows and can execute actions on their behalf.
---------
Signed-off-by: Anan Zhuang <[email protected]>
Signed-off-by: Joshua Li <[email protected]>
Co-authored-by: Ashwin P Chandran <[email protected]>
Co-authored-by: Joshua Li <[email protected]>
Co-authored-by: Kyle Hounslow <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>1 parent 02e0b49 commit 3ac73b1
File tree
109 files changed
+17529
-61
lines changed- changelogs/fragments
- config
- docs
- src
- core/public
- chrome/ui/header/__snapshots__
- overlays/sidecar
- rendering
- plugins
- chat
- common
- public
- actions
- components
- graph_visualization
- contexts
- services
- server
- routes
- context_provider
- public
- components
- contexts
- hooks
- providers
- services
- explore
- public
- application
- components
- data_table
- table_row
- query_panel
- actions
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
109 files changed
+17529
-61
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
| 52 | + | |
51 | 53 | | |
52 | 54 | | |
53 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
60 | 68 | | |
61 | 69 | | |
62 | 70 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
388 | 388 | | |
389 | 389 | | |
390 | 390 | | |
391 | | - | |
392 | 391 | | |
393 | 392 | | |
394 | 393 | | |
| |||
401 | 400 | | |
402 | 401 | | |
403 | 402 | | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| 45 | + | |
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
| 195 | + | |
195 | 196 | | |
196 | 197 | | |
197 | 198 | | |
| |||
236 | 237 | | |
237 | 238 | | |
238 | 239 | | |
239 | | - | |
240 | 240 | | |
241 | 241 | | |
242 | 242 | | |
| |||
274 | 274 | | |
275 | 275 | | |
276 | 276 | | |
| 277 | + | |
277 | 278 | | |
278 | 279 | | |
279 | 280 | | |
| |||
313 | 314 | | |
314 | 315 | | |
315 | 316 | | |
316 | | - | |
| 317 | + | |
| 318 | + | |
317 | 319 | | |
318 | 320 | | |
319 | 321 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
| 33 | + | |
32 | 34 | | |
33 | | - | |
| 35 | + | |
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
| |||
0 commit comments