Files
brojs-task-6a02e23da6fe2e4a…/answer.md
T
2026-05-18 11:04:13 +00:00

26 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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\n```bash\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](https://docs.langchain.com/oss/python/langchain/tools)\n\n### 2. Векторное хранилище\n\nРеализуй модуль для работы с Qdrant:\n- Инициализация клиента и коллекции\n- Добавление документов с эмбеддингами через Ollama\n- Поиск с метрикой релевантности\n\n📖 [QdrantVectorStore](https://docs.langchain.com/oss/python/integrations/vectorstores/qdrant)\n\n### 3. Система чанкинга\n\nРеализуй разбиение документов на чанки перед добавлением в базу.\n\n📖 [RecursiveCharacterTextSplitter](https://docs.langchain.com/oss/python/integrations/splitters/recursive_text_splitter)\n\n### 4. Агент с RAG-интеграцией\n\nСоздай агента с системным промптом, инструктирующим использовать базу знаний.\n\n📖 [create_agent](https://docs.langchain.com/oss/python/langchain/overview#create-an-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"
}
}