Files
dcc-rpg/start.sh
T
truetype eacc946868 fix: JSON repair, WS thread pool, switch to DeepSeek V4 Flash, funnel Lv0
LLM fixes:
- _try_repair_json() — ripara JSON malformato (apici, virgole trailing)
- _strip_json_from_text() — rimuove residui JSON dalla narration
- parse_tool_call() — rimuove troncamento 200 caratteri dal fallback

DM fixes:
- Fallback euristico quando params vuoti (dm.py)
- Estrazione narrazione da dm_override/narrate params.params.text

Prompt (prompts.py):
- Vietati termini tecnici/scientifici/anacronistici (HPLC, laser, ...)
- Aggiunto vocabolario fantasy obbligatorio

Server (server.py):
- dm_cycle in ThreadPoolExecutor per non bloccare WS ping
- WebSocketDisconnect gestiti
- Rimosso import inesistente db_schema

Frontend (index.html):
- Nascosti tool name dalla chat
- Personaggio -> PG, connessioni aree con nomi

Infrastruttura:
- Switch da openrouter/free a DeepSeek V4 Flash via OpenCode Go
- pyproject.toml, Dockerfile, docker-compose.yml, start.sh
- .env auto-load (start.sh)
- Funnel Lv0 (funnel.py) — creazione PG livello 0

Docs: architecture, database, setup, game mechanics, codebase ref
2026-06-28 08:18:24 +02:00

38 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$DIR"
# ── load .env if present ────────────────────────────────────────────
if [[ -f .env ]]; then
set -a; source .env; set +a
fi
# ── provider: openrouter | ollama | local ──────────────────────────
# Per OpenCode API: export DCC_LLM_PROVIDER=local + set DCC_LOCAL_KEY
export DCC_LLM_PROVIDER="${DCC_LLM_PROVIDER:-local}"
export DCC_OPENROUTER_KEY="${DCC_OPENROUTER_KEY:-}"
export DCC_OPENROUTER_MODEL="${DCC_OPENROUTER_MODEL:-openrouter/free}"
export DCC_OLLAMA_URL="${DCC_OLLAMA_URL:-http://192.168.0.50:11434}"
export DCC_OLLAMA_MODEL="${DCC_OLLAMA_MODEL:-gemma2:9b}"
export DCC_LOCAL_URL="${DCC_LOCAL_URL:-https://opencode.ai/zen/go/v1}"
export DCC_LOCAL_KEY="${DCC_LOCAL_KEY:-}"
export DCC_LOCAL_MODEL="${DCC_LOCAL_MODEL:-deepseek-v4-flash}"
# ── create data dir ────────────────────────────────────────────────
mkdir -p data
# ── install deps if missing ────────────────────────────────────────
if ! pip show fastapi &>/dev/null 2>&1; then
echo "→ Installing Python dependencies..."
pip install --quiet -e .
fi
# ── start server ───────────────────────────────────────────────────
echo "→ DCC RPG — AI Dungeon Master"
echo " Provider: ${DCC_LLM_PROVIDER}"
echo " http://0.0.0.0:8300"
echo ""
python -m src.web.server