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
38 lines
1.7 KiB
Bash
Executable File
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
|