OSI Runtime

An open-source runtime for OSI semantic models. It reads an OSI YAML definition and generates SQL from semantic queries — you ask for a metric by name, and it produces the correct query.

This demo runs entirely in your browser. The database is DuckDB-WASM loaded with sample sales data. Try clicking an example query above the top panel, or type your own. You can type help in either panel for available commands. See the semantic model and database schema below.

View source on GitHub · Part of the truespeech project

Semantic Model

The OSI YAML definition that the runtime uses. It defines two metrics (total_sales and average_order_value) and three dimensions (order_date, region, product_tier) over a single orders dataset.

semantic_model:
  - name: retail_sales
    description: Sales analytics model for retail operations
    ai_context:
      instructions: "Use this model for sales analysis and customer insights"
    datasets:
      - name: orders
        source: orders
        primary_key: [order_id]
        fields:
          - name: order_id
            expression:
              dialects:
                - dialect: ANSI_SQL
                  expression: "order_id"
          - name: order_date
            expression:
              dialects:
                - dialect: ANSI_SQL
                  expression: "order_date"
            dimension:
              is_time: true
            description: Date the order was placed
            ai_context:
              synonyms:
                - "date"
                - "sale date"
          - name: region
            expression:
              dialects:
                - dialect: ANSI_SQL
                  expression: "region"
            dimension:
              is_time: false
            description: Sales region
            ai_context:
              synonyms:
                - "sales region"
                - "territory"
          - name: product_tier
            expression:
              dialects:
                - dialect: ANSI_SQL
                  expression: "product_tier"
            dimension:
              is_time: false
            description: Product tier classification
            ai_context:
              synonyms:
                - "tier"
                - "product category"
              instructions: "Values are 'enterprise' and 'consumer'"
          - name: amount
            expression:
              dialects:
                - dialect: ANSI_SQL
                  expression: "amount"
            description: Order amount in USD
    metrics:
      - name: total_sales
        description: Total gross sales revenue
        expression:
          dialects:
            - dialect: ANSI_SQL
              expression: "SUM(orders.amount)"
        ai_context:
          synonyms:
            - "sales"
            - "revenue"
            - "total revenue"
      - name: average_order_value
        description: Average value per order
        expression:
          dialects:
            - dialect: ANSI_SQL
              expression: "AVG(orders.amount)"
        ai_context:
          synonyms:
            - "AOV"
            - "average order size"
          instructions: "Enterprise and consumer tiers have fundamentally
            different price points; always scope to a specific product_tier
            unless explicitly asked for a blended average."

Database Schema

The underlying DuckDB table loaded with ~200 rows of sample sales data spanning January 2025 through April 2026.

CREATE TABLE orders (
    order_id      INTEGER PRIMARY KEY,
    order_date    DATE NOT NULL,
    region        VARCHAR(50) NOT NULL,
    product_tier  VARCHAR(20) NOT NULL,
    amount        DECIMAL(10, 2) NOT NULL
);