faiss / app.py
aka7774's picture
Upload 7 files
06c6776 verified
import fn
import gradio as gr
from refresh import create_refresh_button
def fn_search(dir, query):
args = {
'dir': dir,
'query': query,
'k': 1,
}
vector_store = fn.vector_load(args)
result, detail = fn.search(vector_store, args)
return result
with gr.Blocks() as demo:
title = gr.Markdown('# FAISS(Naive RAG)')
info = gr.Markdown()
upload_dir = gr.Dropdown(
choices=fn.load_dirs(),
label='name',
show_label=True,
interactive=True,
allow_custom_value=True,
)
with gr.Tab('Upload'):
chunk_size = gr.Textbox(
value=0,
label='(optional) chunk_size if split',
show_label=True,
interactive=True,
)
rag_zip = gr.UploadButton(
label='Zip Upload and save rag_dir',
interactive=True,
)
create_refresh_button(gr, upload_dir, lambda: None, lambda: {'choices': fn.load_dirs()}, 'refresh-button', interactive=True)
with gr.Tab('Search'):
query = gr.Textbox(
lines=1,
label='query',
show_label=True,
interactive=True,
show_copy_button=True,
)
search_button = gr.Button(value='search')
result = gr.Textbox(label='result', show_label=True, show_copy_button=True)
search_button.click(
fn=fn_search,
inputs=[upload_dir, query],
outputs=[result],
)
rag_zip.upload(
fn=fn.upload,
inputs=[upload_dir, chunk_size, rag_zip],
outputs=[info],
)
if __name__ == '__main__':
demo.launch()