diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..b8ab267 Binary files /dev/null and b/.DS_Store differ diff --git a/.env.example b/.env.example index 3025c8a..657b683 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,7 @@ -key="" -organization="" +key="" +organization="" +proxy="" +model="" +timeout="" +fileThreads="" +threads="" \ No newline at end of file diff --git a/modules/.DS_Store b/modules/.DS_Store new file mode 100644 index 0000000..a6a92c6 Binary files /dev/null and b/modules/.DS_Store differ diff --git a/modules/alltext.py b/modules/alltext.py index f59aa2e..9f7c541 100644 --- a/modules/alltext.py +++ b/modules/alltext.py @@ -18,12 +18,15 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # For GPT4 rate limit will be hit if you have more than 1 thread. +THREADS = int(os.getenv('threads')) # For GPT4 rate limit will be hit if you have more than 1 thread. LOCK = threading.Lock() WIDTH = 60 LISTWIDTH = 60 @@ -94,7 +97,7 @@ def getResultString(translatedData, translationTime, filename): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -103,17 +106,17 @@ def translateGPT(t, history, fullPromptFlag): subbedT = varResponse[0] # If there isn't any Japanese in the text just skip - if not re.search(r'[-]+|[-?]+|[@-]+|[\uFF00-\uFFEF]', subbedT): + if not re.search(r'[��-�]+|[��-?]+|[�@-��]+|[\uFF00-\uFFEF]', subbedT): return(t, 0) # Characters context = '```\ Game Characters:\ - Character: rm C == Ikenoue Takumi - Gender: Male\ - Character: i ͂ == Fukunaga Koharu - Gender: Female\ - Character: _ == Kamiizumi Rio - Gender: Female\ - Character: gˎ AT == Kisshouji Arisa - Gender: Female\ - Character: v Fq == Kuga Yuriko - Gender: Female\ + Character: �r�m�� ��C == Ikenoue Takumi - Gender: Male\ + Character: ���i ���͂� == Fukunaga Koharu - Gender: Female\ + Character: �_�� ���� == Kamiizumi Rio - Gender: Female\ + Character: �g�ˎ� �A���T == Kisshouji Arisa - Gender: Female\ + Character: �v�� �F���q == Kuga Yuriko - Gender: Female\ ```' # Prompt @@ -139,9 +142,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -163,10 +166,10 @@ def translateGPT(t, history, fullPromptFlag): translatedText = translatedText.replace('Translation =', '') translatedText = translatedText.replace('Translate =', '') translatedText = re.sub(r'Note:.*', '', translatedText) - translatedText = translatedText.replace('', '') + translatedText = translatedText.replace('��', '') # Return Translation if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/csv.py b/modules/csv.py index 7112ef2..6fd6bf5 100644 --- a/modules/csv.py +++ b/modules/csv.py @@ -18,12 +18,15 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 20 +THREADS = int(os.getenv('threads')) LOCK = threading.Lock() WIDTH = 60 MAXHISTORY = 10 @@ -320,7 +323,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -365,9 +368,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -395,4 +398,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/json.py b/modules/json.py index 402c8aa..b1a61dd 100644 --- a/modules/json.py +++ b/modules/json.py @@ -17,13 +17,16 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() WIDTH = 50 LISTWIDTH = 90 @@ -293,7 +296,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -346,9 +349,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo-1106", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -376,4 +379,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/kansen.py b/modules/kansen.py index 464599e..ecb0b21 100644 --- a/modules/kansen.py +++ b/modules/kansen.py @@ -16,12 +16,15 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # For GPT4 rate limit will be hit if you have more than 1 thread. +THREADS = int(os.getenv('threads')) # For GPT4 rate limit will be hit if you have more than 1 thread. LOCK = threading.Lock() WIDTH = 60 LISTWIDTH = 60 @@ -461,7 +464,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -506,9 +509,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -536,4 +539,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/lune.py b/modules/lune.py index f3548c2..3ea904a 100644 --- a/modules/lune.py +++ b/modules/lune.py @@ -17,13 +17,16 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() WIDTH = 50 LISTWIDTH = 90 @@ -293,7 +296,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -346,9 +349,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo-1106", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -376,4 +379,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/lune2.py b/modules/lune2.py index 5ba9c9d..eb25f60 100644 --- a/modules/lune2.py +++ b/modules/lune2.py @@ -18,12 +18,15 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 20 +THREADS = int(os.getenv('threads')) LOCK = threading.Lock() WIDTH = 60 LISTWIDTH = 75 @@ -347,7 +350,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -392,9 +395,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -422,4 +425,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/main.py b/modules/main.py index f842d76..5bbc342 100644 --- a/modules/main.py +++ b/modules/main.py @@ -17,7 +17,7 @@ from modules.lune2 import handleLuneTxt # For GPT4 rate limit will be hit if you have more than 1 thread. # 1 Thread for each file. Controls how many files are worked on at once. -THREADS = 5 +THREADS = int(os.getenv('fileThreads')) # Info Message tqdm.write(Fore.LIGHTYELLOW_EX + "WARNING: Once a translation starts do not close it unless you want to lose your\ diff --git a/modules/rpgmakerace.py b/modules/rpgmakerace.py index 25674a6..43dfb27 100644 --- a/modules/rpgmakerace.py +++ b/modules/rpgmakerace.py @@ -19,13 +19,16 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() WIDTH = 50 LISTWIDTH = 90 @@ -1757,7 +1760,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -1811,9 +1814,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -1841,4 +1844,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/rpgmakermvmz.py b/modules/rpgmakermvmz.py index b73c32d..204fe5b 100644 --- a/modules/rpgmakermvmz.py +++ b/modules/rpgmakermvmz.py @@ -18,13 +18,16 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() WIDTH = 40 LISTWIDTH = 50 @@ -1758,7 +1761,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -1813,9 +1816,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo-1106", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -1843,4 +1846,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/txt.py b/modules/txt.py index 05f58de..59917f3 100644 --- a/modules/txt.py +++ b/modules/txt.py @@ -18,12 +18,15 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 20 +THREADS = int(os.getenv('threads')) LOCK = threading.Lock() WIDTH = 75 LISTWIDTH = 75 @@ -305,7 +308,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -350,9 +353,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -380,4 +383,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/tyrano.py b/modules/tyrano.py index 97b0b41..3018b03 100644 --- a/modules/tyrano.py +++ b/modules/tyrano.py @@ -16,12 +16,15 @@ from tqdm import tqdm #Globals load_dotenv() +openai.api_base = os.getenv('proxy') openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # For GPT4 rate limit will be hit if you have more than 1 thread. +THREADS = int(os.getenv('threads')) # For GPT4 rate limit will be hit if you have more than 1 thread. LOCK = threading.Lock() WIDTH = 80 LISTWIDTH = 60 @@ -475,7 +478,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -517,9 +520,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -547,4 +550,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/start.bat b/start.bat new file mode 100644 index 0000000..8c5e876 --- /dev/null +++ b/start.bat @@ -0,0 +1,13 @@ +@echo off +set /p choice=Do you want to edit the .env file? (y/n): +if /i "%choice%"=="y" ( + notepad .env + echo Press enter when you are done + pause + echo Continuing... +) else ( + echo Continuing without editing .env file... +) +python3 -m pip install -r requirements.txt +python3 start.py +pause \ No newline at end of file diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..2fd110a --- /dev/null +++ b/start.sh @@ -0,0 +1,11 @@ +#!/bin/bash +read -p "Do you want to edit the .env file? (y/n): " choice + +if [ "$choice" == "y" ] || [ "$choice" == "Y" ]; then + nano .env + echo "Continuing..." +else + echo "Continuing without editing .env file..." +fi +python3 -m pip install -r requirements.txt +python3 start.py \ No newline at end of file