ИИ-ассистент поиска по wiki, инструкция: различия между версиями
В начале статьи добавлен URL сервиса (http://192.168.33.12:7050) |
Admin (обсуждение | вклад) Нет описания правки |
||
| (не показаны 2 промежуточные версии 2 участников) | |||
| Строка 2: | Строка 2: | ||
В интерфейсе три вкладки: | В интерфейсе три вкладки: | ||
* '''Поиск''' — находит фрагменты статей в базе знаний; | * '''Поиск''' — находит фрагменты статей и файлов в базе знаний; | ||
* '''Чат''' — ИИ-ассистент, | * '''Чат''' — ИИ-ассистент (ИИ-агент): сам ищет нужные страницы в базе знаний, читает их и отвечает со ссылками на источники; | ||
* '''Индексация''' — для администратора (описана в свёрнутом разделе в конце статьи). | * '''Индексация''' — для администратора (описана в свёрнутом разделе в конце статьи). | ||
== Вкладка «Поиск» == | == Вкладка «Поиск» == | ||
Введите запрос в поле и нажмите «Найти» (или Enter). Сервис вернёт до 10 самых релевантных фрагментов: название статьи (по клику открывается в вики), название раздела и отрывок текста. | Введите запрос в поле и нажмите «Найти» (или Enter). Сервис вернёт до 10 самых релевантных фрагментов: название статьи (по клику открывается в вики), название раздела и отрывок текста. Сокращения в запросе расшифровываются автоматически (например, ДДС — «отчёт о движении денежных средств»), из файлов фрагменты отмечены названием: «Файл: НАПФ.pdf (страница 3)». | ||
'''Реранкинг''' — вторичная оценка релевантности: специальная модель «перечитывает» запрос вместе с каждым найденным фрагментом и переставляет результаты так, чтобы сверху оказались не просто похожие по словам, а те, что действительно отвечают на вопрос. Рядом с каждым результатом указана оценка модели (реранк) — чем выше, тем точнее попадание. | '''Реранкинг''' — вторичная оценка релевантности: специальная модель «перечитывает» запрос вместе с каждым найденным фрагментом и переставляет результаты так, чтобы сверху оказались не просто похожие по словам, а те, что действительно отвечают на вопрос. Рядом с каждым результатом указана оценка модели (реранк) — чем выше, тем точнее попадание. | ||
| Строка 17: | Строка 17: | ||
Пара советов: | Пара советов: | ||
* Задавайте запрос коротко и по ключевым словам: название документа, форма отчёта, название продукта. | * Задавайте запрос коротко и по ключевым словам: название документа, форма отчёта, название продукта. | ||
* Если ничего не нашлось — переформулируйте запрос (другое слово от того же термина) или задайте вопрос во вкладке «Чат»: ассистент поиск | * Если ничего не нашлось — переформулируйте запрос (другое слово от того же термина) или задайте вопрос во вкладке «Чат»: ассистент сам расширит поиск несколькими формулировками. | ||
== ИИ-ассистент (вкладка «Чат») == | == ИИ-ассистент (вкладка «Чат») == | ||
Ассистент отвечает на вопросы по бухгалтерскому и налоговому учёту, опираясь на базу знаний. | Ассистент отвечает на вопросы по бухгалтерскому и налоговому учёту, опираясь на базу знаний. Он работает как '''ИИ-агент''' — ищет в базе знаний сам и отвечает только по найденному: | ||
* Вы задаёте вопрос — ассистент находит связанные | * Вы задаёте вопрос — ассистент находит связанные страницы (семантический поиск с моделью релевантности), при необходимости смотрит заголовки статей, затем читает найденные страницы (из файлов — наиболее релевантные секции) и готовит краткий, структурированный ответ. | ||
* Ответ содержит ссылки на источники: нумерованные цитаты (1), (2) и список «Источники» под ответом. Кликабельны — ведут на статью в вики. | * Пока вопрос обрабатывается, в окне чата видно, что делает ассистент: «Поиск: …», «Смотрю индекс статей: …», «Читаю страницу: …». | ||
* Если в вопросе есть сокращения (ДДС, ОПС, НПФ и т.п.), ассистент расшифрует их сам. | |||
* Ответ содержит ссылки на источники: нумерованные цитаты (1), (2) и список «Источники» под ответом. Кликабельны — ведут на статью в вики (файлы — по имени файла). | |||
* Ассистент отвечает '''только по базе знаний''': если информации в ней нет, он об этом честно говорит, не выдумывает цифры и реквизиты. | * Ассистент отвечает '''только по базе знаний''': если информации в ней нет, он об этом честно говорит, не выдумывает цифры и реквизиты. | ||
* Диалог можно продолжать — уточняющие вопросы учитываются в контексте. Кнопка «Новый чат» начинает тему с чистого листа. | * Диалог можно продолжать — уточняющие вопросы учитываются в контексте. Кнопка «Новый чат» начинает тему с чистого листа. | ||
* Если вопрос о конкретном продукте (ЕПС, УИК, УНПФ, Лизинг, XBRL и др.), назовите его — ассистент | * Предыдущие чаты из вашего браузера сохраняются в списке над чатом — можно вернуться к любому и продолжить. | ||
* Если вопрос о конкретном продукте (ЕПС, УИК, УНПФ, УСК, Лизинг, НУЕПС, ФВ, УМФО, XBRL и др.), назовите его — ассистент посмотрит статьи нужного продукта. | |||
=== Хороший ответ — пример === | === Хороший ответ — пример === | ||
[[File:ui_chat_good.png|thumb|up to 560px|Вопрос «что такое Годные остатки?» — определение и пошаговый порядок отражения в учёте]] | [[File:ui_chat_good.png|thumb|up to 560px|Вопрос «что такое Годные остатки?» — определение и пошаговый порядок отражения в учёте]] | ||
Ответ хороший, потому что в базе знаний есть подробная статья «Годные остатки»: ассистент дал определение | Ответ хороший, потому что в базе знаний есть подробная статья «Годные остатки»: ассистент нашёл её, дал определение, по шагам описал, как отразить операцию в учёте, и сослался на источник. Такой ответ — ориентир: конкретный, по существу, с ссылкой, по которой можно проверить. | ||
=== Когда ответ «так себе» — и почему это нормально === | === Когда ответ «так себе» — и почему это нормально === | ||
| Строка 39: | Строка 42: | ||
Как получить полнее ответ: | Как получить полнее ответ: | ||
* Спрашивайте конкретно: не «расскажи про систему», а «Как закрыть договор ОПС?», «Как начисляются остатки по расторгнутым договорам?». | * Спрашивайте конкретно: не «расскажи про систему», а «Как закрыть договор ОПС?», «Как начисляются остатки по расторгнутым договорам?». | ||
* Уточняйте: продолжайте диалог уточняющими вопросами. | * Уточняйте: продолжайте диалог уточняющими вопросами — ассистент помнит контекст. | ||
* Если ответ «в базе знаний не нашлось» — тему можно донести до владельца базы знаний: статья ещё не написана. | * Если ответ «в базе знаний не нашлось» — тему можно донести до владельца базы знаний: статья ещё не написана. | ||
| Строка 67: | Строка 70: | ||
|} | |} | ||
Под кнопками — статус прогона (обновляется автоматически): | Под кнопками — статус прогона (обновляется автоматически): фаза (ожидал / идёт), время старта и конца, счётчики (страниц: всего / новых / изменённых / удалённых, чанков записано, файлов), обрабатываемая статья, журнал последних страниц (20 строк) и, при незавершённом прогоне — поле «Ошибка». | ||
Когда именно нужен полный реиндекс: | Когда именно нужен полный реиндекс: | ||
* после изменения правил очистки/нарезки текста (модули cleaner.py, chunker.py) — меняется идентификатор точек; | * после изменения правил очистки/нарезки текста (модули cleaner.py, chunker.py) — меняется идентификатор точек; | ||
* после смены эмбеддинговой или реранк-модели; | * после смены эмбеддинговой или реранк-модели; | ||
* | * после инкрементального прогона, который завершился с ошибкой, — сначала смотреть поле «Ошибка» в статусе, затем повторить. | ||
Состояние индекса хранится в служебных файлах (index_state.json — версии статей, file_index_state.json — хеши файлов), история диалогов — в chat_history.json. Хранятся рядом с сервером. | Состояние индекса хранится в служебных файлах (index_state.json — версии статей, file_index_state.json — хеши файлов), история диалогов — в chat_history.json. Хранятся рядом с сервером. | ||
| Строка 87: | Строка 90: | ||
| Реранкер не работает (нет GPU/CUDA) — поиск деградирует до векторного сходства, остаётся корректным. | | Реранкер не работает (нет GPU/CUDA) — поиск деградирует до векторного сходства, остаётся корректным. | ||
|- | |- | ||
| Ответ LLM не приходит / долгий таймаут | | Ответ LLM не приходит / долгий таймаут / ошибка в окне чата | ||
| Доступность LLM-сервера и модель в config.json (секция llm). | | Доступность LLM-сервера и модель в config.json (секция llm): и поиск, и ответ чата идут через него. | ||
|- | |- | ||
| Ошибка логина в вики при индексации | | Ошибка логина в вики при индексации | ||
| Строка 97: | Строка 100: | ||
|} | |} | ||
</div> | </div> | ||
[[Категория:AI]] | |||
Текущая версия от 08:03, 24 августа 2026
Сервис «RAG · Orticon Wiki» — помощник по внутренней базе знаний: ищет в статьях и файлах (PDF, XLSX, DOCX) нужные фрагменты и отвечает на вопросы по учёту. Открыть можно с любого компьютера внутренней сети, регистрация не нужна.
В интерфейсе три вкладки:
- Поиск — находит фрагменты статей и файлов в базе знаний;
- Чат — ИИ-ассистент (ИИ-агент): сам ищет нужные страницы в базе знаний, читает их и отвечает со ссылками на источники;
- Индексация — для администратора (описана в свёрнутом разделе в конце статьи).
Вкладка «Поиск»
Введите запрос в поле и нажмите «Найти» (или Enter). Сервис вернёт до 10 самых релевантных фрагментов: название статьи (по клику открывается в вики), название раздела и отрывок текста. Сокращения в запросе расшифровываются автоматически (например, ДДС — «отчёт о движении денежных средств»), из файлов фрагменты отмечены названием: «Файл: НАПФ.pdf (страница 3)».
Реранкинг — вторичная оценка релевантности: специальная модель «перечитывает» запрос вместе с каждым найденным фрагментом и переставляет результаты так, чтобы сверху оказались не просто похожие по словам, а те, что действительно отвечают на вопрос. Рядом с каждым результатом указана оценка модели (реранк) — чем выше, тем точнее попадание.

