File size: 1,652 Bytes
71a764a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""Achievement system and title determination functionality"""

from typing import List


class AchievementSystem:
    """Handles achievement calculations and title determination"""
    
    def determine_achievement_titles(self, cosine_distance, user_tokens):
        """Determine achievement titles based on performance"""
        titles = []
        
        # Score-based titles
        if cosine_distance >= 0.7:
            titles.append("🌟 Creative Genius")
        elif cosine_distance >= 0.5:
            titles.append("πŸ”₯ Innovation Master")
        elif cosine_distance >= 0.3:
            titles.append("✨ Creative Spark")
        elif cosine_distance >= 0.15:
            titles.append("πŸ’‘ Imagination Worker")
        
        # Token efficiency titles
        if user_tokens == 1:
            if cosine_distance >= 0.3:
                titles.append("⚑ Word Wizard")
            else:
                titles.append("🎯 Precision Pioneer")
        elif user_tokens == 2:
            if cosine_distance >= 0.25:
                titles.append("πŸŽͺ Phrase Magician")
        elif user_tokens <= 3:
            if cosine_distance >= 0.2:
                titles.append("🎨 Creative Catalyst")
        
        # Special combinations
        if user_tokens == 1 and cosine_distance >= 0.4:
            titles.append("πŸ‘‘ One-Word Wonder")
        if cosine_distance >= 0.5 and user_tokens <= 2:
            titles.append("πŸ† Efficiency Expert")
        if user_tokens >= 4 and cosine_distance >= 0.4:
            titles.append("πŸŽ–οΈ Bold Wordsmith")
        
        return titles if titles else ["🌱 Creative Explorer"]