File size: 1,893 Bytes
497f49b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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())