mirror of
https://github.com/HIllya51/LunaTranslator.git
synced 2025-01-14 08:23:55 +08:00
fix
This commit is contained in:
parent
e463907f0c
commit
ab8cf84a65
@ -269,12 +269,12 @@ class MAINUI:
|
||||
return
|
||||
|
||||
def maybeneedtranslateshowhidetranslate(self):
|
||||
if not self.thishastranslated:
|
||||
self.textgetmethod(self.currenttext, is_auto_run=False)
|
||||
if globalconfig["showfanyi"]:
|
||||
if not self.thishastranslated:
|
||||
self.textgetmethod(self.currenttext, is_auto_run=False)
|
||||
self.translation_ui.translate_text.textbrowser.showhidetranslate(True)
|
||||
else:
|
||||
self.translation_ui.translate_text.textbrowser.showhidetranslate(
|
||||
globalconfig["showfanyi"]
|
||||
)
|
||||
self.translation_ui.translate_text.textbrowser.showhidetranslate(False)
|
||||
|
||||
def textgetmethod(
|
||||
self,
|
||||
|
@ -50,8 +50,8 @@ def registrhotkeys(self):
|
||||
"_2": gobject.baseobject.translation_ui.changeTranslateMode,
|
||||
"_3": self.showsignal.emit,
|
||||
"_4": lambda: winsharedutils.clipboard_set(gobject.baseobject.currenttext),
|
||||
"_5": gobject.baseobject.translation_ui.changeshowhideraw,
|
||||
"_51": gobject.baseobject.translation_ui.changeshowhidetrans,
|
||||
"_5": gobject.baseobject.translation_ui.changeshowhiderawsig.emit,
|
||||
"_51": gobject.baseobject.translation_ui.changeshowhidetranssig.emit,
|
||||
"_6": lambda: gobject.baseobject.transhis.showsignal.emit(),
|
||||
"_7": lambda: gobject.baseobject.readcurrent(force=True),
|
||||
"_7_1": lambda: gobject.baseobject.audioplayer.stop(),
|
||||
|
@ -252,6 +252,8 @@ class TranslatorWindow(resizableframeless):
|
||||
move_signal = pyqtSignal(QPoint)
|
||||
closesignal = pyqtSignal()
|
||||
hotkeyuse_selectprocsignal = pyqtSignal()
|
||||
changeshowhiderawsig=pyqtSignal()
|
||||
changeshowhidetranssig=pyqtSignal()
|
||||
|
||||
@threader
|
||||
def tracewindowposthread(self):
|
||||
@ -877,6 +879,8 @@ class TranslatorWindow(resizableframeless):
|
||||
self.resizesignal.connect(self.resize)
|
||||
self.move_signal.connect(self.move)
|
||||
self.closesignal.connect(self.close)
|
||||
self.changeshowhiderawsig.connect(self.changeshowhideraw)
|
||||
self.changeshowhidetranssig.connect(self.changeshowhidetrans)
|
||||
|
||||
def __init__(self):
|
||||
|
||||
|
@ -200,7 +200,7 @@ class TextBrowser(QWidget, dataget):
|
||||
self.textbrowser.setTextCursor(c)
|
||||
|
||||
def showhidetranslate(self, show):
|
||||
self.showhideorigin(show)
|
||||
self.parent().refreshcontent()
|
||||
|
||||
def showhideorigin(self, show):
|
||||
self.parent().refreshcontent()
|
||||
|
@ -84,19 +84,11 @@ class TS(basetrans):
|
||||
|
||||
def translate(self, query):
|
||||
acss = self.checkchange()
|
||||
self.contextnum = int(self.config["context_num"])
|
||||
query = self._gptlike_createquery(
|
||||
query, "use_user_user_prompt", "user_user_prompt"
|
||||
)
|
||||
message = []
|
||||
for _i in range(min(len(self.context) // 2, self.contextnum)):
|
||||
i = (
|
||||
len(self.context) // 2
|
||||
- min(len(self.context) // 2, self.contextnum)
|
||||
+ _i
|
||||
)
|
||||
message.append(self.context[i * 2])
|
||||
message.append(self.context[i * 2 + 1])
|
||||
self._gpt_common_parse_context(message, self.context, self.config["context_num"])
|
||||
message.append({"role": "user", "content": query})
|
||||
|
||||
usingstream = self.config["usingstream"]
|
||||
|
@ -288,6 +288,13 @@ class basetrans(commonbase):
|
||||
)
|
||||
return user_prompt
|
||||
|
||||
def _gpt_common_parse_context(self, messages: list, context: list, num: int):
|
||||
|
||||
for _i in range(min(len(context) // 2, num)):
|
||||
i = len(context) // 2 - min(len(context) // 2, num) + _i
|
||||
messages.append(context[i * 2])
|
||||
messages.append(context[i * 2 + 1])
|
||||
|
||||
def reinitandtrans(self, contentsolved, is_auto_run):
|
||||
if self.needreinit or self.initok == False:
|
||||
self.needreinit = False
|
||||
|
@ -17,7 +17,6 @@ class TS(basetrans):
|
||||
|
||||
def translate(self, query):
|
||||
self.checkempty(["API_KEY", "model"])
|
||||
self.contextnum = int(self.config["附带上下文个数"])
|
||||
query = self._gptlike_createquery(
|
||||
query, "use_user_user_prompt", "user_user_prompt"
|
||||
)
|
||||
@ -25,14 +24,7 @@ class TS(basetrans):
|
||||
temperature = self.config["Temperature"]
|
||||
|
||||
message = []
|
||||
for _i in range(min(len(self.context) // 2, self.contextnum)):
|
||||
i = (
|
||||
len(self.context) // 2
|
||||
- min(len(self.context) // 2, self.contextnum)
|
||||
+ _i
|
||||
)
|
||||
message.append(self.context[i * 2])
|
||||
message.append(self.context[i * 2 + 1])
|
||||
self._gpt_common_parse_context(message, self.context, self.config["附带上下文个数"])
|
||||
message.append({"role": "user", "content": query})
|
||||
prefill = self._gptlike_create_prefill("prefill_use", "prefill")
|
||||
if prefill:
|
||||
|
@ -52,7 +52,6 @@ class TS(basetrans):
|
||||
|
||||
def translate(self, query):
|
||||
self.checkempty(["SECRET_KEY", "model"])
|
||||
self.contextnum = int(self.config["附带上下文个数"])
|
||||
|
||||
query = self._gptlike_createquery(
|
||||
query, "use_user_user_prompt", "user_user_prompt"
|
||||
@ -67,14 +66,7 @@ class TS(basetrans):
|
||||
"message": "ok",
|
||||
}
|
||||
)
|
||||
for _i in range(min(len(self.context) // 2, self.contextnum)):
|
||||
i = (
|
||||
len(self.context) // 2
|
||||
- min(len(self.context) // 2, self.contextnum)
|
||||
+ _i
|
||||
)
|
||||
message.append(self.context[i * 2])
|
||||
message.append(self.context[i * 2 + 1])
|
||||
self._gpt_common_parse_context(message, self.context, self.config["附带上下文个数"])
|
||||
prefill = self._gptlike_create_prefill("prefill_use", "prefill")
|
||||
if prefill:
|
||||
message.append({"role": "CHATBOT", "message": prefill})
|
||||
|
@ -17,7 +17,6 @@ class TS(basetrans):
|
||||
|
||||
def translate(self, query):
|
||||
self.checkempty(["SECRET_KEY", "model"])
|
||||
self.contextnum = int(self.config["context"])
|
||||
|
||||
gen_config = {
|
||||
"generationConfig": {
|
||||
@ -52,14 +51,7 @@ class TS(basetrans):
|
||||
sysprompt = self._gptlike_createsys("use_custom_prompt", "custom_prompt")
|
||||
sys_message = {"systemInstruction": {"parts": {"text": sysprompt}}}
|
||||
message = []
|
||||
for _i in range(min(len(self.context) // 2, self.contextnum)):
|
||||
i = (
|
||||
len(self.context) // 2
|
||||
- min(len(self.context) // 2, self.contextnum)
|
||||
+ _i
|
||||
)
|
||||
message.append(self.context[i * 2])
|
||||
message.append(self.context[i * 2 + 1])
|
||||
self._gpt_common_parse_context(message, self.context, self.config["context"])
|
||||
|
||||
message.append({"role": "user", "parts": [{"text": query}]})
|
||||
prefill = self._gptlike_create_prefill("prefill_use", "prefill")
|
||||
|
@ -111,21 +111,12 @@ class gptcommon(basetrans):
|
||||
self.context.append({"role": "assistant", "content": message})
|
||||
|
||||
def translate(self, query):
|
||||
self.contextnum = int(self.config["附带上下文个数"])
|
||||
query = self._gptlike_createquery(
|
||||
query, "use_user_user_prompt", "user_user_prompt"
|
||||
)
|
||||
sysprompt = self._gptlike_createsys("使用自定义promt", "自定义promt")
|
||||
message = [{"role": "system", "content": sysprompt}]
|
||||
|
||||
for _i in range(min(len(self.context) // 2, self.contextnum)):
|
||||
i = (
|
||||
len(self.context) // 2
|
||||
- min(len(self.context) // 2, self.contextnum)
|
||||
+ _i
|
||||
)
|
||||
message.append(self.context[i * 2])
|
||||
message.append(self.context[i * 2 + 1])
|
||||
self._gpt_common_parse_context(message, self.context, self.config["附带上下文个数"])
|
||||
message.append({"role": "user", "content": query})
|
||||
prefill = self._gptlike_create_prefill("prefill_use", "prefill")
|
||||
if prefill:
|
||||
|
@ -14,25 +14,9 @@ class TS(basetrans):
|
||||
|
||||
def __init__(self, typename):
|
||||
super().__init__(typename)
|
||||
self.history = {"ja": [], "zh": []}
|
||||
self.context = []
|
||||
self.session = requests.Session()
|
||||
|
||||
def sliding_window(self, text_ja, text_zh):
|
||||
if text_ja == "" or text_zh == "":
|
||||
return
|
||||
self.history["ja"].append(text_ja)
|
||||
self.history["zh"].append(text_zh)
|
||||
if len(self.history["ja"]) > int(self.config["append_context_num"]) + 1:
|
||||
del self.history["ja"][0]
|
||||
del self.history["zh"][0]
|
||||
|
||||
def get_history(self, key):
|
||||
prompt = ""
|
||||
for q in self.history[key]:
|
||||
prompt += q + "\n"
|
||||
prompt = prompt.strip()
|
||||
return prompt
|
||||
|
||||
def get_client(self, api_url):
|
||||
if api_url[-4:] == "/v1/":
|
||||
api_url = api_url[:-1]
|
||||
@ -72,9 +56,17 @@ class TS(basetrans):
|
||||
gpt_dict_raw_text = "\n".join(gpt_dict_text_list)
|
||||
return gpt_dict_raw_text
|
||||
|
||||
def make_messages(
|
||||
self, query, history_ja=None, history_zh=None, gpt_dict=None, **kwargs
|
||||
):
|
||||
def appendcontext(self, message, contextnum):
|
||||
|
||||
for _i in range(min(len(self.context) // 2, contextnum)):
|
||||
i = len(self.context) // 2 - min(len(self.context) // 2, contextnum) + _i
|
||||
message.append(self.context[i * 2])
|
||||
message.append(self.context[i * 2 + 1])
|
||||
|
||||
def make_messages(self, query, gpt_dict=None):
|
||||
contextnum = (
|
||||
self.config["append_context_num"] if self.config["use_context"] else 0
|
||||
)
|
||||
if self.config["prompt_version"] == 0:
|
||||
messages = [
|
||||
{
|
||||
@ -82,16 +74,7 @@ class TS(basetrans):
|
||||
"content": "你是一个轻小说翻译模型,可以流畅通顺地以日本轻小说的风格将日文翻译成简体中文,并联系上下文正确使用人称代词,不擅自添加原文中没有的代词。",
|
||||
}
|
||||
]
|
||||
if history_ja:
|
||||
messages.append(
|
||||
{
|
||||
"role": "user",
|
||||
"content": f"将下面的日文文本翻译成中文:{history_ja}",
|
||||
}
|
||||
)
|
||||
if history_zh:
|
||||
messages.append({"role": "assistant", "content": history_zh})
|
||||
|
||||
self._gpt_common_parse_context(messages, self.context, contextnum)
|
||||
messages.append(
|
||||
{"role": "user", "content": f"将下面的日文文本翻译成中文:{query}"}
|
||||
)
|
||||
@ -102,36 +85,41 @@ class TS(basetrans):
|
||||
"content": "你是一个轻小说翻译模型,可以流畅通顺地使用给定的术语表以日本轻小说的风格将日文翻译成简体中文,并联系上下文正确使用人称代词,注意不要混淆使役态和被动态的主语和宾语,不要擅自添加原文中没有的代词,也不要擅自增加或减少换行。",
|
||||
}
|
||||
]
|
||||
if history_ja:
|
||||
messages.append(
|
||||
{
|
||||
"role": "user",
|
||||
"content": f"将下面的日文文本翻译成中文:{history_ja}",
|
||||
}
|
||||
)
|
||||
if history_zh:
|
||||
messages.append({"role": "assistant", "content": history_zh})
|
||||
|
||||
content = ""
|
||||
|
||||
self._gpt_common_parse_context(messages, self.context, contextnum)
|
||||
gpt_dict_raw_text = self.make_gpt_dict_text(gpt_dict)
|
||||
content += "根据以下术语表(可以为空):\n" + gpt_dict_raw_text + "\n\n"
|
||||
|
||||
content += (
|
||||
"将下面的日文文本根据上述术语表的对应关系和备注翻译成中文:" + query
|
||||
content = (
|
||||
"根据以下术语表(可以为空):\n"
|
||||
+ gpt_dict_raw_text
|
||||
+ "\n\n"
|
||||
+ "将下面的日文文本根据上述术语表的对应关系和备注翻译成中文:"
|
||||
+ query
|
||||
)
|
||||
messages.append({"role": "user", "content": content})
|
||||
elif self.config["prompt_version"] == 2:
|
||||
messages = [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "你是一个轻小说翻译模型,可以流畅通顺地以日本轻小说的风格将日文翻译成简体中文,并联系上下文正确使用人称代词,不擅自添加原文中没有的代词。",
|
||||
}
|
||||
]
|
||||
self._gpt_common_parse_context(messages, self.context, contextnum)
|
||||
gpt_dict_raw_text = self.make_gpt_dict_text(gpt_dict)
|
||||
content = (
|
||||
"根据以下术语表(可以为空):\n"
|
||||
+ gpt_dict_raw_text
|
||||
+ "\n"
|
||||
+ "将下面的日文文本根据对应关系和备注翻译成中文:"
|
||||
+ query
|
||||
)
|
||||
# print(content)
|
||||
messages.append({"role": "user", "content": content})
|
||||
# print(messages)
|
||||
return messages
|
||||
|
||||
def send_request(self, query, is_test=False, **kwargs):
|
||||
def send_request(self, messages, is_test=False, **kwargs):
|
||||
extra_query = {
|
||||
"do_sample": bool(self.config["do_sample"]),
|
||||
"num_beams": int(self.config["num_beams"]),
|
||||
"repetition_penalty": float(self.config["repetition_penalty"]),
|
||||
}
|
||||
messages = self.make_messages(query, **kwargs)
|
||||
|
||||
# OpenAI
|
||||
# output = self.client.chat.completions.create(
|
||||
@ -158,13 +146,12 @@ class TS(basetrans):
|
||||
except:
|
||||
raise Exception(output.text)
|
||||
|
||||
def send_request_stream(self, query, is_test=False, **kwargs):
|
||||
def send_request_stream(self, messages, is_test=False, **kwargs):
|
||||
extra_query = {
|
||||
"do_sample": bool(self.config["do_sample"]),
|
||||
"num_beams": int(self.config["num_beams"]),
|
||||
"repetition_penalty": float(self.config["repetition_penalty"]),
|
||||
}
|
||||
messages = self.make_messages(query, **kwargs)
|
||||
|
||||
# OpenAI
|
||||
# output = self.client.chat.completions.create(
|
||||
@ -221,161 +208,71 @@ class TS(basetrans):
|
||||
self.checkempty(["API接口地址"])
|
||||
self.get_client(self.config["API接口地址"])
|
||||
frequency_penalty = float(self.config["frequency_penalty"])
|
||||
if not bool(self.config["use_context"]):
|
||||
if bool(self.config["流式输出"]) == True:
|
||||
output = self.send_request_stream(query, gpt_dict=gpt_dict)
|
||||
completion_tokens = 0
|
||||
output_text = ""
|
||||
for o in output:
|
||||
if o["choices"][0]["finish_reason"] == None:
|
||||
text_partial = o["choices"][0]["delta"].get("content", "")
|
||||
output_text += text_partial
|
||||
yield text_partial
|
||||
completion_tokens += 1
|
||||
else:
|
||||
finish_reason = o["choices"][0]["finish_reason"]
|
||||
else:
|
||||
output = self.send_request(query, gpt_dict=gpt_dict)
|
||||
for o in output:
|
||||
completion_tokens = o["usage"]["completion_tokens"]
|
||||
output_text = o["choices"][0]["message"]["content"]
|
||||
yield output_text
|
||||
|
||||
if bool(self.config["fix_degeneration"]):
|
||||
cnt = 0
|
||||
# print(completion_tokens)
|
||||
while completion_tokens == int(self.config["max_new_token"]):
|
||||
# detect degeneration, fixing
|
||||
frequency_penalty += 0.1
|
||||
yield "\0"
|
||||
yield "[检测到退化,重试中]"
|
||||
# print("------------------清零------------------")
|
||||
if bool(self.config["流式输出"]) == True:
|
||||
output = self.send_request_stream(
|
||||
query,
|
||||
frequency_penalty=frequency_penalty,
|
||||
gpt_dict=gpt_dict,
|
||||
)
|
||||
completion_tokens = 0
|
||||
output_text = ""
|
||||
yield "\0"
|
||||
for o in output:
|
||||
if o["choices"][0]["finish_reason"] == None:
|
||||
text_partial = o["choices"][0]["delta"]["content"]
|
||||
output_text += text_partial
|
||||
yield text_partial
|
||||
completion_tokens += 1
|
||||
else:
|
||||
finish_reason = o["choices"][0]["finish_reason"]
|
||||
else:
|
||||
output = self.send_request(
|
||||
query,
|
||||
frequency_penalty=frequency_penalty,
|
||||
gpt_dict=gpt_dict,
|
||||
)
|
||||
yield "\0"
|
||||
for o in output:
|
||||
completion_tokens = o["usage"]["completion_tokens"]
|
||||
output_text = o["choices"][0]["message"]["content"]
|
||||
yield output_text
|
||||
|
||||
# output = self.send_request(query, frequency_penalty=frequency_penalty)
|
||||
# completion_tokens = output["usage"]["completion_tokens"]
|
||||
# output_text = output["choices"][0]["message"]["content"]
|
||||
cnt += 1
|
||||
if cnt == 2:
|
||||
break
|
||||
messages = self.make_messages(query)
|
||||
if bool(self.config["流式输出"]) == True:
|
||||
output = self.send_request_stream(messages, gpt_dict=gpt_dict)
|
||||
completion_tokens = 0
|
||||
output_text = ""
|
||||
for o in output:
|
||||
if o["choices"][0]["finish_reason"] == None:
|
||||
text_partial = o["choices"][0]["delta"].get("content", "")
|
||||
output_text += text_partial
|
||||
yield text_partial
|
||||
completion_tokens += 1
|
||||
else:
|
||||
finish_reason = o["choices"][0]["finish_reason"]
|
||||
else:
|
||||
# 实验性功能,测试效果后决定是否加入。
|
||||
# fallback = False
|
||||
# if self.config['启用日文上下文模式']:
|
||||
# history_prompt = self.get_history('ja')
|
||||
# output = self.send_request(history_prompt + "\n" + query)
|
||||
# completion_tokens = output.usage.completion_tokens
|
||||
# output_text = output.choices[0].message.content
|
||||
output = self.send_request(messages, gpt_dict=gpt_dict)
|
||||
for o in output:
|
||||
completion_tokens = o["usage"]["completion_tokens"]
|
||||
output_text = o["choices"][0]["message"]["content"]
|
||||
yield output_text
|
||||
|
||||
# if len(output_text.split("\n")) == len(history_prompt.split("\n")) + 1:
|
||||
# output_text = output_text.split("\n")[-1]
|
||||
# else:
|
||||
# fallback = True
|
||||
# 如果日文上下文模式失败,则fallback到中文上下文模式。
|
||||
# if fallback or not self.config['启用日文上下文模式']:
|
||||
|
||||
history_prompt = self.get_history("zh")
|
||||
# output = self.send_request(query, history_zh=history_prompt)
|
||||
# completion_tokens = output["usage"]["completion_tokens"]
|
||||
# output_text = output["choices"][0]["message"]["content"]
|
||||
|
||||
if bool(self.config["流式输出"]) == True:
|
||||
output = self.send_request_stream(
|
||||
query, history_zh=history_prompt, gpt_dict=gpt_dict
|
||||
)
|
||||
completion_tokens = 0
|
||||
output_text = ""
|
||||
for o in output:
|
||||
if o["choices"][0]["finish_reason"] == None:
|
||||
text_partial = o["choices"][0]["delta"].get("content", "")
|
||||
output_text += text_partial
|
||||
yield text_partial
|
||||
completion_tokens += 1
|
||||
else:
|
||||
finish_reason = o["choices"][0]["finish_reason"]
|
||||
else:
|
||||
output = self.send_request(
|
||||
query, history_zh=history_prompt, gpt_dict=gpt_dict
|
||||
)
|
||||
for o in output:
|
||||
completion_tokens = o["usage"]["completion_tokens"]
|
||||
output_text = o["choices"][0]["message"]["content"]
|
||||
yield output_text
|
||||
|
||||
if bool(self.config["fix_degeneration"]):
|
||||
cnt = 0
|
||||
# print(completion_tokens)
|
||||
while completion_tokens == int(self.config["max_new_token"]):
|
||||
frequency_penalty += 0.1
|
||||
if bool(self.config["fix_degeneration"]):
|
||||
cnt = 0
|
||||
# print(completion_tokens)
|
||||
while completion_tokens == int(self.config["max_new_token"]):
|
||||
frequency_penalty += 0.1
|
||||
yield "\0"
|
||||
yield "[检测到退化,重试中]"
|
||||
# print("------------------清零------------------")
|
||||
if bool(self.config["流式输出"]) == True:
|
||||
output = self.send_request_stream(
|
||||
messages,
|
||||
frequency_penalty=frequency_penalty,
|
||||
gpt_dict=gpt_dict,
|
||||
)
|
||||
completion_tokens = 0
|
||||
output_text = ""
|
||||
yield "\0"
|
||||
yield "[检测到退化,重试中]"
|
||||
# print("------------------清零------------------")
|
||||
if bool(self.config["流式输出"]) == True:
|
||||
output = self.send_request_stream(
|
||||
query,
|
||||
history_zh=history_prompt,
|
||||
frequency_penalty=frequency_penalty,
|
||||
gpt_dict=gpt_dict,
|
||||
)
|
||||
completion_tokens = 0
|
||||
output_text = ""
|
||||
yield "\0"
|
||||
for o in output:
|
||||
if o["choices"][0]["finish_reason"] == None:
|
||||
text_partial = o["choices"][0]["delta"]["content"]
|
||||
output_text += text_partial
|
||||
yield text_partial
|
||||
completion_tokens += 1
|
||||
else:
|
||||
finish_reason = o["choices"][0]["finish_reason"]
|
||||
else:
|
||||
output = self.send_request(
|
||||
query,
|
||||
history_zh=history_prompt,
|
||||
frequency_penalty=frequency_penalty,
|
||||
gpt_dict=gpt_dict,
|
||||
)
|
||||
yield "\0"
|
||||
for o in output:
|
||||
completion_tokens = o["usage"]["completion_tokens"]
|
||||
output_text = o["choices"][0]["message"]["content"]
|
||||
yield output_text
|
||||
for o in output:
|
||||
if o["choices"][0]["finish_reason"] == None:
|
||||
text_partial = o["choices"][0]["delta"]["content"]
|
||||
output_text += text_partial
|
||||
yield text_partial
|
||||
completion_tokens += 1
|
||||
else:
|
||||
finish_reason = o["choices"][0]["finish_reason"]
|
||||
else:
|
||||
output = self.send_request(
|
||||
messages,
|
||||
frequency_penalty=frequency_penalty,
|
||||
gpt_dict=gpt_dict,
|
||||
)
|
||||
yield "\0"
|
||||
for o in output:
|
||||
completion_tokens = o["usage"]["completion_tokens"]
|
||||
output_text = o["choices"][0]["message"]["content"]
|
||||
yield output_text
|
||||
|
||||
# output = self.send_request(query, history_zh=history_prompt, frequency_penalty=frequency_penalty)
|
||||
# completion_tokens = output["usage"]["completion_tokens"]
|
||||
# output_text = output["choices"][0]["message"]["content"]
|
||||
cnt += 1
|
||||
if cnt == 3:
|
||||
output_text = (
|
||||
"Error:模型无法完整输出或退化无法解决,请调大设置中的max_new_token!!!原输出:"
|
||||
+ output_text
|
||||
)
|
||||
break
|
||||
self.sliding_window(query, output_text)
|
||||
cnt += 1
|
||||
if cnt == 3:
|
||||
output_text = (
|
||||
"Error:模型无法完整输出或退化无法解决,请调大设置中的max_new_token!!!原输出:"
|
||||
+ output_text
|
||||
)
|
||||
break
|
||||
|
||||
self.context.append(messages[-1])
|
||||
self.context.append({"role": "assistant", "content": output_text})
|
||||
|
@ -98,21 +98,12 @@ class TS(basetrans):
|
||||
|
||||
def translate(self, query):
|
||||
self.checkempty(["secret_id", "secret_key"])
|
||||
self.contextnum = int(self.config["context_num"])
|
||||
query = self._gptlike_createquery(
|
||||
query, "use_user_user_prompt", "user_user_prompt"
|
||||
)
|
||||
sysprompt = self._gptlike_createsys("use_user_prompt", "user_prompt")
|
||||
message = [{"Role": "system", "Content": sysprompt}]
|
||||
|
||||
for _i in range(min(len(self.context) // 2, self.contextnum)):
|
||||
i = (
|
||||
len(self.context) // 2
|
||||
- min(len(self.context) // 2, self.contextnum)
|
||||
+ _i
|
||||
)
|
||||
message.append(self.context[i * 2])
|
||||
message.append(self.context[i * 2 + 1])
|
||||
self._gpt_common_parse_context(message, self.context, self.config["context_num"])
|
||||
message.append({"Role": "user", "Content": query})
|
||||
usingstream = self.config["usingstream"]
|
||||
json_data = {
|
||||
|
@ -1131,7 +1131,8 @@
|
||||
"type": "combo",
|
||||
"list": [
|
||||
"v0.9",
|
||||
"v0.10pre1(支持gpt词典)"
|
||||
"v0.10pre1_(支持gpt词典)",
|
||||
"v1.0pre1_(支持gpt词典)"
|
||||
]
|
||||
},
|
||||
"API接口地址": {
|
||||
|
@ -545,7 +545,6 @@
|
||||
"收藏": "جمع",
|
||||
"名称": "الإسم",
|
||||
"网址": "عنوان الموقع",
|
||||
"百度OCR": "بايدو التعرف الضوئي على الحروف",
|
||||
"最大缓冲区长度": "أقصى طول المخزن المؤقت",
|
||||
"最大缓存文本长度": "أقصى طول النص مخبأ",
|
||||
"半径": "نصف قطر",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "حذف قائمة",
|
||||
"上移": "رفع",
|
||||
"下移": "نزولا",
|
||||
"百度图片翻译": "بايدو ترجمة الصور",
|
||||
"大": "كبير .",
|
||||
"权限不足,请以管理员权限运行!": "امتيازات غير كافية ، يرجى تشغيل مع امتيازات المسؤول !",
|
||||
"标点": "علامات الترقيم",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "قائمة الأهداف",
|
||||
"使用翻译": "استخدام الترجمة",
|
||||
"prompt格式(需要根据模型版本决定)": "Prompt الشكل ( يجب أن تكون مصممة على أساس نموذج الإصدار )",
|
||||
"v0.10pre1(支持gpt词典)": "v0.10pre1 ( دعم GPT القاموس )",
|
||||
"输出的内容": "المحتوى الناتج",
|
||||
"选取OCR范围时不透明度": "التعتيم عند اختيار مجموعة التعرف الضوئي على الحروف",
|
||||
"设为图标": "تعيين رمز",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "مافريكس",
|
||||
"讯飞": "شون فاي",
|
||||
"百度翻译开放平台": "بايدو ترجمة منصة مفتوحة",
|
||||
"百度智能云": "بايدو سحابة ذكية"
|
||||
"百度智能云": "بايدو سحابة ذكية",
|
||||
"(支持gpt词典)": "( دعم قاموس GPT )"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "收藏",
|
||||
"名称": "名稱",
|
||||
"网址": "網址",
|
||||
"百度OCR": "百度 OCR",
|
||||
"最大缓冲区长度": "最大緩衝區長度",
|
||||
"最大缓存文本长度": "最大快取文字長度",
|
||||
"半径": "半徑",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "刪除清單",
|
||||
"上移": "上移",
|
||||
"下移": "下移",
|
||||
"百度图片翻译": "百度圖片翻譯",
|
||||
"大": "大",
|
||||
"权限不足,请以管理员权限运行!": "權限不足,請以管理員身分執行!",
|
||||
"标点": "標點",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "目標清單",
|
||||
"使用翻译": "使用翻譯",
|
||||
"prompt格式(需要根据模型版本决定)": "prompt 格式(需要根據模型版本決定)",
|
||||
"v0.10pre1(支持gpt词典)": "v0.10pre1(支援 gpt 詞典)",
|
||||
"输出的内容": "輸出的內容",
|
||||
"选取OCR范围时不透明度": "選取OCR範圍時不透明度",
|
||||
"设为图标": "設為圖標",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "小牛",
|
||||
"讯飞": "訊飛",
|
||||
"百度翻译开放平台": "百度翻譯開放平臺",
|
||||
"百度智能云": "百度智慧雲"
|
||||
"百度智能云": "百度智慧雲",
|
||||
"(支持gpt词典)": "(支持gpt詞典)"
|
||||
}
|
@ -555,7 +555,6 @@
|
||||
"名称": "jméno",
|
||||
"网址": "internetové stránky",
|
||||
"可选取的": "Volitelné možnosti",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Maximální délka vyrovnávací paměti",
|
||||
"最大缓存文本长度": "Maximální délka textu uloženého do mezipaměti",
|
||||
"半径": "poloměr",
|
||||
@ -598,7 +597,6 @@
|
||||
"删除列表": "Smazat seznam",
|
||||
"上移": "Pohyb nahoru",
|
||||
"下移": "Přesunout dolů",
|
||||
"百度图片翻译": "Překlad obrázků Baidu",
|
||||
"大": "velký",
|
||||
"权限不足,请以管理员权限运行!": "Nedostatečná oprávnění, prosím spusťte s oprávněním správce!",
|
||||
"标点": "interpunkce",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Seznam cílů",
|
||||
"使用翻译": "Použití překladu",
|
||||
"prompt格式(需要根据模型版本决定)": "Formát výzvy (v závislosti na verzi modelu)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10 pre1 (podporuje GPT slovník)",
|
||||
"输出的内容": "Výstupní obsah",
|
||||
"选取OCR范围时不透明度": "Krytí při výběru rozsahu OCR",
|
||||
"设为图标": "Nastavit jako ikona",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "tele",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Baidu Translation Open Platform",
|
||||
"百度智能云": "Cloud AI Baidu"
|
||||
"百度智能云": "Cloud AI Baidu",
|
||||
"(支持gpt词典)": "(Podporuje GPT slovník)"
|
||||
}
|
@ -555,7 +555,6 @@
|
||||
"名称": "Name",
|
||||
"网址": "Website",
|
||||
"可选取的": "Auswählbare Optionen",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Maximale Pufferlänge",
|
||||
"最大缓存文本长度": "Maximale Textlänge im Cache",
|
||||
"半径": "Radius",
|
||||
@ -598,7 +597,6 @@
|
||||
"删除列表": "Liste löschen",
|
||||
"上移": "Nach oben",
|
||||
"下移": "Nach unten bewegen",
|
||||
"百度图片翻译": "Baidu Bildübersetzung",
|
||||
"大": "groß",
|
||||
"权限不足,请以管理员权限运行!": "Unzureichende Berechtigungen, bitte mit Administratorrechten ausführen!",
|
||||
"标点": "Zeichensetzung",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Zielliste",
|
||||
"使用翻译": "Verwendung der Übersetzung",
|
||||
"prompt格式(需要根据模型版本决定)": "Aufforderungsformat (abhängig von der Modellversion)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10 pre1 (unterstützt GPT Wörterbuch)",
|
||||
"输出的内容": "Ausgabeinhalt",
|
||||
"选取OCR范围时不透明度": "Deckkraft bei Auswahl des OCR-Bereichs",
|
||||
"设为图标": "Als Symbol festlegen",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Kalb",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Baidu Translation Open Platform",
|
||||
"百度智能云": "Baidu AI Cloud"
|
||||
"百度智能云": "Baidu AI Cloud",
|
||||
"(支持gpt词典)": "(Unterstützt GPT Wörterbuch)"
|
||||
}
|
@ -544,7 +544,6 @@
|
||||
"收藏": "Favourites",
|
||||
"名称": "Name",
|
||||
"网址": "URL",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Maximum Buffer Length",
|
||||
"最大缓存文本长度": "Maximum Cached Text Length",
|
||||
"半径": "Radius",
|
||||
@ -587,7 +586,6 @@
|
||||
"删除列表": "Delete List",
|
||||
"上移": "Move Up",
|
||||
"下移": "Move Down",
|
||||
"百度图片翻译": "Baidu Image Translation",
|
||||
"大": "Large",
|
||||
"权限不足,请以管理员权限运行!": "Insufficient Permissions, Please Run as Administrator!",
|
||||
"标点": "Punctuation",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Target List",
|
||||
"使用翻译": "Using translation",
|
||||
"prompt格式(需要根据模型版本决定)": "Prompt format (depending on the model version)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10 pre1 (supports GPT dictionary)",
|
||||
"输出的内容": "Output content",
|
||||
"选取OCR范围时不透明度": "Opacity when selecting OCR range",
|
||||
"设为图标": "Set as icon",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Calf",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Baidu Translation Open Platform",
|
||||
"百度智能云": "Baidu AI Cloud"
|
||||
"百度智能云": "Baidu AI Cloud",
|
||||
"(支持gpt词典)": "(Supports GPT dictionary)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "Colección",
|
||||
"名称": "Nombre",
|
||||
"网址": "Sitio web",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Longitud máxima de la zona de amortiguación",
|
||||
"最大缓存文本长度": "Longitud máxima del texto en caché",
|
||||
"半径": "Radio",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Eliminar lista",
|
||||
"上移": "Subir",
|
||||
"下移": "Bajar",
|
||||
"百度图片翻译": "Traducción de imágenes de baidu",
|
||||
"大": "Grande",
|
||||
"权限不足,请以管理员权限运行!": "¡Permisos insuficientes, ¡ por favor, ejecute con permisos de administrador!",
|
||||
"标点": "Puntuación",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Lista de objetivos",
|
||||
"使用翻译": "Uso de traductores",
|
||||
"prompt格式(需要根据模型版本决定)": "Formato prompt (debe decidirse en función de la versión del modelo)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10pre1 (admite diccionario gpt)",
|
||||
"输出的内容": "Contenido exportado",
|
||||
"选取OCR范围时不透明度": "Opacidad al seleccionar el rango OCR",
|
||||
"设为图标": "Establecer como icono",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Ternera",
|
||||
"讯飞": "Xunfei",
|
||||
"百度翻译开放平台": "Baidu Translation Open Platform",
|
||||
"百度智能云": "Baidu SMART Cloud"
|
||||
"百度智能云": "Baidu SMART Cloud",
|
||||
"(支持gpt词典)": "(admite diccionarios gpt)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "Collections",
|
||||
"名称": "Le nom",
|
||||
"网址": "Adresse Web",
|
||||
"百度OCR": "Baidu ocr",
|
||||
"最大缓冲区长度": "Longueur maximale du tampon",
|
||||
"最大缓存文本长度": "Longueur maximale du texte mis en cache",
|
||||
"半径": "Rayon",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Supprimer une liste",
|
||||
"上移": "Déplacement vers le Haut",
|
||||
"下移": "Descendre",
|
||||
"百度图片翻译": "Baidu traduction d'images",
|
||||
"大": "Grand",
|
||||
"权限不足,请以管理员权限运行!": "Autorisations insuffisantes, exécutez avec des privilèges d'administrateur!",
|
||||
"标点": "Ponctuation",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Liste des objectifs",
|
||||
"使用翻译": "Utiliser la traduction",
|
||||
"prompt格式(需要根据模型版本决定)": "Format prompt (à décider en fonction de la version du modèle)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10pre1 (support du dictionnaire GPT)",
|
||||
"输出的内容": "Contenu de la sortie",
|
||||
"选取OCR范围时不透明度": "Opacité lorsque la plage OCR est sélectionnée",
|
||||
"设为图标": "Faire une icône",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Le veau",
|
||||
"讯飞": "Signal volant",
|
||||
"百度翻译开放平台": "Baidu traduction plateforme ouverte",
|
||||
"百度智能云": "Baidu intelligent Cloud"
|
||||
"百度智能云": "Baidu intelligent Cloud",
|
||||
"(支持gpt词典)": "(support du dictionnaire GPT)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "raccolta",
|
||||
"名称": "nome",
|
||||
"网址": "Sito web",
|
||||
"百度OCR": "OCR Baidu",
|
||||
"最大缓冲区长度": "Lunghezza massima del buffer",
|
||||
"最大缓存文本长度": "Lunghezza massima del testo memorizzato nella cache",
|
||||
"半径": "raggio",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Elimina elenco",
|
||||
"上移": "Sposta su",
|
||||
"下移": "Sposta giù",
|
||||
"百度图片翻译": "Traduzione immagine Baidu",
|
||||
"大": "grande",
|
||||
"权限不足,请以管理员权限运行!": "Permessi insufficienti, si prega di eseguire con privilegi di amministratore!",
|
||||
"标点": "punteggiatura",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Elenco target",
|
||||
"使用翻译": "Uso della traduzione",
|
||||
"prompt格式(需要根据模型版本决定)": "Formato di richiesta (a seconda della versione del modello)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10 pre1 (supporta il dizionario GPT)",
|
||||
"输出的内容": "Contenuto di output",
|
||||
"选取OCR范围时不透明度": "Opacità durante la selezione dell'intervallo OCR",
|
||||
"设为图标": "Imposta come icona",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Vitello",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Piattaforma aperta di traduzione Baidu",
|
||||
"百度智能云": "Baidu AI Cloud"
|
||||
"百度智能云": "Baidu AI Cloud",
|
||||
"(支持gpt词典)": "(Supporta il dizionario GPT)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "コレクション",
|
||||
"名称": "の名前をあげる",
|
||||
"网址": "Webサイト",
|
||||
"百度OCR": "百度OCR",
|
||||
"最大缓冲区长度": "最大バッファ長",
|
||||
"最大缓存文本长度": "最大キャッシュテキスト長",
|
||||
"半径": "半径はんけい",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "リストの削除",
|
||||
"上移": "上へ移動",
|
||||
"下移": "下へ移動",
|
||||
"百度图片翻译": "百度の画像翻訳",
|
||||
"大": "大きい",
|
||||
"权限不足,请以管理员权限运行!": "権限が不足しています。管理者権限で実行してください。",
|
||||
"标点": "ひょうてん",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "ターゲットリスト",
|
||||
"使用翻译": "翻訳の使用",
|
||||
"prompt格式(需要根据模型版本决定)": "promptフォーマット(モデルバージョンに基づいて決定する必要がある)",
|
||||
"v0.10pre1(支持gpt词典)": "v 0.10 pre 1(gpt辞書対応)",
|
||||
"输出的内容": "出力の内容",
|
||||
"选取OCR范围时不透明度": "OCR範囲選択時の不透明度",
|
||||
"设为图标": "アイコンとして設定",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "子牛",
|
||||
"讯飞": "フライ",
|
||||
"百度翻译开放平台": "百度翻訳オープンプラットフォーム",
|
||||
"百度智能云": "百度知能クラウド"
|
||||
"百度智能云": "百度知能クラウド",
|
||||
"(支持gpt词典)": "(gpt辞書対応)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "모음집",
|
||||
"名称": "이름",
|
||||
"网址": "웹 주소",
|
||||
"百度OCR": "바이두 OCR",
|
||||
"最大缓冲区长度": "최대 버퍼 길이",
|
||||
"最大缓存文本长度": "최대 캐시 텍스트 길이",
|
||||
"半径": "반지름",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "목록 삭제",
|
||||
"上移": "위로 이동",
|
||||
"下移": "아래로 이동",
|
||||
"百度图片翻译": "바이두 사진 번역",
|
||||
"大": "큰",
|
||||
"权限不足,请以管理员权限运行!": "권한이 부족합니다. 관리자 권한으로 실행하십시오!",
|
||||
"标点": "구두점",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "대상 목록",
|
||||
"使用翻译": "번역 사용",
|
||||
"prompt格式(需要根据模型版本决定)": "prompt 형식 (모델 버전에 따라 결정)",
|
||||
"v0.10pre1(支持gpt词典)": "v0.10pre1(gpt 사전 지원)",
|
||||
"输出的内容": "내보낸 내용",
|
||||
"选取OCR范围时不透明度": "OCR 범위 선택 시 불투명도",
|
||||
"设为图标": "아이콘으로 설정",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "송아지",
|
||||
"讯飞": "아이플라이테크",
|
||||
"百度翻译开放平台": "바이두 번역 오픈 플랫폼",
|
||||
"百度智能云": "바이두 스마트 클라우드"
|
||||
"百度智能云": "바이두 스마트 클라우드",
|
||||
"(支持gpt词典)": "(gpt 사전 지원)"
|
||||
}
|
@ -555,7 +555,6 @@
|
||||
"名称": "naam",
|
||||
"网址": "website",
|
||||
"可选取的": "Selecteerbare opties",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Maximale bufferlengte",
|
||||
"最大缓存文本长度": "Maximale tekstlengte in cache",
|
||||
"半径": "straal",
|
||||
@ -598,7 +597,6 @@
|
||||
"删除列表": "Lijst verwijderen",
|
||||
"上移": "Naar boven gaan",
|
||||
"下移": "Naar beneden gaan",
|
||||
"百度图片翻译": "Vertaling van afbeeldingen in Baidu",
|
||||
"大": "groot",
|
||||
"权限不足,请以管理员权限运行!": "Onvoldoende machtigingen, gelieve te draaien met beheerdersrechten!",
|
||||
"标点": "interpunctie",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Doellijst",
|
||||
"使用翻译": "Vertaling gebruiken",
|
||||
"prompt格式(需要根据模型版本决定)": "Prompt formaat (afhankelijk van de modelversie)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10 pre1 (ondersteunt GPT woordenboek)",
|
||||
"输出的内容": "Uitvoerinhoud",
|
||||
"选取OCR范围时不透明度": "Opaciteit bij het selecteren van OCR-bereik",
|
||||
"设为图标": "Als pictogram instellen",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Kalf",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Baidu Translation Open Platform",
|
||||
"百度智能云": "Baidu AI Cloud"
|
||||
"百度智能云": "Baidu AI Cloud",
|
||||
"(支持gpt词典)": "(Ondersteunt GPT woordenboek)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "kolekcja",
|
||||
"名称": "nazwa",
|
||||
"网址": "Strona internetowa",
|
||||
"百度OCR": "OCR Baidu",
|
||||
"最大缓冲区长度": "Maksymalna długość bufora",
|
||||
"最大缓存文本长度": "Maksymalna długość buforowanego tekstu",
|
||||
"半径": "promień",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Usuń listę",
|
||||
"上移": "Przesuń się w górę",
|
||||
"下移": "Przesuń w dół",
|
||||
"百度图片翻译": "Tłumaczenie obrazów Baidu",
|
||||
"大": "duże",
|
||||
"权限不足,请以管理员权限运行!": "Niewystarczające uprawnienia, proszę uruchomić z uprawnieniami administratora!",
|
||||
"标点": "interpunkcja",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Lista docelowa",
|
||||
"使用翻译": "Korzystanie z tłumaczenia",
|
||||
"prompt格式(需要根据模型版本决定)": "Format pytania (w zależności od wersji modelu)",
|
||||
"v0.10pre1(支持gpt词典)": "V0.10 pre1 (obsługuje słownik GPT)",
|
||||
"输出的内容": "Zawartość wyjściowa",
|
||||
"选取OCR范围时不透明度": "Przezroczystość przy wyborze zakresu OCR",
|
||||
"设为图标": "Ustaw jako ikonę",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Cielęce",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Otwarta platforma tłumaczeń Baidu",
|
||||
"百度智能云": "Chmura AI Baidu"
|
||||
"百度智能云": "Chmura AI Baidu",
|
||||
"(支持gpt词典)": "(Obsługuje słownik GPT)"
|
||||
}
|
@ -555,7 +555,6 @@
|
||||
"名称": "nome",
|
||||
"网址": "website",
|
||||
"可选取的": "Opções selecionáveis",
|
||||
"百度OCR": "OCR Baidu",
|
||||
"最大缓冲区长度": "Comprimento máximo do tampão",
|
||||
"最大缓存文本长度": "Comprimento máximo do texto armazenado em cache",
|
||||
"半径": "raio",
|
||||
@ -598,7 +597,6 @@
|
||||
"删除列表": "Apagar a Lista",
|
||||
"上移": "Subir",
|
||||
"下移": "Mover para baixo",
|
||||
"百度图片翻译": "Tradução de Imagens Baidu",
|
||||
"大": "grande",
|
||||
"权限不足,请以管理员权限运行!": "Permissões insuficientes, execute com privilégios de administrador!",
|
||||
"标点": "pontuação",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Lista de Destinos",
|
||||
"使用翻译": "Usar a tradução",
|
||||
"prompt格式(需要根据模型版本决定)": "Formato do pedido (dependendo da versão do modelo)",
|
||||
"v0.10pre1(支持gpt词典)": "V0. 10 pre1 (suporta dicionário GPT)",
|
||||
"输出的内容": "Conteúdo de saída",
|
||||
"选取OCR范围时不透明度": "Opacidade ao seleccionar o intervalo OCR",
|
||||
"设为图标": "Definir como ícone",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Bezerro",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Plataforma Aberta de Tradução Baidu",
|
||||
"百度智能云": "Nuvem AI Baidu"
|
||||
"百度智能云": "Nuvem AI Baidu",
|
||||
"(支持gpt词典)": "(Suporta dicionário GPT)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "Коллекция",
|
||||
"名称": "Имя",
|
||||
"网址": "Веб - сайт",
|
||||
"百度OCR": "Сотня OCR",
|
||||
"最大缓冲区长度": "Максимальная длина буфера",
|
||||
"最大缓存文本长度": "Максимальная длина текста кэша",
|
||||
"半径": "Радиус",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Удалить список",
|
||||
"上移": "Переместить вверх",
|
||||
"下移": "Переместить вниз",
|
||||
"百度图片翻译": "100 Перевод фотографий.",
|
||||
"大": "Большой",
|
||||
"权限不足,请以管理员权限运行!": "Недостаточные права, пожалуйста, запустите с правами администратора!",
|
||||
"标点": "Пунктуация",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Список целей",
|
||||
"使用翻译": "Использование перевода",
|
||||
"prompt格式(需要根据模型版本决定)": "Формат prompt (должен быть определен в соответствии с версией модели)",
|
||||
"v0.10pre1(支持gpt词典)": "v0.10pre1 (Поддержка словаря gpt)",
|
||||
"输出的内容": "Экспорт содержимого",
|
||||
"选取OCR范围时不透明度": "Непрозрачность выбора диапазона OCR",
|
||||
"设为图标": "Установить значок",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Телёнок.",
|
||||
"讯飞": "Сигнальный полёт",
|
||||
"百度翻译开放平台": "Открытая платформа для перевода.",
|
||||
"百度智能云": "Сто умных облаков"
|
||||
"百度智能云": "Сто умных облаков",
|
||||
"(支持gpt词典)": "(Поддержка словаря GPT)"
|
||||
}
|
@ -555,7 +555,6 @@
|
||||
"名称": "namn",
|
||||
"网址": "webbplats",
|
||||
"可选取的": "Valbara alternativ",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Maximal buffertlängd",
|
||||
"最大缓存文本长度": "Maximal cachelagrerad textlängd",
|
||||
"半径": "radie",
|
||||
@ -598,7 +597,6 @@
|
||||
"删除列表": "Ta bort lista",
|
||||
"上移": "Flytta uppåt",
|
||||
"下移": "Flytta ner",
|
||||
"百度图片翻译": "Baidubildöversättning",
|
||||
"大": "stor",
|
||||
"权限不足,请以管理员权限运行!": "Otillräckliga behörigheter, kör med administratörsbehörighet!",
|
||||
"标点": "skiljetecken",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Mållista",
|
||||
"使用翻译": "Använda översättning",
|
||||
"prompt格式(需要根据模型版本决定)": "Frågaformat (beroende på modellversion)",
|
||||
"v0.10pre1(支持gpt词典)": "V0. 10 pre1 (stöder GPT ordbok)",
|
||||
"输出的内容": "Utdatainnehåll",
|
||||
"选取OCR范围时不透明度": "Opacitet vid val av OCR-område",
|
||||
"设为图标": "Ange som ikon",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Kalv",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Öppen plattform för översättning av Baidu",
|
||||
"百度智能云": "Baidu AI- molnName"
|
||||
"百度智能云": "Baidu AI- molnName",
|
||||
"(支持gpt词典)": "(Stöder GPT-ordlista)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "คอลเลกชัน",
|
||||
"名称": "ชื่อ",
|
||||
"网址": "ที่อยู่เว็บไซต์",
|
||||
"百度OCR": "ไป่ตู้ OCR",
|
||||
"最大缓冲区长度": "ความยาวบัฟเฟอร์สูงสุด",
|
||||
"最大缓存文本长度": "ความยาวสูงสุดของข้อความแคช",
|
||||
"半径": "รัศมี",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "ลบรายการ",
|
||||
"上移": "เลื่อนขึ้น",
|
||||
"下移": "เลื่อนลง",
|
||||
"百度图片翻译": "การแปลภาพ Baidu",
|
||||
"大": "ใหญ่",
|
||||
"权限不足,请以管理员权限运行!": "สิทธิ์ไม่เพียงพอโปรดเรียกใช้ด้วยสิทธิ์ของผู้ดูแลระบบ!",
|
||||
"标点": "เครื่องหมายวรรคตอน",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "รายการเป้าหมาย",
|
||||
"使用翻译": "ใช้การแปล",
|
||||
"prompt格式(需要根据模型版本决定)": "รูปแบบ prompt (ต้องตัดสินใจตามรุ่น)",
|
||||
"v0.10pre1(支持gpt词典)": "v0.10pre1 (สนับสนุนพจนานุกรม gpt)",
|
||||
"输出的内容": "เนื้อหาที่ส่งออก",
|
||||
"选取OCR范围时不透明度": "ความทึบเมื่อเลือกช่วง OCR",
|
||||
"设为图标": "ตั้งค่าเป็นไอคอน",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "ลูกวัว",
|
||||
"讯飞": "โดย iFlytek",
|
||||
"百度翻译开放平台": "แพลตฟอร์มเปิด Baidu Translation",
|
||||
"百度智能云": "Baidu สมาร์ทคลาวด์"
|
||||
"百度智能云": "Baidu สมาร์ทคลาวด์",
|
||||
"(支持gpt词典)": "(รองรับพจนานุกรม gpt)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "koleksiyon",
|
||||
"名称": "isim",
|
||||
"网址": "Web sitesi",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Azamik buffer uzunluğu",
|
||||
"最大缓存文本长度": "Maximum cached text length",
|
||||
"半径": "radius",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Listeyi sil",
|
||||
"上移": "Yukarı Taşı",
|
||||
"下移": "Aşağı taşın",
|
||||
"百度图片翻译": "Baidu Resim Çeviri",
|
||||
"大": "büyükdictionary variant",
|
||||
"权限不足,请以管理员权限运行!": "Insufficient permissions, please run with administrator privileges!",
|
||||
"标点": "noqtalama",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Hedef Listesi",
|
||||
"使用翻译": "Çeviri kullanılıyor",
|
||||
"prompt格式(需要根据模型版本决定)": "Soru format ı (model versiyonuna bağlı)",
|
||||
"v0.10pre1(支持gpt词典)": "V0. 10 pre1 (GPT sözlük destekliyor)",
|
||||
"输出的内容": "Çıkış içeriği",
|
||||
"选取OCR范围时不透明度": "OCR menzilini seçerken meşgullük",
|
||||
"设为图标": "İşaretçi olarak ayarlayın",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Calf",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Baidu Çeviri Açık Platformu",
|
||||
"百度智能云": "Baidu AI Bulud"
|
||||
"百度智能云": "Baidu AI Bulud",
|
||||
"(支持gpt词典)": "(GPT sözlük destekliyor)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "збірка",
|
||||
"名称": "назва",
|
||||
"网址": "Веб- сайт",
|
||||
"百度OCR": "Baidu OCR",
|
||||
"最大缓冲区长度": "Максимальна довжина буфера",
|
||||
"最大缓存文本长度": "Максимальна довжина кешування тексту",
|
||||
"半径": "радіус",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Вилучити список",
|
||||
"上移": "Пересунути вгору",
|
||||
"下移": "Пересунути вниз",
|
||||
"百度图片翻译": "Переклад зображення Baidu",
|
||||
"大": "великий",
|
||||
"权限不足,请以管理员权限运行!": "Недостатньо прав доступу, будь ласка, запускайте привілеї адміністратора!",
|
||||
"标点": "пунктуація",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Список призначень",
|
||||
"使用翻译": "Використання перекладу",
|
||||
"prompt格式(需要根据模型版本决定)": "Формат запиту (залежно від версії моделі)",
|
||||
"v0.10pre1(支持gpt词典)": "V0. 10 pre1 (підтримує словник GPT)",
|
||||
"输出的内容": "Вміст виводу",
|
||||
"选取OCR范围时不透明度": "Непрозорість під час вибору діапазону OCR",
|
||||
"设为图标": "Встановити як піктограму",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Лівець",
|
||||
"讯飞": "IFlytek",
|
||||
"百度翻译开放平台": "Відкрита платформа перекладу Baidu",
|
||||
"百度智能云": "Хмари Baidu AIweather condition"
|
||||
"百度智能云": "Хмари Baidu AIweather condition",
|
||||
"(支持gpt词典)": "(Підтримує словник GPT)"
|
||||
}
|
@ -545,7 +545,6 @@
|
||||
"收藏": "Bộ sưu tập",
|
||||
"名称": "Tên",
|
||||
"网址": "Trang chủ",
|
||||
"百度OCR": "Số lượng OCR",
|
||||
"最大缓冲区长度": "Chiều dài bộ đệm tối đa",
|
||||
"最大缓存文本长度": "Độ dài văn bản bộ nhớ cache tối đa",
|
||||
"半径": "Bán kính",
|
||||
@ -588,7 +587,6 @@
|
||||
"删除列表": "Xoá danh sách",
|
||||
"上移": "Di chuyển lên",
|
||||
"下移": "Di chuyển xuống",
|
||||
"百度图片翻译": "100 hình ảnh dịch",
|
||||
"大": "Lớn",
|
||||
"权限不足,请以管理员权限运行!": "Không đủ quyền, hãy chạy với quyền quản trị viên!",
|
||||
"标点": "Chấm câu",
|
||||
@ -783,7 +781,6 @@
|
||||
"目标列表": "Danh sách mục tiêu",
|
||||
"使用翻译": "Sử dụng bản dịch",
|
||||
"prompt格式(需要根据模型版本决定)": "Định dạng prompt (cần được quyết định dựa trên phiên bản model)",
|
||||
"v0.10pre1(支持gpt词典)": "v0.10pre1 (hỗ trợ từ điển gpt)",
|
||||
"输出的内容": "Nội dung xuất",
|
||||
"选取OCR范围时不透明度": "Độ mờ đục khi chọn phạm vi OCR",
|
||||
"设为图标": "Đặt làm biểu tượng",
|
||||
@ -813,5 +810,6 @@
|
||||
"小牛": "Tiểu Ngưu",
|
||||
"讯飞": "Tin nhắn",
|
||||
"百度翻译开放平台": "100 phiên dịch mở",
|
||||
"百度智能云": "100 đám mây thông minh"
|
||||
"百度智能云": "100 đám mây thông minh",
|
||||
"(支持gpt词典)": "(Hỗ trợ GPT Dictionary)"
|
||||
}
|
@ -784,7 +784,6 @@
|
||||
"使用翻译": "",
|
||||
"显示/隐藏翻译": "",
|
||||
"prompt格式(需要根据模型版本决定)": "",
|
||||
"v0.10pre1(支持gpt词典)": "",
|
||||
"输出的内容": "",
|
||||
"选取OCR范围时不透明度": "",
|
||||
"设为图标": "",
|
||||
@ -811,5 +810,6 @@
|
||||
"小牛": "",
|
||||
"讯飞": "",
|
||||
"百度翻译开放平台": "",
|
||||
"百度智能云": ""
|
||||
"百度智能云": "",
|
||||
"(支持gpt词典)": ""
|
||||
}
|
@ -13,7 +13,7 @@ When the game loads metadata from VNDB, it queries the game's character names as
|
||||
|
||||
#### **2. Proper Noun Translation**
|
||||
|
||||
If using the `Sakura Large Model` and setting the prompt format to `v0.10pre1 (supports gpt dictionary)`, it will be converted into gpt dictionary format. Otherwise, it will follow VNR's approach and replace the original text with a placeholder `ZX?Z` (ps: I don't know what this means). After translation, the placeholder is usually not destroyed, and then the placeholder is replaced with the translation.
|
||||
If using the `Sakura Large Model` and setting the prompt format to `v0.10pre1`/`v1.0pre1`, it will be converted into gpt dictionary format. Otherwise, it will follow VNR's approach and replace the original text with a placeholder `ZX?Z` (ps: I don't know what this means). After translation, the placeholder is usually not destroyed, and then the placeholder is replaced with the translation.
|
||||
|
||||
For game-specific entries, it is recommended not to add them in `Text Processing` -> `Translation Optimization`. In the past, the game's md5 value was used to distinguish entries for multiple games, but this implementation was not very good and has been deprecated. Now, it is recommended to add game-specific entries in the `Game Settings` -> `Translation Optimization` settings for this method.
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#### **2. Перевод собственных названий**
|
||||
|
||||
Если использовать `сакура большое модель` и установить формат prompt на `v0.10pre1 (поддерживает словарь gpt)`, то будет преобразовано в формат словаря gpt, в противном случае будет применен метод VNR, заменив исходный текст на заполнители `ZX?Z` (примечание: я также не знаю, что это значит), источник перевода после перевода, как правило, не разрушает заполнители, а затем заполнители заменяются переводом.
|
||||
Если использовать `сакура большое модель` и установить формат prompt на `v0.10pre1`/`v1.0pre1`, то будет преобразовано в формат словаря gpt, в противном случае будет применен метод VNR, заменив исходный текст на заполнители `ZX?Z` (примечание: я также не знаю, что это значит), источник перевода после перевода, как правило, не разрушает заполнители, а затем заполнители заменяются переводом.
|
||||
|
||||
Для специализированных терминов игры рекомендуется не добавлять их в раздел `Обработка текста -> Оптимизация перевода`. Раньше для различения терминов из разных игр использовался md5-хеш игры, но такой подход оказался не очень хорошим и был отменен. Теперь рекомендуется добавлять специализированные термины игры в настройках `Оптимизация перевода` в разделе `Настройки игры`.
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#### **2. 专有名词翻译**
|
||||
|
||||
如果使用`sakura大模型`并设置prompt格式为`v0.10pre1(支持gpt词典)`,则会转换成gpt词典格式,否则会参考的VNR的做法,将原文替换为占位符`ZX?Z` (ps:我也不知道这是什么意思),翻译源翻译后一般不会将占位符破坏,然后在翻译后将占位符替换成翻译。
|
||||
如果使用`sakura大模型`并设置prompt格式为`v0.10pre1`或`v1.0pre1`,则会转换成gpt词典格式,否则会参考的VNR的做法,将原文替换为占位符`ZX?Z` (ps:我也不知道这是什么意思),翻译源翻译后一般不会将占位符破坏,然后在翻译后将占位符替换成翻译。
|
||||
|
||||
对于游戏的专用词条,建议不要在文本处理->翻译优化中添加。过去使用游戏的md5值来区分多个游戏的词条,但这样的实现其实不是很好,已经废弃这样的实现。现在建议在`游戏设置`中的`翻译优化`中的该方法的设置中,添加游戏专用的词条。
|
||||
|
||||
|
@ -29,7 +29,7 @@ include(generate_product_version)
|
||||
|
||||
set(VERSION_MAJOR 5)
|
||||
set(VERSION_MINOR 42)
|
||||
set(VERSION_PATCH 1)
|
||||
set(VERSION_PATCH 2)
|
||||
|
||||
add_library(pch pch.cpp)
|
||||
target_precompile_headers(pch PUBLIC pch.h)
|
||||
|
Loading…
x
Reference in New Issue
Block a user