File size: 2,686 Bytes
53fe915
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from chatbot import ITMOChatbot
from knowledge_base import KnowledgeBase

def test_chatbot():
    print("🧪 Тестирование чат-бота...")
    
    # Инициализация
    try:
        chatbot = ITMOChatbot()
        print("✅ Чат-бот инициализирован")
    except Exception as e:
        print(f"❌ Ошибка инициализации: {e}")
        return
    
    # Проверка базы знаний
    kb = KnowledgeBase()
    print(f"📊 Курсов в базе: {len(kb.courses)}")
    
    # Тест поиска курсов по семестрам
    for semester in [1, 2, 3, 4]:
        courses = kb.get_courses_by_semester(semester)
        print(f"📚 Семестр {semester}: {len(courses)} курсов")
        if courses:
            print(f"   Пример: {courses[0]['name']}")
    
    # Тест чата
    print("\n💬 Тест чата:")
    test_messages = [
        "Какие дисциплины по NLP в 1 семестре программы ИИ?",
        "Расскажи о программе AI Product",
        "Сколько кредитов за курс машинного обучения?"
    ]
    
    history = []
    for message in test_messages:
        print(f"\n👤 Вопрос: {message}")
        try:
            response, score = chatbot.chat(message, history)
            print(f"🤖 Ответ: {response[:100]}...")
            print(f"📊 Релевантность: {score:.2f}")
            history.append([message, response])
        except Exception as e:
            print(f"❌ Ошибка: {e}")
    
    # Тест рекомендаций
    print("\n🎯 Тест рекомендаций:")
    test_profiles = [
        {
            'programming_experience': 4,
            'math_level': 3,
            'interests': ['ml', 'dl', 'python'],
            'semester': 1
        },
        {
            'programming_experience': 2,
            'math_level': 2,
            'interests': ['product', 'business'],
            'semester': 2
        }
    ]
    
    for i, profile in enumerate(test_profiles, 1):
        print(f"\n👤 Профиль {i}: {profile}")
        try:
            recommendations = chatbot.recommend_courses(profile)
            print(f"🎯 Рекомендации: {recommendations[:200]}...")
        except Exception as e:
            print(f"❌ Ошибка: {e}")
    
    print("\n✅ Тестирование завершено!")

if __name__ == '__main__':
    test_chatbot()