<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.ramba-art.ru/api.php?hidebots=1&amp;urlversion=1&amp;days=7&amp;limit=50&amp;action=feedrecentchanges&amp;feedformat=atom</id>
	<title>wiki.ramba-art.ru  - Свежие правки [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ramba-art.ru/api.php?hidebots=1&amp;urlversion=1&amp;days=7&amp;limit=50&amp;action=feedrecentchanges&amp;feedformat=atom"/>
	<link rel="alternate" type="text/html" href="https://wiki.ramba-art.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%B2%D0%B5%D0%B6%D0%B8%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8"/>
	<updated>2026-08-23T22:47:49Z</updated>
	<subtitle>Отслеживание последних изменений в вики.</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://wiki.ramba-art.ru/index.php?title=RAMBA_AI_Router&amp;diff=116&amp;oldid=114</id>
		<title>RAMBA AI Router</title>
		<link rel="alternate" type="text/html" href="https://wiki.ramba-art.ru/index.php?title=RAMBA_AI_Router&amp;diff=116&amp;oldid=114"/>
		<updated>2026-08-22T20:33:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 20:33, 22 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;ru&quot;&gt;(не показана 1 промежуточная версия этого же участника)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l750&quot;&gt;Строка 750:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 750:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ollama&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ollama&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Да}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''Готово'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| GPU inference&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| GPU inference&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Да}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''Готово'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| FAST model&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| FAST model&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Да}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;'''Готово'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| INFRA model&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| INFRA model&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>192.168.1.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.ramba-art.ru/index.php?title=RAMBA_AI_Router&amp;diff=114&amp;oldid=0</id>
		<title>RAMBA AI Router</title>
		<link rel="alternate" type="text/html" href="https://wiki.ramba-art.ru/index.php?title=RAMBA_AI_Router&amp;diff=114&amp;oldid=0"/>
		<updated>2026-08-22T20:31:10Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{DISPLAYTITLE:RAMBA AI Router}}  = RAMBA AI Router =  &amp;#039;&amp;#039;&amp;#039;RAMBA AI Router&amp;#039;&amp;#039;&amp;#039; — локальная система интеллектуальной маршрутизации запросов между несколькими языковыми моделями проекта &lt;a href=&quot;/index.php?title=RAMBA_AI&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;RAMBA AI (страница не существует)&quot;&gt;RAMBA AI&lt;/a&gt;.  Router анализирует входящий запрос пользователя, определяет его тип и автоматически выбирает н...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:RAMBA AI Router}}&lt;br /&gt;
&lt;br /&gt;
= RAMBA AI Router =&lt;br /&gt;
&lt;br /&gt;
'''RAMBA AI Router''' — локальная система интеллектуальной маршрутизации запросов между несколькими языковыми моделями проекта [[RAMBA AI]].&lt;br /&gt;
&lt;br /&gt;
Router анализирует входящий запрос пользователя, определяет его тип и автоматически выбирает наиболее подходящую локальную LLM.&lt;br /&gt;
&lt;br /&gt;
Основная задача проекта — получить максимальное качество ответов при ограниченных вычислительных ресурсах, не используя одну большую модель для всех запросов.&lt;br /&gt;
&lt;br /&gt;
На текущем этапе система использует три специализированных «мозга»:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Роль&lt;br /&gt;
! Модель&lt;br /&gt;
! Назначение&lt;br /&gt;
|-&lt;br /&gt;
| '''FAST'''&lt;br /&gt;
| &amp;lt;code&amp;gt;gemma3:4b&amp;lt;/code&amp;gt;&lt;br /&gt;
| Простые вопросы, работа с текстом, короткие ответы&lt;br /&gt;
|-&lt;br /&gt;
| '''INFRA'''&lt;br /&gt;
| &amp;lt;code&amp;gt;qwen3:8b&amp;lt;/code&amp;gt;&lt;br /&gt;
| Linux, Proxmox, сети, серверы, виртуализация и инфраструктура&lt;br /&gt;
|-&lt;br /&gt;
| '''SMART'''&lt;br /&gt;
| &amp;lt;code&amp;gt;qwen3.5:9b&amp;lt;/code&amp;gt;&lt;br /&gt;
| Логика, математика, анализ и сложные задачи&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Общая архитектура ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                    Пользователь&lt;br /&gt;
                         │&lt;br /&gt;
                         ▼&lt;br /&gt;
                ┌─────────────────┐&lt;br /&gt;
                │ RAMBA AI Router │&lt;br /&gt;
                └────────┬────────┘&lt;br /&gt;
                         │&lt;br /&gt;
            анализ и классификация&lt;br /&gt;
                         │&lt;br /&gt;
          ┌──────────────┼──────────────┐&lt;br /&gt;
          │              │              │&lt;br /&gt;
          ▼              ▼              ▼&lt;br /&gt;
       FAST           INFRA          SMART&lt;br /&gt;
    Gemma 3 4B       Qwen3 8B      Qwen3.5 9B&lt;br /&gt;
          │              │              │&lt;br /&gt;
          └──────────────┼──────────────┘&lt;br /&gt;
                         │&lt;br /&gt;
                         ▼&lt;br /&gt;
                       Ollama&lt;br /&gt;
                         │&lt;br /&gt;
                         ▼&lt;br /&gt;
                   NVIDIA GTX 1080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Router работает как локальный API-сервис на базе '''FastAPI'''.&lt;br /&gt;
&lt;br /&gt;
В качестве backend для запуска языковых моделей используется '''Ollama'''.&lt;br /&gt;
&lt;br /&gt;
== Сервер ==&lt;br /&gt;
&lt;br /&gt;
RAMBA AI Router работает внутри виртуальной машины:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
VMID: 501&lt;br /&gt;
Hostname: ramba-ai&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основной каталог проекта:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/artem/ramba-router/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основные файлы стабильной версии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
router.py&lt;br /&gt;
router-v3-perfect.py&lt;br /&gt;
test-router-v3.py&lt;br /&gt;
test-router-v3-perfect.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Контрольная резервная копия стабильной версии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/artem/ramba-router-v3-perfect.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аппаратная платформа ==&lt;br /&gt;
&lt;br /&gt;
Для выполнения локальных моделей используется:&lt;br /&gt;
&lt;br /&gt;
* '''GPU:''' NVIDIA GeForce GTX 1080&lt;br /&gt;
* '''VRAM:''' 8 GB&lt;br /&gt;
* '''Inference backend:''' Ollama&lt;br /&gt;
* '''API Router:''' FastAPI / Uvicorn&lt;br /&gt;
&lt;br /&gt;
Из-за ограничения в 8 GB VRAM Router не пытается постоянно держать все основные модели в памяти видеокарты.&lt;br /&gt;
&lt;br /&gt;
Вместо этого необходимая модель загружается по требованию.&lt;br /&gt;
&lt;br /&gt;
== Выбор моделей ==&lt;br /&gt;
&lt;br /&gt;
До разработки Router было проведено тестирование нескольких локальных моделей.&lt;br /&gt;
&lt;br /&gt;
В ходе тестов оценивались:&lt;br /&gt;
&lt;br /&gt;
* русский язык;&lt;br /&gt;
* логическое мышление;&lt;br /&gt;
* задачи по Proxmox/Linux;&lt;br /&gt;
* программирование;&lt;br /&gt;
* понимание AI/VRAM;&lt;br /&gt;
* скорость генерации;&lt;br /&gt;
* стабильность ответов.&lt;br /&gt;
&lt;br /&gt;
В результате для Router были выбраны три основные модели.&lt;br /&gt;
&lt;br /&gt;
=== FAST — Gemma 3 4B ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gemma3:4b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется для относительно простых запросов.&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&lt;br /&gt;
* исправление текста;&lt;br /&gt;
* переформулирование;&lt;br /&gt;
* короткие объяснения;&lt;br /&gt;
* простые вопросы;&lt;br /&gt;
* задачи, не требующие глубокого анализа.&lt;br /&gt;
&lt;br /&gt;
Преимущество модели — высокая скорость.&lt;br /&gt;
&lt;br /&gt;
В тестах скорость генерации составляла примерно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~59 tok/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== INFRA — Qwen3 8B ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qwen3:8b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная техническая модель RAMBA AI.&lt;br /&gt;
&lt;br /&gt;
Используется для вопросов, связанных с:&lt;br /&gt;
&lt;br /&gt;
* Proxmox VE;&lt;br /&gt;
* Linux;&lt;br /&gt;
* VFIO;&lt;br /&gt;
* IOMMU;&lt;br /&gt;
* PCI Passthrough;&lt;br /&gt;
* systemd;&lt;br /&gt;
* Docker;&lt;br /&gt;
* NFS;&lt;br /&gt;
* ZFS;&lt;br /&gt;
* сетями;&lt;br /&gt;
* виртуальными машинами;&lt;br /&gt;
* серверным администрированием.&lt;br /&gt;
&lt;br /&gt;
Типичная скорость:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~35 tok/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SMART — Qwen3.5 9B ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qwen3.5:9b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Наиболее интеллектуально сильная из трёх основных моделей.&lt;br /&gt;
&lt;br /&gt;
Используется для:&lt;br /&gt;
&lt;br /&gt;
* математических задач;&lt;br /&gt;
* логики;&lt;br /&gt;
* анализа;&lt;br /&gt;
* сложных технических вопросов;&lt;br /&gt;
* многоэтапных рассуждений;&lt;br /&gt;
* задач с процентами и зависимостями.&lt;br /&gt;
&lt;br /&gt;
Типичная скорость:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~29-30 tok/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Router v1 ==&lt;br /&gt;
&lt;br /&gt;
Первая версия RAMBA AI Router была proof-of-concept.&lt;br /&gt;
&lt;br /&gt;
Маршрутизация выполнялась преимущественно по ключевым словам.&lt;br /&gt;
&lt;br /&gt;
Упрощённо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Proxmox / VFIO / Linux&lt;br /&gt;
        │&lt;br /&gt;
        ▼&lt;br /&gt;
     Qwen3 8B&lt;br /&gt;
&lt;br /&gt;
сложная задача&lt;br /&gt;
        │&lt;br /&gt;
        ▼&lt;br /&gt;
   Qwen3.5 9B&lt;br /&gt;
&lt;br /&gt;
остальные запросы&lt;br /&gt;
        │&lt;br /&gt;
        ▼&lt;br /&gt;
    Gemma 3 4B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Версия доказала работоспособность основной концепции:&lt;br /&gt;
&lt;br /&gt;
'''одна точка входа → несколько специализированных локальных моделей.'''&lt;br /&gt;
&lt;br /&gt;
== Router v2 ==&lt;br /&gt;
&lt;br /&gt;
Во второй версии маршрутизатор стал значительно сложнее.&lt;br /&gt;
&lt;br /&gt;
Были добавлены:&lt;br /&gt;
&lt;br /&gt;
* score-based routing;&lt;br /&gt;
* определение загруженной Ollama-модели;&lt;br /&gt;
* session affinity;&lt;br /&gt;
* hysteresis;&lt;br /&gt;
* статистика;&lt;br /&gt;
* журналирование;&lt;br /&gt;
* контроль переключения моделей.&lt;br /&gt;
&lt;br /&gt;
Router начал использовать Ollama API:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /api/ps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
для определения модели, которая в данный момент находится в памяти.&lt;br /&gt;
&lt;br /&gt;
В API Router появились служебные endpoint'ы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/chat&lt;br /&gt;
/health&lt;br /&gt;
/stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Проблема Router v2 ===&lt;br /&gt;
&lt;br /&gt;
Во время тестирования была обнаружена важная ошибка классификации.&lt;br /&gt;
&lt;br /&gt;
Запрос:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Есть три сервера A, B и C.&lt;br /&gt;
A быстрее B на 20%.&lt;br /&gt;
B быстрее C на 25%.&lt;br /&gt;
Если C выполняет задачу за 100 секунд,&lt;br /&gt;
сколько времени потребуется A?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
является математической задачей.&lt;br /&gt;
&lt;br /&gt;
Однако Router воспринимал слово:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
сервер&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
как инфраструктурный признак и отправлял запрос в:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INFRA → Qwen3 8B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это показало недостаток простой маршрутизации по ключевым словам.&lt;br /&gt;
&lt;br /&gt;
== Router v3 ==&lt;br /&gt;
&lt;br /&gt;
В Router v3 алгоритм классификации был переработан.&lt;br /&gt;
&lt;br /&gt;
Основная идея — разные слова должны иметь '''разный вес'''.&lt;br /&gt;
&lt;br /&gt;
=== Слабые инфраструктурные признаки ===&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
сервер&lt;br /&gt;
Linux&lt;br /&gt;
Ubuntu&lt;br /&gt;
VM&lt;br /&gt;
NVIDIA&lt;br /&gt;
сеть&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сами по себе такие слова больше не должны гарантировать выбор INFRA.&lt;br /&gt;
&lt;br /&gt;
=== Сильные инфраструктурные признаки ===&lt;br /&gt;
&lt;br /&gt;
Больший вес получили специфические технические термины:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Proxmox&lt;br /&gt;
vfio-pci&lt;br /&gt;
IOMMU&lt;br /&gt;
lspci&lt;br /&gt;
hostpci&lt;br /&gt;
systemctl&lt;br /&gt;
journalctl&lt;br /&gt;
initramfs&lt;br /&gt;
ZFS&lt;br /&gt;
NFS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SMART-признаки ===&lt;br /&gt;
&lt;br /&gt;
Для определения аналитических задач используются признаки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
сколько&lt;br /&gt;
проценты&lt;br /&gt;
быстрее&lt;br /&gt;
медленнее&lt;br /&gt;
рассчитай&lt;br /&gt;
объясни расчёт&lt;br /&gt;
вероятность&lt;br /&gt;
логическая задача&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таким образом Router вычисляет несколько независимых оценок:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FAST&lt;br /&gt;
INFRA&lt;br /&gt;
SMART&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и выбирает роль с максимальным результатом.&lt;br /&gt;
&lt;br /&gt;
== Пример работы Router v3 ==&lt;br /&gt;
&lt;br /&gt;
Для математической задачи с тремя серверами Router получил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FAST  = 1&lt;br /&gt;
INFRA = 1&lt;br /&gt;
SMART = 16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Результат:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
role: smart&lt;br /&gt;
model: qwen3.5:9b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Модель правильно решила задачу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C = 100 секунд&lt;br /&gt;
&lt;br /&gt;
B быстрее C на 25%:&lt;br /&gt;
100 / 1.25 = 80 секунд&lt;br /&gt;
&lt;br /&gt;
A быстрее B на 20%:&lt;br /&gt;
80 / 1.2 = 66.67 секунды&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A ≈ 66.67 секунды&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример инфраструктурного запроса ==&lt;br /&gt;
&lt;br /&gt;
Запрос:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
В Proxmox lspci показывает nouveau вместо vfio-pci.&lt;br /&gt;
Что проверить?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Router определил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FAST  = 1&lt;br /&gt;
INFRA = 23&lt;br /&gt;
SMART = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и выбрал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
role: infra&lt;br /&gt;
model: qwen3:8b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То есть специализированный инфраструктурный запрос был направлен технической модели.&lt;br /&gt;
&lt;br /&gt;
== Пример FAST-запроса ==&lt;br /&gt;
&lt;br /&gt;
Запрос:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Исправь текст:&lt;br /&gt;
я одел куртку и вышел на улицу&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Router получил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FAST  = 6&lt;br /&gt;
INFRA = 0&lt;br /&gt;
SMART = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и правильно выбрал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
role: fast&lt;br /&gt;
model: gemma3:4b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Однако сама модель ответила:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Я одел куртку и вышел на улицу.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
вместо:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Я надел куртку и вышел на улицу.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это продемонстрировало важное различие:&lt;br /&gt;
&lt;br /&gt;
'''правильная маршрутизация не гарантирует правильность ответа модели.'''&lt;br /&gt;
&lt;br /&gt;
В дальнейшем для решения подобных проблем планируется отдельный слой проверки ответов — '''Verifier'''.&lt;br /&gt;
&lt;br /&gt;
== Переключение моделей ==&lt;br /&gt;
&lt;br /&gt;
Router получает информацию о моделях, загруженных Ollama.&lt;br /&gt;
&lt;br /&gt;
Пример ответа &amp;lt;code&amp;gt;/health&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;router&amp;quot;: &amp;quot;ok&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;3&amp;quot;,&lt;br /&gt;
  &amp;quot;ollama_loaded_models&amp;quot;: [&lt;br /&gt;
    &amp;quot;gemma3:4b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;sessions&amp;quot;: 3&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При запросе другой категории Router может переключить модель.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Gemma 3 4B&lt;br /&gt;
     │&lt;br /&gt;
     ▼&lt;br /&gt;
Qwen3 8B&lt;br /&gt;
     │&lt;br /&gt;
     ▼&lt;br /&gt;
Qwen3.5 9B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В API-ответе отображаются диагностические данные:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
model&lt;br /&gt;
role&lt;br /&gt;
loaded_before&lt;br /&gt;
switch&lt;br /&gt;
scores&lt;br /&gt;
route_reason&lt;br /&gt;
elapsed&lt;br /&gt;
eval_count&lt;br /&gt;
eval_duration&lt;br /&gt;
load_duration&lt;br /&gt;
tok_s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это позволяет анализировать не только результат маршрутизации, но и производительность системы.&lt;br /&gt;
&lt;br /&gt;
== Стоимость переключения ==&lt;br /&gt;
&lt;br /&gt;
Загрузка другой модели в VRAM занимает заметное время.&lt;br /&gt;
&lt;br /&gt;
На используемой системе переключение обычно добавляет несколько секунд ожидания.&lt;br /&gt;
&lt;br /&gt;
Поэтому Router старается избегать ненужного переключения модели.&lt;br /&gt;
&lt;br /&gt;
Для этого используются механизмы:&lt;br /&gt;
&lt;br /&gt;
* session affinity;&lt;br /&gt;
* hysteresis;&lt;br /&gt;
* определение уже загруженной модели.&lt;br /&gt;
&lt;br /&gt;
В перспективе Router должен учитывать не только качество предполагаемого ответа, но и '''стоимость переключения модели'''.&lt;br /&gt;
&lt;br /&gt;
== Контрольный тест Router v3 ==&lt;br /&gt;
&lt;br /&gt;
Для проверки Router v3 был создан отдельный тест:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
test-router-v3.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он содержит '''30 запросов''':&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Категория&lt;br /&gt;
! Количество&lt;br /&gt;
|-&lt;br /&gt;
| FAST&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| INFRA&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| SMART&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
! Всего&lt;br /&gt;
! 30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Для каждого запроса заранее задаётся ожидаемая категория.&lt;br /&gt;
&lt;br /&gt;
Тест сравнивает:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EXPECTED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
с:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ACTUAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Итог тестирования ===&lt;br /&gt;
&lt;br /&gt;
22 августа 2026 года Router v3 успешно прошёл полный контрольный тест.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RESULT: 30/30 = 100.0%&lt;br /&gt;
&lt;br /&gt;
PERFECT ROUTING — 30/30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Категория&lt;br /&gt;
! Результат&lt;br /&gt;
! Модель&lt;br /&gt;
|-&lt;br /&gt;
| FAST&lt;br /&gt;
| 10 / 10&lt;br /&gt;
| Gemma 3 4B&lt;br /&gt;
|-&lt;br /&gt;
| INFRA&lt;br /&gt;
| 10 / 10&lt;br /&gt;
| Qwen3 8B&lt;br /&gt;
|-&lt;br /&gt;
| SMART&lt;br /&gt;
| 10 / 10&lt;br /&gt;
| Qwen3.5 9B&lt;br /&gt;
|-&lt;br /&gt;
! Итого&lt;br /&gt;
! '''30 / 30 (100%)'''&lt;br /&gt;
! &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Таким образом Router v3 стал первой зафиксированной стабильной версией RAMBA AI Router.&lt;br /&gt;
&lt;br /&gt;
== Фиксация стабильной версии ==&lt;br /&gt;
&lt;br /&gt;
После успешного теста были сохранены контрольные копии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
router-v3-perfect.py&lt;br /&gt;
test-router-v3-perfect.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и создан архив:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/artem/ramba-router-v3-perfect.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Размер архива на момент создания:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
6.4 KB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Router v3 после этого считается '''стабильной контрольной точкой проекта'''.&lt;br /&gt;
&lt;br /&gt;
== Ограничения Router v3 ==&lt;br /&gt;
&lt;br /&gt;
Несмотря на успешный результат 30/30, версия v3 имеет ряд архитектурных ограничений.&lt;br /&gt;
&lt;br /&gt;
Главное из них — недостаточное понимание контекста разговора.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Пользователь:&lt;br /&gt;
В Proxmox vfio-pci не захватывает GTX 1080.&lt;br /&gt;
&lt;br /&gt;
Router:&lt;br /&gt;
INFRA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Следующее сообщение:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
А как это проверить?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
само по себе почти не содержит признаков INFRA.&lt;br /&gt;
&lt;br /&gt;
Человек понимает контекст предыдущего сообщения, однако Router v3 в основном анализирует текущий запрос.&lt;br /&gt;
&lt;br /&gt;
Именно эта проблема является основной целью следующей версии.&lt;br /&gt;
&lt;br /&gt;
= Router v4 =&lt;br /&gt;
&lt;br /&gt;
Следующий этап разработки — '''RAMBA AI Router v4'''.&lt;br /&gt;
&lt;br /&gt;
Главное изменение:&lt;br /&gt;
&lt;br /&gt;
'''контекстная маршрутизация.'''&lt;br /&gt;
&lt;br /&gt;
Router должен учитывать не только последнее сообщение, но и историю текущего диалога.&lt;br /&gt;
&lt;br /&gt;
Планируемая структура сессии:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
session&lt;br /&gt;
 │&lt;br /&gt;
 ├── session_id&lt;br /&gt;
 ├── current_role&lt;br /&gt;
 ├── previous_model&lt;br /&gt;
 └── messages&lt;br /&gt;
       │&lt;br /&gt;
       ├── user&lt;br /&gt;
       ├── assistant&lt;br /&gt;
       ├── user&lt;br /&gt;
       ├── assistant&lt;br /&gt;
       └── ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Пользователь:&lt;br /&gt;
В Proxmox vfio-pci не захватывает GTX 1080.&lt;br /&gt;
&lt;br /&gt;
→ INFRA / Qwen3 8B&lt;br /&gt;
&lt;br /&gt;
Пользователь:&lt;br /&gt;
А как проверить?&lt;br /&gt;
&lt;br /&gt;
→ анализ контекста&lt;br /&gt;
→ сохранение роли INFRA&lt;br /&gt;
→ Qwen3 8B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== План Router v4 ==&lt;br /&gt;
&lt;br /&gt;
Первый этап:&lt;br /&gt;
&lt;br /&gt;
# хранение истории диалога;&lt;br /&gt;
# передача контекста модели;&lt;br /&gt;
# ограничение размера истории;&lt;br /&gt;
# sticky routing;&lt;br /&gt;
# корректная обработка коротких follow-up сообщений.&lt;br /&gt;
&lt;br /&gt;
Второй этап:&lt;br /&gt;
&lt;br /&gt;
# отдельный system prompt для FAST;&lt;br /&gt;
# отдельный system prompt для INFRA;&lt;br /&gt;
# отдельный system prompt для SMART.&lt;br /&gt;
&lt;br /&gt;
Третий этап:&lt;br /&gt;
&lt;br /&gt;
# оценка уверенности Router;&lt;br /&gt;
# автоматическая эскалация FAST → SMART;&lt;br /&gt;
# обработка неоднозначных запросов;&lt;br /&gt;
# дополнительные контрольные тесты.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшее развитие ==&lt;br /&gt;
&lt;br /&gt;
Перспективная архитектура RAMBA AI:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                     Пользователь&lt;br /&gt;
                          │&lt;br /&gt;
                          ▼&lt;br /&gt;
                  RAMBA AI Router&lt;br /&gt;
                          │&lt;br /&gt;
            ┌─────────────┼─────────────┐&lt;br /&gt;
            ▼             ▼             ▼&lt;br /&gt;
          FAST          INFRA         SMART&lt;br /&gt;
            │             │             │&lt;br /&gt;
            └─────────────┼─────────────┘&lt;br /&gt;
                          │&lt;br /&gt;
                          ▼&lt;br /&gt;
                       Verifier&lt;br /&gt;
                          │&lt;br /&gt;
                          ▼&lt;br /&gt;
                         RAG&lt;br /&gt;
                          │&lt;br /&gt;
                          ▼&lt;br /&gt;
                  Финальный ответ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Планируется развитие следующих компонентов:&lt;br /&gt;
&lt;br /&gt;
* '''Context Memory''' — память текущего диалога;&lt;br /&gt;
* '''Verifier''' — проверка качества и корректности ответа;&lt;br /&gt;
* '''Escalation''' — передача сложного запроса более сильной модели;&lt;br /&gt;
* '''RAG''' — подключение собственной базы знаний RAMBA;&lt;br /&gt;
* '''Infrastructure Knowledge''' — информация о серверах и сервисах RAMBA;&lt;br /&gt;
* '''Tool Calling''' — выполнение разрешённых действий через инструменты;&lt;br /&gt;
* '''Metrics''' — статистика качества, скорости и маршрутизации.&lt;br /&gt;
&lt;br /&gt;
== Статус проекта ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Компонент&lt;br /&gt;
! Статус&lt;br /&gt;
|-&lt;br /&gt;
| Ollama&lt;br /&gt;
| {{Да}}&lt;br /&gt;
|-&lt;br /&gt;
| GPU inference&lt;br /&gt;
| {{Да}}&lt;br /&gt;
|-&lt;br /&gt;
| FAST model&lt;br /&gt;
| {{Да}}&lt;br /&gt;
|-&lt;br /&gt;
| INFRA model&lt;br /&gt;
| '''Готово'''&lt;br /&gt;
|-&lt;br /&gt;
| SMART model&lt;br /&gt;
| '''Готово'''&lt;br /&gt;
|-&lt;br /&gt;
| Router API&lt;br /&gt;
| '''Готово'''&lt;br /&gt;
|-&lt;br /&gt;
| Score-based routing&lt;br /&gt;
| '''Готово'''&lt;br /&gt;
|-&lt;br /&gt;
| Ollama model detection&lt;br /&gt;
| '''Готово'''&lt;br /&gt;
|-&lt;br /&gt;
| Session affinity&lt;br /&gt;
| '''Готово'''&lt;br /&gt;
|-&lt;br /&gt;
| Router v3 test&lt;br /&gt;
| '''30/30'''&lt;br /&gt;
|-&lt;br /&gt;
| Context-aware routing&lt;br /&gt;
| В разработке (v4)&lt;br /&gt;
|-&lt;br /&gt;
| Verifier&lt;br /&gt;
| Планируется&lt;br /&gt;
|-&lt;br /&gt;
| RAG&lt;br /&gt;
| Планируется&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Итог ==&lt;br /&gt;
&lt;br /&gt;
'''RAMBA AI Router v3''' подтвердил работоспособность архитектуры динамического выбора локальных языковых моделей.&lt;br /&gt;
&lt;br /&gt;
Контрольный тест показал:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
30 / 30&lt;br /&gt;
100%&lt;br /&gt;
PERFECT ROUTING&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вместо запуска одной универсальной модели RAMBA AI использует несколько специализированных моделей и выбирает подходящую в зависимости от характера задачи.&lt;br /&gt;
&lt;br /&gt;
Следующий этап проекта — '''Router v4''', который добавит память диалога и контекстную маршрутизацию.&lt;br /&gt;
&lt;br /&gt;
[[Категория:RAMBA]]&lt;br /&gt;
[[Категория:RAMBA AI]]&lt;br /&gt;
[[Категория:Искусственный интеллект]]&lt;br /&gt;
[[Категория:Серверы]]&lt;/div&gt;</summary>
		<author><name>192.168.1.1</name></author>
	</entry>
</feed>