Optimize Python code
Former-commit-id: 8d08367816ff84a2a2f62470b06421c0340f5fdbpull/174/head
parent
1bd3eb61f4
commit
510fa649c6
|
|
@ -1 +0,0 @@
|
||||||
f6a24778b29e3ac4ce40489a30befea649c34fe9
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
||||||
eee6babe1b0f66667f5d0cc62da24707704274ea
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
||||||
94f23b71949a9379ef12a4b726fe7babe1ebb494
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
translators
|
|
||||||
fastapi
|
|
||||||
hashlib
|
|
||||||
openai
|
|
||||||
boto3
|
|
||||||
aliyun-python-sdk-core
|
|
||||||
aliyun-python-sdk-alimt
|
|
||||||
|
|
@ -5,23 +5,24 @@ from pathlib import Path
|
||||||
from modules import script_callbacks, extra_networks, prompt_parser
|
from modules import script_callbacks, extra_networks, prompt_parser
|
||||||
from fastapi import FastAPI, Body, Request, Response
|
from fastapi import FastAPI, Body, Request, Response
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse
|
||||||
from scripts.storage import storage
|
from scripts.physton_prompt.storage import Storage
|
||||||
from scripts.get_extensions import get_extensions
|
from scripts.physton_prompt.get_extensions import get_extensions
|
||||||
from scripts.get_token_counter import get_token_counter
|
from scripts.physton_prompt.get_token_counter import get_token_counter
|
||||||
from scripts.get_i18n import get_i18n
|
from scripts.physton_prompt.get_i18n import get_i18n
|
||||||
from scripts.get_translate_apis import get_translate_apis
|
from scripts.physton_prompt.get_translate_apis import get_translate_apis
|
||||||
from scripts.translate import translate
|
from scripts.physton_prompt.translate import translate
|
||||||
from scripts.history import history
|
from scripts.physton_prompt.history import History
|
||||||
from scripts.csv import get_csvs, get_csv
|
from scripts.physton_prompt.csv import get_csvs, get_csv
|
||||||
from scripts.styles import getStyleFullPath, getExtensionCssList
|
from scripts.physton_prompt.styles import get_style_full_path, get_extension_css_list
|
||||||
from scripts.get_extra_networks import get_extra_networks
|
from scripts.physton_prompt.get_extra_networks import get_extra_networks
|
||||||
from scripts.packages import get_packages_state, install_package
|
from scripts.physton_prompt.packages import get_packages_state, install_package
|
||||||
from scripts.gen_openai import gen_openai
|
from scripts.physton_prompt.gen_openai import gen_openai
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
from scripts.get_version import get_git_commit_version, get_git_remote_versions, get_latest_version
|
from scripts.physton_prompt.get_version import get_git_commit_version, get_git_remote_versions, get_latest_version
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from modules.shared import cmd_opts
|
from modules.shared import cmd_opts
|
||||||
|
|
||||||
if cmd_opts.data_dir:
|
if cmd_opts.data_dir:
|
||||||
extension_dir = os.path.dirname(os.path.abspath(__file__)) + '/../'
|
extension_dir = os.path.dirname(os.path.abspath(__file__)) + '/../'
|
||||||
extension_dir = os.path.normpath(extension_dir) + os.path.sep
|
extension_dir = os.path.normpath(extension_dir) + os.path.sep
|
||||||
|
|
@ -52,9 +53,10 @@ As you have set the --data-dir parameter and have not added the extension path t
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def on_app_started(_: gr.Blocks, app: FastAPI):
|
def on_app_started(_: gr.Blocks, app: FastAPI):
|
||||||
st = storage()
|
st = Storage()
|
||||||
hi = history()
|
hi = History()
|
||||||
|
|
||||||
@app.get("/physton_prompt/get_version")
|
@app.get("/physton_prompt/get_version")
|
||||||
async def _get_version():
|
async def _get_version():
|
||||||
|
|
@ -179,7 +181,7 @@ def on_app_started(_: gr.Blocks, app: FastAPI):
|
||||||
|
|
||||||
@app.get("/physton_prompt/get_histories")
|
@app.get("/physton_prompt/get_histories")
|
||||||
async def _get_histories(type: str):
|
async def _get_histories(type: str):
|
||||||
return {"histories": hi.get_histoies(type)}
|
return {"histories": hi.get_histories(type)}
|
||||||
|
|
||||||
@app.get("/physton_prompt/get_favorites")
|
@app.get("/physton_prompt/get_favorites")
|
||||||
async def _get_favorites(type: str):
|
async def _get_favorites(type: str):
|
||||||
|
|
@ -285,7 +287,8 @@ def on_app_started(_: gr.Blocks, app: FastAPI):
|
||||||
return {"success": hi.remove_histories(data['type'])}
|
return {"success": hi.remove_histories(data['type'])}
|
||||||
|
|
||||||
@app.post("/physton_prompt/translate")
|
@app.post("/physton_prompt/translate")
|
||||||
async def _translate(text: str = Body(...), from_lang: str = Body(...), to_lang: str = Body(...), api: str = Body(...), api_config: dict = Body(...)):
|
async def _translate(text: str = Body(...), from_lang: str = Body(...), to_lang: str = Body(...),
|
||||||
|
api: str = Body(...), api_config: dict = Body(...)):
|
||||||
return translate(text, from_lang, to_lang, api, api_config)
|
return translate(text, from_lang, to_lang, api, api_config)
|
||||||
|
|
||||||
@app.post("/physton_prompt/translates")
|
@app.post("/physton_prompt/translates")
|
||||||
|
|
@ -316,14 +319,14 @@ def on_app_started(_: gr.Blocks, app: FastAPI):
|
||||||
|
|
||||||
@app.get("/physton_prompt/styles")
|
@app.get("/physton_prompt/styles")
|
||||||
async def _styles(file: str):
|
async def _styles(file: str):
|
||||||
file_path = getStyleFullPath(file)
|
file_path = get_style_full_path(file)
|
||||||
if not os.path.exists(file_path):
|
if not os.path.exists(file_path):
|
||||||
return Response(status_code=404)
|
return Response(status_code=404)
|
||||||
return FileResponse(file_path, filename=os.path.basename(file_path))
|
return FileResponse(file_path, filename=os.path.basename(file_path))
|
||||||
|
|
||||||
@app.get("/physton_prompt/get_extension_css_list")
|
@app.get("/physton_prompt/get_extension_css_list")
|
||||||
async def _get_extension_css_list():
|
async def _get_extension_css_list():
|
||||||
return {"css_list": getExtensionCssList()}
|
return {"css_list": get_extension_css_list()}
|
||||||
|
|
||||||
@app.get("/physton_prompt/get_extra_networks")
|
@app.get("/physton_prompt/get_extra_networks")
|
||||||
async def _get_extra_networks():
|
async def _get_extra_networks():
|
||||||
|
|
@ -341,8 +344,9 @@ def on_app_started(_: gr.Blocks, app: FastAPI):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return {"success": False, 'message': str(e)}
|
return {"success": False, 'message': str(e)}
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
script_callbacks.on_app_started(on_app_started)
|
script_callbacks.on_app_started(on_app_started)
|
||||||
print('sd-webui-prompt-all-in-one background API service started successfully.')
|
print('sd-webui-prompt-all-in-one background API service started successfully.')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'sd-webui-prompt-all-in-one background API service failed to start: {e}')
|
print(f'sd-webui-prompt-all-in-one background API service failed to start: {e}')
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ dirs = [
|
||||||
os.path.join(base_dir, 'extensions', 'a1111-sd-webui-tagcomplete', 'tags'),
|
os.path.join(base_dir, 'extensions', 'a1111-sd-webui-tagcomplete', 'tags'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_csvs():
|
def get_csvs():
|
||||||
global base_dir
|
global base_dir
|
||||||
csvs = []
|
csvs = []
|
||||||
|
|
@ -28,8 +29,9 @@ def get_csvs():
|
||||||
})
|
})
|
||||||
return csvs
|
return csvs
|
||||||
|
|
||||||
|
|
||||||
def get_csv(key):
|
def get_csv(key):
|
||||||
path = base_dir + key
|
path = base_dir + key
|
||||||
if not os.path.exists(path):
|
if not os.path.exists(path):
|
||||||
return None
|
return None
|
||||||
return path
|
return path
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
def gen_openai(messages, api_config):
|
def gen_openai(messages, api_config):
|
||||||
import openai
|
import openai
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
def get_extensions():
|
def get_extensions():
|
||||||
extends_dir = os.path.join(Path().absolute(), 'extensions')
|
extends_dir = os.path.join(Path().absolute(), 'extensions')
|
||||||
extends = []
|
extends = []
|
||||||
|
|
@ -12,11 +12,12 @@ filters = [
|
||||||
'metadata',
|
'metadata',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_extra_networks():
|
def get_extra_networks():
|
||||||
result = []
|
result = []
|
||||||
try:
|
try:
|
||||||
for extra_page in ui_extra_networks.extra_pages:
|
for extra_page in ui_extra_networks.extra_pages:
|
||||||
resultItem = {
|
result_item = {
|
||||||
'name': extra_page.name,
|
'name': extra_page.name,
|
||||||
'title': extra_page.title,
|
'title': extra_page.title,
|
||||||
'items': []
|
'items': []
|
||||||
|
|
@ -58,9 +59,9 @@ def get_extra_networks():
|
||||||
if filter in item:
|
if filter in item:
|
||||||
del item[filter]
|
del item[filter]
|
||||||
|
|
||||||
resultItem['items'].append(item)
|
result_item['items'].append(item)
|
||||||
|
|
||||||
result.append(resultItem)
|
result.append(result_item)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
return result
|
return result
|
||||||
|
|
@ -2,12 +2,14 @@ import os
|
||||||
import json
|
import json
|
||||||
|
|
||||||
i18n = {}
|
i18n = {}
|
||||||
|
|
||||||
|
|
||||||
def get_i18n(reload=False):
|
def get_i18n(reload=False):
|
||||||
global i18n
|
global i18n
|
||||||
if reload or not i18n:
|
if reload or not i18n:
|
||||||
i18n = {}
|
i18n = {}
|
||||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
config_file = os.path.join(current_dir, '../i18n.json')
|
config_file = os.path.join(current_dir, '../../i18n.json')
|
||||||
config_file = os.path.normpath(config_file)
|
config_file = os.path.normpath(config_file)
|
||||||
with open(config_file, 'r', encoding='utf8') as f:
|
with open(config_file, 'r', encoding='utf8') as f:
|
||||||
i18n = json.load(f)
|
i18n = json.load(f)
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
from scripts.storage import storage
|
from scripts.physton_prompt.storage import Storage
|
||||||
storage = storage()
|
|
||||||
from scripts.get_i18n import get_i18n
|
storage = Storage()
|
||||||
|
from scripts.physton_prompt.get_i18n import get_i18n
|
||||||
|
|
||||||
|
|
||||||
def replace_vars(text, vars):
|
def replace_vars(text, vars):
|
||||||
for key, value in vars.items():
|
for key, value in vars.items():
|
||||||
text = text.replace("{" + key + "}", value)
|
text = text.replace("{" + key + "}", value)
|
||||||
return text
|
return text
|
||||||
|
|
||||||
def get_lang(key, vars = {}):
|
|
||||||
|
def get_lang(key, vars={}):
|
||||||
i18n = get_i18n()
|
i18n = get_i18n()
|
||||||
code = storage.get('languageCode')
|
code = storage.get('languageCode')
|
||||||
|
|
||||||
|
|
@ -42,4 +45,3 @@ def get_lang(key, vars = {}):
|
||||||
return find
|
return find
|
||||||
|
|
||||||
return replace_vars(key, vars)
|
return replace_vars(key, vars)
|
||||||
|
|
||||||
|
|
@ -2,6 +2,7 @@ from modules import script_callbacks, extra_networks, prompt_parser
|
||||||
from modules.sd_hijack import model_hijack
|
from modules.sd_hijack import model_hijack
|
||||||
from functools import partial, reduce
|
from functools import partial, reduce
|
||||||
|
|
||||||
|
|
||||||
def get_token_counter(text, steps):
|
def get_token_counter(text, steps):
|
||||||
# copy from modules.ui.py
|
# copy from modules.ui.py
|
||||||
try:
|
try:
|
||||||
|
|
@ -15,7 +16,8 @@ def get_token_counter(text, steps):
|
||||||
# messages related to it in console
|
# messages related to it in console
|
||||||
prompt_schedules = [[[steps, text]]]
|
prompt_schedules = [[[steps, text]]]
|
||||||
|
|
||||||
flat_prompts = reduce(lambda list1, list2: list1+list2, prompt_schedules)
|
flat_prompts = reduce(lambda list1, list2: list1 + list2, prompt_schedules)
|
||||||
prompts = [prompt_text for step, prompt_text in flat_prompts]
|
prompts = [prompt_text for step, prompt_text in flat_prompts]
|
||||||
token_count, max_length = max([model_hijack.get_prompt_lengths(prompt) for prompt in prompts], key=lambda args: args[0])
|
token_count, max_length = max([model_hijack.get_prompt_lengths(prompt) for prompt in prompts],
|
||||||
|
key=lambda args: args[0])
|
||||||
return {"token_count": token_count, "max_length": max_length}
|
return {"token_count": token_count, "max_length": max_length}
|
||||||
|
|
@ -1,16 +1,19 @@
|
||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
# from scripts.storage import storage
|
|
||||||
|
# from scripts.physton_prompt.storage import Storage
|
||||||
|
|
||||||
translate_apis = {}
|
translate_apis = {}
|
||||||
# st = storage()
|
|
||||||
|
|
||||||
|
# st = Storage()
|
||||||
def get_translate_apis(reload=False):
|
def get_translate_apis(reload=False):
|
||||||
global translate_apis
|
global translate_apis
|
||||||
global st
|
global st
|
||||||
if reload or not translate_apis:
|
if reload or not translate_apis:
|
||||||
translate_apis = {}
|
translate_apis = {}
|
||||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
config_file = os.path.join(current_dir, '../translate_apis.json')
|
config_file = os.path.join(current_dir, '../../translate_apis.json')
|
||||||
config_file = os.path.normpath(config_file)
|
config_file = os.path.normpath(config_file)
|
||||||
with open(config_file, 'r', encoding='utf8') as f:
|
with open(config_file, 'r', encoding='utf8') as f:
|
||||||
translate_apis = json.load(f)
|
translate_apis = json.load(f)
|
||||||
|
|
@ -4,8 +4,9 @@ import requests
|
||||||
import subprocess
|
import subprocess
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
|
|
||||||
def get_git_commit_version():
|
def get_git_commit_version():
|
||||||
extension_dir = os.path.dirname(os.path.abspath(__file__)) + '/../'
|
extension_dir = os.path.dirname(os.path.abspath(__file__)) + '/../../'
|
||||||
extension_dir = os.path.normpath(extension_dir)
|
extension_dir = os.path.normpath(extension_dir)
|
||||||
git_path = os.path.join(extension_dir, '.git')
|
git_path = os.path.join(extension_dir, '.git')
|
||||||
if os.path.exists(git_path):
|
if os.path.exists(git_path):
|
||||||
|
|
@ -31,6 +32,7 @@ def get_git_commit_version():
|
||||||
|
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
||||||
def _handle_versions(response, filter_update_readme=False):
|
def _handle_versions(response, filter_update_readme=False):
|
||||||
try:
|
try:
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
|
|
@ -56,6 +58,7 @@ def _handle_versions(response, filter_update_readme=False):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
def get_git_remote_versions(page=1, per_page=100, filter_update_readme=False):
|
def get_git_remote_versions(page=1, per_page=100, filter_update_readme=False):
|
||||||
api_urls = [
|
api_urls = [
|
||||||
'https://api.github.com/repos/physton/sd-webui-prompt-all-in-one/commits',
|
'https://api.github.com/repos/physton/sd-webui-prompt-all-in-one/commits',
|
||||||
|
|
@ -74,11 +77,12 @@ def get_git_remote_versions(page=1, per_page=100, filter_update_readme=False):
|
||||||
|
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
def get_latest_version():
|
def get_latest_version():
|
||||||
current_version = get_git_commit_version()
|
current_version = get_git_commit_version()
|
||||||
# if not current_version:
|
# if not current_version:
|
||||||
# return current_version
|
# return current_version
|
||||||
versions = get_git_remote_versions(1, 10, True)
|
versions = get_git_remote_versions(1, 10, True)
|
||||||
if len(versions) < 1:
|
if len(versions) < 1:
|
||||||
return current_version
|
return current_version
|
||||||
return versions[0]['version']
|
return versions[0]['version']
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
from scripts.storage import storage
|
from scripts.physton_prompt.storage import Storage
|
||||||
import uuid
|
import uuid
|
||||||
import time
|
import time
|
||||||
|
|
||||||
class history:
|
|
||||||
histoies = {
|
class History:
|
||||||
|
histories = {
|
||||||
'txt2img': [],
|
'txt2img': [],
|
||||||
'txt2img_neg': [],
|
'txt2img_neg': [],
|
||||||
'img2img': [],
|
'img2img': [],
|
||||||
|
|
@ -16,13 +17,13 @@ class history:
|
||||||
'img2img_neg': [],
|
'img2img_neg': [],
|
||||||
}
|
}
|
||||||
max = 100
|
max = 100
|
||||||
storage = storage()
|
storage = Storage()
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
for type in self.histoies:
|
for type in self.histories:
|
||||||
self.histoies[type] = self.storage.get('history.' + type)
|
self.histories[type] = self.storage.get('history.' + type)
|
||||||
if self.histoies[type] is None:
|
if self.histories[type] is None:
|
||||||
self.histoies[type] = []
|
self.histories[type] = []
|
||||||
self.__save_histories(type)
|
self.__save_histories(type)
|
||||||
|
|
||||||
for type in self.favorites:
|
for type in self.favorites:
|
||||||
|
|
@ -32,16 +33,16 @@ class history:
|
||||||
self.__save_favorites(type)
|
self.__save_favorites(type)
|
||||||
|
|
||||||
def __save_histories(self, type):
|
def __save_histories(self, type):
|
||||||
self.storage.set('history.' + type, self.histoies[type])
|
self.storage.set('history.' + type, self.histories[type])
|
||||||
|
|
||||||
def __save_favorites(self, type):
|
def __save_favorites(self, type):
|
||||||
self.storage.set('favorite.' + type, self.favorites[type])
|
self.storage.set('favorite.' + type, self.favorites[type])
|
||||||
|
|
||||||
def get_histoies(self, type):
|
def get_histories(self, type):
|
||||||
histoies = self.histoies[type]
|
histories = self.histories[type]
|
||||||
for history in histoies:
|
for history in histories:
|
||||||
history['is_favorite'] = self.is_favorite(type, history['id'])
|
history['is_favorite'] = self.is_favorite(type, history['id'])
|
||||||
return histoies
|
return histories
|
||||||
|
|
||||||
def is_favorite(self, type, id):
|
def is_favorite(self, type, id):
|
||||||
for favorite in self.favorites[type]:
|
for favorite in self.favorites[type]:
|
||||||
|
|
@ -53,8 +54,8 @@ class history:
|
||||||
return self.favorites[type]
|
return self.favorites[type]
|
||||||
|
|
||||||
def push_history(self, type, tags, prompt, name=''):
|
def push_history(self, type, tags, prompt, name=''):
|
||||||
if len(self.histoies[type]) >= self.max:
|
if len(self.histories[type]) >= self.max:
|
||||||
self.histoies[type].pop(0)
|
self.histories[type].pop(0)
|
||||||
item = {
|
item = {
|
||||||
'id': str(uuid.uuid1()),
|
'id': str(uuid.uuid1()),
|
||||||
'time': int(time.time()),
|
'time': int(time.time()),
|
||||||
|
|
@ -62,7 +63,7 @@ class history:
|
||||||
'tags': tags,
|
'tags': tags,
|
||||||
'prompt': prompt,
|
'prompt': prompt,
|
||||||
}
|
}
|
||||||
self.histoies[type].append(item)
|
self.histories[type].append(item)
|
||||||
self.__save_histories(type)
|
self.__save_histories(type)
|
||||||
return item
|
return item
|
||||||
|
|
||||||
|
|
@ -79,12 +80,12 @@ class history:
|
||||||
return item
|
return item
|
||||||
|
|
||||||
def get_latest_history(self, type):
|
def get_latest_history(self, type):
|
||||||
if len(self.histoies[type]) > 0:
|
if len(self.histories[type]) > 0:
|
||||||
return self.histoies[type][-1]
|
return self.histories[type][-1]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def set_history(self, type, id, tags, prompt, name):
|
def set_history(self, type, id, tags, prompt, name):
|
||||||
for history in self.histoies[type]:
|
for history in self.histories[type]:
|
||||||
if history['id'] == id:
|
if history['id'] == id:
|
||||||
history['tags'] = tags
|
history['tags'] = tags
|
||||||
history['prompt'] = prompt
|
history['prompt'] = prompt
|
||||||
|
|
@ -106,7 +107,7 @@ class history:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def set_history_name(self, type, id, name):
|
def set_history_name(self, type, id, name):
|
||||||
for history in self.histoies[type]:
|
for history in self.histories[type]:
|
||||||
if history['id'] == id:
|
if history['id'] == id:
|
||||||
history['name'] = name
|
history['name'] = name
|
||||||
self.__save_histories(type)
|
self.__save_histories(type)
|
||||||
|
|
@ -122,7 +123,7 @@ class history:
|
||||||
if favorite['id'] == id:
|
if favorite['id'] == id:
|
||||||
favorite['name'] = name
|
favorite['name'] = name
|
||||||
self.__save_favorites(type)
|
self.__save_favorites(type)
|
||||||
for history in self.histoies[type]:
|
for history in self.histories[type]:
|
||||||
if history['id'] == id:
|
if history['id'] == id:
|
||||||
history['name'] = name
|
history['name'] = name
|
||||||
self.__save_histories(type)
|
self.__save_histories(type)
|
||||||
|
|
@ -132,7 +133,7 @@ class history:
|
||||||
def dofavorite(self, type, id):
|
def dofavorite(self, type, id):
|
||||||
if self.is_favorite(type, id):
|
if self.is_favorite(type, id):
|
||||||
return False
|
return False
|
||||||
for history in self.histoies[type]:
|
for history in self.histories[type]:
|
||||||
if history['id'] == id:
|
if history['id'] == id:
|
||||||
self.favorites[type].append(history)
|
self.favorites[type].append(history)
|
||||||
self.__save_favorites(type)
|
self.__save_favorites(type)
|
||||||
|
|
@ -150,15 +151,14 @@ class history:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def remove_history(self, type, id):
|
def remove_history(self, type, id):
|
||||||
for history in self.histoies[type]:
|
for history in self.histories[type]:
|
||||||
if history['id'] == id:
|
if history['id'] == id:
|
||||||
self.histoies[type].remove(history)
|
self.histories[type].remove(history)
|
||||||
self.__save_histories(type)
|
self.__save_histories(type)
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def remove_histories(self, type):
|
def remove_histories(self, type):
|
||||||
self.histoies[type] = []
|
self.histories[type] = []
|
||||||
self.__save_histories(type)
|
self.__save_histories(type)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import launch
|
import launch
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
"chardet": "chardet",
|
"chardet": "chardet",
|
||||||
|
|
@ -14,6 +14,7 @@ packages = {
|
||||||
"aliyunsdkalimt": "aliyun-python-sdk-alimt",
|
"aliyunsdkalimt": "aliyun-python-sdk-alimt",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def get_packages_state():
|
def get_packages_state():
|
||||||
states = []
|
states = []
|
||||||
for package_name in packages:
|
for package_name in packages:
|
||||||
|
|
@ -30,6 +31,7 @@ def get_packages_state():
|
||||||
|
|
||||||
return states
|
return states
|
||||||
|
|
||||||
|
|
||||||
def install_package(name, package):
|
def install_package(name, package):
|
||||||
result = {'state': False, 'message': ''}
|
result = {'state': False, 'message': ''}
|
||||||
try:
|
try:
|
||||||
|
|
@ -3,13 +3,15 @@ from pathlib import Path
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
|
|
||||||
class storage:
|
|
||||||
|
class Storage:
|
||||||
storage_path = ''
|
storage_path = ''
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def __get_storage_path(self):
|
def __get_storage_path(self):
|
||||||
self.storage_path = os.path.dirname(os.path.abspath(__file__)) + '/../storage'
|
self.storage_path = os.path.dirname(os.path.abspath(__file__)) + '/../../storage'
|
||||||
self.storage_path = os.path.normpath(self.storage_path)
|
self.storage_path = os.path.normpath(self.storage_path)
|
||||||
if not os.path.exists(self.storage_path):
|
if not os.path.exists(self.storage_path):
|
||||||
os.makedirs(self.storage_path)
|
os.makedirs(self.storage_path)
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
import os
|
import os
|
||||||
from scripts.storage import storage
|
from scripts.physton_prompt.storage import Storage
|
||||||
storage = storage()
|
|
||||||
|
|
||||||
styles_path = os.path.dirname(os.path.abspath(__file__)) + '/../styles'
|
storage = Storage()
|
||||||
|
|
||||||
|
styles_path = os.path.dirname(os.path.abspath(__file__)) + '/../../styles'
|
||||||
styles_path = os.path.normpath(styles_path)
|
styles_path = os.path.normpath(styles_path)
|
||||||
|
|
||||||
def getStyleFullPath(file):
|
|
||||||
|
def get_style_full_path(file):
|
||||||
global styles_path
|
global styles_path
|
||||||
return os.path.join(styles_path, file)
|
return os.path.join(styles_path, file)
|
||||||
|
|
||||||
def getExtensionCssList():
|
|
||||||
|
def get_extension_css_list():
|
||||||
global styles_path
|
global styles_path
|
||||||
extension_path = os.path.join(styles_path, 'extensions')
|
extension_path = os.path.join(styles_path, 'extensions')
|
||||||
if not os.path.exists(extension_path):
|
if not os.path.exists(extension_path):
|
||||||
|
|
@ -1,22 +1,27 @@
|
||||||
import json
|
import json
|
||||||
import hashlib
|
import hashlib
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
from scripts.get_translate_apis import get_translate_apis
|
from scripts.physton_prompt.get_translate_apis import get_translate_apis
|
||||||
from scripts.translator.alibaba_translator import AlibabaTranslator
|
from scripts.physton_prompt.translator.alibaba_translator import AlibabaTranslator
|
||||||
from scripts.translator.amazon_translator import AmazonTranslator
|
from scripts.physton_prompt.translator.amazon_translator import AmazonTranslator
|
||||||
from scripts.translator.baidu_translator import BaiduTranslator
|
from scripts.physton_prompt.translator.baidu_translator import BaiduTranslator
|
||||||
from scripts.translator.deepl_translator import DeeplTranslator
|
from scripts.physton_prompt.translator.deepl_translator import DeeplTranslator
|
||||||
from scripts.translator.google_tanslator import GoogleTranslator
|
from scripts.physton_prompt.translator.google_tanslator import GoogleTranslator
|
||||||
from scripts.translator.microsoft_translator import MicrosoftTranslator
|
from scripts.physton_prompt.translator.microsoft_translator import MicrosoftTranslator
|
||||||
from scripts.translator.openai_translator import OpenaiTranslator
|
from scripts.physton_prompt.translator.openai_translator import OpenaiTranslator
|
||||||
from scripts.translator.tencent_translator import TencentTranslator
|
from scripts.physton_prompt.translator.tencent_translator import TencentTranslator
|
||||||
from scripts.translator.translators_translator import TranslatorsTranslator
|
from scripts.physton_prompt.translator.translators_translator import TranslatorsTranslator
|
||||||
from scripts.translator.yandex_translator import YandexTranslator
|
from scripts.physton_prompt.translator.yandex_translator import YandexTranslator
|
||||||
from scripts.translator.youdao_translator import YoudaoTranslator
|
from scripts.physton_prompt.translator.youdao_translator import YoudaoTranslator
|
||||||
|
|
||||||
caches = {}
|
caches = {}
|
||||||
def translate(text, from_lang, to_lang, api, api_config = {}):
|
|
||||||
|
|
||||||
|
def translate(text, from_lang, to_lang, api, api_config=None):
|
||||||
|
if api_config is None:
|
||||||
|
api_config = {}
|
||||||
global caches
|
global caches
|
||||||
|
|
||||||
def _translate_result(success, message, translated_text):
|
def _translate_result(success, message, translated_text):
|
||||||
return {
|
return {
|
||||||
"success": success,
|
"success": success,
|
||||||
|
|
@ -28,6 +33,7 @@ def translate(text, from_lang, to_lang, api, api_config = {}):
|
||||||
"api": api,
|
"api": api,
|
||||||
"api_config": api_config
|
"api_config": api_config
|
||||||
}
|
}
|
||||||
|
|
||||||
def _cache_name(text):
|
def _cache_name(text):
|
||||||
cache_name = f'{api}.{from_lang}.{to_lang}.{text}.' + json.dumps(api_config)
|
cache_name = f'{api}.{from_lang}.{to_lang}.{text}.' + json.dumps(api_config)
|
||||||
cache_name = hashlib.md5(cache_name.encode('utf-8')).hexdigest()
|
cache_name = hashlib.md5(cache_name.encode('utf-8')).hexdigest()
|
||||||
|
|
@ -69,7 +75,6 @@ def translate(text, from_lang, to_lang, api, api_config = {}):
|
||||||
if cache_name in caches:
|
if cache_name in caches:
|
||||||
return _translate_result(True, '', caches[cache_name])
|
return _translate_result(True, '', caches[cache_name])
|
||||||
|
|
||||||
|
|
||||||
if api == 'google':
|
if api == 'google':
|
||||||
translator = GoogleTranslator()
|
translator = GoogleTranslator()
|
||||||
elif api == 'microsoft':
|
elif api == 'microsoft':
|
||||||
|
|
@ -105,7 +110,7 @@ def translate(text, from_lang, to_lang, api, api_config = {}):
|
||||||
translate_indexes = []
|
translate_indexes = []
|
||||||
for index in range(len(texts)):
|
for index in range(len(texts)):
|
||||||
item = texts[index]
|
item = texts[index]
|
||||||
if item == None:
|
if item is None:
|
||||||
translate_indexes.append(index)
|
translate_indexes.append(index)
|
||||||
translate_texts.append(text[index])
|
translate_texts.append(text[index])
|
||||||
if len(translate_texts) < 1:
|
if len(translate_texts) < 1:
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import json
|
import json
|
||||||
from math import ceil
|
from math import ceil
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class AlibabaTranslator(BaseTranslator):
|
class AlibabaTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -31,7 +32,7 @@ class AlibabaTranslator(BaseTranslator):
|
||||||
request.set_SourceLanguage(self.from_lang)
|
request.set_SourceLanguage(self.from_lang)
|
||||||
request.set_Scene("general")
|
request.set_Scene("general")
|
||||||
request.set_SourceText(text)
|
request.set_SourceText(text)
|
||||||
request.set_FormatType("text") #翻译文本的格式
|
request.set_FormatType("text") # 翻译文本的格式
|
||||||
request.set_TargetLanguage(self.to_lang)
|
request.set_TargetLanguage(self.to_lang)
|
||||||
request.set_method("POST")
|
request.set_method("POST")
|
||||||
response = client.do_action_with_exception(request)
|
response = client.do_action_with_exception(request)
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class AmazonTranslator(BaseTranslator):
|
class AmazonTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -19,7 +20,8 @@ class AmazonTranslator(BaseTranslator):
|
||||||
raise Exception(get_lang('is_required', {'0': 'Region'}))
|
raise Exception(get_lang('is_required', {'0': 'Region'}))
|
||||||
|
|
||||||
import boto3
|
import boto3
|
||||||
translate = boto3.client(service_name='translate', region_name=region, use_ssl=True, aws_access_key_id=api_key_id, aws_secret_access_key=api_key_secret)
|
translate = boto3.client(service_name='translate', region_name=region, use_ssl=True,
|
||||||
|
aws_access_key_id=api_key_id, aws_secret_access_key=api_key_secret)
|
||||||
result = translate.translate_text(Text=text, SourceLanguageCode=self.from_lang, TargetLanguageCode=self.to_lang)
|
result = translate.translate_text(Text=text, SourceLanguageCode=self.from_lang, TargetLanguageCode=self.to_lang)
|
||||||
if 'TranslatedText' not in result:
|
if 'TranslatedText' not in result:
|
||||||
raise Exception(get_lang('no_response_from', {'0': 'Amazon'}))
|
raise Exception(get_lang('no_response_from', {'0': 'Amazon'}))
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import requests
|
import requests
|
||||||
import hashlib
|
import hashlib
|
||||||
import random
|
import random
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class BaiduTranslator(BaseTranslator):
|
class BaiduTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
from scripts.get_translate_apis import get_translate_apis
|
|
||||||
from abc import ABC, abstractmethod
|
|
||||||
from math import ceil
|
|
||||||
import time
|
import time
|
||||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
from abc import ABC, abstractmethod
|
||||||
from collections import OrderedDict
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
from scripts.get_lang import get_lang
|
from math import ceil
|
||||||
|
|
||||||
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
from scripts.physton_prompt.get_translate_apis import get_translate_apis
|
||||||
|
|
||||||
|
|
||||||
class BaseTranslator(ABC):
|
class BaseTranslator(ABC):
|
||||||
from_lang = None
|
from_lang = None
|
||||||
|
|
@ -55,7 +56,6 @@ class BaseTranslator(ABC):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def translate_batch(self, texts):
|
def translate_batch(self, texts):
|
||||||
self.concurrent = self.get_concurrent()
|
|
||||||
concurrent = self.get_concurrent()
|
concurrent = self.get_concurrent()
|
||||||
texts_len = len(texts)
|
texts_len = len(texts)
|
||||||
group_num = ceil(texts_len / concurrent)
|
group_num = ceil(texts_len / concurrent)
|
||||||
|
|
@ -64,7 +64,7 @@ class BaseTranslator(ABC):
|
||||||
results = []
|
results = []
|
||||||
with ThreadPoolExecutor(max_workers=concurrent) as executor:
|
with ThreadPoolExecutor(max_workers=concurrent) as executor:
|
||||||
for i in range(group_num):
|
for i in range(group_num):
|
||||||
group_texts = texts[i*concurrent: (i+1)*concurrent]
|
group_texts = texts[i * concurrent: (i + 1) * concurrent]
|
||||||
texts_dict = {}
|
texts_dict = {}
|
||||||
futures = []
|
futures = []
|
||||||
for i in range(len(group_texts)):
|
for i in range(len(group_texts)):
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import requests
|
import requests
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class DeeplTranslator(BaseTranslator):
|
class DeeplTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import requests
|
import requests
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class GoogleTranslator(BaseTranslator):
|
class GoogleTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import uuid
|
import uuid
|
||||||
import requests
|
import requests
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class MicrosoftTranslator(BaseTranslator):
|
class MicrosoftTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import json
|
import json
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class OpenaiTranslator(BaseTranslator):
|
class OpenaiTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -30,8 +31,8 @@ class OpenaiTranslator(BaseTranslator):
|
||||||
|
|
||||||
messages = [
|
messages = [
|
||||||
{"role": "system", "content": "You are a translator assistant."},
|
{"role": "system", "content": "You are a translator assistant."},
|
||||||
{"role":
|
{
|
||||||
"user",
|
"role": "user",
|
||||||
"content": f"You are a translator assistant. Please translate the following JSON data {self.to_lang}. Preserve the original format. Only return the translation result, without any additional content or annotations. If the prompt word is in the target language, please send it to me unchanged:\n{body_str}"
|
"content": f"You are a translator assistant. Please translate the following JSON data {self.to_lang}. Preserve the original format. Only return the translation result, without any additional content or annotations. If the prompt word is in the target language, please send it to me unchanged:\n{body_str}"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
@ -39,14 +40,13 @@ class OpenaiTranslator(BaseTranslator):
|
||||||
if len(completion.choices) == 0:
|
if len(completion.choices) == 0:
|
||||||
raise Exception(get_lang('no_response_from', {'0': 'OpenAI'}))
|
raise Exception(get_lang('no_response_from', {'0': 'OpenAI'}))
|
||||||
content = completion.choices[0].message.content
|
content = completion.choices[0].message.content
|
||||||
result_json = ''
|
|
||||||
try:
|
try:
|
||||||
# 找到第一个[,然后找到最后一个],截取中间的内容
|
# 找到第一个[,然后找到最后一个],截取中间的内容
|
||||||
start = content.index('[')
|
start = content.index('[')
|
||||||
end = content.rindex(']')
|
end = content.rindex(']')
|
||||||
if start == -1 or end == -1:
|
if start == -1 or end == -1:
|
||||||
raise Exception(get_lang('response_error', {'0': 'OpenAI'}))
|
raise Exception(get_lang('response_error', {'0': 'OpenAI'}))
|
||||||
result_json = '['+ content[start+1:end] +']'
|
result_json = '[' + content[start + 1:end] + ']'
|
||||||
# 解析json
|
# 解析json
|
||||||
result = json.loads(result_json)
|
result = json.loads(result_json)
|
||||||
if isinstance(text, list):
|
if isinstance(text, list):
|
||||||
|
|
@ -1,8 +1,14 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
import hashlib
|
||||||
import requests
|
import hmac
|
||||||
import hashlib, hmac, json, time
|
import json
|
||||||
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from scripts.get_lang import get_lang
|
|
||||||
|
import requests
|
||||||
|
|
||||||
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
|
|
||||||
|
|
||||||
class TencentTranslator(BaseTranslator):
|
class TencentTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -59,7 +65,7 @@ class TencentTranslator(BaseTranslator):
|
||||||
return result['Response']['TargetTextList']
|
return result['Response']['TargetTextList']
|
||||||
|
|
||||||
|
|
||||||
def sign_tencent(secret_id, secret_key, regin, params, action="TextTranslate", version = "2018-03-21"):
|
def sign_tencent(secret_id, secret_key, regin, params, action="TextTranslate", version="2018-03-21"):
|
||||||
host = 'tmt.tencentcloudapi.com'
|
host = 'tmt.tencentcloudapi.com'
|
||||||
endpoint = "https://" + host
|
endpoint = "https://" + host
|
||||||
|
|
||||||
|
|
@ -78,25 +84,25 @@ def sign_tencent(secret_id, secret_key, regin, params, action="TextTranslate", v
|
||||||
signed_headers = "content-type;host;x-tc-action"
|
signed_headers = "content-type;host;x-tc-action"
|
||||||
hashed_request_payload = hashlib.sha256(payload.encode("utf-8")).hexdigest()
|
hashed_request_payload = hashlib.sha256(payload.encode("utf-8")).hexdigest()
|
||||||
canonical_request = (http_request_method + "\n" +
|
canonical_request = (http_request_method + "\n" +
|
||||||
canonical_uri + "\n" +
|
canonical_uri + "\n" +
|
||||||
canonical_querystring + "\n" +
|
canonical_querystring + "\n" +
|
||||||
canonical_headers + "\n" +
|
canonical_headers + "\n" +
|
||||||
signed_headers + "\n" +
|
signed_headers + "\n" +
|
||||||
hashed_request_payload)
|
hashed_request_payload)
|
||||||
|
|
||||||
# ************* 步骤 2:拼接待签名字符串 *************
|
# ************* 步骤 2:拼接待签名字符串 *************
|
||||||
credential_scope = date + "/" + service + "/" + "tc3_request"
|
credential_scope = date + "/" + service + "/" + "tc3_request"
|
||||||
hashed_canonical_request = hashlib.sha256(canonical_request.encode("utf-8")).hexdigest()
|
hashed_canonical_request = hashlib.sha256(canonical_request.encode("utf-8")).hexdigest()
|
||||||
string_to_sign = (algorithm + "\n" +
|
string_to_sign = (algorithm + "\n" +
|
||||||
str(timestamp) + "\n" +
|
str(timestamp) + "\n" +
|
||||||
credential_scope + "\n" +
|
credential_scope + "\n" +
|
||||||
hashed_canonical_request)
|
hashed_canonical_request)
|
||||||
|
|
||||||
|
|
||||||
# ************* 步骤 3:计算签名 *************
|
# ************* 步骤 3:计算签名 *************
|
||||||
# 计算签名摘要函数
|
# 计算签名摘要函数
|
||||||
def sign(key, msg):
|
def sign(key, msg):
|
||||||
return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()
|
return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()
|
||||||
|
|
||||||
secret_date = sign(("TC3" + secret_key).encode("utf-8"), date)
|
secret_date = sign(("TC3" + secret_key).encode("utf-8"), date)
|
||||||
secret_service = sign(secret_date, service)
|
secret_service = sign(secret_date, service)
|
||||||
secret_signing = sign(secret_service, "tc3_request")
|
secret_signing = sign(secret_service, "tc3_request")
|
||||||
|
|
@ -104,9 +110,9 @@ def sign_tencent(secret_id, secret_key, regin, params, action="TextTranslate", v
|
||||||
|
|
||||||
# ************* 步骤 4:拼接 Authorization *************
|
# ************* 步骤 4:拼接 Authorization *************
|
||||||
authorization = (algorithm + " " +
|
authorization = (algorithm + " " +
|
||||||
"Credential=" + secret_id + "/" + credential_scope + ", " +
|
"Credential=" + secret_id + "/" + credential_scope + ", " +
|
||||||
"SignedHeaders=" + signed_headers + ", " +
|
"SignedHeaders=" + signed_headers + ", " +
|
||||||
"Signature=" + signature)
|
"Signature=" + signature)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"url": endpoint,
|
"url": endpoint,
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
class TranslatorsTranslator(BaseTranslator):
|
class TranslatorsTranslator(BaseTranslator):
|
||||||
translator = None
|
translator = None
|
||||||
|
|
||||||
|
|
@ -15,4 +16,5 @@ class TranslatorsTranslator(BaseTranslator):
|
||||||
tss.server_region = region
|
tss.server_region = region
|
||||||
tss._bing.server_region = region
|
tss._bing.server_region = region
|
||||||
tss._google.server_region = region
|
tss._google.server_region = region
|
||||||
return translate_text(text, from_language=self.from_lang, to_language=self.to_lang, translator=self.translator, timeout=30)
|
return translate_text(text, from_language=self.from_lang, to_language=self.to_lang, translator=self.translator,
|
||||||
|
timeout=30)
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import requests
|
import requests
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class YandexTranslator(BaseTranslator):
|
class YandexTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -32,9 +33,9 @@ class YandexTranslator(BaseTranslator):
|
||||||
"Authorization": f"Api-Key {api_key}"
|
"Authorization": f"Api-Key {api_key}"
|
||||||
}
|
}
|
||||||
response = requests.post('https://translate.api.cloud.yandex.net/translate/v2/translate',
|
response = requests.post('https://translate.api.cloud.yandex.net/translate/v2/translate',
|
||||||
json = body,
|
json=body,
|
||||||
headers = headers
|
headers=headers
|
||||||
)
|
)
|
||||||
result = response.json()
|
result = response.json()
|
||||||
if not result:
|
if not result:
|
||||||
raise Exception(get_lang('no_response_from', {'0': 'Yandex'}))
|
raise Exception(get_lang('no_response_from', {'0': 'Yandex'}))
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
from scripts.translator.base_tanslator import BaseTranslator
|
from scripts.physton_prompt.translator.base_tanslator import BaseTranslator
|
||||||
import requests
|
import requests
|
||||||
import hashlib
|
import hashlib
|
||||||
import random
|
import random
|
||||||
import time
|
import time
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
|
|
||||||
class YoudaoTranslator(BaseTranslator):
|
class YoudaoTranslator(BaseTranslator):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
@ -31,9 +32,10 @@ class YoudaoTranslator(BaseTranslator):
|
||||||
sign_text = "".join(text)
|
sign_text = "".join(text)
|
||||||
else:
|
else:
|
||||||
sign_text = text
|
sign_text = text
|
||||||
if(len(sign_text) <= 20):
|
input = ''
|
||||||
|
if len(sign_text) <= 20:
|
||||||
input = sign_text
|
input = sign_text
|
||||||
elif(len(sign_text) > 20):
|
elif len(sign_text) > 20:
|
||||||
input = sign_text[:10] + str(len(sign_text)) + sign_text[-10:]
|
input = sign_text[:10] + str(len(sign_text)) + sign_text[-10:]
|
||||||
sign = app_id + input + str(salt) + curtime + app_secret
|
sign = app_id + input + str(salt) + curtime + app_secret
|
||||||
sign = hashlib.sha256(sign.encode()).hexdigest()
|
sign = hashlib.sha256(sign.encode()).hexdigest()
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1 +0,0 @@
|
||||||
f1925daddc3097ff0dae4b577a8e100bc68fdf77
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1 +0,0 @@
|
||||||
9a31b0506a52effe9cc6312a29f7a494d816eb00
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
||||||
7088e9ddf5c4a87b2e5c028f215d500c6f3b7ee1
|
|
||||||
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
||||||
|
|
||||||
from scripts.get_lang import get_lang
|
from scripts.physton_prompt.get_lang import get_lang
|
||||||
|
|
||||||
print(get_lang('is_required', {'0': '11'}))
|
print(get_lang('is_required', {'0': '11'}))
|
||||||
print(get_lang('is_required1'))
|
print(get_lang('is_required1'))
|
||||||
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
||||||
|
|
||||||
from scripts.get_version import get_git_commit_version, get_git_remote_versions, get_latest_version
|
from scripts.physton_prompt.get_version import get_git_commit_version, get_git_remote_versions, get_latest_version
|
||||||
|
|
||||||
print(get_git_remote_versions())
|
print(get_git_remote_versions())
|
||||||
print(get_git_commit_version())
|
print(get_git_commit_version())
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,13 @@ import sys
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
from scripts.translate import translate
|
from scripts.physton_prompt.translate import translate
|
||||||
from scripts.get_i18n import get_i18n
|
from scripts.physton_prompt.get_i18n import get_i18n
|
||||||
from scripts.get_translate_apis import get_translate_apis
|
from scripts.physton_prompt.get_translate_apis import get_translate_apis
|
||||||
from scripts.storage import storage
|
from scripts.physton_prompt.storage import Storage
|
||||||
|
|
||||||
i18n = get_i18n()
|
i18n = get_i18n()
|
||||||
st = storage()
|
st = Storage()
|
||||||
text = 'Hello World, I am a boy'
|
text = 'Hello World, I am a boy'
|
||||||
|
|
||||||
tested_file = os.path.join(os.path.dirname(__file__), 'tested.json')
|
tested_file = os.path.join(os.path.dirname(__file__), 'tested.json')
|
||||||
|
|
|
||||||
|
|
@ -5,19 +5,19 @@ sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
load_dotenv(os.path.join(os.path.dirname(__file__), '.env'))
|
load_dotenv(os.path.join(os.path.dirname(__file__), '.env'))
|
||||||
|
|
||||||
from scripts.translator.microsoft_translator import MicrosoftTranslator
|
from scripts.physton_prompt.translator.microsoft_translator import MicrosoftTranslator
|
||||||
from scripts.translator.google_tanslator import GoogleTranslator
|
from scripts.physton_prompt.translator.google_tanslator import GoogleTranslator
|
||||||
from scripts.translator.openai_translator import OpenaiTranslator
|
from scripts.physton_prompt.translator.openai_translator import OpenaiTranslator
|
||||||
from scripts.translator.amazon_translator import AmazonTranslator
|
from scripts.physton_prompt.translator.amazon_translator import AmazonTranslator
|
||||||
from scripts.translator.deepl_translator import DeeplTranslator
|
from scripts.physton_prompt.translator.deepl_translator import DeeplTranslator
|
||||||
from scripts.translator.baidu_translator import BaiduTranslator
|
from scripts.physton_prompt.translator.baidu_translator import BaiduTranslator
|
||||||
from scripts.translator.youdao_translator import YoudaoTranslator
|
from scripts.physton_prompt.translator.youdao_translator import YoudaoTranslator
|
||||||
from scripts.translator.alibaba_translator import AlibabaTranslator
|
from scripts.physton_prompt.translator.alibaba_translator import AlibabaTranslator
|
||||||
from scripts.translator.tencent_translator import TencentTranslator
|
from scripts.physton_prompt.translator.tencent_translator import TencentTranslator
|
||||||
from scripts.translator.translators_translator import TranslatorsTranslator
|
from scripts.physton_prompt.translator.translators_translator import TranslatorsTranslator
|
||||||
from scripts.translator.yandex_translator import YandexTranslator
|
from scripts.physton_prompt.translator.yandex_translator import YandexTranslator
|
||||||
|
|
||||||
from scripts.translate import translate
|
from scripts.physton_prompt.translate import translate
|
||||||
|
|
||||||
text = 'Hello World'
|
text = 'Hello World'
|
||||||
texts = [
|
texts = [
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1 +0,0 @@
|
||||||
ec7f9fdd27e99564d844eace9d67a0349c65fe33
|
|
||||||
Loading…
Reference in New Issue