На примере: по запросу «Годные остатки» в первом результате — статья с тем же названием, далее — отчёты и обработки по смежным темам. Полезно смотреть не только на первый результат: соседние фрагменты часто дополняют ответ.
Пара советов:
- Задавайте запрос коротко и по ключевым словам: название документа, форма отчёта, название продукта.
- Если ничего не нашлось — переформулируйте запрос (другое слово от того же термина) или задайте вопрос во вкладке «Чат»: ассистент сам расширит поиск несколькими формулировками.
ИИ-ассистент (вкладка «Чат»)
Ассистент отвечает на вопросы по бухгалтерскому и налоговому учёту, опираясь на базу знаний. Он работает как ИИ-агент — ищет в базе знаний сам и отвечает только по найденному:
- Вы задаёте вопрос — ассистент находит связанные страницы (семантический поиск с моделью релевантности), при необходимости смотрит заголовки статей, затем читает найденные страницы (из файлов — наиболее релевантные секции) и готовит краткий, структурированный ответ.
- Пока вопрос обрабатывается, в окне чата видно, что делает ассистент: «Поиск: …», «Смотрю индекс статей: …», «Читаю страницу: …».
- Если в вопросе есть сокращения (ДДС, ОПС, НПФ и т.п.), ассистент расшифрует их сам.
- Ответ содержит ссылки на источники: нумерованные цитаты (1), (2) и список «Источники» под ответом. Кликабельны — ведут на статью в вики (файлы — по имени файла).
- Ассистент отвечает только по базе знаний: если информации в ней нет, он об этом честно говорит, не выдумывает цифры и реквизиты.
- Диалог можно продолжать — уточняющие вопросы учитываются в контексте. Кнопка «Новый чат» начинает тему с чистого листа.
- Предыдущие чаты из вашего браузера сохраняются в списке над чатом — можно вернуться к любому и продолжить.
- Если вопрос о конкретном продукте (ЕПС, УИК, УНПФ, УСК, Лизинг, НУЕПС, ФВ, УМФО, XBRL и др.), назовите его — ассистент посмотрит статьи нужного продукта.
Хороший ответ — пример

