Skip to content
sortInc. ai innovators
Available for new engagements

AI systems that survive contact with production.

sortInc. is an engineering studio in Seoul building knowledge graphs, RAG pipelines and AI agents — plus the gateways, APIs and operator interfaces that make them usable. Not demos: guardrail chains with audit trails, detectors with false-positive filters, test suites in the hundreds.

15
Public repositories you can read today on GitHub
30+
Systems shipped across AI, web and industrial domains
E2E
Model tuning, backend, frontend, Docker, deployment
Air-gap
Local models, vendored assets, zero runtime calls out
LiteLLM◆ Neo4j + n10s◆ pgvector◆ FastAPI◆ Ollama◆ vLLM◆ YOLO◆ qwen3-vl◆ LoRA / QLoRA◆ RAGFlow◆ Flowise◆ MCP◆ React◆ MapLibre◆ Omniverse USD◆ Docker◆

Capabilities

Six things we build, and the hard parts we've already hit

LLM gateway & governance

LiteLLM proxies with custom guardrail chains: PII masking, term blocking, high-impact-decision detection, emergency stop, and hash-chained JSONL audit evidence — mapped to Korea's AI Framework Act.

  • LiteLLM
  • Guardrails
  • Compliance

Knowledge graphs & RAG

Retrieval that cites its sources. pgvector and RAGFlow pipelines alongside Neo4j + n10s ontology stores, so semantic memory is queryable as RDF instead of an opaque embedding blob.

  • pgvector
  • Neo4j / n10s
  • RAGFlow

Multimodal vision pipelines

Two-stage inference where a fast detector proposes and a VLM verifies — YOLO recall first, qwen3-vl precision second, so shadows, puddles and manhole covers stop being potholes.

  • YOLO
  • VLM
  • Ollama

Fine-tuning & local inference

End-to-end LoRA and QLoRA pipelines for local models: synthetic data generation, training, eval, adapter merge, GGUF conversion and re-registration into Ollama — text and vision, on your own hardware.

  • LoRA / QLoRA
  • GGUF
  • vLLM

Digital twins & geospatial

Real-time Omniverse/USD plant twins driven by a single versioned WebSocket contract, and vector-tile map stacks — tiles, Korean glyphs, sprites, viewer — that run with zero runtime network access.

  • Omniverse / USD
  • MapLibre
  • MBTiles

Product & platform engineering

The unglamorous half that decides whether AI ships: FastAPI services, React + Vite frontends, browser extensions, Postgres migrations, Docker Compose, nginx, and forecasting on real operational data.

  • FastAPI
  • React
  • Docker

Open source

Don't take our word for it — read the code

All 15 repositories

Everything below is public on github.com/sort-tech. Clone it, run it, audit it. We publish the tooling we use ourselves, because the fastest way to judge an engineering partner is to read their commits rather than their case studies.

Projects we author & maintain

Open-source stack we run, adapt and deploy

These are public forks we maintain for client deployments — customised builds, embeds and integrations of upstream projects. Listed for transparency about the platforms we operate day to day, with full credit to their original authors.

Selected work

Systems, not screenshots

Client and internal systems beyond the public repos. Descriptions stay at architecture level where the work is under NDA.

LLM Gateway Guardrails

Governance

A six-stage guardrail chain in front of a LiteLLM proxy. Requests pass through evidence logging, governance gating, PII masking, high-impact detection and transparency injection before they reach a model — and back out again in reverse on the response.

Every success and failure lands in a hash-chained JSONL audit trail, so what was sent, masked or blocked is provable after the fact.

  • Python
  • LiteLLM
  • HMAC audit
  • Docker

Road Defect Detection API

Multimodal

Potholes, rutting and cracks, detected in two stages. YOLO runs at a deliberately low confidence threshold for recall; a vision-language model then interrogates each candidate crop for precision.

The response separates verified damage from rejected false positives with reasons, so operators can see why a shadow or tyre mark was dropped instead of trusting a single score.

  • FastAPI
  • YOLO
  • qwen3-vl
  • vLLM / Ollama

Ion-Exchange Plant Digital Twin

Real-time 3D

A 2-bed 3-tower ultrapure water plant modelled in USD and driven live inside NVIDIA Omniverse. Resin bed heights, colours, flow direction and alarm lamps re-bind every frame from process data over one versioned WebSocket contract.

Built against a frozen wire specification with a mock process engine and a 940-plus test suite, so the customer's real engine drops in without touching the visual layer.

  • Omniverse Kit
  • USD
  • WebSocket
  • pytest

Air-Gapped Vector Map Stack

Offline-first

A full slippy-map stack for networks with no internet at all: OSM extracts clipped with osmium, built into MBTiles by tilemaker, served by tileserver-gl, with glyphs, sprites and MapLibre vendored locally.

One bootstrap script prepares, starts and verifies the stack across 30 automated checks, plus a React facility viewer for port infrastructure on top.

  • MapLibre GL
  • tilemaker
  • React + Vite
  • nginx

Ontology Memory

Knowledge graph

Agent memory stored as an ontology rather than a pile of vectors. Neo4j with the n10s semantic plugin and APOC holds RDF triples, so recall can be reasoned over, constrained and explained — and vector search becomes one retrieval path among several.

The ingestion layer is public as neo4j-n10s-pipeline.

  • Neo4j 5
  • n10s / RDF
  • Cypher
  • pgvector

Page Chatbot Extension

Browser

A Chrome and Edge side-panel assistant grounded in the page you're reading. For long documents it selects only the passages relevant to the question, then streams an answer with evidence chips that highlight and scroll to the exact sentence.

