Promethea Docs
● Private enterprise AI

Your factory's private AI, on your own box.

Promethea is a self-hosted AI workspace that turns a company's documents, email, chat and ERP into permission-aware answers — with data sovereignty controls that keep sensitive material on-premises. Built for SMEs, tuned for Taiwan.

🚀

Onboarding Agent

An in-app agent scouts readiness and sets you up step by step.

🔒

Data sovereignty

The egress gate keeps confidential data on-box; the cloud never sees it.

🔌

31 connectors

ERP (Digiwin, Chienhung), LINE, plus 25 Glean-class SaaS sources.

🧠

Cloud or on-prem models

AWS Bedrock or on-box Ollama — chosen per query by policy.

Overview

Promethea gives a company a private "ask anything" surface over its own knowledge, without shipping that knowledge to a public SaaS. Every deployment is a dedicated instance the customer owns; retrieval is permission-aware so people only ever see what their role allows; and a configurable egress gate decides, per query, whether an answer may use a cloud model or must stay on the on-box model.

  • Ask & retrieve — natural-language Q&A grounded in the company's documents, with cited sources.
  • Ingest anything — folders, email, chat, and 31 connectors feed one permission-aware pipeline.
  • Govern access — users, groups, departments, per-document sensitivity, and audit.
  • Automate — in-chat agents draft quotations, reply to email, write meeting memos, and onboard new customers.

Architecture

Promethea is a four-layer stack running on a single tenant-isolated box:

LayerResponsibility
Layer 1 — ProvidersLLM + embedding providers (AWS Bedrock, on-box Ollama). One base model in memory; per-request model selection.
Layer 2 — Shared platformRetrieval (ChromaDB vector store), access control, egress gate, DLP, connectors, agents, the API (FastAPI).
Layer 3 — TenantsPer-customer data: access_policy.yaml, egress_policy.yaml, the vector store, auth, audit log.
FrontendReact SPA served by nginx; talks to /v1.
On-box embeddings, always. Text is embedded locally with bge-m3 (via Ollama) regardless of the chat provider, so document vectors never leave the box even when answers use the cloud model.

Quickstart

A customer receives a preinstalled URL — e.g. https://yourco.functionalaisolutions.com/ — and an owner login. From there:

  1. Sign in as the owner and set a password (first login forces a change).
  2. Open Onboarding in the sidebar — the agent guides the rest.
  3. Define departments → create groups → add users → connect a source and ingest → set the egress policy.
  4. Go to Ask and query your data.

Onboarding Agent

The Onboarding page pairs a live setup checklist with a setup assistant (Claude Sonnet 4.5). The agent reads the system's readiness, focuses you on the next incomplete step, and proposes a concrete action as an Approve button. On approve, the server performs it through the same governed admin functions the UI uses — nothing runs without your confirmation.

The seven readiness checks

CheckMeans
AI models availableA chat model + on-box embeddings are configured.
Access policy in placeaccess_policy.yaml exists.
Departments definedThe company's departments are set.
Groups configuredRoles/groups with feature permissions exist.
Users addedPeople beyond the owner are added and assigned to groups.
Documents ingestedAt least one source has been indexed.
Egress policy setThe data-sovereignty policy is chosen.

The agent can perform nine action types on approval: add a department, create/update a group, create one or many users, reassign a user's group, ingest from a connector, and set the egress policy. If a customer needs a source Promethea can't connect to yet, the agent raises a support request to first-line support — captured in-app and emailed.

→ Read the full onboarding walkthrough — the customer journey from a fresh box to a working workspace, with screenshots of every screen.

Ask (retrieval-augmented Q&A)

Ask answers questions in natural language, grounded in the tenant's corpus, with the exact source documents cited and downloadable. Retrieval is hybrid (dense + exact-token keyword) and, critically, permission-scoped: the access filter is applied inside the vector search, so a user can never retrieve a document above their clearance — it isn't hidden after the fact, it's never fetched.

  • Doc-context expansion — the retrieved chunk locates the document; its neighbours are stitched in to answer.
  • Query expansion — paraphrases widen recall on fuzzy questions.
  • Model choice — users pick a model (or the deployment default); the egress gate may override the choice for sensitive data.

Documents & ingestion

The Documents page browses the sealed document root, uploads files, and runs bulk indexing. Ingestion is incremental (a content-hash pre-pass skips unchanged files) and every file flows through the same pipeline: categorize → normalize → chunk → access-tag → embed → store. Folder layout drives department tagging automatically (e.g. documents/Sales/… → the Sales department).

