Korean OCR
Self-hosted RapidOCR PPOCRv5 Korean models. Scanned documents and screenshots become text with zero external OCR API cost.
본 계약은 양 당사자 간 상호 신뢰를 바탕으로 체결되며, 계약 기간은 체결일로부터 24개월로 한다.
parser.py — LangRec.KOREAN
Flux
From documents, recordings, and images to search and AI agent execution — the entire pipeline runs on your own servers. A fully air-gapped knowledge platform with zero external API calls.
Sign up and explore the demo instantly
What were the renewal terms in the Q3 supply contract?
The Q3 supply contract was renewed with a 3% unit price increase and delivery shortened to 30 days12
Ingest → Retrieve → Build → Graph → Observe. All five stages happen inside the same boundary.
8 document + 5 image + 2 audio types — 15 formats through a single pipeline. Up to 1GB per file.
Built-in Whisper (6 models, TURBO default) transcribes without an API key. Switch to 5 external STT providers — incomplete configs fall back to built-in Whisper automatically.
A Vision LLM writes 3–5 sentence captions for charts and diagrams — answering "where was that chart?". Indexing succeeds even if captioning fails.
PDF tables are extracted with TableFormer structure recognition (fast/accurate modes), preserving rows and columns.
5-stage weighted progress with ETA, instant cancellation mid-processing (process isolation), 3 automatic retries then 7-day DLQ backup.
services/document — 19 MIME whitelist · DLQ 3 retries, backoff 1s→2s→4s
Scanned original
Extracted text
Dense vectors and BM25 keywords searched simultaneously, fused with RRF, then rescored by a reranker. Every answer carries [N] footnotes.
Dense vector + BM25 keyword search fused with RRF (k=60). All scores normalized to 0–1.
Three Qwen3 embedding models (8B/4B/0.6B · 4096/2560/1024 dims) on local GPU — documents can stay in-house at indexing time. OpenAI and Cohere are also supported.
Three local Qwen3-Rerankers or Cohere Rerank v3.5 rescore results. If the reranker fails, original results are still returned.
[N] footnote → source card (page · score) → chunk text → in-app preview. Graph sources are marked [G]; SigLIP2 text-to-image search is built in.
services/vector — AnnSearchRequest dense+sparse · RRFRanker(k=60) · scores normalized 0–1
The renewal includes a 3% unit price increase, with delivery shortened from 45 to 30 days[G]
Article 7 (Renewal) Both parties shall adjust unit prices through quarterly consultation…
From OCR to morpheme search, chunking, and PII guardrails — Korean is built into every layer of the pipeline.
Self-hosted RapidOCR PPOCRv5 Korean models. Scanned documents and screenshots become text with zero external OCR API cost.
본 계약은 양 당사자 간 상호 신뢰를 바탕으로 체결되며, 계약 기간은 체결일로부터 24개월로 한다.
parser.py — LangRec.KOREAN
Vector DB server-side BM25 with the Lindera ko-dic morphological analyzer built in — analyzers auto-selected per chunk language. Chunking respects sentence boundaries via 13 separators including Korean/CJK punctuation.
chunker · sentence-aware split
analyzer_config.py · chunker.py
Automatic UTF-8 → CP949 → Latin-1 fallback. Even old Korean notepad files load without corruption.
����� ��� ��
utf-8 ✗decode fallback: utf-8 → cp949 → latin-1
parser.py — TEXT_ENCODINGS
Six PII types including Korean resident registration numbers and phone numbers are masked or blocked before reaching the LLM. Credit cards use Luhn validation to suppress false positives.
chat_inputguardrailsllm
6 PII typespii_detector.py — 6 PII types · Luhn check
Fully bilingual Korean/English — 13 UI namespaces and transactional emails.
The GraphSpec you design on canvas compiles directly to a graph execution engine — this is not a toy builder.
Node palette
pdf · png · mp3
hosted_vllm · temp 0.7
top_k 8 · rerank
mode · hybrid
streaming · on
Input, output, models, agents, memory, tools, flow, transform — connected by drag and drop. Simple mode auto-generates a complete RAG agent from a form.
21 port types in distinct colors; 10 validation errors caught the moment you connect — with type-convert node suggestions. 50-step undo/redo.
Your canvas GraphSpec compiles straight to a graph execution engine — no translation loss between design and execution engine.
Independent LLMs per subagent — big models for heavy work, fast models for simple tasks. Attach text, image, and knowledge-graph retrieval tools to one agent, plus Guardrails and MCP tool nodes.
packages/node-registry — 28 active nodes · services/agent compiler — graph-engine compile
An LLM extracts entities and relations to auto-build a knowledge graph in a graph DB; the Leiden algorithm finds topic communities.
Supply chain risk is concentrated in three partner companies
Extracted with relation strength (1–10), with Gleaning re-extraction to fill gaps. The same person or product scattered across 100 documents is merged automatically.
Topic clusters detected up to 3 hierarchy levels, with LLM-generated community summaries bottom-up. 5-stage auto-pruning and automatic community regeneration.
Local (specific facts, 1–3 hops) / Global (overall trends, map-reduce) / Hybrid — see the trees and the forest at once. [G] markers distinguish graph sources in answers.
Assemble a GraphRAG agent with a single graph_retrieval_tool node, no code. Paste sample text and the LLM recommends custom entity types.
services/graph — Leiden max 3 levels · Local/Global/Hybrid search
What the agent retrieved, which tools it called, why it answered that way — traced node by node.
services/agent — 19 SSE event types · public /status page
Token streams, node start/end, tool calls, RAG context, thinking, subagents — all streamed live over SSE.
LLM requests/responses, tool calls, and retrieval context traced per node — verify exactly what you designed on the canvas.
Per-answer thumbs up/down with 7 reason categories and per-agent feedback statistics.
A public status page, no login required — feature health lights, 90-day uptime, incident timeline.
Was this answer helpful?
Trace an agent run yourself
Contact SalesInstead of badges, read the architecture itself.
Configure local embeddings (3 Qwen3) + image embeddings (2 SigLIP2) + rerankers (3 Qwen3) + self-hosted vLLM, and the entire pipeline — indexing to retrieval to generation — runs with zero external API calls.
8 local GPU models
No badges. Read the architecture.
We prepared the items your approval documents will need.
Token and USD cost of every LLM call recorded per provider/model/agent/conversation — metering across embedding, STT, reranking, and captioning. 6-axis org quotas (monthly/daily tokens & budget + per-minute/daily requests), automatic warning emails at 80% and 95%.
“The email arrives before the invoice surprises you.”
Built-in local models at $0 API cost — only LLM calls are optionally billed
41 audit event types (19 auth + 22 resource) persisted with IP, User-Agent, and detail JSON — including security denial events. RBAC 4 roles × 22 permissions, remote session listing and per-device forced logout.
One-click user/org suspension = login block + session invalidation + full data-path cutoff, a triple gate. Public status page with feature health lights, 90-day uptime, and incident timeline.
usage.cost_usd — last 30 days
$96.40
per provider · model · agent · conversation
Monthly token budget
26.1M / 30M tok
Warning email sent
87% ≥ 80%cron quota-check — thresholds 80% / 95%
audit_logs — tail
41 event types
schema.prisma — TokenUsage · UsageEvent · OrganizationQuota / lib/auth/audit.ts — 41 event types
Need more items for your approval documents?
Contact SalesVector DB, graph DB, object storage, messaging, and a relational database — a full stack in 19 containers. No Kubernetes required.
$
docker ps
19 running
Infra
×10
AI services
×6
Web
×3
$ ./start.sh — 3 stacks, 19 containers
A single shell script boots three stacks in order: infra → AI services → web. Everything runs on Docker alone.
The web-migrate container runs DB migrations automatically — upgrades are a single command. A built-in cron scheduler container handles quota warnings and status collection with zero extra setup.
Deploy with 1–2 GPUs split across services, or start in CPU mode with lightweight 0.6B models or external embedding APIs.
6 LLM providers (including self-hosted vLLM) unified through LiteLLM — per-model context windows (up to 1M tokens) adjusted automatically. Swapping embedding models triggers built-in full re-embedding migration.
start.sh — 19 containers · GPU profile
With local Qwen3 embeddings/rerankers + self-hosted vLLM, everything from indexing to retrieval to generation runs with zero external API calls. It's a Docker single-server setup.
From upload to cited answers — one-line install, zero external API calls in air-gapped mode.
Sign up and explore the demo instantly
$ ./start.sh