Spaces:
Sleeping
Sleeping
Update agent.py
Browse files
agent.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
import os
|
| 3 |
from supabase import create_client
|
| 4 |
from sentence_transformers import SentenceTransformers
|
|
|
|
| 5 |
from langgraph import Graph, LLM, tool #or other graph library
|
| 6 |
|
| 7 |
# ----Supabase setup----
|
|
@@ -9,6 +10,7 @@ SUPABASE_URL = os.getenv("SUPABASE_URL")
|
|
| 9 |
SUPABASE_KEY = os.getenv("SUPABASE_SERVICE_KEY")
|
| 10 |
EMBED_MODEL_ID = os.getenv("HF_EMBEDDING_MODEL")
|
| 11 |
|
|
|
|
| 12 |
sb_client = create_client(SUPABASE_URL, SUPABASE_KEY)
|
| 13 |
embedder = SentenceTransformers(EMBED_MODEL_ID)
|
| 14 |
|
|
@@ -46,6 +48,22 @@ def retrieve_docs(query: str, k: int = 3) -> str:
|
|
| 46 |
docs = [row["content"] for row in rows]
|
| 47 |
return "\n\n---\n\n".join(docs)
|
| 48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
# 2) Build your graph
|
| 51 |
def build_graph(provider: str = "huggingface") -> Graph:
|
|
|
|
| 2 |
import os
|
| 3 |
from supabase import create_client
|
| 4 |
from sentence_transformers import SentenceTransformers
|
| 5 |
+
from serpapi import GoogleSearch
|
| 6 |
from langgraph import Graph, LLM, tool #or other graph library
|
| 7 |
|
| 8 |
# ----Supabase setup----
|
|
|
|
| 10 |
SUPABASE_KEY = os.getenv("SUPABASE_SERVICE_KEY")
|
| 11 |
EMBED_MODEL_ID = os.getenv("HF_EMBEDDING_MODEL")
|
| 12 |
|
| 13 |
+
|
| 14 |
sb_client = create_client(SUPABASE_URL, SUPABASE_KEY)
|
| 15 |
embedder = SentenceTransformers(EMBED_MODEL_ID)
|
| 16 |
|
|
|
|
| 48 |
docs = [row["content"] for row in rows]
|
| 49 |
return "\n\n---\n\n".join(docs)
|
| 50 |
|
| 51 |
+
SERPAPI_KEY = os.getenv("SERPAPY_KEY")
|
| 52 |
+
# ---- web_search tool
|
| 53 |
+
@tool
|
| 54 |
+
def web_search(query: str, num_results: int = 5) -> str:
|
| 55 |
+
""" Return top-5 snippets from Google search via SerpAPI."""
|
| 56 |
+
params = {
|
| 57 |
+
"engine": "google",
|
| 58 |
+
"q": query,
|
| 59 |
+
"num": num_results,
|
| 60 |
+
"api_key": SERPAPI_KEY,
|
| 61 |
+
}
|
| 62 |
+
search = GoogleSearch(params)
|
| 63 |
+
results = search.get_dict().get("organic_results", [])
|
| 64 |
+
snippets = [r.get("snippet","")for r in results]
|
| 65 |
+
return "\n".join(f"- {s}" for s in snippets)
|
| 66 |
+
|
| 67 |
|
| 68 |
# 2) Build your graph
|
| 69 |
def build_graph(provider: str = "huggingface") -> Graph:
|