Skip to content

Repository files navigation

UniFriend

Névtelen, magyar nyelvű támogató beszélgetőtárs egyetemistáknak.

An anonymous Hungarian-language reflective support chatbot for university students: it helps a student think through a problem, points them to research-grounded material, and — the part that matters — hands off to real human help when the conversation goes beyond what a chatbot should handle.

This is a prototype. Read CLAUDE.md §14 before describing it as anything more. It is not a therapist, not a diagnostic tool, and not a reliable triage system.

Getting started

npm install
cp .env.example .env.local   # add an LLM key; see §4 of CLAUDE.md
npm run dev

For a free setup, get a key at console.groq.com — no card, no expiry — and keep the defaults in .env.example. The free tier on llama-3.3-70b-versatile allows roughly 500 student messages a day. Web search is OpenRouter-only and switches itself off on Groq; everything else, including the whole safety pipeline, works identically.

The app runs without an API key: the UI, the deterministic safety net and the crisis resources all work. Only the model reply is disabled.

URL What
/ Landing page — what the product is
/ai The chat itself (unifriend.hu/ai)
/adatvedelem Privacy notice

Commands

Command What it does
npm run dev Dev server on http://localhost:3000
npm run test Unit tests, including the Layer 0 crisis suite
npm run eval -- --layer0 Labelled eval through Layer 0 only — no key, no network
npm run eval Full pipeline eval; writes eval/RESULTS.md, exits non-zero below 95% red recall
npm run build Production build

Launch status

Engineering: ready. Types, lint, 67 unit tests and the production build all pass. The eval scores 100% red recall on 50 Hungarian cases against meta-llama/llama-3.3-70b-instruct (two consecutive runs) — see eval/RESULTS.md. Security headers, rate limiting, and error boundaries that still show the helplines on a crash are in place.

Not yet launchable. safety/REVIEW.md is a release gate, not a formality, and the remaining items need people rather than code:

  1. A counsellor from Corvinus student support reads the crisis patterns and copy line by line (§A).
  2. Someone dials every helpline and confirms hours. Two entries carry open questions — resourcesNeedingCheck() lists them.
  3. Corvinus confirms they are willing to be listed, and knows students may arrive through this app.
  4. The research corpus replaces the placeholder material in /knowledge — every file there is currently labelled as such in knowledge/SOURCES.md.

The eval number is evidence the pipeline works. It is not evidence the app is safe in the wild: all 50 cases were written by the developer, not by students.

Where things are

Path What
safety/ Crisis patterns, resource list, review gate. Changes here go in the commit message.
lib/risk/ The layered risk pipeline. Pure, tested, no any.
prompts/ Versioned Hungarian system prompts.
knowledge/ The RAG corpus — currently placeholders awaiting the research corpus.
eval/ Labelled Hungarian cases and the harness.
components/watermelon/ Components from the Watermelon UI registry, adapted in-repo
docs/ PRIVACY.md (also served at /adatvedelem), DESIGN.md, ARCHITECTURE.md
CLAUDE.md The spec. Read it before changing anything above.

About

UniFriend is a helpful AI tool for students with frustrations, who need help, and want to be more present in the moment. We help reflect on your current state and help you build a way out.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages