MCP + RAG: Чому я перестав будувати складні RAG-системи
Я витратив чотири роки на створення складних RAG-систем.
Я використовував стратегії чанкування, моделі ембедінгів, векторні бази даних та реранкери. Я побудував систему для своєї бази знань обсягом у 1800 годин. Щоразу мені здавалося, що я роблю її ідеальною.
Вона ніколи не працювала належним чином.
Потім я додав підтримку Model Context Protocol (MCP). Це змінило все. MCP робить традиційні складні RAG-системи застарілими для більшості людей.
Раніше я боровся з такими проблемами:
- Вибір між семантичним або рекурсивним чанкуванням.
- Вибір між ембедінгами від OpenAI, Cohere або Nomic.
- Вибір між Pinecone, Weaviate або Chroma.
- Управління top-k пошуком та реранкінгом.
Моя RAG-система розрослася до 2000 рядків коду. Вона була вражаючою, але не працювала. Я намагався зробити свої дані «розумними», хоча ШІ вже був розумним.
Я перейшов на підхід MCP. Я створив сервер лише на 150 рядках коду.
Я надав ШІ лише два інструменти:
search_notes: використовує простий текстовий пошук для знаходження нотаток.get_note_content: повертає повний текст нотатки.
Жодного чанкування. Жодних складних ембедінгів. Жодних векторних баз даних.
Цей простий підхід перемагає мою складну RAG-систему у 9 випадках із 10. Ось чому:
- ШІ керує логікою. ШІ краще вирішує, що є релевантним, ніж заздалегідь налаштований чанкер.
- Повний контекст. Традиційний RAG розбиває нотатки на маленькі шматочки. Через це відповідь часто втрачається. З MCP ШІ читає всю нотатку цілком. Він бачить повну ідею.
- Передбачуваність. Текстовий пошук — це просто. Якщо ключове слово існує, він працює. Ви уникаєте дрейфу ембедінгів та помилок розмірності.
Вам все ж варто використовувати традиційний RAG, якщо:
- У вас понад 100 000 великих документів.
- Вам потрібне високе навантаження у продакшені з низькою затримкою.
Але для персональних баз знань, сторонніх проєктів або внутрішніх інструментів він вам не потрібен.
Переваги MCP:
- Легко підтримувати: 150 рядків замість 2000.
- Відсутність витрат на ембедінги: вам не потрібно повторно створювати ембедінги даних при зміні моделей.
- Вища точність: ШІ отримує повний контекст.
- Легко налагоджувати: ви точно бачите, чому пошук не вдався.
Припиніть надмірне проєктування. Нехай ШІ бере на себе важку роботу. Дайте йому доступ до ваших даних і дозвольте йому читати.
Optional learning community: https://t.me/GyaanSetuAi
