danswer/backend/tests/regression/answer_quality/search_quality_test.py
2024-07-06 11:51:50 -07:00

59 lines
2.0 KiB
Python

import os
from datetime import datetime
from types import SimpleNamespace
import yaml
from tests.regression.answer_quality.cli_utils import cleanup_docker
from tests.regression.answer_quality.cli_utils import manage_data_directories
from tests.regression.answer_quality.cli_utils import set_env_variables
from tests.regression.answer_quality.cli_utils import start_docker_compose
from tests.regression.answer_quality.cli_utils import switch_to_branch
from tests.regression.answer_quality.file_uploader import upload_test_files
from tests.regression.answer_quality.relari import answer_relari_questions
def load_config(config_filename: str) -> SimpleNamespace:
current_dir = os.path.dirname(os.path.abspath(__file__))
config_path = os.path.join(current_dir, config_filename)
with open(config_path, "r") as file:
return SimpleNamespace(**yaml.safe_load(file))
def main() -> None:
config = load_config("search_test_config.yaml")
if config.existing_test_suffix:
run_suffix = config.existing_test_suffix
print("launching danswer with existing data suffix:", run_suffix)
else:
run_suffix = datetime.now().strftime("_%Y%m%d_%H%M%S")
print("run_suffix:", run_suffix)
set_env_variables(
config.model_server_ip,
config.model_server_port,
config.use_cloud_gpu,
config.llm,
)
relari_output_folder_path = manage_data_directories(
run_suffix, config.output_folder, config.use_cloud_gpu
)
if config.branch:
switch_to_branch(config.branch)
start_docker_compose(run_suffix, config.launch_web_ui, config.use_cloud_gpu)
if not config.existing_test_suffix:
upload_test_files(config.zipped_documents_file, run_suffix)
answer_relari_questions(
config.questions_file, relari_output_folder_path, run_suffix, config.limit
)
if config.clean_up_docker_containers:
cleanup_docker(run_suffix)
if __name__ == "__main__":
main()