<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>semif-api-rocm, branch HEAD</title>
<subtitle>SemIf HTTP API and rocm flake
</subtitle>
<entry>
<id>a3fc1b5fcb0bd481dcc8579e5a2e4182ac68e75e</id>
<published>2026-09-24T14:49:03Z</published>
<updated>2026-09-24T20:53:09Z</updated>
<title type="text">semif-api: HTTP API around SemIf + llama backend</title>
<link rel="alternate" type="text/html" href="commit/a3fc1b5fcb0bd481dcc8579e5a2e4182ac68e75e.html" />
<author>
<name>James Eversole</name>
<email>james@eversole.co</email>
</author>
<content type="text">commit a3fc1b5fcb0bd481dcc8579e5a2e4182ac68e75e
Author: James Eversole &lt;james@eversole.co&gt;
Date:   Thu, 24 Sep 2026 09:49:03 -0500

semif-api: HTTP API around SemIf + llama backend

FastAPI wrapper (SemIf consumed as a library, no fork) exposing its
semantic decision readout over HTTP: /decide and /decide-batch read the
softmax over declared options from logits (torch ROCm backend) or from
an OpenAI-compatible llama-server hosting a GGUF. The llama backend adds
/plan, a reasoning chat completion that turns an action transcript into
rules, plus runtime model selection.

The browser UI (served same-origin) includes four demos: platformer and
puzzle room, each in ruled and self-learning variants. The self-learning
loops are the point of the repo: the model plays from neutral
observations alone, and on failure a universal planner prompt rewrites
its rules from the transcript of what happened.

Packaging: nix flake (upstream SemIf as an input, ROCm dev shell for
gfx1151, NixOS module with systemd service), offline test suites for the
game prompts and the backend contract, validation script, docs.

</content>
</entry>
</feed>
