File size: 1,959 Bytes
5395cc2
caf4318
3d07812
caf4318
 
 
5395cc2
caf4318
 
 
64f605f
caf4318
 
 
 
5395cc2
 
 
caf4318
 
 
 
 
5395cc2
 
caf4318
 
5395cc2
 
 
 
 
 
 
 
 
 
1ea9c5f
caf4318
5395cc2
 
 
caf4318
b4e675c
5395cc2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b4e675c
5395cc2
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
import gradio as gr
from transformers import pipeline

def get_classifier():
    classifier = pipeline(
        "zero-shot-classification",
        model="joeddav/xlm-roberta-large-xnli",
        framework="pt"
    )
    return classifier

def classify_email(text):
    classifier = get_classifier()
    
    candidate_labels = [
        "назначение встречи",
        "отказ или отсутствие интереса",
        "уточняющие вопросы"
    ]
    
    result = classifier(
        text,
        candidate_labels,
        hypothesis_template="В этом письме клиент выражает {}",
        multi_label=False
    )
    
    # Преобразуем метки в категории 1,2,3
    label_map = {
        "назначение встречи": 1,
        "отказ или отсутствие интереса": 2,
        "уточняющие вопросы": 3
    }
    
    top_label = result["labels"][0]
    category = label_map[top_label]
    confidence = result["scores"][0]
    
    return {
        "category": category,
        "confidence": confidence,
        "label": top_label
    }

# Создаем интерфейс Gradio
def gradio_interface(text):
    result = classify_email(text)
    return (
        f"Категория: {result['category']}\n"
        f"Уверенность: {result['confidence']:.2f}\n"
        f"Метка: {result['label']}"
    )

# Создаем веб-интерфейс
iface = gr.Interface(
    fn=gradio_interface,
    inputs=gr.Textbox(lines=5, label="Введите текст письма"),
    outputs=gr.Textbox(label="Результат"),
    title="Классификация писем",
    description="Определение категории письма: 1 - назначение встречи, 2 - отказ, 3 - уточняющие вопросы"
)

if __name__ == "__main__":
    iface.launch()