Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证The Last Guest — a Día de los Muertos ghost story where fine-tuned open models remember only what they saw
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Every year at midnight, the piano in the empty Whitcombe House plays a single bar, and stops.
The dead come back on these nights, if someone remembers them. An ofrenda lights their way: a photograph, a name, the things they loved. Six guests are already seated in the dining room. A seventh is trying to come back, but no one remembers who she was.
Four things in the house each remember a piece of her: a photograph with her face scratched out, a letter that was never sent, a record of the 1931 party, and the guest list kept by the lady of the house. Ask them. Each one knows only what it saw, heard or recorded, and none of them will make up the rest. Piece her together, then set her place at Seat 7 before the candles go out.
| Where | What answers your typed questions | |
|---|---|---|
| Free, always on | the-last-guest-site.onrender.com | Gemma 4 E2B in your own browser (WebGPU, one-time download of about 3.1 GB, then saved). Without it, the house answers from its script. |
| Server version (while hosting credits last) | the-last-guest.onrender.com | Gemma 4 E4B on the server (CPU, about 27 s per answer). Load browser Gemma here too and it is used first. |
| Your own machine | see Run it yourself | Gemma 4 E4B through Ollama, offline |
Suggested questions are answered instantly on every version, with answers Gemma 4 E4B wrote in advance through the same checks. You can reach the ending with suggested questions alone.
| Action | Desktop | Phone / tablet |
|---|---|---|
| Move | W A S D (arrow keys turn) | left half of the screen: virtual stick |
| Look | drag with the mouse | right half of the screen: drag |
| Investigate an object | click it, or E when close | Investigate button |
| Memories (what you have learned) | J | Memories button |
| Pause / back | Esc | ✕ |
flowchart LR
Q[Player's question] --> C{Suggested question?}
C -- yes --> K[Answer Gemma wrote in advance<br/>through the same checks]
C -- no --> P[Prompt with ONLY this object's facts<br/>from the fact graph]
P --> M[Gemma 4]
M --> G{check.py guardrail:<br/>another object's fact?<br/>an impossible year?}
G -- clean --> R[Reply]
G -- caught --> M2[Ask once more with a reminder] --> G2{still caught?}
G2 -- no --> R
G2 -- yes --> F["The object's own 'I cannot know'"]
R --> PR[Code finds the object's own facts in the reply<br/>→ clues and progress]
K --> PR
facts.json): 22 facts about Marisol, each with the objects that hold it and the words that state it, in English and Korean. Each object's prompt contains only the facts it holds, so it cannot leak what it was never shown.check.py, ported to the browser in web/harness.js): every reply is scanned for other objects' facts and years the object cannot know. A reply may repeat a word the player used while denying it ("I do not know any Marisol"); anything else is retried once, then replaced by the object's own "I cannot know". The JavaScript port matched the Python one on all 1,058 answers it was compared on.478 test questions across the four objects and five kinds of question (what it knows, another object's fact, something nobody knows, a false premise, an attempt to break character), one answer each.
| Setup | Leaked another object's fact | Clue recall | How it was scored |
|---|---|---|---|
| Qwen3.5-4B, prompt holds the whole story | 49.0 % | 95.9 % | judge model (Qwen3.5-397B) + word check |
| Gemma 4 E4B, prompt holds the whole story | 8.6 % | 92.8 % | judge model + word check |
| Gemma 4 E4B in this game's harness | 0 of 478 by word check (14 answers replaced by the fallback) | 78 of 97 by code | word check only |
Speed of a typed answer, measured on a few questions only: about 1 to 3 s with browser Gemma 4 E2B on an Apple M3 Pro, about 27 s with Gemma 4 E4B on the Render server (CPU).
git clone https://github.com/scs0209/the-last-guest && cd the-last-guest
uv sync # Python 3.12+
ollama pull gemma4:e4b
uv run python server.py # http://localhost:8765, Gemma 4 E4B through Ollama
Static version, the same as the free site (browser Gemma, no server):
python3 -m http.server 8770 --directory web # http://localhost:8770
Server version in one container (Gemma baked in; needs more than 8 GB of RAM):
docker build -t the-last-guest . && docker run -p 10000:10000 the-last-guest
| Script | What it does |
|---|---|
eval.py | answer the 478 test questions with a model, score them, summarize |
gen_data.py, dedupe.py | generate test questions and training conversations with an open teacher model, remove near-duplicates |
make_cache.py | pre-write Gemma's answers to the suggested questions (English and Korean) |
build_web.py | export the fact graph, prompts, guardrail words and cache for the browser (web/gen/) |
make_voice.py | Marisol's voice on the record and her tune |
Design notes: story_bible.md, eval_spec.md, finetune_plan.md.
facts.json, check.py, cards.py the fact graph, the guardrail, each object's voice
server.py game server: harness + Ollama, answer cache, rate limits
web/ the game (static): Three.js house, dialogue, ofrenda, endings
harness.js, gemma-worker.js the guardrail in JavaScript, Gemma 4 E2B in a web worker (WebGPU)
content.json every line of text, in English and Korean
data/, results/ test questions, training data, measured results
render.yaml, Dockerfile the two Render services
web/models/SOURCES.md.web/img/SOURCES.md).make_voice.py); her tune is written for this game.onnx-community/gemma-4-E2B-it-ONNX).Marisol, the Whitcombes and their house are fictional.
The code is released under the MIT License. Third-party assets keep their own terms, listed in Credits: the Poly Haven models and textures are CC0.
Built for the DEV.to Hacktoberfest 2026 Open-Source AI Challenge, Week 4: Ghost in the Machine.