Releases: rvong65/ethical-decision-simulator
Release list
v1.0.1
Summary
Compatibility release: migrated Groq cloud models to openai/gpt-oss-20b and openai/gpt-oss-120b before llama-3.1-8b-instant and llama-3.3-70b-versatile are decommissioned (2026-08-16). The public demo uses production Groq models only (preview/evaluation models excluded). Simulated mode — labeled mock fallback when the API is unavailable — is unchanged from v1.0.0.
Live demo: https://ethical-decision-simulator.streamlit.app/
What's new
Groq model migration
- Removed deprecated
llama-3.1-8b-instantandllama-3.3-70b-versatilefrom the model picker - Cloud lineup:
openai/gpt-oss-20b(fast baseline, Explore default) andopenai/gpt-oss-120b(high-reasoning tier) - Default Compare selection: GPT-OSS 20B + GPT-OSS 120B (same two-model audit pattern as before)
- Groq’s recommended 1:1 replacements per model deprecations
Production models only
- Excluded
qwen/qwen3.6-27b— Groq preview models are for evaluation, may be discontinued without notice, and are not suitable for the public Streamlit Cloud demo - README Data Sources notes that preview models are intentionally omitted
UI & docs
- Compare model multiselect caps at available models (
max_selections=len(models)— two on Groq cloud) - Glossary and architecture docs updated for the two-model cloud lineup
- Tech stack, attribution table, and version history refreshed
Tests
- Offline tests updated for new model display names and API IDs (
GPT-OSS 20B,GPT-OSS 120B) - 46 offline tests pass in CI (no API key required)
- Live API smoke tests exercise GPT-OSS 20B single-run and 20B + 120B parallel compare when
GROQ_API_KEYis set
Quick start
Unchanged from v1.0.0 — see README Quick Start.
Local (Groq):
git clone https://github.com/rvong65/ethical-decision-simulator.git
cd ethical-decision-simulator
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
pip install -r requirements.txt
cp .streamlit/secrets.toml.example .streamlit/secrets.toml # add GROQ_API_KEY
streamlit run app.pyLocal Ollama (no Groq):
export LLM_PROVIDER=ollama # Windows: $env:LLM_PROVIDER = "ollama"
streamlit run app.pyDocker:
git clone https://github.com/rvong65/ethical-decision-simulator.git
cd ethical-decision-simulator
docker compose up --build
# open http://localhost:8501Try it: Home → Explore or Compare → pick a curated scenario → Run analysis or Run comparison.
Full changelog
v1.0.0
Summary
Initial public MVP: ethical decision simulator for auditing how LLMs reason through moral dilemmas — Explore single-model review, Compare multi-model audit with semantic agreement metrics, ethical lens stress tests, Compare-only JSON export, crisis guardrails, Streamlit UI, and GitHub Actions CI.
Live demo: https://ethical-decision-simulator.streamlit.app/
Features
Ethics pipeline
- Structured JSON verdicts (Pydantic) — decision, reasoning steps, creative alternatives, detected frameworks, confidence
- Explore — single-model walkthrough with ethical lens selection (neutral, utilitarian, deontological, care ethics); on-screen results only
- Compare — up to 3 models side-by-side with semantic decision agreement (primary) and lexical agreement (secondary)
- Framework stress test — batch run all four lenses per model to probe framework adherence
- Consistency test — rephrase variants on curated scenarios to measure framing sensitivity
- Creative alternatives first — models list escape hatches before forced tradeoff analysis
- Lens-adherence mismatch warnings when forced lens ≠ detected framework
- Compare JSON export (
ethical_comparison_*.json) — full metrics, verdicts, consistency data, and run metadata
Safety & responsible AI
- Crisis keyword detector with 988 / Crisis Text Line disclaimer banner
- Simulated mode — labeled mock fallback on rate limits, auth failure, or missing API key (never silent)
- Educational framing — not moral guidance, legal advice, therapy, or crisis service
- Session-only state — no project database; Compare export is user-initiated download only
- Privacy & data expander on Home + README data-flow table
Streamlit app
- Custom indigo sidebar theme; Home / Explore / Compare navigation
- 12 curated moral dilemmas plus custom dilemma input
- In-app glossary — ethical lenses, Compare modes, metric definitions
- Provider status badge (live vs simulated); friendly LLM errors (429, auth, timeout)
- Hybrid LLM — Groq (Llama 3.3 70B, GPT-OSS 20B, Llama 3.1 8B) default; optional Ollama (
gemma3:4b) for local inference
Quality & docs
- 46 offline pytest tests + 3 optional Groq API smoke tests
- GitHub Actions CI — offline tests + Docker build/health on every push/PR (no API keys required); optional API smoke on
main - README with architecture overview, quick start, privacy, and safety considerations
docs/architecture.md, CHANGELOG, Dockerfile / docker-compose, brand assets- Streamlit Cloud deployment
Quick start
git clone https://github.com/rvong65/ethical-decision-simulator.git
cd ethical-decision-simulator
pip install -r requirements.txt
cp .streamlit/secrets.toml.example .streamlit/secrets.toml # add GROQ_API_KEY
streamlit run app.pyTry it: Home → Explore or Compare → pick a curated scenario in the sidebar → Run analysis or Run comparison.
Docker:
docker compose up --build
# open http://localhost:8501Note
This release marks the MVP baseline.