Доработка RAG-системы (LangGraph + Streamlit): логика графа, веб-поиск и Cost Dashboard № 14127
5 000 ₽
ОткликнутьсяРынок рубрикиНиже рынка
10 000 ₽медиана по «AI Автоматизация»
Ниже, чем у 61% заказов рубрики
По 141 заказу за 90 дней. Шкала логарифмическая.
СвежестьОкно закрыто
13 дн. назадгорячее окно: окно закрыто
Оценка по площадке: в первые часы заказчик получает больше всего откликов.
Есть рабочий прототип RAG-системы на LangGraph (разработан в Jupyter Notebook в рамках учебного практикума). Базы знаний проиндексированы, базовый пайплайн работает. Нужно доработать логику графа, сделать удобный веб-интерфейс и обеспечить кроссплатформенность (Linux/Windows) · 1. Среда разработки: имеющийся код написан в Jupyter Notebook. Нужно разложить его по отдельным.py модулям (логика графа, retriever, reranker, утилиты) так, чтобы эти модули можно было импортировать в app.py для Streamlit. При этом должна сохраниться возможность пошаговой отладки в ноутбуке (ноутбук может импортировать те же модули) · 2. Точка входа: создать файл app.py (запуск через streamlit run app.py), который импортирует модули с логикой и отрисовывает интерфейс · 3. Оркестрация: LangGraph · 4. LLM: Qwen2.5-3B-Instruct (локально) или GigaChat (по API) · 5. Эмбеддинги: paraphrase-multilingual-MiniLM-L12-v2 · 6. Векторная база: FAISS (файлы с индексами уже готовы) · 7. Пайплайн: классификация запроса (поисковый/разговорный), разбивка сложного запроса на составные, исправление опечаток, определение типа запроса и роутинг в соответствующую базу знаний (реализованный Router неидеален, нужно подправить), извлечение чанков, отбор релевантных чанков, генерация ответа · 8. Данные: 3 базы знаний (Хабр, Научные статьи, Новости) · Что нужно сделать: · 1. Доработка логики графа (LangGraph): · а) Классификация запроса: определять тип запроса (поисковый/разговорный). Если запрос классифицирован как разговорный - отвечать напрямую через LLM без поиска по базам · б) Retriever достаёт чанки из выбранной базы (количество зависит от базы), Reranker выставляет каждому score, score нормируется через сигмоиду (0-1), чанк с максимальным значением сохраняется как контекст для генерации. Если все чанки для
…