Chat
Ask questions about your knowledge base
Filters — all collections
Documents
Build structured documents from your knowledge base using AI
Loading...
Status
System overview and health status
Loading...
| Collection | Chunks |
|---|
Files & Collections
Browse and manage files in the knowledge base
| File | Type | Size | Modified | Actions |
|---|
Upload Files
Select files from one or more folders, then upload them all at once
Document date applies to ALL files in this batch. For different dates, upload separate batches. Auto-detected from filename (e.g. doc_2025-03-10.pdf) or last-modified time if left blank.
Drag & drop files here, or click Add Files above
PDF, DOCX, TXT, MD, JSON, HTML, XLSX/XLS/CSV/TSV/ODS — max 1 GB
Processing Activity
Track file ingestion progress, queue status, and processing events
Loading...
Collections
Define collections with query prompts, filters, and S3 prefixes
API Keys
Manage user access keys and permissions
SSO Users
Users who signed in via Google Workspace. New arrivals start as pending — assign them a role here.
Roles
Define roles with granular permissions, collection access, and per-role rules
Response Rules
Control what the AI can and cannot include in responses
Access Rules
Network-level access control for the API
Webhooks
Send events to external systems (CRM, Slack, etc.) when things happen in the knowledge base.
Loading...
Email Automation
Mailu + Gmail ingestion, rules, and audit log
Settings
System configuration and AI model settings
us.amazon.nova-lite-v1:0 (~20× cheaper than Claude Haiku 4.5 and not on an EOL path).spk_0 / spk_1 / … to real names from greetings and cross-references. Any Bedrock Converse-capable model works. Default: us.amazon.nova-lite-v1:0./api/knowledge, and files reached via GDrive link discovery (discovered/ prefix). Lower than the upload floor because all three are programmatic writes the admin opted into; short targets are common and intentional.invoke_model path if any issue appears. Takes effect within ≤5 min (SSM cache TTL).
/auth/google/* returns 503, session cookies are ignored, and the login page falls back to the API-key form. Use only if SSO is broken. Takes effect within ≤5 min.
citation_check.flagged_loose to the response so UIs can render a warning when overlap is low.
meeting_summary; improves recall on broad queries. Small per-document cost (uses Nova Lite by default).
is_doc_summary=true). Broad queries hit it; specific queries still hit the regular chunks. Off by default — enable both this and auto-summary together.
extract_failed CloudWatch metric so you see the rejection). Catches pathological inputs (1 GB text files, malformed exports). 0 = no cap. Default 2000 — way more than any real document.
example.com also covers www.example.com and sub.example.com. Two-layer enforcement — chunks containing these URLs are dropped from retrieval (so the LLM is never influenced by them) AND any blocked URLs the model emits anyway are stripped from the answer + source previews. Markdown links keep their anchor text (e.g. [Click here](https://blocked.com) → Click here). Empty = feature off. Useful for competitor sites, outdated references, or compliance-required omissions.
.docx files with unresolved Word "Track Changes" are ingested. "Accept" treats them like a normal final draft; "Raw" preserves the revision history in the indexed text so retrieval can answer audit questions like "what was deleted on Q3 update?". Takes effect for documents indexed AFTER toggle (re-upload to apply).
backups/system-archive/ — exempt from the 30-day rolling-delete rule. Transitions to Glacier Deep Archive after 90 days and is retained for 7 years. Runs once per month on the configured day (UTC), independent of the rolling backup schedule above.
System Logs
Query logs, ingestion events, and audit trail
Select filters and click Search Logs.
Analytics
Usage statistics and trends
AI Cost
Bedrock spend broken down by role, purpose, and model. Every synthesis / embedding / metadata-extraction / speaker-resolution call is tagged and emitted to CloudWatch — this page reads those metrics back so you can see where the bill is going without leaving the admin UI.
mcp_server/bedrock_metrics.py — review quarterly against AWS billing.
Loading...
Loading...
Loading...
| Role | Purpose | Model | Calls | Input tokens | Output tokens | Cost |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Feedback signal
Thumbs up/down votes on chat answers. Each vote attributes to the sources the answer was grounded on — accumulated reputation is a capped multiplicative nudge (±15% by default) on that source's future retrieval score. Live in the background; no manual action required. Use this page to spot patterns.
Settings → RAG Configuration (scroll to Feedback).
Sources producing answers users mark as helpful. These get a slight ranking boost.
| Source | Up | Down | Net |
|---|---|---|---|
| Loading... | |||
Sources producing answers users mark as unhelpful. These get a slight ranking penalty. Review + fix the source content or delete if consistently bad.
| Source | Up | Down | Net |
|---|---|---|---|
| Loading... | |||
Review + act. Common pattern: edit the cited source OR add the question to the collection's blocked-topics list.
Loading...
Alerts
Server-side health probes that email recipients via SES on threshold breach. Replaces a CloudWatch alarm + SNS topic stack.
"Send test emails" dispatches a [TEST]-prefixed sample of every alert type to the recipients listed below. Bypasses cooldowns. Use it after onboarding a new recipient or changing thresholds, to confirm SES delivery works.
| Alert | Last fired |
|---|---|
| Loading... | |
All values are stored in SSM /medlink-kb/alerts-config. Changes propagate within 60 s (in-process cache TTL). Recipients must be SES-verified identities or your account must be out of the SES sandbox.
Advanced — anomaly detection & key hygiene
Eval Harness
Curate a set of "expected to be findable" queries, then run on demand to score how well retrieval is doing. Catches regressions that unit tests can't.
Loading...
Audit Trail
Admin action history — filter by date range, user, action, role, or text
Set filters and click Search.
User Activity
Per-user query log from CloudWatch (last 30 days). Older queries live in the Audit Trail under user_query.
| When | Question | Model | Conversation | Turns |
|---|---|---|---|---|
| Pick a user, then click Search. | ||||
Google Drive
Connect Google Drive to auto-sync documents to the knowledge base. The connect flow asks for read access (to sync existing files) and write access (so the Document Builder can save new files into your Drive). Both permissions are required for the full feature set; you'll see them on Google's consent screen.
Loading...
Connections
Two kinds: HTML pages (crawl + extract visible text) and REST APIs (JSON endpoints, with Bearer / Basic / Header / API-Key / OAuth 2.0 auth). Each connection runs on its own schedule; the crawler only re-indexes when content actually changes (hash-based) — old chunks are removed before the new content is upserted. API keys and OAuth credentials are stored in AWS Secrets Manager (write-only; the UI can rotate but never read them back). Optional webhook endpoints let upstream systems push "refresh now" events instead of waiting for the next poll.
| URL | Type | Collection | Schedule | Last Crawled | Status | Actions |
|---|
Corrections
Admin-verified overrides. Each active correction is injected into every AI answer as an authoritative fact that beats conflicting or older documents. Use this when the team reports the AI returning outdated or incorrect info.
Backups
Snapshots of Qdrant collections and full system state. Retained 30 days.
Vector data + metadata per collection. Runs automatically every 6 hours.
Qdrant + user data (documents, chat, audit, feedback) + SSM config + secrets index. Use for disaster recovery.
Loading...
Loading...