4.7 KiB
{
"task": {
"_id": "6a02e23da6fe2e4ac16acf65",
"title": "Агент с RAG-памятью",
"description": "# Практическое задание: Агент с RAG-памятью\n\n## Цель\n\nПостроить AI-агента с локальным RAG-хранилищем знаний на базе Qdrant и Ollama. Агент должен уметь искать и сохранять информацию в векторной базе.\n\n---\n\n## Стек\n\n- Python 3.10+\n- Qdrant — векторная база данных\n- Ollama — локальные LLM и эмбеддинги (llama3, nomic-embed-text)\n- LangChain — фреймворк для агентов и RAG\n\n### Установка\n\nbash\n# Ollama\nollama pull llama3\nollama pull nomic-embed-text\n\n# Python пакеты\npip install langchain langchain-qdrant langchain-ollama\n\n\n---\n\n## Что нужно сделать\n\n### 1. RAG-инструменты для агента\n\nСоздай два инструмента через декоратор @tool:\n\n| Инструмент | Назначение |\n|------------|------------|\n| search_knowledge_base(query, max_results) | Семантический поиск в базе знаний |\n| add_to_knowledge_base(content, title) | Добавление документа в базу |\n\n📖 Документация @tool\n\n### 2. Векторное хранилище\n\nРеализуй модуль для работы с Qdrant:\n- Инициализация клиента и коллекции\n- Добавление документов с эмбеддингами через Ollama\n- Поиск с метрикой релевантности\n\n📖 QdrantVectorStore\n\n### 3. Система чанкинга\n\nРеализуй разбиение документов на чанки перед добавлением в базу.\n\n📖 RecursiveCharacterTextSplitter\n\n### 4. Агент с RAG-интеграцией\n\nСоздай агента с системным промптом, инструктирующим использовать базу знаний.\n\n📖 create_agent\n\n### 5. Клиент инициализации\n\nСкрипт для загрузки документов из директории в векторное хранилище.\n\n### 6. Интерактивный тестовый клиент\n\nCLI или простой интерфейс для демонстрации работы агента с командами /add, /search, /quit.\n\n---\n\n## Критерии зачёта\n\n| Компонент | Проверяется |\n|-----------|-------------|\n| Инструменты | @tool, search_knowledge_base, add_to_knowledge_base |\n| Векторное хранилище | Qdrant, эмбеддинги через Ollama |\n| Чанкинг | RecursiveCharacterTextSplitter, метаданные |\n| Агент | create_agent с RAG-инструментами |\n| Инициализация | Загрузка документов из директории |\n| Тестирование | Интерактивный клиент с командами |\n\n---\n\n## Полезные ссылки\n\n| Ресурс | Ссылка |\n|--------|--------|\n| LangChain Overview | https://docs.langchain.com/oss/python/langchain/overview |\n| Qdrant Integration | https://docs.langchain.com/oss/python/integrations/vectorstores/qdrant |\n| Ollama Integration | https://docs.langchain.com/oss/python/integrations/providers/ollama |\n| Text Splitters | https://docs.langchain.com/oss/python/integrations/splitters |\n| Tools | https://docs.langchain.com/oss/python/langchain/tools |\n| Agents | https://docs.langchain.com/oss/python/langchain/agents |\n| Qdrant Installation | https://qdrant.tech/documentation/install/ |",
"course": "698b49da77cb6d4d2e43ce78",
"lesson": {
"_id": "69ce8da9ee5ea03ca2f943d5",
"name": "Deep Agents Virtual File System",
"date": "2026-04-02T15:30:00.000Z",
"id": "69ce8da9ee5ea03ca2f943d5"
},
"gradeType": "passfail",
"maxScore": 100,
"assignmentType": "individual",
"allowSubmissions": true,
"allowRevisions": false,
"creator": {
"sub": "8ae348ab-f32e-46c7-9960-8b7fdf0e4c0e",
"name": "Александр Примаков"
},
"teamGrades": [],
"created": "2026-05-12T08:18:05.015Z",
"id": "6a02e23da6fe2e4ac16acf65"
}
}