Interpretos Manual

Everything you need to install, configure, and get the most out of Interpretos Local.

Getting Started

Interpretos Local runs as a Docker container on your infrastructure. All configuration happens in your browser through a setup wizard — no environment variables or config files needed.

Prerequisites

  • Docker and Docker Compose installed on your machine
  • Credentials for your target system (see integration-specific requirements below)
Integration What You Need
Oracle EBS SSH access to the EBS database server (key-based auth) + APPS database credentials
PeopleSoft HCM SSH access to the PeopleSoft database server (key-based auth) + SYSADM database credentials
IBM Maximo Maximo API URL + API key (MAS 8.x/9.x) or admin username & password (Maximo 7.6)
No LLM API key required. The setup wizard offers a free AI backend (Interpretos Cloud) out of the box. You can also bring your own key from Google, OpenAI, or Anthropic.

Installation

Create a file called docker-compose.yml in an empty directory:

services:
  interpretos-local:
    image: interpretos/local:latest
    ports:
      - "8080:5000"
    volumes:
      - interpretos-data:/app/data
    restart: unless-stopped

volumes:
  interpretos-data:

Start the container:

docker compose up -d

Open http://localhost:8080 in your browser to begin the setup wizard.

Setup Wizard

On first launch, the wizard walks you through five steps:

1. Admin Account Set your admin username and password. You must accept the EULA to proceed.
2. AI Provider Free tier (Interpretos Cloud) is pre-selected. Or enter your own API key for Google Gemini, OpenAI, Anthropic, or a custom OpenAI-compatible endpoint.
3. Telemetry Opt in or out of anonymous usage metrics. Disabled by default. See Telemetry for details on what is collected.
4. Database Connection Enter your system credentials and test the connection. For Maximo (API-based), configure credentials in the Admin Panel after setup.
5. Review & Launch Confirm your settings and start chatting.

For detailed per-integration setup steps with example queries, see the Quickstart Guide.


Admin Guide

The Admin Panel is accessible by clicking the gear icon in the top-right corner of the chat interface. Only users with the admin role can access it.

AI Provider Settings

Change your AI provider at any time from Admin Panel > Settings > AI Provider.

Provider What You Need
Interpretos Cloud (Free) Nothing — works out of the box
Google Gemini Google AI API key
OpenAI OpenAI API key
Anthropic Anthropic API key
Custom / Self-hosted Any OpenAI-compatible endpoint URL + API key

Use the Test Connection button to verify your key before saving.

Integration Settings

Modify your database or API connection settings from Admin Panel > Settings. Each integration has its own configuration section.

Oracle EBS settings

Connection mode: SSH tunnel (recommended) or direct connection.

  • SSH tunnel: SSH host, SSH user, SSH private key (PEM format), Oracle Home path, TNS_ADMIN path, database user, password, and service name
  • Direct: Database host, port, service name, database user, and password

Click Test Connection before saving. The test verifies SSH connectivity, Oracle client availability, and database login.

PeopleSoft HCM settings
  • SSH host, SSH user, SSH private key (PEM format)
  • Oracle Home path, TNS_ADMIN path
  • Database user, password, service name
  • PDB name (pluggable database, e.g. HCMVRS)

PeopleSoft uses a separate SSH connection from EBS — configure them independently if you have both.

