File size: 2,030 Bytes
7a8cb87
9b0ab3a
4d7bc75
9b0ab3a
 
e96c4ee
4f8dcc4
 
 
 
 
 
 
 
 
 
e96c4ee
9b0ab3a
4f8dcc4
 
 
 
 
 
4d7bc75
9b0ab3a
 
4f8dcc4
f621a6c
4f8dcc4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9b0ab3a
 
4f8dcc4
9b0ab3a
e96c4ee
9b0ab3a
4f8dcc4
7a8cb87
9b0ab3a
 
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
51
52
53
54
55
56
57
58
59
import gradio as gr
from vectordb import Memory

# Initialize Memory
memory = Memory()

# Define a function to save new text and metadata
def save_data(texts, metadata):
    try:
        # Split texts and metadata by lines for simplicity
        text_list = texts.strip().split("\n")
        metadata_list = [eval(meta.strip()) for meta in metadata.strip().split("\n")]
        memory.save(text_list, metadata_list)
        return "Data saved successfully!"
    except Exception as e:
        return f"Error saving data: {e}"

# Define a function for querying
def search_query(query, top_n):
    try:
        results = memory.search(query, top_n=int(top_n))  # Search for top_n results
        return results
    except Exception as e:
        return f"Error during search: {e}"

# Create Gradio interface
with gr.Blocks() as demo:
    gr.Markdown("### VectorDB Search App")
    
    # Save Data Section
    gr.Markdown("#### Save Data")
    with gr.Row():
        input_texts = gr.Textbox(
            label="Enter text (one per line)", 
            lines=5, 
            placeholder="Example:\napples are green\noranges are orange"
        )
        input_metadata = gr.Textbox(
            label="Enter metadata (one per line, matching the texts)", 
            lines=5, 
            placeholder='Example:\n{"url": "https://apples.com"}\n{"url": "https://oranges.com"}'
        )
    save_button = gr.Button("Save Data")
    save_status = gr.Textbox(label="Status", interactive=False)
    save_button.click(save_data, inputs=[input_texts, input_metadata], outputs=save_status)
    
    # Search Section
    gr.Markdown("#### Search")
    with gr.Row():
        input_query = gr.Textbox(label="Enter your query")
        input_top_n = gr.Number(label="Top N results", value=1)
        output_result = gr.Textbox(label="Search Results", interactive=False)

    search_button = gr.Button("Search")
    search_button.click(search_query, inputs=[input_query, input_top_n], outputs=output_result)

# Run the Gradio app
demo.launch()