Реализация моста контекста IWE как графа знаний на базе ИИ с использованием агентского RAG, вызова функций OpenAI и обхода графа

В этом руководстве мы реализуем IWE — систему управления личными знаниями с открытым исходным кодом, которая обрабатывает заметки в формате Markdown как ориентированный граф знаний. Поскольку IWE — это инструмент CLI/LSP, разработанный для локальных редакторов, мы создадим реалистичную базу знаний разработчика с нуля, подключим вики-ссылки и ссылки в формате Markdown в виде ориентированного графа, а затем рассмотрим все основные операции IWE: нечёткий поиск с помощью команды find, контекстно-зависимый поиск с помощью retrieve, отображение иерархии с помощью tree, объединение документов с помощью squash, статистику с помощью stats и экспорт в формате DOT для визуализации.

Далее мы выйдем за пределы интерфейса командной строки, интегрировав OpenAI для поддержки преобразований в стиле IWE: обобщение, предложение ссылок и извлечение задач непосредственно из нашего графа знаний. Наконец, мы создадим полноценный агентский конвейер RAG, в котором агент ИИ будет перемещаться по графу, используя инструменты вызова функций, выполнять многоэтапные рассуждения в связанных документах, выявлять пробелы в знаниях и даже генерировать новые заметки, которые встраиваются в существующую структуру.

Установка необходимых зависимостей

Мы устанавливаем необходимые зависимости, безопасно принимаем ключ API OpenAI через секреты Colab или запрос пароля и инициализируем клиента OpenAI. Затем мы определяем три основополагающих класса данных: Section, Document и KnowledgeGraph, которые отражают архитектуру арены IWE, где каждый файл Markdown является узлом, а каждая ссылка — направленным ребром.

Реализация операций IWE CLI

Мы реализуем полный набор операций IWE CLI для класса KnowledgeGraph, включая синтаксический анализ Markdown для вики-ссылок и заголовков, нечёткий поиск с помощью find, контекстно-зависимый поиск с помощью retrieve, безопасное для циклов отображение иерархии с помощью tree, объединение документов с помощью squash, аналитику базы знаний с помощью stats и экспорт в формате DOT для визуализации с помощью Graphviz.

Создание графа знаний

Мы создаём граф знаний, добавляя восемь взаимосвязанных документов в формате Markdown, которые формируют реалистичную базу знаний разработчика, охватывающую аутентификацию, проектирование базы данных, проектирование API, фронтенд, развёртывание, кэширование и производительность. Все они организованы под точкой входа «Карта содержимого», точно так же, как мы структурировали бы заметки в IWE.

Операции с графом

Мы выполняем каждую операцию с графом: ищем с помощью find, отображаем полную иерархию документов с помощью tree, извлекаем статистику с помощью stats, выполняем контекстно-зависимый поиск с помощью retrieve, объединяем весь граф в один документ с помощью squash и экспортируем структуру в виде графа в формате DOT.

Трансформации с помощью ИИ

Мы определяем функцию aitransform, которая поддерживает пять типов преобразований: rewrite, summarize, expand, extracttodos и generate_links. Мы запускаем три демонстрации в реальном времени против нашей базы знаний: обобщаем документ «Система аутентификации» в виде кратких пунктов, анализируем его для предложения связанных тем и извлекаем задачи из документа «Примечания о производительности».

Агентский RAG

Мы строим полный агентский конвейер извлечения, который воплощает концепцию «Контекстного моста» IWE: агент ИИ, который перемещается по нашему графу знаний, используя вызов функций OpenAI с четырьмя инструментами: iwefind для обнаружения, iweretrieve для контекстно-зависимого извлечения контента, iwetree для исследования иерархии и iwestats для аналитики базы знаний.

Обслуживание графа знаний с помощью ИИ

Мы используем ИИ для анализа нашего графа знаний на предмет структурных пробелов, выявления пропущенных тем, не связанных документов и областей, которым требуется дополнительная глубина. Затем мы автоматически генерируем новую заметку «Стратегия обработки ошибок», которая ссылается на существующие документы с помощью вики-ссылок, и добавляем её в живой граф.

Многоэтапное рассуждение в графе знаний

Мы задаём сложный многоэтапный вопрос о том, какие изменения потребуются во всём стеке при увеличении трафика с 1000 RPS до 5000 RPS, и просим агента ИИ пройти по документам базы данных, кэширования, аутентификации и развёртывания для синтеза комплексного ответа.

В заключение мы создали полноценную реализацию основных идей IWE, работающую в среде Colab. Мы увидели, как структурирование заметок в виде графа, а не обработка их как плоских файлов, открывает мощные возможности: отношения становятся проходимыми путями, контекст естественным образом передаётся от родительских документов к дочерним, а агенты ИИ могут обнаруживать, перемещаться и синтезировать знания именно так, как мы их организуем.

1. Какие основные операции IWE были рассмотрены в статье?

В статье были рассмотрены следующие основные операции IWE: нечёткий поиск с помощью команды `find`, контекстно-зависимый поиск с помощью `retrieve`, отображение иерархии с помощью `tree`, объединение документов с помощью `squash`, статистика с помощью `stats` и экспорт в формате DOT для визуализации.

2. Какие типы преобразований поддерживает функция `ai_transform`?

Функция `aitransform` поддерживает пять типов преобразований: `rewrite` (переписывание), `summarize` (обобщение), `expand` (расширение), `extracttodos` (извлечение задач) и `generate_links` (генерация ссылок).

3. Какие инструменты использует агент ИИ для перемещения по графу знаний?

Агент ИИ использует следующие инструменты для перемещения по графу знаний: `iwefind` для обнаружения, `iweretrieve` для контекстно-зависимого извлечения контента, `iwetree` для исследования иерархии и `iwestats` для аналитики базы знаний.

4. Какие возможности открывает структурирование заметок в виде графа?

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

5. Какие действия предпринимаются для обслуживания графа знаний с помощью ИИ?

Для обслуживания графа знаний с помощью ИИ предпринимаются следующие действия: анализ графа на предмет структурных пробелов, выявление пропущенных тем, не связанных документов и областей, которым требуется дополнительная глубина. Затем автоматически генерируются новые заметки, которые ссылаются на существующие документы с помощью вики-ссылок, и добавляются в живой граф.

Источник