From 9694786e81194daab21646538e6de5d72837e999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=B8=D0=BD=D0=B0=D1=80=20=D0=9C=D0=B8=D1=80=D0=B7?= =?UTF-8?q?=D0=B0=D0=B3=D0=B8=D1=82=D0=BE=D0=B2?= Date: Wed, 17 Jun 2026 13:12:20 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB=D0=BD=D0=BE=D0=B3=D0=BE?= =?UTF-8?q?=20=D0=BD=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2:=20add=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c625266 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# RAG agent with ChromaDB and Tavily + +CLI-агент, который выбирает между локальной базой знаний и веб-поиском: + +- `search_local_kb` ищет по локальным документам в `ChromaDB` +- `web_search` ищет в интернете через `Tavily` +- агент сам выбирает источник и в финальном ответе указывает `Источник: chromadb` или `Источник: tavily` + +## Установка + +```bash +ollama pull llama3 +ollama pull nomic-embed-text + +pip install -r requirements.txt +``` + +Создайте `.env`: + +```bash +TAVILY_API_KEY=your_api_key +``` + +## Загрузка документов + +Перед демонстрацией загрузите тестовые документы: + +```bash +python main.py --ingest documents +``` + +## Запуск чата + +```bash +python main.py +``` + +Для выхода используйте `exit`. + +## Структура + +- `vectorstore.py` — `Chroma` + `OllamaEmbeddings`, загрузка и чанкинг документов +- `tools.py` — инструменты `search_local_kb` и `web_search` +- `agent.py` — `create_agent` с маршрутизацией local vs web +- `main.py` — CLI и команда `--ingest` +- `documents/` — тестовые `.txt`/`.md` файлы для демонстрации