Spaces:
Runtime error
Runtime error
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from search import search_google
|
3 |
+
from scraper.py import scrape_url
|
4 |
+
from rag import VectorStore
|
5 |
+
from llm import generate_answer
|
6 |
+
|
7 |
+
vs = VectorStore()
|
8 |
+
|
9 |
+
def ask_agent(question):
|
10 |
+
# Step 1: search
|
11 |
+
urls = search_google(question, num_results=3)
|
12 |
+
# Step 2: scrape
|
13 |
+
texts = [scrape_url(url) for url in urls]
|
14 |
+
# Step 3: embed + store
|
15 |
+
vs.add_texts(texts)
|
16 |
+
# Step 4: retrieve
|
17 |
+
relevant = vs.retrieve(question, top_k=2)
|
18 |
+
context = "\n\n".join(relevant)
|
19 |
+
# Step 5: generate answer
|
20 |
+
answer = generate_answer(context, question)
|
21 |
+
return f"### π§ Answer:\n{answer}\n\n\n### π Sources:\n" + "\n".join(urls)
|
22 |
+
|
23 |
+
with gr.Blocks() as demo:
|
24 |
+
gr.Markdown("# π AI Web RAG Agent\nAsk me anything; I'll search, scrape and answer!")
|
25 |
+
with gr.Row():
|
26 |
+
inp = gr.Textbox(label="Your question")
|
27 |
+
out = gr.Markdown()
|
28 |
+
btn = gr.Button("Ask")
|
29 |
+
btn.click(fn=ask_agent, inputs=inp, outputs=out)
|
30 |
+
|
31 |
+
demo.launch()
|