[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fZOCTLh_LfvM2YTeG5cPkJII_I7EncvHjY5pNnawxjsQ":3},{"article":4,"related":20},{"title":5,"slug":6,"dek":7,"body":8,"cover":9,"type":10,"reading_minutes":11,"published_at":12,"category":13,"author":15},"RAG с нуля","rag-s-nulya","Собираем поиск по своим документам, чтобы модель отвечала по фактам, а не выдумывала.","## Зачем нужен RAG\nМодель не знает ваших внутренних документов и выдумывает детали. RAG подкладывает в запрос куски из вашей базы, и модель отвечает по фактам, а не по памяти. Так строят чат-боты по документации, поддержку и поиск по архиву.\n\n## Как это работает в 4 шага\n1. Режете документы на куски.\n2. Превращаете куски в векторы через модель эмбеддингов.\n3. На вопрос пользователя находите ближайшие куски по смыслу.\n4. Кладёте найденное в промпт и просите модель ответить только по этому тексту.\n\n## Нарежьте документы с умом\nКуски по 300-500 токенов с перекрытием в 50 токенов работают лучше всего. Слишком крупные размывают смысл, слишком мелкие теряют контекст. Режьте по абзацам и заголовкам, а не по символам вслепую.\n\n## Выберите векторную базу\nДля старта хватит Chroma или FAISS, они поднимаются в пару строк кода. Когда данных станут миллионы, переходите на Qdrant или pgvector поверх привычного Postgres.\n\n## Соберите пайплайн\nВозьмите модель эмбеддингов, прогоните через неё все куски один раз и сохраните векторы. На каждый вопрос считаете вектор запроса, достаёте топ-5 похожих кусков и склеиваете их с инструкцией «отвечай только по контексту ниже, если ответа нет, так и скажи».\n\n## Проверьте качество поиска\nСлабое звено обычно не модель, а retrieval. Соберите 20 вопросов с известными ответами и проверьте, попадают ли нужные куски в топ-5. Если нет, чините нарезку и эмбеддинги, а не промпт.\n\n## Уберите галлюцинации\nПопросите модель ссылаться на источник каждого утверждения и возвращать «не знаю», когда контекст пуст. Показывайте пользователю, из какого документа взят ответ. Это поднимает доверие и упрощает отладку.\n\n## Замерьте скорость и цену\nRAG добавляет шаг поиска перед каждым ответом, и это время и деньги. Держите индекс горячей базы в памяти, считайте вектор вопроса быстро. Эмбеддинги обычно дешёвые, а раздутый контекст из десятка кусков бьёт по счёту за генерацию. Кладите в промпт топ-3-5 кусков, а не всё подряд.",null,"guide",3,"2026-07-01T08:47:12.000Z",{"name":14},"Гайды",{"name":16,"slug":17,"role":18,"bio":19},"Артём Соколов","artem-sokolov","главный редактор","Следит за релизами больших языковых моделей и агентных систем. Разбирает бенчмарки без хайпа и переводит новости лабораторий в понятные выводы для практиков.",[21,26,31],{"title":22,"slug":23,"reading_minutes":11,"published_at":24,"category":25},"Основы промпт-инжиниринга","osnovy-prompt-inzhiniringa","2026-07-06T08:47:12.000Z",{"name":14},{"title":27,"slug":28,"reading_minutes":11,"published_at":29,"category":30},"Как выбрать LLM под задачу","kak-vybrat-llm-pod-zadachu","2026-07-05T08:47:12.000Z",{"name":14},{"title":32,"slug":33,"reading_minutes":11,"published_at":34,"category":35},"Как оценивать модели и читать бенчмарки","otsenka-modeley-benchmarki","2026-07-04T08:47:12.000Z",{"name":14}]