Initial clean commit - unified Lyra stack

This commit is contained in:
serversdwn
2025-11-16 03:17:32 -05:00
commit 94fb091e59
270 changed files with 74200 additions and 0 deletions

32
cortex/rag.py Normal file
View File

@@ -0,0 +1,32 @@
import os, requests
from typing import Dict, Any, List
RAG_API_URL = os.getenv("RAG_API_URL", "http://localhost:7090")
def query_rag(query: str, where: Dict[str, Any] | None = None, k: int = 6) -> Dict[str, Any]:
payload = {"query": query, "k": k}
if where:
payload["where"] = where
try:
r = requests.post(f"{RAG_API_URL}/rag/search", json=payload, timeout=8)
r.raise_for_status()
data = r.json() or {}
except Exception as e:
data = {"answer": "", "chunks": [], "error": str(e)}
return data
def format_rag_block(result: Dict[str, Any]) -> str:
answer = (result.get("answer") or "").strip()
chunks: List[Dict[str, Any]] = result.get("chunks") or []
lines = ["[RAG]"]
if answer:
lines.append(f"Synthesized answer: {answer}")
if chunks:
lines.append("Top excerpts:")
for i, c in enumerate(chunks[:5], 1):
src = c.get("metadata", {}).get("source", "unknown")
txt = (c.get("text") or "").strip().replace("\n", " ")
if len(txt) > 220:
txt = txt[:220] + ""
lines.append(f" {i}. {txt}{src}")
return "\n".join(lines) + ("\n" if lines else "")