2024-10-06 23:55:03 +00:00
<!DOCTYPE html>
< html :class = "{'dark': darkMode === 'dark' || (darkMode === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches)}" class = "scroll-smooth" data-content_root = "../" lang = "en" x-data = "{ darkMode: localStorage.getItem('darkMode') || localStorage.setItem('darkMode', 'system'), activeSection: '' }" x-init = "$watch('darkMode', val => localStorage.setItem('darkMode', val))" >
< head >
< meta content = "width=device-width, initial-scale=1.0" name = "viewport" / >
< meta charset = "utf-8" / >
< meta content = "white" media = "(prefers-color-scheme: light)" name = "theme-color" / >
< meta content = "black" media = "(prefers-color-scheme: dark)" name = "theme-color" / >
< meta content = "width=device-width, initial-scale=1" name = "viewport" / >
2025-05-31 00:48:33 +00:00
< title > Configuration Reference | Arch Docs v0.3.1< / title >
< meta content = "Configuration Reference | Arch Docs v0.3.1" property = "og:title" / >
< meta content = "Configuration Reference | Arch Docs v0.3.1" name = "twitter:title" / >
2025-02-21 00:20:18 +00:00
< link href = "../_static/pygments.css?v=466e7b45" rel = "stylesheet" type = "text/css" / >
2024-11-08 18:00:49 +00:00
< link href = "../_static/theme.css?v=42baaae4" rel = "stylesheet" type = "text/css" / >
2024-10-06 23:55:03 +00:00
< link href = "../_static/_static/custom.css" rel = "stylesheet" type = "text/css" / >
< link href = "../_static/sphinx-design.min.css?v=95c83b7e" rel = "stylesheet" type = "text/css" / >
2024-11-08 18:00:49 +00:00
< link href = "../_static/awesome-sphinx-design.css?v=15e0fffa" rel = "stylesheet" type = "text/css" / >
2024-10-06 23:55:03 +00:00
< link href = "./docs/resources/configuration_reference.html" rel = "canonical" / >
< link href = "../_static/favicon.ico" rel = "icon" / >
< link href = "../search.html" rel = "search" title = "Search" / >
2024-12-20 21:25:34 +00:00
< link href = "../build_with_arch/multi_turn.html" rel = "prev" title = "Multi-Turn" / >
2024-10-06 23:55:03 +00:00
< script >
<!-- Prevent Flash of wrong theme -->
const userPreference = localStorage.getItem('darkMode');
let mode;
if (userPreference === 'dark' || window.matchMedia('(prefers-color-scheme: dark)').matches) {
mode = 'dark';
document.documentElement.classList.add('dark');
} else {
mode = 'light';
}
if (!userPreference) {localStorage.setItem('darkMode', mode)}
< / script >
< / head >
< body :class = "{ 'overflow-hidden': showSidebar }" class = "min-h-screen font-sans antialiased bg-background text-foreground" x-data = "{ showSidebar: false, showScrollTop: false }" >
< div @ click . self = "showSidebar = false" class = "fixed inset-0 z-50 overflow-hidden bg-background/80 backdrop-blur-sm md:hidden" x-cloak = "" x-show = "showSidebar" > < / div > < div class = "relative flex flex-col min-h-screen" id = "page" > < a class = "absolute top-0 left-0 z-[100] block bg-background p-4 text-xl transition -translate-x-full opacity-0 focus:translate-x-0 focus:opacity-100" href = "#content" >
Skip to content
< / a > < header class = "sticky top-0 z-40 w-full border-b shadow-sm border-border supports-backdrop-blur:bg-background/60 bg-background/95 backdrop-blur" > < div class = "container flex items-center h-14" >
< div class = "hidden mr-4 md:flex" >
< a class = "flex items-center mr-6" href = "../index.html" >
2025-05-31 00:48:33 +00:00
< img alt = "Logo" class = "mr-2 dark:invert" height = "24" src = "../_static/favicon.ico" width = "24" / > < span class = "hidden font-bold sm:inline-block text-clip whitespace-nowrap" > Arch Docs v0.3.1< / span >
2024-10-06 23:55:03 +00:00
< / a > < / div > < button @ click = "showSidebar = true" class = "inline-flex items-center justify-center h-10 px-0 py-2 mr-2 text-base font-medium transition-colors rounded-md hover:text-accent-foreground hover:bg-transparent md:hidden" type = "button" >
< svg aria-hidden = "true" fill = "currentColor" height = "24" viewbox = "0 96 960 960" width = "24" xmlns = "http://www.w3.org/2000/svg" >
< path d = "M152.587 825.087q-19.152 0-32.326-13.174t-13.174-32.326q0-19.152 13.174-32.326t32.326-13.174h440q19.152 0 32.326 13.174t13.174 32.326q0 19.152-13.174 32.326t-32.326 13.174h-440Zm0-203.587q-19.152 0-32.326-13.174T107.087 576q0-19.152 13.174-32.326t32.326-13.174h320q19.152 0 32.326 13.174T518.087 576q0 19.152-13.174 32.326T472.587 621.5h-320Zm0-203.587q-19.152 0-32.326-13.174t-13.174-32.326q0-19.152 13.174-32.326t32.326-13.174h440q19.152 0 32.326 13.174t13.174 32.326q0 19.152-13.174 32.326t-32.326 13.174h-440ZM708.913 576l112.174 112.174q12.674 12.674 12.674 31.826t-12.674 31.826Q808.413 764.5 789.261 764.5t-31.826-12.674l-144-144Q600 594.391 600 576t13.435-31.826l144-144q12.674-12.674 31.826-12.674t31.826 12.674q12.674 12.674 12.674 31.826t-12.674 31.826L708.913 576Z" > < / path >
< / svg >
< span class = "sr-only" > Toggle navigation menu< / span >
< / button >
< div class = "flex items-center justify-between flex-1 space-x-2 sm:space-x-4 md:justify-end" >
< div class = "flex-1 w-full md:w-auto md:flex-none" > < form @ keydown . k . window . meta = "$refs.search.focus()" action = "../search.html" class = "relative flex items-center group" id = "searchbox" method = "get" >
< input aria-label = "Search the docs" class = "inline-flex items-center font-medium transition-colors bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background border border-input hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:placeholder-accent-foreground py-2 px-4 relative h-9 w-full justify-start rounded-[0.5rem] text-sm text-muted-foreground sm:pr-12 md:w-40 lg:w-64" id = "search-input" name = "q" placeholder = "Search ..." type = "search" x-ref = "search" / >
< kbd class = "pointer-events-none absolute right-1.5 top-2 hidden h-5 select-none text-muted-foreground items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex group-hover:bg-accent group-hover:text-accent-foreground" >
< span class = "text-xs" > ⌘< / span >
K
< / kbd >
< / form >
< / div >
< nav class = "flex items-center space-x-1" >
< a href = "https://github.com/katanemo/arch" rel = "noopener nofollow" title = "Visit repository on GitHub" >
< div class = "inline-flex items-center justify-center px-0 text-sm font-medium transition-colors rounded-md disabled:opacity-50 disabled:pointer-events-none hover:bg-accent hover:text-accent-foreground h-9 w-9" >
< svg fill = "currentColor" height = "26px" style = "margin-top:-2px;display:inline" viewbox = "0 0 45 44" xmlns = "http://www.w3.org/2000/svg" > < path clip-rule = "evenodd" d = "M22.477.927C10.485.927.76 10.65.76 22.647c0 9.596 6.223 17.736 14.853 20.608 1.087.2 1.483-.47 1.483-1.047 0-.516-.019-1.881-.03-3.693-6.04 1.312-7.315-2.912-7.315-2.912-.988-2.51-2.412-3.178-2.412-3.178-1.972-1.346.149-1.32.149-1.32 2.18.154 3.327 2.24 3.327 2.24 1.937 3.318 5.084 2.36 6.321 1.803.197-1.403.759-2.36 1.379-2.903-4.823-.548-9.894-2.412-9.894-10.734 0-2.37.847-4.31 2.236-5.828-.224-.55-.969-2.759.214-5.748 0 0 1.822-.584 5.972 2.226 1.732-.482 3.59-.722 5.437-.732 1.845.01 3.703.25 5.437.732 4.147-2.81 5.967-2.226 5.967-2.226 1.185 2.99.44 5.198.217 5.748 1.392 1.517 2.232 3.457 2.232 5.828 0 8.344-5.078 10.18-9.916 10.717.779.67 1.474 1.996 1.474 4.021 0 2.904-.027 5.247-.027 5.96 0 .58.392 1.256 1.493 1.044C37.981 40.375 44.2 32.24 44.2 22.647c0-11.996-9.726-21.72-21.722-21.72" fill = "currentColor" fill-rule = "evenodd" > < / path > < / svg >
< / div >
< / a >
< button @ click = "darkMode = darkMode === 'light' ? 'dark' : 'light'" aria-label = "Color theme switcher" class = "relative inline-flex items-center justify-center px-0 text-sm font-medium transition-colors rounded-md hover:bg-accent hover:text-accent-foreground h-9 w-9" type = "button" >
< svg class = "absolute transition-all scale-100 rotate-0 dark:-rotate-90 dark:scale-0" fill = "currentColor" height = "24" viewbox = "0 96 960 960" width = "24" xmlns = "http://www.w3.org/2000/svg" >
< path d = "M480 685q45.456 0 77.228-31.772Q589 621.456 589 576q0-45.456-31.772-77.228Q525.456 467 480 467q-45.456 0-77.228 31.772Q371 530.544 371 576q0 45.456 31.772 77.228Q434.544 685 480 685Zm0 91q-83 0-141.5-58.5T280 576q0-83 58.5-141.5T480 376q83 0 141.5 58.5T680 576q0 83-58.5 141.5T480 776ZM80 621.5q-19.152 0-32.326-13.174T34.5 576q0-19.152 13.174-32.326T80 530.5h80q19.152 0 32.326 13.174T205.5 576q0 19.152-13.174 32.326T160 621.5H80Zm720 0q-19.152 0-32.326-13.174T754.5 576q0-19.152 13.174-32.326T800 530.5h80q19.152 0 32.326 13.174T925.5 576q0 19.152-13.174 32.326T880 621.5h-80Zm-320-320q-19.152 0-32.326-13.174T434.5 256v-80q0-19.152 13.174-32.326T480 130.5q19.152 0 32.326 13.174T525.5 176v80q0 19.152-13.174 32.326T480 301.5Zm0 720q-19.152 0-32.326-13.17Q434.5 995.152 434.5 976v-80q0-19.152 13.174-32.326T480 850.5q19.152 0 32.326 13.174T525.5 896v80q0 19.152-13.174 32.33-13.174 13.17-32.326 13.17ZM222.174 382.065l-43-42Q165.5 327.391 166 308.239t13.174-33.065q13.435-13.674 32.587-13.674t32.065 13.674l42.239 43q12.674 13.435 12.555 31.706-.12 18.272-12.555 31.946-12.674 13.674-31.445 13.413-18.772-.261-32.446-13.174Zm494 494.761-42.239-43q-12.674-13.435-12.674-32.087t12.674-31.565Q686.609 756.5 705.38 757q18.772.5 32.446 13.174l43 41.761Q794.5 824.609 794 843.761t-13.174 33.065Q767.391 890.5 748.239 890.5t-32.065-13.674Zm-42-494.761Q660.5 369.391 661 350.62q.5-18.772 13.174-32.446l41.761-43Q728.609 261.5 747.761 262t33.065 13.174q13.674 13.435 13.674 32.587t-13.674 32.065l-43 42.239q-13.435 12.674-31.706 12.555-18.272-.12-31.946-12.555Zm-495 494.761Q165.5 863.391 165.5 844.239t13.674-32.065l43-42.239q13.435-12.674 32.087-12.674t31.565 12.674Q299.5 782.609 299 801.38q-.5 18.772-13.174 32.446l-41.761 43Q231.391 890.5 212.239 890t-33.065-13.174ZM480 576Z" > < / path >
< / svg >
< svg class = "absolute transition-all scale-0 rotate-90 dark:rotate-0 dark:scale-100" fill = "currentColor" height = "24" viewbox = "0 96 960 960" width = "24" xmlns = "http://www.w3.org/2000/svg" >
< path d = "M480 936q-151 0-255.5-104.5T120 576q0-138 90-239.5T440 218q25-3 39 18t-1 44q-17 26-25.5 55t-8.5 61q0 90 63 153t153 63q31 0 61.5-9t54.5-25q21-14 43-1.5t19 39.5q-14 138-117.5 229T480 936Zm0-80q88 0 158-48.5T740 681q-20 5-40 8t-40 3q-123 0-209.5-86.5T364 396q0-20 3-40t8-40q-78 32-126.5 102T200 576q0 116 82 198t198 82Zm-10-270Z" > < / path >
< / svg >
< / button >
< / nav >
< / div >
< / div >
< / header >
< div class = "flex-1" > < div class = "container flex-1 items-start md:grid md:grid-cols-[220px_minmax(0,1fr)] md:gap-6 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-10" > < aside :aria-hidden = "!showSidebar" :class = "{ 'translate-x-0': showSidebar }" class = "fixed inset-y-0 left-0 md:top-14 z-50 md:z-30 bg-background md:bg-transparent transition-all duration-100 -translate-x-full md:translate-x-0 ml-0 p-6 md:p-0 md:-ml-2 md:h-[calc(100vh-3.5rem)] w-5/6 md:w-full shrink-0 overflow-y-auto border-r border-border md:sticky" id = "left-sidebar" >
< a class = "!justify-start text-sm md:!hidden bg-background" href = "../index.html" >
2025-05-31 00:48:33 +00:00
< img alt = "Logo" class = "mr-2 dark:invert" height = "16" src = "../_static/favicon.ico" width = "16" / > < span class = "font-bold text-clip whitespace-nowrap" > Arch Docs v0.3.1< / span >
2024-10-06 23:55:03 +00:00
< / a >
< div class = "relative overflow-hidden md:overflow-auto my-4 md:my-0 h-[calc(100vh-8rem)] md:h-auto" >
< div class = "overflow-y-auto h-full w-full relative pr-6" >
< script async = "" src = "https://www.googletagmanager.com/gtag/js?id=G-K2LXXSX6HB" > < / script >
< script >
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-K2LXXSX6HB');
< / script >
< nav class = "table w-full min-w-full my-6 lg:my-8" >
< p class = "caption" role = "heading" > < span class = "caption-text" > Get Started< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "../get_started/overview.html" > Overview< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../get_started/intro_to_arch.html" > Intro to Arch< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../get_started/quickstart.html" > Quickstart< / a > < / li >
2024-12-06 23:15:59 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "../get_started/quickstart.html#next-steps" > Next Steps< / a > < / li >
2024-10-06 23:55:03 +00:00
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Concepts< / span > < / p >
< ul >
< li class = "toctree-l1" x-data = "{ expanded: $el.classList.contains('current') ? true : false }" > < a :class = "{ 'expanded' : expanded }" @ click = "expanded = !expanded" class = "reference internal expandable" href = "../concepts/tech_overview/tech_overview.html" > Tech Overview< button @ click . prevent . stop = "expanded = !expanded" type = "button" > < span class = "sr-only" > < / span > < svg fill = "currentColor" height = "18px" stroke = "none" viewbox = "0 0 24 24" width = "18px" xmlns = "http://www.w3.org/2000/svg" > < path d = "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" > < / path > < / svg > < / button > < / a > < ul x-show = "expanded" >
< li class = "toctree-l2" > < a class = "reference internal" href = "../concepts/tech_overview/terminology.html" > Terminology< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../concepts/tech_overview/threading_model.html" > Threading Model< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../concepts/tech_overview/listener.html" > Listener< / a > < / li >
2024-10-08 20:19:06 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "../concepts/tech_overview/prompt.html" > Prompts< / a > < / li >
2024-10-06 23:55:03 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "../concepts/tech_overview/model_serving.html" > Model Serving< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../concepts/tech_overview/request_lifecycle.html" > Request Lifecycle< / a > < / li >
2024-10-08 20:19:06 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "../concepts/tech_overview/error_target.html" > Error Target< / a > < / li >
2024-10-06 23:55:03 +00:00
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../concepts/llm_provider.html" > LLM Provider< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../concepts/prompt_target.html" > Prompt Target< / a > < / li >
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Guides< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "../guides/prompt_guard.html" > Prompt Guard< / a > < / li >
2025-03-20 20:58:08 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "../guides/agent_routing.html" > Agent Routing and Hand Off< / a > < / li >
2024-10-06 23:55:03 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "../guides/function_calling.html" > Function Calling< / a > < / li >
2025-05-30 23:15:58 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "../guides/llm_router.html" > LLM Routing< / a > < / li >
2024-10-06 23:55:03 +00:00
< li class = "toctree-l1" x-data = "{ expanded: $el.classList.contains('current') ? true : false }" > < a :class = "{ 'expanded' : expanded }" @ click = "expanded = !expanded" class = "reference internal expandable" href = "../guides/observability/observability.html" > Observability< button @ click . prevent . stop = "expanded = !expanded" type = "button" > < span class = "sr-only" > < / span > < svg fill = "currentColor" height = "18px" stroke = "none" viewbox = "0 0 24 24" width = "18px" xmlns = "http://www.w3.org/2000/svg" > < path d = "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z" > < / path > < / svg > < / button > < / a > < ul x-show = "expanded" >
< li class = "toctree-l2" > < a class = "reference internal" href = "../guides/observability/tracing.html" > Tracing< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../guides/observability/monitoring.html" > Monitoring< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../guides/observability/access_logging.html" > Access Logging< / a > < / li >
< / ul >
< / li >
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Build with Arch< / span > < / p >
< ul >
2024-12-20 21:25:34 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "../build_with_arch/agent.html" > Agentic Apps< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../build_with_arch/rag.html" > RAG Apps< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../build_with_arch/multi_turn.html" > Multi-Turn< / a > < / li >
2024-10-06 23:55:03 +00:00
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Resources< / span > < / p >
< ul class = "current" >
< li class = "toctree-l1 current" > < a class = "current reference internal" href = "#" > Configuration Reference< / a > < / li >
< / ul >
< / nav >
< / div >
< / div >
< button @ click = "showSidebar = false" class = "absolute md:hidden right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100" type = "button" >
< svg class = "h-4 w-4" fill = "currentColor" height = "24" stroke = "none" viewbox = "0 96 960 960" width = "24" xmlns = "http://www.w3.org/2000/svg" >
< path d = "M480 632 284 828q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536 576l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480 632Z" > < / path >
< / svg >
< / button >
< / aside >
< main class = "relative py-6 lg:gap-10 lg:py-8 xl:grid xl:grid-cols-[1fr_300px]" >
< div class = "w-full min-w-0 mx-auto" >
< nav aria-label = "breadcrumbs" class = "flex items-center mb-4 space-x-1 text-sm text-muted-foreground" >
< a class = "overflow-hidden text-ellipsis whitespace-nowrap hover:text-foreground" href = "../index.html" >
2025-05-31 00:48:33 +00:00
< span class = "hidden md:inline" > Arch Docs v0.3.1< / span >
2024-10-06 23:55:03 +00:00
< svg aria-label = "Home" class = "md:hidden" fill = "currentColor" height = "18" stroke = "none" viewbox = "0 96 960 960" width = "18" xmlns = "http://www.w3.org/2000/svg" >
< path d = "M240 856h120V616h240v240h120V496L480 316 240 496v360Zm-80 80V456l320-240 320 240v480H520V696h-80v240H160Zm320-350Z" > < / path >
< / svg >
< / a >
< div class = "mr-1" > /< / div > < span aria-current = "page" class = "font-medium text-foreground overflow-hidden text-ellipsis whitespace-nowrap" > Configuration Reference< / span >
< / nav >
< div id = "content" role = "main" >
< section id = "configuration-reference" >
2025-04-13 06:52:52 +00:00
< span id = "id1" > < / span > < h1 > Configuration Reference< a @ click . prevent = "window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)" aria-label = "Copy link to this element" class = "headerlink" data-tooltip = "Copy link to this element" href = "#configuration-reference" > < svg height = "1em" viewbox = "0 0 24 24" width = "1em" xmlns = "http://www.w3.org/2000/svg" > < path d = "M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z" > < / path > < / svg > < / a > < / h1 >
< p > The following is a complete reference of the < code class = "docutils literal notranslate" > < span class = "pre" > arch_config.yml< / span > < / code > that controls the behavior of a single instance of
2024-12-20 21:25:34 +00:00
the Arch gateway. This where you enable capabilities like routing to upstream LLm providers, defining prompt_targets
where prompts get routed to, apply guardrails, and enable critical agent observability features.< / p >
2025-04-13 06:52:52 +00:00
< div class = "literal-block-wrapper docutils container" id = "id2" >
< div class = "code-block-caption" > < span class = "caption-text" > < a class = "reference download internal" download = "" href = "../_downloads/ca9d3b7116524473d8adbde7cf15d167/arch_config_full_reference.yaml" > < code class = "xref download docutils literal notranslate" > < span class = "pre" > Arch< / span > < span class = "pre" > Configuration< / span > < span class = "pre" > -< / span > < span class = "pre" > Full< / span > < span class = "pre" > Reference< / span > < / code > < / a > < / span > < a @ click . prevent = "window.navigator.clipboard.writeText($el.href); $el.setAttribute('data-tooltip', 'Copied!'); setTimeout(() => $el.setAttribute('data-tooltip', 'Copy link to this element'), 2000)" aria-label = "Copy link to this element" class = "headerlink" data-tooltip = "Copy link to this element" href = "#id2" > < svg height = "1em" viewbox = "0 0 24 24" width = "1em" xmlns = "http://www.w3.org/2000/svg" > < path d = "M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z" > < / path > < / svg > < / a > < / div >
2025-02-15 03:28:43 +00:00
< div class = "highlight-yaml notranslate" > < div class = "highlight" > < pre > < span > < / span > < code > < span id = "line-1" > < span class = "linenos" > 1< / span > < span class = "nt" > version< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > v0.1< / span >
< / span > < span id = "line-2" > < span class = "linenos" > 2< / span >
< / span > < span id = "line-3" > < span class = "linenos" > 3< / span > < span class = "nt" > listeners< / span > < span class = "p" > :< / span >
< / span > < span id = "line-4" > < span class = "linenos" > 4< / span > < span class = "w" > < / span > < span class = "nt" > ingress_traffic< / span > < span class = "p" > :< / span >
< / span > < span id = "line-5" > < span class = "linenos" > 5< / span > < span class = "w" > < / span > < span class = "nt" > address< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 0.0.0.0< / span >
< / span > < span id = "line-6" > < span class = "linenos" > 6< / span > < span class = "w" > < / span > < span class = "nt" > port< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 10000< / span >
< / span > < span id = "line-7" > < span class = "linenos" > 7< / span > < span class = "w" > < / span > < span class = "nt" > message_format< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > openai< / span >
< / span > < span id = "line-8" > < span class = "linenos" > 8< / span > < span class = "w" > < / span > < span class = "nt" > timeout< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 5s< / span >
< / span > < span id = "line-9" > < span class = "linenos" > 9< / span > < span class = "w" > < / span > < span class = "nt" > egress_traffic< / span > < span class = "p" > :< / span >
< / span > < span id = "line-10" > < span class = "linenos" > 10< / span > < span class = "w" > < / span > < span class = "nt" > address< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 0.0.0.0< / span >
< / span > < span id = "line-11" > < span class = "linenos" > 11< / span > < span class = "w" > < / span > < span class = "nt" > port< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 12000< / span >
< / span > < span id = "line-12" > < span class = "linenos" > 12< / span > < span class = "w" > < / span > < span class = "nt" > message_format< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > openai< / span >
< / span > < span id = "line-13" > < span class = "linenos" > 13< / span > < span class = "w" > < / span > < span class = "nt" > timeout< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 5s< / span >
< / span > < span id = "line-14" > < span class = "linenos" > 14< / span >
< / span > < span id = "line-15" > < span class = "linenos" > 15< / span > < span class = "c1" > # Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem.< / span >
< / span > < span id = "line-16" > < span class = "linenos" > 16< / span > < span class = "nt" > endpoints< / span > < span class = "p" > :< / span >
< / span > < span id = "line-17" > < span class = "linenos" > 17< / span > < span class = "w" > < / span > < span class = "nt" > app_server< / span > < span class = "p" > :< / span >
< / span > < span id = "line-18" > < span class = "linenos" > 18< / span > < span class = "w" > < / span > < span class = "c1" > # value could be ip address or a hostname with port< / span >
< / span > < span id = "line-19" > < span class = "linenos" > 19< / span > < span class = "w" > < / span > < span class = "c1" > # this could also be a list of endpoints for load balancing< / span >
< / span > < span id = "line-20" > < span class = "linenos" > 20< / span > < span class = "w" > < / span > < span class = "c1" > # for example endpoint: [ ip1:port, ip2:port ]< / span >
< / span > < span id = "line-21" > < span class = "linenos" > 21< / span > < span class = "w" > < / span > < span class = "nt" > endpoint< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 127.0.0.1:80< / span >
< / span > < span id = "line-22" > < span class = "linenos" > 22< / span > < span class = "w" > < / span > < span class = "c1" > # max time to wait for a connection to be established< / span >
< / span > < span id = "line-23" > < span class = "linenos" > 23< / span > < span class = "w" > < / span > < span class = "nt" > connect_timeout< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 0.005s< / span >
< / span > < span id = "line-24" > < span class = "linenos" > 24< / span >
< / span > < span id = "line-25" > < span class = "linenos" > 25< / span > < span class = "w" > < / span > < span class = "nt" > mistral_local< / span > < span class = "p" > :< / span >
< / span > < span id = "line-26" > < span class = "linenos" > 26< / span > < span class = "w" > < / span > < span class = "nt" > endpoint< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 127.0.0.1:8001< / span >
< / span > < span id = "line-27" > < span class = "linenos" > 27< / span >
< / span > < span id = "line-28" > < span class = "linenos" > 28< / span > < span class = "w" > < / span > < span class = "nt" > error_target< / span > < span class = "p" > :< / span >
< / span > < span id = "line-29" > < span class = "linenos" > 29< / span > < span class = "w" > < / span > < span class = "nt" > endpoint< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > error_target_1< / span >
< / span > < span id = "line-30" > < span class = "linenos" > 30< / span >
< / span > < span id = "line-31" > < span class = "linenos" > 31< / span > < span class = "c1" > # Centralized way to manage LLMs, manage keys, retry logic, failover and limits in a central way< / span >
< / span > < span id = "line-32" > < span class = "linenos" > 32< / span > < span class = "nt" > llm_providers< / span > < span class = "p" > :< / span >
< / span > < span id = "line-33" > < span class = "linenos" > 33< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > -< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > OpenAI< / span >
< / span > < span id = "line-34" > < span class = "linenos" > 34< / span > < span class = "w" > < / span > < span class = "nt" > provider_interface< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > openai< / span >
< / span > < span id = "line-35" > < span class = "linenos" > 35< / span > < span class = "w" > < / span > < span class = "nt" > access_key< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > $OPENAI_API_KEY< / span >
< / span > < span id = "line-36" > < span class = "linenos" > 36< / span > < span class = "w" > < / span > < span class = "nt" > model< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > gpt-4o< / span >
< / span > < span id = "line-37" > < span class = "linenos" > 37< / span > < span class = "w" > < / span > < span class = "nt" > default< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > true< / span >
< / span > < span id = "line-38" > < span class = "linenos" > 38< / span >
< / span > < span id = "line-39" > < span class = "linenos" > 39< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > -< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > Mistral8x7b< / span >
< / span > < span id = "line-40" > < span class = "linenos" > 40< / span > < span class = "w" > < / span > < span class = "nt" > provider_interface< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > openai< / span >
< / span > < span id = "line-41" > < span class = "linenos" > 41< / span > < span class = "w" > < / span > < span class = "nt" > access_key< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > $MISTRAL_API_KEY< / span >
< / span > < span id = "line-42" > < span class = "linenos" > 42< / span > < span class = "w" > < / span > < span class = "nt" > model< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > mistral-8x7b< / span >
< / span > < span id = "line-43" > < span class = "linenos" > 43< / span >
< / span > < span id = "line-44" > < span class = "linenos" > 44< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > -< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > MistralLocal7b< / span >
< / span > < span id = "line-45" > < span class = "linenos" > 45< / span > < span class = "w" > < / span > < span class = "nt" > provider_interface< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > openai< / span >
< / span > < span id = "line-46" > < span class = "linenos" > 46< / span > < span class = "w" > < / span > < span class = "nt" > model< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > mistral-7b-instruct< / span >
< / span > < span id = "line-47" > < span class = "linenos" > 47< / span > < span class = "w" > < / span > < span class = "nt" > endpoint< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > mistral_local< / span >
< / span > < span id = "line-48" > < span class = "linenos" > 48< / span >
< / span > < span id = "line-49" > < span class = "linenos" > 49< / span > < span class = "c1" > # provides a way to override default settings for the arch system< / span >
< / span > < span id = "line-50" > < span class = "linenos" > 50< / span > < span class = "nt" > overrides< / span > < span class = "p" > :< / span >
2025-04-13 06:52:52 +00:00
< / span > < span id = "line-51" > < span class = "linenos" > 51< / span > < span class = "w" > < / span > < span class = "c1" > # By default Arch uses an NLI + embedding approach to match an incoming prompt to a prompt target.< / span >
< / span > < span id = "line-52" > < span class = "linenos" > 52< / span > < span class = "w" > < / span > < span class = "c1" > # The intent matching threshold is kept at 0.80, you can override this behavior if you would like< / span >
2025-02-15 03:28:43 +00:00
< / span > < span id = "line-53" > < span class = "linenos" > 53< / span > < span class = "w" > < / span > < span class = "nt" > prompt_target_intent_matching_threshold< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 0.60< / span >
< / span > < span id = "line-54" > < span class = "linenos" > 54< / span >
< / span > < span id = "line-55" > < span class = "linenos" > 55< / span > < span class = "c1" > # default system prompt used by all prompt targets< / span >
< / span > < span id = "line-56" > < span class = "linenos" > 56< / span > < span class = "nt" > system_prompt< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > You are a network assistant that just offers facts; not advice on manufacturers or purchasing decisions.< / span >
< / span > < span id = "line-57" > < span class = "linenos" > 57< / span >
< / span > < span id = "line-58" > < span class = "linenos" > 58< / span > < span class = "nt" > prompt_guards< / span > < span class = "p" > :< / span >
< / span > < span id = "line-59" > < span class = "linenos" > 59< / span > < span class = "w" > < / span > < span class = "nt" > input_guards< / span > < span class = "p" > :< / span >
< / span > < span id = "line-60" > < span class = "linenos" > 60< / span > < span class = "w" > < / span > < span class = "nt" > jailbreak< / span > < span class = "p" > :< / span >
< / span > < span id = "line-61" > < span class = "linenos" > 61< / span > < span class = "w" > < / span > < span class = "nt" > on_exception< / span > < span class = "p" > :< / span >
< / span > < span id = "line-62" > < span class = "linenos" > 62< / span > < span class = "w" > < / span > < span class = "nt" > message< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > Looks like you're curious about my abilities, but I can only provide assistance within my programmed parameters.< / span >
< / span > < span id = "line-63" > < span class = "linenos" > 63< / span >
< / span > < span id = "line-64" > < span class = "linenos" > 64< / span > < span class = "nt" > prompt_targets< / span > < span class = "p" > :< / span >
< / span > < span id = "line-65" > < span class = "linenos" > 65< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > -< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > information_extraction< / span >
< / span > < span id = "line-66" > < span class = "linenos" > 66< / span > < span class = "w" > < / span > < span class = "nt" > default< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > true< / span >
< / span > < span id = "line-67" > < span class = "linenos" > 67< / span > < span class = "w" > < / span > < span class = "nt" > description< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > handel all scenarios that are question and answer in nature. Like summarization, information extraction, etc.< / span >
< / span > < span id = "line-68" > < span class = "linenos" > 68< / span > < span class = "w" > < / span > < span class = "nt" > endpoint< / span > < span class = "p" > :< / span >
< / span > < span id = "line-69" > < span class = "linenos" > 69< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > app_server< / span >
< / span > < span id = "line-70" > < span class = "linenos" > 70< / span > < span class = "w" > < / span > < span class = "nt" > path< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > /agent/summary< / span >
< / span > < span id = "line-71" > < span class = "linenos" > 71< / span > < span class = "w" > < / span > < span class = "nt" > http_method< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > POST< / span >
< / span > < span id = "line-72" > < span class = "linenos" > 72< / span > < span class = "w" > < / span > < span class = "c1" > # Arch uses the default LLM and treats the response from the endpoint as the prompt to send to the LLM< / span >
< / span > < span id = "line-73" > < span class = "linenos" > 73< / span > < span class = "w" > < / span > < span class = "nt" > auto_llm_dispatch_on_response< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > true< / span >
< / span > < span id = "line-74" > < span class = "linenos" > 74< / span > < span class = "w" > < / span > < span class = "c1" > # override system prompt for this prompt target< / span >
< / span > < span id = "line-75" > < span class = "linenos" > 75< / span > < span class = "w" > < / span > < span class = "nt" > system_prompt< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > You are a helpful information extraction assistant. Use the information that is provided to you.< / span >
< / span > < span id = "line-76" > < span class = "linenos" > 76< / span >
< / span > < span id = "line-77" > < span class = "linenos" > 77< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > -< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > reboot_network_device< / span >
< / span > < span id = "line-78" > < span class = "linenos" > 78< / span > < span class = "w" > < / span > < span class = "nt" > description< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > Reboot a specific network device< / span >
< / span > < span id = "line-79" > < span class = "linenos" > 79< / span > < span class = "w" > < / span > < span class = "nt" > endpoint< / span > < span class = "p" > :< / span >
< / span > < span id = "line-80" > < span class = "linenos" > 80< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > app_server< / span >
< / span > < span id = "line-81" > < span class = "linenos" > 81< / span > < span class = "w" > < / span > < span class = "nt" > path< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > /agent/action< / span >
< / span > < span id = "line-82" > < span class = "linenos" > 82< / span > < span class = "w" > < / span > < span class = "nt" > parameters< / span > < span class = "p" > :< / span >
< / span > < span id = "line-83" > < span class = "linenos" > 83< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > -< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > device_id< / span >
< / span > < span id = "line-84" > < span class = "linenos" > 84< / span > < span class = "w" > < / span > < span class = "nt" > type< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > str< / span >
< / span > < span id = "line-85" > < span class = "linenos" > 85< / span > < span class = "w" > < / span > < span class = "nt" > description< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > Identifier of the network device to reboot.< / span >
< / span > < span id = "line-86" > < span class = "linenos" > 86< / span > < span class = "w" > < / span > < span class = "nt" > required< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > true< / span >
< / span > < span id = "line-87" > < span class = "linenos" > 87< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > -< / span > < span class = "w" > < / span > < span class = "nt" > name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > confirmation< / span >
< / span > < span id = "line-88" > < span class = "linenos" > 88< / span > < span class = "w" > < / span > < span class = "nt" > type< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > bool< / span >
< / span > < span id = "line-89" > < span class = "linenos" > 89< / span > < span class = "w" > < / span > < span class = "nt" > description< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > Confirmation flag to proceed with reboot.< / span >
< / span > < span id = "line-90" > < span class = "linenos" > 90< / span > < span class = "w" > < / span > < span class = "nt" > default< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > false< / span >
< / span > < span id = "line-91" > < span class = "linenos" > 91< / span > < span class = "w" > < / span > < span class = "nt" > enum< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p p-Indicator" > [< / span > < span class = "nv" > true< / span > < span class = "p p-Indicator" > ,< / span > < span class = "w" > < / span > < span class = "nv" > false< / span > < span class = "p p-Indicator" > ]< / span >
< / span > < span id = "line-92" > < span class = "linenos" > 92< / span >
< / span > < span id = "line-93" > < span class = "linenos" > 93< / span > < span class = "nt" > tracing< / span > < span class = "p" > :< / span >
< / span > < span id = "line-94" > < span class = "linenos" > 94< / span > < span class = "w" > < / span > < span class = "c1" > # sampling rate. Note by default Arch works on OpenTelemetry compatible tracing.< / span >
< / span > < span id = "line-95" > < span class = "linenos" > 95< / span > < span class = "w" > < / span > < span class = "nt" > sampling_rate< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > 0.1< / span >
2024-10-06 23:55:03 +00:00
< / span > < / code > < / pre > < / div >
< / div >
< / div >
< / section >
< / div > < div class = "flex justify-between items-center pt-6 mt-12 border-t border-border gap-4" >
< div class = "mr-auto" >
2024-12-20 21:25:34 +00:00
< a class = "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors border border-input hover:bg-accent hover:text-accent-foreground py-2 px-4" href = "../build_with_arch/multi_turn.html" >
2024-10-06 23:55:03 +00:00
< svg class = "mr-2 h-4 w-4" fill = "none" height = "24" stroke = "currentColor" stroke-linecap = "round" stroke-linejoin = "round" stroke-width = "2" viewbox = "0 0 24 24" width = "24" xmlns = "http://www.w3.org/2000/svg" >
< polyline points = "15 18 9 12 15 6" > < / polyline >
< / svg >
2024-12-20 21:25:34 +00:00
Multi-Turn
2024-10-06 23:55:03 +00:00
< / a >
< / div >
< / div > < / div >
< / main >
< / div >
< / div > < footer class = "py-6 border-t border-border md:py-0" >
< div class = "container flex flex-col items-center justify-between gap-4 md:h-24 md:flex-row" >
< div class = "flex flex-col items-center gap-4 px-8 md:flex-row md:gap-2 md:px-0" >
2025-06-06 00:00:49 +00:00
< p class = "text-sm leading-loose text-center text-muted-foreground md:text-left" > © 2025, Katanemo Labs, Inc Last updated: Jun 06, 2025. < / p >
2024-10-06 23:55:03 +00:00
< / div >
< / div >
< / footer >
< / div >
2025-05-31 00:48:33 +00:00
< script src = "../_static/documentation_options.js?v=7d1705c5" > < / script >
2024-10-24 21:12:20 +00:00
< script src = "../_static/doctools.js?v=9bcbadda" > < / script >
2024-10-06 23:55:03 +00:00
< script src = "../_static/sphinx_highlight.js?v=dc90522c" > < / script >
2024-11-08 18:00:49 +00:00
< script defer = "defer" src = "../_static/theme.js?v=073f68d9" > < / script >
2024-10-06 23:55:03 +00:00
< script src = "../_static/design-tabs.js?v=f930bc37" > < / script >
< / body >
< / html >