Updated archtecture, fixed dependencies
This commit is contained in:
parent
5ed98994e9
commit
964d25de86
179 changed files with 609 additions and 1365 deletions
165
src/app/commands.py
Normal file
165
src/app/commands.py
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue