import gradio as gr import json # Placeholder para dados de busca SAMPLE_DOCS = [ {"title": "SEO Multilíngue", "content": "Estratégias de SEO para múltiplos idiomas incluindo português, inglês, espanhol e alemão.", "relevance": 0.95}, {"title": "Marketing Digital", "content": "Serviços completos de marketing digital da MSC Marketing.", "relevance": 0.90}, {"title": "Agentes de IA", "content": "Criação de agentes inteligentes para automação de processos de marketing.", "relevance": 0.85}, {"title": "Geração de Conteúdo", "content": "Ferramentas de IA para geração de conteúdo otimizado para SEO.", "relevance": 0.80}, {"title": "Chatbots", "content": "Desenvolvimento de chatbots inteligentes para atendimento ao cliente.", "relevance": 0.75}, ] def search(query: str, top_k: int = 5): """Realiza busca nos documentos.""" if not query.strip(): return "Por favor, digite uma busca." results = [] query_lower = query.lower() for doc in SAMPLE_DOCS: score = 0 if query_lower in doc["title"].lower(): score += 0.5 if query_lower in doc["content"].lower(): score += 0.3 if score > 0: results.append({**doc, "score": score + doc["relevance"]}) if not results: results = SAMPLE_DOCS[:top_k] for r in results: r["score"] = r["relevance"] * 0.5 results = sorted(results, key=lambda x: x.get("score", 0), reverse=True)[:top_k] output = f"## Resultados para: \"{query}\"\n\n" for i, doc in enumerate(results, 1): output += f"### {i}. {doc['title']}\n" output += f"{doc['content']}\n" output += f"*Relevância: {doc.get('score', doc['relevance']):.2f}*\n\n" return output # Interface Gradio with gr.Blocks(title="MSC Search") as demo: gr.Markdown("# 🔍 MSC Marketing - Busca Semântica") gr.Markdown("Busque na documentação da MSC Marketing") with gr.Row(): query_input = gr.Textbox( label="Sua busca", placeholder="Digite sua busca...", scale=4 ) top_k_input = gr.Slider(1, 10, value=5, step=1, label="Resultados", scale=1) search_btn = gr.Button("🔍 Buscar", variant="primary") results_output = gr.Markdown(label="Resultados") search_btn.click(search, inputs=[query_input, top_k_input], outputs=results_output) query_input.submit(search, inputs=[query_input, top_k_input], outputs=results_output) gr.Markdown(""" --- **Datasets MSC Marketing:** - [msc-knowledge-base](https://huggingface.co/datasets/Finish-him/msc-knowledge-base) - [msc-qa-pairs](https://huggingface.co/datasets/Finish-him/msc-qa-pairs) - [msc-embeddings](https://huggingface.co/datasets/Finish-him/msc-embeddings) - [msc-instructions](https://huggingface.co/datasets/Finish-him/msc-instructions) *Este Space está em fase de configuração. Em breve teremos busca semântica completa com embeddings.* """) if __name__ == "__main__": demo.launch()