Spaces:
Running
Running
| 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()) | |