返回

How do I embed an AI analyst that chooses the data source on its own?

RSS ThoughtSpot Blog 原文 · 未翻译 发布 2026-11-05 13:07

有效阅读仅保存在当前浏览器,用于「为你」推荐;暂停或清除记录。

DataHot 速览

Embed Spotter, ThoughtSpot's AI analyst, with worksheetId: 'auto_mode' on Spotter 3, and it picks the data source for each question. Or pin a Spotter Analyst that carries its own data sources and instructions. Auto mode is off by default on ThoughtSpot Embedded instances, so ask ThoughtSpot Support

本文目录 10 节
  1. What should you check when you compare tools?
  2. Why do I have to pass a data source today?
  3. Three alternatives to one fixed data source
  4. How do I fix it?
  5. How do I check it worked?
  6. Still failing?
  7. How do I explain this to my team?
  8. How can I try this before I commit?
  9. Related
  10. Subscribe to our blog

原文

Embed Spotter, ThoughtSpot's AI analyst, with worksheetId: 'auto_mode' on Spotter 3, and it picks the data source for each question. Or pin a Spotter Analyst that carries its own data sources and instructions. Auto mode is off by default on ThoughtSpot Embedded instances, so ask ThoughtSpot Support to turn it on first.

Checked against Visual Embed SDK 1.53.1 and the ThoughtSpot Cloud 26.10.0.cl documentation, October 2026.

An AI analyst answers plain-language questions about your data with charts and tables. Spotter is ThoughtSpot's AI analyst. In Auto mode on Spotter 3, it picks the data model for each question itself, within each user's permissions, so your embed code doesn't pass a data source ID.

What should you check when you compare tools?

An AI analyst in your product should answer across your data without your code choosing a table per question, and it must follow each user's permissions. With Spotter 3, "All existing security rules, including column-level and row-level security, are strictly enforced", and data a user can't see "is never sent to the Large Language Model (LLM)" (Spotter data handling).

Ask any vendor:

  • Does the AI assistant work inside the embed, for my external users?
  • Does it follow the same row- and column-level security as the dashboards?
  • What goes to the LLM: whole tables, or only what the user is allowed to see?

Why do I have to pass a data source today?

"If you are embedding the Spotter Classic or Spotter 2 experience, the data source ID is required" (embed Spotter). Spotter 3, from ThoughtSpot Cloud 26.2.0.cl, can choose data sources itself.

Three alternatives to one fixed data source

Option What you set What it needs
Auto mode worksheetId: 'auto_mode' Spotter 3, SDK 1.45.0+, Auto mode enabled on the instance by ThoughtSpot Support
A pinned Spotter Analyst spotterAnalystConfig: { analystId } SDK 1.53.0+, ThoughtSpot Cloud 26.10.0.cl+, an Analyst configured with its data sources
Several set sources dataSources: ['<GUID>', '<GUID>'] Spotter 3, SDK 1.52.0+, ThoughtSpot Cloud 26.9.0.cl+, a feature flag on the instance

Sources: feature availability in embed, SpotterEmbedViewConfig, embed a Spotter Analyst.

How do I fix it?

Auto mode:

import { SpotterEmbed } from '@thoughtspot/visual-embed-sdk';

const spotter = new SpotterEmbed(document.getElementById('spotter'), {
  frameParams: { width: '100%', height: '100%' },
  worksheetId: 'auto_mode',
  updatedSpotterChatPrompt: true, // Spotter 3 chat interface, SDK 1.45.0+
});
spotter.render();

In TypeScript, SpotterEmbed expects an HTMLElement, not a selector string.

A pinned Analyst, one governed agent with its own data sources and instructions:

import { SpotterEmbed, Action } from '@thoughtspot/visual-embed-sdk';

const spotter = new SpotterEmbed(document.getElementById('spotter'), {
  frameParams: { width: '100%', height: '100%' },
  spotterAnalystConfig: { analystId: '<ANALYST_GUID>' },
  hideSourceSelection: true,
  // Stop users switching to another Analyst or to the default Spotter
  hiddenActions: [
    Action.SpotterAnalystSidebar,
    Action.SpotterDefaultAnalyst,
    Action.SpotterAnalystList,
  ],
});
spotter.render();

Building your own chat UI? Make the same choice when you create a conversation through the REST API. From 26.10.0.cl you can pass analyst_identifier instead of metadata_context (REST changelog).

POST /api/rest/2.0/ai/agent/conversation/create
{
  "metadata_context": { "type": "AUTO_MODE" },
  "conversation_settings": { "enable_save_chat": true }
}

Hiding the picker isn't security. "Hiding a control removes it from the interface, but it doesn't restrict what users can do" (embed a Spotter Analyst). Control what each user can query with sharing and row-level security (Blogs 3a and 3b).

How do I check it worked?

Ask two questions whose data lives in different Models. Spotter should answer both without your code passing a GUID.

Still failing?

  • Spotter is blank. Check the allowlists (Blog 2) and that users have Can use Spotter. The product docs add Can download data for Spotter 3 (Spotter versions).
  • You're on Spotter Classic or Spotter 2. Auto mode isn't available. Pass a Model GUID.
  • Spotter picks the wrong source or column. Improve the Model's names and descriptions (Blog 8).

How do I explain this to my team?

Who What they'll ask What you can tell them
Product lead What do our users get? A chat in our app where they ask questions in plain language and get charts and tables back, instead of filing report requests.
Security What does the LLM see? Spotter "never sends entire tables or databases to LLM providers", only "the relevant, filtered query results necessary to answer".

Proof you can forward: "Our experience was using Spotter and then embedding it in our product; we were not talking about months of work. We were talking about weeks." Aria Moshari, Director of Software Engineering, Verisk (How Verisk scaled embedded analytics).

How can I try this before I commit?

Start a free ThoughtSpot Embedded trial.

Related

Subscribe to our blog

这篇内容对你有用吗?

反馈只用于改善内容筛选,不等同于收藏

分享这条资讯
分享海报
保存图片
iOS 也可以长按图片保存