IBM Maximo settings
  • API Base URL: Your OSLC endpoint (e.g. https://your-server/maximo/api/os for MAS, or http://server:port/maxrest/oslc/os for 7.6)
  • Authentication type: API Key (MAS 8.x/9.x) or MAXAUTH (Maximo 7.6 username/password)

Both authentication methods are fully supported. MAXAUTH credentials are Base64-encoded automatically.

User Management

Manage user accounts from Admin Panel > Users.

Action How
Create user Click Add User, set username, password, and role (admin or user)
Change password Click the user row, then Change Password
Delete user Click the user row, then Delete (cannot delete the last admin)
Roles: admin users can access the Admin Panel and manage all settings. user accounts can only chat and configure their own preferences.

Per-User Credentials & RBAC

By default, all users share the global credentials configured in the setup wizard. For row-level access control, you can give each user their own credentials so they only see data they're authorized for.

Why per-user credentials?

In a real deployment, different people need different access levels. A finance analyst should only see their operating unit's data, not the entire company. A site maintenance planner should only see their site's work orders.

How to set it up

  1. Go to Admin Panel > Users and create user accounts
  2. Go to Admin Panel > Credentials
  3. Select a user and an integration (e.g. Oracle EBS)
  4. Enter that user's own database credentials or API key
  5. Save — when this user chats, their queries will use their credentials

How it works per integration

  • Oracle EBS: Users log in with their EBS username and password via the EBS Login bar in the chat UI. Queries are automatically filtered to their authorized operating units, ledgers, and organizations.
  • IBM Maximo: Each user can have their own API key. The Maximo server enforces security groups, so different keys see different data.
  • PeopleSoft: Each user can have their own database credentials, enforcing PeopleSoft's row-level security via department profiles.

Custom Instructions (Admin)

Custom instructions let you tailor the AI assistant's behavior for your organization. Admin-level instructions apply to all users of a specific integration.

Configure them at Admin Panel > Settings > Custom Instructions. Select an integration (e.g. Oracle EBS), then enter your instructions.

What to put here

  • Organization-specific terminology — "When users say 'budget', they mean the GL net period activity (period_net_dr minus period_net_cr)"
  • Default filters — "Always filter EBS queries to operating unit 204 unless the user specifies otherwise"
  • Naming conventions — "Our Maximo site codes are: BEDFORD, NASHUA, AUSTIN. Users may refer to these as 'Bedford plant', 'NH site', or 'Texas'"
  • Response formatting preferences — "Always show monetary values in USD with two decimal places"
  • Domain context — "We are a discrete manufacturing company. When users ask about 'jobs', they mean work orders, not HR positions"
How it works: Admin custom instructions are injected into the AI system prompt for every conversation on that integration. They sit between the base application knowledge and any user-level instructions. The AI treats them as authoritative guidance from the organization.

Example

## Organization Defaults

Our Maximo instance covers three sites:
- BEDFORD (primary manufacturing)
- NASHUA (warehouse and distribution)
- AUSTIN (R&D lab)

Terminology:
- "PM" means Preventive Maintenance, not Project Manager
- "WO" means Work Order
- "The plant" refers to BEDFORD unless stated otherwise

When showing costs, always include the work order description
alongside the cost figure for context.

Telemetry

Interpretos can optionally send anonymous usage metrics to help us improve the product. Telemetry is disabled by default and requires explicit opt-in during setup or in the Admin Panel.

What is collected (when enabled)

  • Random instance ID (no IP address, no hostname)
  • Query count per day
  • Module used (e.g. PO, AP, GL)
  • Success/failure counts
  • Response time

What is never collected

  • Query text or SQL statements
  • Database hostnames, usernames, or credentials
  • IP addresses
  • Any data from your enterprise systems

You can inspect exactly what will be transmitted before it leaves your network at Admin Panel > Audit Log > Telemetry > Preview.

Audit Log

Every query that Interpretos executes against your systems is logged with full detail. View the log at Admin Panel > Audit Log.

Each entry includes: timestamp, user, the SQL or API call executed, row count, execution time, and success/failure status. The audit log is stored locally in the Docker volume and never transmitted externally.

Diagnostics

The diagnostics panel at Admin Panel > Diagnostics provides a one-click health check of all configured connections. Use it to verify:

  • Database connectivity (SSH + Oracle for EBS/PeopleSoft)
  • API connectivity (Maximo REST endpoint)
  • LLM provider connectivity
  • Pattern loading status

If any connection fails, the diagnostics output includes the specific error to help troubleshoot.


User Guide

This section is for everyone who uses Interpretos to ask questions — you don't need admin access for any of this.

Asking Questions

Select your integration from the dropdown at the top of the chat (e.g. Oracle EBS, Maximo, PeopleSoft), then type your question in natural language.

Tips for better results

  • Be specific — "What is the status of PO 4281?" works better than "Show me POs"
  • Use your normal vocabulary — The AI understands screen labels ("Total Cost") and database names ("totalcost") equally well
  • Ask follow-up questions — The AI remembers your conversation context. After asking about a work order, you can say "What materials were used?" without repeating the WO number
  • Try analytical questions — "Which assets cost us most in maintenance?" or "What work orders are overdue?" — the AI can aggregate, sort, and analyze data across records

Example queries by role

Role Example Questions
Finance "Show me AP aging summary" · "What invoices are on hold?" · "GL balance for account 01-110-1210"
Maintenance "Status of work order 1001" · "Assets with most downtime" · "What PMs are due this week?"
HR "Who is employee KU0001?" · "Show me department headcount" · "Compensation for John Smith"
Procurement "PO 4281 line details" · "Requisitions pending approval" · "Vendor contact for Acme Corp"
Executives "Total maintenance cost by site" · "Top 10 vendors by spend" · "Open order backlog value"

EBS Login (Row-Level Security)

If your admin has set up per-user credentials for Oracle EBS, you'll see an EBS Login bar at the top of the chat when Oracle EBS is selected. Enter your EBS username and password to log in. Your queries will then be filtered to only the data you're authorized to see (your operating units, ledgers, and organizations).

Click Logout to return to the default access level.

Custom Instructions (User)

You can add personal instructions that the AI will follow in all your conversations. These are your own preferences, separate from the admin-level instructions that apply to everyone.

Set them in your user settings (click your username in the top-right corner).

What to put here

  • Your context — "I am the maintenance planner for the Bedford site. When I ask about work orders, I usually mean BEDFORD site only"
  • Response preferences — "I prefer concise answers with tables rather than long paragraphs"
  • Common shortcuts — "When I say 'my POs', I mean purchase orders where the buyer is JSMITH"
  • Language preferences — "Please respond in Spanish" or "Use metric units"

How admin and user instructions work together

The AI receives instructions in this order:

  1. Base knowledge — Built-in understanding of the enterprise system
  2. Admin instructions — Organization-wide defaults set by your admin
  3. Your instructions — Your personal preferences

Your instructions can refine or narrow the admin defaults, but cannot override security restrictions or access controls.


Troubleshooting

Common issues and how to resolve them.

Container won't start

Verify that Docker is running on your machine. Check that port 8080 is not already in use by another application. You can change the port mapping in your docker-compose.yml if needed (e.g., "9090:5000").

Check container logs for more detail:

docker compose logs interpretos-local
Can't connect to Maximo

Double-check your API_BASE URL — for MAS it should end with /maximo/api/os, for Maximo 7.6 use /maxrest/oslc/os. Verify your API key (MAS) or MAXAUTH credentials (7.6) are correct and have read access. Ensure your machine can reach the Maximo server (check firewalls, VPN requirements).

Use Admin Panel > Diagnostics to run a targeted connectivity test.

Can't connect to Oracle EBS

Test SSH access manually first:

ssh -i ~/.ssh/id_rsa root@your-ebs-server

Common issues:

  • SSH key permissions must be chmod 600
  • Ensure sqlplus is available on the remote server
  • Check that ORACLE_HOME and TNS_ADMIN paths are correct
  • Verify the database service name matches your tnsnames.ora entry
Can't connect to PeopleSoft

Test SSH access manually first:

ssh -i ~/.ssh/id_rsa oracle2@your-peoplesoft-server

Common issues:

  • SSH key permissions must be chmod 600
  • Ensure sqlplus is available on the remote server
  • Verify the PDB (pluggable database) is in OPEN state
  • Check that the PDB name matches exactly (e.g. HCMVRS)
Slow responses

The first query after startup takes longer while the system initializes. Subsequent queries will be faster.

Typical response times by integration:

  • Maximo (REST API): under 15 seconds
  • Oracle EBS (SSH + sqlplus): 11–17 seconds per query
  • PeopleSoft (SSH + sqlplus): 11–17 seconds per query

SSH-based integrations have inherent connection overhead. For complex analytical queries, response times up to 30 seconds are normal.

AI responses are inaccurate or generic

If the AI seems to not understand your system or gives vague answers:

  • Check the integration selector — make sure the correct system is selected in the dropdown
  • Check the AI provider — more capable models (Gemini Pro, Claude Sonnet/Opus, GPT-4) give better results than smaller models
  • Use admin custom instructions — teach the AI your organization's terminology and conventions (see Custom Instructions)
  • Be specific — "PO 4281 status" works better than "show me purchase orders"
Forgot admin password

Reset any user's password from the server with a single command. This requires Docker access on the host machine.

docker exec interpretos-local python /app/reset-password.py

This resets the admin account to the default password (admin). You'll be prompted to set a new password on next login. To reset a different user or set a specific password:

docker exec interpretos-local python /app/reset-password.py <username> <new-password>
RBAC not working (all users see the same data)

If different users see the same data despite having different credentials configured:

  • Verify per-user credentials are saved in Admin Panel > Credentials for the specific user and integration
  • Check that the user is logged in with their own account (not the admin account)
  • For EBS: confirm the user clicked EBS Login and entered their EBS credentials in the chat UI
  • Check container logs for RBAC: Injecting per-user credentials messages — if missing, credentials aren't being applied

Licensing & Updates

Free Evaluation

Interpretos Local includes a 30-day free evaluation period with full access to all integrations. No license file is needed — just install and start using it.

License Management

After your evaluation, upload a license file to continue using the product. Your license can be managed at Admin Panel > License.

License status indicators

Status Meaning
Active Licensed and fully operational
Trial Using the 30-day free evaluation
Expiring Less than 7 days until license expiry (warning only, still works)
Grace 0–14 days past expiry (warning only, still works)
Blocked More than 14 days past expiry — access denied until renewed

Installing a license

You can install a license in three ways:

  1. Admin Panel UI: Go to Admin Panel > License > Upload License, paste the JSON content, and click Install
  2. File upload: Upload a .json file directly in the Admin Panel
  3. Docker command:
    docker cp license.json interpretos-local:/app/data/license.json

Updating

All your settings, users, credentials, and audit history are preserved across updates.

Check for updates

Go to Admin Panel > Updates and click Check Now to see if a newer version is available.

Apply an update

In the directory containing your docker-compose.yml:

docker compose pull && docker compose up -d

Docker will recreate the container with the new version. The data volume is untouched — your configuration carries over automatically.

Verify the update

Open Admin Panel > Updates to confirm the new version number, or from the command line:

curl -s http://localhost:8080/api/version

Data Persistence

All data is stored in the Docker volume (interpretos-data) and persists across container restarts and upgrades. This includes:

  • Configuration and credentials (encrypted at rest)
  • User accounts and per-user credentials
  • Custom instructions (admin and user)
  • License file
  • Query audit log
  • Telemetry audit log
Warning: Running docker compose down -v deletes the data volume and all stored configuration. Use docker compose down (without -v) to stop the container while preserving data.

API & Automation

Interpretos Local exposes a REST API that lets you build integrations — Slack bots, dashboards, scripts, or anything that queries your enterprise data programmatically.

Interactive API Reference (Swagger UI)

A full interactive API reference is built into every Interpretos Local instance. Open it at:

http://localhost:8080/api/docs

The Swagger UI lets you browse every endpoint, see request/response schemas, and try requests directly from your browser.

Authentication

Two authentication methods are supported:

  • JWT Bearer Token — Log in via POST /api/auth/login with username and password. Use the returned token in the Authorization: Bearer <token> header.
  • API Key — Create an API key in Admin Panel > API Keys. Pass it in the X-API-Key header or as Authorization: Bearer ik_...

API keys inherit the RBAC permissions of the user they are assigned to. An API key for an admin user can access admin-only endpoints; a key for a regular user is limited to that user's data and permissions.

Quick Start: Chat API

Send a natural-language question and get an AI-powered answer from your connected enterprise system:

curl -X POST http://localhost:8080/api/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ik_your_key_here" \
  -d '{"message": "How many open work orders are there?"}'

Key Endpoints

Method Endpoint Description
POST /api/auth/login Get JWT token
POST /api/chat Send a question, get AI response
GET /api/conversations List conversation history
POST /api/admin/users/bulk Bulk create/update users (admin)
POST /api/admin/credentials/bulk Bulk set user credentials (admin)
GET /api/health Health check (no auth required)

For the complete list of 40+ endpoints with request/response schemas, see the interactive API reference in your running instance.

Bulk User Provisioning

For organizations with many users, the bulk API lets you create hundreds of users and set their integration credentials in a single request:

curl -X POST http://localhost:8080/api/admin/users/bulk \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ik_admin_key_here" \
  -d '{
    "users": [
      {"username": "jsmith", "password": "temp123!", "display_name": "John Smith",
       "credentials": {"maximo": {"API_KEY": "abc123", "API_BASE": "https://maximo.example.com/api"}}},
      {"username": "jdoe", "password": "temp456!", "display_name": "Jane Doe"}
    ],
    "update_existing": false
  }'

The operation never fails the entire batch for one invalid user — errors are collected and returned alongside successful results. Maximum 500 users per request.