<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://leeroopedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>Leeroopedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://leeroopedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php/Special:Contributions/Admin"/>
	<updated>2026-06-10T23:20:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://leeroopedia.com/index.php?title=MediaWiki:Common.css&amp;diff=27836</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=MediaWiki:Common.css&amp;diff=27836"/>
		<updated>2026-02-26T10:55:37Z</updated>

		<summary type="html">&lt;p&gt;Admin: Add sitenotice link styling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Hide Semantic MediaWiki purge button */&lt;br /&gt;
.smw-purge {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide SMW entity examiner / vertical bar loader (the ||| icon) */&lt;br /&gt;
.smw-indicator-vertical-bar-loader,&lt;br /&gt;
.smw-entity-examiner {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide Vector 2022 page tools dropdown */&lt;br /&gt;
#vector-page-tools-dropdown {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Site notice banner — make links visible on dark background */&lt;br /&gt;
#siteNotice a {&lt;br /&gt;
    color: #90CAF9;&lt;br /&gt;
    text-decoration: underline;&lt;br /&gt;
}&lt;br /&gt;
#siteNotice a:hover {&lt;br /&gt;
    color: #BBDEFB;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27834</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27834"/>
		<updated>2026-02-22T14:32:20Z</updated>

		<summary type="html">&lt;p&gt;Admin: Remove __NOCACHE__ text, use PHP hook instead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:1.5em; padding:16px; background:linear-gradient(135deg, #f8f9fa 0%, #eef1f5 100%); border-radius:8px; border:1px solid #e0e3e8;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border:1px solid #ddd; min-width:100px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1a1a2e;&amp;quot;&amp;gt;{{NUMBEROFARTICLES}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Total Pages&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #4CAF50; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#2E7D32;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3002}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Workflows&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #2196F3; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1565C0;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3000}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Principles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #FF9800; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#EF6C00;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3004}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Implementations&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #F44336; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#C62828;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3008}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Heuristics&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #00BCD4; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#0097A7;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3010}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Environments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Best practices and expert-level knowledge for Machine Learning and Data Engineering, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; from training to deployment.&lt;br /&gt;
&lt;br /&gt;
Browse implementation patterns, configuration guides, debugging heuristics, and battle-tested defaults for frameworks like vLLM, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more. Every page is structured so both humans and AI agents can find what they need fast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your AI coding agent.&#039;&#039;&#039; Plug Leeroopedia into your favorite coding agent with the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide]. Let it search docs, build plans, verify code, and diagnose failures on your behalf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Go end-to-end.&#039;&#039;&#039; Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Explore Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|order by=RAND()|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27833</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27833"/>
		<updated>2026-02-22T14:29:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: Random page shuffling with NOCACHE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:1.5em; padding:16px; background:linear-gradient(135deg, #f8f9fa 0%, #eef1f5 100%); border-radius:8px; border:1px solid #e0e3e8;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border:1px solid #ddd; min-width:100px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1a1a2e;&amp;quot;&amp;gt;{{NUMBEROFARTICLES}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Total Pages&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #4CAF50; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#2E7D32;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3002}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Workflows&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #2196F3; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1565C0;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3000}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Principles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #FF9800; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#EF6C00;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3004}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Implementations&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #F44336; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#C62828;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3008}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Heuristics&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #00BCD4; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#0097A7;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3010}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Environments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Best practices and expert-level knowledge for Machine Learning and Data Engineering, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; from training to deployment.&lt;br /&gt;
&lt;br /&gt;
Browse implementation patterns, configuration guides, debugging heuristics, and battle-tested defaults for frameworks like vLLM, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more. Every page is structured so both humans and AI agents can find what they need fast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your AI coding agent.&#039;&#039;&#039; Plug Leeroopedia into your favorite coding agent with the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide]. Let it search docs, build plans, verify code, and diagnose failures on your behalf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Go end-to-end.&#039;&#039;&#039; Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Explore Pages ==&lt;br /&gt;
__NOCACHE__&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|order by=RAND()|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|order by=RAND()|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27832</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27832"/>
		<updated>2026-02-22T14:10:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: Reorder stat cards: Workflow, Principle, Implementation, Heuristic, Environment&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:1.5em; padding:16px; background:linear-gradient(135deg, #f8f9fa 0%, #eef1f5 100%); border-radius:8px; border:1px solid #e0e3e8;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border:1px solid #ddd; min-width:100px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1a1a2e;&amp;quot;&amp;gt;{{NUMBEROFARTICLES}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Total Pages&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #4CAF50; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#2E7D32;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3002}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Workflows&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #2196F3; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1565C0;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3000}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Principles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #FF9800; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#EF6C00;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3004}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Implementations&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #F44336; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#C62828;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3008}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Heuristics&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #00BCD4; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#0097A7;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3010}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Environments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Best practices and expert-level knowledge for Machine Learning and Data Engineering, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; from training to deployment.&lt;br /&gt;
&lt;br /&gt;
Browse implementation patterns, configuration guides, debugging heuristics, and battle-tested defaults for frameworks like vLLM, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more. Every page is structured so both humans and AI agents can find what they need fast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your AI coding agent.&#039;&#039;&#039; Plug Leeroopedia into your favorite coding agent with the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide]. Let it search docs, build plans, verify code, and diagnose failures on your behalf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Go end-to-end.&#039;&#039;&#039; Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recent Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27831</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27831"/>
		<updated>2026-02-22T14:09:25Z</updated>

		<summary type="html">&lt;p&gt;Admin: Redesign stats header with card-style counters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:1.5em; padding:16px; background:linear-gradient(135deg, #f8f9fa 0%, #eef1f5 100%); border-radius:8px; border:1px solid #e0e3e8;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border:1px solid #ddd; min-width:100px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1a1a2e;&amp;quot;&amp;gt;{{NUMBEROFARTICLES}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Total Pages&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #2196F3; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#1565C0;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3000}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Principles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #4CAF50; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#2E7D32;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3002}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Workflows&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #FF9800; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#EF6C00;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3004}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Implementations&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #F44336; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#C62828;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3008}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Heuristics&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:10px 18px; background:#fff; border-radius:6px; border-left:3px solid #00BCD4; min-width:80px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:1.4em; font-weight:bold; color:#0097A7;&amp;quot;&amp;gt;{{PAGESINNAMESPACE:3010}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:0.8em; color:#666; margin-top:2px;&amp;quot;&amp;gt;Environments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Best practices and expert-level knowledge for Machine Learning and Data Engineering, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; from training to deployment.&lt;br /&gt;
&lt;br /&gt;
Browse implementation patterns, configuration guides, debugging heuristics, and battle-tested defaults for frameworks like vLLM, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more. Every page is structured so both humans and AI agents can find what they need fast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your AI coding agent.&#039;&#039;&#039; Plug Leeroopedia into your favorite coding agent with the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide]. Let it search docs, build plans, verify code, and diagnose failures on your behalf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Go end-to-end.&#039;&#039;&#039; Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recent Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27830</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27830"/>
		<updated>2026-02-22T14:08:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: Move stats to header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align:center; color:#666; margin-bottom:1.5em; padding-bottom:1em; border-bottom:1px solid #eaecf0; font-size:0.9em;&amp;quot;&amp;gt;&lt;br /&gt;
Leeroopedia contains &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; knowledge pages across &#039;&#039;&#039;{{PAGESINNAMESPACE:3000}}&#039;&#039;&#039; Principles, &#039;&#039;&#039;{{PAGESINNAMESPACE:3002}}&#039;&#039;&#039; Workflows, &#039;&#039;&#039;{{PAGESINNAMESPACE:3004}}&#039;&#039;&#039; Implementations, &#039;&#039;&#039;{{PAGESINNAMESPACE:3008}}&#039;&#039;&#039; Heuristics, and &#039;&#039;&#039;{{PAGESINNAMESPACE:3010}}&#039;&#039;&#039; Environments.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Best practices and expert-level knowledge for Machine Learning and Data Engineering, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; from training to deployment.&lt;br /&gt;
&lt;br /&gt;
Browse implementation patterns, configuration guides, debugging heuristics, and battle-tested defaults for frameworks like vLLM, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more. Every page is structured so both humans and AI agents can find what they need fast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your AI coding agent.&#039;&#039;&#039; Plug Leeroopedia into your favorite coding agent with the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide]. Let it search docs, build plans, verify code, and diagnose failures on your behalf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Go end-to-end.&#039;&#039;&#039; Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recent Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27829</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27829"/>
		<updated>2026-02-22T14:04:58Z</updated>

		<summary type="html">&lt;p&gt;Admin: Add dynamic page count footer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Best practices and expert-level knowledge for Machine Learning and Data Engineering, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; from training to deployment.&lt;br /&gt;
&lt;br /&gt;
Browse implementation patterns, configuration guides, debugging heuristics, and battle-tested defaults for frameworks like vLLM, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more. Every page is structured so both humans and AI agents can find what they need fast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your AI coding agent.&#039;&#039;&#039; Plug Leeroopedia into your favorite coding agent with the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide]. Let it search docs, build plans, verify code, and diagnose failures on your behalf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Go end-to-end.&#039;&#039;&#039; Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
|| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recent Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; color:#666; margin-top:2em; padding-top:1em; border-top:1px solid #eaecf0; font-size:0.9em;&amp;quot;&amp;gt;&lt;br /&gt;
Leeroopedia contains &#039;&#039;&#039;{{NUMBEROFARTICLES}}&#039;&#039;&#039; knowledge pages across &#039;&#039;&#039;{{PAGESINNAMESPACE:3000}}&#039;&#039;&#039; Principles, &#039;&#039;&#039;{{PAGESINNAMESPACE:3002}}&#039;&#039;&#039; Workflows, &#039;&#039;&#039;{{PAGESINNAMESPACE:3004}}&#039;&#039;&#039; Implementations, &#039;&#039;&#039;{{PAGESINNAMESPACE:3008}}&#039;&#039;&#039; Heuristics, and &#039;&#039;&#039;{{PAGESINNAMESPACE:3010}}&#039;&#039;&#039; Environments.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27828</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27828"/>
		<updated>2026-02-19T11:00:24Z</updated>

		<summary type="html">&lt;p&gt;Admin: Refine Main Page: browse-first tone, no dashes, cleaner structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Best practices and expert-level knowledge for Machine Learning and Data Engineering, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; from training to deployment.&lt;br /&gt;
&lt;br /&gt;
Browse implementation patterns, configuration guides, debugging heuristics, and battle-tested defaults for frameworks like vLLM, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more. Every page is structured so both humans and AI agents can find what they need fast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connect your AI coding agent.&#039;&#039;&#039; Plug Leeroopedia into your favorite coding agent with the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide]. Let it search docs, build plans, verify code, and diagnose failures on your behalf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Go end-to-end.&#039;&#039;&#039; Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recent Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27827</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27827"/>
		<updated>2026-02-19T10:56:52Z</updated>

		<summary type="html">&lt;p&gt;Admin: Broaden agent references - remove specific tool names&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Learnt by AI, built by AI, for AI. A centralized playbook of best practices and expert-level knowledge for Machine Learning and Data domains, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; — vLLM, SGLang, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more.&lt;br /&gt;
&lt;br /&gt;
Whether you&#039;re fine-tuning LLMs, optimizing inference serving, building agents, or wiring up RAG pipelines — stop guessing at framework internals. &#039;&#039;&#039;Search docs&#039;&#039;&#039;, &#039;&#039;&#039;build plans&#039;&#039;&#039;, &#039;&#039;&#039;verify code&#039;&#039;&#039;, &#039;&#039;&#039;diagnose training failures&#039;&#039;&#039;, and &#039;&#039;&#039;look up battle-tested hyperparameter defaults&#039;&#039;&#039;. Every answer cites real KB pages you can drill into.&lt;br /&gt;
&lt;br /&gt;
Want to connect this knowledge base to your AI coding agent? Follow the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide] to plug in your favorite coding agent in under 2 minutes.&lt;br /&gt;
&lt;br /&gt;
Want to go end-to-end? Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recent Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27826</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Main_Page&amp;diff=27826"/>
		<updated>2026-02-19T10:56:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: Align Main Page with leeroopedia-mcp README messaging&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to {{SITENAME}} ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your ML &amp;amp; Data Knowledge Wiki.&#039;&#039;&#039; Learnt by AI, built by AI, for AI. A centralized playbook of best practices and expert-level knowledge for Machine Learning and Data domains, covering &#039;&#039;&#039;1000+ frameworks and libraries&#039;&#039;&#039; — vLLM, SGLang, DeepSpeed, Megatron-LM, FlashAttention, Triton, Unsloth, LangChain, and many more.&lt;br /&gt;
&lt;br /&gt;
Whether you&#039;re fine-tuning LLMs, optimizing inference serving, building agents, or wiring up RAG pipelines — stop guessing at framework internals. &#039;&#039;&#039;Search docs&#039;&#039;&#039;, &#039;&#039;&#039;build plans&#039;&#039;&#039;, &#039;&#039;&#039;verify code&#039;&#039;&#039;, &#039;&#039;&#039;diagnose training failures&#039;&#039;&#039;, and &#039;&#039;&#039;look up battle-tested hyperparameter defaults&#039;&#039;&#039;. Every answer cites real KB pages you can drill into.&lt;br /&gt;
&lt;br /&gt;
Want to connect this knowledge base to your AI coding agent? Follow the [https://github.com/Leeroo-AI/leeroopedia-mcp Leeroopedia MCP setup guide] to plug into &#039;&#039;&#039;Claude Code&#039;&#039;&#039; or &#039;&#039;&#039;Cursor&#039;&#039;&#039; in under 2 minutes.&lt;br /&gt;
&lt;br /&gt;
Want to go end-to-end? Leeroopedia gives your agent the &#039;&#039;&#039;knowledge&#039;&#039;&#039;. [https://github.com/leeroo-ai/kapso &#039;&#039;&#039;Kapso&#039;&#039;&#039;] gives it the &#039;&#039;&#039;ability to act on it&#039;&#039;&#039;: research, experiment, and deploy.&lt;br /&gt;
&lt;br /&gt;
== Browse by Category ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category !! Description !! Browse&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Workflows&#039;&#039;&#039; || Step-by-step processes and procedures || [[Special:AllPages/Workflow:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Principles&#039;&#039;&#039; || Core ideas and foundational knowledge || [[Special:AllPages/Principle:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Implementations&#039;&#039;&#039; || Code-level details and modules || [[Special:AllPages/Implementation:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Heuristics&#039;&#039;&#039; || Best practices and guidelines || [[Special:AllPages/Heuristic:|Browse All]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Environments&#039;&#039;&#039; || Setup and configuration guides || [[Special:AllPages/Environment:|Browse All]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Recent Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Workflows ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Workflow&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Principles ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Principle&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Implementations ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Implementation&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Heuristics ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Heuristic&#039;|limit=10|format=ul}}&lt;br /&gt;
&lt;br /&gt;
=== Environments ===&lt;br /&gt;
{{#cargo_query:tables=PageInfo|fields=_pageName|where=PageType=&#039;Environment&#039;|limit=10|format=ul}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Template:NetworkLegend&amp;diff=27825</id>
		<title>Template:NetworkLegend</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Template:NetworkLegend&amp;diff=27825"/>
		<updated>2026-02-18T14:02:13Z</updated>

		<summary type="html">&lt;p&gt;Admin: Fix: show only active namespace types in legend&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;network-legend&amp;quot; style=&amp;quot;display:flex; flex-wrap:wrap; gap:12px; padding:12px; background:#fff; border:1px solid #a2a9b1; border-radius:6px; margin-bottom:1em; font-size:0.9em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; align-items:center; gap:6px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:14px; height:14px; border-radius:50%; background:#2196F3; border:2px solid #1565C0;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; Principle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; align-items:center; gap:6px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:14px; height:14px; border-radius:50%; background:#FF9800; border:2px solid #EF6C00;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; Implementation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; align-items:center; gap:6px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:14px; height:14px; border-radius:50%; background:#F44336; border:2px solid #C62828;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; Heuristic&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; align-items:center; gap:6px;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:14px; height:14px; border-radius:50%; background:#00BCD4; border:2px solid #0097A7;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; Environment&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
Add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{NetworkLegend}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; before your network graph.&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=MediaWiki:Common.js&amp;diff=27824</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=MediaWiki:Common.js&amp;diff=27824"/>
		<updated>2026-02-18T14:02:13Z</updated>

		<summary type="html">&lt;p&gt;Admin: Fix: poll for vis.js before applying namespace colors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Network Extension Enhancements - Filter external links, color by namespace.&lt;br /&gt;
 * vis.js is loaded asynchronously by the Network extension, so we poll&lt;br /&gt;
 * until window.vis.DataSet is available before monkey-patching.&lt;br /&gt;
 */&lt;br /&gt;
(function() {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
    var nsColors = {&lt;br /&gt;
        &#039;Workflow&#039;:       {bg: &#039;#4CAF50&#039;, border: &#039;#2E7D32&#039;, font: &#039;#1B5E20&#039;},&lt;br /&gt;
        &#039;Principle&#039;:      {bg: &#039;#2196F3&#039;, border: &#039;#1565C0&#039;, font: &#039;#0D47A1&#039;},&lt;br /&gt;
        &#039;Implementation&#039;: {bg: &#039;#FF9800&#039;, border: &#039;#EF6C00&#039;, font: &#039;#E65100&#039;},&lt;br /&gt;
        &#039;Artifact&#039;:       {bg: &#039;#9C27B0&#039;, border: &#039;#7B1FA2&#039;, font: &#039;#4A148C&#039;},&lt;br /&gt;
        &#039;Heuristic&#039;:      {bg: &#039;#F44336&#039;, border: &#039;#C62828&#039;, font: &#039;#B71C1C&#039;},&lt;br /&gt;
        &#039;Environment&#039;:    {bg: &#039;#00BCD4&#039;, border: &#039;#0097A7&#039;, font: &#039;#006064&#039;},&lt;br /&gt;
        &#039;Resource&#039;:       {bg: &#039;#795548&#039;, border: &#039;#5D4037&#039;, font: &#039;#3E2723&#039;}&lt;br /&gt;
    };&lt;br /&gt;
    var excludedPrefixes = [&#039;Template:&#039;, &#039;Category:&#039;, &#039;MediaWiki:&#039;, &#039;Special:&#039;, &#039;File:&#039;];&lt;br /&gt;
&lt;br /&gt;
    function applyPatch() {&lt;br /&gt;
        var originalUpdate = window.vis.DataSet.prototype.update;&lt;br /&gt;
        window.vis.DataSet.prototype.update = function(data, senderId) {&lt;br /&gt;
            if (!Array.isArray(data)) data = [data];&lt;br /&gt;
            data = data.filter(function(item) {&lt;br /&gt;
                var id = item.id || &#039;&#039;, to = item.to || &#039;&#039;, from = item.from || &#039;&#039;;&lt;br /&gt;
                if (id.indexOf(&#039;http://&#039;) === 0 || id.indexOf(&#039;https://&#039;) === 0) return false;&lt;br /&gt;
                if (to.indexOf(&#039;http://&#039;) === 0 || to.indexOf(&#039;https://&#039;) === 0) return false;&lt;br /&gt;
                if (from.indexOf(&#039;http://&#039;) === 0 || from.indexOf(&#039;https://&#039;) === 0) return false;&lt;br /&gt;
                for (var i = 0; i &amp;lt; excludedPrefixes.length; i++) {&lt;br /&gt;
                    if (id.indexOf(excludedPrefixes[i]) === 0) return false;&lt;br /&gt;
                    if (to.indexOf(excludedPrefixes[i]) === 0) return false;&lt;br /&gt;
                    if (from.indexOf(excludedPrefixes[i]) === 0) return false;&lt;br /&gt;
                }&lt;br /&gt;
                return true;&lt;br /&gt;
            }).map(function(item) {&lt;br /&gt;
                if (item.id &amp;amp;&amp;amp; !item.from &amp;amp;&amp;amp; !item.to) {&lt;br /&gt;
                    for (var ns in nsColors) {&lt;br /&gt;
                        if (item.id.indexOf(ns + &#039;:&#039;) === 0) {&lt;br /&gt;
                            item.color = {background: nsColors[ns].bg, border: nsColors[ns].border,&lt;br /&gt;
                                highlight: {background: nsColors[ns].bg, border: nsColors[ns].border}};&lt;br /&gt;
                            item.font = item.font || {};&lt;br /&gt;
                            item.font.color = nsColors[ns].font;&lt;br /&gt;
                            break;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                return item;&lt;br /&gt;
            });&lt;br /&gt;
            return originalUpdate.call(this, data, senderId);&lt;br /&gt;
        };&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Poll for vis.js readiness - it loads async via ResourceLoader */&lt;br /&gt;
    var attempts = 0;&lt;br /&gt;
    var maxAttempts = 100;&lt;br /&gt;
    var timer = setInterval(function() {&lt;br /&gt;
        attempts++;&lt;br /&gt;
        if (window.vis &amp;amp;&amp;amp; window.vis.DataSet) {&lt;br /&gt;
            clearInterval(timer);&lt;br /&gt;
            applyPatch();&lt;br /&gt;
        } else if (attempts &amp;gt;= maxAttempts) {&lt;br /&gt;
            clearInterval(timer);&lt;br /&gt;
        }&lt;br /&gt;
    }, 100);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Unstructured_IO_Unstructured_OpenAI_API&amp;diff=27823</id>
		<title>Environment:Unstructured IO Unstructured OpenAI API</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Unstructured_IO_Unstructured_OpenAI_API&amp;diff=27823"/>
		<updated>2026-02-16T18:46:34Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Unstructured_IO_Unstructured_OpenAI_API.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Unstructured_IO_Unstructured_OpenAI_API}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/Unstructured-IO/unstructured unstructured]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Embeddings]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-12 09:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The OpenAI_API environment provides the dependencies and configuration needed to generate document embeddings using the OpenAI API via the &#039;&#039;&#039;langchain_openai&#039;&#039;&#039; integration.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The OpenAI embedding encoder in unstructured uses the &#039;&#039;&#039;langchain_openai&#039;&#039;&#039; package as its client interface to the OpenAI API. The &#039;&#039;&#039;openai.py&#039;&#039;&#039; module decorates its &#039;&#039;&#039;get_client()&#039;&#039;&#039; method with &#039;&#039;&#039;@requires_dependencies([&amp;quot;langchain_openai&amp;quot;], extras=&amp;quot;openai&amp;quot;)&#039;&#039;&#039;, enforcing that the correct extra is installed before any API calls are attempted. The import of &#039;&#039;&#039;langchain_openai&#039;&#039;&#039; is performed lazily inside the &#039;&#039;&#039;get_client()&#039;&#039;&#039; method body, meaning the dependency is only loaded at runtime when embedding is actually requested.&lt;br /&gt;
&lt;br /&gt;
The default embedding model is &#039;&#039;&#039;text-embedding-ada-002&#039;&#039;&#039;. The API key is managed through a &#039;&#039;&#039;Pydantic SecretStr&#039;&#039;&#039; field, which is typically populated from the &#039;&#039;&#039;OPENAI_API_KEY&#039;&#039;&#039; environment variable. This approach ensures the key is not accidentally logged or serialized in plain text.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
This environment is required when using the &#039;&#039;&#039;OpenAIEmbeddingEncoder&#039;&#039;&#039; to generate vector embeddings for document elements. This is typically used in retrieval-augmented generation (RAG) pipelines where partitioned document elements need to be embedded for semantic search.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.11, &amp;lt; 3.14 || Required Python version range&lt;br /&gt;
|-&lt;br /&gt;
| OS || Any || No OS-specific requirements; API calls are network-based&lt;br /&gt;
|-&lt;br /&gt;
| Network || Internet access required || Must be able to reach the OpenAI API endpoint&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* No system packages required beyond Python itself&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;langchain_openai&#039;&#039;&#039; -- LangChain wrapper for OpenAI API (installed via the &#039;&#039;&#039;openai&#039;&#039;&#039; extra)&lt;br /&gt;
* &#039;&#039;&#039;openai&#039;&#039;&#039; -- underlying OpenAI Python client (transitive dependency of langchain_openai)&lt;br /&gt;
* &#039;&#039;&#039;pydantic&#039;&#039;&#039; -- data validation with SecretStr for secure API key handling (transitive dependency)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;OPENAI_API_KEY&#039;&#039;&#039; -- OpenAI API key (required; passed as Pydantic SecretStr to prevent accidental exposure in logs)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install unstructured with OpenAI extras&lt;br /&gt;
pip install &amp;quot;unstructured[openai]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Set the API key environment variable&lt;br /&gt;
export OPENAI_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dependency requirement decorator&#039;&#039;&#039; (openai.py):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@requires_dependencies([&amp;quot;langchain_openai&amp;quot;], extras=&amp;quot;openai&amp;quot;)&lt;br /&gt;
def get_client(self):&lt;br /&gt;
    from langchain_openai import OpenAIEmbeddings&lt;br /&gt;
    return OpenAIEmbeddings(&lt;br /&gt;
        model=self.model_name,&lt;br /&gt;
        openai_api_key=self.api_key,&lt;br /&gt;
    )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default model configuration&#039;&#039;&#039; (openai.py):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
model_name: str = &amp;quot;text-embedding-ada-002&amp;quot;&lt;br /&gt;
api_key: SecretStr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ImportError: langchain_openai is required. Install with: pip install &amp;quot;unstructured[openai]&amp;quot;&amp;lt;/code&amp;gt; || The openai extra is not installed || Install via &amp;lt;code&amp;gt;pip install &amp;quot;unstructured[openai]&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AuthenticationError: Incorrect API key provided&amp;lt;/code&amp;gt; || Invalid or expired OPENAI_API_KEY || Verify the API key is correct and active in your OpenAI dashboard&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RateLimitError: Rate limit reached&amp;lt;/code&amp;gt; || Too many API requests in a short period || Implement retry logic with exponential backoff, or reduce batch size&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ValidationError: api_key field required&amp;lt;/code&amp;gt; || OPENAI_API_KEY environment variable not set || Export the variable: &amp;lt;code&amp;gt;export OPENAI_API_KEY=&amp;quot;sk-...&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;langchain_openai&#039;&#039;&#039; package is used instead of the raw &#039;&#039;&#039;openai&#039;&#039;&#039; package to maintain consistency with the LangChain ecosystem&lt;br /&gt;
* The lazy import pattern in &#039;&#039;&#039;get_client()&#039;&#039;&#039; means the dependency is only needed at runtime, not at module import time&lt;br /&gt;
* &#039;&#039;&#039;SecretStr&#039;&#039;&#039; from Pydantic ensures the API key is masked in string representations, logs, and serialized output&lt;br /&gt;
* The default model &#039;&#039;&#039;text-embedding-ada-002&#039;&#039;&#039; can be overridden by passing a different model name during encoder initialization&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Unstructured_IO_Unstructured_OpenAIEmbeddingEncoder_Embed_Documents]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:TobikoData_Sqlmesh_Snowflake_Connection&amp;diff=27822</id>
		<title>Environment:TobikoData Sqlmesh Snowflake Connection</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:TobikoData_Sqlmesh_Snowflake_Connection&amp;diff=27822"/>
		<updated>2026-02-16T18:46:33Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/TobikoData_Sqlmesh_Snowflake_Connection.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=TobikoData_Sqlmesh_Snowflake_Connection}}&lt;br /&gt;
{{PageInfo|type=Environment|title=TobikoData_Sqlmesh_Snowflake_Connection}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/TobikoData/sqlmesh TobikoData/sqlmesh]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Snowflake]], [[domain::Data Warehouse]], [[domain::Cloud]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-07 21:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Snowflake engine adapter connection environment enabling SQLMesh to execute transformations on Snowflake data warehouse.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The Snowflake connection environment provides SQLMesh integration with Snowflake&#039;s cloud data platform. It includes the official Snowflake connector with pandas integration and secure local storage capabilities, plus Snowpark Python for advanced DataFrame operations. The adapter manages Snowflake-specific features including catalog management with SQLMESH_MANAGED comment tags and Iceberg table support.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
This environment is required when using Snowflake as the execution engine for SQLMesh models, for state synchronization stored in Snowflake, or when running engine-specific tests against Snowflake. Configure connection details through SnowflakeConnectionConfig or environment variables.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Network || Access to Snowflake account || HTTPS connectivity required&lt;br /&gt;
|-&lt;br /&gt;
| Authentication || Valid Snowflake credentials || User/password or key-based auth&lt;br /&gt;
|-&lt;br /&gt;
| Snowflake Account || Active account with warehouse || Warehouse must be running&lt;br /&gt;
|-&lt;br /&gt;
| Database || Existing database || Must have CREATE SCHEMA permissions&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* OpenSSL libraries (for cryptography package)&lt;br /&gt;
* System CA certificates&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;cryptography&#039;&#039;&#039;&amp;lt;46.0.0 - Cryptographic operations for secure connections&lt;br /&gt;
* &#039;&#039;&#039;snowflake-connector-python[pandas,secure-local-storage]&#039;&#039;&#039; - Official Snowflake connector with pandas and secure storage&lt;br /&gt;
* &#039;&#039;&#039;snowflake-snowpark-python&#039;&#039;&#039; - Snowpark DataFrame API&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
Required environment variables for Snowflake connection:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_ACCOUNT&#039;&#039;&#039; - Snowflake account identifier (e.g., xy12345.us-east-1)&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_WAREHOUSE&#039;&#039;&#039; - Warehouse name for query execution&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_DATABASE&#039;&#039;&#039; - Database name for SQLMesh operations&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_USER&#039;&#039;&#039; - Username for authentication&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_PASSWORD&#039;&#039;&#039; - Password for authentication&lt;br /&gt;
&lt;br /&gt;
Optional configuration:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_ROLE&#039;&#039;&#039; - Role to assume after connection&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_SCHEMA&#039;&#039;&#039; - Default schema name&lt;br /&gt;
* &#039;&#039;&#039;SNOWFLAKE_AUTHENTICATOR&#039;&#039;&#039; - Authentication method (default: snowflake)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install SQLMesh with Snowflake support&lt;br /&gt;
pip install &amp;quot;sqlmesh[snowflake]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Set environment variables&lt;br /&gt;
export SNOWFLAKE_ACCOUNT=&amp;quot;your_account&amp;quot;&lt;br /&gt;
export SNOWFLAKE_WAREHOUSE=&amp;quot;your_warehouse&amp;quot;&lt;br /&gt;
export SNOWFLAKE_DATABASE=&amp;quot;your_database&amp;quot;&lt;br /&gt;
export SNOWFLAKE_USER=&amp;quot;your_user&amp;quot;&lt;br /&gt;
export SNOWFLAKE_PASSWORD=&amp;quot;your_password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Or configure in config.yaml&lt;br /&gt;
cat &amp;gt; config.yaml &amp;lt;&amp;lt; EOF&lt;br /&gt;
gateways:&lt;br /&gt;
  snowflake:&lt;br /&gt;
    connection:&lt;br /&gt;
      type: snowflake&lt;br /&gt;
      account: your_account&lt;br /&gt;
      warehouse: your_warehouse&lt;br /&gt;
      database: your_database&lt;br /&gt;
      user: your_user&lt;br /&gt;
      password: your_password&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
# File: pyproject.toml:122-126&lt;br /&gt;
snowflake = [&lt;br /&gt;
    &amp;quot;cryptography&amp;lt;46.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;snowflake-connector-python[pandas,secure-local-storage]&amp;quot;,&lt;br /&gt;
    &amp;quot;snowflake-snowpark-python&amp;quot;,&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# File: sqlmesh/core/engine_adapter/snowflake.py:161&lt;br /&gt;
# Snowflake adapter manages catalogs with SQLMESH_MANAGED comment tag&lt;br /&gt;
def _create_catalog_if_not_exists(&lt;br /&gt;
    self,&lt;br /&gt;
    catalog_name: str,&lt;br /&gt;
    properties: t.Dict[str, exp.Expression] = None,&lt;br /&gt;
) -&amp;gt; None:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Creates a catalog (database) if it doesn&#039;t exist with SQLMESH_MANAGED tag.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    properties = properties or {}&lt;br /&gt;
    properties[exp.Properties.COMMENT] = exp.Literal.string(&amp;quot;SQLMESH_MANAGED&amp;quot;)&lt;br /&gt;
    # ... implementation&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# File: sqlmesh/core/config/connection.py (SnowflakeConnectionConfig class)&lt;br /&gt;
class SnowflakeConnectionConfig(ConnectionConfig):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Configuration for Snowflake connections.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    account: str&lt;br /&gt;
    warehouse: str&lt;br /&gt;
    database: str&lt;br /&gt;
    user: str&lt;br /&gt;
    password: t.Optional[str] = None&lt;br /&gt;
    role: t.Optional[str] = None&lt;br /&gt;
    authenticator: t.Optional[str] = None&lt;br /&gt;
    # ... additional fields&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
| 250001: Could not connect to Snowflake backend || Invalid account identifier or network issue || Verify SNOWFLAKE_ACCOUNT format (include region if needed)&lt;br /&gt;
|-&lt;br /&gt;
| 390114: Authentication token expired || Session expired or invalid credentials || Re-authenticate with fresh credentials&lt;br /&gt;
|-&lt;br /&gt;
| 002003: Database does not exist || Target database not found || Create database or verify SNOWFLAKE_DATABASE value&lt;br /&gt;
|-&lt;br /&gt;
| 090105: Cannot perform CREATE SCHEMA || Insufficient permissions || Grant CREATE SCHEMA privilege to user/role&lt;br /&gt;
|-&lt;br /&gt;
| cryptography version conflict || cryptography &amp;gt;= 46.0.0 installed || Pin to &#039;&#039;&#039;cryptography&amp;lt;46.0.0&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* Cryptography package must be &amp;lt; 46.0.0 due to breaking changes&lt;br /&gt;
* Supports both Snowflake native tables and Iceberg tables&lt;br /&gt;
* SQLMESH_MANAGED comment tag used to identify SQLMesh-created catalogs&lt;br /&gt;
* Warehouse must be active during operations (costs apply)&lt;br /&gt;
* Multi-cluster warehouses supported for parallel execution&lt;br /&gt;
* Supports Snowflake&#039;s TRANSIENT tables for temporary data&lt;br /&gt;
* Role-based access control (RBAC) fully supported&lt;br /&gt;
* Key-pair authentication supported as alternative to password&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_SnapshotEvaluator_Promote]]&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_Context_Apply]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:ArroyoSystems_Arroyo_Object_Storage&amp;diff=27821</id>
		<title>Environment:ArroyoSystems Arroyo Object Storage</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:ArroyoSystems_Arroyo_Object_Storage&amp;diff=27821"/>
		<updated>2026-02-16T18:46:32Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/ArroyoSystems_Arroyo_Object_Storage.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=ArroyoSystems_Arroyo_Object_Storage}}&lt;br /&gt;
{{PageInfo|type=Environment|title=ArroyoSystems_Arroyo_Object_Storage}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/ArroyoSystems/arroyo Arroyo]&lt;br /&gt;
* [https://github.com/ArroyoSystems/arroyo/tree/master/crates/arroyo-storage arroyo-storage]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Storage]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-08 08:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Multi-backend object storage environment supporting S3, GCS, Azure Blob, Cloudflare R2, and local filesystem for checkpoint and artifact persistence.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
Arroyo uses a unified `StorageProvider` abstraction (built on the `object_store` crate) to read and write checkpoint data, state snapshots, and compiled UDF artifacts. The storage backend is determined by the URL scheme of the configured `checkpoint-url`. Supported backends include AWS S3 (including custom endpoints), Google Cloud Storage, Azure Blob Storage, Cloudflare R2, and the local filesystem. Each backend supports multiple URL formats for flexibility. S3 connections use custom retry and timeout settings optimized for streaming workloads.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;all checkpoint and state storage&#039;&#039;&#039; in Arroyo. Every pipeline stores its checkpoint data (Parquet state files) and the compiler service stores compiled UDF artifacts in this storage backend. The local filesystem is the default for development; cloud storage is recommended for production.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Storage || Any supported backend || S3, GCS, Azure Blob, R2, or local filesystem&lt;br /&gt;
|-&lt;br /&gt;
| Network || HTTPS access to cloud storage || Unless using local filesystem or custom HTTP endpoint&lt;br /&gt;
|-&lt;br /&gt;
| Disk (local) || 10GB+ SSD || Default path: `/tmp/arroyo/checkpoints`&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Rust Crate Dependencies ===&lt;br /&gt;
&lt;br /&gt;
* `object_store` = 0.12.3 (unified storage abstraction)&lt;br /&gt;
* `aws-config` = 1.5.13 (AWS SDK configuration)&lt;br /&gt;
* `aws-credential-types` = 1.2.0 (AWS credential management)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AWS S3:&#039;&#039;&#039;&lt;br /&gt;
* `AWS_DEFAULT_REGION`: S3 region&lt;br /&gt;
* `AWS_ENDPOINT`: Custom S3-compatible endpoint URL&lt;br /&gt;
* `AWS_ACCESS_KEY_ID`: AWS access key&lt;br /&gt;
* `AWS_SECRET_ACCESS_KEY`: AWS secret key&lt;br /&gt;
* `AWS_SESSION_TOKEN`: Optional session token for temporary credentials&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cloudflare R2:&#039;&#039;&#039;&lt;br /&gt;
* `CLOUDFLARE_ACCOUNT_ID`: Cloudflare account ID (if not in URL)&lt;br /&gt;
* `R2_ACCESS_KEY_ID`: R2 access key (falls back to `AWS_ACCESS_KEY_ID`)&lt;br /&gt;
* `R2_SECRET_ACCESS_KEY`: R2 secret key (falls back to `AWS_SECRET_ACCESS_KEY`)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Google Cloud Storage:&#039;&#039;&#039;&lt;br /&gt;
* `GOOGLE_SERVICE_ACCOUNT_KEY`: GCS service account JSON key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Azure Blob Storage:&#039;&#039;&#039;&lt;br /&gt;
* Standard Azure SDK environment variables (e.g., `AZURE_STORAGE_ACCOUNT`, `AZURE_STORAGE_KEY`)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Configuration:&#039;&#039;&#039;&lt;br /&gt;
* `ARROYO__CHECKPOINT_URL`: Checkpoint storage URL (default: `/tmp/arroyo/checkpoints`)&lt;br /&gt;
* `ARROYO__COMPILER__ARTIFACT_URL`: Compiled artifact URL (default: `/tmp/arroyo/artifacts`)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Local filesystem (default, no setup needed)&lt;br /&gt;
# Checkpoints stored at /tmp/arroyo/checkpoints&lt;br /&gt;
&lt;br /&gt;
# AWS S3&lt;br /&gt;
export ARROYO__CHECKPOINT_URL=s3://my-bucket/arroyo/checkpoints&lt;br /&gt;
export AWS_DEFAULT_REGION=us-east-1&lt;br /&gt;
export AWS_ACCESS_KEY_ID=your-key&lt;br /&gt;
export AWS_SECRET_ACCESS_KEY=your-secret&lt;br /&gt;
&lt;br /&gt;
# Google Cloud Storage&lt;br /&gt;
export ARROYO__CHECKPOINT_URL=gs://my-bucket/arroyo/checkpoints&lt;br /&gt;
export GOOGLE_SERVICE_ACCOUNT_KEY=&#039;{&amp;quot;type&amp;quot;:&amp;quot;service_account&amp;quot;,...}&#039;&lt;br /&gt;
&lt;br /&gt;
# MinIO / S3-compatible&lt;br /&gt;
export ARROYO__CHECKPOINT_URL=&amp;quot;s3::http://localhost:9000/my-bucket/checkpoints&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
URL parsing patterns from `lib.rs:48-80`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
// S3 URL formats&lt;br /&gt;
const S3_PATH: &amp;amp;str =&lt;br /&gt;
    r&amp;quot;^https://s3\.(?P&amp;lt;region&amp;gt;[\w\-]+)\.amazonaws\.com/(?P&amp;lt;bucket&amp;gt;[a-z0-9\-\.]+)(/(?P&amp;lt;key&amp;gt;.+))?$&amp;quot;;&lt;br /&gt;
const S3_VIRTUAL: &amp;amp;str =&lt;br /&gt;
    r&amp;quot;^https://(?P&amp;lt;bucket&amp;gt;[a-z0-9\-\.]+)\.s3\.(?P&amp;lt;region&amp;gt;[\w\-]+)\.amazonaws\.com(/(?P&amp;lt;key&amp;gt;.+))?$&amp;quot;;&lt;br /&gt;
const S3_URL: &amp;amp;str = r&amp;quot;^[sS]3[aA]?://(?P&amp;lt;bucket&amp;gt;[a-z0-9\-\.]+)(/(?P&amp;lt;key&amp;gt;.+))?$&amp;quot;;&lt;br /&gt;
const S3_ENDPOINT_URL: &amp;amp;str = r&amp;quot;^[sS]3[aA]?::(?&amp;lt;protocol&amp;gt;https?)://...&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// GCS URL formats&lt;br /&gt;
const GCS_VIRTUAL: &amp;amp;str =&lt;br /&gt;
    r&amp;quot;^https://(?P&amp;lt;bucket&amp;gt;[a-z\d\-_\.]+)\.storage\.googleapis\.com(/(?P&amp;lt;key&amp;gt;.+))?$&amp;quot;;&lt;br /&gt;
const GCS_URL: &amp;amp;str = r&amp;quot;^[gG][sS]://(?P&amp;lt;bucket&amp;gt;[a-z0-9\-\.]+)(/(?P&amp;lt;key&amp;gt;.+))?$&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Cloudflare R2 URL formats&lt;br /&gt;
const R2_URL: &amp;amp;str =&lt;br /&gt;
    r&amp;quot;^[rR]2://((?P&amp;lt;account_id&amp;gt;[a-zA-Z0-9]+)@)?(?P&amp;lt;bucket&amp;gt;[a-z0-9\-\.]+)(/(?P&amp;lt;key&amp;gt;.+))?$&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Local filesystem&lt;br /&gt;
const FILE_URI: &amp;amp;str = r&amp;quot;^file://(?P&amp;lt;path&amp;gt;.*)$&amp;quot;;&lt;br /&gt;
const FILE_PATH: &amp;amp;str = r&amp;quot;^/(?P&amp;lt;path&amp;gt;.*)$&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default configuration from `default.toml:1,37-38`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
checkpoint-url = &amp;quot;/tmp/arroyo/checkpoints&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[compiler]&lt;br /&gt;
artifact-url = &amp;quot;/tmp/arroyo/artifacts&amp;quot;&lt;br /&gt;
build-dir = &amp;quot;/tmp/arroyo/build-dir&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `NoSuchBucket` || S3 bucket does not exist || Create the bucket or check the URL&lt;br /&gt;
|-&lt;br /&gt;
|| `AccessDenied` || Insufficient S3/GCS/Azure permissions || Verify credentials and IAM permissions&lt;br /&gt;
|-&lt;br /&gt;
|| `No such file or directory` || Local filesystem path does not exist || Arroyo auto-creates local paths; check parent directory permissions&lt;br /&gt;
|-&lt;br /&gt;
|| `CLOUDFLARE_ACCOUNT_ID not set` || R2 account ID not configured || Set `CLOUDFLARE_ACCOUNT_ID` env var or include in URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;S3-compatible services:&#039;&#039;&#039; MinIO, Ceph, and other S3-compatible services are supported via the `s3::http://endpoint:port/bucket` URL format. Set `AWS_ENDPOINT` for custom endpoints.&lt;br /&gt;
* &#039;&#039;&#039;S3 retry strategy:&#039;&#039;&#039; Arroyo sets `max_retries=0` on the object_store S3 client because it handles retries at a higher level.&lt;br /&gt;
* &#039;&#039;&#039;S3 timeout:&#039;&#039;&#039; `operation_timeout=60s`, `operation_attempt_timeout=5s`&lt;br /&gt;
* &#039;&#039;&#039;Virtual hosted-style:&#039;&#039;&#039; Enabled by default for S3; disabled when using custom endpoints.&lt;br /&gt;
* &#039;&#039;&#039;Local filesystem:&#039;&#039;&#039; Auto-creates directories on first write. Default path `/tmp/arroyo/checkpoints` is ephemeral; use persistent storage for production.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:ArroyoSystems_Arroyo_Table_Manager_Checkpoint]]&lt;br /&gt;
* [[required_by::Implementation:ArroyoSystems_Arroyo_Recovering_State]]&lt;br /&gt;
* [[required_by::Implementation:ArroyoSystems_Arroyo_Checkpoint_State]]&lt;br /&gt;
* [[required_by::Implementation:ArroyoSystems_Arroyo_Two_Phase_Committer]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Protectai_Llm_guard_Python_Runtime_Dependencies&amp;diff=27820</id>
		<title>Environment:Protectai Llm guard Python Runtime Dependencies</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Protectai_Llm_guard_Python_Runtime_Dependencies&amp;diff=27820"/>
		<updated>2026-02-16T18:46:30Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Protectai_Llm_guard_Python_Runtime_Dependencies.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Protectai_Llm_guard_Python_Runtime_Dependencies}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/protectai/llm-guard LLM Guard]&lt;br /&gt;
* [https://github.com/protectai/llm-guard/blob/main/pyproject.toml pyproject.toml]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::NLP]], [[domain::Security]], [[domain::Infrastructure]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-14 12:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.10+ environment with PyTorch, HuggingFace Transformers, Presidio NLP, and tiktoken for running LLM Guard scanner pipelines.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the core runtime for LLM Guard, a security framework for Large Language Models. It requires Python 3.10-3.12 with PyTorch for deep learning inference, HuggingFace Transformers for model loading and text classification pipelines, Presidio for PII entity recognition and anonymization, tiktoken for OpenAI-compatible token counting, and several supporting libraries for text processing. The framework auto-detects CUDA, MPS, or CPU devices at startup via &amp;lt;code&amp;gt;torch.cuda.is_available()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;torch.backends.mps.is_available()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;any&#039;&#039;&#039; LLM Guard scanner operation, including the core library (&amp;lt;code&amp;gt;llm_guard&amp;lt;/code&amp;gt; package), benchmarking, and integration examples. This is the mandatory prerequisite for all scanner implementations including Anonymize, PromptInjection, Toxicity, TokenLimit, Relevance, and others.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, Windows (WSL recommended) || Tested on Ubuntu in CI&lt;br /&gt;
|-&lt;br /&gt;
| Python || 3.10, 3.11, or 3.12 || &amp;lt;code&amp;gt;requires-python = &amp;quot;&amp;gt;=3.10,&amp;lt;3.13&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || CPU (minimum), NVIDIA GPU (recommended) || CUDA auto-detected; MPS supported on Apple Silicon&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 4GB minimum, 8GB+ recommended || Transformer models require significant memory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* Python 3.10+ runtime&lt;br /&gt;
* &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; (for cloning and model downloads)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;torch&amp;lt;/code&amp;gt; &amp;gt;= 2.4.0&lt;br /&gt;
* &amp;lt;code&amp;gt;transformers&amp;lt;/code&amp;gt; == 4.51.3&lt;br /&gt;
* &amp;lt;code&amp;gt;presidio-analyzer&amp;lt;/code&amp;gt; == 2.2.358&lt;br /&gt;
* &amp;lt;code&amp;gt;presidio-anonymizer&amp;lt;/code&amp;gt; == 2.2.358&lt;br /&gt;
* &amp;lt;code&amp;gt;tiktoken&amp;lt;/code&amp;gt; &amp;gt;= 0.9, &amp;lt; 1.0&lt;br /&gt;
* &amp;lt;code&amp;gt;nltk&amp;lt;/code&amp;gt; &amp;gt;= 3.9.1, &amp;lt; 4&lt;br /&gt;
* &amp;lt;code&amp;gt;faker&amp;lt;/code&amp;gt; &amp;gt;= 37, &amp;lt; 38&lt;br /&gt;
* &amp;lt;code&amp;gt;fuzzysearch&amp;lt;/code&amp;gt; &amp;gt;= 0.7, &amp;lt; 0.9&lt;br /&gt;
* &amp;lt;code&amp;gt;bc-detect-secrets&amp;lt;/code&amp;gt; == 1.5.43&lt;br /&gt;
* &amp;lt;code&amp;gt;json-repair&amp;lt;/code&amp;gt; == 0.44.1&lt;br /&gt;
* &amp;lt;code&amp;gt;regex&amp;lt;/code&amp;gt; == 2024.11.6&lt;br /&gt;
* &amp;lt;code&amp;gt;structlog&amp;lt;/code&amp;gt; &amp;gt;= 24&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials are required for the core library. However, certain HuggingFace models (gated models like &amp;lt;code&amp;gt;deberta-v3-small-prompt-injection-v2&amp;lt;/code&amp;gt;) require:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HF_TOKEN&amp;lt;/code&amp;gt;: HuggingFace API token with read access for gated model downloads.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install core package&lt;br /&gt;
pip install llm-guard&lt;br /&gt;
&lt;br /&gt;
# If torch install fails, install separately first&lt;br /&gt;
pip install wheel&lt;br /&gt;
pip install torch&amp;gt;=2.4.0&lt;br /&gt;
pip install llm-guard --no-build-isolation&lt;br /&gt;
&lt;br /&gt;
# For development&lt;br /&gt;
pip install &amp;quot;llm-guard[dev]&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Device auto-detection from &amp;lt;code&amp;gt;llm_guard/util.py:103-111&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@lru_cache(maxsize=None)  # Unbounded cache&lt;br /&gt;
def device():&lt;br /&gt;
    torch = cast(&amp;quot;torch&amp;quot;, lazy_load_dep(&amp;quot;torch&amp;quot;))&lt;br /&gt;
    if torch.cuda.is_available():&lt;br /&gt;
        return torch.device(&amp;quot;cuda:0&amp;quot;)&lt;br /&gt;
    elif torch.backends.mps.is_available():&lt;br /&gt;
        return torch.device(&amp;quot;mps&amp;quot;)&lt;br /&gt;
    return torch.device(&amp;quot;cpu&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lazy dependency loading with warning from &amp;lt;code&amp;gt;llm_guard/util.py:114-131&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def lazy_load_dep(import_name: str, package_name: str | None = None):&lt;br /&gt;
    if package_name is None:&lt;br /&gt;
        package_name = import_name&lt;br /&gt;
    spec = importlib.util.find_spec(import_name)&lt;br /&gt;
    if spec is None:&lt;br /&gt;
        LOGGER.warning(&lt;br /&gt;
            f&amp;quot;Optional feature dependent on missing package: {import_name} was initialized.\n&amp;quot;&lt;br /&gt;
            f&amp;quot;Use `pip install {package_name}` to install the package if running locally.&amp;quot;&lt;br /&gt;
        )&lt;br /&gt;
    return importlib.import_module(import_name)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Python version constraint from &amp;lt;code&amp;gt;pyproject.toml:19&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
requires-python = &amp;quot;&amp;gt;=3.10,&amp;lt;3.13&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;ModuleNotFoundError: No module named &#039;torch&#039;&amp;lt;/code&amp;gt; || PyTorch not installed || &amp;lt;code&amp;gt;pip install torch&amp;gt;=2.4.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;LookupError: punkt_tab&amp;lt;/code&amp;gt; || NLTK tokenizer data missing || Auto-downloaded on first use; ensure internet access&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;Optional feature dependent on missing package: tiktoken&amp;lt;/code&amp;gt; || tiktoken not installed || &amp;lt;code&amp;gt;pip install tiktoken&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;TOKENIZERS_PARALLELISM&amp;lt;/code&amp;gt; warning || HuggingFace tokenizer threading conflict || Automatically set to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; by Anonymize scanner&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CUDA GPUs:&#039;&#039;&#039; Auto-detected via &amp;lt;code&amp;gt;torch.cuda.is_available()&amp;lt;/code&amp;gt;. Uses &amp;lt;code&amp;gt;cuda:0&amp;lt;/code&amp;gt; by default.&lt;br /&gt;
* &#039;&#039;&#039;Apple Silicon (MPS):&#039;&#039;&#039; Supported via &amp;lt;code&amp;gt;torch.backends.mps.is_available()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;CPU-only:&#039;&#039;&#039; Full functionality available; ML-based scanners will run slower.&lt;br /&gt;
* &#039;&#039;&#039;Python 3.9:&#039;&#039;&#039; Listed in some documentation but &amp;lt;code&amp;gt;pyproject.toml&amp;lt;/code&amp;gt; requires &amp;lt;code&amp;gt;&amp;gt;=3.10&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Scan_prompt]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Scan_output]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Anonymize]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Deanonymize]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Vault]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_PromptInjection]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Toxicity]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_TokenLimit]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_NoRefusal]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Relevance]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Sensitive]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Input_Scanner_Base]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Benchmark_run]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Vespa_engine_Vespa_Docker_OCI_Container_Runtime&amp;diff=27819</id>
		<title>Environment:Vespa engine Vespa Docker OCI Container Runtime</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Vespa_engine_Vespa_Docker_OCI_Container_Runtime&amp;diff=27819"/>
		<updated>2026-02-16T18:46:29Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Vespa_engine_Vespa_Docker_OCI_Container_Runtime.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Vespa_engine_Vespa_Docker_OCI_Container_Runtime}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Vespa_engine_Vespa_Docker_OCI_Container_Runtime}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/vespa-engine/vespa Vespa Engine]&lt;br /&gt;
* [https://github.com/vespa-engine/vespa/blob/master/.buildkite/build-container.sh build-container.sh]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Containers]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 00:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Docker container runtime for building Vespa preview and system-test OCI images on AlmaLinux 8/9 base for amd64 and arm64 architectures.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the Docker/OCI container context for building Vespa container images. It supports two base OS variants (AlmaLinux 8 and 9) and two architectures (amd64 and arm64). The build process creates both a Vespa preview container and a system-test container. Images are published to GitHub Container Registry (ghcr.io) and Docker Hub.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;container image building&#039;&#039;&#039; and &#039;&#039;&#039;container publishing&#039;&#039;&#039; operations. It is the mandatory prerequisite for running the &#039;&#039;&#039;Build_Container_Sh&#039;&#039;&#039; implementation. The container build depends on completed RPM packages and Maven artifacts.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux || Docker host with daemon running&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || amd64 or arm64 CPU || Images are architecture-specific&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 4GB+ RAM || Docker build context can be large&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 20GB+ || Container images, RPM cache, Maven repo&lt;br /&gt;
|-&lt;br /&gt;
| Software || Docker (functional) || Verified at build start&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* Docker (with daemon running and accessible)&lt;br /&gt;
* Git (for cloning docker-image and system-test repositories)&lt;br /&gt;
* &amp;lt;code&amp;gt;crane&amp;lt;/code&amp;gt; (for getting container image digests)&lt;br /&gt;
&lt;br /&gt;
=== Base Images ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Build OS Label !! Vespa Base Image !! System Test Base Image&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;alma8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;el8&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;almalinux:8&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;alma9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;el9&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;almalinux:9&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables must be set for publishing:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;VESPA_ENGINE_GHCR_IO_WRITE_TOKEN&amp;lt;/code&amp;gt;: GitHub Container Registry authentication token&lt;br /&gt;
* &amp;lt;code&amp;gt;VESPA_ENGINE_ARTIFACTS_BUCKET&amp;lt;/code&amp;gt;: S3 bucket for artifact storage&lt;br /&gt;
* &amp;lt;code&amp;gt;VESPA_ENGINE_ARTIFACTS_PREFIX&amp;lt;/code&amp;gt;: Artifact path prefix&lt;br /&gt;
* &amp;lt;code&amp;gt;VESPA_BUILDOS_LABEL&amp;lt;/code&amp;gt;: OS label (&amp;lt;code&amp;gt;alma8&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;alma9&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;ARCH&amp;lt;/code&amp;gt;: CPU architecture (&amp;lt;code&amp;gt;amd64&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;VESPA_VERSION&amp;lt;/code&amp;gt;: Version number (default: &amp;lt;code&amp;gt;8.999.1&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;VESPA_CONTAINER_IMAGE_VERSION_TAG_SUFFIX&amp;lt;/code&amp;gt;: Tag suffix (default: &amp;lt;code&amp;gt;-dev-only&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Verify Docker is functional&lt;br /&gt;
docker info &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 || { echo &amp;quot;Docker not available&amp;quot;; exit 1; }&lt;br /&gt;
&lt;br /&gt;
# Clone required repositories&lt;br /&gt;
git clone --quiet --depth 1 https://github.com/vespa-engine/docker-image&lt;br /&gt;
git clone --quiet --filter=&amp;quot;blob:none&amp;quot; https://github.com/vespa-engine/system-test&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Docker validation from &#039;&#039;&#039;build-container.sh:14-17&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if ! docker info &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then&lt;br /&gt;
    echo &amp;quot;Docker not available. Exiting.&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Base image selection from &#039;&#039;&#039;build-container.sh:19-26&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
case &amp;quot;$VESPA_BUILDOS_LABEL&amp;quot; in&lt;br /&gt;
    alma8) VESPA_BASE_IMAGE=&amp;quot;el8&amp;quot;; SYSTEM_TEST_BASE_IMAGE=&amp;quot;almalinux:8&amp;quot; ;;&lt;br /&gt;
    alma9) VESPA_BASE_IMAGE=&amp;quot;el9&amp;quot;; SYSTEM_TEST_BASE_IMAGE=&amp;quot;almalinux:9&amp;quot; ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Shallow clone optimization from &#039;&#039;&#039;build-container.sh&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone --quiet --depth 1 https://github.com/vespa-engine/docker-image&lt;br /&gt;
git clone --quiet --filter=&amp;quot;blob:none&amp;quot; https://github.com/vespa-engine/system-test&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;Docker not available. Exiting.&amp;lt;/code&amp;gt; || Docker daemon not running || Start Docker daemon: &amp;lt;code&amp;gt;systemctl start docker&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;unauthorized: authentication required&amp;lt;/code&amp;gt; || GHCR token missing || Set &amp;lt;code&amp;gt;VESPA_ENGINE_GHCR_IO_WRITE_TOKEN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;no space left on device&amp;lt;/code&amp;gt; || Disk full from images || Run &amp;lt;code&amp;gt;docker system prune&amp;lt;/code&amp;gt; to free space&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;amd64 vs arm64:&#039;&#039;&#039; Images are architecture-specific; no multi-arch manifests at build time.&lt;br /&gt;
* &#039;&#039;&#039;AlmaLinux 8 vs 9:&#039;&#039;&#039; Base image selected via &amp;lt;code&amp;gt;VESPA_BUILDOS_LABEL&amp;lt;/code&amp;gt;; affects system library versions.&lt;br /&gt;
* &#039;&#039;&#039;Shallow clones:&#039;&#039;&#039; &amp;lt;code&amp;gt;--depth 1&amp;lt;/code&amp;gt; for docker-image repo, &amp;lt;code&amp;gt;--filter=&amp;quot;blob:none&amp;quot;&amp;lt;/code&amp;gt; for system-test repo to minimize download size.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Vespa_engine_Vespa_Build_Container_Sh]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Mbzuai_oryx_Awesome_LLM_Post_training_Git_CLI&amp;diff=27818</id>
		<title>Environment:Mbzuai oryx Awesome LLM Post training Git CLI</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Mbzuai_oryx_Awesome_LLM_Post_training_Git_CLI&amp;diff=27818"/>
		<updated>2026-02-16T18:46:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Mbzuai_oryx_Awesome_LLM_Post_training_Git_CLI.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Mbzuai_oryx_Awesome_LLM_Post_training_Git_CLI}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Mbzuai_oryx_Awesome_LLM_Post_training_Git_CLI}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/mbzuai-oryx/Awesome-LLM-Post-training Awesome-LLM-Post-training]&lt;br /&gt;
* [https://git-scm.com/doc Git Documentation]&lt;br /&gt;
* [https://docs.github.com/en/authentication GitHub HTTPS Auth]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Version_Control]], [[domain::Infrastructure]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-08 08:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Git CLI environment for staging, committing, and pushing the curated awesome-list README to GitHub.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the Git command-line interface for publishing updates to the &#039;&#039;&#039;Awesome-LLM-Post-training&#039;&#039;&#039; repository on GitHub. It requires Git to be installed and configured with user identity (name and email) and remote access credentials. The workflow uses three sequential Git commands: &#039;&#039;&#039;git add&#039;&#039;&#039; to stage files, &#039;&#039;&#039;git commit&#039;&#039;&#039; to record changes, and &#039;&#039;&#039;git push&#039;&#039;&#039; to upload to the remote &#039;&#039;&#039;main&#039;&#039;&#039; branch.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for the &#039;&#039;&#039;Repository Publishing&#039;&#039;&#039; step of the Awesome List Curation workflow. It is the mandatory prerequisite for the &#039;&#039;&#039;Git_Commit_Push&#039;&#039;&#039; implementation. Required after the README has been updated with new paper entries.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Any (Linux, macOS, Windows) || Git available on all platforms&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || Standard CPU || Minimal resource requirements&lt;br /&gt;
|-&lt;br /&gt;
| Network || Internet access || Must reach github.com on HTTPS (port 443) or SSH (port 22)&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 100MB free || For local repository clone&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `git` &amp;gt;= 2.0 (any modern version)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* None (Git CLI is a standalone system tool)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following credentials must be configured for push access:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Git user identity:&#039;&#039;&#039; `git config user.name` and `git config user.email` must be set&lt;br /&gt;
* &#039;&#039;&#039;GitHub authentication:&#039;&#039;&#039; One of the following:&lt;br /&gt;
** HTTPS: GitHub personal access token (PAT) or credential helper&lt;br /&gt;
** SSH: SSH key pair registered with GitHub account&lt;br /&gt;
* &#039;&#039;&#039;Repository write access:&#039;&#039;&#039; User must have push permissions to `mbzuai-oryx/Awesome-LLM-Post-training`&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install Git (Ubuntu/Debian)&lt;br /&gt;
sudo apt-get install git&lt;br /&gt;
&lt;br /&gt;
# Install Git (macOS)&lt;br /&gt;
brew install git&lt;br /&gt;
&lt;br /&gt;
# Configure identity&lt;br /&gt;
git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
git config --global user.email &amp;quot;your.email@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Clone the repository&lt;br /&gt;
git clone https://github.com/mbzuai-oryx/Awesome-LLM-Post-training.git&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Git workflow documented in the &#039;&#039;&#039;Git_Commit_Push&#039;&#039;&#039; implementation:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Stage the updated README&lt;br /&gt;
git add README.md&lt;br /&gt;
&lt;br /&gt;
# Commit with descriptive message&lt;br /&gt;
git commit -m &amp;quot;Update awesome list with new papers&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Push to remote repository&lt;br /&gt;
git push origin main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prerequisites verification:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Git must be installed and configured&lt;br /&gt;
git --version&lt;br /&gt;
&lt;br /&gt;
# Remote must be configured&lt;br /&gt;
git remote -v&lt;br /&gt;
# origin  https://github.com/mbzuai-oryx/Awesome-LLM-Post-training.git (push)&lt;br /&gt;
&lt;br /&gt;
# Must be on main branch&lt;br /&gt;
git branch --show-current&lt;br /&gt;
# main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `git: command not found` || Git not installed || Install Git via package manager (apt, brew, etc.)&lt;br /&gt;
|-&lt;br /&gt;
|| `fatal: not a git repository` || Not inside a cloned repository || `cd` to the repository directory or clone first&lt;br /&gt;
|-&lt;br /&gt;
|| `remote: Permission denied` || No push access to repository || Configure GitHub credentials or request write access from repository owner&lt;br /&gt;
|-&lt;br /&gt;
|| `error: failed to push some refs` || Remote has newer commits || Run `git pull --rebase` before pushing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;All platforms:&#039;&#039;&#039; Git CLI works on Linux, macOS, and Windows (Git Bash or native).&lt;br /&gt;
* &#039;&#039;&#039;Authentication:&#039;&#039;&#039; HTTPS authentication with GitHub now requires a personal access token (PAT) instead of password. SSH key authentication is the alternative.&lt;br /&gt;
* &#039;&#039;&#039;Branch protection:&#039;&#039;&#039; The main branch may have branch protection rules requiring pull requests. Direct push may be blocked depending on repository settings.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Mbzuai_oryx_Awesome_LLM_Post_training_Git_Commit_Push]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Teamcapybara_Capybara_Selenium_WebDriver_Environment&amp;diff=27817</id>
		<title>Environment:Teamcapybara Capybara Selenium WebDriver Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Teamcapybara_Capybara_Selenium_WebDriver_Environment&amp;diff=27817"/>
		<updated>2026-02-16T18:46:26Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Teamcapybara_Capybara_Selenium_WebDriver_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Teamcapybara_Capybara_Selenium_WebDriver_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/teamcapybara/capybara Capybara]&lt;br /&gt;
* [https://www.selenium.dev/documentation/ Selenium WebDriver]&lt;br /&gt;
* [https://github.com/teamcapybara/capybara/blob/master/capybara.gemspec capybara.gemspec]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Browser_Automation]], [[domain::Testing]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-12 06:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Selenium WebDriver 4.8+ environment with Chrome, Firefox, or Edge browser binaries required for Capybara&#039;s JavaScript-capable driver.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment defines the browser automation stack required when using Capybara with the Selenium driver for JavaScript-enabled integration testing. It requires `selenium-webdriver` gem version 4.8 or higher, plus a compatible browser binary (Chrome, Firefox, Edge, or Safari) and its corresponding driver binary (ChromeDriver, geckodriver, etc.). The Selenium driver supports multiple browser specializations with browser-specific workarounds for Chrome, Firefox, Edge, IE, and Safari.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when running any Capybara test that requires &#039;&#039;&#039;JavaScript execution&#039;&#039;&#039;, &#039;&#039;&#039;browser rendering&#039;&#039;&#039;, or &#039;&#039;&#039;real HTTP interactions&#039;&#039;&#039;. It is the mandatory prerequisite for the `:selenium`, `:selenium_chrome`, `:selenium_chrome_headless`, and `:selenium_headless` built-in drivers. Tests that only need the RackTest driver do &#039;&#039;&#039;not&#039;&#039;&#039; require this environment.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Language || Ruby &amp;gt;= 3.2.0 || Same as base Capybara environment&lt;br /&gt;
|-&lt;br /&gt;
| Browser || Chrome 75+, Firefox, Edge, or Safari || ChromeDriver 76.0.3809.25+ recommended for Chrome&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, Windows || Windows adds `--disable-gpu` flag for headless Chrome&lt;br /&gt;
|-&lt;br /&gt;
| Network || Localhost HTTP server || Capybara boots an embedded Puma/WEBrick server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Gem Dependencies ===&lt;br /&gt;
&lt;br /&gt;
* `selenium-webdriver` ~&amp;gt; 4.8 — Browser automation protocol&lt;br /&gt;
* `puma` &amp;gt;= 3.8.0 — Default embedded application server (or `webrick` as alternative)&lt;br /&gt;
&lt;br /&gt;
=== Browser Binaries ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Chrome:&#039;&#039;&#039; Google Chrome or Chromium, version 75+ (for file input clear support). ChromeDriver &amp;gt;= 76.0.3809.25 for `isDisplayed` endpoint support, &amp;gt;= 76.0.3809.68 for fixed actions key state.&lt;br /&gt;
* &#039;&#039;&#039;Firefox:&#039;&#039;&#039; Mozilla Firefox with geckodriver. Capybara patches geckodriver 0.x pause duration bug.&lt;br /&gt;
* &#039;&#039;&#039;Edge:&#039;&#039;&#039; Microsoft Edge (Chromium-based) with Edge WebDriver.&lt;br /&gt;
* &#039;&#039;&#039;Safari:&#039;&#039;&#039; Safari with SafariDriver (macOS only).&lt;br /&gt;
* &#039;&#039;&#039;Internet Explorer:&#039;&#039;&#039; IE with IEDriverServer (Windows only, limited support).&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables control Selenium behavior:&lt;br /&gt;
&lt;br /&gt;
* `DISABLE_CAPYBARA_SELENIUM_OPTIMIZATIONS` — When set, disables Chrome/Firefox CSS selector optimizations in element finding&lt;br /&gt;
* `HEADLESS` — When set, runs browsers in headless mode (used in CI)&lt;br /&gt;
* `WD_CACHE_TIME` — Controls WebDriver binary cache duration (set to `0` in CI)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Add to Gemfile&lt;br /&gt;
# gem &#039;selenium-webdriver&#039;, &#039;~&amp;gt; 4.8&#039;&lt;br /&gt;
# gem &#039;puma&#039;&lt;br /&gt;
&lt;br /&gt;
# Install Chrome and ChromeDriver (Ubuntu/Debian)&lt;br /&gt;
# apt-get install -y chromium-browser chromium-chromedriver&lt;br /&gt;
&lt;br /&gt;
# Or use selenium-webdriver&#039;s built-in driver management&lt;br /&gt;
bundle install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Selenium version check and warning from `lib/capybara/selenium/driver.rb:15,37-46`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
CAPS_VERSION = Gem::Requirement.new(&#039;&amp;lt; 4.8.0&#039;)&lt;br /&gt;
&lt;br /&gt;
@selenium_webdriver_version =&lt;br /&gt;
  if Gem.loaded_specs[&#039;selenium-webdriver&#039;]&lt;br /&gt;
    Gem.loaded_specs[&#039;selenium-webdriver&#039;].version&lt;br /&gt;
  else&lt;br /&gt;
    Gem::Version.new(Selenium::WebDriver::VERSION)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
unless Gem::Requirement.new(&#039;&amp;gt;= 4.8&#039;).satisfied_by? @selenium_webdriver_version&lt;br /&gt;
  warn &amp;quot;Warning: You&#039;re using an unsupported version of selenium-webdriver, please upgrade to 4.8+.&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puma version check from `lib/capybara/registrations/servers.rb:33-34`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
unless puma_rack_handler.respond_to?(:config)&lt;br /&gt;
  raise LoadError, &#039;Capybara requires `puma` version 3.8.0 or higher, please upgrade `puma` or register and specify your own server block&#039;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puma SSL patch conditional from `lib/capybara/registrations/servers.rb:46-47`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
puma_ver = Gem::Version.new(Puma::Const::PUMA_VERSION)&lt;br /&gt;
require_relative &#039;patches/puma_ssl&#039; if Gem::Requirement.new(&#039;&amp;gt;=4.0.0&#039;, &#039;&amp;lt; 4.1.0&#039;).satisfied_by?(puma_ver)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selenium load error handling from `lib/capybara/registrations/servers.rb:29`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
raise LoadError, &#039;Capybara is unable to load `puma` for its server, please add `puma` to your project or specify a different server via something like `Capybara.server = :webrick`.&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `Warning: You&#039;re using an unsupported version of selenium-webdriver, please upgrade to 4.8+.` || selenium-webdriver gem &amp;lt; 4.8 || `gem update selenium-webdriver` or set `~&amp;gt; 4.8` in Gemfile&lt;br /&gt;
|-&lt;br /&gt;
|| `Capybara requires puma version 3.8.0 or higher` || Puma gem too old || Upgrade puma: `gem install puma`&lt;br /&gt;
|-&lt;br /&gt;
|| `Capybara is unable to load puma for its server` || Puma not installed || Add `gem &#039;puma&#039;` to Gemfile or use `Capybara.server = :webrick`&lt;br /&gt;
|-&lt;br /&gt;
|| `Rack application timed out during boot` || Server failed to start within 60 seconds || Check server configuration; ensure port is available&lt;br /&gt;
|-&lt;br /&gt;
|| `Selenium::WebDriver::Error::ObsoleteElementError` || Element removed from DOM during interaction || Normal in async apps; Capybara retries automatically via `synchronize`&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; Automatically adds `--disable-gpu` flag for headless Chrome (detected via `Gem.win_platform?`).&lt;br /&gt;
* &#039;&#039;&#039;Chrome &amp;lt; 77:&#039;&#039;&#039; Does not maintain mouse button state across W3C Actions API calls.&lt;br /&gt;
* &#039;&#039;&#039;ChromeDriver &amp;lt; 76.0.3809.68:&#039;&#039;&#039; Actions key state not properly tracked.&lt;br /&gt;
* &#039;&#039;&#039;Puma 4.0.0 to 4.0.x:&#039;&#039;&#039; Requires SSL monkey-patch for `read_nonblock` method.&lt;br /&gt;
* &#039;&#039;&#039;Rack 3:&#039;&#039;&#039; Handler loading falls back from `rack/handler/puma` to `rackup/handler/puma` (requires `rackup` gem).&lt;br /&gt;
* &#039;&#039;&#039;macOS:&#039;&#039;&#039; Port binding workaround — Capybara binds twice to verify port availability on all IP addresses.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Teamcapybara_Capybara_Capybara_Register_Driver]]&lt;br /&gt;
* [[required_by::Implementation:Teamcapybara_Capybara_Capybara_Built_In_Drivers]]&lt;br /&gt;
* [[required_by::Implementation:Teamcapybara_Capybara_Selenium_Driver_Specialization]]&lt;br /&gt;
* [[required_by::Implementation:Teamcapybara_Capybara_Capybara_Server_Boot]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Hpcaitech_ColossalAI_ColossalChat_Training_Environment&amp;diff=27816</id>
		<title>Environment:Hpcaitech ColossalAI ColossalChat Training Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Hpcaitech_ColossalAI_ColossalChat_Training_Environment&amp;diff=27816"/>
		<updated>2026-02-16T18:46:25Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Hpcaitech_ColossalAI_ColossalChat_Training_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Hpcaitech_ColossalAI_ColossalChat_Training_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Hpcaitech_ColossalAI_ColossalChat_Training_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/hpcaitech/ColossalAI/tree/main/applications/ColossalChat ColossalChat]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::RLHF]], [[domain::LLMs]], [[domain::Fine_Tuning]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 03:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python environment with ColossalAI, PyTorch, and HuggingFace Transformers for SFT, DPO, KTO, ORPO, and GRPO training of large language models.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
ColossalChat&#039;s training environment provides a full stack for reinforcement learning from human feedback (RLHF) and preference-based fine-tuning of large language models. At its core, &#039;&#039;&#039;ColossalAI&#039;&#039;&#039; (&amp;gt;=0.4.7) supplies the distributed training backend, including &#039;&#039;&#039;Booster&#039;&#039;&#039;, &#039;&#039;&#039;HybridParallelPlugin&#039;&#039;&#039;, and &#039;&#039;&#039;DistCoordinator&#039;&#039;&#039; for orchestrating data, tensor, and pipeline parallelism across multiple GPUs. &#039;&#039;&#039;PyTorch&#039;&#039;&#039; (&amp;gt;=2.1.0) serves as the underlying deep learning framework, while &#039;&#039;&#039;HuggingFace Transformers&#039;&#039;&#039; (&amp;gt;=4.39.3) provides pretrained model architectures and tokenizers.&lt;br /&gt;
&lt;br /&gt;
The dependency set covers the entire training lifecycle: &#039;&#039;&#039;datasets&#039;&#039;&#039; for loading and preprocessing corpora, &#039;&#039;&#039;loralib&#039;&#039;&#039; for parameter-efficient LoRA adapters, &#039;&#039;&#039;sentencepiece&#039;&#039;&#039; and &#039;&#039;&#039;tiktoken&#039;&#039;&#039; for tokenization, &#039;&#039;&#039;flash-attn&#039;&#039;&#039; for memory-efficient attention kernels, and &#039;&#039;&#039;wandb&#039;&#039;&#039; for optional experiment tracking. For GRPO reward verification workflows, &#039;&#039;&#039;math_verify&#039;&#039;&#039;, &#039;&#039;&#039;latex2sympy2_extended&#039;&#039;&#039;, and &#039;&#039;&#039;pyext&#039;&#039;&#039; handle mathematical expression parsing and evaluation. The environment also supports optional inference backends (&#039;&#039;&#039;vllm&#039;&#039;&#039; and &#039;&#039;&#039;sglang&#039;&#039;&#039;) for generation during reinforcement learning rollouts, and &#039;&#039;&#039;langchain&#039;&#039;&#039;, &#039;&#039;&#039;fastapi&#039;&#039;&#039;, and &#039;&#039;&#039;sse_starlette&#039;&#039;&#039; for serving and streaming interfaces.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
This environment is required for all ColossalChat supervised fine-tuning (SFT), direct preference optimization (DPO), Kahneman-Tversky optimization (KTO), odds-ratio preference optimization (ORPO), and group relative policy optimization (GRPO) training workflows. It is also needed for dataset preparation pipelines (both SFT and preference formats), checkpoint saving/loading, and model instantiation via &#039;&#039;&#039;AutoModelForCausalLM&#039;&#039;&#039;. Any script under &amp;lt;code&amp;gt;applications/ColossalChat/&amp;lt;/code&amp;gt; that imports from &amp;lt;code&amp;gt;coati.trainer&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;coati.distributed&amp;lt;/code&amp;gt; depends on this environment.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux || Windows not supported (use WSL)&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || NVIDIA GPU || NCCL backend required for distributed training&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || Multiple GPUs recommended || For distributed SFT/DPO with data/tensor parallelism&lt;br /&gt;
|-&lt;br /&gt;
| Python || Python &amp;gt;= 3.8 || Required by ColossalAI and PyTorch &amp;gt;= 2.1.0&lt;br /&gt;
|-&lt;br /&gt;
| CUDA || CUDA &amp;gt;= 11.8 || Must match PyTorch build; CUDA 12.x recommended for Ampere/Hopper GPUs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cuda-toolkit&amp;lt;/code&amp;gt; (matching PyTorch CUDA version)&lt;br /&gt;
* &amp;lt;code&amp;gt;ninja&amp;lt;/code&amp;gt; = 1.11.1&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Package !! Version Constraint !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;colossalai&#039;&#039;&#039; || &amp;gt;= 0.4.7 || Distributed training framework (Booster, HybridParallelPlugin, DistCoordinator)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;torch&#039;&#039;&#039; || &amp;gt;= 2.1.0 || Deep learning framework&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;transformers&#039;&#039;&#039; || &amp;gt;= 4.39.3 || Pretrained model architectures and tokenizers (&amp;gt;= 4.39.1 for Qwen2, &amp;gt;= 4.51.0 for Qwen3)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;datasets&#039;&#039;&#039; || == 2.14.7 || HuggingFace dataset loading and processing&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;sentencepiece&#039;&#039;&#039; || == 0.1.99 || SentencePiece tokenizer for LLaMA-family models&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;tiktoken&#039;&#039;&#039; || (latest) || BPE tokenizer used by GPT/Qwen-family models&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;loralib&#039;&#039;&#039; || (latest) || Low-Rank Adaptation (LoRA) parameter-efficient fine-tuning&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;tokenizers&#039;&#039;&#039; || (latest) || HuggingFace fast tokenizer backend&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;langchain&#039;&#039;&#039; || (latest) || LLM application framework utilities&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;fastapi&#039;&#039;&#039; || (latest) || REST API serving framework&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;sse_starlette&#039;&#039;&#039; || (latest) || Server-Sent Events for streaming responses&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;wandb&#039;&#039;&#039; || (latest) || Weights &amp;amp; Biases experiment tracking (optional)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;flash-attn&#039;&#039;&#039; || (latest) || Flash Attention memory-efficient attention kernels (optional, requires CUDA)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;jsonlines&#039;&#039;&#039; || (latest) || JSONL file reading/writing for training data&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;math_verify&#039;&#039;&#039; || (latest) || Mathematical answer verification for GRPO reward computation&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;latex2sympy2_extended&#039;&#039;&#039; || (latest) || LaTeX-to-SymPy conversion for GRPO math reward parsing&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;pyext&#039;&#039;&#039; || (latest) || Python extension utilities for GRPO reward verification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Optional Inference Backends ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Package !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;vllm&#039;&#039;&#039; || High-throughput inference backend for RL rollout generation&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;sglang&#039;&#039;&#039; || Structured generation language inference backend for RL rollouts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are imported conditionally in &amp;lt;code&amp;gt;coati/distributed/inference_backend.py&amp;lt;/code&amp;gt; and are &#039;&#039;&#039;not&#039;&#039;&#039; required for standard SFT/DPO training.&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;WANDB_API_KEY&amp;lt;/code&amp;gt;: Weights &amp;amp; Biases API key for logging (optional)&lt;br /&gt;
* &amp;lt;code&amp;gt;HF_TOKEN&amp;lt;/code&amp;gt;: HuggingFace token for gated model access (optional)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install colossalai&amp;gt;=0.4.7 torch&amp;gt;=2.1.0 transformers&amp;gt;=4.39.3 datasets==2.14.7 flash-attn sentencepiece==0.1.99 wandb tiktoken jsonlines loralib&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For GRPO reward verification support:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install math_verify latex2sympy2_extended pyext&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For optional inference backends (RL rollout generation):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install vllm sglang&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
=== Qwen2 Transformers Version Check ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;colossalai/shardformer/policies/qwen2.py&amp;lt;/code&amp;gt; (lines 43-45):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import transformers&lt;br /&gt;
assert transformers.__version__ &amp;gt;= &amp;quot;4.39.1&amp;quot;, \&lt;br /&gt;
    &amp;quot;Qwen2 model requires transformers&amp;gt;=4.39.1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Qwen3 Transformers Version Check ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;colossalai/shardformer/policies/qwen3.py&amp;lt;/code&amp;gt; (lines 43-45):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import transformers&lt;br /&gt;
assert transformers.__version__ &amp;gt;= &amp;quot;4.51.0&amp;quot;, \&lt;br /&gt;
    &amp;quot;Qwen3 model requires transformers&amp;gt;=4.51.0&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional vllm/sglang Imports ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;applications/ColossalChat/coati/distributed/inference_backend.py&amp;lt;/code&amp;gt; (lines 11-19):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
try:&lt;br /&gt;
    import sglang&lt;br /&gt;
except ImportError:&lt;br /&gt;
    sglang = None&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    import vllm&lt;br /&gt;
except ImportError:&lt;br /&gt;
    vllm = None&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SFT Trainer Core Imports ===&lt;br /&gt;
&lt;br /&gt;
From &amp;lt;code&amp;gt;applications/ColossalChat/coati/trainer/sft.py&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from colossalai.booster import Booster&lt;br /&gt;
from colossalai.shardformer import HybridParallelPlugin&lt;br /&gt;
from colossalai.cluster import DistCoordinator&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Error !! Cause !! Fix&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ImportError: No module named &#039;colossalai&#039;&amp;lt;/code&amp;gt; || ColossalAI not installed || &amp;lt;code&amp;gt;pip install colossalai&amp;gt;=0.4.7&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AssertionError: Qwen2 model requires transformers&amp;gt;=4.39.1&amp;lt;/code&amp;gt; || Transformers version too old for Qwen2 sharding policy || &amp;lt;code&amp;gt;pip install transformers&amp;gt;=4.39.3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AssertionError: Qwen3 model requires transformers&amp;gt;=4.51.0&amp;lt;/code&amp;gt; || Transformers version too old for Qwen3 sharding policy || &amp;lt;code&amp;gt;pip install transformers&amp;gt;=4.51.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RuntimeError: FlashAttention only supports Ampere GPUs or newer&amp;lt;/code&amp;gt; || GPU compute capability &amp;lt; 8.0 || Remove &amp;lt;code&amp;gt;flash-attn&amp;lt;/code&amp;gt; or use a GPU with compute capability &amp;gt;= 8.0 (A100, H100, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ImportError: No module named &#039;flash_attn&#039;&amp;lt;/code&amp;gt; || flash-attn not installed (optional dependency) || &amp;lt;code&amp;gt;pip install flash-attn --no-build-isolation&amp;lt;/code&amp;gt; (requires CUDA toolkit and ninja)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RuntimeError: NCCL error&amp;lt;/code&amp;gt; || Distributed backend failure || Verify NCCL installation, ensure GPUs are visible via &amp;lt;code&amp;gt;nvidia-smi&amp;lt;/code&amp;gt;, check &amp;lt;code&amp;gt;MASTER_ADDR&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;MASTER_PORT&amp;lt;/code&amp;gt; env vars&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;datasets.builder.DatasetGenerationError&amp;lt;/code&amp;gt; || Pinned datasets==2.14.7 incompatible with newer HuggingFace Hub API || Ensure &amp;lt;code&amp;gt;huggingface_hub&amp;lt;/code&amp;gt; version is compatible with datasets 2.14.7&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ImportError: No module named &#039;vllm&#039;&amp;lt;/code&amp;gt; || vllm not installed for RL rollout inference backend || Install with &amp;lt;code&amp;gt;pip install vllm&amp;lt;/code&amp;gt; or switch to sglang backend; not required for SFT/DPO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;flash-attn&#039;&#039;&#039; requires a CUDA-capable GPU with compute capability &amp;gt;= 8.0 (Ampere architecture or newer: A100, A10G, H100, etc.). It also requires the CUDA toolkit and &amp;lt;code&amp;gt;ninja&amp;lt;/code&amp;gt; build system to compile from source.&lt;br /&gt;
* &#039;&#039;&#039;Qwen2 models&#039;&#039;&#039; require &amp;lt;code&amp;gt;transformers&amp;gt;=4.39.1&amp;lt;/code&amp;gt;. The ColossalChat requirements already specify &amp;lt;code&amp;gt;&amp;gt;=4.39.3&amp;lt;/code&amp;gt;, which satisfies this constraint.&lt;br /&gt;
* &#039;&#039;&#039;Qwen3 models&#039;&#039;&#039; require &amp;lt;code&amp;gt;transformers&amp;gt;=4.51.0&amp;lt;/code&amp;gt;. If training Qwen3 architectures, the transformers version must be upgraded beyond the minimum &amp;lt;code&amp;gt;&amp;gt;=4.39.3&amp;lt;/code&amp;gt; specified in requirements.txt.&lt;br /&gt;
* &#039;&#039;&#039;datasets==2.14.7&#039;&#039;&#039; is pinned to a specific version. Upgrading may break data loading pipelines; downgrading &amp;lt;code&amp;gt;huggingface_hub&amp;lt;/code&amp;gt; may be needed if API incompatibilities arise.&lt;br /&gt;
* &#039;&#039;&#039;sentencepiece==0.1.99&#039;&#039;&#039; is pinned. Other versions may produce different tokenization results affecting training reproducibility.&lt;br /&gt;
* &#039;&#039;&#039;vllm&#039;&#039;&#039; and &#039;&#039;&#039;sglang&#039;&#039;&#039; are conditionally imported and only required for inference-backed RL training (e.g., GRPO with online rollouts). Standard SFT and DPO training does not require either package.&lt;br /&gt;
* &#039;&#039;&#039;PyTorch &amp;gt;= 2.1.0&#039;&#039;&#039; is required; PyTorch 2.x introduces &amp;lt;code&amp;gt;torch.compile&amp;lt;/code&amp;gt; support and improved FSDP which ColossalAI leverages internally.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_SFTTrainer]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_DPOTrainer]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_Prepare_Dataset_SFT]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_Prepare_Dataset_Preference]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_DataCollatorForPreferenceDataset]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_Save_Checkpoint_SFT]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_AutoModelForCausalLM_SFT]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Ggml_org_Ggml_C_Cpp_Build_Environment&amp;diff=27815</id>
		<title>Environment:Ggml org Ggml C Cpp Build Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Ggml_org_Ggml_C_Cpp_Build_Environment&amp;diff=27815"/>
		<updated>2026-02-16T18:46:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Ggml_org_Ggml_C_Cpp_Build_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Ggml_org_Ggml_C_Cpp_Build_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Ggml_org_Ggml_C_Cpp_Build_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/ggml-org/ggml GGML]&lt;br /&gt;
* [https://github.com/ggml-org/ggml/blob/master/CMakeLists.txt CMakeLists.txt]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Build_System]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-10 07:40 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
C11/C++17 build environment with CMake 3.14+, POSIX threads, and optional OpenMP for building the GGML tensor library and all backends.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the core build toolchain required to compile GGML from source. It uses CMake as the build system generator with support for multiple compilers (GCC, Clang, MSVC) across Linux, macOS, and Windows. The project requires C11 and C++17 standards. POSIX threads are mandatory for multi-threaded computation. OpenMP is optional but enabled by default for CPU backend parallelism.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;any&#039;&#039;&#039; build of GGML from source, whether for the CPU-only backend or as the foundation for GPU-accelerated backends. All other backend environments (CUDA, Metal, Vulkan, SYCL, etc.) depend on this base environment being satisfied first.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, or Windows || CI-tested on Ubuntu latest, macOS latest, Windows latest&lt;br /&gt;
|-&lt;br /&gt;
| Compiler || GCC, Clang, or MSVC || ARM targets require Clang (MSVC not supported for ARM)&lt;br /&gt;
|-&lt;br /&gt;
| Build System || CMake 3.14 to 3.28 || 3.18+ required for CUDA backend&lt;br /&gt;
|-&lt;br /&gt;
| Threading || POSIX Threads || Required; found via CMake Threads package&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `cmake` &amp;gt;= 3.14&lt;br /&gt;
* `gcc` or `clang` or `msvc` (C11 + C++17 support)&lt;br /&gt;
* `make` or `ninja` (build tool)&lt;br /&gt;
* `git` (for version detection)&lt;br /&gt;
&lt;br /&gt;
=== Optional System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `openmp` (enabled by default for CPU parallelism)&lt;br /&gt;
* `memkind` (for HBM memory allocation on supported hardware)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials are required for building GGML.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Ubuntu/Debian&lt;br /&gt;
sudo apt-get install build-essential cmake git&lt;br /&gt;
&lt;br /&gt;
# macOS (with Xcode Command Line Tools)&lt;br /&gt;
xcode-select --install&lt;br /&gt;
brew install cmake&lt;br /&gt;
&lt;br /&gt;
# Build GGML (CPU only)&lt;br /&gt;
cmake -B build&lt;br /&gt;
cmake --build build --config Release&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
CMake version and language standard requirements from `CMakeLists.txt:1-7`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.14...3.28)&lt;br /&gt;
project(&amp;quot;ggml&amp;quot; C CXX ASM)&lt;br /&gt;
&lt;br /&gt;
set(GGML_VERSION_MAJOR 0)&lt;br /&gt;
set(GGML_VERSION_MINOR 9)&lt;br /&gt;
set(GGML_VERSION_PATCH 6)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
C11 and C++17 standard enforcement from `CMakeLists.txt:275-278`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
set(CMAKE_C_STANDARD   11)&lt;br /&gt;
set(CMAKE_CXX_STANDARD 17)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thread requirement from `CMakeLists.txt:281`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
find_package(Threads REQUIRED)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default thread count from `include/ggml.h:232-233`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#define GGML_DEFAULT_N_THREADS  4&lt;br /&gt;
#define GGML_DEFAULT_GRAPH_SIZE 2048&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `CMake Error: CMake 3.14 or higher is required` || CMake version too old || Upgrade CMake: `pip install cmake` or system package manager&lt;br /&gt;
|-&lt;br /&gt;
|| `error: &#039;filesystem&#039; is not a namespace-name` || Compiler does not support C++17 || Upgrade compiler to GCC &amp;gt;= 7, Clang &amp;gt;= 5, or MSVC &amp;gt;= 2017&lt;br /&gt;
|-&lt;br /&gt;
|| `fatal error: &#039;thread&#039; file not found` || Missing POSIX thread support || Install pthread development headers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Linux:&#039;&#039;&#039; Full support with GCC and Clang. OpenMP parallelism available by default.&lt;br /&gt;
* &#039;&#039;&#039;macOS:&#039;&#039;&#039; Uses Apple Accelerate framework for optimized BLAS operations. Clang from Xcode required.&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; MSVC and MinGW both supported. ARM builds require Clang, not MSVC.&lt;br /&gt;
* &#039;&#039;&#039;WebAssembly:&#039;&#039;&#039; Supported via Emscripten with SIMD128 optimizations.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_init]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_new_tensor]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_build_forward_expand]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_gallocr_alloc_graph]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_backend_load_all]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_backend_init_best]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_backend_sched_new]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_backend_sched_graph_compute]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_quantize_chunk]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Gpt2_model_load]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Gpt2_graph]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Gpt2_eval]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Sam_model_load]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Sam_encode_image]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Yolo_detect]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:DataTalksClub_Data_engineering_zoomcamp_Dlt_BigQuery_Environment&amp;diff=27814</id>
		<title>Environment:DataTalksClub Data engineering zoomcamp Dlt BigQuery Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:DataTalksClub_Data_engineering_zoomcamp_Dlt_BigQuery_Environment&amp;diff=27814"/>
		<updated>2026-02-16T18:46:22Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/DataTalksClub_Data_engineering_zoomcamp_Dlt_BigQuery_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=DataTalksClub_Data_engineering_zoomcamp_Dlt_BigQuery_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=DataTalksClub_Data_engineering_zoomcamp_Dlt_BigQuery_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/DataTalksClub/data-engineering-zoomcamp Data Engineering Zoomcamp]&lt;br /&gt;
* [https://dlthub.com/docs/ dlt Documentation]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Data_Ingestion]], [[domain::Cloud_Infrastructure]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 07:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Environment]]&lt;br /&gt;
[[source_file::cohorts/2025/workshops/dynamic_load_dlt.py]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python environment with dlt (data load tool), Google Cloud Storage, and BigQuery for flexible data ingestion pipelines loading NYC taxi Parquet data.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the dlt-based data ingestion runtime for loading NYC taxi trip data into BigQuery. It supports two loading paths: (1) downloading Parquet files to GCS then loading via dlt filesystem source, or (2) streaming Parquet files directly from the web into BigQuery. The environment requires GCP service account credentials stored in a TOML configuration file, and uses PyArrow for Parquet parsing and Google Cloud Storage client for bucket operations.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for any &#039;&#039;&#039;dlt-based data ingestion&#039;&#039;&#039; workflow that loads data into BigQuery. It is the mandatory prerequisite for running the &#039;&#039;&#039;Toml_Credentials_Loader&#039;&#039;&#039;, &#039;&#039;&#039;Generate_Urls_Function&#039;&#039;&#039;, &#039;&#039;&#039;Dlt_Loading_Method_Selection&#039;&#039;&#039;, &#039;&#039;&#039;Dlt_Resource_Decorator&#039;&#039;&#039;, and &#039;&#039;&#039;Dlt_Pipeline_Run&#039;&#039;&#039; implementations.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, or Windows || No Docker required&lt;br /&gt;
|-&lt;br /&gt;
| Python || Python 3.9+ || Required by dlt library&lt;br /&gt;
|-&lt;br /&gt;
| Disk || ~1GB free || For temporary Parquet file downloads&lt;br /&gt;
|-&lt;br /&gt;
| Network || Internet access || Downloads data from NYC TLC CloudFront CDN and uploads to GCS/BigQuery&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `dlt` with BigQuery destination (`pip install &amp;quot;dlt[bigquery]&amp;quot;`)&lt;br /&gt;
* `dlt` filesystem source (`dlt.sources.filesystem`)&lt;br /&gt;
* `google-cloud-storage` (for GCS loading path)&lt;br /&gt;
* `pyarrow` (for Parquet file parsing)&lt;br /&gt;
* `toml` (for TOML credentials loading)&lt;br /&gt;
* `requests` (for HTTP file downloads)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following credentials must be configured in `.dlt/secrets.toml`:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
[credentials]&lt;br /&gt;
project_id = &amp;quot;your-gcp-project-id&amp;quot;&lt;br /&gt;
private_key = &amp;quot;your-service-account-private-key&amp;quot;&lt;br /&gt;
client_email = &amp;quot;your-service-account-email&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the GCS loading path, an additional service account JSON file (`gcs.json`) is required:&lt;br /&gt;
* `gcs.json`: GCP service account JSON file with Storage Admin and BigQuery Admin permissions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; Never commit `.dlt/secrets.toml` or `gcs.json` to version control.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install dlt with BigQuery support&lt;br /&gt;
pip install &amp;quot;dlt[bigquery]&amp;quot; google-cloud-storage pyarrow toml requests&lt;br /&gt;
&lt;br /&gt;
# Create credentials file&lt;br /&gt;
mkdir -p .dlt&lt;br /&gt;
# Edit .dlt/secrets.toml with your GCP credentials&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
TOML credentials loading from `dynamic_load_dlt.py:17-22`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
config = toml.load(&amp;quot;./.dlt/secrets.toml&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Set environment variables&lt;br /&gt;
os.environ[&amp;quot;CREDENTIALS__PROJECT_ID&amp;quot;] = config[&amp;quot;credentials&amp;quot;][&amp;quot;project_id&amp;quot;]&lt;br /&gt;
os.environ[&amp;quot;CREDENTIALS__PRIVATE_KEY&amp;quot;] = config[&amp;quot;credentials&amp;quot;][&amp;quot;private_key&amp;quot;]&lt;br /&gt;
os.environ[&amp;quot;CREDENTIALS__CLIENT_EMAIL&amp;quot;] = config[&amp;quot;credentials&amp;quot;][&amp;quot;client_email&amp;quot;]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GCS client initialization from `dynamic_load_dlt.py:63`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    storage_client = storage.Client.from_service_account_json(&amp;quot;gcs.json&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dlt pipeline configuration from `dynamic_load_dlt.py:111-115`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
pipeline = dlt.pipeline(&lt;br /&gt;
    pipeline_name=&amp;quot;test_taxi&amp;quot;,&lt;br /&gt;
    dataset_name=input(&amp;quot;Enter the dataset name: &amp;quot;),&lt;br /&gt;
    destination=&amp;quot;bigquery&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `FileNotFoundError: .dlt/secrets.toml` || Credentials file missing || Create `.dlt/secrets.toml` with GCP credentials&lt;br /&gt;
|-&lt;br /&gt;
|| `google.auth.exceptions.DefaultCredentialsError` || Invalid or missing GCP credentials || Verify service account JSON and TOML credentials match&lt;br /&gt;
|-&lt;br /&gt;
|| `dlt.common.exceptions.DestinationTerminalException` || BigQuery dataset or permissions issue || Ensure service account has BigQuery Data Editor role&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Two loading paths:&#039;&#039;&#039; Method 1 (GCS -&amp;gt; BigQuery) requires both a service account JSON file and TOML credentials. Method 2 (Web -&amp;gt; BigQuery) only requires TOML credentials but streams all data through the local machine.&lt;br /&gt;
* &#039;&#039;&#039;Memory usage:&#039;&#039;&#039; Method 2 uses 1MB streaming chunks to keep memory usage low during downloads.&lt;br /&gt;
* &#039;&#039;&#039;dlt version:&#039;&#039;&#039; The code uses `dlt.sources.filesystem` which requires dlt &amp;gt;= 0.3.0 with the filesystem source installed.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:DataTalksClub_Data_engineering_zoomcamp_Toml_Credentials_Loader]]&lt;br /&gt;
* [[required_by::Implementation:DataTalksClub_Data_engineering_zoomcamp_Generate_Urls_Function]]&lt;br /&gt;
* [[required_by::Implementation:DataTalksClub_Data_engineering_zoomcamp_Dlt_Loading_Method_Selection]]&lt;br /&gt;
* [[required_by::Implementation:DataTalksClub_Data_engineering_zoomcamp_Dlt_Resource_Decorator]]&lt;br /&gt;
* [[required_by::Implementation:DataTalksClub_Data_engineering_zoomcamp_Dlt_Pipeline_Run]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Datajuicer_Data_juicer_GPU_CUDA_Environment&amp;diff=27813</id>
		<title>Environment:Datajuicer Data juicer GPU CUDA Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Datajuicer_Data_juicer_GPU_CUDA_Environment&amp;diff=27813"/>
		<updated>2026-02-16T18:46:20Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Datajuicer_Data_juicer_GPU_CUDA_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Datajuicer_Data_juicer_GPU_CUDA_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/datajuicer/data-juicer Data-Juicer]&lt;br /&gt;
* [https://developer.nvidia.com/cuda-toolkit NVIDIA CUDA]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Deep_Learning]], [[domain::Computer_Vision]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-14 17:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
NVIDIA GPU environment with CUDA support, PyTorch 2.8.0, and optional vLLM 0.11.0 for GPU-accelerated operators including ML model inference, image/video processing, and LLM serving.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides GPU-accelerated execution for Data-Juicer operators that require CUDA hardware. It includes PyTorch 2.8.0 with CUDA support, transformers 4.57.1 for model loading, and optional vLLM 0.11.0 for high-throughput LLM inference. The system uses multi-level GPU detection (Ray cluster query, PyTorch CUDA API, nvidia-smi fallback) and automatic resource allocation that distributes operators across available GPUs based on memory requirements.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when running GPU-accelerated operators such as &#039;&#039;&#039;image aesthetics filters&#039;&#039;&#039;, &#039;&#039;&#039;NSFW detectors&#039;&#039;&#039;, &#039;&#039;&#039;text embedding similarity filters&#039;&#039;&#039;, &#039;&#039;&#039;LLM-based mappers&#039;&#039;&#039;, &#039;&#039;&#039;video processing operators&#039;&#039;&#039;, and &#039;&#039;&#039;vLLM inference pipelines&#039;&#039;&#039;. Operators with `accelerator: cuda` in their configuration automatically trigger GPU execution. The default CUDA batch size is 10 (vs 1000 for CPU) to manage GPU memory constraints.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (Ubuntu 20.04+) || Windows not officially supported for CUDA operations&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || NVIDIA GPU || Minimum 4GB VRAM; 16GB+ recommended for LLM inference&lt;br /&gt;
|-&lt;br /&gt;
| Driver || NVIDIA Driver 525+ || Compatible with CUDA 12.x&lt;br /&gt;
|-&lt;br /&gt;
| CUDA || CUDA 12.x toolkit || Required for PyTorch 2.8.0 and vLLM&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 16GB+ system RAM || GPU operators often need CPU staging memory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* NVIDIA CUDA Toolkit 12.x&lt;br /&gt;
* NVIDIA cuDNN&lt;br /&gt;
* `nvidia-smi` CLI tool (for resource detection)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages (generic extra) ===&lt;br /&gt;
&lt;br /&gt;
* `torch` == 2.8.0&lt;br /&gt;
* `transformers` == 4.57.1&lt;br /&gt;
* `einops`&lt;br /&gt;
* `accelerate`&lt;br /&gt;
* `onnxruntime`&lt;br /&gt;
* `cudf-cu12` == 25.4.0&lt;br /&gt;
&lt;br /&gt;
=== Python Packages (vLLM for LLM inference) ===&lt;br /&gt;
&lt;br /&gt;
* `vllm` == 0.11.0&lt;br /&gt;
* `uvloop` == 0.21.0&lt;br /&gt;
&lt;br /&gt;
=== Computer Vision Packages (vision extra) ===&lt;br /&gt;
&lt;br /&gt;
* `opencv-python`, `opencv-contrib-python`&lt;br /&gt;
* `diffusers` &amp;gt;= 0.33.0&lt;br /&gt;
* `ultralytics`&lt;br /&gt;
* `rembg`&lt;br /&gt;
* `decord`&lt;br /&gt;
* `timm` == 1.0.22&lt;br /&gt;
&lt;br /&gt;
=== Optional ML Frameworks ===&lt;br /&gt;
&lt;br /&gt;
* `openmim` (auto-installed for mmpose operators)&lt;br /&gt;
* `mmcv` == 2.1.0 (auto-installed via mim)&lt;br /&gt;
* `mmdeploy` (auto-installed via mim)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
* `CUDA_VISIBLE_DEVICES`: Controls which GPUs are visible to the process&lt;br /&gt;
* `VLLM_WORKER_MULTIPROC_METHOD`: Set to `spawn` automatically for vLLM workers&lt;br /&gt;
* `OMP_NUM_THREADS`: Thread count (auto-set to 1 to prevent multiprocessing hangs)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install with generic ML extras&lt;br /&gt;
pip install &amp;quot;py-data-juicer[generic]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Install with vision extras for image/video processing&lt;br /&gt;
pip install &amp;quot;py-data-juicer[generic,vision]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Install with all extras&lt;br /&gt;
pip install &amp;quot;py-data-juicer[all]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Verify CUDA availability&lt;br /&gt;
python -c &amp;quot;import torch; print(f&#039;CUDA: {torch.cuda.is_available()}, GPUs: {torch.cuda.device_count()}&#039;)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Multi-level CUDA detection from `resource_utils.py:66-88`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def _cuda_device_count(cfg=None):&lt;br /&gt;
    _torch_available = _is_package_available(&amp;quot;torch&amp;quot;)&lt;br /&gt;
    if check_and_initialize_ray(cfg):&lt;br /&gt;
        return int(ray_gpu_count())&lt;br /&gt;
    if _torch_available:&lt;br /&gt;
        return torch.cuda.device_count()&lt;br /&gt;
    try:&lt;br /&gt;
        nvidia_smi_output = subprocess.check_output([&amp;quot;nvidia-smi&amp;quot;, &amp;quot;-L&amp;quot;], text=True)&lt;br /&gt;
        all_devices = nvidia_smi_output.strip().split(&amp;quot;\n&amp;quot;)&lt;br /&gt;
        cuda_visible_devices = os.getenv(&amp;quot;CUDA_VISIBLE_DEVICES&amp;quot;)&lt;br /&gt;
        if cuda_visible_devices is not None:&lt;br /&gt;
            logger.warning(&amp;quot;CUDA_VISIBLE_DEVICES is ignored when torch is unavailable...&amp;quot;)&lt;br /&gt;
        return len(all_devices)&lt;br /&gt;
    except Exception:&lt;br /&gt;
        return 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CUDA batch size default from `base_op.py:378-381`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if self.accelerator == &amp;quot;cuda&amp;quot;:&lt;br /&gt;
    self.batch_size = kwargs.get(&amp;quot;batch_size&amp;quot;, 10)&lt;br /&gt;
else:&lt;br /&gt;
    self.batch_size = kwargs.get(&amp;quot;batch_size&amp;quot;, DEFAULT_BATCH_SIZE)  # 1000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPU memory query from `process_utils.py:82-93`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def get_min_cuda_memory():&lt;br /&gt;
    import torch&lt;br /&gt;
    min_cuda_memory = torch.cuda.get_device_properties(0).total_memory / 1024**2&lt;br /&gt;
    nvidia_smi_output = subprocess.check_output(&lt;br /&gt;
        [&amp;quot;nvidia-smi&amp;quot;, &amp;quot;--query-gpu=memory.free&amp;quot;, &amp;quot;--format=csv,noheader,nounits&amp;quot;]&lt;br /&gt;
    ).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
    for line in nvidia_smi_output.strip().split(&amp;quot;\n&amp;quot;):&lt;br /&gt;
        free_memory = int(line)&lt;br /&gt;
        min_cuda_memory = min(min_cuda_memory, free_memory)&lt;br /&gt;
    return min_cuda_memory&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vLLM environment setup from `model_utils.py:1203-1214`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
os.environ[&amp;quot;VLLM_WORKER_MULTIPROC_METHOD&amp;quot;] = &amp;quot;spawn&amp;quot;&lt;br /&gt;
if is_ray_mode():&lt;br /&gt;
    tensor_parallel_size = model_params.get(&amp;quot;tensor_parallel_size&amp;quot;, 1)&lt;br /&gt;
else:&lt;br /&gt;
    tensor_parallel_size = model_params.get(&amp;quot;tensor_parallel_size&amp;quot;, torch.cuda.device_count())&lt;br /&gt;
model = vllm.LLM(model=check_model_home(pretrained_model_name_or_path),&lt;br /&gt;
                  generation_config=&amp;quot;auto&amp;quot;, **model_params)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPU device assignment from `model_utils.py:1706-1711`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if use_cuda and cuda_device_count() &amp;gt; 0:&lt;br /&gt;
    rank = rank if rank is not None else 0&lt;br /&gt;
    rank = rank % cuda_device_count()&lt;br /&gt;
    device = f&amp;quot;cuda:{rank}&amp;quot;&lt;br /&gt;
else:&lt;br /&gt;
    device = &amp;quot;cpu&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `Command nvidia-smi is not found` || No NVIDIA driver or GPU installed || Install NVIDIA drivers and CUDA toolkit&lt;br /&gt;
|-&lt;br /&gt;
|| `video_camera_calibration_static_deepcalib_mapper currently supports GPU usage only` || Operator requires GPU but running on CPU || Ensure CUDA GPU is available and configured&lt;br /&gt;
|-&lt;br /&gt;
|| `accelerate not found, using device directly` || HuggingFace accelerate not installed || `pip install accelerate`&lt;br /&gt;
|-&lt;br /&gt;
|| `The required cuda memory and gpu of Op[X] has not been specified` || Operator missing GPU resource hints || Set `mem_required` and `num_gpus` in operator config&lt;br /&gt;
|-&lt;br /&gt;
|| `CUDA out of memory` || Insufficient VRAM for operation || Reduce batch_size, use smaller model, or use GPU with more VRAM&lt;br /&gt;
|-&lt;br /&gt;
|| `Failed to install mmcv` || mmcv build requires CUDA matching PyTorch || Ensure CUDA toolkit version matches PyTorch CUDA version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Batch Size:&#039;&#039;&#039; CUDA operators default to batch_size=10 (vs 1000 for CPU) due to GPU memory constraints. This is a 100x reduction.&lt;br /&gt;
* &#039;&#039;&#039;Multiprocessing:&#039;&#039;&#039; CUDA operators automatically switch to `forkserver` or `spawn` multiprocessing start method (fork is unsafe with CUDA).&lt;br /&gt;
* &#039;&#039;&#039;vLLM Tensor Parallelism:&#039;&#039;&#039; In Ray mode, tensor_parallel_size defaults to 1 (single GPU per worker). In local mode, it defaults to all available GPUs.&lt;br /&gt;
* &#039;&#039;&#039;Model Caching:&#039;&#039;&#039; GPU models are cached in a global `MODEL_ZOO` dict keyed by model class. Call `torch.cuda.empty_cache()` after clearing the zoo.&lt;br /&gt;
* &#039;&#039;&#039;Auto-Install:&#039;&#039;&#039; Some operators auto-install dependencies via `openmim` (for mmcv, mmdeploy). This requires network access and a compatible CUDA toolkit.&lt;br /&gt;
* &#039;&#039;&#039;deepcalib Mapper:&#039;&#039;&#039; Uses TensorFlow with explicit GPU memory growth enabled to coexist with PyTorch GPU usage.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Datajuicer_Data_juicer_RayVLLMEnginePipeline_Config]]&lt;br /&gt;
* [[required_by::Implementation:Datajuicer_Data_juicer_GenerateQAFromTextMapper_Process]]&lt;br /&gt;
* [[required_by::Implementation:Datajuicer_Data_juicer_Filter_Compute_Stats]]&lt;br /&gt;
* [[required_by::Implementation:Datajuicer_Data_juicer_Fuse_Operators]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Vibrantlabsai_Ragas_Python_3_9_Core_Environment&amp;diff=27812</id>
		<title>Environment:Vibrantlabsai Ragas Python 3 9 Core Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Vibrantlabsai_Ragas_Python_3_9_Core_Environment&amp;diff=27812"/>
		<updated>2026-02-16T18:46:18Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Vibrantlabsai_Ragas_Python_3_9_Core_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Vibrantlabsai_Ragas_Python_3_9_Core_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/vibrantlabsai/ragas Ragas]&lt;br /&gt;
* [https://github.com/vibrantlabsai/ragas/blob/main/pyproject.toml pyproject.toml]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::LLM_Evaluation]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-12 10:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.9+ environment with core dependencies for running the Ragas LLM evaluation framework, including OpenAI, LangChain, Pydantic, NumPy, and async utilities.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the base runtime context for the Ragas evaluation toolkit. It requires Python 3.9 or higher and includes core dependencies for LLM interaction (OpenAI, LangChain ecosystem), data handling (NumPy, datasets, Pydantic), tokenization (tiktoken), async execution (nest-asyncio), caching (diskcache), CLI (typer, rich), and graph analysis (networkx, scikit-network). This is the &#039;&#039;&#039;minimum&#039;&#039;&#039; environment needed to run any Ragas evaluation.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;all&#039;&#039;&#039; Ragas operations including metric evaluation, test data generation, and experiment tracking. Every Ragas workflow requires this base environment. Optional features like NLP metrics, Google Drive backend, or specific integrations require additional packages installed separately.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, Windows || Cross-platform Python support&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.9 || Configured via `requires-python` in pyproject.toml&lt;br /&gt;
|-&lt;br /&gt;
| Disk || ~500MB || For dependencies and cache directory&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* No system-level packages required for core functionality&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Core Dependencies (from pyproject.toml):&#039;&#039;&#039;&lt;br /&gt;
* `numpy` &amp;gt;= 1.21.0, &amp;lt; 3.0.0&lt;br /&gt;
* `datasets` &amp;gt;= 4.0.0&lt;br /&gt;
* `tiktoken` (any version)&lt;br /&gt;
* `pydantic` &amp;gt;= 2.0.0&lt;br /&gt;
* `nest-asyncio` (any version)&lt;br /&gt;
* `appdirs` (any version)&lt;br /&gt;
* `diskcache` &amp;gt;= 5.6.3&lt;br /&gt;
* `typer` (any version)&lt;br /&gt;
* `rich` (any version)&lt;br /&gt;
* `openai` &amp;gt;= 1.0.0&lt;br /&gt;
* `tqdm` (any version)&lt;br /&gt;
* `instructor` (any version)&lt;br /&gt;
* `pillow` &amp;gt;= 10.4.0&lt;br /&gt;
* `networkx` (any version)&lt;br /&gt;
* `scikit-network` (any version)&lt;br /&gt;
* `langchain` (any version)&lt;br /&gt;
* `langchain-core` (any version)&lt;br /&gt;
* `langchain-community` (any version)&lt;br /&gt;
* `langchain_openai` (any version)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables are used by the core library:&lt;br /&gt;
&lt;br /&gt;
* `OPENAI_API_KEY`: Required by the default LLM provider (OpenAI) for evaluation and generation.&lt;br /&gt;
* `RAGAS_DO_NOT_TRACK`: Set to `true` to opt out of anonymous usage analytics.&lt;br /&gt;
* `RAGAS_DEBUG`: Set to `true` to enable debug logging mode.&lt;br /&gt;
* `__RAGAS_DEBUG_TRACKING`: Developer-only flag for debugging analytics event payloads.&lt;br /&gt;
* `RAGAS_CACHE_HOME`: Custom cache directory path (default: `~/.cache/ragas`).&lt;br /&gt;
* `XDG_CACHE_HOME`: XDG standard cache directory (default: `~/.cache`).&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install Ragas with core dependencies&lt;br /&gt;
pip install ragas&lt;br /&gt;
&lt;br /&gt;
# Or install from source (editable)&lt;br /&gt;
pip install -e &amp;quot;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# With UV (recommended for development)&lt;br /&gt;
uv pip install -e &amp;quot;.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Python version requirement from `pyproject.toml:4`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
requires-python = &amp;quot;&amp;gt;=3.9&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cache directory resolution from `src/ragas/utils.py:29-35`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@lru_cache(maxsize=1)&lt;br /&gt;
def get_cache_dir() -&amp;gt; str:&lt;br /&gt;
    &amp;quot;get cache location&amp;quot;&lt;br /&gt;
    DEFAULT_XDG_CACHE_HOME = &amp;quot;~/.cache&amp;quot;&lt;br /&gt;
    xdg_cache = os.getenv(&amp;quot;XDG_CACHE_HOME&amp;quot;, DEFAULT_XDG_CACHE_HOME)&lt;br /&gt;
    default_ragas_cache = os.path.join(xdg_cache, &amp;quot;ragas&amp;quot;)&lt;br /&gt;
    return os.path.expanduser(os.getenv(&amp;quot;RAGAS_CACHE_HOME&amp;quot;, default_ragas_cache))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Debug mode detection from `src/ragas/utils.py:38-43`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@lru_cache(maxsize=1)&lt;br /&gt;
def get_debug_mode() -&amp;gt; bool:&lt;br /&gt;
    if os.environ.get(DEBUG_ENV_VAR, str(False)).lower() == &amp;quot;true&amp;quot;:&lt;br /&gt;
        return True&lt;br /&gt;
    else:&lt;br /&gt;
        return False&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analytics opt-out from `src/ragas/_analytics.py:46-49`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@lru_cache(maxsize=1)&lt;br /&gt;
def do_not_track() -&amp;gt; bool:&lt;br /&gt;
    return os.environ.get(RAGAS_DO_NOT_TRACK, str(False)).lower() == &amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: unknown version` || Package installed without version metadata (e.g., editable install without setuptools_scm) || Run `pip install -e &amp;quot;.&amp;quot;` from the repo root or install from PyPI&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: nest_asyncio` || Running in Jupyter without nest_asyncio || `pip install nest-asyncio`&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: diskcache` || diskcache not installed || `pip install diskcache&amp;gt;=5.6.3`&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Python 3.9:&#039;&#039;&#039; Minimum supported version. Some typing features use `typing_extensions` as fallback.&lt;br /&gt;
* &#039;&#039;&#039;Pyright:&#039;&#039;&#039; Type checking configured for Python 3.9 target with `basic` mode.&lt;br /&gt;
* &#039;&#039;&#039;Build System:&#039;&#039;&#039; Requires `setuptools&amp;gt;=64` and `setuptools_scm&amp;gt;=8` for building from source.&lt;br /&gt;
* &#039;&#039;&#039;UV Workspace:&#039;&#039;&#039; The project uses UV workspace configuration with two members: `ragas` (main) and `examples`.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Vibrantlabsai_Ragas_Llm_Factory]]&lt;br /&gt;
* [[required_by::Implementation:Vibrantlabsai_Ragas_EvaluationDataset_From_List]]&lt;br /&gt;
* [[required_by::Implementation:Vibrantlabsai_Ragas_LangChain_Document_Loader]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:AUTOMATIC1111_Stable_diffusion_webui_Python_And_PyTorch_Runtime&amp;diff=27811</id>
		<title>Environment:AUTOMATIC1111 Stable diffusion webui Python And PyTorch Runtime</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:AUTOMATIC1111_Stable_diffusion_webui_Python_And_PyTorch_Runtime&amp;diff=27811"/>
		<updated>2026-02-16T18:46:17Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/AUTOMATIC1111_Stable_diffusion_webui_Python_And_PyTorch_Runtime.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=AUTOMATIC1111_Stable_diffusion_webui_Python_And_PyTorch_Runtime}}&lt;br /&gt;
{{PageInfo|type=Environment|title=AUTOMATIC1111_Stable_diffusion_webui_Python_And_PyTorch_Runtime}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/AUTOMATIC1111/stable-diffusion-webui AUTOMATIC1111/stable-diffusion-webui]&lt;br /&gt;
* [https://pytorch.org/get-started/locally/ PyTorch Installation]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Deep_Learning]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-08 08:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.10 runtime with PyTorch 2.1.2, CUDA 12.1 toolkit, and Gradio 3.41.2 web framework for running Stable Diffusion inference and training.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the base Python and PyTorch runtime required by all WebUI workflows. It targets Python 3.10 (the only version supported on Windows; Linux/macOS support 3.7-3.11) with PyTorch 2.1.2 built against CUDA 12.1. The web interface is built on Gradio 3.41.2, which is pinned to an exact version due to tight coupling with the UI code. The environment also requires the Stability AI model repositories (stablediffusion, generative-models), k-diffusion, BLIP, CLIP, and OpenCLIP as git-cloned dependencies.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;all&#039;&#039;&#039; WebUI workflows: text-to-image generation, image-to-image generation, postprocessing/upscaling, checkpoint merging, textual inversion training, hypernetwork training, and LoRA network application. This is the mandatory base runtime environment.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (Ubuntu 20.04+), Windows 10+, macOS || WSL2 supported via conda environment&lt;br /&gt;
|-&lt;br /&gt;
| Python || 3.10 (Windows), 3.7-3.11 (Linux/macOS) || 3.10.6 is the tested reference version&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || CPU minimum; GPU recommended || See GPU_Compute_Backend environment for GPU details&lt;br /&gt;
|-&lt;br /&gt;
| Disk || ~10GB for base install || Additional space needed for model checkpoints (2-7GB each)&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 8GB minimum || 16GB+ recommended for model loading&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; (for cloning dependency repositories)&lt;br /&gt;
* &amp;lt;code&amp;gt;python3.10&amp;lt;/code&amp;gt; (or compatible version)&lt;br /&gt;
* &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; (Python package manager)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages (Pinned Versions) ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;torch&amp;lt;/code&amp;gt; == 2.1.2 (with CUDA 12.1 wheels by default)&lt;br /&gt;
* &amp;lt;code&amp;gt;torchvision&amp;lt;/code&amp;gt; == 0.16.2&lt;br /&gt;
* &amp;lt;code&amp;gt;gradio&amp;lt;/code&amp;gt; == 3.41.2&lt;br /&gt;
* &amp;lt;code&amp;gt;transformers&amp;lt;/code&amp;gt; == 4.30.2&lt;br /&gt;
* &amp;lt;code&amp;gt;accelerate&amp;lt;/code&amp;gt; == 0.21.0&lt;br /&gt;
* &amp;lt;code&amp;gt;safetensors&amp;lt;/code&amp;gt; == 0.4.2&lt;br /&gt;
* &amp;lt;code&amp;gt;pytorch_lightning&amp;lt;/code&amp;gt; == 1.9.4&lt;br /&gt;
* &amp;lt;code&amp;gt;numpy&amp;lt;/code&amp;gt; == 1.26.2&lt;br /&gt;
* &amp;lt;code&amp;gt;Pillow&amp;lt;/code&amp;gt; == 9.5.0&lt;br /&gt;
* &amp;lt;code&amp;gt;omegaconf&amp;lt;/code&amp;gt; == 2.2.3&lt;br /&gt;
* &amp;lt;code&amp;gt;einops&amp;lt;/code&amp;gt; == 0.4.1&lt;br /&gt;
* &amp;lt;code&amp;gt;kornia&amp;lt;/code&amp;gt; == 0.6.7&lt;br /&gt;
* &amp;lt;code&amp;gt;open-clip-torch&amp;lt;/code&amp;gt; == 2.20.0&lt;br /&gt;
* &amp;lt;code&amp;gt;spandrel&amp;lt;/code&amp;gt; == 0.3.4&lt;br /&gt;
* &amp;lt;code&amp;gt;facexlib&amp;lt;/code&amp;gt; == 0.3.0&lt;br /&gt;
* &amp;lt;code&amp;gt;lark&amp;lt;/code&amp;gt; == 1.1.2&lt;br /&gt;
* &amp;lt;code&amp;gt;fastapi&amp;lt;/code&amp;gt; == 0.94.0&lt;br /&gt;
* &amp;lt;code&amp;gt;protobuf&amp;lt;/code&amp;gt; == 3.20.0&lt;br /&gt;
&lt;br /&gt;
=== Git Repository Dependencies ===&lt;br /&gt;
&lt;br /&gt;
* Stable Diffusion (Stability-AI/stablediffusion) @ cf1d67a&lt;br /&gt;
* Stable Diffusion XL (Stability-AI/generative-models) @ 45c443b&lt;br /&gt;
* k-diffusion (crowsonkb/k-diffusion) @ ab527a9&lt;br /&gt;
* BLIP (salesforce/BLIP) @ 48211a1&lt;br /&gt;
* CLIP (openai/CLIP) @ d50d76d&lt;br /&gt;
* OpenCLIP (mlfoundations/open_clip) @ bb6e834&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials are required for basic operation. Optional environment variables:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HF_ENDPOINT&amp;lt;/code&amp;gt;: HuggingFace endpoint URL (default: https://huggingface.co)&lt;br /&gt;
* &amp;lt;code&amp;gt;GRADIO_ANALYTICS_ENABLED&amp;lt;/code&amp;gt;: Analytics toggle (default: &#039;False&#039;)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Default installation (CUDA 12.1)&lt;br /&gt;
pip install torch==2.1.2 torchvision==0.16.2 --extra-index-url https://download.pytorch.org/whl/cu121&lt;br /&gt;
pip install -r requirements_versions.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Python version validation from &amp;lt;code&amp;gt;modules/launch_utils.py:34-62&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def check_python_version():&lt;br /&gt;
    is_windows = platform.system() == &amp;quot;Windows&amp;quot;&lt;br /&gt;
    major = sys.version_info.major&lt;br /&gt;
    minor = sys.version_info.minor&lt;br /&gt;
    micro = sys.version_info.micro&lt;br /&gt;
&lt;br /&gt;
    if is_windows:&lt;br /&gt;
        supported_minors = [10]&lt;br /&gt;
    else:&lt;br /&gt;
        supported_minors = [7, 8, 9, 10, 11]&lt;br /&gt;
&lt;br /&gt;
    if not (major == 3 and minor in supported_minors):&lt;br /&gt;
        modules.errors.print_error_explanation(f&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
INCOMPATIBLE PYTHON VERSION&lt;br /&gt;
This program is tested with 3.10.6 Python, but you have {major}.{minor}.{micro}.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PyTorch and library version checks from &amp;lt;code&amp;gt;modules/errors.py:103-149&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
expected_torch_version = &amp;quot;2.1.2&amp;quot;&lt;br /&gt;
expected_xformers_version = &amp;quot;0.0.23.post1&amp;quot;&lt;br /&gt;
expected_gradio_version = &amp;quot;3.41.2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if version.parse(torch.__version__) &amp;lt; version.parse(expected_torch_version):&lt;br /&gt;
    print_error_explanation(f&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
You are running torch {torch.__version__}.&lt;br /&gt;
The program is tested to work with torch {expected_torch_version}.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CUDA test at startup from &amp;lt;code&amp;gt;modules/launch_utils.py:386-390&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if not args.skip_torch_cuda_test and not check_run_python(&amp;quot;import torch; assert torch.cuda.is_available()&amp;quot;):&lt;br /&gt;
    raise RuntimeError(&lt;br /&gt;
        &#039;Torch is not able to use GPU; &#039;&lt;br /&gt;
        &#039;add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check&#039;&lt;br /&gt;
    )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;INCOMPATIBLE PYTHON VERSION&amp;lt;/code&amp;gt; || Python version not in supported list || Install Python 3.10.6 from python.org&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;RuntimeError: Couldn&#039;t install torch&amp;lt;/code&amp;gt; || Wrong Python version or pip issue || Use Python 3.10 and ensure pip is up to date&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;Torch is not able to use GPU&amp;lt;/code&amp;gt; || CUDA not available or driver issue || Install NVIDIA drivers; or use &amp;lt;code&amp;gt;--skip-torch-cuda-test&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;You are running gradio X.Y.Z&amp;lt;/code&amp;gt; || Gradio version mismatch || Run via &amp;lt;code&amp;gt;launch.py&amp;lt;/code&amp;gt; (not &amp;lt;code&amp;gt;webui.py&amp;lt;/code&amp;gt;); check extensions&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;You are running torch X.Y.Z&amp;lt;/code&amp;gt; || Torch version too old || Use &amp;lt;code&amp;gt;--reinstall-torch&amp;lt;/code&amp;gt; flag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; Only Python 3.10 is supported. Use the binary release for easiest setup.&lt;br /&gt;
* &#039;&#039;&#039;Linux/macOS:&#039;&#039;&#039; Python 3.7 through 3.11 are supported, but 3.10.6 is the reference version.&lt;br /&gt;
* &#039;&#039;&#039;WSL2:&#039;&#039;&#039; A conda environment file (&amp;lt;code&amp;gt;environment-wsl2.yaml&amp;lt;/code&amp;gt;) is provided with Python 3.10 and cudatoolkit 11.8.&lt;br /&gt;
* &#039;&#039;&#039;Nightly PyTorch:&#039;&#039;&#039; Dev/git builds have their version number truncated automatically to prevent downstream parsing errors.&lt;br /&gt;
* &#039;&#039;&#039;Intel XPU (Windows):&#039;&#039;&#039; Requires special torch wheels from Nuullll/intel-extension-for-pytorch; only works with Python 3.10.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:AUTOMATIC1111_Stable_diffusion_webui_StableDiffusionProcessingTxt2Img]]&lt;br /&gt;
* [[required_by::Implementation:AUTOMATIC1111_Stable_diffusion_webui_Load_model]]&lt;br /&gt;
* [[required_by::Implementation:AUTOMATIC1111_Stable_diffusion_webui_KDiffusionSampler_sample]]&lt;br /&gt;
* [[required_by::Implementation:AUTOMATIC1111_Stable_diffusion_webui_Train_embedding]]&lt;br /&gt;
* [[required_by::Implementation:AUTOMATIC1111_Stable_diffusion_webui_Train_hypernetwork]]&lt;br /&gt;
* [[required_by::Implementation:AUTOMATIC1111_Stable_diffusion_webui_Load_networks]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:TobikoData_Sqlmesh_GitHub_CICD_Runner&amp;diff=27810</id>
		<title>Environment:TobikoData Sqlmesh GitHub CICD Runner</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:TobikoData_Sqlmesh_GitHub_CICD_Runner&amp;diff=27810"/>
		<updated>2026-02-16T18:46:16Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/TobikoData_Sqlmesh_GitHub_CICD_Runner.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=TobikoData_Sqlmesh_GitHub_CICD_Runner}}&lt;br /&gt;
{{PageInfo|type=Environment|title=TobikoData_Sqlmesh_GitHub_CICD_Runner}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/TobikoData/sqlmesh TobikoData/sqlmesh]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::CI/CD]], [[domain::GitHub Actions]], [[domain::DevOps]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-07 21:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GitHub Actions CI/CD runner environment for automating SQLMesh data transformation workflows through the integrated bot.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The GitHub CI/CD runner environment enables automated SQLMesh workflows within GitHub Actions using the sqlmesh_cicd CLI tool. It orchestrates test execution, PR environment management, production plan generation, and deployment operations through GitHubCICDController. The bot leverages PyGithub for API interactions, creates GitHub Check Runs for detailed reporting, and manages PR comments for user feedback. Configuration is handled through YAML files or environment variables with Pydantic validation.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
This environment is required when implementing automated SQLMesh workflows in GitHub Actions including running unit tests on PRs, creating isolated PR environments, generating production deployment plans, and executing production deployments. The bot auto-detects GitHub Actions context and integrates with SQLMesh&#039;s plan/apply workflow.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Runtime || GitHub Actions runner || Ubuntu, macOS, or Windows runner&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.9 || SQLMesh Python runtime required&lt;br /&gt;
|-&lt;br /&gt;
| Network || GitHub API access || api.github.com and graphql.github.com&lt;br /&gt;
|-&lt;br /&gt;
| Authentication || GitHub token with repo permissions || GITHUB_TOKEN or PAT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* Git (for repository operations)&lt;br /&gt;
* All SQLMesh Python runtime dependencies&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PyGithub&#039;&#039;&#039;&amp;gt;=2.6.0 - GitHub API client library&lt;br /&gt;
* All core SQLMesh dependencies (sqlglot, duckdb, pydantic, etc.)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
GitHub Actions automatically provides:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;GITHUB_TOKEN&#039;&#039;&#039; - Automatic token with repository permissions&lt;br /&gt;
* &#039;&#039;&#039;GITHUB_EVENT_PATH&#039;&#039;&#039; - Path to event payload JSON&lt;br /&gt;
* &#039;&#039;&#039;GITHUB_API_URL&#039;&#039;&#039; - GitHub API base URL (default: https://api.github.com)&lt;br /&gt;
* &#039;&#039;&#039;GITHUB_GRAPHQL_URL&#039;&#039;&#039; - GitHub GraphQL endpoint&lt;br /&gt;
* &#039;&#039;&#039;GITHUB_OUTPUT&#039;&#039;&#039; - Path for setting action outputs&lt;br /&gt;
* &#039;&#039;&#039;GITHUB_ACTIONS&#039;&#039;&#039; - Set to &amp;quot;true&amp;quot; when running in GitHub Actions&lt;br /&gt;
&lt;br /&gt;
Bot configuration (via YAML or environment variables):&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SQLMESH_GITHUB_BOT_TOKEN&#039;&#039;&#039; - Custom GitHub token (if not using GITHUB_TOKEN)&lt;br /&gt;
* &#039;&#039;&#039;SQLMESH_GITHUB_BOT_CONFIG&#039;&#039;&#039; - Path to bot configuration YAML&lt;br /&gt;
* &#039;&#039;&#039;SQLMESH_CICD_COMMAND&#039;&#039;&#039; - Command to execute (test, update-pr-environment, gen-prod-plan, deploy-production)&lt;br /&gt;
&lt;br /&gt;
Additional configuration variables (see config.py):&lt;br /&gt;
&lt;br /&gt;
* Approval workflow settings&lt;br /&gt;
* Required approvers list&lt;br /&gt;
* Deployment triggers&lt;br /&gt;
* Test execution parameters&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install SQLMesh with GitHub CI/CD support&lt;br /&gt;
pip install &amp;quot;sqlmesh[github]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Create GitHub Actions workflow&lt;br /&gt;
cat &amp;gt; .github/workflows/sqlmesh.yml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
name: SQLMesh CI/CD&lt;br /&gt;
&lt;br /&gt;
on:&lt;br /&gt;
  pull_request:&lt;br /&gt;
    types: [opened, synchronize, reopened]&lt;br /&gt;
  push:&lt;br /&gt;
    branches: [main]&lt;br /&gt;
&lt;br /&gt;
jobs:&lt;br /&gt;
  sqlmesh-bot:&lt;br /&gt;
    runs-on: ubuntu-latest&lt;br /&gt;
    steps:&lt;br /&gt;
      - uses: actions/checkout@v4&lt;br /&gt;
&lt;br /&gt;
      - name: Set up Python&lt;br /&gt;
        uses: actions/setup-python@v5&lt;br /&gt;
        with:&lt;br /&gt;
          python-version: &#039;3.11&#039;&lt;br /&gt;
&lt;br /&gt;
      - name: Install SQLMesh&lt;br /&gt;
        run: pip install &amp;quot;sqlmesh[github]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      - name: Run SQLMesh CI/CD Bot&lt;br /&gt;
        run: sqlmesh_cicd&lt;br /&gt;
        env:&lt;br /&gt;
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# Create bot configuration file&lt;br /&gt;
cat &amp;gt; .sqlmesh_cicd.yml &amp;lt;&amp;lt; &#039;EOF&#039;&lt;br /&gt;
bot:&lt;br /&gt;
  auto_deploy_on_approval: true&lt;br /&gt;
  required_approvers:&lt;br /&gt;
    - user1&lt;br /&gt;
    - user2&lt;br /&gt;
  run_tests_on_pr: true&lt;br /&gt;
  create_pr_environments: true&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
# File: pyproject.toml:113&lt;br /&gt;
github = [&amp;quot;PyGithub&amp;gt;=2.6.0&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
# File: pyproject.toml:151&lt;br /&gt;
[project.scripts]&lt;br /&gt;
sqlmesh_cicd = &amp;quot;sqlmesh.cicd.bot:cli&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# File: sqlmesh/integrations/github/cicd/controller.py:230&lt;br /&gt;
def _load_event_payload(self) -&amp;gt; t.Dict[str, t.Any]:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Load GitHub event payload from GITHUB_EVENT_PATH.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    event_path = os.environ.get(&amp;quot;GITHUB_EVENT_PATH&amp;quot;)&lt;br /&gt;
    if not event_path:&lt;br /&gt;
        raise ValueError(&amp;quot;GITHUB_EVENT_PATH not set&amp;quot;)&lt;br /&gt;
    with open(event_path) as f:&lt;br /&gt;
        return json.load(f)&lt;br /&gt;
&lt;br /&gt;
# File: sqlmesh/integrations/github/cicd/controller.py:317&lt;br /&gt;
@property&lt;br /&gt;
def github_api_url(self) -&amp;gt; str:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Get GitHub API URL from environment.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return os.environ.get(&amp;quot;GITHUB_API_URL&amp;quot;, &amp;quot;https://api.github.com&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# File: sqlmesh/integrations/github/cicd/controller.py:495&lt;br /&gt;
def _set_github_output(self, name: str, value: str) -&amp;gt; None:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Set GitHub Actions output variable.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    output_file = os.environ.get(&amp;quot;GITHUB_OUTPUT&amp;quot;)&lt;br /&gt;
    if output_file:&lt;br /&gt;
        with open(output_file, &amp;quot;a&amp;quot;) as f:&lt;br /&gt;
            f.write(f&amp;quot;{name}={value}\n&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# File: sqlmesh/integrations/github/cicd/controller.py:1193&lt;br /&gt;
@property&lt;br /&gt;
def is_github_actions(self) -&amp;gt; bool:&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Check if running in GitHub Actions environment.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return os.environ.get(&amp;quot;GITHUB_ACTIONS&amp;quot;, &amp;quot;&amp;quot;).lower() == &amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
| GITHUB_EVENT_PATH not set || Not running in GitHub Actions || Ensure workflow runs in GitHub Actions context&lt;br /&gt;
|-&lt;br /&gt;
| 401 Unauthorized || Invalid or missing GitHub token || Verify GITHUB_TOKEN has correct permissions&lt;br /&gt;
|-&lt;br /&gt;
| 403 Resource not accessible by integration || Insufficient token permissions || Grant token read/write access to contents, pull requests, checks&lt;br /&gt;
|-&lt;br /&gt;
| PyGithub not found || Missing dependency || Install with &#039;&#039;&#039;pip install &amp;quot;sqlmesh[github]&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Configuration file not found || Missing .sqlmesh_cicd.yml || Create bot configuration file or use environment variables&lt;br /&gt;
|-&lt;br /&gt;
| Check run creation failed || Token lacks checks write permission || Grant &#039;&#039;&#039;checks: write&#039;&#039;&#039; permission in workflow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* Requires PyGithub &amp;gt;= 2.6.0 for latest GitHub API features&lt;br /&gt;
* Auto-detects GitHub Actions context via GITHUB_ACTIONS environment variable&lt;br /&gt;
* Works with both GitHub-hosted and self-hosted runners&lt;br /&gt;
* Supports GitHub Enterprise Server (configure GITHUB_API_URL)&lt;br /&gt;
* GraphQL API used for efficient data fetching (GITHUB_GRAPHQL_URL)&lt;br /&gt;
* Check Runs require repository checks write permission&lt;br /&gt;
* PR comments require pull requests write permission&lt;br /&gt;
* Bot configuration supports both YAML files and environment variables&lt;br /&gt;
* Pydantic models ensure type-safe configuration validation&lt;br /&gt;
* Integrates with SQLMesh&#039;s virtual environments for PR isolation&lt;br /&gt;
* Deployment workflows support approval requirements before production&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_GithubCICDBotConfig_Init]]&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_Bot_CLI_Entry]]&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_CICD_Run_Tests]]&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_CICD_Update_Pr_Environment]]&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_CICD_Gen_Prod_Plan]]&lt;br /&gt;
* [[required_by::Implementation:TobikoData_Sqlmesh_CICD_Deploy_Production]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Microsoft_Autogen_Studio_Server_Environment&amp;diff=27809</id>
		<title>Environment:Microsoft Autogen Studio Server Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Microsoft_Autogen_Studio_Server_Environment&amp;diff=27809"/>
		<updated>2026-02-16T18:46:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Microsoft_Autogen_Studio_Server_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Microsoft_Autogen_Studio_Server_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/microsoft/autogen Microsoft AutoGen]&lt;br /&gt;
* [https://github.com/microsoft/autogen/blob/main/python/packages/autogen-studio/README.md AutoGen Studio README]&lt;br /&gt;
* [https://github.com/microsoft/autogen/blob/main/python/packages/autogen-studio/pyproject.toml AutoGen Studio pyproject.toml]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Web_Application]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-11 18:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.9+ environment with FastAPI, SQLModel, Alembic, and WebSockets for running the AutoGen Studio web application and API server.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
AutoGen Studio is a web-based interface for building, testing, and deploying multi-agent teams. It requires a broader set of dependencies than the core AutoGen packages, including a web framework (FastAPI with Uvicorn), a database ORM (SQLModel with Alembic for migrations), authentication support (JWT, OAuth), and MCP protocol support. The Studio can run in full mode (web UI + database) or lite mode (serve a single team file as an API endpoint).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;AutoGen Studio Team Deployment&#039;&#039;&#039; workflows — launching the Studio web UI, managing team configurations in the database, testing teams in the playground, and deploying teams as API endpoints. This is the prerequisite for all Studio-related Implementation pages.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, or Windows || Linux recommended for production (Docker available)&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.9 || Lower requirement than core packages&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 1GB+ || For database, static frontend assets, and cache&lt;br /&gt;
|-&lt;br /&gt;
| Network || Port 8081 (default) || Configurable via AUTOGENSTUDIO_PORT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `python` &amp;gt;= 3.9&lt;br /&gt;
* `git-lfs` (required before cloning for frontend assets)&lt;br /&gt;
* `node.js` (for frontend development only)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `pydantic` (any v2)&lt;br /&gt;
* `pydantic-settings`&lt;br /&gt;
* `fastapi[standard]`&lt;br /&gt;
* `typer`&lt;br /&gt;
* `aiofiles`&lt;br /&gt;
* `python-dotenv`&lt;br /&gt;
* `websockets`&lt;br /&gt;
* `sqlmodel`&lt;br /&gt;
* `psycopg` (PostgreSQL driver)&lt;br /&gt;
* `alembic` (database migrations)&lt;br /&gt;
* `loguru` (structured logging)&lt;br /&gt;
* `pyyaml`&lt;br /&gt;
* `html2text`&lt;br /&gt;
* `anthropic`&lt;br /&gt;
* `mcp` &amp;gt;= 1.11.0&lt;br /&gt;
* `autogen-core` &amp;gt;= 0.4.9.2, &amp;lt; 0.7&lt;br /&gt;
* `autogen-agentchat` &amp;gt;= 0.4.9.2, &amp;lt; 0.7&lt;br /&gt;
* `autogen-ext[magentic-one, openai, azure, mcp]` &amp;gt;= 0.4.2, &amp;lt; 0.7&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Server Configuration:&#039;&#039;&#039;&lt;br /&gt;
* `AUTOGENSTUDIO_HOST`: Host address (default: `127.0.0.1`)&lt;br /&gt;
* `AUTOGENSTUDIO_PORT`: Port number (default: `8081`)&lt;br /&gt;
* `AUTOGENSTUDIO_APPDIR`: Application data directory (default: `~/.autogenstudio`)&lt;br /&gt;
* `AUTOGENSTUDIO_DATABASE_URI`: Database connection string (default: SQLite in appdir)&lt;br /&gt;
* `AUTOGENSTUDIO_API_DOCS`: Enable API docs (default: `False`)&lt;br /&gt;
* `AUTOGENSTUDIO_UPGRADE_DATABASE`: Run database migrations (default: `False`)&lt;br /&gt;
* `AUTOGENSTUDIO_LITE_MODE`: Enable lite mode for single-team serving&lt;br /&gt;
* `AUTOGENSTUDIO_TEAM_FILE`: Path to team JSON file (for serve mode)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authentication:&#039;&#039;&#039;&lt;br /&gt;
* `AUTOGENSTUDIO_AUTH_CONFIG`: Path to authentication YAML config&lt;br /&gt;
* `AUTOGENSTUDIO_AUTH_DISABLED`: Disable authentication entirely&lt;br /&gt;
* `AUTOGENSTUDIO_AUTH_TYPE`: Authentication type (`github`, etc.)&lt;br /&gt;
* `AUTOGENSTUDIO_JWT_SECRET`: JWT signing secret&lt;br /&gt;
* `AUTOGENSTUDIO_TOKEN_EXPIRY`: Token expiration in minutes (default: `60`)&lt;br /&gt;
* `AUTOGENSTUDIO_GITHUB_CLIENT_ID`: GitHub OAuth app client ID&lt;br /&gt;
* `AUTOGENSTUDIO_GITHUB_CLIENT_SECRET`: GitHub OAuth app client secret&lt;br /&gt;
* `AUTOGENSTUDIO_GITHUB_CALLBACK_URL`: GitHub OAuth callback URL&lt;br /&gt;
* `AUTOGENSTUDIO_GITHUB_SCOPES`: GitHub OAuth scopes (default: `user:email`)&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install git-lfs first (required for frontend assets)&lt;br /&gt;
apt-get install git-lfs  # Debian/Ubuntu&lt;br /&gt;
# brew install git-lfs   # macOS&lt;br /&gt;
&lt;br /&gt;
# Install AutoGen Studio&lt;br /&gt;
pip install autogenstudio&lt;br /&gt;
&lt;br /&gt;
# Launch the web UI&lt;br /&gt;
autogenstudio ui --port 8081&lt;br /&gt;
&lt;br /&gt;
# Or serve a single team as API endpoint&lt;br /&gt;
autogenstudio serve --team ./my_team.json --port 8084&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Environment variable configuration from `autogenstudio/cli.py:52-68`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
env_vars = {&lt;br /&gt;
    &amp;quot;AUTOGENSTUDIO_HOST&amp;quot;: host,&lt;br /&gt;
    &amp;quot;AUTOGENSTUDIO_PORT&amp;quot;: port,&lt;br /&gt;
    &amp;quot;AUTOGENSTUDIO_API_DOCS&amp;quot;: str(docs),&lt;br /&gt;
}&lt;br /&gt;
if appdir:&lt;br /&gt;
    env_vars[&amp;quot;AUTOGENSTUDIO_APPDIR&amp;quot;] = appdir&lt;br /&gt;
if database_uri:&lt;br /&gt;
    env_vars[&amp;quot;AUTOGENSTUDIO_DATABASE_URI&amp;quot;] = database_uri&lt;br /&gt;
if auth_config:&lt;br /&gt;
    if not os.path.exists(auth_config):&lt;br /&gt;
        typer.echo(f&amp;quot;Error: Auth config file not found: {auth_config}&amp;quot;, err=True)&lt;br /&gt;
        raise typer.Exit(1)&lt;br /&gt;
    env_vars[&amp;quot;AUTOGENSTUDIO_AUTH_CONFIG&amp;quot;] = auth_config&lt;br /&gt;
if upgrade_database:&lt;br /&gt;
    env_vars[&amp;quot;AUTOGENSTUDIO_UPGRADE_DATABASE&amp;quot;] = &amp;quot;1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Docker production configuration from `autogen-studio/Dockerfile`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dockerfile&amp;quot;&amp;gt;&lt;br /&gt;
FROM python:3.10-slim&lt;br /&gt;
ENV HOME=/home/user&lt;br /&gt;
ENV PATH=/home/user/.local/bin:$PATH&lt;br /&gt;
ENV AUTOGENSTUDIO_APPDIR=/home/user/app&lt;br /&gt;
# Non-root user, gunicorn with uvicorn workers&lt;br /&gt;
# Worker timeout: 12600 seconds, Port: 8081&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `Error: Auth config file not found` || Invalid path to auth YAML || Check `--auth-config` path exists&lt;br /&gt;
|-&lt;br /&gt;
|| `Team file not found` || Invalid team JSON path in serve mode || Verify `--team` file path&lt;br /&gt;
|-&lt;br /&gt;
|| Missing frontend assets || git-lfs not installed before clone || `git lfs install &amp;amp;&amp;amp; git lfs fetch --all &amp;amp;&amp;amp; git lfs checkout`&lt;br /&gt;
|-&lt;br /&gt;
|| Database migration errors || Schema out of date || Run with `--upgrade-database` flag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Database backends:&#039;&#039;&#039; Supports SQLite (default), PostgreSQL, MySQL, Oracle, SQL Server via SQLModel/SQLAlchemy.&lt;br /&gt;
* &#039;&#039;&#039;Docker:&#039;&#039;&#039; Official Dockerfile uses `python:3.10-slim` with gunicorn + uvicorn workers.&lt;br /&gt;
* &#039;&#039;&#039;Development:&#039;&#039;&#039; Use `--reload` flag for auto-reload on code changes (excludes alembic directories).&lt;br /&gt;
* &#039;&#039;&#039;Production warning:&#039;&#039;&#039; AutoGen Studio is under active development and not recommended for production use. Expect breaking changes.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Microsoft_Autogen_Studio_CLI]]&lt;br /&gt;
* [[required_by::Implementation:Microsoft_Autogen_GalleryBuilder_Build]]&lt;br /&gt;
* [[required_by::Implementation:Microsoft_Autogen_DatabaseManager_Operations]]&lt;br /&gt;
* [[required_by::Implementation:Microsoft_Autogen_WebSocketManager_Stream]]&lt;br /&gt;
* [[required_by::Implementation:Microsoft_Autogen_TeamManager_LiteStudio]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Intel_Ipex_llm_RAG_LlamaIndex_Environment&amp;diff=27808</id>
		<title>Environment:Intel Ipex llm RAG LlamaIndex Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Intel_Ipex_llm_RAG_LlamaIndex_Environment&amp;diff=27808"/>
		<updated>2026-02-16T18:46:14Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Intel_Ipex_llm_RAG_LlamaIndex_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Intel_Ipex_llm_RAG_LlamaIndex_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Intel_Ipex_llm_RAG_LlamaIndex_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/intel/ipex-llm IPEX-LLM]&lt;br /&gt;
* [https://docs.llamaindex.ai/ LlamaIndex]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::RAG]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 04:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Intel XPU environment with LlamaIndex, IPEX-LLM, PostgreSQL vector store, and sentence-transformers for Retrieval-Augmented Generation on Intel GPUs.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides an Intel XPU-accelerated context for RAG (Retrieval-Augmented Generation) pipelines using LlamaIndex. It integrates IPEX-LLM as the inference backend for the LLM component, sentence-transformers for embedding generation, and PostgreSQL (via psycopg2) as the vector store backend. The environment enables building end-to-end RAG workflows where documents are chunked, embedded, stored in a PostgreSQL-based vector index, and retrieved to augment LLM generation with relevant context.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for any &#039;&#039;&#039;LlamaIndex RAG&#039;&#039;&#039; workflow that requires Intel XPU acceleration. It is the mandatory prerequisite for running LlamaIndex-based document indexing, vector similarity search, and retrieval-augmented generation with IPEX-LLM on Intel GPUs.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Ubuntu 22.04 LTS || Intel OneAPI base toolkit required&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || Intel GPU (Arc/Flex/Max) || XPU device for LLM inference and embedding generation&lt;br /&gt;
|-&lt;br /&gt;
| GPU Driver || Intel GPU drivers || Level Zero runtime required&lt;br /&gt;
|-&lt;br /&gt;
| Database || PostgreSQL || Required for vector store backend; pgvector extension recommended&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* Intel OneAPI Base Toolkit&lt;br /&gt;
* `intel-opencl-icd`&lt;br /&gt;
* `intel-level-zero-gpu`&lt;br /&gt;
* PostgreSQL server (with pgvector extension)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `ipex-llm[xpu]` (pre-release)&lt;br /&gt;
* `torch` (XPU variant)&lt;br /&gt;
* `intel_extension_for_pytorch` (XPU variant)&lt;br /&gt;
* `llama-index`&lt;br /&gt;
* `llama-index-core`&lt;br /&gt;
* `llama-index-readers-file`&lt;br /&gt;
* `psycopg2` (or `psycopg2-binary` for PostgreSQL connectivity)&lt;br /&gt;
* `sentence-transformers`&lt;br /&gt;
* `transformers`&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following may be required depending on your PostgreSQL and model configuration:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PostgreSQL Connection:&#039;&#039;&#039; Database host, port, username, password, and database name for the vector store backend.&lt;br /&gt;
* &#039;&#039;&#039;HuggingFace Model Access:&#039;&#039;&#039; If using gated models (e.g., Llama), a `HF_TOKEN` environment variable may be needed.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Source Intel OneAPI environment&lt;br /&gt;
source /opt/intel/oneapi/setvars.sh&lt;br /&gt;
&lt;br /&gt;
# Install IPEX-LLM with XPU support&lt;br /&gt;
pip install --pre --upgrade ipex-llm[xpu] --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/&lt;br /&gt;
&lt;br /&gt;
# Install LlamaIndex RAG dependencies&lt;br /&gt;
pip install llama-index llama-index-core llama-index-readers-file psycopg2-binary sentence-transformers transformers&lt;br /&gt;
&lt;br /&gt;
# Set runtime environment&lt;br /&gt;
export SYCL_CACHE_PERSISTENT=1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ModuleNotFoundError: No module named &#039;llama_index&#039;` || LlamaIndex not installed || `pip install llama-index`&lt;br /&gt;
|-&lt;br /&gt;
|| `psycopg2.OperationalError: could not connect to server` || PostgreSQL not running or misconfigured || Start PostgreSQL and verify connection credentials&lt;br /&gt;
|-&lt;br /&gt;
|| `RuntimeError: No XPU device found` || Intel GPU drivers not installed || Install Intel GPU drivers and Level Zero runtime&lt;br /&gt;
|-&lt;br /&gt;
|| `sentence_transformers not found` || Sentence-transformers not installed || `pip install sentence-transformers`&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Intel XPU Only:&#039;&#039;&#039; Both the LLM inference and embedding generation run on Intel XPU. The environment is not compatible with CUDA devices.&lt;br /&gt;
* &#039;&#039;&#039;PostgreSQL Vector Store:&#039;&#039;&#039; The pgvector extension for PostgreSQL provides efficient vector similarity search. Ensure PostgreSQL is configured with the pgvector extension.&lt;br /&gt;
* &#039;&#039;&#039;LlamaIndex Version:&#039;&#039;&#039; LlamaIndex v0.10+ uses a modular package structure (`llama-index-core`, `llama-index-readers-file`, etc.).&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Intel_Ipex_llm_LlamaIndex_RAG]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Hpcaitech_ColossalAI_ColossalQA_RAG_Environment&amp;diff=27807</id>
		<title>Environment:Hpcaitech ColossalAI ColossalQA RAG Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Hpcaitech_ColossalAI_ColossalQA_RAG_Environment&amp;diff=27807"/>
		<updated>2026-02-16T18:46:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Hpcaitech_ColossalAI_ColossalQA_RAG_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Hpcaitech_ColossalAI_ColossalQA_RAG_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Hpcaitech_ColossalAI_ColossalQA_RAG_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/hpcaitech/ColossalAI ColossalAI]&lt;br /&gt;
* [[source::File|requirements.txt|applications/ColossalQA/requirements.txt]]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::RAG]], [[domain::NLP]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 12:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python environment for ColossalQA&#039;s Retrieval-Augmented Generation pipeline, providing LangChain orchestration, ChromaDB vector storage, sentence-transformers embeddings, and Gradio web UI with pinned dependency versions separate from the main ColossalAI requirements.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment defines the dependency stack for the ColossalQA application, a RAG-based question-answering system built on top of ColossalAI. ColossalQA uses LangChain for document loading and chain orchestration, ChromaDB as the vector store backend, sentence-transformers for embedding generation, and Gradio for an interactive web interface. Notably, the PyTorch version requirement (`torch&amp;lt;2.0.0, &amp;gt;=1.12.1`) differs from the main ColossalAI project, reflecting the application&#039;s compatibility constraints. The system supports both English and Chinese RAG conversations with dedicated CJK text splitting.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when running &#039;&#039;&#039;ColossalQA&#039;&#039;&#039; RAG pipelines, including document ingestion, vector retrieval, and conversational question answering. Required for the document loader, custom retriever, Chinese text splitter, and the Gradio-based RAG ChatBot web demo.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.8 || Must support all pinned dependency versions&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || NVIDIA GPU recommended || Required for torch and transformer model inference&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 8GB+ || ChromaDB and embedding models require significant memory&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 5GB+ || For model weights, vector indexes, and document storage&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Core ML Packages ===&lt;br /&gt;
&lt;br /&gt;
* `transformers` &amp;gt;= 4.20.1&lt;br /&gt;
* `torch` &amp;gt;= 1.12.1, &amp;lt; 2.0.0 (&#039;&#039;&#039;NOTE:&#039;&#039;&#039; differs from main ColossalAI torch requirement)&lt;br /&gt;
* `sentence-transformers` == 2.2.2&lt;br /&gt;
* `sentencepiece` == 0.1.99&lt;br /&gt;
&lt;br /&gt;
=== LangChain Orchestration ===&lt;br /&gt;
&lt;br /&gt;
* `langchain` == 0.0.330&lt;br /&gt;
* `langchain-experimental` == 0.0.37&lt;br /&gt;
&lt;br /&gt;
=== Vector Storage ===&lt;br /&gt;
&lt;br /&gt;
* `chromadb` == 0.4.9&lt;br /&gt;
&lt;br /&gt;
=== LLM API ===&lt;br /&gt;
&lt;br /&gt;
* `openai` == 0.28.0&lt;br /&gt;
* `tiktoken` == 0.5.1&lt;br /&gt;
&lt;br /&gt;
=== Document Processing ===&lt;br /&gt;
&lt;br /&gt;
* `unstructured` == 0.10.14&lt;br /&gt;
* `pypdf` == 3.16.0&lt;br /&gt;
* `jq` == 1.6.0&lt;br /&gt;
&lt;br /&gt;
=== Web UI and Networking ===&lt;br /&gt;
&lt;br /&gt;
* `gradio` == 3.44.4&lt;br /&gt;
* `Requests` == 2.31.0&lt;br /&gt;
&lt;br /&gt;
=== Model Hub ===&lt;br /&gt;
&lt;br /&gt;
* `modelscope` == 1.9.0&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
* `OPENAI_API_KEY`: Required when using OpenAI models for generation or embeddings via the `openai` package.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install from the ColossalQA requirements file&lt;br /&gt;
cd applications/ColossalQA&lt;br /&gt;
pip install -r requirements.txt&lt;br /&gt;
&lt;br /&gt;
# Or install dependencies manually&lt;br /&gt;
pip install &amp;quot;transformers&amp;gt;=4.20.1&amp;quot; &amp;quot;torch&amp;gt;=1.12.1,&amp;lt;2.0.0&amp;quot; \&lt;br /&gt;
    &amp;quot;langchain==0.0.330&amp;quot; &amp;quot;langchain-experimental==0.0.37&amp;quot; \&lt;br /&gt;
    &amp;quot;sentence-transformers==2.2.2&amp;quot; &amp;quot;chromadb==0.4.9&amp;quot; \&lt;br /&gt;
    &amp;quot;openai==0.28.0&amp;quot; &amp;quot;tiktoken==0.5.1&amp;quot; \&lt;br /&gt;
    &amp;quot;unstructured==0.10.14&amp;quot; &amp;quot;pypdf==3.16.0&amp;quot; &amp;quot;jq==1.6.0&amp;quot; \&lt;br /&gt;
    &amp;quot;gradio==3.44.4&amp;quot; &amp;quot;Requests==2.31.0&amp;quot; \&lt;br /&gt;
    &amp;quot;sentencepiece==0.1.99&amp;quot; &amp;quot;modelscope==1.9.0&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
ChromaDB vector storage usage from `colossalqa/retriever.py`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import chromadb&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LangChain document loader integration from `colossalqa/data_loader/document_loader.py`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Uses langchain document loaders for various file formats&lt;br /&gt;
from langchain.document_loaders import ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CJK text splitting from `colossalqa/text_splitter/chinese_text_splitter.py`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Custom text splitter for Chinese/CJK text segmentation&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chinese RAG conversation pipeline from `colossalqa/retrieval_conversation_zh.py`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Chinese-language retrieval-augmented conversation using LangChain chains&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gradio web UI from `examples/webui_demo/RAG_ChatBot.py`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import gradio as gr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requirements file at `applications/ColossalQA/requirements.txt`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
transformers&amp;gt;=4.20.1&lt;br /&gt;
torch&amp;lt;2.0.0, &amp;gt;=1.12.1&lt;br /&gt;
langchain==0.0.330&lt;br /&gt;
langchain-experimental==0.0.37&lt;br /&gt;
sentence-transformers==2.2.2&lt;br /&gt;
chromadb==0.4.9&lt;br /&gt;
openai==0.28.0&lt;br /&gt;
tiktoken==0.5.1&lt;br /&gt;
unstructured==0.10.14&lt;br /&gt;
pypdf==3.16.0&lt;br /&gt;
jq==1.6.0&lt;br /&gt;
gradio==3.44.4&lt;br /&gt;
Requests==2.31.0&lt;br /&gt;
sentencepiece==0.1.99&lt;br /&gt;
modelscope==1.9.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;torch&amp;gt;=2.0.0 conflicts with torch&amp;lt;2.0.0&amp;lt;/code&amp;gt; || Main ColossalAI installed torch 2.x which conflicts with ColossalQA || Create a separate virtual environment for ColossalQA with &amp;lt;code&amp;gt;torch&amp;lt;2.0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;ModuleNotFoundError: No module named &#039;chromadb&#039;&amp;lt;/code&amp;gt; || ChromaDB not installed || &amp;lt;code&amp;gt;pip install chromadb==0.4.9&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;openai.error.AuthenticationError&amp;lt;/code&amp;gt; || Missing or invalid OpenAI API key || Set &amp;lt;code&amp;gt;OPENAI_API_KEY&amp;lt;/code&amp;gt; environment variable&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;ImportError: langchain&amp;lt;/code&amp;gt; version mismatch || Wrong LangChain version installed || &amp;lt;code&amp;gt;pip install langchain==0.0.330 langchain-experimental==0.0.37&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;Cannot import sentencepiece&amp;lt;/code&amp;gt; || sentencepiece not installed for tokenizer || &amp;lt;code&amp;gt;pip install sentencepiece==0.1.99&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PyTorch Version:&#039;&#039;&#039; ColossalQA requires `torch&amp;lt;2.0.0`, which conflicts with the main ColossalAI project. Use a dedicated virtual environment to avoid version conflicts.&lt;br /&gt;
* &#039;&#039;&#039;LangChain Pinning:&#039;&#039;&#039; Both `langchain` and `langchain-experimental` are pinned to specific versions (0.0.330 and 0.0.37 respectively). LangChain&#039;s API changes frequently between releases, so upgrading requires careful testing.&lt;br /&gt;
* &#039;&#039;&#039;OpenAI SDK:&#039;&#039;&#039; Uses the legacy `openai==0.28.0` API (pre-1.0). This version uses `openai.ChatCompletion.create()` rather than the newer client-based API.&lt;br /&gt;
* &#039;&#039;&#039;Chinese Language Support:&#039;&#039;&#039; The custom `chinese_text_splitter` and `retrieval_conversation_zh` modules provide CJK-specific text processing. The `sentencepiece` package is required for Chinese tokenization.&lt;br /&gt;
* &#039;&#039;&#039;Gradio Version:&#039;&#039;&#039; Pinned to `gradio==3.44.4` (Gradio 3.x). Not compatible with Gradio 4.x which introduced breaking API changes.&lt;br /&gt;
* &#039;&#039;&#039;ModelScope:&#039;&#039;&#039; The `modelscope` package provides access to Chinese model hubs as an alternative to Hugging Face for users in China.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_DocumentLoader]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_ChineseTextSplitter]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_CustomRetriever]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_RetrievalConversation]]&lt;br /&gt;
* [[required_by::Implementation:Hpcaitech_ColossalAI_RAG_ChatBot]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:LLMBook_zh_LLMBook_zh_github_io_PyTorch_CUDA_GPU_Environment&amp;diff=27806</id>
		<title>Environment:LLMBook zh LLMBook zh github io PyTorch CUDA GPU Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:LLMBook_zh_LLMBook_zh_github_io_PyTorch_CUDA_GPU_Environment&amp;diff=27806"/>
		<updated>2026-02-16T18:46:11Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/LLMBook_zh_LLMBook_zh_github_io_PyTorch_CUDA_GPU_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=LLMBook_zh_LLMBook_zh_github_io_PyTorch_CUDA_GPU_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=LLMBook_zh_LLMBook_zh_github_io_PyTorch_CUDA_GPU_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/LLMBook-zh/LLMBook-zh.github.io LLMBook-zh]&lt;br /&gt;
* [https://pytorch.org/docs/stable/ PyTorch]&lt;br /&gt;
* [https://developer.nvidia.com/cuda-toolkit NVIDIA CUDA]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Deep_Learning]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-08 04:30 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Linux environment with NVIDIA CUDA GPU support, PyTorch with CUDA backend, and NumPy for tensor computation across all LLM training, inference, and architecture code.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the foundational GPU-accelerated compute layer for all deep learning operations in the LLMBook codebase. PyTorch serves as the core tensor computation framework, used across 13+ source files for model architecture definitions (RMSNorm, RoPE, ALiBi, MoE, LLaMA), training loops (pre-training, SFT, LoRA, DPO), and inference/quantization workflows. CUDA GPU access is required for training scripts that use &#039;&#039;&#039;device_map=&amp;quot;auto&amp;quot;&#039;&#039;&#039;, mixed-precision BF16 training, and GPU memory monitoring via &#039;&#039;&#039;torch.cuda.memory_allocated()&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;all&#039;&#039;&#039; training, fine-tuning, and inference workflows in the LLMBook codebase. It is a mandatory prerequisite for every Implementation that imports &#039;&#039;&#039;torch&#039;&#039;&#039; or uses &#039;&#039;&#039;nn.Module&#039;&#039;&#039; subclasses. The GPU requirement is especially critical for pre-training (Ch. 6), SFT (Ch. 7), DPO alignment (Ch. 8), and quantization/inference (Ch. 9).&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (Ubuntu recommended) || CUDA toolkit requires Linux for full support&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || NVIDIA GPU with CUDA support || Minimum 8GB VRAM for quantized models; 16GB+ for full-precision training of 7B models&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || BF16-capable GPU || Ampere (A100) or newer for native BF16; RTX 30/40 series also supported&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 50GB+ SSD || For model weights (7B model ~14GB in fp16) and dataset caching&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `nvidia-driver` &amp;gt;= 525&lt;br /&gt;
* `cuda-toolkit` &amp;gt;= 11.7&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `torch` &amp;gt;= 1.13 (with CUDA support)&lt;br /&gt;
* `numpy` &amp;gt;= 1.21&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials required for this base environment.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install PyTorch with CUDA support&lt;br /&gt;
pip install torch numpy&lt;br /&gt;
&lt;br /&gt;
# Verify CUDA availability&lt;br /&gt;
python -c &amp;quot;import torch; print(f&#039;CUDA available: {torch.cuda.is_available()}&#039;)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
GPU memory monitoring from `code/9.3 bitsandbytes实践.py:7`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(f&amp;quot;memory usage: {torch.cuda.memory_allocated()/1000/1000/1000} GB&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Automatic device mapping from `code/9.3 bitsandbytes实践.py:6`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
model_8bit = AutoModelForCausalLM.from_pretrained(name, device_map=&amp;quot;auto&amp;quot;, load_in_8bit=True)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BF16 mixed precision requirement from `code/6.2 预训练实践.py:37-38`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
bf16: bool = HfArg(&lt;br /&gt;
    default=True,&lt;br /&gt;
    help=&amp;quot;Whether to use bf16 (mixed) precision instead of 32-bit.&amp;quot;,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PyTorch tensor operations used extensively across architecture files, e.g. `code/5.1 RMSNorm.py`, `code/5.2 RoPE.py`, `code/5.4 MoE.py`.&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `RuntimeError: CUDA out of memory` || Insufficient GPU VRAM for model size || Use quantization (4-bit/8-bit) or reduce batch size&lt;br /&gt;
|-&lt;br /&gt;
|| `RuntimeError: No CUDA GPUs are available` || No NVIDIA GPU detected || Verify `nvidia-smi` output; install NVIDIA drivers&lt;br /&gt;
|-&lt;br /&gt;
|| `RuntimeError: expected scalar type BFloat16` || GPU does not support BF16 || Use `fp16=True` instead of `bf16=True` on pre-Ampere GPUs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Pre-Ampere GPUs (V100, RTX 2080):&#039;&#039;&#039; BF16 not natively supported; use FP16 mixed precision instead.&lt;br /&gt;
* &#039;&#039;&#039;Multi-GPU:&#039;&#039;&#039; DeepSpeed integration available in LoRA training script (`code/7.4 LoRA实践.py`) for distributed training.&lt;br /&gt;
* &#039;&#039;&#039;CPU-only:&#039;&#039;&#039; Data preprocessing scripts (Ch. 4: quality filtering, deduplication, BPE) do not require GPU.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_AutoModelForCausalLM_From_Pretrained_Pretraining]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_LlamaForCausalLM_Forward]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_Trainer_Train_Pretraining]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_Trainer_Save_Model_Pretraining]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_AutoModelForCausalLM_From_Pretrained_SFT]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_Trainer_Train_SFT]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_LoRALinear]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_LoraConfig_Get_Peft_Model]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_Trainer_Train_LoRA]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_AutoPeftModelForCausalLM_Merge_And_Unload]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_LlamaRewardModel]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_AutoModelForCausalLM_From_Pretrained_DPO]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_DPOTrainer_Train]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_VLLM_LLM_Generate]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_Quantize_Func]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_AutoModelForCausalLM_From_Pretrained_Bitsandbytes]]&lt;br /&gt;
* [[required_by::Implementation:LLMBook_zh_LLMBook_zh_github_io_GPTQConfig_Quantization]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:OpenGVLab_InternVL_PEFT_LoRA&amp;diff=27805</id>
		<title>Environment:OpenGVLab InternVL PEFT LoRA</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:OpenGVLab_InternVL_PEFT_LoRA&amp;diff=27805"/>
		<updated>2026-02-16T18:46:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/OpenGVLab_InternVL_PEFT_LoRA.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=OpenGVLab_InternVL_PEFT_LoRA}}&lt;br /&gt;
{{PageInfo|type=Environment|title=OpenGVLab_InternVL_PEFT_LoRA}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/OpenGVLab/InternVL OpenGVLab/InternVL]&lt;br /&gt;
* [https://github.com/huggingface/peft huggingface/peft]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Parameter_Efficient_Finetuning]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-07 14:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
PEFT (Parameter-Efficient Fine-Tuning) &amp;gt;= 0.4.0 library providing LoRA adapter injection for both the vision encoder and language model components of InternVL.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The PEFT library is used to inject Low-Rank Adaptation (LoRA) adapters into InternVL models for parameter-efficient fine-tuning. InternVL supports LoRA on two components independently: the vision encoder (InternViT backbone) and the language model (InternLM2/LLaMA/Phi-3/Qwen2). The LoRA configuration uses a fixed convention of `lora_alpha = 2 * rank` and targets specific attention projection layers. After training, LoRA adapters can be merged back into the base model weights.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;LoRA fine-tuning workflows&#039;&#039;&#039; where full model fine-tuning is too memory-intensive. Enabled by setting `--use_backbone_lora` and/or `--use_llm_lora` command-line arguments to a non-zero rank value. Also required for the LoRA merging tool.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || Same as PyTorch_CUDA environment || LoRA reduces VRAM requirements vs full fine-tuning&lt;br /&gt;
|-&lt;br /&gt;
| VRAM || Reduced compared to full fine-tuning || Exact savings depend on rank and target modules&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `peft` &amp;gt;= 0.4.0&lt;br /&gt;
* `torch` &amp;gt;= 2.0 (prerequisite)&lt;br /&gt;
* `transformers` == 4.37.2 (prerequisite)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials required.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pip install peft&amp;gt;=0.4.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
PEFT import from `modeling_internvl_chat.py:16`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from peft import LoraConfig, get_peft_model&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vision encoder LoRA injection from `modeling_internvl_chat.py:111-119`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def wrap_backbone_lora(self, r=128, lora_alpha=256, lora_dropout=0.05):&lt;br /&gt;
    lora_config = LoraConfig(&lt;br /&gt;
        r=r,&lt;br /&gt;
        target_modules=[&#039;attn.qkv&#039;, &#039;attn.proj&#039;, &#039;mlp.fc1&#039;, &#039;mlp.fc2&#039;],&lt;br /&gt;
        lora_alpha=lora_alpha,&lt;br /&gt;
        lora_dropout=lora_dropout,&lt;br /&gt;
    )&lt;br /&gt;
    self.vision_model = get_peft_model(self.vision_model, lora_config)&lt;br /&gt;
    self.vision_model.print_trainable_parameters()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LLM LoRA injection from `modeling_internvl_chat.py:121-141`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def wrap_llm_lora(self, r=128, lora_alpha=256, lora_dropout=0.05):&lt;br /&gt;
    # Determines target modules based on LLM architecture&lt;br /&gt;
    lora_config = LoraConfig(&lt;br /&gt;
        r=r,&lt;br /&gt;
        target_modules=target_modules,&lt;br /&gt;
        lora_alpha=lora_alpha,&lt;br /&gt;
        lora_dropout=lora_dropout,&lt;br /&gt;
        task_type=&#039;CAUSAL_LM&#039;,&lt;br /&gt;
    )&lt;br /&gt;
    self.language_model = get_peft_model(self.language_model, lora_config)&lt;br /&gt;
    self.language_model.enable_input_require_grads()&lt;br /&gt;
    self.language_model.print_trainable_parameters()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alpha = 2 * rank convention from `internvl_chat_finetune.py:1003-1008`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if model_args.use_backbone_lora:&lt;br /&gt;
    model.wrap_backbone_lora(r=model_args.use_backbone_lora,&lt;br /&gt;
                             lora_alpha=2 * model_args.use_backbone_lora)&lt;br /&gt;
&lt;br /&gt;
if model_args.use_llm_lora:&lt;br /&gt;
    model.wrap_llm_lora(r=model_args.use_llm_lora,&lt;br /&gt;
                        lora_alpha=2 * model_args.use_llm_lora)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ModuleNotFoundError: No module named &#039;peft&#039;` || PEFT not installed || `pip install peft&amp;gt;=0.4.0`&lt;br /&gt;
|-&lt;br /&gt;
|| `ValueError: target_modules not found in model` || Wrong target module names for LLM architecture || Check that target_modules match the LLM type (InternLM2 vs LLaMA vs Phi-3 vs Qwen2)&lt;br /&gt;
|-&lt;br /&gt;
|| LoRA weights not saving correctly || DeepSpeed ZeRO Stage 3 conflict with PEFT || Use `save_pretrained()` with DeepSpeed gather&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Architecture-specific targets:&#039;&#039;&#039; Different LLM backends have different LoRA target modules. InternLM2 targets `wqkv`, `wo`, `w1`, `w2`, `w3`. LLaMA targets `q_proj`, `k_proj`, `v_proj`, etc. The `wrap_llm_lora` method auto-selects based on `llm_arch_name`.&lt;br /&gt;
* &#039;&#039;&#039;Independent LoRA:&#039;&#039;&#039; Vision encoder and language model LoRA are configured independently. You can use LoRA on one, both, or neither.&lt;br /&gt;
* &#039;&#039;&#039;Merge tool:&#039;&#039;&#039; The `tools/merge_lora.py` script merges adapter weights back into the base model for deployment.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:OpenGVLab_InternVL_Wrap_LLM_LoRA]]&lt;br /&gt;
* [[required_by::Implementation:OpenGVLab_InternVL_Wrap_Backbone_LoRA]]&lt;br /&gt;
* [[required_by::Implementation:OpenGVLab_InternVL_Merge_LoRA]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Allenai_Open_instruct_Python_3_12_Runtime&amp;diff=27804</id>
		<title>Environment:Allenai Open instruct Python 3 12 Runtime</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Allenai_Open_instruct_Python_3_12_Runtime&amp;diff=27804"/>
		<updated>2026-02-16T18:46:08Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Allenai_Open_instruct_Python_3_12_Runtime.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Allenai_Open_instruct_Python_3_12_Runtime}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Allenai_Open_instruct_Python_3_12_Runtime}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/allenai/open-instruct Open Instruct]&lt;br /&gt;
* [https://docs.python.org/3.12/ Python 3.12]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-07 00:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.12 runtime environment strictly required by Open Instruct, managed via the uv package manager.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The project requires exactly Python 3.12 (not 3.11 or 3.13). This is enforced in `pyproject.toml` with `requires-python = &amp;quot;==3.12.*&amp;quot;`. The uv package manager handles dependency resolution with platform-specific indices for PyTorch (CUDA 12.9 for Linux x86_64, CUDA 13.0 for aarch64, CPU for macOS).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
This environment is a &#039;&#039;&#039;prerequisite for all operations&#039;&#039;&#039;: training, evaluation, data processing, and testing. The Python 3.12 constraint ensures compatibility across all dependencies including torch, vLLM, DeepSpeed, and transformers.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Python || 3.12.x exactly || Enforced via pyproject.toml&lt;br /&gt;
|-&lt;br /&gt;
| Package Manager || uv (recommended) || Handles platform-specific dependency resolution&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (x86_64, aarch64) or macOS || Windows not supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Core Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `accelerate` &amp;gt;= 1.10.1&lt;br /&gt;
* `datasets` &amp;gt;= 4.0.0&lt;br /&gt;
* `numpy` &amp;gt;= 2&lt;br /&gt;
* `torch` &amp;gt;= 2.9.0, &amp;lt; 2.10&lt;br /&gt;
* `transformers` &amp;gt;= 4.57.0&lt;br /&gt;
* `wandb` == 0.23.1&lt;br /&gt;
* `ray[default]` &amp;gt;= 2.49.2&lt;br /&gt;
* `deepspeed` &amp;gt;= 0.18.3&lt;br /&gt;
* `peft` &amp;gt;= 0.13.2&lt;br /&gt;
* `ai2-olmo-core` == 2.3.0&lt;br /&gt;
* `vllm` == 0.14.1 (Linux only)&lt;br /&gt;
&lt;br /&gt;
=== Development Dependencies ===&lt;br /&gt;
&lt;br /&gt;
* `beaker-py` &amp;gt;= 2.5.3&lt;br /&gt;
* `pytest` &amp;gt;= 8.3.4&lt;br /&gt;
* `ruff` &amp;gt;= 0.11.13&lt;br /&gt;
* `mkdocs-material` &amp;gt;= 9.6.8&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials required for the Python runtime itself.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install uv if not already installed&lt;br /&gt;
curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&lt;br /&gt;
# Install Python 3.12 and all dependencies&lt;br /&gt;
uv sync&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Python version constraint from `pyproject.toml:6`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
requires-python = &amp;quot;==3.12.*&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Platform-specific PyTorch source indices from `pyproject.toml:56-59`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
[tool.uv.sources]&lt;br /&gt;
torch = [&lt;br /&gt;
  { index = &amp;quot;pytorch-cu129&amp;quot;, marker = &amp;quot;platform_system == &#039;Linux&#039; and platform_machine != &#039;aarch64&#039;&amp;quot;},&lt;br /&gt;
  { index = &amp;quot;pytorch-cu130&amp;quot;, marker = &amp;quot;platform_system == &#039;Linux&#039; and platform_machine == &#039;aarch64&#039;&amp;quot;},&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supported platforms from `pyproject.toml:89-93`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
environments = [&lt;br /&gt;
    &amp;quot;sys_platform == &#039;linux&#039; and platform_machine == &#039;x86_64&#039;&amp;quot;,&lt;br /&gt;
    &amp;quot;sys_platform == &#039;linux&#039; and platform_machine == &#039;aarch64&#039;&amp;quot;,&lt;br /&gt;
    &amp;quot;sys_platform == &#039;darwin&#039;&amp;quot;,&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `requires-python not satisfied` || Using Python 3.11 or 3.13 || Install Python 3.12 via uv or pyenv&lt;br /&gt;
|-&lt;br /&gt;
|| `ModuleNotFoundError: No module named &#039;vllm&#039;` || Running on macOS where vLLM is excluded || Use Linux for vLLM-dependent features (GRPO training)&lt;br /&gt;
|-&lt;br /&gt;
|| `flash-attn build fails` || Missing CUDA toolkit or on unsupported platform || Ensure CUDA toolkit installed; on macOS/ARM use `attn_implementation=&amp;quot;sdpa&amp;quot;` instead&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Linux x86_64:&#039;&#039;&#039; Full support with CUDA 12.9 PyTorch index.&lt;br /&gt;
* &#039;&#039;&#039;Linux aarch64:&#039;&#039;&#039; Full support with CUDA 13.0 PyTorch index. flash-attn not available.&lt;br /&gt;
* &#039;&#039;&#039;macOS (Darwin):&#039;&#039;&#039; Limited support; vLLM, bitsandbytes, flash-attn, and liger-kernel excluded.&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; Not supported at all.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Allenai_Open_instruct_Finetune_Main]]&lt;br /&gt;
* [[required_by::Implementation:Allenai_Open_instruct_DPO_Tune_Cache_Main]]&lt;br /&gt;
* [[required_by::Implementation:Allenai_Open_instruct_PolicyTrainerRayProcess]]&lt;br /&gt;
* [[required_by::Implementation:Allenai_Open_instruct_Mason_Main]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Apache_Flink_Python_PyFlink_Environment&amp;diff=27803</id>
		<title>Environment:Apache Flink Python PyFlink Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Apache_Flink_Python_PyFlink_Environment&amp;diff=27803"/>
		<updated>2026-02-16T18:46:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Apache_Flink_Python_PyFlink_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Apache_Flink_Python_PyFlink_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Apache_Flink_Python_PyFlink_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/apache/flink Apache Flink]&lt;br /&gt;
* [https://github.com/apache/flink/blob/master/flink-python/README.md PyFlink README]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Python]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 13:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.9+ environment with Py4J, Apache Beam, and Cython for building and running PyFlink, the Python API for Apache Flink.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the Python runtime and dependencies required to build, install, and run PyFlink. The `flink-python` module uses setuptools with Cython extensions for performance-critical paths. The minimum Python version is 3.9, with support up to Python 3.12. Key dependencies include Py4J for JVM interoperability, Apache Beam for portable runner support, and PyArrow for columnar data exchange.&lt;br /&gt;
&lt;br /&gt;
The build system uses `pyproject.toml` with setuptools and requires Cython &amp;gt;= 0.29.24 for compiling native extensions. Wheel builds are configured for CPython 3.9 through 3.12.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when developing, building, or running &#039;&#039;&#039;PyFlink&#039;&#039;&#039; applications. This includes writing Python UDFs (User Defined Functions), using the Table API from Python, or running Flink jobs via the Python API. This environment is separate from the Java build environment but typically used alongside it.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS || Windows has limited support&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || x86_64 or ARM64 CPU || No GPU required&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 2GB minimum || More needed for large PyArrow operations&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 5GB SSD || For Python packages and build artifacts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* Python &amp;gt;= 3.9, &amp;lt;= 3.12&lt;br /&gt;
* C compiler (gcc or clang) for Cython extensions&lt;br /&gt;
* Java 11/17/21 (for Py4J bridge)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `py4j` == 0.10.9.7&lt;br /&gt;
* `python-dateutil` &amp;gt;= 2.8.0, &amp;lt; 3&lt;br /&gt;
* `apache-beam` &amp;gt;= 2.54.0, &amp;lt;= 2.61.0&lt;br /&gt;
* `cloudpickle` &amp;gt;= 2.2.0&lt;br /&gt;
* `avro` &amp;gt;= 1.12.0&lt;br /&gt;
* `pytz` &amp;gt;= 2018.3&lt;br /&gt;
* `fastavro` &amp;gt;= 1.1.0, != 1.8.0&lt;br /&gt;
* `requests` &amp;gt;= 2.26.0&lt;br /&gt;
* `protobuf` &amp;gt;= 3.19.0&lt;br /&gt;
* `numpy` &amp;gt;= 1.22.4&lt;br /&gt;
* `pandas` &amp;gt;= 1.3.0, &amp;lt; 2.3&lt;br /&gt;
* `pyarrow` &amp;gt;= 5.0.0, &amp;lt; 21.0.0&lt;br /&gt;
* `pemja` &amp;gt;= 0.5.6, &amp;lt; 0.5.7 (Linux/macOS only)&lt;br /&gt;
* `httplib2` &amp;gt;= 0.19.0&lt;br /&gt;
* `ruamel.yaml` &amp;gt;= 0.18.4&lt;br /&gt;
&lt;br /&gt;
=== Build Dependencies ===&lt;br /&gt;
&lt;br /&gt;
* `setuptools` &amp;gt;= 75.3&lt;br /&gt;
* `wheel`&lt;br /&gt;
* `cython` &amp;gt;= 0.29.24&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials are required for building PyFlink from source. All dependencies are available from PyPI.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Ensure Python 3.9+ is available&lt;br /&gt;
python3 --version&lt;br /&gt;
&lt;br /&gt;
# Install build dependencies&lt;br /&gt;
pip install setuptools&amp;gt;=75.3 wheel cython&amp;gt;=0.29.24&lt;br /&gt;
&lt;br /&gt;
# Install PyFlink from the repository&lt;br /&gt;
cd flink-python&lt;br /&gt;
python setup.py sdist&lt;br /&gt;
pip install dist/apache-flink-*.tar.gz&lt;br /&gt;
&lt;br /&gt;
# Or install runtime dependencies directly&lt;br /&gt;
pip install py4j==0.10.9.7 apache-beam&amp;gt;=2.54.0 cloudpickle&amp;gt;=2.2.0 \&lt;br /&gt;
    python-dateutil&amp;gt;=2.8.0 avro&amp;gt;=1.12.0 pyarrow&amp;gt;=5.0.0 \&lt;br /&gt;
    numpy&amp;gt;=1.22.4 pandas&amp;gt;=1.3.0 protobuf&amp;gt;=3.19.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Python version check from `flink-python/setup.py:31-34`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if sys.version_info &amp;lt; (3, 9):&lt;br /&gt;
    print(&amp;quot;Python versions prior to 3.9 are not supported for PyFlink.&amp;quot;,&lt;br /&gt;
          file=sys.stderr)&lt;br /&gt;
    sys.exit(-1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Python version constraint from `flink-python/setup.py:346`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
python_requires=&#039;&amp;gt;=3.9&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wheel build matrix from `flink-python/pyproject.toml:81`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
build = [&amp;quot;cp39-*&amp;quot;, &amp;quot;cp310-*&amp;quot;, &amp;quot;cp311-*&amp;quot;, &amp;quot;cp312-*&amp;quot;]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fastavro exclusion from `flink-python/setup.py:325`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;fastavro&amp;gt;=1.1.0,!=1.8.0&#039;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `Python versions prior to 3.9 are not supported for PyFlink.` || Python &amp;lt; 3.9 detected || Upgrade to Python 3.9, 3.10, 3.11, or 3.12&lt;br /&gt;
|-&lt;br /&gt;
|| `ModuleNotFoundError: No module named &#039;pemja&#039;` || pemja not available on Windows || Use Linux or macOS; pemja is a non-Windows-only dependency&lt;br /&gt;
|-&lt;br /&gt;
|| `cython: command not found` || Cython build dependency missing || `pip install cython&amp;gt;=0.29.24`&lt;br /&gt;
|-&lt;br /&gt;
|| `fastavro 1.8.0 compatibility error` || Known incompatible fastavro version || Use any fastavro version except 1.8.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Python 3.8 and below:&#039;&#039;&#039; Not supported. Hard exit in setup.py.&lt;br /&gt;
* &#039;&#039;&#039;Python 3.13+:&#039;&#039;&#039; Not yet in the supported wheel build matrix.&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; The `pemja` package (Java-Python bridge) is excluded on Windows.&lt;br /&gt;
* &#039;&#039;&#039;fastavro 1.8.0:&#039;&#039;&#039; Explicitly excluded due to a known compatibility issue.&lt;br /&gt;
* &#039;&#039;&#039;Apache Beam:&#039;&#039;&#039; Pinned to a narrow range (2.54.0 to 2.61.0) for API stability.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Lakeraai_Pint_benchmark_Python_310_With_Transformers&amp;diff=27802</id>
		<title>Environment:Lakeraai Pint benchmark Python 310 With Transformers</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Lakeraai_Pint_benchmark_Python_310_With_Transformers&amp;diff=27802"/>
		<updated>2026-02-16T18:46:05Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Lakeraai_Pint_benchmark_Python_310_With_Transformers.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Lakeraai_Pint_benchmark_Python_310_With_Transformers}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/lakeraai/pint-benchmark PINT Benchmark]&lt;br /&gt;
* [https://huggingface.co/docs/transformers HuggingFace Transformers]&lt;br /&gt;
* [https://huggingface.co/docs/setfit SetFit Documentation]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::NLP]], [[domain::Model_Evaluation]], [[domain::Infrastructure]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-14 15:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.10+ environment with PyTorch, HuggingFace Transformers, and SetFit for evaluating prompt injection detection models via the PINT Benchmark.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the runtime context required to load and run HuggingFace-hosted prompt injection detection models. It includes the full PyTorch stack for GPU-accelerated inference (with CPU fallback), the HuggingFace Transformers library for model loading and pipeline construction, and the SetFit library for few-shot classification models. The environment automatically detects CUDA availability and configures the inference device accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when evaluating &#039;&#039;&#039;HuggingFace-hosted models&#039;&#039;&#039; with the PINT Benchmark. It is the mandatory prerequisite for the &amp;lt;code&amp;gt;HuggingFaceModelEvaluation&amp;lt;/code&amp;gt; class, which wraps model loading, tokenization, chunked inference, and result aggregation. If you are only benchmarking API-based systems (e.g., Lakera Guard, AWS Bedrock), this environment is not required.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, or Windows (WSL2) || Standard Python-supported platforms&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || CPU (minimum) or NVIDIA GPU || GPU with CUDA support recommended for faster inference&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 5GB+ free space || For model weight downloads and caching&lt;br /&gt;
|-&lt;br /&gt;
| Python || 3.10+ || Specified in pyproject.toml: &amp;lt;code&amp;gt;python = &amp;quot;^3.10&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* Python 3.10 or higher&lt;br /&gt;
* &amp;lt;code&amp;gt;poetry&amp;lt;/code&amp;gt; (package manager, used for project setup)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;torch&amp;lt;/code&amp;gt; (PyTorch — GPU inference and tensor operations)&lt;br /&gt;
* &amp;lt;code&amp;gt;transformers&amp;lt;/code&amp;gt; (HuggingFace — &amp;lt;code&amp;gt;AutoModelForSequenceClassification&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AutoTokenizer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pipeline&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;setfit&amp;lt;/code&amp;gt; (SetFit — &amp;lt;code&amp;gt;SetFitModel.from_pretrained&amp;lt;/code&amp;gt; for few-shot models)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No API credentials are required for this environment. HuggingFace model downloads are public by default. If accessing gated models, set:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HF_TOKEN&amp;lt;/code&amp;gt;: HuggingFace API token (Read access) for downloading gated models like &amp;lt;code&amp;gt;meta-llama/Prompt-Guard-86M&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install core HuggingFace model evaluation dependencies&lt;br /&gt;
pip install torch transformers setfit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
GPU/CPU device detection from &amp;lt;code&amp;gt;benchmark/utils/evaluate_hugging_face_model.py:52&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
self.classifier = pipeline(&lt;br /&gt;
    &amp;quot;text-classification&amp;quot;,&lt;br /&gt;
    model=self.model,&lt;br /&gt;
    tokenizer=self.tokenizer,&lt;br /&gt;
    max_length=self.max_length,&lt;br /&gt;
    truncation=True,&lt;br /&gt;
    device=torch.device(&amp;quot;cuda&amp;quot; if torch.cuda.is_available() else &amp;quot;cpu&amp;quot;),&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SetFit model loading from &amp;lt;code&amp;gt;benchmark/utils/evaluate_hugging_face_model.py:60-61&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if self.is_setfit:&lt;br /&gt;
    return SetFitModel.from_pretrained(self.model_name)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Standard model loading from &amp;lt;code&amp;gt;benchmark/utils/evaluate_hugging_face_model.py:62-63&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
else:&lt;br /&gt;
    return AutoModelForSequenceClassification.from_pretrained(self.model_name)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Import declarations from &amp;lt;code&amp;gt;benchmark/utils/evaluate_hugging_face_model.py:1-6&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
from typing import Any, Optional&lt;br /&gt;
&lt;br /&gt;
import torch&lt;br /&gt;
from setfit import SetFitModel&lt;br /&gt;
from transformers import AutoModelForSequenceClassification, AutoTokenizer, pipeline&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;ModuleNotFoundError: No module named &#039;torch&#039;&amp;lt;/code&amp;gt; || PyTorch not installed || &amp;lt;code&amp;gt;pip install torch&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;ModuleNotFoundError: No module named &#039;transformers&#039;&amp;lt;/code&amp;gt; || Transformers not installed || &amp;lt;code&amp;gt;pip install transformers&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;ModuleNotFoundError: No module named &#039;setfit&#039;&amp;lt;/code&amp;gt; || SetFit not installed (only needed for SetFit models) || &amp;lt;code&amp;gt;pip install setfit&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;OSError: ... is not a local folder and is not a valid model identifier&amp;lt;/code&amp;gt; || Model name typo or gated model without auth || Verify model name; set &amp;lt;code&amp;gt;HF_TOKEN&amp;lt;/code&amp;gt; env var for gated models&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;RuntimeError: CUDA out of memory&amp;lt;/code&amp;gt; || GPU VRAM insufficient for model || Use CPU fallback or a GPU with more VRAM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CPU-only systems:&#039;&#039;&#039; Fully supported. The code auto-detects CUDA availability and falls back to CPU via &amp;lt;code&amp;gt;torch.device(&amp;quot;cuda&amp;quot; if torch.cuda.is_available() else &amp;quot;cpu&amp;quot;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;SetFit models:&#039;&#039;&#039; Require the separate &amp;lt;code&amp;gt;setfit&amp;lt;/code&amp;gt; package and a different tokenizer model (e.g., &amp;lt;code&amp;gt;sentence-transformers/paraphrase-MiniLM-L3-v2&amp;lt;/code&amp;gt;). Set &amp;lt;code&amp;gt;is_setfit=True&amp;lt;/code&amp;gt; and provide &amp;lt;code&amp;gt;tokenizer_model&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Jupyter Notebook:&#039;&#039;&#039; This environment is designed to run inside the &amp;lt;code&amp;gt;pint-benchmark.ipynb&amp;lt;/code&amp;gt; notebook. The &amp;lt;code&amp;gt;HuggingFaceModelEvaluation&amp;lt;/code&amp;gt; class is pre-imported.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Lakeraai_Pint_benchmark_HuggingFaceModelEvaluation_Init]]&lt;br /&gt;
* [[required_by::Implementation:Lakeraai_Pint_benchmark_HuggingFaceModelEvaluation_Evaluate]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Sgl_project_Sglang_Runtime&amp;diff=27801</id>
		<title>Environment:Sgl project Sglang Runtime</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Sgl_project_Sglang_Runtime&amp;diff=27801"/>
		<updated>2026-02-16T18:46:05Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Sgl_project_Sglang_Runtime.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Sgl_project_Sglang_Runtime}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Sgl_project_Sglang_Runtime}}&lt;br /&gt;
&#039;&#039;&#039;Sgl_project_Sglang_Runtime&#039;&#039;&#039; is the SGLang runtime server environment, providing the full model serving stack including HTTP API, scheduler, model executor, and tokenizer management.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Python 3.10+&lt;br /&gt;
* SGLang package (`sglang[all]`) installed&lt;br /&gt;
* PyTorch 2.9.1+&lt;br /&gt;
* Transformers 4.57.1+&lt;br /&gt;
* `fastapi`, `uvicorn`, `uvloop` for HTTP serving&lt;br /&gt;
* GPU or CPU backend configured&lt;br /&gt;
* Model weights accessible (local path or HuggingFace Hub)&lt;br /&gt;
* `HF_TOKEN` for gated models (optional)&lt;br /&gt;
&lt;br /&gt;
== Required By ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Sgl_project_Sglang_CoT_Decoding]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Environment:Sgl_project_Sglang_CUDA_GPU_Runtime]]&lt;br /&gt;
* [[Environment:Sgl_project_Sglang_Python_Dependencies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Huggingface_Optimum_Accelerated_Inference_Environment&amp;diff=27800</id>
		<title>Environment:Huggingface Optimum Accelerated Inference Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Huggingface_Optimum_Accelerated_Inference_Environment&amp;diff=27800"/>
		<updated>2026-02-16T18:46:03Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Huggingface_Optimum_Accelerated_Inference_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Huggingface_Optimum_Accelerated_Inference_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/huggingface/optimum Huggingface Optimum]&lt;br /&gt;
* [https://github.com/huggingface/optimum/blob/main/optimum/pipelines/__init__.py Pipeline Factory]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Inference]], [[domain::Infrastructure]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-15 00:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Accelerated inference environment requiring at least one backend: ONNX Runtime (`optimum-onnx`), OpenVINO (`optimum-intel[openvino]`), or Intel IPEX (`optimum-intel[ipex]`).&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the backend infrastructure for &#039;&#039;&#039;accelerated inference pipelines&#039;&#039;&#039; in Optimum. The pipeline factory auto-detects which inference backend is available and dispatches accordingly. At least one of three backends must be installed: ONNX Runtime (via `optimum-onnx`), OpenVINO (via `optimum-intel`), or Intel IPEX (via `optimum-intel`). The backend selection follows a priority order: OpenVINO &amp;gt; ONNX Runtime &amp;gt; IPEX when no explicit accelerator is specified.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when running the &#039;&#039;&#039;Accelerated Inference Pipeline&#039;&#039;&#039; workflow. The `optimum.pipelines.pipeline()` function requires at least one backend to be available. If no `accelerator` parameter is specified, the system auto-selects based on what is installed.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, or Windows || Depends on chosen backend&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || CPU minimum; GPU optional || ONNX Runtime GPU variant for GPU acceleration&lt;br /&gt;
|-&lt;br /&gt;
| Disk || Sufficient for exported model || ONNX/OpenVINO models stored on disk&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Backend Option 1: ONNX Runtime ===&lt;br /&gt;
&lt;br /&gt;
* `optimum-onnx` (optimum ONNX subpackage)&lt;br /&gt;
* `onnxruntime` (or one of 16 distribution variants: onnxruntime-gpu, onnxruntime-rocm, onnxruntime-openvino, etc.)&lt;br /&gt;
&lt;br /&gt;
=== Backend Option 2: OpenVINO ===&lt;br /&gt;
&lt;br /&gt;
* `optimum-intel` &amp;gt;= 1.23.0 with `[openvino]` extra&lt;br /&gt;
* `openvino` (Intel OpenVINO toolkit)&lt;br /&gt;
&lt;br /&gt;
=== Backend Option 3: Intel IPEX ===&lt;br /&gt;
&lt;br /&gt;
* `optimum-intel` &amp;gt;= 1.23.0 with `[ipex]` extra&lt;br /&gt;
* `intel_extension_for_pytorch` (IPEX)&lt;br /&gt;
&lt;br /&gt;
=== Core Dependencies (all backends) ===&lt;br /&gt;
&lt;br /&gt;
* `torch` &amp;gt;= 2.1.0&lt;br /&gt;
* `transformers` &amp;gt;= 4.36.0&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
* `HF_TOKEN`: HuggingFace API token if loading models from gated repositories.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Option 1: ONNX Runtime backend&lt;br /&gt;
pip install optimum[onnxruntime]&lt;br /&gt;
&lt;br /&gt;
# Option 1b: ONNX Runtime with GPU support&lt;br /&gt;
pip install optimum[onnxruntime-gpu]&lt;br /&gt;
&lt;br /&gt;
# Option 2: OpenVINO backend&lt;br /&gt;
pip install optimum[openvino]&lt;br /&gt;
&lt;br /&gt;
# Option 3: Intel IPEX backend&lt;br /&gt;
pip install optimum[ipex]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Backend auto-detection priority from `optimum/pipelines/__init__.py:216-238`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if accelerator is None:&lt;br /&gt;
    if is_optimum_intel_available() and is_openvino_available():&lt;br /&gt;
        logger.info(&amp;quot;`accelerator` not specified. Using OpenVINO (`ov`)...&amp;quot;)&lt;br /&gt;
        accelerator = &amp;quot;ov&amp;quot;&lt;br /&gt;
    elif is_optimum_onnx_available() and is_onnxruntime_available():&lt;br /&gt;
        logger.info(&amp;quot;`accelerator` not specified. Using ONNX Runtime (`ort`)...&amp;quot;)&lt;br /&gt;
        accelerator = &amp;quot;ort&amp;quot;&lt;br /&gt;
    elif is_optimum_intel_available() and is_ipex_available():&lt;br /&gt;
        logger.info(&amp;quot;`accelerator` not specified. Using IPEX (`ipex`)...&amp;quot;)&lt;br /&gt;
        accelerator = &amp;quot;ipex&amp;quot;&lt;br /&gt;
    else:&lt;br /&gt;
        raise ImportError(&lt;br /&gt;
            &amp;quot;You need to install either `optimum-onnx[onnxruntime]` to use ONNX Runtime, &amp;quot;&lt;br /&gt;
            &amp;quot;or `optimum-intel[openvino]` to use OpenVINO, &amp;quot;&lt;br /&gt;
            &amp;quot;or `optimum-intel[ipex]` to use IPEX.&amp;quot;&lt;br /&gt;
        )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Backend availability checks from `optimum/utils/import_utils.py:82-119`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
_onnxruntime_available = _is_package_available(&lt;br /&gt;
    &amp;quot;onnxruntime&amp;quot;,&lt;br /&gt;
    pkg_distributions=[&lt;br /&gt;
        &amp;quot;onnxruntime-gpu&amp;quot;,&lt;br /&gt;
        &amp;quot;onnxruntime-rocm&amp;quot;,&lt;br /&gt;
        &amp;quot;onnxruntime-training&amp;quot;,&lt;br /&gt;
        &amp;quot;onnxruntime-openvino&amp;quot;,&lt;br /&gt;
        &amp;quot;onnxruntime-vitisai&amp;quot;,&lt;br /&gt;
        &amp;quot;onnxruntime-armnn&amp;quot;,&lt;br /&gt;
        &amp;quot;onnxruntime-cann&amp;quot;,&lt;br /&gt;
        # ... 16 variants total&lt;br /&gt;
    ],&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Backend dispatch from `optimum/pipelines/__init__.py:240-264`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if accelerator == &amp;quot;ort&amp;quot;:&lt;br /&gt;
    from optimum.onnxruntime import pipeline as ort_pipeline&lt;br /&gt;
    return ort_pipeline(task=task, model=model, ...)&lt;br /&gt;
elif accelerator in [&amp;quot;ov&amp;quot;, &amp;quot;ipex&amp;quot;]:&lt;br /&gt;
    from optimum.intel import pipeline as intel_pipeline&lt;br /&gt;
    return intel_pipeline(task=task, model=model, ...)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `You need to install either optimum-onnx[onnxruntime]...` || No inference backend installed || Install at least one backend: `pip install optimum[onnxruntime]`&lt;br /&gt;
|-&lt;br /&gt;
|| `Cannot export model using PyTorch because no PyTorch package was found` || PyTorch not installed || `pip install torch&amp;gt;=2.1.0`&lt;br /&gt;
|-&lt;br /&gt;
|| `Only one framework is supported for export: pt` || Non-PyTorch framework specified || Use `framework=&amp;quot;pt&amp;quot;` (only PyTorch is supported)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Backend priority:&#039;&#039;&#039; When no accelerator is specified, OpenVINO is preferred over ONNX Runtime, which is preferred over IPEX.&lt;br /&gt;
* &#039;&#039;&#039;ONNX Runtime variants:&#039;&#039;&#039; The library checks 16+ ONNX Runtime distributions to support diverse hardware (AMD ROCm, Xilinx Vitis AI, ARM NN, Huawei CANN, Qualcomm QNN, etc.).&lt;br /&gt;
* &#039;&#039;&#039;Framework limitation:&#039;&#039;&#039; Only PyTorch (`&amp;quot;pt&amp;quot;`) is supported as the source framework for model export and inference. TensorFlow support has been removed.&lt;br /&gt;
* &#039;&#039;&#039;Intel ecosystem:&#039;&#039;&#039; Both OpenVINO and IPEX are provided through the same `optimum-intel` package with different extras.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Huggingface_Optimum_Is_Backend_Available]]&lt;br /&gt;
* [[required_by::Implementation:Huggingface_Optimum_Pipeline_Factory]]&lt;br /&gt;
* [[required_by::Implementation:Huggingface_Optimum_Backend_Specific_Pipeline]]&lt;br /&gt;
* [[required_by::Implementation:Huggingface_Optimum_OptimizedModel_From_Pretrained]]&lt;br /&gt;
* [[required_by::Implementation:Huggingface_Optimum_Pipeline_Call]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environment]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Langchain_ai_Langgraph_Docker_Deployment_Environment&amp;diff=27799</id>
		<title>Environment:Langchain ai Langgraph Docker Deployment Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Langchain_ai_Langgraph_Docker_Deployment_Environment&amp;diff=27799"/>
		<updated>2026-02-16T18:46:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Langchain_ai_Langgraph_Docker_Deployment_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Langchain_ai_Langgraph_Docker_Deployment_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/langchain-ai/langgraph/tree/main/libs/cli LangGraph CLI]&lt;br /&gt;
* [https://docs.langchain.com/oss/python/langgraph/overview LangGraph CLI Docs]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Deployment]], [[domain::Docker]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-11 14:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Docker-based deployment environment with Docker Compose, PostgreSQL, and optional Node.js 20+ for running LangGraph applications via the CLI.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the infrastructure required to build, test, and deploy LangGraph applications using the `langgraph` CLI commands (`langgraph dev`, `langgraph build`, `langgraph up`). It relies on Docker for containerization, Docker Compose for orchestration, and PostgreSQL as the default checkpoint persistence backend. The CLI generates Dockerfiles from templates, manages Docker Compose configurations, and supports both Python and JavaScript/TypeScript graph runtimes. The default Python version for deployment containers is 3.11 (minimum 3.11), and the default Node.js version is 20 (minimum 20).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when deploying LangGraph applications with the CLI deployment workflow. It is the mandatory prerequisite for running `langgraph build`, `langgraph up`, and `langgraph dev` commands, as well as for connecting via `RemoteGraph`.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux or macOS || Windows supported via WSL2&lt;br /&gt;
|-&lt;br /&gt;
| Docker || &amp;gt;= 20.0.0 || `healthcheck_start_interval` requires Docker &amp;gt;= 25.0.0&lt;br /&gt;
|-&lt;br /&gt;
| Docker Compose || &amp;gt;= 1.0.0 || Plugin or standalone (`docker-compose`) supported&lt;br /&gt;
|-&lt;br /&gt;
| Python (container) || &amp;gt;= 3.11 || Minimum for deployment containers; default is 3.11&lt;br /&gt;
|-&lt;br /&gt;
| Node.js (container) || &amp;gt;= 20 || Required only for JS/TS graphs; default is 20&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 2GB+ SSD || For Docker images and PostgreSQL data&lt;br /&gt;
|-&lt;br /&gt;
| PostgreSQL || &amp;gt;= 14 || Default checkpoint backend in Docker Compose&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `docker` (Docker Engine)&lt;br /&gt;
* `docker-compose` or Docker Compose plugin&lt;br /&gt;
* `git` (for fetching repositories)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages (CLI) ===&lt;br /&gt;
&lt;br /&gt;
* `langgraph-cli` (with `click` &amp;gt;= 8.1.7)&lt;br /&gt;
* `langgraph-sdk` &amp;gt;= 0.1.0 (requires Python &amp;gt;= 3.11)&lt;br /&gt;
* `python-dotenv` &amp;gt;= 0.8.0 (for `.env` file loading, optional)&lt;br /&gt;
&lt;br /&gt;
=== In-Memory Server Extra ===&lt;br /&gt;
&lt;br /&gt;
* `langgraph-api` &amp;gt;= 0.5.35, &amp;lt; 0.8.0 (requires Python &amp;gt;= 3.11)&lt;br /&gt;
* `langgraph-runtime-inmem` &amp;gt;= 0.7 (requires Python &amp;gt;= 3.11)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables are used in the Docker deployment:&lt;br /&gt;
&lt;br /&gt;
* `LANGGRAPH_API_KEY`: API key for the LangGraph server&lt;br /&gt;
* `LANGSMITH_API_KEY`: LangSmith API key for tracing and monitoring&lt;br /&gt;
* `LANGGRAPH_CLOUD_LICENSE_KEY`: Production license key for LangGraph Cloud&lt;br /&gt;
* `OPENAI_API_KEY`: Example API key passed through to containers (model-specific)&lt;br /&gt;
* `LANGGRAPH_CLI_NO_ANALYTICS`: Set to `1` to disable CLI analytics&lt;br /&gt;
&lt;br /&gt;
=== Docker Configuration Variables (JSON format) ===&lt;br /&gt;
&lt;br /&gt;
* `LANGGRAPH_STORE`: Store configuration&lt;br /&gt;
* `LANGGRAPH_AUTH`: Authentication configuration&lt;br /&gt;
* `LANGGRAPH_ENCRYPTION`: Encryption configuration&lt;br /&gt;
* `LANGGRAPH_HTTP`: HTTP configuration&lt;br /&gt;
* `LANGGRAPH_WEBHOOKS`: Webhooks configuration&lt;br /&gt;
* `LANGGRAPH_CHECKPOINTER`: Checkpointer configuration&lt;br /&gt;
* `LANGGRAPH_UI`: UI configuration&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install CLI (basic)&lt;br /&gt;
pip install langgraph-cli&lt;br /&gt;
&lt;br /&gt;
# Install CLI with in-memory development server (Python 3.11+)&lt;br /&gt;
pip install &amp;quot;langgraph-cli[inmem]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Verify Docker is available&lt;br /&gt;
docker info&lt;br /&gt;
docker compose version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Python and Node.js version constants from `libs/cli/langgraph_cli/config.py:13-19`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
MIN_NODE_VERSION = &amp;quot;20&amp;quot;&lt;br /&gt;
DEFAULT_NODE_VERSION = &amp;quot;20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MIN_PYTHON_VERSION = &amp;quot;3.11&amp;quot;&lt;br /&gt;
DEFAULT_PYTHON_VERSION = &amp;quot;3.11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
DEFAULT_IMAGE_DISTRO = &amp;quot;debian&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Docker capability checking from `libs/cli/langgraph_cli/docker.py:48-90`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def check_capabilities(runner) -&amp;gt; DockerCapabilities:&lt;br /&gt;
    # check docker available&lt;br /&gt;
    if shutil.which(&amp;quot;docker&amp;quot;) is None:&lt;br /&gt;
        raise click.UsageError(&amp;quot;Docker not installed&amp;quot;) from None&lt;br /&gt;
    # ...&lt;br /&gt;
    return DockerCapabilities(&lt;br /&gt;
        version_docker=docker_version,&lt;br /&gt;
        version_compose=compose_version,&lt;br /&gt;
        healthcheck_start_interval=docker_version &amp;gt;= Version(25, 0, 0),&lt;br /&gt;
        compose_type=compose_type,&lt;br /&gt;
    )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default PostgreSQL URI from `libs/cli/langgraph_cli/docker.py:12`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
DEFAULT_POSTGRES_URI = (&lt;br /&gt;
    &amp;quot;postgres://postgres:postgres@langgraph-postgres:5432/postgres?sslmode=disable&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In-memory server Python version check from `libs/cli/langgraph_cli/cli.py:701-729`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
try:&lt;br /&gt;
    from langgraph_api.cli import run_server&lt;br /&gt;
except ImportError:&lt;br /&gt;
    # Guides users to install with: pip install -U &amp;quot;langgraph-cli[inmem]&amp;quot;&lt;br /&gt;
    # Requires Python 3.11+&lt;br /&gt;
    raise&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `Docker not installed` || Docker binary not found in PATH || Install Docker Engine from docker.com&lt;br /&gt;
|-&lt;br /&gt;
|| `Docker not installed or not running` || Docker daemon is not running || Start Docker with `sudo systemctl start docker` or open Docker Desktop&lt;br /&gt;
|-&lt;br /&gt;
|| `Docker Compose not installed` || Neither Compose plugin nor standalone found || Install Docker Compose plugin or standalone `docker-compose`&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError` when running `langgraph dev` || Missing `langgraph-cli[inmem]` extra || `pip install -U &amp;quot;langgraph-cli[inmem]&amp;quot;` (requires Python &amp;gt;= 3.11)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docker healthcheck_start_interval:&#039;&#039;&#039; Only supported on Docker &amp;gt;= 25.0.0; silently omitted on older versions&lt;br /&gt;
* &#039;&#039;&#039;Compose types:&#039;&#039;&#039; Supports both Docker Compose plugin (`docker compose`) and standalone (`docker-compose`)&lt;br /&gt;
* &#039;&#039;&#039;Base images:&#039;&#039;&#039; Auto-selected based on graph language: `langchain/langgraph-api` (Python), `langchain/langgraphjs-api` (JS/TS)&lt;br /&gt;
* &#039;&#039;&#039;Distros:&#039;&#039;&#039; Default is `debian`; supports `slim`, `alpine`, `wolfi`. Bullseye is no longer supported&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; CLI deployment commands require WSL2 or a Docker-compatible Linux environment&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Langchain_ai_Langgraph_Langgraph_Dev_Command]]&lt;br /&gt;
* [[required_by::Implementation:Langchain_ai_Langgraph_Langgraph_Build_Command]]&lt;br /&gt;
* [[required_by::Implementation:Langchain_ai_Langgraph_Langgraph_Up_Command]]&lt;br /&gt;
* [[required_by::Implementation:Langchain_ai_Langgraph_Validate_Config_File]]&lt;br /&gt;
* [[required_by::Implementation:Langchain_ai_Langgraph_RemoteGraph_Init]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:NVIDIA_DALI_PyTorch_Environment&amp;diff=27798</id>
		<title>Environment:NVIDIA DALI PyTorch Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:NVIDIA_DALI_PyTorch_Environment&amp;diff=27798"/>
		<updated>2026-02-16T18:46:00Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/NVIDIA_DALI_PyTorch_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=NVIDIA_DALI_PyTorch_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=NVIDIA_DALI_PyTorch_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/NVIDIA/DALI NVIDIA DALI]&lt;br /&gt;
* [https://docs.nvidia.com/deeplearning/dali/user-guide/docs/plugins/pytorch_plugin_api.html DALI PyTorch Plugin]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Deep_Learning]], [[domain::Computer_Vision]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-08 16:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
PyTorch &amp;gt;= 1.9.0 environment with `nvidia-dali-cuda120` for GPU-accelerated data loading via `DALIClassificationIterator` and `DALIGenericIterator`.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment extends the base CUDA GPU environment with PyTorch-specific integration. DALI provides PyTorch iterator wrappers (`DALIClassificationIterator`, `DALIGenericIterator`) that produce `torch.Tensor` outputs directly on GPU, eliminating the CPU-to-GPU transfer bottleneck of standard `torch.utils.data.DataLoader`. The environment also supports PyTorch Distributed Data Parallel (DDP) with NCCL backend for multi-GPU training, and `torch.cuda.amp` for mixed-precision training with DALI data pipelines.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for any &#039;&#039;&#039;PyTorch training workflow&#039;&#039;&#039; that uses DALI for data loading. This is the mandatory prerequisite for the &#039;&#039;&#039;DALIClassificationIterator&#039;&#039;&#039;, &#039;&#039;&#039;DALIGenericIterator&#039;&#039;&#039;, &#039;&#039;&#039;Train_Function_PyTorch&#039;&#039;&#039;, and &#039;&#039;&#039;PyTorch_Output_Integration&#039;&#039;&#039; implementations.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (manylinux_2_28 compatible) || Same as CUDA GPU Environment&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || NVIDIA GPU with CUDA support || Multi-GPU supported via NCCL&lt;br /&gt;
|-&lt;br /&gt;
| CUDA Toolkit || 12.0+ || Required for DALI GPU operators&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 5GB+ SSD || For PyTorch + DALI packages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* CUDA Toolkit &amp;gt;= 12.0&lt;br /&gt;
* NCCL (for multi-GPU distributed training)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `torch` &amp;gt;= 1.9.0&lt;br /&gt;
* `nvidia-dali-cuda120` &amp;gt;= 1.48.0&lt;br /&gt;
* `numpy` &amp;gt;= 2.0&lt;br /&gt;
* `pillow` (optional, for non-DALI image ops)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables are used for distributed training:&lt;br /&gt;
&lt;br /&gt;
* `WORLD_SIZE`: Total number of distributed processes.&lt;br /&gt;
* `LOCAL_RANK`: Local GPU rank within the node.&lt;br /&gt;
* `RANK`: Global rank of the process.&lt;br /&gt;
* `MASTER_ADDR`: Address of the master node (for `init_method=&#039;env://&#039;`).&lt;br /&gt;
* `MASTER_PORT`: Port on the master node.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install PyTorch (CUDA 12.x)&lt;br /&gt;
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121&lt;br /&gt;
&lt;br /&gt;
# Install DALI for CUDA 12.x&lt;br /&gt;
pip install --extra-index-url https://pypi.nvidia.com --upgrade nvidia-dali-cuda120&lt;br /&gt;
&lt;br /&gt;
# Verify integration&lt;br /&gt;
python -c &amp;quot;from nvidia.dali.plugin.pytorch import DALIClassificationIterator; print(&#039;OK&#039;)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
PyTorch DDP initialization from `docs/examples/use_cases/pytorch/resnet50/main.py:206-268`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if &#039;WORLD_SIZE&#039; in os.environ:&lt;br /&gt;
    args.distributed = int(os.environ[&#039;WORLD_SIZE&#039;]) &amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
if args.distributed:&lt;br /&gt;
    args.local_rank = int(os.environ[&#039;LOCAL_RANK&#039;])&lt;br /&gt;
    torch.cuda.set_device(args.local_rank)&lt;br /&gt;
    torch.distributed.init_process_group(backend=&#039;nccl&#039;, init_method=&#039;env://&#039;)&lt;br /&gt;
    args.world_size = torch.distributed.get_world_size()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mixed precision (AMP) integration from `docs/examples/use_cases/pytorch/resnet50/main.py:480-601`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from torch.cuda.amp import autocast, GradScaler&lt;br /&gt;
&lt;br /&gt;
scaler = torch.cuda.amp.GradScaler(&lt;br /&gt;
    init_scale=args.loss_scale,&lt;br /&gt;
    growth_factor=2.0,&lt;br /&gt;
    backoff_factor=0.5,&lt;br /&gt;
    growth_interval=2000&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
with autocast(enabled=args.fp16_mode):&lt;br /&gt;
    output = model(input)&lt;br /&gt;
    loss = criterion(output, target)&lt;br /&gt;
&lt;br /&gt;
scaler.scale(loss).backward()&lt;br /&gt;
scaler.step(optimizer)&lt;br /&gt;
scaler.update()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DALI iterator creation from `docs/examples/use_cases/pytorch/resnet50/main.py:312-331`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
pipe = create_dali_pipeline(&lt;br /&gt;
    batch_size=batch_size,&lt;br /&gt;
    num_threads=args.workers,&lt;br /&gt;
    device_id=args.local_rank,&lt;br /&gt;
    seed=12 + args.local_rank,&lt;br /&gt;
    shard_id=args.local_rank,&lt;br /&gt;
    num_shards=args.world_size,&lt;br /&gt;
    pad_last_batch=True,&lt;br /&gt;
    is_training=True,&lt;br /&gt;
)&lt;br /&gt;
pipe.build()&lt;br /&gt;
train_loader = DALIClassificationIterator(&lt;br /&gt;
    pipe,&lt;br /&gt;
    reader_name=&amp;quot;Reader&amp;quot;,&lt;br /&gt;
    last_batch_policy=LastBatchPolicy.PARTIAL,&lt;br /&gt;
    auto_reset=True,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: cannot import name &#039;DALIClassificationIterator&#039;` || DALI not installed or wrong CUDA version || `pip install --extra-index-url https://pypi.nvidia.com nvidia-dali-cuda120`&lt;br /&gt;
|-&lt;br /&gt;
|| `RuntimeError: NCCL error` || NCCL communication failure in distributed training || Verify MASTER_ADDR, MASTER_PORT are set; check network connectivity&lt;br /&gt;
|-&lt;br /&gt;
|| `CUDA out of memory` || Batch size too large for GPU VRAM || Reduce `batch_size` or use gradient accumulation&lt;br /&gt;
|-&lt;br /&gt;
|| `StopIteration` not resetting || Iterator exhausted without auto-reset || Set `auto_reset=True` in DALIClassificationIterator&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PyTorch DDP:&#039;&#039;&#039; DALI handles data sharding internally via `shard_id`/`num_shards`. Do not use PyTorch&#039;s `DistributedSampler` with DALI iterators.&lt;br /&gt;
* &#039;&#039;&#039;torch.cuda.amp:&#039;&#039;&#039; Fully compatible with DALI output tensors. DALI outputs float32 by default; AMP autocast handles the rest.&lt;br /&gt;
* &#039;&#039;&#039;Learning Rate Scaling:&#039;&#039;&#039; When using DDP, scale learning rate by `batch_size * world_size / 256` (256 is the standard reference batch size).&lt;br /&gt;
* &#039;&#039;&#039;NGC Containers:&#039;&#039;&#039; DALI is preinstalled in NVIDIA NGC PyTorch containers.&lt;br /&gt;
* &#039;&#039;&#039;torchrun:&#039;&#039;&#039; Use `torchrun --nproc_per_node=N` to launch distributed training; environment variables are set automatically.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:NVIDIA_DALI_DALIClassificationIterator]]&lt;br /&gt;
* [[required_by::Implementation:NVIDIA_DALI_DALIGenericIterator]]&lt;br /&gt;
* [[required_by::Implementation:NVIDIA_DALI_Train_Function_PyTorch]]&lt;br /&gt;
* [[required_by::Implementation:NVIDIA_DALI_PyTorch_Output_Integration]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Ggml_org_Ggml_CUDA_GPU_Environment&amp;diff=27797</id>
		<title>Environment:Ggml org Ggml CUDA GPU Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Ggml_org_Ggml_CUDA_GPU_Environment&amp;diff=27797"/>
		<updated>2026-02-16T18:45:59Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Ggml_org_Ggml_CUDA_GPU_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Ggml_org_Ggml_CUDA_GPU_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Ggml_org_Ggml_CUDA_GPU_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/ggml-org/ggml GGML]&lt;br /&gt;
* [https://github.com/ggml-org/ggml/blob/master/src/ggml-cuda/CMakeLists.txt CUDA CMakeLists]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::GPU_Computing]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-10 07:40 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
NVIDIA CUDA GPU environment supporting compute capabilities 50 through 121, requiring CUDA Toolkit 10.0+ and CMake 3.18+ for GPU-accelerated tensor operations.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides GPU acceleration for GGML tensor operations on NVIDIA GPUs via the CUDA backend. The same backend code also supports AMD GPUs (via HIP/ROCm) and Moore Threads GPUs (via MUSA) through vendor-specific compatibility headers. The backend supports a wide range of GPU architectures from Maxwell (CC 50) to Rubin (CC 121), with newer architectures requiring newer CUDA Toolkit versions. Features like FP16 tensor cores, INT8 tensor cores, and FP4 tensor cores are architecture-dependent.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;GPU-accelerated inference&#039;&#039;&#039; and &#039;&#039;&#039;training&#039;&#039;&#039; workloads. It is required when running models that need more compute throughput than the CPU backend can provide, or when using GPU-specific features like tensor cores for quantized matrix multiplication.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux or Windows || Self-hosted CI uses Ubuntu 22.04&lt;br /&gt;
|-&lt;br /&gt;
| GPU || NVIDIA GPU (CC &amp;gt;= 50) || Maxwell or newer&lt;br /&gt;
|-&lt;br /&gt;
| VRAM || Depends on model size || Larger models require more VRAM&lt;br /&gt;
|-&lt;br /&gt;
| Build System || CMake 3.18+ || Required for CMAKE_CUDA_ARCHITECTURES&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* NVIDIA CUDA Toolkit &amp;gt;= 10.0&lt;br /&gt;
** CC 86 (RTX 3000): requires CUDA &amp;gt;= 11.1&lt;br /&gt;
** CC 89 (RTX 4000): requires CUDA &amp;gt;= 11.8&lt;br /&gt;
** CC 120 (Blackwell): requires CUDA &amp;gt;= 12.8&lt;br /&gt;
** CC 121 (Rubin): requires CUDA &amp;gt;= 12.9&lt;br /&gt;
* NVIDIA GPU driver compatible with toolkit version&lt;br /&gt;
&lt;br /&gt;
=== Optional ===&lt;br /&gt;
&lt;br /&gt;
* CCCL 3.2 (NVIDIA C++ Core Libraries) for latest features&lt;br /&gt;
* CUDA 12.8+ for compression mode support&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials are required.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install CUDA Toolkit (Ubuntu)&lt;br /&gt;
sudo apt-get install nvidia-cuda-toolkit&lt;br /&gt;
&lt;br /&gt;
# Build GGML with CUDA backend&lt;br /&gt;
cmake -B build -DGGML_CUDA=ON&lt;br /&gt;
cmake --build build --config Release&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Architecture selection from `src/ggml-cuda/CMakeLists.txt:8-55`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)&lt;br /&gt;
    # native == GPUs available at build time&lt;br /&gt;
    # 50     == Maxwell, lowest CUDA 12 standard&lt;br /&gt;
    # 60     == P100, FP16 CUDA intrinsics&lt;br /&gt;
    # 61     == Pascal, __dp4a instruction (per-byte integer dot product)&lt;br /&gt;
    # 70     == V100, FP16 tensor cores&lt;br /&gt;
    # 75     == Turing, int8 tensor cores&lt;br /&gt;
    # 80     == Ampere, asynchronous data loading, faster tensor core instructions&lt;br /&gt;
    # 86     == RTX 3000, needs CUDA v11.1&lt;br /&gt;
    # 89     == RTX 4000, needs CUDA v11.8&lt;br /&gt;
    # 120    == Blackwell, needs CUDA v12.8, FP4 tensor cores&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CMake minimum version for CUDA from `src/ggml-cuda/CMakeLists.txt:1`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.18)  # for CMAKE_CUDA_ARCHITECTURES&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Blackwell architecture handling from `src/ggml-cuda/CMakeLists.txt:39-51`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cmake&amp;quot;&amp;gt;&lt;br /&gt;
if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL &amp;quot;12.8&amp;quot;)&lt;br /&gt;
    # The CUDA architecture 120f-virtual would in principle work for Blackwell&lt;br /&gt;
    # but the newly added &amp;quot;f&amp;quot; suffix conflicted with a preexisting regex&lt;br /&gt;
    # for validating CUDA architectures in CMake.&lt;br /&gt;
    list(APPEND CMAKE_CUDA_ARCHITECTURES 120a-real)&lt;br /&gt;
endif()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `CUDAToolkit not found` || CUDA Toolkit not installed || Install CUDA Toolkit from NVIDIA developer site&lt;br /&gt;
|-&lt;br /&gt;
|| `Unsupported gpu architecture &#039;compute_XX&#039;` || CUDA version too old for target GPU || Upgrade CUDA Toolkit to version supporting your GPU architecture&lt;br /&gt;
|-&lt;br /&gt;
|| `CMake 3.18 or higher is required` || CMake too old for CUDA support || Upgrade CMake to 3.18+&lt;br /&gt;
|-&lt;br /&gt;
|| `CUDA out of memory` || Model too large for available VRAM || Use a smaller model or quantized model format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;AMD GPUs (ROCm/HIP):&#039;&#039;&#039; The same backend code compiles for AMD GPUs via the HIP compatibility layer (`src/ggml-cuda/vendors/hip.h`). Build with `-DGGML_HIP=ON`.&lt;br /&gt;
* &#039;&#039;&#039;Moore Threads (MUSA):&#039;&#039;&#039; Supported via MUSA compatibility header (`src/ggml-cuda/vendors/musa.h`). Build with `-DGGML_MUSA=ON`.&lt;br /&gt;
* &#039;&#039;&#039;Blackwell (CC 120):&#039;&#039;&#039; Requires CMake &amp;gt;= 3.31.8 or &amp;gt;= 4.0.2 for the `120f-virtual` architecture suffix; alternatively use `120a-real` which works with any CMake version.&lt;br /&gt;
* &#039;&#039;&#039;Native builds:&#039;&#039;&#039; Use `GGML_NATIVE=ON` with CUDA &amp;gt;= 11.6 and CMake &amp;gt;= 3.24 to auto-detect installed GPU architecture.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_backend_load_all]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Ggml_backend_init_best]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Gpt2_model_load]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Gpt2_graph]]&lt;br /&gt;
* [[required_by::Implementation:Ggml_org_Ggml_Sam_encode_image]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Elevenlabs_Elevenlabs_python_Python_Httpx&amp;diff=27796</id>
		<title>Environment:Elevenlabs Elevenlabs python Python Httpx</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Elevenlabs_Elevenlabs_python_Python_Httpx&amp;diff=27796"/>
		<updated>2026-02-16T18:45:58Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Elevenlabs_Elevenlabs_python_Python_Httpx.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Elevenlabs_Elevenlabs_python_Python_Httpx}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/elevenlabs/elevenlabs-python elevenlabs-python]&lt;br /&gt;
* [https://www.python-httpx.org/ httpx documentation]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::API_Client]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-15 12:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.8+ environment with httpx, pydantic, and requests for the ElevenLabs REST API client.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the core runtime for all synchronous HTTP-based ElevenLabs SDK operations. It is built on &#039;&#039;&#039;httpx&#039;&#039;&#039; for HTTP transport, &#039;&#039;&#039;pydantic&#039;&#039;&#039; for data validation and serialization, and &#039;&#039;&#039;typing_extensions&#039;&#039;&#039; for backporting newer type hints to Python 3.8. The client wrapper uses httpx internally for all REST API calls including text-to-speech, voice management, speech-to-text (batch), and voice cloning endpoints.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for any ElevenLabs SDK operation that communicates over &#039;&#039;&#039;HTTP REST&#039;&#039;&#039;. This includes client initialization via `ElevenLabs()`, voice search, text-to-speech conversion, batch speech-to-text, and instant voice cloning. It is the mandatory prerequisite for the sync and async HTTP client infrastructure.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Any (Windows, macOS, Linux) || Cross-platform support declared in pyproject.toml&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.8 || Classifiers list 3.8 through 3.12&lt;br /&gt;
|-&lt;br /&gt;
| Network || Internet access to api.elevenlabs.io || Production, US, EU, and India region endpoints available&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `httpx` &amp;gt;= 0.21.2&lt;br /&gt;
* `pydantic` &amp;gt;= 1.9.2&lt;br /&gt;
* `pydantic-core` &amp;gt;= 2.18.2&lt;br /&gt;
* `requests` &amp;gt;= 2.20&lt;br /&gt;
* `typing_extensions` &amp;gt;= 4.0.0&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables must be set:&lt;br /&gt;
* `ELEVENLABS_API_KEY`: ElevenLabs API key. The client reads this via `os.getenv(&amp;quot;ELEVENLABS_API_KEY&amp;quot;)` if no `api_key` parameter is passed to the constructor.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install the ElevenLabs SDK (includes all HTTP dependencies)&lt;br /&gt;
pip install elevenlabs&lt;br /&gt;
&lt;br /&gt;
# Or install core dependencies manually&lt;br /&gt;
pip install httpx&amp;gt;=0.21.2 pydantic&amp;gt;=1.9.2 pydantic-core&amp;gt;=2.18.2 requests&amp;gt;=2.20 typing_extensions&amp;gt;=4.0.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
API key auto-detection from environment in `client.py:50`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
api_key: typing.Optional[str] = os.getenv(&amp;quot;ELEVENLABS_API_KEY&amp;quot;),&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default timeout configuration in `client.py:51`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
timeout: typing.Optional[float] = 240,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Timeout defaulting logic in `base_client.py:91-92`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
_defaulted_timeout = (&lt;br /&gt;
    timeout if timeout is not None else 240 if httpx_client is None else httpx_client.timeout.read&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Region endpoint definitions in `environment.py:7-10`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
class ElevenLabsEnvironment(enum.Enum):&lt;br /&gt;
    PRODUCTION = &amp;quot;https://api.elevenlabs.io&amp;quot;&lt;br /&gt;
    PRODUCTION_US = &amp;quot;https://api.us.elevenlabs.io&amp;quot;&lt;br /&gt;
    PRODUCTION_EU = &amp;quot;https://api.eu.residency.elevenlabs.io&amp;quot;&lt;br /&gt;
    PRODUCTION_INDIA = &amp;quot;https://api.in.residency.elevenlabs.io&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ELEVENLABS_API_KEY` not set and no `api_key` passed || Missing API credentials || Set `ELEVENLABS_API_KEY` environment variable or pass `api_key=` to `ElevenLabs()`&lt;br /&gt;
|-&lt;br /&gt;
|| `httpx.TimeoutException` || Request exceeded 240s default timeout || Increase timeout: `ElevenLabs(timeout=600)` or pass custom `httpx_client`&lt;br /&gt;
|-&lt;br /&gt;
|| `httpx.ConnectError` || Cannot reach api.elevenlabs.io || Check network connectivity and firewall rules&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Cross-platform:&#039;&#039;&#039; Works on Windows, macOS, and Linux per pyproject.toml classifiers.&lt;br /&gt;
* &#039;&#039;&#039;Python 3.8+:&#039;&#039;&#039; Uses `typing_extensions` for backporting features to Python 3.8.&lt;br /&gt;
* &#039;&#039;&#039;Custom httpx client:&#039;&#039;&#039; Users can pass a pre-configured `httpx.Client` or `httpx.AsyncClient` for custom proxy, SSL, or timeout settings.&lt;br /&gt;
* &#039;&#039;&#039;Regional endpoints:&#039;&#039;&#039; Supports Production (global), US, EU, and India residency endpoints via `ElevenLabsEnvironment`.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Elevenlabs_Elevenlabs_python_ElevenLabs_Init]]&lt;br /&gt;
* [[required_by::Implementation:Elevenlabs_Elevenlabs_python_VoicesClient_Search]]&lt;br /&gt;
* [[required_by::Implementation:Elevenlabs_Elevenlabs_python_TextToSpeechClient_Convert]]&lt;br /&gt;
* [[required_by::Implementation:Elevenlabs_Elevenlabs_python_IvcClient_Create]]&lt;br /&gt;
* [[required_by::Implementation:Elevenlabs_Elevenlabs_python_SpeechToTextClient_Convert]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:DevExpress_Testcafe_Node_Runtime&amp;diff=27795</id>
		<title>Environment:DevExpress Testcafe Node Runtime</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:DevExpress_Testcafe_Node_Runtime&amp;diff=27795"/>
		<updated>2026-02-16T18:45:56Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/DevExpress_Testcafe_Node_Runtime.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=DevExpress_Testcafe_Node_Runtime}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/DevExpress/testcafe DevExpress TestCafe]&lt;br /&gt;
* [https://nodejs.org/ Node.js]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Runtime]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-12 03:30 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Node.js &amp;gt;= 16.0.0 runtime environment required by TestCafe for test compilation, execution, and browser orchestration.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
TestCafe is a Node.js-based end-to-end testing framework that requires Node.js 16.0.0 or higher. The runtime provides the foundation for test file compilation (Babel/TypeScript transpilation), browser process management via Chrome DevTools Protocol and Firefox Marionette, HTTP proxy server (testcafe-hammerhead), and the CLI/programmatic API. ESM loader support requires Node.js 18.19.0+ or 20.8.0+ for the &#039;&#039;&#039;module.register&#039;&#039;&#039; API. Internal module prefix resolution differs between Node versions (&#039;&#039;node:&#039;&#039; prefix for Node 15+, &#039;&#039;internal/&#039;&#039; for earlier).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Required for &#039;&#039;&#039;all&#039;&#039;&#039; TestCafe operations. Every workflow (CLI execution, programmatic API, CI integration) runs on top of the Node.js runtime. The ESM loader for ES module test files is only available on Node.js 18.19.0+ or 20.8.0+.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, Windows || All major platforms supported&lt;br /&gt;
|-&lt;br /&gt;
| Runtime || Node.js &amp;gt;= 16.0.0 || Declared in package.json `engines` field&lt;br /&gt;
|-&lt;br /&gt;
| ESM Support || Node.js &amp;gt;= 18.19.0 or &amp;gt;= 20.8.0 || Required for `module.register` ESM loader API&lt;br /&gt;
|-&lt;br /&gt;
| Disk || ~200MB || For node_modules dependencies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `nodejs` &amp;gt;= 16.0.0&lt;br /&gt;
* `npm` (bundled with Node.js)&lt;br /&gt;
&lt;br /&gt;
=== NPM Packages (Core) ===&lt;br /&gt;
&lt;br /&gt;
* `@babel/core` &amp;gt;= 7.23.2 (test file compilation)&lt;br /&gt;
* `typescript` = 4.7.4 (TypeScript test files)&lt;br /&gt;
* `coffeescript` &amp;gt;= 2.3.1 (CoffeeScript test files)&lt;br /&gt;
* `testcafe-hammerhead` = 31.7.7 (HTTP proxy)&lt;br /&gt;
* `chrome-remote-interface` &amp;gt;= 0.32.2 (Chrome DevTools Protocol)&lt;br /&gt;
* `semver` &amp;gt;= 7.5.3 (version checking)&lt;br /&gt;
* `commander` &amp;gt;= 8.3.0 (CLI argument parsing)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials required for the Node.js runtime itself. See other environment pages for browser-specific or CI-specific credentials.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install Node.js 16+ (via nvm)&lt;br /&gt;
nvm install 16&lt;br /&gt;
nvm use 16&lt;br /&gt;
&lt;br /&gt;
# Install TestCafe&lt;br /&gt;
npm install testcafe&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Node.js version requirement from `package.json:21-23`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;engines&amp;quot;: {&lt;br /&gt;
    &amp;quot;node&amp;quot;: &amp;quot;&amp;gt;=16.0.0&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ESM loader registration gated by Node version from `src/compiler/test-file/api-based.js:73-74`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if (semver.satisfies(process.version, &#039;18.19.0 - 18.x || &amp;gt;=20.8.0&#039;))&lt;br /&gt;
    register(&#039;../esm-loader.js&#039;, pathToFileURL(__filename));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Internal module prefix detection from `src/errors/internal-modules-prefix.ts:1-3`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;typescript&amp;quot;&amp;gt;&lt;br /&gt;
import semver from &#039;semver&#039;;&lt;br /&gt;
&lt;br /&gt;
const INTERNAL_MODULES_PREFIX = semver.gte(process.version, &#039;15.0.0&#039;) ? &#039;node:&#039; : &#039;internal/&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `Error: Unsupported engine` || Node.js version below 16.0.0 || Upgrade Node.js to 16+ via nvm or system package manager&lt;br /&gt;
|-&lt;br /&gt;
|| `ERR_UNKNOWN_MODULE_FORMAT` || ESM test files on Node &amp;lt; 18.19 || Upgrade to Node 18.19+ or use CommonJS require syntax&lt;br /&gt;
|-&lt;br /&gt;
|| `ES Module: &amp;lt;file&amp;gt;` || ES Module import in CJS context || Use `--experimental-loader` flag or upgrade Node version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Node.js 16.x:&#039;&#039;&#039; Minimum supported version. ESM loader requires `--experimental-loader` flag via NODE_OPTIONS.&lt;br /&gt;
* &#039;&#039;&#039;Node.js 18.19+:&#039;&#039;&#039; Supports `module.register` API for cleaner ESM loader integration.&lt;br /&gt;
* &#039;&#039;&#039;Node.js 20.8+:&#039;&#039;&#039; Full ESM support without experimental flags.&lt;br /&gt;
* &#039;&#039;&#039;TypeScript:&#039;&#039;&#039; Bundled TypeScript compiler is version 4.7.4; user-provided `tsconfig.json` options are partially overridable (module, moduleResolution, and target are locked).&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_Testcafe_CLI_Entry]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_CreateTestCafe_Factory]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_Compiler_GetTests]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_CLI_Run_Orchestration]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_Runner_Run]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_CI_Npm_Install_Pattern]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Huggingface_Alignment_handbook_Python_TRL&amp;diff=27794</id>
		<title>Environment:Huggingface Alignment handbook Python TRL</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Huggingface_Alignment_handbook_Python_TRL&amp;diff=27794"/>
		<updated>2026-02-16T18:45:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Huggingface_Alignment_handbook_Python_TRL.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Huggingface_Alignment_handbook_Python_TRL}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Huggingface_Alignment_handbook_Python_TRL}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/huggingface/alignment-handbook Alignment Handbook]&lt;br /&gt;
* [https://huggingface.co/docs/trl TRL Documentation]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::NLP]], [[domain::Deep_Learning]], [[domain::Training]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-07 00:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python environment with TRL &amp;gt;= 0.19.1 providing SFTTrainer, DPOTrainer, ORPOTrainer, TrlParser, and PEFT integration utilities.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
TRL (Transformer Reinforcement Learning) is the core training library used by the alignment-handbook. It provides the trainer classes (SFTTrainer, DPOTrainer, ORPOTrainer), the configuration parser (TrlParser), and utility functions (get_peft_config, get_quantization_config, get_kbit_device_map, setup_chat_format). All three training scripts import directly from TRL.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for &#039;&#039;&#039;any&#039;&#039;&#039; training script in the alignment-handbook. TRL is a mandatory dependency that provides the trainer implementations, config parsing, and LoRA/quantization utilities used by every workflow.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.10.9 || Required by the alignment-handbook package&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || NVIDIA GPU || TRL trainers use PyTorch CUDA backend&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `trl` &amp;gt;= 0.19.1&lt;br /&gt;
* `transformers` &amp;gt;= 4.53.3 (peer dependency)&lt;br /&gt;
* `accelerate` &amp;gt;= 1.9.0 (peer dependency)&lt;br /&gt;
* `torch` &amp;gt;= 2.6.0 (peer dependency)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No additional credentials beyond those in the PyTorch_CUDA environment.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# TRL is installed as part of the alignment-handbook&lt;br /&gt;
uv pip install .&lt;br /&gt;
&lt;br /&gt;
# Or install TRL standalone&lt;br /&gt;
pip install trl&amp;gt;=0.19.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
TRL version requirement from `setup.py:69`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;quot;trl&amp;gt;=0.19.1&amp;quot;,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TRL imports in `scripts/sft.py:48`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from trl import ModelConfig, SFTTrainer, TrlParser, get_peft_config, setup_chat_format&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TRL imports in `scripts/dpo.py:61`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from trl import DPOTrainer, ModelConfig, TrlParser, get_peft_config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TRL imports in `scripts/orpo.py:62`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from trl import ModelConfig, ORPOTrainer, TrlParser, get_peft_config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TRL base classes in `src/alignment/configs.py:33-34,57,134,143,152`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import trl&lt;br /&gt;
&lt;br /&gt;
class ScriptArguments(trl.ScriptArguments):&lt;br /&gt;
class SFTConfig(trl.SFTConfig):&lt;br /&gt;
class DPOConfig(trl.DPOConfig):&lt;br /&gt;
class ORPOConfig(trl.ORPOConfig):&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: cannot import name &#039;SFTTrainer&#039; from &#039;trl&#039;` || TRL version too old || Upgrade: `pip install trl&amp;gt;=0.19.1`&lt;br /&gt;
|-&lt;br /&gt;
|| `AttributeError: &#039;SFTConfig&#039; has no attribute &#039;packing_strategy&#039;` || TRL version missing newer features || Upgrade TRL to latest version for SmolLM3 recipes&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: cannot import name &#039;TrlParser&#039; from &#039;trl&#039;` || TRL version too old || Upgrade: `pip install trl&amp;gt;=0.19.1`&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TRL version:&#039;&#039;&#039; The alignment-handbook extends TRL&#039;s config classes (ScriptArguments, SFTConfig, DPOConfig, ORPOConfig) with additional fields. Ensure TRL version matches or exceeds the requirement.&lt;br /&gt;
* &#039;&#039;&#039;SmolLM3 recipes:&#039;&#039;&#039; Newer features like `packing_strategy: ffd`, `padding_free: true`, `use_liger_kernel: true`, and `assistant_only_loss: true` require the latest TRL versions.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Huggingface_Alignment_handbook_TrlParser_Parse_Args_And_Config]]&lt;br /&gt;
* [[required_by::Implementation:Huggingface_Alignment_handbook_Setup_Chat_Format]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Fede1024_Rust_rdkafka_CI_Test_Runner&amp;diff=27793</id>
		<title>Environment:Fede1024 Rust rdkafka CI Test Runner</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Fede1024_Rust_rdkafka_CI_Test_Runner&amp;diff=27793"/>
		<updated>2026-02-16T18:45:54Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Fede1024_Rust_rdkafka_CI_Test_Runner.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Fede1024_Rust_rdkafka_CI_Test_Runner}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Fede1024_Rust_rdkafka_CI_Test_Runner}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/fede1024/rust-rdkafka/blob/master/.github/workflows/ci.yml rust-rdkafka CI]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::CI_CD]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-07 19:30 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
GitHub Actions CI environment on Ubuntu 24.04 with Rust 1.85, CMake, Docker Compose, and libcurl-dev for running lint, build, and integration tests across Kafka 3.7 through 4.0.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment defines the full CI pipeline configuration for the rust-rdkafka project. It consists of four jobs: &#039;&#039;&#039;lint&#039;&#039;&#039; (format + clippy), &#039;&#039;&#039;check&#039;&#039;&#039; (cross-platform builds on Ubuntu/macOS/Windows with various feature combinations), &#039;&#039;&#039;check-minimal-versions&#039;&#039;&#039; (MSRV validation with minimal dependency versions), and &#039;&#039;&#039;test&#039;&#039;&#039; (integration tests against multiple Kafka versions). The test job uses Docker Compose to start a Kafka broker and runs sequentially due to the test suite not supporting concurrent execution.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when &#039;&#039;&#039;running the full CI suite&#039;&#039;&#039; or &#039;&#039;&#039;reproducing CI failures locally&#039;&#039;&#039;. It documents the exact toolchain versions, system packages, and configuration used in automated testing.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Ubuntu 24.04 LTS || Primary CI runner; also tested on macOS 15 and Windows 2025&lt;br /&gt;
|-&lt;br /&gt;
| Rust || 1.85 (CI pinned) || MSRV is 1.74 but CI uses latest stable&lt;br /&gt;
|-&lt;br /&gt;
| Components || rustfmt, clippy || Required for lint job&lt;br /&gt;
|-&lt;br /&gt;
| Build Tool || CMake || Installed via `lukka/get-cmake@latest` action&lt;br /&gt;
|-&lt;br /&gt;
| Docker || Docker Engine + Compose || Required for test job (Kafka broker)&lt;br /&gt;
|-&lt;br /&gt;
| System Libs || `libcurl4-openssl-dev` || Installed via apt in test job&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== CI Job Matrix ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lint Job (ubuntu-24.04):&#039;&#039;&#039;&lt;br /&gt;
* Rust 1.85 with rustfmt, clippy&lt;br /&gt;
* Default features only&lt;br /&gt;
* Runs: `cargo fmt --check`, `cargo clippy -- -Dwarnings`, `cargo test --doc`&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Check Job (cross-platform):&#039;&#039;&#039;&lt;br /&gt;
* macOS 15: default features&lt;br /&gt;
* Windows 2025: `cmake-build,libz-static,curl-static`&lt;br /&gt;
* Ubuntu 24.04 (tracing): `tracing` feature&lt;br /&gt;
* Ubuntu 24.04 (full vendored): `cmake-build,ssl-vendored,gssapi-vendored,libz-static,curl-static,zstd`&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Check Minimal Versions Job (ubuntu-24.04):&#039;&#039;&#039;&lt;br /&gt;
* Nightly Rust (for `cargo -Z minimal-versions generate-lockfile`)&lt;br /&gt;
* Validates features: `libz,tokio,tracing`&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Test Job (ubuntu-24.04):&#039;&#039;&#039;&lt;br /&gt;
* Kafka versions: 4.0, 3.9, 3.8, 3.7&lt;br /&gt;
* `max-parallel: 1` (sequential execution)&lt;br /&gt;
* System package: `libcurl4-openssl-dev`&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables are used in CI:&lt;br /&gt;
&lt;br /&gt;
* `KAFKA_VERSION`: Set from matrix to control Docker Compose Kafka version.&lt;br /&gt;
* `TERM`: Set to `xterm-256color` for colored test output.&lt;br /&gt;
* `RUST_LOG`: Logging level (default: `off` in test_suite.sh).&lt;br /&gt;
* `RUST_BACKTRACE`: Set to `1` in test_suite.sh.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Reproduce CI test job locally on Ubuntu&lt;br /&gt;
sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install -y cmake libcurl4-openssl-dev&lt;br /&gt;
rustup toolchain install 1.85&lt;br /&gt;
rustup default 1.85&lt;br /&gt;
&lt;br /&gt;
# Start Kafka and run tests&lt;br /&gt;
KAFKA_VERSION=4.0 docker compose up -d&lt;br /&gt;
./test_suite.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
CI configuration from `.github/workflows/ci.yml:9-10`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
env:&lt;br /&gt;
  rust_version: 1.85&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test job with sequential execution from `.github/workflows/ci.yml:71-95`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
test:&lt;br /&gt;
    strategy:&lt;br /&gt;
      fail-fast: false&lt;br /&gt;
      max-parallel: 1  # The test suite doesn&#039;t support concurrent runs.&lt;br /&gt;
      matrix:&lt;br /&gt;
        include:&lt;br /&gt;
          - kafka-version: &amp;quot;4.0&amp;quot;&lt;br /&gt;
          - kafka-version: &amp;quot;3.9&amp;quot;&lt;br /&gt;
          - kafka-version: &amp;quot;3.8&amp;quot;&lt;br /&gt;
          - kafka-version: &amp;quot;3.7&amp;quot;&lt;br /&gt;
    runs-on: ubuntu-24.04&lt;br /&gt;
    steps:&lt;br /&gt;
      - uses: actions/checkout@v4&lt;br /&gt;
      - uses: lukka/get-cmake@latest&lt;br /&gt;
      - run: sudo apt-get install -y libcurl4-openssl-dev&lt;br /&gt;
      - run: ./test_suite.sh&lt;br /&gt;
        env:&lt;br /&gt;
          KAFKA_VERSION: ${{ matrix.kafka-version }}&lt;br /&gt;
          TERM: xterm-256color&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `cargo fmt -- --check` failure || Code not formatted with rustfmt || Run `cargo fmt` locally before pushing&lt;br /&gt;
|-&lt;br /&gt;
|| `cargo clippy -- -Dwarnings` failure || Clippy warnings treated as errors || Fix all clippy lints before pushing&lt;br /&gt;
|-&lt;br /&gt;
|| Test timeout/failure with Kafka || Kafka broker not ready or test race condition || Tests run sequentially (`max-parallel: 1`) to avoid this&lt;br /&gt;
|-&lt;br /&gt;
|| Minimal versions check failure || Dependency version lower bound too low || Update minimum version in Cargo.toml&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Sequential Tests:&#039;&#039;&#039; The `max-parallel: 1` constraint is critical because the test suite shares a single Kafka broker and does not support concurrent execution.&lt;br /&gt;
* &#039;&#039;&#039;Windows Builds:&#039;&#039;&#039; Require `cmake-build,libz-static,curl-static` features because the mklove build system does not work on Windows.&lt;br /&gt;
* &#039;&#039;&#039;Minimal Versions:&#039;&#039;&#039; Uses nightly Rust to generate a lockfile with minimum dependency versions, then validates compilation with the pinned stable Rust version.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Fede1024_Rust_rdkafka_MockCluster_New]]&lt;br /&gt;
* [[required_by::Implementation:Fede1024_Rust_rdkafka_MockCluster_Create_Topic]]&lt;br /&gt;
* [[required_by::Implementation:Fede1024_Rust_rdkafka_MockCluster_Bootstrap_Servers]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:LMCache_LMCache_VLLM_Serving_Engine&amp;diff=27792</id>
		<title>Environment:LMCache LMCache VLLM Serving Engine</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:LMCache_LMCache_VLLM_Serving_Engine&amp;diff=27792"/>
		<updated>2026-02-16T18:45:52Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/LMCache_LMCache_VLLM_Serving_Engine.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=LMCache_LMCache_VLLM_Serving_Engine}}&lt;br /&gt;
{{PageInfo|type=Environment|title=LMCache_LMCache_VLLM_Serving_Engine}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/LMCache/LMCache LMCache]&lt;br /&gt;
* [https://github.com/vllm-project/vllm vLLM]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::LLM_Serving]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 00:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
vLLM serving engine integration environment providing the KVConnectorBase_V1 interface that LMCache hooks into for transparent KV cache management.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
LMCache integrates with vLLM as a KV cache connector via the `KVConnectorBase_V1` interface. The integration adapter (`LMCacheConnectorV1Impl` in `vllm_v1_adapter.py`) handles version compatibility across different vLLM releases. LMCache dynamically dispatches between connector implementations based on the detected vLLM version and handles API differences between vLLM releases (e.g., `torch_utils` module location changes). The vLLM integration supports all four LMCache workflows and is the primary deployment mode. SGLang is also supported as an alternative serving engine.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when deploying LMCache &#039;&#039;&#039;with vLLM as the serving engine&#039;&#039;&#039;. The vLLM connector is activated by setting `LMCACHE_CONFIG_FILE` environment variable and launching vLLM with `--kv-connector LMCacheConnectorV1`. This is the standard deployment path for all production use cases including KV cache offloading, disaggregated prefill, P2P sharing, and CacheBlend.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| vLLM || Compatible version || LMCache handles multiple vLLM API versions dynamically&lt;br /&gt;
|-&lt;br /&gt;
| GPU || NVIDIA CUDA or Intel XPU || vLLM platform detection selects appropriate backend&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.10 || Aligned with LMCache Python requirements&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `vllm` (provides `KVConnectorBase_V1`, `current_platform`)&lt;br /&gt;
* `torch` (version determined by vLLM installation)&lt;br /&gt;
* `lmcache` (installed as KV connector plugin)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
* `LMCACHE_CONFIG_FILE`: Path to LMCache YAML configuration (required for vLLM integration).&lt;br /&gt;
* `LMCACHE_FORCE_SKIP_SAVE`: Set to skip all cache save operations (optional runtime override).&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install vLLM (determines torch version)&lt;br /&gt;
pip install vllm&lt;br /&gt;
&lt;br /&gt;
# Install LMCache (from source, preserving vLLM&#039;s torch)&lt;br /&gt;
pip install -e . --no-build-isolation&lt;br /&gt;
&lt;br /&gt;
# Launch vLLM with LMCache connector&lt;br /&gt;
LMCACHE_CONFIG_FILE=config.yaml vllm serve model_name --kv-connector LMCacheConnectorV1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
vLLM version import from `lmcache/integration/vllm/vllm_v1_adapter.py:23`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from vllm.version import __version__ as VLLM_VERSION&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vLLM API version compatibility from `lmcache/integration/vllm/utils.py:174-179`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
try:&lt;br /&gt;
    from vllm.utils.torch_utils import ...&lt;br /&gt;
except ImportError:&lt;br /&gt;
    from vllm.utils import ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Platform detection for device selection from `lmcache/integration/vllm/utils.py:293-310`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def get_torch_device():&lt;br /&gt;
    # Detects CUDA vs XPU via vLLM&#039;s current_platform&lt;br /&gt;
    if current_platform.is_cuda():&lt;br /&gt;
        torch_dev = torch.cuda&lt;br /&gt;
    elif current_platform.is_xpu():&lt;br /&gt;
        torch_dev = torch.xpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tensor parallel assumption from `lmcache/integration/vllm/utils.py:318-343`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Current assumption (TODO: add custom logic in the future):&lt;br /&gt;
- Tensor Parallel is intra-node&lt;br /&gt;
- Pipeline Parallel is inter-node&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: vllm.utils.torch_utils` || Older vLLM version with different API || LMCache handles this automatically via fallback import&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: vllm.platforms` || vLLM version lacks platform module || LMCache falls back gracefully; GPU detection may be limited&lt;br /&gt;
|-&lt;br /&gt;
|| KV connector not recognized || vLLM version too old || Update vLLM to a version supporting `KVConnectorBase_V1`&lt;br /&gt;
|-&lt;br /&gt;
|| `LMCACHE_CONFIG_FILE` not set || Missing configuration || Set the environment variable to a valid YAML config path&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;vLLM API versions:&#039;&#039;&#039; LMCache dynamically handles multiple vLLM versions via try/except import patterns. No specific vLLM version is pinned.&lt;br /&gt;
* &#039;&#039;&#039;SGLang alternative:&#039;&#039;&#039; LMCache also integrates with SGLang via `lmcache/integration/sglang/sglang_adapter.py` using a similar config mechanism.&lt;br /&gt;
* &#039;&#039;&#039;Torch version:&#039;&#039;&#039; LMCache intentionally does not pin torch at runtime to avoid conflicts with the serving engine&#039;s torch version.&lt;br /&gt;
* &#039;&#039;&#039;Multi-process mode:&#039;&#039;&#039; vLLM multi-process deployments use `vllm_multi_process_adapter.py` for cross-process KV cache coordination.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:LMCache_LMCache_LMCacheConnectorV1Impl_Init]]&lt;br /&gt;
* [[required_by::Implementation:LMCache_LMCache_VLLM_Serve_Decoder]]&lt;br /&gt;
* [[required_by::Implementation:LMCache_LMCache_VLLM_Serve_Prefiller]]&lt;br /&gt;
* [[required_by::Implementation:LMCache_LMCache_Blend_Example_Script]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Apache_Kafka_Docker_Build_Environment&amp;diff=27791</id>
		<title>Environment:Apache Kafka Docker Build Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Apache_Kafka_Docker_Build_Environment&amp;diff=27791"/>
		<updated>2026-02-16T18:45:51Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Apache_Kafka_Docker_Build_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Apache_Kafka_Docker_Build_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Apache_Kafka_Docker_Build_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/apache/kafka Apache Kafka]&lt;br /&gt;
* [https://github.com/apache/kafka/blob/trunk/docker/docker_release.py docker/docker_release.py]&lt;br /&gt;
* [https://github.com/apache/kafka/blob/trunk/docker/jvm/Dockerfile docker/jvm/Dockerfile]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Containerization]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-09 12:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Docker Engine with BuildX plugin for building multi-architecture (amd64/arm64) Kafka container images based on Eclipse Temurin 21 JRE Alpine.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The Docker Build Environment provides the infrastructure to build, test, and publish Apache Kafka container images. It uses Docker BuildX for multi-architecture builds targeting `linux/amd64` and `linux/arm64`. The JVM-based image uses `eclipse-temurin:21-jre-alpine` as the base, while the native image uses `ghcr.io/graalvm/graalvm-community:21` for the build stage and `alpine:latest` for runtime. The build pipeline includes a JSA (Java Shared Archive) generation stage using dynamic CDS for faster startup. Python scripts in `docker/` orchestrate the build and test processes, requiring `requests` and `HTMLTestRunner-Python3`.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment for the &#039;&#039;&#039;Docker Image Release&#039;&#039;&#039; workflow, including building local test images, running multi-architecture builds, and pushing to container registries (Docker Hub, etc.).&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (recommended), macOS || BuildX multi-arch builds work best on Linux&lt;br /&gt;
|-&lt;br /&gt;
| Docker || Docker Engine with BuildX plugin || Required for `docker buildx create` and `docker buildx build`&lt;br /&gt;
|-&lt;br /&gt;
| Python || Python 3.x || Required for build orchestration scripts&lt;br /&gt;
|-&lt;br /&gt;
| Network || Internet access || For pulling base images and pushing to registry&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 5GB+ free space || Docker images and build cache&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `docker` with BuildX plugin&lt;br /&gt;
* `python3`&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `requests`&lt;br /&gt;
* `HTMLTestRunner-Python3`&lt;br /&gt;
&lt;br /&gt;
=== Docker Base Images ===&lt;br /&gt;
&lt;br /&gt;
* `eclipse-temurin:21-jre-alpine` (JVM images)&lt;br /&gt;
* `ghcr.io/graalvm/graalvm-community:21` (Native build stage)&lt;br /&gt;
* `alpine:latest` (Native runtime stage)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following credentials must be available for publishing:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docker Registry Login:&#039;&#039;&#039; Must be logged into the target Docker registry before running `docker_release.py`.&lt;br /&gt;
* &#039;&#039;&#039;Docker Hub Token:&#039;&#039;&#039; For pushing to `apache/kafka` on Docker Hub (or equivalent registry).&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install Python dependencies for Docker build scripts&lt;br /&gt;
pip install requests HTMLTestRunner-Python3&lt;br /&gt;
&lt;br /&gt;
# Verify Docker and BuildX&lt;br /&gt;
docker --version&lt;br /&gt;
docker buildx version&lt;br /&gt;
&lt;br /&gt;
# Build and test a local image&lt;br /&gt;
python docker/docker_build_test.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Multi-architecture build from `docker/docker_release.py:43-57`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def build_push(image, tag, kafka_url):&lt;br /&gt;
    command = f&amp;quot;docker buildx build --platform linux/amd64,linux/arm64 &amp;quot; \&lt;br /&gt;
              f&amp;quot;--build-arg kafka_url={kafka_url} &amp;quot; \&lt;br /&gt;
              f&amp;quot;--build-arg build_date={datetime.now()} &amp;quot; \&lt;br /&gt;
              f&amp;quot;-t {image}:{tag} --push .&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Builder creation from `docker/docker_release.py:53-55`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def create_builder():&lt;br /&gt;
    command = &amp;quot;docker buildx create --name kafka-builder --use&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Docker base image from `docker/jvm/Dockerfile:19`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dockerfile&amp;quot;&amp;gt;&lt;br /&gt;
FROM eclipse-temurin:21-jre-alpine AS build-jsa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JSA generation from `docker/jvm/Dockerfile:48-49`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dockerfile&amp;quot;&amp;gt;&lt;br /&gt;
# Generate jsa files using dynamic CDS for kafka server start command and kafka storage format command&lt;br /&gt;
RUN /etc/kafka/docker/jsa_launch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `docker buildx create: command not found` || BuildX plugin not installed || Install Docker BuildX plugin or upgrade Docker Desktop&lt;br /&gt;
|-&lt;br /&gt;
|| `error: failed to solve: eclipse-temurin:21-jre-alpine: pull access denied` || Docker not logged in or rate limited || Run `docker login` or wait for rate limit reset&lt;br /&gt;
|-&lt;br /&gt;
|| `ERROR: Multiple platforms not supported` || BuildX builder not using docker-container driver || Run `docker buildx create --name kafka-builder --driver docker-container --use`&lt;br /&gt;
|-&lt;br /&gt;
|| `requests.exceptions.ConnectionError` || Network issue during test || Ensure Docker daemon is running and network is available&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Linux vs macOS:&#039;&#039;&#039; Multi-architecture builds require QEMU emulation on non-Linux hosts; native performance only on Linux.&lt;br /&gt;
* &#039;&#039;&#039;Docker Desktop:&#039;&#039;&#039; BuildX is bundled; standalone Docker Engine may need separate BuildX installation.&lt;br /&gt;
* &#039;&#039;&#039;ARM64:&#039;&#039;&#039; Native arm64 builds require either arm64 host or QEMU binfmt registration.&lt;br /&gt;
* &#039;&#039;&#039;GraalVM Native:&#039;&#039;&#039; Native images only supported for specific platforms; requires `ghcr.io/graalvm/graalvm-community:21`.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Apache_Kafka_Build_Docker_Image_Runner]]&lt;br /&gt;
* [[required_by::Implementation:Apache_Kafka_Docker_Buildx_Create]]&lt;br /&gt;
* [[required_by::Implementation:Apache_Kafka_Docker_Buildx_Build_Push]]&lt;br /&gt;
* [[required_by::Implementation:Apache_Kafka_Docker_Registry_Push]]&lt;br /&gt;
* [[required_by::Implementation:Apache_Kafka_Docker_Buildx_Remove]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Explodinggradients_Ragas_Python_Runtime_Environment&amp;diff=27790</id>
		<title>Environment:Explodinggradients Ragas Python Runtime Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Explodinggradients_Ragas_Python_Runtime_Environment&amp;diff=27790"/>
		<updated>2026-02-16T18:45:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Explodinggradients_Ragas_Python_Runtime_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Explodinggradients_Ragas_Python_Runtime_Environment}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Explodinggradients_Ragas_Python_Runtime_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/explodinggradients/ragas Ragas]&lt;br /&gt;
* [https://github.com/explodinggradients/ragas/blob/main/pyproject.toml pyproject.toml]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::NLP]], [[domain::LLM_Evaluation]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-10 12:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Python 3.9+ environment with core dependencies for the Ragas LLM evaluation framework, including OpenAI, LangChain, Pydantic, and numpy.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment defines the base runtime required for all Ragas operations. It is a pure CPU-based Python environment with no GPU requirements. The core dependency stack includes the OpenAI Python client, the LangChain ecosystem (langchain, langchain-core, langchain-community, langchain_openai), Pydantic for data validation, numpy for numerical operations, and the instructor library for structured LLM output. The build system uses setuptools with setuptools_scm for version management.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
This environment is the &#039;&#039;&#039;mandatory prerequisite&#039;&#039;&#039; for every Ragas operation. All evaluation workflows, test data generation, metric computation, and experiment orchestration depend on this base environment. No Ragas code can run without these dependencies installed.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Any (Linux, macOS, Windows) || Pyright platform is set to &amp;quot;All&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Python || &amp;gt;= 3.9 || Configured in `pyproject.toml` line 4; Ruff targets `py39`&lt;br /&gt;
|-&lt;br /&gt;
| Disk || ~500MB || For core dependencies and cache directory at `~/.cache/ragas`&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
No system-level packages are required beyond a Python 3.9+ interpreter.&lt;br /&gt;
&lt;br /&gt;
=== Python Packages (Core / Mandatory) ===&lt;br /&gt;
&lt;br /&gt;
* `numpy` &amp;gt;= 1.21.0, &amp;lt; 3.0.0&lt;br /&gt;
* `datasets` &amp;gt;= 4.0.0&lt;br /&gt;
* `tiktoken` (unconstrained)&lt;br /&gt;
* `pydantic` &amp;gt;= 2.0.0&lt;br /&gt;
* `nest-asyncio` (unconstrained)&lt;br /&gt;
* `appdirs` (unconstrained)&lt;br /&gt;
* `diskcache` &amp;gt;= 5.6.3&lt;br /&gt;
* `typer` (unconstrained)&lt;br /&gt;
* `rich` (unconstrained)&lt;br /&gt;
* `openai` &amp;gt;= 1.0.0&lt;br /&gt;
* `tqdm` (unconstrained)&lt;br /&gt;
* `instructor` (unconstrained)&lt;br /&gt;
* `pillow` &amp;gt;= 10.4.0&lt;br /&gt;
* `networkx` (unconstrained)&lt;br /&gt;
* `scikit-network` (unconstrained)&lt;br /&gt;
* `langchain` (unconstrained)&lt;br /&gt;
* `langchain-core` (unconstrained)&lt;br /&gt;
* `langchain-community` (unconstrained)&lt;br /&gt;
* `langchain_openai` (unconstrained)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages (Implicit / Transitive) ===&lt;br /&gt;
&lt;br /&gt;
* `requests` -- used directly by analytics module&lt;br /&gt;
* `tenacity` -- used directly by retry/backoff logic&lt;br /&gt;
&lt;br /&gt;
=== Build System ===&lt;br /&gt;
&lt;br /&gt;
* `setuptools` &amp;gt;= 64&lt;br /&gt;
* `setuptools_scm` &amp;gt;= 8&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables may be set:&lt;br /&gt;
&lt;br /&gt;
* `RAGAS_DO_NOT_TRACK`: Set to `&amp;quot;true&amp;quot;` to disable anonymous usage analytics. Default: tracking enabled.&lt;br /&gt;
* `RAGAS_DEBUG`: Set to `&amp;quot;true&amp;quot;` to enable verbose debug logging and stack traces.&lt;br /&gt;
* `RAGAS_CACHE_HOME`: Override the default cache directory location (default: `~/.cache/ragas`).&lt;br /&gt;
* `XDG_CACHE_HOME`: Standard XDG cache base directory; used if `RAGAS_CACHE_HOME` is not set.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Minimal install (core only)&lt;br /&gt;
pip install ragas&lt;br /&gt;
&lt;br /&gt;
# Full install with all optional features&lt;br /&gt;
pip install &amp;quot;ragas[all]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Development install (minimal)&lt;br /&gt;
pip install -e &amp;quot;.[dev-minimal]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Development install (full)&lt;br /&gt;
uv sync --group dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Python version constraint from `pyproject.toml:4`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
requires-python = &amp;quot;&amp;gt;=3.9&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Core dependencies from `pyproject.toml:6-29`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;toml&amp;quot;&amp;gt;&lt;br /&gt;
dependencies = [&lt;br /&gt;
    &amp;quot;numpy&amp;gt;=1.21.0,&amp;lt;3.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;datasets&amp;gt;=4.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;tiktoken&amp;quot;,&lt;br /&gt;
    &amp;quot;pydantic&amp;gt;=2.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;nest-asyncio&amp;quot;,&lt;br /&gt;
    &amp;quot;appdirs&amp;quot;,&lt;br /&gt;
    &amp;quot;diskcache&amp;gt;=5.6.3&amp;quot;,&lt;br /&gt;
    &amp;quot;typer&amp;quot;,&lt;br /&gt;
    &amp;quot;rich&amp;quot;,&lt;br /&gt;
    &amp;quot;openai&amp;gt;=1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;tqdm&amp;quot;,&lt;br /&gt;
    &amp;quot;instructor&amp;quot;,&lt;br /&gt;
    &amp;quot;pillow&amp;gt;=10.4.0&amp;quot;,&lt;br /&gt;
    &amp;quot;networkx&amp;quot;,&lt;br /&gt;
    &amp;quot;scikit-network&amp;quot;,&lt;br /&gt;
    &amp;quot;langchain&amp;quot;,&lt;br /&gt;
    &amp;quot;langchain-core&amp;quot;,&lt;br /&gt;
    &amp;quot;langchain-community&amp;quot;,&lt;br /&gt;
    &amp;quot;langchain_openai&amp;quot;,&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cache directory resolution from `src/ragas/utils.py:30-35`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@lru_cache(maxsize=1)&lt;br /&gt;
def get_cache_dir() -&amp;gt; str:&lt;br /&gt;
    DEFAULT_XDG_CACHE_HOME = &amp;quot;~/.cache&amp;quot;&lt;br /&gt;
    xdg_cache = os.getenv(&amp;quot;XDG_CACHE_HOME&amp;quot;, DEFAULT_XDG_CACHE_HOME)&lt;br /&gt;
    default_ragas_cache = os.path.join(xdg_cache, &amp;quot;ragas&amp;quot;)&lt;br /&gt;
    return os.path.expanduser(os.getenv(&amp;quot;RAGAS_CACHE_HOME&amp;quot;, default_ragas_cache))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analytics opt-out from `src/ragas/_analytics.py:41-49`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
RAGAS_DO_NOT_TRACK = &amp;quot;RAGAS_DO_NOT_TRACK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@lru_cache(maxsize=1)&lt;br /&gt;
def do_not_track() -&amp;gt; bool:&lt;br /&gt;
    return os.environ.get(RAGAS_DO_NOT_TRACK, str(False)).lower() == &amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: nest_asyncio` || Running in Jupyter without nest_asyncio || `pip install nest_asyncio`&lt;br /&gt;
|-&lt;br /&gt;
|| `RuntimeError: Cannot execute nested async code with uvloop` || Using uvloop (common in FastAPI) with sync API || Use `aevaluate()` or `@experiment` in async context&lt;br /&gt;
|-&lt;br /&gt;
|| `ModuleNotFoundError: ragas._version` || Package not installed in editable mode || Run `pip install -e .` or `uv sync`&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Jupyter Notebooks:&#039;&#039;&#039; Requires `nest_asyncio` for sync API calls. Ragas auto-detects notebook environments and patches the event loop.&lt;br /&gt;
* &#039;&#039;&#039;uvloop:&#039;&#039;&#039; Incompatible with `nest_asyncio`. Applications using uvloop (FastAPI, Starlette) must use async APIs (`aevaluate()`, `@experiment` decorator).&lt;br /&gt;
* &#039;&#039;&#039;Python 3.10+:&#039;&#039;&#039; Required only for `mkdocs-llmstxt` (documentation build). Runtime works on 3.9+.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Explodinggradients_Ragas_Dataset_Constructor]]&lt;br /&gt;
* [[required_by::Implementation:Explodinggradients_Ragas_Experiment_Decorator]]&lt;br /&gt;
* [[required_by::Implementation:Explodinggradients_Ragas_Llm_Factory]]&lt;br /&gt;
* [[required_by::Implementation:Explodinggradients_Ragas_DiscreteMetric_Class]]&lt;br /&gt;
* [[required_by::Implementation:Explodinggradients_Ragas_Evaluate_Function]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Pytorch_Serve_DeepSpeed_Environment&amp;diff=27789</id>
		<title>Environment:Pytorch Serve DeepSpeed Environment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Pytorch_Serve_DeepSpeed_Environment&amp;diff=27789"/>
		<updated>2026-02-16T18:45:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Pytorch_Serve_DeepSpeed_Environment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Pytorch_Serve_DeepSpeed_Environment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/pytorch/serve Pytorch_Serve]&lt;br /&gt;
* [https://www.deepspeed.ai/ DeepSpeed]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Distributed_Inference]], [[domain::LLMs]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-13 00:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
DeepSpeed inference environment for distributed large model serving with TorchServe.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the DeepSpeed library for serving large models that exceed single-GPU memory via model parallelism. The `BaseDeepSpeedHandler` uses the `LOCAL_RANK` environment variable for device assignment and delegates to DeepSpeed&#039;s inference engine for automatic model partitioning. DeepSpeed supports fp16/bf16 inference, kernel fusion, and heterogeneous memory management for models like Bloom, GPT-NeoX, and other large language models.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when serving models that are &#039;&#039;&#039;too large for a single GPU&#039;&#039;&#039; and require DeepSpeed&#039;s tensor parallelism or inference optimizations. Required for the Large Model Inference workflow when the DeepSpeed parallelism strategy is selected.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (Ubuntu 20.04+) || DeepSpeed has limited non-Linux support&lt;br /&gt;
|-&lt;br /&gt;
| Hardware || Multiple NVIDIA GPUs || Minimum 2 GPUs for parallelism&lt;br /&gt;
|-&lt;br /&gt;
| VRAM || 16GB+ per GPU || More for larger models&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 50GB+ || Model weights and DeepSpeed cache&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* NVIDIA GPU driver &amp;gt;= 450&lt;br /&gt;
* CUDA Toolkit &amp;gt;= 11.0&lt;br /&gt;
* NCCL (for multi-GPU communication)&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* `deepspeed`&lt;br /&gt;
* `torch` with CUDA support&lt;br /&gt;
* `transformers` &amp;gt;= 4.34.0&lt;br /&gt;
* `torchserve`&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables must be set for distributed inference:&lt;br /&gt;
&lt;br /&gt;
* `LOCAL_RANK`: Local rank of the process on the node (default: 0). Used by `BaseDeepSpeedHandler` for device assignment.&lt;br /&gt;
* `WORLD_SIZE`: Total number of processes across all nodes.&lt;br /&gt;
* `RANK`: Global rank of the process.&lt;br /&gt;
* `LOCAL_WORLD_SIZE`: Number of processes on the local node.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install DeepSpeed with dependencies&lt;br /&gt;
pip install deepspeed transformers&amp;gt;=4.34.0&lt;br /&gt;
&lt;br /&gt;
# Install TorchServe&lt;br /&gt;
pip install torchserve torch-model-archiver&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
DeepSpeed import from `ts/handler_utils/distributed/deepspeed.py:6`:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import deepspeed&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Device assignment via LOCAL_RANK from `ts/torch_handler/distributed/base_deepspeed_handler.py:13-14`:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def initialize(self, ctx: Context):&lt;br /&gt;
    self.device = int(os.getenv(&amp;quot;LOCAL_RANK&amp;quot;, 0))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worker environment variables from `ts/model_service_worker.py:23-27`:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
BENCHMARK = os.getenv(&amp;quot;TS_BENCHMARK&amp;quot;) in [&amp;quot;True&amp;quot;, &amp;quot;true&amp;quot;, &amp;quot;TRUE&amp;quot;]&lt;br /&gt;
LOCAL_RANK = int(os.getenv(&amp;quot;LOCAL_RANK&amp;quot;, 0))&lt;br /&gt;
WORLD_SIZE = int(os.getenv(&amp;quot;WORLD_SIZE&amp;quot;, 0))&lt;br /&gt;
WORLD_RANK = int(os.getenv(&amp;quot;RANK&amp;quot;, 0))&lt;br /&gt;
LOCAL_WORLD_SIZE = int(os.getenv(&amp;quot;LOCAL_WORLD_SIZE&amp;quot;, 0))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| `ImportError: No module named &#039;deepspeed&#039;` || DeepSpeed not installed || `pip install deepspeed`&lt;br /&gt;
|-&lt;br /&gt;
|| `NCCL error: unhandled system error` || NCCL communication failure || Check GPU interconnect; ensure NCCL is installed and GPUs are visible&lt;br /&gt;
|-&lt;br /&gt;
|| `RuntimeError: CUDA error: invalid device ordinal` || LOCAL_RANK exceeds available GPUs || Ensure LOCAL_RANK &amp;lt; number of GPUs on the node&lt;br /&gt;
|-&lt;br /&gt;
|| Model loading timeout || Large model takes too long to shard || Increase `startupTimeout` in model config (e.g., 1200s)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Model support:&#039;&#039;&#039; Works best with HuggingFace Transformers models (AutoModelForCausalLM, etc.).&lt;br /&gt;
* &#039;&#039;&#039;DeepSpeed config:&#039;&#039;&#039; A `ds-config.json` file can specify dtype (fp16/bf16), tensor parallel size, and kernel injection settings.&lt;br /&gt;
* &#039;&#039;&#039;Multi-node:&#039;&#039;&#039; Supported via TorchServe&#039;s distributed worker spawning with proper RANK/WORLD_SIZE configuration.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Pytorch_Serve_BaseDeepSpeedHandler]]&lt;br /&gt;
* [[required_by::Implementation:Pytorch_Serve_Parallelism_Model_Config]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:DevExpress_Testcafe_Chrome_Browser&amp;diff=27788</id>
		<title>Environment:DevExpress Testcafe Chrome Browser</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:DevExpress_Testcafe_Chrome_Browser&amp;diff=27788"/>
		<updated>2026-02-16T18:45:46Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/DevExpress_Testcafe_Chrome_Browser.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=DevExpress_Testcafe_Chrome_Browser}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/DevExpress/testcafe DevExpress TestCafe]&lt;br /&gt;
* [https://chromedevtools.github.io/devtools-protocol/ Chrome DevTools Protocol]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::Browser_Automation]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-12 03:30 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Google Chrome or Chromium browser environment with Chrome DevTools Protocol (CDP) support for TestCafe test execution, screenshots, and video capture.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
TestCafe communicates with Chrome/Chromium browsers via the Chrome DevTools Protocol (CDP) using the `chrome-remote-interface` npm package. The browser provider handles lifecycle management (open, close, resize), device emulation, screenshot capture, and video frame capture. When running inside Docker or Podman containers, additional Chrome flags (`--no-sandbox`, `--disable-dev-shm-usage`, `--disable-gpu`) are automatically applied. The provider supports headless mode (using `--headless=new` for Chrome/Chromium and `--headless` for other Chromium-based browsers), user profile isolation via temporary profile directories, and native automation mode.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Required for any test execution targeting Chrome or Chromium browsers. This is the primary browser target for headless CI testing. Used by the &#039;&#039;&#039;Chrome_Headless_Config&#039;&#039;&#039; implementation for parsing browser configuration strings and the &#039;&#039;&#039;BrowserProviderPool_GetBrowserInfo&#039;&#039;&#039; implementation for resolving browser aliases to provider instances.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux, macOS, Windows || All major platforms supported&lt;br /&gt;
|-&lt;br /&gt;
| Browser || Google Chrome or Chromium || Any recent version with CDP support&lt;br /&gt;
|-&lt;br /&gt;
| Network || Local TCP port for CDP || Dynamically allocated unless using user profile&lt;br /&gt;
|-&lt;br /&gt;
| Display || X11 display or headless mode || Linux requires DISPLAY env var or `--headless` flag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== System Packages ===&lt;br /&gt;
&lt;br /&gt;
* `chromium` or `google-chrome` (browser binary)&lt;br /&gt;
* `xvfb` (virtual framebuffer, Linux headless without `--headless` flag)&lt;br /&gt;
&lt;br /&gt;
=== NPM Packages ===&lt;br /&gt;
&lt;br /&gt;
* `chrome-remote-interface` &amp;gt;= 0.32.2 (CDP client)&lt;br /&gt;
* `devtools-protocol` = 0.0.1109433 (protocol type definitions)&lt;br /&gt;
* `testcafe-browser-tools` = 2.0.26 (window management utilities)&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
No credentials required for Chrome browser operation.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Linux (Ubuntu/Debian)&lt;br /&gt;
apt-get install -y chromium-browser&lt;br /&gt;
&lt;br /&gt;
# macOS (Homebrew)&lt;br /&gt;
brew install --cask google-chrome&lt;br /&gt;
&lt;br /&gt;
# Alpine (Docker)&lt;br /&gt;
apk add chromium&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Container detection and flag injection from `src/browser/provider/built-in/dedicated/chrome/runtime-info.ts:19`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;typescript&amp;quot;&amp;gt;&lt;br /&gt;
this.isContainerized = isDocker() || isPodman();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Containerized Chrome flags from `src/browser/provider/built-in/dedicated/chrome/build-chrome-args.js:1`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
export const CONTAINERIZED_CHROME_FLAGS = [&#039;--no-sandbox&#039;, &#039;--disable-dev-shm-usage&#039;, &#039;--disable-gpu&#039;];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Headless mode detection from `src/browser/provider/built-in/dedicated/chrome/build-chrome-args.js:4`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
const headlessMode = [&#039;chrome&#039;, &#039;chromium&#039;].includes(browserName) ? &#039;--headless=new&#039; : &#039;--headless&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DISPLAY environment variable check from `src/utils/detect-display.ts:1-3`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;typescript&amp;quot;&amp;gt;&lt;br /&gt;
export default function (): boolean {&lt;br /&gt;
    return !!process.env.DISPLAY;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| Browser connection timeout || Chrome failed to start within init timeout || Increase `browserInitTimeout` option; check Chrome is installed&lt;br /&gt;
|-&lt;br /&gt;
|| `No sandbox` crash on Linux || Missing `--no-sandbox` in container || TestCafe auto-adds this flag in Docker/Podman; verify container detection&lt;br /&gt;
|-&lt;br /&gt;
|| CDP connection refused || Chrome not listening on expected port || Check for port conflicts; ensure Chrome started successfully&lt;br /&gt;
|-&lt;br /&gt;
|| No DISPLAY on Linux || Missing X11 display server || Use `--headless` flag or start Xvfb virtual framebuffer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Headless mode:&#039;&#039;&#039; Chrome/Chromium use `--headless=new` (new headless architecture); other Chromium-based browsers use `--headless` (legacy).&lt;br /&gt;
* &#039;&#039;&#039;Docker/Podman:&#039;&#039;&#039; Automatically detected via `is-docker` and `is-podman` packages; containerized flags injected automatically.&lt;br /&gt;
* &#039;&#039;&#039;macOS:&#039;&#039;&#039; Chrome process cleanup requires explicit `stopLocalChrome()` call after close.&lt;br /&gt;
* &#039;&#039;&#039;Linux:&#039;&#039;&#039; Chrome may require two SIGTERM signals to fully close (noted in `src/browser/provider/built-in/dedicated/chrome/local-chrome.js:56`).&lt;br /&gt;
* &#039;&#039;&#039;Native Automation:&#039;&#039;&#039; Only available for local browsers; remote browsers cannot use CDP-based native automation mode.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_Chrome_Headless_Config]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_BrowserProviderPool_GetBrowserInfo]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_Screenshots_And_VideoRecorder]]&lt;br /&gt;
* [[required_by::Implementation:DevExpress_Testcafe_Runner_Run]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Protectai_Llm_guard_API_Server_Deployment&amp;diff=27787</id>
		<title>Environment:Protectai Llm guard API Server Deployment</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Protectai_Llm_guard_API_Server_Deployment&amp;diff=27787"/>
		<updated>2026-02-16T18:45:45Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Protectai_Llm_guard_API_Server_Deployment.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Protectai_Llm_guard_API_Server_Deployment}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right; margin-left:1em; width:300px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Knowledge Sources&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/protectai/llm-guard/tree/main/llm_guard_api LLM Guard API]&lt;br /&gt;
* [https://protectai.github.io/llm-guard/api/deployment/ API Deployment]&lt;br /&gt;
|-&lt;br /&gt;
! Domains&lt;br /&gt;
| [[domain::Infrastructure]], [[domain::API]], [[domain::Observability]]&lt;br /&gt;
|-&lt;br /&gt;
! Last Updated&lt;br /&gt;
| [[last_updated::2026-02-14 12:00 GMT]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
FastAPI server environment with Uvicorn, OpenTelemetry instrumentation, rate limiting, and Docker support for deploying LLM Guard as a REST API service.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
This environment provides the full deployment stack for the LLM Guard API server. It builds on top of the core Python runtime and adds FastAPI for HTTP handling, Uvicorn as the ASGI server, OpenTelemetry for distributed tracing and metrics (supporting AWS X-Ray, OTLP HTTP, Prometheus, and console exporters), SlowAPI for rate limiting, and Pydantic for request/response validation. The server supports Docker containerization with configurable workers and scanner pipelines via YAML configuration.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
Use this environment when deploying LLM Guard as a &#039;&#039;&#039;standalone API service&#039;&#039;&#039; that exposes REST endpoints for prompt and output scanning. This is the production deployment path, providing &amp;lt;code&amp;gt;/analyze/prompt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/analyze/output&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/scan/prompt&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/scan/output&amp;lt;/code&amp;gt; endpoints with authentication, rate limiting, and observability.&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Category !! Requirement !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux (recommended), macOS || Docker deployment recommended&lt;br /&gt;
|-&lt;br /&gt;
| Python || 3.10-3.12 || &amp;lt;code&amp;gt;requires-python = &amp;quot;&amp;gt;=3.10,&amp;lt;3.13&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Port || 8000 (default) || Configurable via Uvicorn&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 8GB+ recommended || Multiple scanner models loaded simultaneously&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 10GB+ || For storing downloaded HuggingFace models&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
=== Python Packages ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;llm-guard&amp;lt;/code&amp;gt; == 0.3.16 (core library)&lt;br /&gt;
* &amp;lt;code&amp;gt;fastapi&amp;lt;/code&amp;gt; == 0.115.12&lt;br /&gt;
* &amp;lt;code&amp;gt;uvicorn[standard]&amp;lt;/code&amp;gt; == 0.34.2&lt;br /&gt;
* &amp;lt;code&amp;gt;pydantic&amp;lt;/code&amp;gt; == 2.11.4&lt;br /&gt;
* &amp;lt;code&amp;gt;pyyaml&amp;lt;/code&amp;gt; == 6.0.2&lt;br /&gt;
* &amp;lt;code&amp;gt;slowapi&amp;lt;/code&amp;gt; == 0.1.9&lt;br /&gt;
* &amp;lt;code&amp;gt;asyncio&amp;lt;/code&amp;gt; == 3.4.3&lt;br /&gt;
* &amp;lt;code&amp;gt;structlog&amp;lt;/code&amp;gt; &amp;gt;= 24&lt;br /&gt;
* &amp;lt;code&amp;gt;psutil&amp;lt;/code&amp;gt; &amp;gt;= 5.9&lt;br /&gt;
* &amp;lt;code&amp;gt;opentelemetry-api&amp;lt;/code&amp;gt; == 1.33.1&lt;br /&gt;
* &amp;lt;code&amp;gt;opentelemetry-sdk&amp;lt;/code&amp;gt; == 1.33.1&lt;br /&gt;
* &amp;lt;code&amp;gt;opentelemetry-instrumentation-fastapi&amp;lt;/code&amp;gt; == 0.54b1&lt;br /&gt;
* &amp;lt;code&amp;gt;opentelemetry-exporter-otlp-proto-http&amp;lt;/code&amp;gt; == 1.33.1&lt;br /&gt;
* &amp;lt;code&amp;gt;opentelemetry-exporter-prometheus&amp;lt;/code&amp;gt; == 0.54b1&lt;br /&gt;
* &amp;lt;code&amp;gt;opentelemetry-sdk-extension-aws&amp;lt;/code&amp;gt; == 2.1.0&lt;br /&gt;
* &amp;lt;code&amp;gt;opentelemetry-propagator-aws-xray&amp;lt;/code&amp;gt; == 1.0.2&lt;br /&gt;
&lt;br /&gt;
== Credentials ==&lt;br /&gt;
&lt;br /&gt;
The following environment variables may be required depending on configuration:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;CONFIG_FILE&amp;lt;/code&amp;gt;: Path to the YAML scanner configuration file (default: &amp;lt;code&amp;gt;./config/scanners.yml&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &amp;lt;code&amp;gt;APP_WORKERS&amp;lt;/code&amp;gt;: Number of Uvicorn worker processes (default: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Auth credentials (configured in YAML):&lt;br /&gt;
** &amp;lt;code&amp;gt;http_bearer&amp;lt;/code&amp;gt;: API token for bearer authentication.&lt;br /&gt;
** &amp;lt;code&amp;gt;http_basic&amp;lt;/code&amp;gt;: Username and password for basic authentication.&lt;br /&gt;
* YAML config supports &amp;lt;code&amp;gt;${ENV_VAR}&amp;lt;/code&amp;gt; syntax for injecting environment variables.&lt;br /&gt;
&lt;br /&gt;
== Quick Install ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install API server package&lt;br /&gt;
pip install llm-guard-api&lt;br /&gt;
&lt;br /&gt;
# For CPU optimized deployment&lt;br /&gt;
pip install &amp;quot;llm-guard-api[cpu]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# For GPU optimized deployment&lt;br /&gt;
pip install &amp;quot;llm-guard-api[gpu]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Docker deployment&lt;br /&gt;
cd llm_guard_api&lt;br /&gt;
docker-compose up&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Evidence ==&lt;br /&gt;
&lt;br /&gt;
Config file loading from environment from &amp;lt;code&amp;gt;llm_guard_api/app/app.py:57-62&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def create_app() -&amp;gt; FastAPI:&lt;br /&gt;
    config_file = os.getenv(&amp;quot;CONFIG_FILE&amp;quot;, &amp;quot;./config/scanners.yml&amp;quot;)&lt;br /&gt;
    if not config_file:&lt;br /&gt;
        raise ValueError(&amp;quot;Config file is required&amp;quot;)&lt;br /&gt;
    config = get_config(config_file)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thread limiting for scanner execution from &amp;lt;code&amp;gt;llm_guard_api/app/scanner.py:31&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
torch.set_num_threads(1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Docker entrypoint from &amp;lt;code&amp;gt;llm_guard_api/entrypoint.sh:3-7&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
APP_WORKERS=${APP_WORKERS:-1}&lt;br /&gt;
CONFIG_FILE=${CONFIG_FILE:-./config/scanners.yml}&lt;br /&gt;
uvicorn app.app:create_app --host=0.0.0.0 --port=8000 --workers=&amp;quot;$APP_WORKERS&amp;quot; --forwarded-allow-ips=&amp;quot;*&amp;quot; --proxy-headers --timeout-keep-alive=&amp;quot;2&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Common Errors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error Message !! Cause !! Solution&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;ValueError: Config file is required&amp;lt;/code&amp;gt; || CONFIG_FILE env var empty or file missing || Set &amp;lt;code&amp;gt;CONFIG_FILE&amp;lt;/code&amp;gt; to valid YAML path&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;Error loading YAML file&amp;lt;/code&amp;gt; || Invalid YAML syntax or missing file || Validate YAML config syntax&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;408 Request Timeout&amp;lt;/code&amp;gt; || Scanner pipeline exceeds timeout || Increase &amp;lt;code&amp;gt;scan_prompt_timeout&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;scan_output_timeout&amp;lt;/code&amp;gt; in config&lt;br /&gt;
|-&lt;br /&gt;
|| &amp;lt;code&amp;gt;429 Rate Limit Exceeded&amp;lt;/code&amp;gt; || Too many requests || Adjust &amp;lt;code&amp;gt;rate_limit.limit&amp;lt;/code&amp;gt; in config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Compatibility Notes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docker:&#039;&#039;&#039; Default Docker Compose exposes port 8000 and mounts config volume.&lt;br /&gt;
* &#039;&#039;&#039;Workers:&#039;&#039;&#039; &amp;lt;code&amp;gt;APP_WORKERS&amp;lt;/code&amp;gt; defaults to 1; increase for multi-process serving. Note: &amp;lt;code&amp;gt;torch.set_num_threads(1)&amp;lt;/code&amp;gt; is set to prevent thread contention across workers.&lt;br /&gt;
* &#039;&#039;&#039;Observability:&#039;&#039;&#039; Supports AWS X-Ray, OTLP HTTP, Prometheus, and console exporters. Configured via YAML.&lt;br /&gt;
* &#039;&#039;&#039;Health checks:&#039;&#039;&#039; &amp;lt;code&amp;gt;/healthz&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/readyz&amp;lt;/code&amp;gt; endpoints available for load balancer configuration.&lt;br /&gt;
&lt;br /&gt;
== Related Pages ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Create_app]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_API_Endpoints]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Config]]&lt;br /&gt;
* [[required_by::Implementation:Protectai_Llm_guard_Configure_otel]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://leeroopedia.com/index.php?title=Environment:Sgl_project_Sglang_Distributed&amp;diff=27786</id>
		<title>Environment:Sgl project Sglang Distributed</title>
		<link rel="alternate" type="text/html" href="https://leeroopedia.com/index.php?title=Environment:Sgl_project_Sglang_Distributed&amp;diff=27786"/>
		<updated>2026-02-16T18:45:45Z</updated>

		<summary type="html">&lt;p&gt;Admin: Auto-imported from environments/Sgl_project_Sglang_Distributed.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PageInfo|type=Environment|title=Sgl_project_Sglang_Distributed}}&lt;br /&gt;
{{PageInfo|type=Environment|title=Sgl_project_Sglang_Distributed}}&lt;br /&gt;
&#039;&#039;&#039;Sgl_project_Sglang_Distributed&#039;&#039;&#039; is the distributed multi-node runtime environment for SGLang, enabling tensor parallelism and data parallelism across multiple GPUs and nodes via NCCL.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Multiple GPU nodes with high-speed interconnect (NVLink, InfiniBand, or RoCE)&lt;br /&gt;
* NCCL 2.x for GPU collective communication&lt;br /&gt;
* PyTorch distributed (`torch.distributed`)&lt;br /&gt;
* SSH access between nodes (for multi-node launches)&lt;br /&gt;
* Shared filesystem or model cache accessible from all nodes&lt;br /&gt;
* Python 3.10+&lt;br /&gt;
* `--tp` (tensor parallelism) and/or `--dp` (data parallelism) server arguments&lt;br /&gt;
&lt;br /&gt;
== Required By ==&lt;br /&gt;
&lt;br /&gt;
* [[required_by::Implementation:Sgl_project_Sglang_Checkpoint_Update]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Environment:Sgl_project_Sglang_CUDA_GPU_Runtime]]&lt;br /&gt;
* [[Environment:Sgl_project_Sglang_Python_Dependencies]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environments]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>