feat: solution for 'Повторный экзамен #2: Сравнительный обзор 3 сущностей (Tavily)'

This commit is contained in:
2026-06-29 12:03:54 +03:00
commit 08e2e01b18
8 changed files with 270 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
import argparse
from typing import List
from .state import CompareState
from .graph import create_graph
def parse_entities(arg: str) -> List[str]:
return [e.strip() for e in arg.split(",") if e.strip()]
def main():
parser = argparse.ArgumentParser(description="LangGraph Comparative Review Agent")
parser.add_argument(
"--entities",
type=str,
help="Comma-separated list of three entities to compare. "
"If omitted, defaults to Chroma, FAISS, Qdrant.",
)
args = parser.parse_args()
if args.entities:
entities = parse_entities(args.entities)
if len(entities) != 3:
raise ValueError("Please provide exactly three entities.")
else:
entities = ["Chroma", "FAISS", "Qdrant"]
initial_state: CompareState = {
"entities": entities,
}
graph = create_graph()
final_state = graph.invoke(initial_state)
print("\n=== Comparison Criteria ===")
for idx, crit in enumerate(final_state["criteria"], 1):
print(f"{idx}. {crit}")
print("\n=== Findings Table ===")
print(final_state["final_table"])
print("\n=== Verdict ===")
print(final_state["verdict"])
if __name__ == "__main__":
main()