Biergarten Pipeline - Activity Diagram (Swimlanes)Biergarten Pipeline - Activity Diagram (Swimlanes)Determines mode (mocked vs model)and LLM sampling parameters.Parse Command-Line ArgumentsLog Error & Display UsagenoAre arguments valid?yesInitialize Global StatesConstruct Dependency Injector (Boost.DI)Instantiate BiergartenDataGeneratorLog WarningDumps generated JSON fields to spdlogLogResults()Exit Pipeline Successfully (0)JsonLoader::LoadLocations("locations.json")Randomly samples from loaded arraySample up to 50 LocationsGetLocationContext(Location)Fetch extract for Region (City, Country)Fetch extract for "beer in <Country>"Fetch extract for "beer in <City>"Store EnrichedCity (Location + Context)Remaining locationsFor each sampled Location?DoneGenerator ModeMockGeneratorLlamaGeneratorCalculate Deterministic HashSelect Adjective, Noun, and DescriptionBuild BreweryResultStore GeneratedBrewery into resultsPrepare System and User PromptsAttempt Counter = 1Applies Gemma 4 Jinja formattingand GBNF JSON GrammarRun Model Inference (llama.cpp)Validate JSON Output (ValidateBreweryJson)Is JSON Valid?yesnoParse into BreweryResultIncrease max_tokens thresholdyesError == "incomplete JSON"noAppend Error details to Prompt for LLM correctionIncrement Attempt CounterAttempt <= 3?yesStill Invalid after 3 attempts?yesnoSkip CityStore GeneratedBrewery into resultsRemaining enriched citiesFor each EnrichedCity?DoneOrchestratorDataLoaderEnrichmentGenerator