Cognitive-rag / run.py
run.py
Raw
import subprocess
from pathlib import Path


ROOT = Path(__file__).resolve().parent
VENV_PY = ROOT / "Final_venv" / "Scripts" / "python.exe"

TEST_PIPELINE = ROOT / "04_vectoredb" / "test_pipeline.py"
PARSE_OUTPUT = ROOT / "05_generation" / "parse_output.py"
GENERATE_ANSWER = ROOT / "05_generation" / "generate_answer.py"


def run_step(args, cwd, stdin_text=None, capture_output=True):
    return subprocess.run(
        args,
        cwd=cwd,
        input=stdin_text,
        text=True,
        check=True,
        capture_output=capture_output,
    )


def main():
    query = input("Enter your query: ").strip()
    if not query:
        print("No query provided.")
        return

    run_step(
        [str(VENV_PY), str(TEST_PIPELINE)],
        cwd=ROOT,
        stdin_text=query + "\n",
    )
    run_step(
        [str(VENV_PY), str(PARSE_OUTPUT), "--query", query],
        cwd=ROOT / "05_generation",
    )
    result = run_step(
        [str(VENV_PY), str(GENERATE_ANSWER)],
        cwd=ROOT / "05_generation",
        capture_output=True,
    )

    print(result.stdout.strip())


if __name__ == "__main__":
    main()