Spaces:
Running
Running
File size: 1,171 Bytes
a854edf 796d6aa a854edf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import gradio as gr
from string import Template
from rag import search
async def rag_search(query: str) -> str:
"""
Search for information based on a query.
Args:
query (str): The search query
Returns:
str: A message indicating the search result
"""
results = await search(query, top_k=5)
source_template = Template(
'''
### Source
$source
### Content
$content
'''
)
return f"## Results for query {query}\n" + "\n".join(
source_template.substitute(
source=result['metadata']['source'],
content=result['content']
) for result in results
) if results else "No results found."
# Create a Gradio interface for the RAG search functionality
with gr.Blocks() as demo:
gr.Interface(rag_search, gr.Textbox(), gr.Textbox(), api_name="search_content", title="RAG Search")
with open("README.md") as f:
readme_content = f.read()
readme_content = readme_content[readme_content.index("#"):]
readme = gr.Markdown(readme_content)
if __name__ == "__main__":
demo.launch(mcp_server=True)
|