File size: 2,585 Bytes
d5436e0
cab263c
d022aab
40b7750
1581bbf
d022aab
d834bcd
d5436e0
 
8685a84
d5436e0
f8dfb0f
d63135e
d5436e0
 
8685a84
d022aab
 
 
 
d5436e0
 
1fe2644
d5436e0
d834bcd
 
d5436e0
 
42bce02
d834bcd
 
 
 
 
 
 
d022aab
 
2980190
42b403c
d5436e0
cd60f99
d022aab
 
cd60f99
 
 
5cabd9c
d834bcd
 
d5436e0
d834bcd
 
d5436e0
d834bcd
d5436e0
d834bcd
d022aab
8685a84
4affef3
 
d834bcd
 
 
 
 
d5436e0
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
# version - ArcticMonkey:19.03.24:1743

# python core libraries
import os 
import psutil
import platform

# components from other authors
from streamlit_mic_recorder import mic_recorder

# core modules
from audio_processing.A2T import A2T
from audio_processing.T2A import T2A
from command.utils import build_chain
from llm.llm_factory import LLM_Factory


# Можна редагувати аби не повтрювалось
greeting_text = "Hi, my name is M8... oops, that's from my future, but right now I'm Chelsea, your personal voice assistant. Ask me anything you want and I'll try to help you. Well, maybe you want to talk about your favourite band, maybe Bring Me The Horizon. You want to talk about Chelsea Smile."

llm_model = LLM_Factory()

print(platform.node())

mac_address = platform.node()

def prepare_cor(input_text: str):
    return build_chain.build_command_chain().handle_command(input_text)

# Якщо MAC адреса співпадає з адресою цього Space, тоді використовується hf endpoint, це базова перевірка для trigger.
# Від можливості використовувати AI agent також буде залежати trigger, якщо використовується, то ліпше використовувати lc ніж hf.
if mac_address[-5:] == os.environ.get('MAC_address'):
    trigger = {"hf": "effective"}
else:
    trigger = {"lc": "small"}

t2a = T2A()


def main():
    mic = mic_recorder(start_prompt="Record", stop_prompt="Stop", just_once=True)

    t2a.autoplay(greeting_text)

    if mic is not None:
        a2t = A2T(mic["bytes"])
        text = a2t.predict()
        print(text)

        # Придумати як реалізувати команди
        # prepare_cor(input_text=text)

        # Треба для lc реалізувати буде виклик очишення
        llm = llm_model.create_llm(prompt_entity=text, prompt_id=1, trigger=trigger)
        response = llm.execution() if llm is not None else "Oops occurred some error. Please try again. Who is Jhon Galt!"

        # Треба буде переписати клас, передавати текст не через __init__ а в autoplay.
        t2a.autoplay(response)


if __name__ == "__main__":
    print(f"Total Memory: {psutil.virtual_memory().total / (1024**3):.2f} GB")
    print(f"Available Memory: {psutil.virtual_memory().available / (1024**3):.2f} GB")
    print(f"CPU Cores: {psutil.cpu_count()}")
    print(f"CPU Usage: {psutil.cpu_percent()}%")
    
    main()