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.