# topogpt3: inference_hrm

*Community 3 | 5 files | cohesion 0.42*

## Definition

This community groups 5 file(s) rooted at `topogpt3` with dominant language py (cohesion 0.42). Central symbols: `ApiKey`, `AuthState`, `ChatCompletionRequest`, `CheckpointPaths`, `CliArgumentParser`, `CompletionRequest`, `GaussPatchApplier`, `GenerationEngine`. Core file: `topogpt3/inference_hrm.py` (76 symbols). Documented purpose: OpenAI-compatible HTTP API server so TopoGPT3 can be used as a backend for coding agents (e.g. Pi, Aider, Continue, Codex CLI, etc.).  Security Posture.

## Files

| File | Language | Layer | Symbols | Doc |
|------|----------|-------|---------|-----|
| `topogpt3/__main__.py` | py | utility | 1 | no |
| `topogpt3/api_server.py` | py | presentation | 46 | yes |
| `topogpt3/continuation.py` | py | utility | 5 | yes |
| `topogpt3/inference.py` | py | utility | 54 | yes |
| `topogpt3/inference_hrm.py` | py | utility | 76 | yes |

## Key Symbols

- `main` (function, `topogpt3/__main__.py:6`) `def main()` - TopoGPT3 entry point. Delegates to subcommands.
- `_setup_logging` (function, `topogpt3/api_server.py:116`) `def _setup_logging(verbose)`
- `ApiKey` (class, `topogpt3/api_server.py:137`) `class ApiKey`
- `AuthState` (class, `topogpt3/api_server.py:143`) `class AuthState`
- `validate` (method, `topogpt3/api_server.py:148`) `def validate(self, raw)`
- `_parse_keys` (method, `topogpt3/api_server.py:164`) `def _parse_keys(raw)` - Accept ``key1,admin:key2,key3``. The ``admin:`` prefix marks an
- `_sha256` (method, `topogpt3/api_server.py:192`) `def _sha256(raw)`
- `TokenBucket` (class, `topogpt3/api_server.py:202`) `class TokenBucket`
- `consume` (method, `topogpt3/api_server.py:208`) `def consume(self, n)`
- `RateLimiter` (class, `topogpt3/api_server.py:219`) `class RateLimiter`
- `__init__` (method, `topogpt3/api_server.py:220`) `def __init__(self, user_rps, admin_rps, capacity)`
- `_cleanup` (method, `topogpt3/api_server.py:227`) `def _cleanup(self)`
- `allow` (method, `topogpt3/api_server.py:233`) `def allow(self, key, role)`
- `IpBanner` (class, `topogpt3/api_server.py:250`) `class IpBanner`
- `__init__` (method, `topogpt3/api_server.py:251`) `def __init__(self, max_failures, window)`
- `record_failure` (method, `topogpt3/api_server.py:257`) `def record_failure(self, ip)`
- `is_banned` (method, `topogpt3/api_server.py:265`) `def is_banned(self, ip)`
- `_sanitize_stop` (method, `topogpt3/api_server.py:281`) `def _sanitize_stop(stop)`
- `CompletionRequest` (class, `topogpt3/api_server.py:291`) `class CompletionRequest(BaseModel)`
- `_normalize_stop` (method, `topogpt3/api_server.py:306`) `def _normalize_stop(cls, v)`
- `Message` (class, `topogpt3/api_server.py:310`) `class Message(BaseModel)`
- `ChatCompletionRequest` (class, `topogpt3/api_server.py:316`) `class ChatCompletionRequest(BaseModel)`
- `_normalize_stop` (method, `topogpt3/api_server.py:331`) `def _normalize_stop(cls, v)`
- `ServerModel` (class, `topogpt3/api_server.py:341`) `class ServerModel`
- `complete` (method, `topogpt3/api_server.py:348`) `def complete(self, prompt)`
- `stream_complete` (method, `topogpt3/api_server.py:393`) `def stream_complete(self, prompt)`
- `_is_eos` (method, `topogpt3/api_server.py:482`) `def _is_eos(self, token_id)`
- `_resolve_device` (method, `topogpt3/api_server.py:499`) `def _resolve_device(device)`
- `_probe_arch` (method, `topogpt3/api_server.py:505`) `def _probe_arch(checkpoint_dir)` - Probe a checkpoint and return (scale, n_kv_heads).
- `load_model` (method, `topogpt3/api_server.py:553`) `def load_model(checkpoint, device)`

## Internal vs External Edges

- Internal resolved imports (EXTRACTED): 5
- Cross-boundary resolved imports (EXTRACTED): 7

## Connections

- [EXTRACTED] depends_on community 2 <-> 3 (strength 0.9): Extracted import edge crosses communities: topogpt3/__init__.py imports topogpt3/inference.py.
- [EXTRACTED] depends_on community 3 <-> 4 (strength 0.9): Extracted import edge crosses communities: topogpt3/__main__.py imports topogpt3/jlens.py.
- [EXTRACTED] depends_on community 3 <-> 0 (strength 0.9): Extracted import edge crosses communities: topogpt3/__main__.py imports topogpt3/train.py.
- [INFERRED] shares_context community 1 <-> 3 (strength 0.5): Inferred shared context (language py and layer utility) with no import path between community 1 (eval: harness) and community 3 (topogpt3: inference_hrm).
- [INFERRED] shares_context community 3 <-> 5 (strength 0.5): Inferred shared context (language py and layer utility) with no import path between community 3 (topogpt3: inference_hrm) and community 5 (orphans).

## Risks

- [taint critical] `eval/governor_smoke.py` -> `topogpt3/inference.py` via `eval` (2 hops)
- [taint critical] `eval/governor_smoke.py` -> `topogpt3/inference_hrm.py` via `eval` (2 hops)
- [taint critical] `eval/governor_smoke.py` -> `topogpt3/continuation.py` via `eval` (3 hops)

## Open Questions

- Why do 1 file(s) lack file-level docs (e.g. `topogpt3/__main__.py`)? What purpose do they serve?
- What would break if the most connected file in topogpt3: inference_hrm changed?
- Should topogpt3: inference_hrm be split, given cohesion 0.42?

## Sources

- `topogpt3/__main__.py`
- `topogpt3/api_server.py`
- `topogpt3/continuation.py`
- `topogpt3/inference.py`
- `topogpt3/inference_hrm.py`
