Spaces:
Running
Running
import gradio as gr | |
from sentence_transformers import SentenceTransformer, util | |
# Загружаем русскоязычную модель | |
model = SentenceTransformer("ai-forever/sbert_large_nlu_ru") | |
def embed_text(text): | |
embedding = model.encode([text])[0] | |
return str(embedding.tolist()[:10]) + " ...", len(embedding) | |
def compare_texts(text1, text2): | |
emb1 = model.encode([text1])[0] | |
emb2 = model.encode([text2])[0] | |
similarity = util.cos_sim(emb1, emb2).item() | |
return similarity | |
with gr.Blocks() as demo: | |
gr.Markdown("## 🔎 Russian SBERT Embeddings Demo (ai-forever/sbert_large_nlu_ru)") | |
with gr.Tab("Эмбеддинг одного текста"): | |
with gr.Row(): | |
with gr.Column(): | |
input_text = gr.Textbox(label="Введите текст", placeholder="Например: Я люблю машинное обучение") | |
run_btn = gr.Button("Создать эмбеддинг") | |
with gr.Column(): | |
output_embed = gr.Textbox(label="Вектор (первые 10 значений)") | |
output_dim = gr.Number(label="Размерность эмбеддинга") | |
run_btn.click(embed_text, inputs=[input_text], outputs=[output_embed, output_dim]) | |
with gr.Tab("Сравнение двух текстов"): | |
with gr.Row(): | |
with gr.Column(): | |
text1 = gr.Textbox(label="Текст 1", placeholder="Например: Я люблю машинное обучение") | |
text2 = gr.Textbox(label="Текст 2", placeholder="Например: Машинное обучение — моя страсть") | |
compare_btn = gr.Button("Сравнить тексты") | |
with gr.Column(): | |
similarity_score = gr.Number(label="Косинусное сходство") | |
compare_btn.click(compare_texts, inputs=[text1, text2], outputs=[similarity_score]) | |
demo.launch() | |