Files
agent/tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag
2026-03-12 16:55:23 +03:00
..
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00
2026-03-12 16:55:23 +03:00

Intent Pipeline Test Module

Что тестируется

  • router_only: только intent_router_v2.
  • router_rag: intent_router_v2 -> RAG retrieval.
  • full_chain: intent_router_v2 -> RAG -> GigaChat.

Каталог фраз

Фразы лежат в [fixtures/phrases.yaml](/Users/alex/Dev_projects_v2/ai driven app process/v2/agent/tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/fixtures/phrases.yaml).

Поля кейса:

  • id — уникальный ID.
  • text — запрос пользователя.
  • tags — в каких режимах кейс участвует (router_only, router_rag, full_chain).
  • expected_intent — опциональная проверка intent.
  • expect_non_empty_rag — ожидание непустого RAG-контекста.
  • rag_session_id — опционально; можно не указывать, если задан через env.

Env для тестов

Сначала загружается [.env.test](/Users/alex/Dev_projects_v2/ai driven app process/v2/agent/tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/.env.test), затем workspace .env.

Ключи:

  • DATABASE_URL — подключение к тестовой БД.
  • RUN_INTENT_PIPELINE_ROUTER_RAG=1 — включить router_rag.
  • RUN_INTENT_PIPELINE_FULL_CHAIN=1 — включить 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_IDproject_id для новой сессии (опционально).

Если указан INTENT_PIPELINE_REINDEX_REPO_PATH, раннер создаёт новую rag_session, индексирует репозиторий и использует этот rag_session_id для retrieval.

Артефакты

Каждый прогон пишет JSONL в tests/pipeline_setup/test_results. Формат имени:

  • <test_name>_<YYYYMMDD_HHMMSS>.jsonl

Примеры:

  • test_intent_router_only_matrix_20260305_183010.jsonl
  • test_intent_router_rag_pipeline_20260305_183045.jsonl

Запуск

  • pytest tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/test_intent_router_only_matrix.py -q
  • RUN_INTENT_PIPELINE_ROUTER_RAG=1 pytest -m router_rag tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/test_intent_router_rag_pipeline.py -q
  • RUN_INTENT_PIPELINE_FULL_CHAIN=1 pytest -m full_chain tests/pipeline_setup/suite_02_pipeline/pipeline_intent_rag/test_intent_router_rag_llm_pipeline.py -q

CLI

Запуск без pytest:

  • python3 -m tests.pipeline_setup.suite_02_pipeline.pipeline_intent_rag run --mode router_only
  • python3 -m tests.pipeline_setup.suite_02_pipeline.pipeline_intent_rag run --mode router_rag --rag-session-id <sid>
  • python3 -m tests.pipeline_setup.suite_02_pipeline.pipeline_intent_rag run --mode full_chain --rag-session-id <sid>

Переиндексация репозитория в новую rag_session:

  • python3 -m tests.pipeline_setup.suite_02_pipeline.pipeline_intent_rag reindex --repo-path /abs/path/to/repo
  • опционально: --project-id my-project

Команда печатает итог:

  • rag_session_id=<uuid>

Далее этот rag_session_id можно передать в тестовый прогон:

  • python3 -m tests.pipeline_setup.suite_02_pipeline.pipeline_intent_rag run --mode router_rag --rag-session-id <uuid>

Полезные опции:

  • --case-id <id> (можно повторять)
  • --reindex-repo-path /abs/path/to/repo
  • --reindex-project-id <project_id>
  • --test-name <artifact_prefix>