ChatBI Toolset
ChatBI (Data Analysis) Toolset Seamlessly integrates with Xpert Data Analysis Platform for business intelligence tools.
Configuring ChatBI Toolsetโ
Session Variablesโ
- chatbi_models: List of available Cubes, accessible via- get_available_cubestool.
- chatbi_cubes: List of available Cubes.
- chatbi_cubes_context: Contextual info for available Cubes.
- tool_chatbi_prompts_default: Default prompts for ChatBI tools, usable in main agent prompts.
Prompt Exampleโ
You are a sales analysis expert. Use tools to answer user queries.  
{{tool_chatbi_prompts_default}}  
Common times:  
{{sys.common_times}}  
Available Cubes:  
<cubes>  
{{chatbi_models}}  
</cubes>  
Toolsโ
1. get_available_cubesโ
Fetches list of accessible Cubes. Use {{chatbi_models}} in prompts to reduce tool calls.  
Available Cubes:  
<cubes>  
{{chatbi_models}}  
</cubes>  
2. get_cube_contextโ
Retrieves Cube context (dimensions, measures, metrics). Helps agents understand Cube data structure for accurate responses.
When using Session Summary, context may be summarized. Use {{chatbi_cubes_context}} in prompts for detailed Cube info:  
Cube context:  
<cubes>  
{{chatbi_cubes_context}}  
</cubes>  
3. dimension_member_retrieverโ
Fetches dimension member details (dimension, hierarchy, level, key, caption) for building reports or filters.
Solves inefficient manual searches by using semantic queries and embeddings to return matching members.  
Features:
- Natural language query support.
- Handles multi-level dimension structures.
- Controls TopK results.
- Supports re-embedding for accurate matches.
- Links with model ID and Cube for consistent results.
Use Cases:
- Confirming โEast Chinaโ for sales analysis.
- Retrieving members like โGold Cardโ for filters.
Parameters:
| Parameter       | Type           | Description                          |
|-----------------|----------------|------------------------------|
| modelId       | string         | Data model ID.               |
| cube          | string         | Cube name.                   |
| query         | string         | Keyword for fuzzy search.    |
| dimension     | string (optional) | Dimension name.           |
| hierarchy     | string (optional) | Hierarchy name.           |
| level         | string (optional) | Dimension level.          |
| topK          | number (optional) | Max results returned.     |
| re_embedding  | boolean (optional) | Re-embed members (default: false). |  
Indexing Dimension Members:
Vectorize dimension members for faster retrieval. See Dimension Member Retrieval.
4. answer_questionโ
Answers user queries using Cube context, returning data visuals or metrics.
Temporary Calculated Members:
For queries requiring temporary calculations, agents pass calculated_members to the tool:  
{  
  "calculated_members": [  
    {  
      "name": "Calculated Member Name",  
      "caption": "Display Name",  
      "description": "Description",  
      "formula": "Expression",  
      "formatting": {  
        "unit": "Unit",  
        "decimal": "Decimals"  
      }  
    }  
  ]  
}  
Example: Analyze monthly sales growth rate for value-added resellers over the past two years.
- Fetch Cube context.
- Retrieve dimension member details.
- Build visual answer with monthly growth rate calculated member.

Open the chart execution interpreter to view detailed parameters:

Parameter Control:
For models with parameters, agents select appropriate values.
Example: โTop 5 high-value customer salesโ uses:  
{  
  "parameters": [  
    {  
      "name": "TopN",  
      "value": 5  
    }  
  ],  
  "measures": [  
    {  
      "name": "High-Value Customer Sales"  
    }  
  ]  
}  
5. show_indicatorsโ
Displays metrics as a list when users explicitly request specific indicators.
Feishu-Adapted ChatBIโ
You are a data analysis expert. Use tools to answer user queries.  
If no specific query, use `welcome` tool to suggest 3 questions for Top 3 models based on context.  
If Cube dimensions/measures are missing, use `get_cube_context` first.  
Use `answer_question` for analysis results:  
- Use `slicers` for explicit time.  
- Use `timeSlicers` for relative time:  
  <input>last year</input>  
  <output>lookBack: 1, lookAhead: -1</output>  
  <input>this year</input>  
  <output>lookBack: 0, lookAhead: 0</output>  
  <input>next year</input>  
  <output>lookBack: -1, lookAhead: 1</output>  
  <input>last year to this year</input>  
  <output>lookBack: 1, lookAhead: 0</output>  
Current date: {{sys.date}}  
Common times: {{sys.common_times}}  
If Cube lacks required measures/indicators, create one using `create_indicator` before answering.  
MDX query restrictions:  
1. Same dimension cannot appear in multiple axes (columns, rows, slicers). Use functions like `descendants` for restrictions.  
No image generation needed; visuals are shown via tools.  
Available models:  
<cubes>  
{{chatbi_models}}  
</cubes>  
Note: show_indicators is not supported for Feishu.
welcomeโ
When no specific query is provided, suggests questions for users based on available models.
Set as a terminal tool; no further response needed after execution.
Publishing to Feishu Botโ
Publish ChatBI toolkit as a Feishu bot app via one-click publishing. Displays results as interactive card messages.
See ChatBI Feishu Bot for details.
Version Control & Changelogโ
- v3.4:  - Removed create_indicatortool; replaced withcalculated_membersparameter.
- Added parametersandcalculated_memberstoanswer_questiontool.
 
- Removed