FOIA_Doc_Search / app.py
GodsDevProject's picture
Create app.py
d4bfa02 verified
raw
history blame
948 Bytes
import asyncio
import gradio as gr
from ingest.registry import get_live_adapters
ADAPTERS = get_live_adapters()
async def live_search(query):
tasks = [a.search(query) for a in ADAPTERS]
results = await asyncio.gather(*tasks, return_exceptions=True)
flat = []
for r in results:
if isinstance(r, list):
flat.extend(r)
return [
[x["agency"], x["source"], x["title"], x["url"]]
for x in flat
]
def run_search(query):
return asyncio.run(live_search(query))
with gr.Blocks() as demo:
gr.Markdown("""
# 🏛️ Federal FOIA Intelligence Search
**Public Electronic Reading Rooms Only**
_Live CIA CREST & FBI Vault_
""")
query = gr.Textbox(label="Search FOIA documents")
btn = gr.Button("Live Search")
table = gr.Dataframe(
headers=["Agency", "Source", "Title", "URL"],
interactive=False
)
btn.click(run_search, query, table)
demo.launch()