Sources & connectors

Beyond folders and email, Promethea ships 31 connectors across one framework. Every connector emits the same normalized item and lands in the same permission-aware pipeline, so ERP rows and Slack threads become retrievable knowledge with no special handling.

Taiwan-first (native)

  • ERP SQL — one reader, many ERPs via profiles: Digiwin 鼎新, Chienhung 正航, SAP, generic SQL.
  • LINE — chat history + Official Account messages.
  • Local folder, Google Drive, Gmail, web crawler.

25 Glean-class SaaS

Slack, Teams, SharePoint, OneDrive, Outlook, Confluence, Jira, ServiceNow, Salesforce, HubSpot, Zendesk, Notion, GitHub, GitLab, Linear, Box, Dropbox, Asana, Trello, monday.com, Airtable, Intercom, Figma, Guru, Zoom.

Connect a source from the Sources page: pick a connector, enter its credentials, and Promethea starts a background ingest. See the developer docs to build a new connector.

Access & roles

Promethea models a company as departments, groups (roles), and users. A user's group grants its departments and a maximum sensitivity clearance; groups also carry feature toggles (governance capabilities like cloud-model use, document download, bulk ingest). Every retrieved chunk is tagged with visibility, department, owner and sensitivity, and the policy engine filters retrieval per caller.

  • Per-user privacy — a private upload is visible only to its owner.
  • Per-document sensitivity override — reclassify a specific document.
  • Permission preview — an admin can safely see exactly what a given user would retrieve, without logging in as them.
  • Tamper-evident audit log — every admin change is hash-chained.

Data sovereignty — the egress gate

The egress gate decides, per query, whether an answer may use the cloud model. Actions are allow (send to cloud), route_local (answer on the on-box model instead), or refuse. Rules key on sensitivity, department, and DLP findings (e.g. Taiwan national ID, salary, cost floors).

ModeBehaviour
strictPublic/internal → cloud OK; confidential → on-box model; secret → refused to cloud.
cloud_okEverything may go to the cloud model (fastest; for online-first deployments).
Trade-off. A strict policy needs an on-box chat model for route_local to answer confidential queries; on a Bedrock-only box those fall back to "refuse". The Onboarding Agent can set either mode for you.

Agents

In-chat agents perform real work from the corpus + structured stores:

  • Draft quotation — builds a quote from products, quantities and historical pricing (with an approval workflow).
  • Reply email / support reply — drafts a reply, optionally as an editable .docx.
  • Meeting memo — turns notes into a formatted memo.
  • Onboarding agent — guided setup (see above).

Agents are declarative (YAML specs) or code-built, and tenants can add their own.

Ecosystem apps

Two companion apps share Promethea's single sign-on under the same domain:

  • Company map (/apps/company/) — a live org chart built from the tenant's real users, departments and documents, filtered per viewer.
  • Meeting notes (/apps/meetings/) — live transcription + AI notes; exports Word and Promethea-ingestible data.

Analytics

An admin Analytics view rolls up usage in three tabs: query & model utilization, user activity, and system metrics (CPU, memory, disk). It reads the audit + activity stores — no external telemetry.

Models & deployment

Each Promethea runs on a dedicated instance. The model catalog is per-deployment:

  • Cloud — AWS Bedrock: Claude Haiku/Sonnet 4.5, plus Llama, DeepSeek, Nova, Mistral, MiniMax, Kimi, GLM.
  • On-box — Ollama (e.g. qwen2.5) for the egress route_local path; bge-m3 for embeddings.

An online deployment is typically Bedrock-only for chat (with on-box embeddings). A GPU box is recommended if the customer will run heavy on-prem inference for sensitive queries.

Security & compliance

  • Tenant isolation — one instance per customer; data never crosses tenants.
  • Permission-aware retrieval — access filter applied inside the vector search.
  • Egress control + DLP — sensitive data can be kept entirely on-box.
  • Forced first-login password change; JWT-signed sessions; TLS via Let's Encrypt.
  • Hash-chained audit log of every admin action.

Glossary

TermMeaning
TenantA single customer's isolated Promethea instance and data.
Egress gatePer-query policy deciding cloud vs on-box answering.
ConnectorA source integration that emits normalized items into the ingest pipeline.
Group / roleA set of departments + clearance + feature permissions assigned to users.
ScoutThe Onboarding Agent's read-only readiness report.
Route localEgress action: answer on the on-box model instead of the cloud.