# m-prunty/call_me_maybe architecture

> Architecture diagram of the GitHub repository m-prunty/call_me_maybe, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/m-prunty/call_me_maybe
- Repository: https://github.com/m-prunty/call_me_maybe

## Overview

Call Me Maybe is presented as a natural-language-to-function-call system, but the checked-in runtime shown here is much smaller: its entry point initializes the local-model SDK, downloads tokenizer vocabulary, and requests logits. The README describes constrained decoding, function selection, and schema validation as product capabilities, but the tree contains no corresponding implementation modules, so those appear as documented, unverified stages rather than confirmed runtime flow. The function-calling input files exist, but the sampled entry point does not read them.

Main entry points: [`README.md`](https://github.com/m-prunty/call_me_maybe/blob/master/README.md) (Function selection), [`call_me_maybe.py`](https://github.com/m-prunty/call_me_maybe/blob/master/call_me_maybe.py) (Program entry), [`llm_sdk/llm_sdk/__init__.py`](https://github.com/m-prunty/call_me_maybe/blob/master/llm_sdk/llm_sdk/__init__.py) (Local model SDK), [`data/input/function_calling_tests.json`](https://github.com/m-prunty/call_me_maybe/blob/master/data/input/function_calling_tests.json) (Prompt inputs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime inference"]
  node_entry["Program entry<br/>[call_me_maybe.py]"]
  node_sdk["Local model SDK<br/>[__init__.py]"]
end

subgraph group_product["Function calling"]
  node_definitions["Function definitions"]
  node_test_prompts["Prompt inputs"]
  node_selection["Function selection<br/>[README.md]"]
  node_decoding["Constrained decoding<br/>[README.md]"]
  node_validation["JSON validation<br/>[README.md]"]
  node_result["Structured call<br/>[README.md]"]
end

node_user(("User"))
node_hub["Hugging Face Hub"]

node_user -->|"runs"| node_entry
node_entry -->|"initializes"| node_sdk
node_sdk -->|"downloads model files"| node_hub
node_user -.->|"provides prompts"| node_test_prompts
node_definitions -.->|"defines functions"| node_selection
node_test_prompts -.->|"requests selection"| node_selection
node_selection -.->|"selects call"| node_decoding
node_decoding -.->|"constrains output"| node_validation
node_validation -.->|"validates JSON"| node_result

click node_entry "https://github.com/m-prunty/call_me_maybe/blob/master/call_me_maybe.py"
click node_sdk "https://github.com/m-prunty/call_me_maybe/blob/master/llm_sdk/llm_sdk/__init__.py"
click node_definitions "https://github.com/m-prunty/call_me_maybe/blob/master/data/input/functions_definition.json"
click node_test_prompts "https://github.com/m-prunty/call_me_maybe/blob/master/data/input/function_calling_tests.json"
click node_selection "https://github.com/m-prunty/call_me_maybe/blob/master/README.md"
click node_decoding "https://github.com/m-prunty/call_me_maybe/blob/master/README.md"
click node_validation "https://github.com/m-prunty/call_me_maybe/blob/master/README.md"
click node_result "https://github.com/m-prunty/call_me_maybe/blob/master/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_sdk,node_user toneBlue
class node_definitions,node_test_prompts,node_selection,node_decoding,node_validation,node_result toneAmber
class node_hub toneIndigo
```

## Components

### Runtime inference

- [Program entry](https://github.com/m-prunty/call_me_maybe/blob/master/call_me_maybe.py): `call_me_maybe.py`
- [Local model SDK](https://github.com/m-prunty/call_me_maybe/blob/master/llm_sdk/llm_sdk/__init__.py): `llm_sdk/llm_sdk/__init__.py`

### Function calling

- [Function definitions](https://github.com/m-prunty/call_me_maybe/blob/master/data/input/functions_definition.json): `data/input/functions_definition.json`
- [Prompt inputs](https://github.com/m-prunty/call_me_maybe/blob/master/data/input/function_calling_tests.json): `data/input/function_calling_tests.json`
- [Function selection](https://github.com/m-prunty/call_me_maybe/blob/master/README.md): `README.md`
- [Constrained decoding](https://github.com/m-prunty/call_me_maybe/blob/master/README.md): `README.md`
- [JSON validation](https://github.com/m-prunty/call_me_maybe/blob/master/README.md): `README.md`
- [Structured call](https://github.com/m-prunty/call_me_maybe/blob/master/README.md): `README.md`

### Other components

- **User**
- **Hugging Face Hub**

## Connections

- User → Program entry: runs (evidence: `README.md`)
- Program entry → Local model SDK: initializes (evidence: `call_me_maybe.py`)
- Local model SDK → Hugging Face Hub: downloads model files (evidence: `llm_sdk/llm_sdk/__init__.py`)
- User → Prompt inputs: provides prompts (evidence: `README.md`)
- Function definitions → Function selection: defines functions (evidence: `README.md`)
- Prompt inputs → Function selection: requests selection (evidence: `README.md`)
- Function selection → Constrained decoding: selects call (evidence: `README.md`)
- Constrained decoding → JSON validation: constrains output (evidence: `README.md`)
- JSON validation → Structured call: validates JSON (evidence: `README.md`)
