Spaces:
Runtime error
Runtime error
| from typing import List | |
| from dataclasses import asdict | |
| import pandas as pd | |
| import gradio as gr | |
| from SmartSearch.database.chromadb import ChromaDB | |
| from SmartSearch.providers.SentenceTransformerEmbedding import SentenceTransformerEmbedding | |
| from utils import combine_metadata_with_distance | |
| st_chroma = ChromaDB( | |
| embedding_function=SentenceTransformerEmbedding(model_name='all-mpnet-base-v2'), | |
| collection_name="books_collection" | |
| ) | |
| multilingual_chroma = ChromaDB( | |
| embedding_function=SentenceTransformerEmbedding(model_name='paraphrase-multilingual-mpnet-base-v2'), | |
| collection_name="books_collection" | |
| ) | |
| # Function to search for products | |
| def search_novels(query, k, model_type): | |
| if model_type == 'base': | |
| result = st_chroma.search(query_text=query, n_results=k) | |
| else: | |
| result = multilingual_chroma.search(query_text=query, n_results=k) | |
| result = combine_metadata_with_distance(result['metadatas'], result['distances']) | |
| result = pd.DataFrame(result) | |
| return result | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| query = gr.Textbox(label="Search Query", placeholder="write a query to find the courses") | |
| with gr.Row(): | |
| search_type = gr.Dropdown(label="Model", choices=['base', 'multilingual'], value='base') | |
| k = gr.Number(label="Items Count", value=10) | |
| # rerank = gr.Checkbox(value=True, label="Rerank") | |
| results = gr.Dataframe(label="Search Results") | |
| search_button = gr.Button("Search", variant='primary') | |
| search_button.click(fn=search_novels, inputs=[query, k, search_type], outputs=results) | |
| demo.launch() |