diff --git a/rag/README.md b/rag/README.md index 469a014..8cbf3bb 100644 --- a/rag/README.md +++ b/rag/README.md @@ -71,19 +71,23 @@ pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu ## Подготовка данных -### Выгрузка из Confluence +### 1. Выгрузка из Confluence -Открыть страницу (раздел) Confluence, который необходимо получить. -Например, `https://conf.company.ltd/pages/viewpage.action?pageId=123456789`. +Открыть одну или несколько страниц (разделов) Confluence, которые необходимо получить. +Например: +``` +https://conf.company.ltd/pages/viewpage.action?pageId=123456789 +https://conf.company.ltd/pages/viewpage.action?pageId=987654321 +` -Скопировать значение `pageId` и подставить в команду `./download.sh `. +Скопировать значение `pageId` и подставить в команду `./download.sh [...]`. Например, ```bash -./download.sh 123456789 +./download.sh 123456789 987654321 ``` -В результате сама страница и все её дочерние будут сохранены в директорию `./input_html/`. +В результате указанные страницы и все их дочерние будут сохранены в директорию `./input_html/`. Файлы будут названы по заголовкам страниц. > [!IMPORTANT] @@ -92,13 +96,15 @@ pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu > [!IMPORTANT] > Confluence не позволяет получить готовые макросы в HTML-виде. -> В файлах будет находиться HTML-текст с готовыми к загрузками макросами, но не загруженными. -> Хотя в них часто есть очень полезная информация, но её приходится выбрасывать просто потому, что загрузка макросов происходит при загрузке страницы браузером. +> Хотя в макросах часто есть очень полезная информация, но её приходится выбрасывать просто потому, что загрузка макросов происходит при загрузке страницы браузером. +> В файлах будет находиться HTML-текст с готовыми к загрузке макросами, но не загруженными. > Поэтому, например, содержания, списки дочерних страниц, встраиваемые диаграммы и пр. плюшечки будут вырезаны. > -> Да, можно запросить страницы простым curl/wget, но (1) см. предыдущее замечание и (2) даже после очистки HTML-тегов в тексте останется очень много мусора (меню, футер, навигация...) +> Да, можно запросить страницы простым curl/wget, но (1) будет сложнее получить мета-инфу о странице и (2) даже после очистки HTML-тегов в тексте останется очень много мусора (меню, футер, навигация...) +> +> Да, можно комбинировать разные подходы и всё сильно усложнить, но я не хочу. -### Конвертация страниц в Markdown +### 2. Конвертация страниц в Markdown Этот формат наиболее хорошо подходит для цитирования, потому что не содержит лишних символов, которые будут мешать хорошей токенизации и векторизации. @@ -117,7 +123,7 @@ python3 convert.py python3 convert.py --help ``` -### Векторизация (индексирование) +### 3. Векторизация (индексирование) Файлы `./input_md/*.md` должны быть проиндексированы. @@ -148,7 +154,7 @@ python3 vectorize.py python3 vectorize.py --help ``` -## Запуск +## 4. Запуск Для работы с RAG в интерактивном режиме (симуляция диалога) следует выполнить команду: @@ -215,6 +221,6 @@ python3 rag.py --help 1. облегчить поиск информации о проекте среди почти 2000 тысяч документов в корпоративной Confluence, относящихся к нему; 2. обеспечить минимум телодвижений для развёртывания RAG с нуля внутри команды. -Здесь не было задачи сделать всё по красоте. +Здесь не было задачи сделать всё сложно и по красоте. -Частично (в качестве агентов) в проекте участвовали семейства qwen3, clause-sonnet-4 и семейство chatgpt-4. +Частично (в качестве агентов) в проекте участвовали модели семейств qwen, clause и chatgpt.