mirror of
https://github.com/arkorty/B.Tech-Project-III.git
synced 2026-04-19 12:41:48 +00:00
init
This commit is contained in:
56
thirdeye/scripts/test_m4.py
Normal file
56
thirdeye/scripts/test_m4.py
Normal file
@@ -0,0 +1,56 @@
|
||||
"""Test Milestone 4: Full pipeline — extract → classify → store → query."""
|
||||
import asyncio, os, sys
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
DEV_MESSAGES = [
|
||||
{"sender": "Alex", "text": "Hey team, I think we should go with PostgreSQL for the main DB. MongoDB is overkill.", "timestamp": "2026-03-20T10:00:00Z"},
|
||||
{"sender": "Priya", "text": "Agreed. I'll set up the Postgres schema today.", "timestamp": "2026-03-20T10:05:00Z"},
|
||||
{"sender": "Raj", "text": "Payment webhook integration is tricky. I'll handle all the Stripe stuff since I know it best.", "timestamp": "2026-03-20T11:00:00Z"},
|
||||
{"sender": "Alex", "text": "I'm just hardcoding the API URL for now. We'll fix it with env vars later.", "timestamp": "2026-03-20T14:00:00Z"},
|
||||
{"sender": "Sam", "text": "The timeout error on checkout is back. Third time this week.", "timestamp": "2026-03-21T09:00:00Z"},
|
||||
{"sender": "Alex", "text": "Just restart the pod when it happens. I'll investigate after the sprint.", "timestamp": "2026-03-21T09:15:00Z"},
|
||||
]
|
||||
|
||||
async def main():
|
||||
from backend.pipeline import process_message_batch, query_knowledge
|
||||
|
||||
group_id = "test_pipeline_m4"
|
||||
|
||||
# Step 1: Process messages through full pipeline
|
||||
print("Processing message batch through full pipeline...")
|
||||
signals = await process_message_batch(group_id, DEV_MESSAGES)
|
||||
print(f" ✅ Pipeline produced {len(signals)} signals:")
|
||||
for s in signals:
|
||||
print(f" [{s.type}] {s.summary[:70]} (severity={s.severity}, sentiment={s.sentiment})")
|
||||
|
||||
assert len(signals) >= 2, f"Expected >=2 signals, got {len(signals)}"
|
||||
|
||||
# Step 2: Query the knowledge base
|
||||
print("\nQuerying: 'What database did the team choose?'")
|
||||
answer = await query_knowledge(group_id, "What database did the team choose?")
|
||||
print(f" Answer: {answer}")
|
||||
assert len(answer) > 20, "Answer too short"
|
||||
print(f" ✅ Query agent produced meaningful answer")
|
||||
|
||||
print("\nQuerying: 'What tech debt exists?'")
|
||||
answer2 = await query_knowledge(group_id, "What tech debt exists?")
|
||||
print(f" Answer: {answer2}")
|
||||
print(f" ✅ Tech debt query works")
|
||||
|
||||
print("\nQuerying: 'What bugs have been reported?'")
|
||||
answer3 = await query_knowledge(group_id, "What bugs or issues keep recurring?")
|
||||
print(f" Answer: {answer3}")
|
||||
print(f" ✅ Bug query works")
|
||||
|
||||
# Cleanup
|
||||
import chromadb
|
||||
from backend.config import CHROMA_DB_PATH
|
||||
client = chromadb.PersistentClient(path=CHROMA_DB_PATH)
|
||||
try:
|
||||
client.delete_collection(f"ll_{group_id}")
|
||||
except:
|
||||
pass
|
||||
|
||||
print("\n🎉 MILESTONE 4 PASSED — Full pipeline working end to end")
|
||||
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user