Spaces:
Sleeping
Sleeping
File size: 3,110 Bytes
57b1a12 dda479f 57b1a12 dda479f 57b1a12 dda479f 57b1a12 dda479f 57b1a12 dda479f 57b1a12 dda479f 57b1a12 dda479f 57b1a12 dda479f 57b1a12 dda479f 57b1a12 |
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
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()
|