import argparse import os from src.graph import build_graph from src.state import CompareState def parse_entities(arg: str) -> list[str]: return [e.strip() for e in arg.split(",") if e.strip()] def main(): parser = argparse.ArgumentParser(description="Research Brief Generator") parser.add_argument( "-e", "--entities", type=str, help="Comma-separated list of 3 entities to compare", ) args = parser.parse_args() if args.entities: entities = parse_entities(args.entities) if len(entities) != 3: print("Please provide exactly 3 entities.") return else: # Default entities entities = ["Chroma", "FAISS", "Qdrant"] # Initial state state: CompareState = { "entities": entities, "criteria": [], "findings": {}, "final_brief": None, "verdict": None, } graph = build_graph() final_state = graph.invoke(state) print("\n=== Research Brief ===\n") print(final_state["final_brief"]) print("\n=== Verdict ===\n") print(final_state["verdict"]) if __name__ == "__main__": main()