Всем привет! Хочу поделиться своим подходом к созданию чат-бота с функцией «умной документации» для проекта, над которым я работаю. **Я не являюсь экспертом в области ИИ, поэтому любые предложения и улучшения приветствуются!**
Цель этой статьи — **не** создавать очередной туториал по сборке чат-бота с OpenAI. Таких материалов уже достаточно.
Вместо этого я расскажу, как **индексировать документацию**, разделив её на **удобоваримые фрагменты**, создать для них **векторные представления (эмбеддинги)** с помощью OpenAI и выполнять **поиск по схожести**, чтобы находить наиболее релевантную информацию по пользовательскому запросу.
В моем случае документация представлена файлами в формате Markdown, но это может быть любой текст, объект базы данных и т.д.
---
## Зачем?
Потому что бывает сложно найти нужную информацию. Я хотел создать чат-бота, который может отвечать на вопросы по определенной теме и предоставлять соответствующий контекст из документации.
Такой ассистент может использоваться в разных сценариях:
- **Быстрые ответы на частые вопросы**
- **Поиск по документации как в Algolia**
- **Помощь пользователям в навигации по документации**
- **Анализ пользовательских вопросов и хранение их для анализа**
---
## Краткое содержание
Ниже приведены три основные части решения:
1. Чтение файлов документации
2. Индексация документации (разбиение, перекрытие, эмбеддинги)
3. Поиск по документации и интеграция с чат-ботом
---
## 1. Чтение файлов документации
Вместо того чтобы жестко прописывать текст, вы можете просканировать папку и найти все `.md` файлы с помощью `glob`.