Skip to main content

CIT AI Model Simulator

The CIT AI Model Simulator is a deterministic local service for CIT courses. It gives students who cannot run an approved local model a hardware-neutral fallback, and it gives students and instructors reproducible conditions for testing model-client behavior. It presents the small OpenAI-compatible HTTP surface used by the course without claiming to be an AI model or a complete llama.cpp replacement.

Responses come from versioned scenario state graphs rather than unrestricted text generation. The simulator labels its identity and all simulated timing and token evidence, listens only on the local computer by default, does not execute model-requested tools, and writes append-only evidence logs for debugging and course work.

This initial 0.1.0 implementation targets the specification's M0/M1 Week 1 baseline. Later-lab capabilities such as structured-output faults, tool orchestration, context shifting, compaction, protected validation, and evaluation reports remain deliberately deferred.

Install for development

python -m venv .venv-dev
.venv-dev\Scripts\python -m pip install -e .

On macOS or Linux, use .venv-dev/bin/python instead.

Start the simulator

cit-simulator serve

The default service URL is http://127.0.0.1:8081. Startup output identifies the backend, scenario, model alias, URL, and evidence directory.

Useful commands:

cit-simulator --help
cit-simulator validate
cit-simulator preview
cit-simulator test
cit-simulator serve --port 8081 --acceleration 20

Week 1 API

Learner-facing endpoints:

  • GET /health
  • GET /v1/health
  • GET /v1/models
  • POST /v1/chat/completions
  • POST /v1/chat/completions/input_tokens

Simulator control endpoints:

  • GET /sim/v1/info
  • POST /sim/v1/sessions
  • GET /sim/v1/sessions/{id}
  • POST /sim/v1/sessions/{id}/reset
  • GET /sim/v1/sessions/{id}/evidence

Create a session before a reproducible run:

curl -X POST http://127.0.0.1:8081/sim/v1/sessions \
  -H "Content-Type: application/json" \
  -d "{\"seed\": 49501, \"attempt_number\": 1}"

Pass the returned session ID in the X-CIT-Sim-Session request header. A chat request without that header receives a newly created session ID in the response header, which is convenient for simple compatibility checks but should not be used for graded multi-request attempts.

Scenario data

The built-in lab01-baseline scenario is YAML data packaged separately from the HTTP adapter and engine. Supply another scenario with:

cit-simulator serve --scenario path/to/scenario.yaml

Validate it before use:

cit-simulator validate path/to/scenario.yaml

Evidence and privacy

The server writes one append-only JSON Lines file per session beneath the selected evidence directory. Logs contain structural summaries, counts, identifiers, and hashes rather than raw prompts or credentials. Evidence fields explicitly label the backend as simulator, token counts as approximate, and timing as simulated.

Do not treat simulator TTFT, TPS, or token estimates as measurements of a student's hardware or of a real model.

Specification

The architecture and behavioral authority is TECHNICAL_SPECIFICATION.md. The implementation must not silently weaken its observable contract. Features beyond M1 are future milestones unless the changelog states otherwise.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cit_ai_model_simulator-0.1.0.tar.gz (45.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cit_ai_model_simulator-0.1.0-py3-none-any.whl (24.7 kB view details)

Uploaded Python 3

File details

Details for the file cit_ai_model_simulator-0.1.0.tar.gz.

File metadata

  • Download URL: cit_ai_model_simulator-0.1.0.tar.gz
  • Upload date:
  • Size: 45.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.0

File hashes

Hashes for cit_ai_model_simulator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 933c45891a65f9dff28ab94af9e426dcc3b4fe85c90c9d3a68f89596810ce2b9
MD5 d5f99cdc1f669143afb09b34a7ef11a9
BLAKE2b-256 110b1f0a265859dd47c6d4e17b02aa0488f1dd9fc293237d04fb67670fbb32c9

See more details on using hashes here.

File details

Details for the file cit_ai_model_simulator-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cit_ai_model_simulator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1fc3225e1f70b99056aeaa2da2b558b9d6446fe6120226cd80cf77511be440d
MD5 f33e0197b05c7c03154cb4dff7df7763
BLAKE2b-256 4e83d1f833f9ea98fc229041cd0c1b51c97044640b5e89cc3d9d194c03999a76

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page