== Предлагаю установить локальный ИИ

Я не знаю, как это делается, но давайте хотя бы обсудим весь этот процесс.

План работ такой:

  • Сначала нужно собрать факты.
  • Затем нужно придумать вопросы, знания ответов на которые не хватает.
  • Потом нужно построить модель создаваемого.
  • И затем воплотить в реальности.

Факты:
существует какой-то „API, совместимый с OpenAI”

этот API как-то живёт совместно с ollama

«AI-ассистент, который может использовать как поддерживаемые Brave языковые модели (список), так и любые другие, которые предоставляют доступ по API, совместимому с OpenAI. В том числе можно использовать локальные модели, запускающиеся например с помощью Ollama.» https://www.linux.org.ru/news/proprietary/18326389#cut

OpenAI API — стандартизированный способ (интерфейс? фреймворк?) для взаимодействия (общения?) с моделью.

Ollama — программа (движок?), которая загружает, запускает и управляет локальными моделями.
Делает возможным запуск моделей Llama, Mistral и/или Gemma.
Предоставляет собственный API (чтобы что?)

Llama Stack - это какая-то обвязка для Ollama. У Llama Stack есть два варианта:

  • Режим “библиотеки” — вы встраиваете его напрямую в код (как JDBC).
    llama_stack_client (Python/TS SDK)
  • Режим “сервера” — вы запускаете отдельный процесс Llama Stack Server, к которому подключаются клиенты (подключаются через что, сокеты, пайпы, память? подключаются через HTTP REST API поверх TCP-сокетов)

Llama Stack — упрощает разработку агентов, набор инструментов от Meta (создателей Llama). Его роль (группа функций) — дать разработчикам единый интерфейс для создания сложных AI-приложений, чтобы не писать один и тот же код для разных моделей.
Llama Stack API можно сравнить по роли с JDBC API.

Приложение OpenClaw подключается к серверу Ollama через Ollama API или OpenAI API.
OpenClaw является (становится после настройки) пользовательским интерфейсом.

OpenClaw так же является “умным агентом” («телом»?), может работать с доступными файлами и выполнять действия.

OpenClaw использует Llama Stack как составной компонент? OpenClaw не использует Llama Stack как составной компонент. Это две независимые альтернативы на разных уровнях системы. OpenClaw может использовать Llama Stack как провайдера, но это не встроенный компонент

Какие-то ещё непонятные слова или названия подходов, методов и технологий:

  • RAG (поиск по документам)
  • Tool calling (вызов функций/инструментов)
  • Встраивания (embeddings)
  • Безопасность (guardrails)

== RAG (Retrieval-Augmented Generation) — “Поиск с чтением”

Модель знает только то, что было в её обучающих данных (до определенного года). Она не видит личные файлы, документы компании или актуальные новости.

Решение RAG:

  • Вы загружаете документы (PDF, Word, веб-страницы).
  • Система разбивает их на куски и сохраняет в векторной базе данных (с помощью embeddings).
  • Когда вы задаете вопрос, система сначала ищет в этой базе релевантные куски текста.
  • Затем она передает модели ваш вопрос вместе с найденными кусками как контекст.
  • Модель отвечает, опираясь на предоставленные документы.

Аналогия: Это как поисковый индекс для локальных данных, который работает под управлением модели, которая знает разговорный язык.

Загрузка (Ingestion), Нарезка на фрагменты (Разбивка на чанки, Chunking). Делается для того, чтобы в базу попали именно релевантные фрагменты (это как предварительный парсинг для разделения контента и метаданных с сопутствующими кусками обрамления?). Каждый “кусок” текста пропускается через специальную модель-энкодер (например, all-MiniLM-L6-v2, multilingual-e5-small), которая превращает его в вектор — длинный массив чисел. Сохранение в векторной базе (Vector Store).

«Ваши локальные документы → RAG (embeddings) → OpenClaw (агент + tool calling)»
Этот кусок цепочки непонятно как воплощать. Неясно, что такое RAG технически (а не концептуально).
Полученные векторы вместе с исходным текстом сохраняются в специальной базе данных (например, ChromaDB, FAISS, LanceDB).
Существует ли у этих векторных БД унифицированный API?

Часто используется LangChain — фреймворк для связывания всех этих компонентов в единую цепочку.
Интересно, раньше для простого поиска была Lucene, она как-то взаимодействует со всем этим?

WAIL (Web Archiving Integration Layer) - это графический интерфейс, десктопное приложение. PyWb - альтернатива для OpenWayback