Ответ хороший, потому что в базе знаний есть подробная статья «Годные остатки»: ассистент нашёл её, дал определение, по шагам описал, как отразить операцию в учёте, и сослался на источник. Такой ответ — ориентир: конкретный, по существу, с ссылкой, по которой можно проверить.
Когда ответ «так себе» — и почему это нормально

Здесь ассистент ответил честно, но кратко: в базе знаний по теме УНПФ пока мало содержательных статей (разделы в разработке, описания пустые). Ассистент не заполняет пробелы выдуманными фактами — это особенность, а не сбой.
Как получить полнее ответ:
- Спрашивайте конкретно: не «расскажи про систему», а «Как закрыть договор ОПС?», «Как начисляются остатки по расторгнутым договорам?».
- Уточняйте: продолжайте диалог уточняющими вопросами — ассистент помнит контекст.
- Если ответ «в базе знаний не нашлось» — тему можно донести до владельца базы знаний: статья ещё не написана.
Когда ассистент не отвечает

Это не сбой, а штатная работа. Два случая:
- Вопрос не про учёт (например, «купи мне авиабилет»). Ассистент вежливо сообщает, что вопрос вне его компетенции, и напоминает, по каким темам он консультирует.
- Запрос непонятен (например, «бki» или «расскажи про версию 5»). Ассистент просит уточнить: что именно нужно сделать — провести документ, настроить отчёт, проверить проводку.
Как исправить: переформулируйте вопрос целиком, с ключевыми словами из базы знаний и названием продукта. Один вопрос — один диалог: если меняете тему нажмите «Новый чат».
Для администратора: вкладка «Индексация»
Третья вкладка — обслуживание служебной копии базы знаний (векторного индекса). Доступна в том же интерфейсе, предназначена для администратора.
| Кнопка | Что делает |
|---|---|
| Запустить индексацию | Инкрементальный прогон: добавляются новые статьи, обновляются изменённые, удалённые из вики — вычищаются из индекса. Файлы (PDF/XLSX/DOCX) обновляются по хешу содержимого. |
| Полный реиндекс | Полностью очищает индекс и состояние, затем пересобирает всё с вики, включая файлы. Подтверждается отдельным диалогом. Использовать при первом заводе, после смены моделей или правил нарезки текста, а также если после инкрементального прогона поиск «отстаёт» от вики. |
Под кнопками — статус прогона (обновляется автоматически): фаза (ожидал / идёт), время старта и конца, счётчики (страниц: всего / новых / изменённых / удалённых, чанков записано, файлов), обрабатываемая статья, журнал последних страниц (20 строк) и, при незавершённом прогоне — поле «Ошибка».
Когда именно нужен полный реиндекс:
- после изменения правил очистки/нарезки текста (модули cleaner.py, chunker.py) — меняется идентификатор точек;
- после смены эмбеддинговой или реранк-модели;
- после инкрементального прогона, который завершился с ошибкой, — сначала смотреть поле «Ошибка» в статусе, затем повторить.
Состояние индекса хранится в служебных файлах (index_state.json — версии статей, file_index_state.json — хеши файлов), история диалогов — в chat_history.json. Хранятся рядом с сервером.
Быстрые проверки при неполадках:
| Симптом | Что проверить |
|---|---|
| Чат не находит новую статью | Запущена ли индексация (поиск идёт по индексу, а не по живой вики). |
| В выдаче нет оценок «реранк» (только «скор») | Реранкер не работает (нет GPU/CUDA) — поиск деградирует до векторного сходства, остаётся корректным. |
| Ответ LLM не приходит / долгий таймаут / ошибка в окне чата | Доступность LLM-сервера и модель в config.json (секция llm): и поиск, и ответ чата идут через него. |
| Ошибка логина в вики при индексации | Учётные данные в config.json (секция wiki), права пользователя. |
| Сервис недоступен | Порт 7050 хоста с сервером; сервис не требует авторизации, доступ ограничен внутренней сетью. |