TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
EducationGitHub @orionsheepOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
AI-powered vocabulary learning — a fine-tuned 1.5B model (SFT+DPO) that runs offline in your browser. Live: wordlink.lifeplayertribe.com
Taken from the repository README
Loading the full README.
Read the full README ↗See every English word together with its neighbours.
An open-source vocabulary workspace built on a graph of 326k typed word links: synonyms, near-synonyms, word families and look-alike spellings, all mined from open dictionaries. Quizzes, graded reading and an AI tutor sit on top of the graph. The repo also contains the complete SFT + DPO pipeline and benchmark for WordLink-Edge, a 1.5B model fine-tuned to write your review words into graded stories.
Live demo · Features · Quick start · How it works · Model · Roadmap · 中文
Most vocabulary apps drill words one at a time. But you remember abandon better when you also see desert, forsake and give up next to it, and abandonment, abandoned around it. WordLink puts that neighbourhood next to every word you study, so each review also revisits the words around it.
The right-hand panel of the workspace is a map of the selected word.
Requirements: Node.js 20+, Docker.
git clone https://github.com/orionsheep/wordlink.git
cd wordlink
npm install
docker compose up -d # PostgreSQL on localhost:5432
cp .env.example .env.local # then edit, see below
npx prisma migrate deploy # create the tables
npm run migrate # load the dictionaries in data/ (takes a while)
npm run import-edges # load the 326k typed word links used by the graph
npm run dev # http://localhost:3000
Minimal .env.local:
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/english_word_fission_dev?schema=LPT_english"
DEMO_MODE=true # no auth server needed: every visitor uses the built-in demo account
supabase start
locally) — set the three SUPABASE variables and turn DEMO_MODE off.LLM_BASE_URL, LLM_MODEL and an API key (SILICONFLOW_APIKEY). Everything else works without one.npm run demo-data gives [email protected] six months of study history.Full guide (in Chinese): docs/部署与运行指南.md.
| Layer | What it is |
|---|---|
| App | Next.js 16 App Router, React 19, Tailwind CSS 4, next-intl |
| Data | PostgreSQL via Prisma; word data loaded from data/ |
| Graph | GET /api/fission?word=… returns the word's neighbours and their neighbours from the word_relation table; rendered with react-force-graph-2d in src/components/PanelFissionGraph.tsx |
| Memory | each quiz answer moves a word through UNFAMILIAR → FAMILIAR → LEARNED → MASTERED and sets its next review date (src/lib/memory.ts) |
| AI | one OpenAI-compatible gateway (src/lib/ai/gateway.ts), prompts in data/ai_prompts/, responses cached on disk |
| Auth | Supabase Auth, or DEMO_MODE for a single built-in account |
The word links come from open data plus a few mining scripts in scripts/:
| Relation | Links | Source |
|---|---|---|
| Inflections | 125,612 | ECDICT word-form codes |
| Look-alike spellings | 120,946 | longest-common-subsequence score ≥ 0.75, same-family pairs excluded |
| Synonyms | 87,971 | synonym table in data/word_fission_data.csv |
| Near-synonyms (with usage notes) | 74,008 | "commonly confused" notes in data/word_chinese/ |
| Derivatives | 6,221 | derivative links in the dictionary entries |
| Antonyms | 0 | not collected yet — see the roadmap |
WordLink-Edge is Qwen2.5-1.5B-Instruct fine-tuned with SFT + DPO for one job: write a short story at a given
CEFR level that uses a given list of target words, returned as JSON. The pipeline in
model_training/ covers data generation with a teacher model and five filters, SFT, DPO on
real failure cases, and the benchmark.
Measured on a 90-question benchmark with greedy decoding (full report):
| Model | Target-word hit ↑ | CEFR violations ↓ | Valid JSON ↑ |
|---|---|---|---|
| Qwen2.5-1.5B-Instruct, before fine-tuning | 63.06% | 0.17% | 82.22% |
| + SFT (2,045 stories) | 88.06% | 0.01% | 100% |
| + DPO (real failure negatives) | 87.78% | 0.01% | 100% |
| Qwen2.5-7B-Instruct, zero-shot | 39.72% | 0.07% | 0% |
| DeepSeek-V3, zero-shot (teacher) | 97.78% | 0.01% | 100% |
Fine-tuning adds 25 points on the same 1.5B model, while a 7B model without fine-tuning fails the format entirely.
Weights: OrionSheep/wordlink-lexiconstrain (SFT + DPO merged) and OrionSheep/wordlink-edge (SFT).
Status. The model is trained and benchmarked, but the web app does not run it yet: its AI features call an OpenAI-compatible API. Running WordLink-Edge in the browser with WebGPU is on the roadmap.
src/lib/reader-engine/fsrs.tsIdeas and pull requests are welcome — see CONTRIBUTING.md.
src/app/ pages and API routes
src/components/ UI (workspace, graph, word modules, ambient mode, …)
src/lib/ data access, memory model, AI gateway, reader engine
prisma/ schema and migrations
data/ dictionaries, word links, word lists, AI prompts, training corpora
model_training/ SFT / DPO / corpus / benchmark scripts
outputs/eval/ benchmark metrics and per-question predictions
scripts/ data import and maintenance tools
docs/ deployment guide, training report
Code: MIT. data/ bundles lexical resources from other projects, including
ECDICT (MIT); check each source's terms before reusing the data on its
own. Model weights follow the Qwen2.5 license.
Built for UNU Macau · AI for SDGs 2026, AI for Education (SDG 4).