Ora
All guides All guides

Getting started

Your first decision in the Playground Call the API from your code Save, share and reuse queries

Financial decisions

Decide on a stock with just its symbol Write your own rule Read probabilities and choose thresholds

Rule playground

From English to rule Combining conditions Offsets and windows Reading beliefs Rules plus forecasts in one request Turning a rule into an alert or workflow

Automation

Send a Slack alert when a rule fires Send decisions to your own system Run a watchlist every day after the close

Production

Handle errors, rate limits and retries

Cookbooks

All cookbooks Rank a watchlist by probability Send a pre-open digest Trend filter plus entry trigger Breakout confirmation with volume RSI and Bollinger mean-reversion checks Gap-fill playbook to your order system Confidence-gated actions Detect two-way risk Size positions by volatility regime Risk guardrail before an order Ask many questions in one request Self-consistency: three wordings Route support tickets Is a headline relevant to a symbol?

Use cases

Tag financial news for trading signalsGuardrails for LLM appsSupport ticket triage and routingFilter retrieved passages before your LLM answersVerify claims and citations against a source

Guides / Cookbooks

Cookbooks · Text · Beginner · about 5 min

Route support tickets

Pick the team, rate the urgency and spot a workaround request in one call, and route automatically only when the answer is confident.

  1. When to use it

    Any queue of short messages that needs a team and a priority. With text in state, the request goes to the text engine, which also answers choice and score questions.

  2. The request

    {
      "model": "ora-fin1",
      "state": "Hi, since this morning every export to CSV from the reports page times out after about a minute. We have a board meeting tomorrow and need these numbers. Is there a workaround?",
      "questions": {
        "team": {
          "type": "choice",
          "instructions": "Which team should handle this?",
          "criteria": {
            "billing": "Charges, invoices, refunds",
            "technical": "Bugs, errors, timeouts, integrations",
            "account": "Login, users, permissions",
            "sales": "Plans and pricing"
          }
        },
        "urgency": {
          "type": "score",
          "instructions": "How urgent is this?",
          "criteria": [
            "Can wait",
            "This week",
            "Today",
            "Right now"
          ]
        },
        "workaround": {
          "type": "yes_no",
          "instructions": "Is the customer asking for a workaround?"
        }
      }
    }
    Open this in the Playground
  3. The real response

    {
      "model": "ora-fin1",
      "answers": {
        "team": {
          "type": "choice",
          "choice": "technical",
          "confidence": 0.732,
          "probabilities": {
            "billing": 0.052,
            "technical": 0.799,
            "account": 0.102,
            "sales": 0.047
          }
        },
        "urgency": {
          "type": "score",
          "score": 2.188,
          "confidence": 0.802,
          "legend": [
            "Can wait",
            "This week",
            "Today",
            "Right now"
          ],
          "probabilities": [
            0.002,
            0.001,
            0.804,
            0.193
          ]
        },
        "workaround": {
          "type": "yes_no",
          "yes_no": 0.868
        }
      },
      "usage": {
        "input_tokens": 445,
        "output_tokens": 20
      },
      "version": "ora-text-0.2.0"
    }

    team is technical with confidence 0.732. urgency is 2.188 on a 0–3 scale (most of the probability on “Today”), and workaround is 0.868.

  4. The code

    Requires curl 7.76+. Save as run.sh, then: bash run.sh
    curl -sS https://oramodel.com/v1/systemone \
      -H "Authorization: Bearer $JEV_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "model": "ora-fin1",
      "state": "Hi, since this morning every export to CSV from the reports page times out after about a minute. We have a board meeting tomorrow and need these numbers. Is there a workaround?",
      "questions": {
        "team": {
          "type": "choice",
          "instructions": "Which team should handle this?",
          "criteria": {
            "billing": "Charges, invoices, refunds",
            "technical": "Bugs, errors, timeouts, integrations",
            "account": "Login, users, permissions",
            "sales": "Plans and pricing"
          }
        },
        "urgency": {
          "type": "score",
          "instructions": "How urgent is this?",
          "criteria": [
            "Can wait",
            "This week",
            "Today",
            "Right now"
          ]
        },
        "workaround": {
          "type": "yes_no",
          "instructions": "Is the customer asking for a workaround?"
        }
      }
    }'
  5. Act on it

    a = data["answers"]
    if a["team"]["confidence"] >= 0.6:
        assign(ticket, team=a["team"]["choice"], priority=round(a["urgency"]["score"]))
    else:
        send_to_triage(ticket)          # a person decides
    if a["workaround"]["yes_no"] >= 0.7:
        attach_known_workarounds(ticket)
  6. Variations

    • Add descriptions and examples to the options when two teams are often confused.
    • Send urgent ones to Slack with an action: "when": "urgency >= 2.5".

Information, not investment advice. Every number on this page is a real response for the session shown; answers change with each session.

What's next

Create an account Open the Playground Everything here also lives in the console, next to your keys and usage.