import asyncio import sys sys.path.insert(0, ".") from agents.claim_verifier_agent import VERIFY_SYSTEM, ClaimVerifierAgent from services.llm_service import LLMService from services.neo4j_service import Neo4jService from services.paper_recommender import extract_query CLAIM = ( "The P/E ratio of Real Estate Sector and Consumer Discretionary Sector are higher than others, " "indicating expected earning growth in the future." ) KW = ["profit margin", "cogs", "gross margin", "factor analysis", "gross margins", "alternative energy", "momentum factor", "trading strategy", "dividend yield"] async def main(): agent = ClaimVerifierAgent() kw = KW topic_query = " ".join(str(k).strip() for k in kw[:4] if str(k).strip()) claim_terms = extract_query(CLAIM, kw) claim_query = " ".join(claim_terms[:4]) if claim_terms else "" queries = list(dict.fromkeys(q for q in (topic_query, claim_query) if q)) print("QUERIES:", queries) try: for q in queries: recs = await agent._get_recommender().search_web(q, limit=4, keywords=kw) print("search_web:", q, "->", len(recs)) for r in recs[:3]: print(" >", r.get("source"), "|", (r.get("title") or "")[:60]) except Exception as e: import traceback traceback.print_exc() evidence = await agent._gather_evidence(CLAIM, KW) print("EVIDENCE:", len(evidence)) for e in evidence[:5]: print(" >", e["source"], "|", e["title"][:60], "|", e["snippet"][:80]) if evidence: block = "\n".join( f"- [{e['source']}] {e['title']}: {e['snippet']}" for e in evidence[:5] ) llm = LLMService() result = await llm.complete_json( VERIFY_SYSTEM, f"Claim: {CLAIM}\n\nRetrieved evidence:\n{block}" ) print("LLM VERDICT:", result) asyncio.run(main())