vadkos12 commited on
Commit
e780dff
·
verified ·
1 Parent(s): b118aeb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -24
app.py CHANGED
@@ -1,25 +1,42 @@
1
- # app.py
2
  import gradio as gr
3
- from sentence_transformers import SentenceTransformer
4
- import numpy as np
5
-
6
- # Загружаем модель SBERT для русского языка
7
- model = SentenceTransformer("sberbank-ai/sbert_large_ru_nlu")
8
-
9
- def get_embeddings(text):
10
- emb = model.encode([text])[0]
11
- # Для удобного просмотра можно округлить до 4 знаков
12
- emb_rounded = np.round(emb, 4)
13
- return emb_rounded.tolist()
14
-
15
- # Создаём интерфейс Gradio
16
- iface = gr.Interface(
17
- fn=get_embeddings,
18
- inputs=gr.Textbox(lines=5, placeholder="Введите русский текст..."),
19
- outputs=gr.Textbox(label="Эмбеддинг (вектор)"),
20
- title="SBERT Large RU NLU Embeddings",
21
- description="Введите текст на русском языке, чтобы получить эмбеддинг с помощью sberbank-ai/sbert_large_ru_nlu."
22
- )
23
-
24
- if __name__ == "__main__":
25
- iface.launch(server_name="0.0.0.0", server_port=7860)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ from sentence_transformers import SentenceTransformer, util
3
+
4
+ # Загружаем русскоязычную модель
5
+ model = SentenceTransformer("ai-forever/sbert_large_nlu_ru")
6
+
7
+ def embed_text(text):
8
+ embedding = model.encode([text])[0]
9
+ return str(embedding.tolist()[:10]) + " ...", len(embedding)
10
+
11
+ def compare_texts(text1, text2):
12
+ emb1 = model.encode([text1])[0]
13
+ emb2 = model.encode([text2])[0]
14
+ similarity = util.cos_sim(emb1, emb2).item()
15
+ return similarity
16
+
17
+ with gr.Blocks() as demo:
18
+ gr.Markdown("## 🔎 Russian SBERT Embeddings Demo (ai-forever/sbert_large_nlu_ru)")
19
+
20
+ with gr.Tab("Эмбеддинг одного текста"):
21
+ with gr.Row():
22
+ with gr.Column():
23
+ input_text = gr.Textbox(label="Введите текст", placeholder="Например: Я люблю машинное обучение")
24
+ run_btn = gr.Button("Создать эмбеддинг")
25
+ with gr.Column():
26
+ output_embed = gr.Textbox(label="Вектор (первые 10 значений)")
27
+ output_dim = gr.Number(label="Размерность эмбеддинга")
28
+
29
+ run_btn.click(embed_text, inputs=[input_text], outputs=[output_embed, output_dim])
30
+
31
+ with gr.Tab("Сравнение двух текстов"):
32
+ with gr.Row():
33
+ with gr.Column():
34
+ text1 = gr.Textbox(label="Текст 1", placeholder="Например: Я люблю машинное обучение")
35
+ text2 = gr.Textbox(label="Текст 2", placeholder="Например: Машинное обучение — моя страсть")
36
+ compare_btn = gr.Button("Сравнить тексты")
37
+ with gr.Column():
38
+ similarity_score = gr.Number(label="Косинусное сходство")
39
+
40
+ compare_btn.click(compare_texts, inputs=[text1, text2], outputs=[similarity_score])
41
+
42
+ demo.launch()