Skip to content

5分钟上手OraAI

概述

OraAI是完全基于AI框架开发的数据分析平台,推理严密、回答准确、部署简单。用户不需要SQL基础,通过自然语言问答实现数据分析,让业务人员真正能够挖掘数据。

基本流程

同步数据

OraAI使用StarRocks作为内部数仓,提供高性能分析能力。平台管理员使用数据同步工具,把业务数据导入StarRocks。 推荐工具:

定义模型

OraAI使用模型数据文件语义模型文件描述数据信息。其中模型文件赋予数据业务含义,模型文件定义越详细,OraAI生成结果越准确。

以电商订单数据为例,通过定义订单主表模型,让OraAI能够深刻理解数据业务含义,让回答更准确,避免出现大模型幻觉。

注意:定义yml文件时,需要使用snake_case命名规范。它的优势在于可读性强,能够清晰区分多个单词组成的标识符,同时避免了大小写敏感可能带来的问题。

  • 所有字母均为小写
  • 单词之间用下划线(_)连接
  • 不使用空格或其他符号
  • 例如:
    • ec_demo
    • so_id
    • pay_date
    • total_amount

1. 建立项目目录

建立项目文件目录,包含项目配置文件、模型定义目录和数据集定义目录。

shell
ec_order/
├── ora.yml                     # OraAI项目配置文件
├── models/                     # 语义模型文件目录
   └── fct_order_main.yml      # yml文件
└── sqls/                       # SQL文件目录
    └── fct_order_main.sql      # sql文件

定义项目配置文件,ora.yml

yaml
projects:
  - path: .                     # 可选 - 项目主目录请使用'.'。
    data_source_name: ecdemo    # 必填 - OraAI平台中数据源名称,必须是英文名。 
    schema: ec_demo             # 必填 - 数据库模式。
    database: ec_demo           # 可选 - 数据库。
    model_paths:                # 必填 - SQL文件目录。
      - sqls
    semantic_model_paths:       # 必填 - 语义模型文件目录。
      - models

2. 定义数据集

数据集文件使用SQL格式,通过SELECT语句获取数据。数据集名称为fct_order_main,数据集文件名为fct_order_main.sql

sql
-- ec_order/sqls/fct_order_main.sql
SELECT
  so_id,
  shop_name
FROM
  ec_dwm.fct_order_main

3. 定义语义模型

模型文件使用YAML格式,定义维度、指标、过滤器等语义组件的业务描述信息。模型文件详细描述了字段的业务含义,定义了关键指标的计算公式,添加了常用过滤器。模型文件名为fct_order_main.yml

yaml
# ec_order/models/fct_order_main.yml
version: 1
name: fct_order_main
description: >
  线上订单主表,记录每一笔线上订单的关键信息,包括订单号、内部订单号、店铺名称、下单时间、支付时间、订单类型、订单状态、线上状态及仓库名称等。用于订单全流程追踪、分析与多表关联。

dimensions:
  - name: so_id
    description: >
      线上平台生成的订单唯一标识符。用于订单主表的主键,支持与订单明细、出库单、售后单等表进行关联。
    type: string
  - name: shop_name
    description: >
      订单所属的线上店铺名称,便于多店铺数据分析与筛选。
    type: string

metrics:
  - name: order_count
    description: >
      订单总数,用于分析订单量。
    expr: "COUNT(DISTINCT so_id)"
    type: int

filters:
  - name: by_shop_name
    description: >
      根据店铺名称筛选订单,支持多店铺选择。
    expr: "shop_name = {{query_shop_name}}"
    args:
      - name: query_shop_name
        type: string
        description: "需要查询的店铺名称"

详情参考语义层

4. 发布语义模型

平台管理员定义好语义模型后,通过orai-cli命令行工具,把模型发布到OraAI平台。

shell
$ cd ec_order                       # 进入项目目录
$ orai-cli auth                     # 完成身份认证
$ orai-cli parse                    # 验证模型文件
$ orai-cli deploy                   # 上传模型文件

详情参考模型上传工具

5. 查看语义模型

完成上传后,用户能够在OraAI平台查看模型详情。

在左侧菜单中,依次点击管理工具 --> 数据集 --> 编辑器 --> SQL,查看数据集定义。

数据集定义

在左侧菜单中,依次点击管理工具 --> 数据集 --> 编辑器 --> 元数据,查看语义模型定义。

语义模型定义

用户提问

用户在OraAI平台使用自然语言提出问题,OraAI使用大模型对问题进行推理、验证、审核,并返回分析结果。

1. 输入问题

输入问题

2. OraAI使用大模型进行推理

创建指标

3. 展示结果

图表展示

4. 检查过程

分析人员可以跟踪数据产生的过程,包括结果数据、SQL语句等。

结果数据

SQL语句