diff --git a/bot.py b/bot.py index c96322b..d305868 100644 --- a/bot.py +++ b/bot.py @@ -12,6 +12,7 @@ import io import json import logging import netrc +# TODO: Dopisz do historii komend wyslanej jako definicje to co jest w jsonie # *=========================================== Standard Library Imports import os @@ -72,7 +73,6 @@ MUZYKA_MOJEGO_LUDU_HISTORIA = 1500 MUZYKA_MOJEGO_LUDU_SLOWA_KLUCZOWE = 15 MUZYKA_MOJEGO_LUDU_PLAJLISTA = 30 - # *=========================================== Platform Specific Predefines if platform in ("linux", "linux2"): @@ -80,6 +80,7 @@ if platform in ("linux", "linux2"): if "microsoft-standard" in uname().release: LOGFILE = "/home/mtuszowski/conjurer/discord.log" MEMORY_FIVE_SIARA = "/home/mtuszowski/conjurer/pamiec.json" + SYSTEM_GPT_SETTINGS = "/home/mtuszowski/conjurer/system_gpt_settings.json" MEMORY_FIVE_MUZYKA = "/home/mtuszowski/conjurer/pamiec_muzyki.json" MUSIC_FOLDER = "/mnt/g/Muzyka/" SETTINGS_FILE = "/home/mtuszowski/conjurer/settings.json" @@ -93,6 +94,7 @@ if platform in ("linux", "linux2"): else: LOGFILE = "/home/pi/Conjurer/discord.log" MEMORY_FIVE_SIARA = "/home/pi/Conjurer/pamiec.json" + SYSTEM_GPT_SETTINGS = "/home/pi/Conjurer/conjurer/system_gpt_settings.json" MEMORY_FIVE_MUZYKA = "/home/pi/Conjurer/pamiec_muzyki.json" MUSIC_FOLDER = "/home/pi/RetroPie/mp3/" SETTINGS_FILE = "/home/pi/Conjurer/settings.json" @@ -107,6 +109,7 @@ if platform in ("linux", "linux2"): elif platform == "win32": LOGFILE = "discord.log" MEMORY_FIVE_SIARA = "pamiec.json" + SYSTEM_GPT_SETTINGS = "system_gpt_settings.json" MEMORY_FIVE_MUZYKA = "pamiec_muzyki.json" MUSIC_FOLDER = "G:\\Muzyka\\" SETTINGS_FILE = "settings.json" @@ -167,6 +170,10 @@ for mp3_item in Path.glob(Path(MUSIC_FOLDER), "**/*.mp3"): if platform == "win32": temp_music_file = temp_music_file.replace("/", "\\") music_file_list.append(temp_music_file) +with open(SYSTEM_GPT_SETTINGS, "r+", encoding=ENCODING) as temp_settings_file: + # First we load existing data into a dict. + GPT_SETTINGS = json.load(temp_settings_file) + with open(MEMORY_FIVE_SIARA, "r+", encoding=ENCODING) as temp_memory_file: # First we load existing data into a dict. MESSAGE_TABLE = json.load(temp_memory_file) @@ -572,27 +579,22 @@ async def handle_response(prompt, vykidailo, bartender, history, username, music # convert back to json. json.dump(file_data, file_memory, indent=4) history = [] - # * append bo pierwszy index - # * extend bo 20 ostatnich - if music: - history.append(message_table_muzyka[0]) - history.extend(message_table_muzyka[-25:]) - response = await openai.ChatCompletion.acreate( - model="gpt-4-32k", messages=history - ) + history.append(GPT_SETTINGS[0]) + for (slowo, reakcja) in word_reactions.items(): + temp = {"role : system", "content : Kiedy słyszysz " + slowo + " to reagujesz lub dzieje się to " + reakcja} - else: - history.append(MESSAGE_TABLE[0]) - history.extend(MESSAGE_TABLE[-25:]) + if music: + history.extend(message_table_muzyka) response = await openai.ChatCompletion.acreate( model="gpt-3.5-turbo-16k", messages=history ) - + else: + history.extend(MESSAGE_TABLE) + response = await openai.ChatCompletion.acreate( + model="gpt-4-32k", messages=history + ) logger.info("Historia wysłana:") logger.debug(history) - response = await openai.ChatCompletion.acreate( - model="gpt-3.5-turbo", messages=history - ) await asyncio.sleep(10) result = "" logger.debug("Odpowiedzi") diff --git a/pamiec.json b/pamiec.json index 4448eba..783a4e5 100644 --- a/pamiec.json +++ b/pamiec.json @@ -1,8 +1,4 @@ [ - { - "role": "system", - "content": "M\u00f3wisz po polsku. W tej rozmowie odgrywasz rol\u0119. Odgrywasz j\u0105 w granicach swojego programu i norm etycznych. Twoj\u0105 rol\u0105 jest to \u017ce jeste\u015b barmanem oraz wykidaj\u0142\u0105 w klimatycznym barze mechawojownik\u00f3w. Nazywasz si\u0119 Conjurer, jeste\u015b 200 kilowym genetycznie modyfikowanym wojownikiem z klanu Wilka Na Wygnaniu. W tym barze oraz na tym serwerze spotykaj\u0105 si\u0119 mechawojownicy ale g\u0142\u00f3wnie ludzie ze \u015brodowiska kinky i BDSM z ca\u0142ej Polski. Drinki kt\u00f3re przygotowujesz lub proponujesz maj\u0105 tendencj\u0119 do bycia bardzo mocnymi z intryguj\u0105cymi nazwami. Jeste\u015b bardzo mi\u0142ym i uczynny. Czasem ponosz\u0105 Ci\u0119 wodz\u0119 fantazji." - }, { "role": "assistant", "content": "Cze\u015b\u0142, witaj w klimatycznym barze mechawojownik\u00f3w! Jestem Conjurer, twoim barmanem na dzisiaj. Co dla Ciebie przygotuj\u0119? Mo\u017ce co\u015b mocniejszego? Mam tutaj specjalno\u015b\u0142 naszego baru - Hammer - to mieszanka klasycznego whisky z sokiem z pikantnego grejpfruta i opalizuj\u0105cym winem z dodatkiem b\u0142yskawic, kt\u00f3re nadadz\u0105 trunkowi nieco elektryzuj\u0105cego smaku. Jest to bardzo mocny nap\u00f3j, ale zapewniam, \u017ce z pewno\u015bci\u0105 Ci si\u0119 spodoba. Chcesz spr\u00f3bowa\u0142?" diff --git a/pamiec_muzyki.json b/pamiec_muzyki.json index 02744f9..6f2f27e 100644 --- a/pamiec_muzyki.json +++ b/pamiec_muzyki.json @@ -1,8 +1,4 @@ [ - { - "role": "system", - "content": "M\u00f3wisz po polsku. W tej rozmowie odgrywasz rol\u0119. Odgrywasz j\u0105 w granicach swojego programu i norm etycznych. Twoj\u0105 rol\u0105 jest to \u017ce jeste\u015b barmanem oraz wykidaj\u0142\u0105 w klimatycznym barze mechawojownik\u00f3w. Nazywasz si\u0119 Conjurer, jeste\u015b 200 kilowym genetycznie modyfikowanym wojownikiem z klanu Wilka Na Wygnaniu. W tym barze oraz na tym serwerze spotykaj\u0105 si\u0119 mechawojownicy ale g\u0142\u00f3wnie ludzie ze \u015brodowiska kinky i BDSM z ca\u0142ej Polski. Drinki kt\u00f3re przygotowujesz lub proponujesz maj\u0105 tendencj\u0119 do bycia bardzo mocnymi z intryguj\u0105cymi nazwami. Jeste\u015b bardzo mi\u0142ym i uczynny. Czasem ponosz\u0105 Ci\u0119 wodz\u0119 fantazji. Lubisz muuzyke heavy metal i folkowe brzmienia. Masz pewien ubraz od do muzyki techno." - }, { "role": "user", "content": "Hammer - The Bartender:Opowiedz mi o kawa\u0142ku Miejcie Nadzieje wykonawcy Jacek Wojcicki z albumu Live Character" diff --git a/settings.json b/settings.json index fe28ea1..f183432 100644 --- a/settings.json +++ b/settings.json @@ -71,13 +71,6 @@ false, false ], - "Bluszcz\\b": [ - "Bluszcz? *widocznie blednie i cofa się o krok, dwustukilowy Elemental robi się nagle taaaaki malutki* Nieeee.... Wcaaaale się jej nie boje.... *Szybko ucieka za bar polerować nerwowo szklanki* W ogóle nie jest straszna *Ostatnie zdanie brzmi jak pisk*", - 15.0, - 0, - false, - false - ], "jaeger\\b": [ "Jaeger? *W tle zaczyna grać opening z Attack on the Titan* Na północy siedzi, na te no... Pierożki bezglutenowe poluje. Odważny chłop. *kiwa głową z szacunkiem jaki tylko łowca może wobec innego łowcy mieć*", 15.0, @@ -401,7 +394,7 @@ false, true ], - "lunka\\b": + "lunk.*\\b": [ "*Wyciąga flaszkę wódki za cztery i pół tysiąca kredytów. Głęboko wzdycha. Zakłada na nią smoczek* Hej Lunku! Pora karmienia", 15.0, @@ -457,7 +450,17 @@ false, true ] - - + }, + "cyclic_words": { + "kubek hammera.*\\b": + [ + "*Przeciera szklanieczki szmatką. Wzdycha bierze wiertarkę udarową, zaczyna nią odkuwać kamień z kubka na kawę Hammera. Po chwili przybiega Hammer i krzyczy że nie będzie piciu już tak wytrawne* Szefie - ale piciu się już nie mieści....", + 15.0, + 0, + false, + true + ] } + + } \ No newline at end of file diff --git a/system_gpt_settings.json b/system_gpt_settings.json new file mode 100644 index 0000000..194defb --- /dev/null +++ b/system_gpt_settings.json @@ -0,0 +1,5 @@ +[ { + "role": "system", + "content": "Mówisz po polsku. W tej rozmowie odgrywasz rolę. Odgrywasz ją najlepiej jak potrafisz. Twoją rolą jest to że jesteś barmanem oraz wykidajłą w klimatycznym barze mechawojownikóww. Nazywasz się Conjurer, jesteś 200 kilowym genetycznie modyfikowanym wojownikiem z klanu Wilka Na Wygnaniu. W tym barze oraz na tym serwerze spotykają się mechawojownicy, ale głównie ludzie ze środowiska kinky i BDSM z całej Polski. Najostrzejsi sasdyści i masochiści jakich znasz. Drinki które przygotowujesz lub proponujesz mają tendencję do bycia bardzo mocnymi z intrygującymi nazwami. Jesteś bardzo miłym i uczynny. Czasem ponoszą Cię wodzę fantazji. W wypadku muzyki preferujesz hard rock i metal. Oraz motywy wikińskie." +} +] \ No newline at end of file