Its embeddable sibling is public as llm-chat-widget.

  • MV3
  • JavaScript
  • SSE streaming
  • LiteLLM

Local LoRA Fine-Tuning Kit

Model tuning

Two parallel five-stage pipelines — a multimodal one turning receipt images into structured JSON, and a text one routing customer enquiries — sharing the same path from synthetic data through training, eval, adapter merge, GGUF conversion and Ollama re-registration.

The teaching version is public as llm-finetuning-tutorial.

  • LoRA / QLoRA
  • llama.cpp
  • Ollama
  • Qwen

Demand Forecasting Engine

Time series

Panel-structured forecasting with external covariates, honest baselines and rolling-origin backtests — including foundation time-series models next to classical ones, because a model only earns its place by beating a naive forecast on held-out windows.

  • pandas
  • Chronos
  • Backtesting
  • Feature eng.

EDI Projection Program

Process engineering

A membrane-deionization sizing tool for water treatment engineers, reproducing the standard two-page feed/output projection sheet. The engine computes on real chemistry — ionic balance, Kohlrausch conductivity, Faraday ion transport and weak-acid dissociation equilibria.

  • FastAPI
  • NumPy
  • React 18
  • Tailwind

Coastal Snapshot Scoring

Edge imaging

Field-camera coastline imagery captured in a compact binary snapshot format, then scored by model to rank usable frames — with a self-contained HTML recording viewer for reviewing captures without installing anything.

  • Python
  • Binary formats
  • Scoring models

MCP & Agent Tooling

Agents

Model Context Protocol servers and agent workspaces that give models real, bounded tools — plus visual flow orchestration with Flowise and RAG stacks wired to pgvector, so non-engineers can trace what an agent actually did.

  • MCP
  • Flowise
  • OpenHands
  • Claude Code

Document Automation

Structured output

Vision LLMs that emit schema-validated JSON instead of prose, then a deterministic builder that turns it into real artefacts — native PowerPoint shapes, structured receipts, routed tickets. The model proposes; the schema decides.

Open-sourced as image-to-ppt.

  • Pydantic
  • python-pptx
  • Vision LLM

Stack

Tools we reach for, and why

LLM & AI

Gateways, local inference, tuning and evaluation.

  • LiteLLM
  • Ollama
  • vLLM
  • Claude
  • GPT
  • Gemini
  • Qwen / qwen3-vl
  • LoRA / QLoRA
  • Unsloth
  • MCP

Retrieval & data

Storage that can answer, and explain the answer.

  • PostgreSQL
  • pgvector
  • Neo4j
  • n10s / RDF
  • RAGFlow
  • Flowise
  • pandas
  • Oracle

Vision & ML

Detection, verification and forecasting.

  • PyTorch
  • YOLO
  • OpenCV
  • Chronos
  • scikit-learn
  • Hugging Face

Backend

Typed contracts, tests, streaming.

  • Python
  • FastAPI
  • Pydantic
  • pytest
  • Node.js
  • WebSocket / SSE
  • Go
  • Java

Frontend & 3D

Interfaces operators actually use.

  • TypeScript
  • React 18
  • Vite
  • Tailwind CSS
  • MapLibre GL
  • Omniverse / USD
  • Extensions (MV3)

Platform

Reproducible from a clean machine.

  • Docker Compose
  • Linux
  • nginx
  • GitHub Actions
  • Bash
  • Air-gapped deploys

How we work

Contract first, then code

Most AI projects don't fail at the model. They fail because nobody wrote down what the interface promises, what happens when the model is wrong, or how anyone proves afterwards what it did. So we start there.

Talk through a project
  1. 1

    Freeze the contract

    Wire schema, versioning, error codes and the boundary vocabulary get written and frozen before implementation. Both sides can then build in parallel against a mock.

  2. 2

    Design for being wrong

    Models mispredict. Pipelines get a verification stage, a rejected-with-reason channel and a human review path, so a wrong answer degrades instead of propagating silently.

  3. 3

    Keep it auditable

    Hash-chained event logs, policy versions and masking records. When a regulator, an auditor or a customer asks what the system did in March, the answer is a query, not an archaeology project.

  4. 4

    Run it where the data lives

    Local models, vendored assets, Docker Compose, no runtime calls out. Plenty of our work is for environments where sending data to a hosted API is simply not an option.

  5. 5

    Document the limits honestly

    Every repo states what was verified and what wasn't. A known-limitations section is worth more on handover than an optimistic README — and it's why our code is public.

About

sortInc.

sortInc. is an independent AI engineering practice based in Seoul, led by Jwp — an AI & backend engineer working on knowledge graphs, RAG pipelines and AI agents.

It exists because the interesting problems in applied AI sit exactly where most teams split responsibilities: between the model, the service around it, the operator's screen, and the compliance story.

We work across all four. A project can go from tuning a local vision model, to the FastAPI service that verifies its output, to the React dashboard an operator watches, to the audit trail the legal team needs — without three handovers and two integration projects.

Domains so far: port and maritime operations, water treatment and process plants, road infrastructure inspection, coastal monitoring, document automation and internal AI platforms.

Engagements

  • Build an AI feature end to end
  • Stand up an internal LLM gateway
  • Knowledge graph & RAG design
  • Architecture review & prototyping
  • Air-gapped / on-prem deployment

Working languages

  • Korean — native
  • English — technical, written

Based in

Seoul, South Korea · remote-friendly

Code policy

Open source by default. You keep the repo.

Have something that needs to actually work?

Send a short description of the problem and the constraints you're stuck with — on-prem only, no labelled data, a regulator asking questions. Those are usually the interesting part.

github.com/sort-tech · Seoul, Korea