109 lines
4.3 KiB
Markdown
109 lines
4.3 KiB
Markdown
# Suite 02 Pipeline
|
|
|
|
Интеграционный набор тестов для режимов:
|
|
|
|
- `router_only`
|
|
- `router_rag`
|
|
- `full_chain`
|
|
|
|
## Что входит в suite
|
|
|
|
- `pipeline_intent_rag/` — тесты, fixtures и runtime пайплайна
|
|
- `cli/` — запускные скрипты для индексации и ручного прогона пайплайна
|
|
|
|
## Запуск тестов через pytest
|
|
|
|
Из корня проекта:
|
|
|
|
```bash
|
|
PYTHONPATH=. pytest tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/test_intent_router_only_matrix.py -q
|
|
```
|
|
|
|
Для retrieval-режима:
|
|
|
|
```bash
|
|
PYTHONPATH=. RUN_INTENT_PIPELINE_ROUTER_RAG=1 pytest -m router_rag tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/ -q
|
|
```
|
|
|
|
Для полной цепочки:
|
|
|
|
```bash
|
|
PYTHONPATH=. RUN_INTENT_PIPELINE_FULL_CHAIN=1 pytest -m full_chain tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/ -q
|
|
```
|
|
|
|
## Запуск через CLI
|
|
|
|
### 1. Индексация репозитория
|
|
|
|
```bash
|
|
PYTHONPATH=. python -m tests.pipeline_setup.suite_02_pipeline.cli.index_repo --repo-path /abs/path/to/repo [--project-id ID]
|
|
```
|
|
|
|
Параметры:
|
|
|
|
- `--repo-path` — путь к индексируемому репозиторию
|
|
- `--project-id` — `project_id` для новой RAG-сессии
|
|
|
|
### 2. Router only
|
|
|
|
```bash
|
|
PYTHONPATH=. python -m tests.pipeline_setup.suite_02_pipeline.cli.run_router_only [--case-id ID ...] [--verbose] [--test-name PREFIX]
|
|
```
|
|
|
|
Параметры:
|
|
|
|
- `--case-id` — запуск только выбранных кейсов, можно передавать несколько раз
|
|
- `--verbose` — печатать полную диагностику
|
|
- `--test-name` — префикс имени артефакта
|
|
|
|
### 3. Router + RAG
|
|
|
|
```bash
|
|
PYTHONPATH=. python -m tests.pipeline_setup.suite_02_pipeline.cli.run_router_rag --rag-session-id <uuid> [--case-id ID ...] [--verbose] [--test-name PREFIX]
|
|
```
|
|
|
|
или с переиндексацией:
|
|
|
|
```bash
|
|
PYTHONPATH=. python -m tests.pipeline_setup.suite_02_pipeline.cli.run_router_rag --reindex-repo-path /abs/path/to/repo [--reindex-project-id ID] [--case-id ID ...] [--verbose]
|
|
```
|
|
|
|
Параметры:
|
|
|
|
- `--rag-session-id` — готовый `rag_session_id` для всех кейсов
|
|
- `--reindex-repo-path` — путь к репозиторию, который нужно проиндексировать перед прогоном
|
|
- `--reindex-project-id` — `project_id` для новой RAG-сессии
|
|
- `--case-id` — запуск только выбранных кейсов
|
|
- `--verbose` — печатать расширенную диагностику
|
|
- `--test-name` — префикс имени артефакта
|
|
|
|
### 4. Full chain
|
|
|
|
```bash
|
|
PYTHONPATH=. python -m tests.pipeline_setup.suite_02_pipeline.cli.run_full_chain --rag-session-id <uuid> [--case-id ID ...] [--verbose] [--test-name PREFIX]
|
|
```
|
|
|
|
или с переиндексацией:
|
|
|
|
```bash
|
|
PYTHONPATH=. python -m tests.pipeline_setup.suite_02_pipeline.cli.run_full_chain --reindex-repo-path /abs/path/to/repo [--reindex-project-id ID] [--case-id ID ...] [--verbose]
|
|
```
|
|
|
|
Параметры те же, что и у `run_router_rag`.
|
|
|
|
## Переменные окружения
|
|
|
|
- `RUN_INTENT_PIPELINE_ROUTER_RAG=1` — включает тесты и прогоны `router_rag`
|
|
- `RUN_INTENT_PIPELINE_FULL_CHAIN=1` — включает тесты и прогоны `full_chain`
|
|
- `DATABASE_URL` — обязателен для retrieval и full chain
|
|
- `INTENT_PIPELINE_FORCE_RAG_SESSION_ID` — принудительный `rag_session_id` для всех кейсов
|
|
- `INTENT_PIPELINE_RAG_SESSION_ID` — дефолтный `rag_session_id`
|
|
- `INTENT_PIPELINE_REINDEX_REPO_PATH` — путь к репозиторию для автоиндексации
|
|
- `INTENT_PIPELINE_REINDEX_PROJECT_ID` — `project_id` для автоиндексации
|
|
|
|
Артефакты прогонов пишутся в:
|
|
[test_results](/Users/alex/Dev_projects_v2/ai driven app process/v2/agent/tests/pipeline_setup/test_results)
|
|
|
|
Детали по внутреннему устройству пайплайна:
|
|
[pipeline_intent_rag/README.md](/Users/alex/Dev_projects_v2/ai driven app process/v2/agent/tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/README.md)
|