Spaces:
Running
Running
| 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." | |
| demo = gr.TabbedInterface( | |
| [ | |
| gr.Interface(rag_search, gr.Textbox(), gr.Textbox(), api_name="search_content", title="RAG Search"), | |
| ], | |
| [ | |
| "Search content", | |
| ] | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch(mcp_server=True) | |