Updated archtecture, fixed dependencies

This commit is contained in:
Nick Bifle 2023-04-16 12:51:26 +03:00
parent 5ed98994e9
commit 964d25de86
179 changed files with 609 additions and 1365 deletions

165
src/app/commands.py Normal file
View file

@ -0,0 +1,165 @@
import os
import yaml
import time
import random
import openai
import config
import subprocess
from .tts import cached_response, model_response
from pycaw.pycaw import (
AudioUtilities,
IAudioEndpointVolume
)
from ctypes import POINTER, cast
from comtypes import CLSCTX_ALL
from gpytranslate import SyncTranslator
RESPONSES = yaml.safe_load(
open('responses.yaml'),
)
CDIR = os.getcwd()
t = SyncTranslator()
openai.api_key = config.OPENAI_TOKEN
def execute_cmd(cmd: str):
if cmd == 'help':
text = (
"Я умею: ..."
"произносить время ..."
"рассказывать анекдоты ..."
"и открывать браузер"
)
model_response(text)
elif cmd == 'joke':
jokes = ['Как смеются программисты? ... ехе ехе ехе',
'ЭсКьюЭль запрос заходит в бар, подходит к двум столам и спрашивает .. «м+ожно присоединиться?»',
'Программист это машина для преобразования кофе в код']
cached_response("ok")
model_response(random.choice(jokes))
elif cmd == 'open_browser':
subprocess.Popen([f'{CDIR}\\custom-commands\\Run browser.exe'])
cached_response("ok")
elif cmd == 'open_youtube':
subprocess.Popen([f'{CDIR}\\custom-commands\\Run youtube.exe'])
cached_response("ok")
elif cmd == 'open_google':
subprocess.Popen([f'{CDIR}\\custom-commands\\Run google.exe'])
cached_response("ok")
elif cmd == 'music':
subprocess.Popen([f'{CDIR}\\custom-commands\\Run music.exe'])
cached_response("ok")
elif cmd == 'music_off':
subprocess.Popen([f'{CDIR}\\custom-commands\\Stop music.exe'])
time.sleep(0.2)
cached_response("ok")
elif cmd == 'music_save':
subprocess.Popen([f'{CDIR}\\custom-commands\\Save music.exe'])
time.sleep(0.2)
cached_response("ok")
elif cmd == 'music_next':
subprocess.Popen([f'{CDIR}\\custom-commands\\Next music.exe'])
time.sleep(0.2)
cached_response("ok")
elif cmd == 'music_prev':
subprocess.Popen([f'{CDIR}\\custom-commands\\Prev music.exe'])
time.sleep(0.2)
cached_response("ok")
elif cmd == 'sound_off':
cached_response("ok")
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = cast(interface, POINTER(IAudioEndpointVolume))
volume.SetMute(1, None)
elif cmd == 'sound_on':
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = cast(interface, POINTER(IAudioEndpointVolume))
volume.SetMute(0, None)
cached_response("ok")
elif cmd == 'thanks':
cached_response("thanks")
elif cmd == 'stupid':
cached_response("stupid")
elif cmd == 'gaming_mode_on':
cached_response("ok")
subprocess.check_call([f'{CDIR}\\custom-commands\\Switch to gaming mode.exe'])
cached_response("ready")
elif cmd == 'gaming_mode_off':
cached_response("ok")
subprocess.check_call([f'{CDIR}\\custom-commands\\Switch back to workspace.exe'])
cached_response("ready")
elif cmd == 'switch_to_headphones':
cached_response("ok")
subprocess.check_call([f'{CDIR}\\custom-commands\\Switch to headphones.exe'])
time.sleep(0.5)
cached_response("ready")
elif cmd == 'switch_to_dynamics':
cached_response("ok")
subprocess.check_call([f'{CDIR}\\custom-commands\\Switch to dynamics.exe'])
time.sleep(0.5)
cached_response("ready")
elif cmd == 'off':
cached_response("off")
exit(0)
def gpt_answer(message):
model_engine = "text-davinci-003"
max_tokens = 128 # default 1024
prompt = t.translate(message, targetlang="en")
completion = openai.Completion.create(
engine=model_engine,
prompt=prompt.text,
max_tokens=max_tokens,
temperature=0.5,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
translated_result = t.translate(completion.choices[0].text, targetlang="ru")
return translated_result.text