Skip to content

Commit

Permalink
v0.6
Browse files Browse the repository at this point in the history
添加 彩云小译,星火lite 翻译
优化引擎命名
  • Loading branch information
SIPC committed Jan 30, 2025
1 parent ef8738b commit 3281f69
Show file tree
Hide file tree
Showing 13 changed files with 134 additions and 33 deletions.
38 changes: 38 additions & 0 deletions lib/caiyun.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// caiyun.js
const API_URL = 'http://api.interpreter.caiyunai.com/v1/translator';
const TOKEN = process.env.CAIYUN_API_KEY

async function caiyun_Translate(text, source_lang = "auto", target_lang = "zh") {
try {
const payload = {
source: Array.isArray(text) ? text : [text],
trans_type: `${source_lang}2${target_lang}`,
request_id: "demo",
detect: true
};

const response = await fetch(API_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Authorization": `token ${TOKEN}`
},
body: JSON.stringify(payload)
});

const data = await response.json();

return JSON.stringify({
model: "caiyun",
raw: text,
text: data.target[0],
from: source_lang,
to: target_lang
});
} catch (error) {
console.error("Caiyun API error:", error);
return null;
}
}

export { caiyun_Translate };
4 changes: 2 additions & 2 deletions lib/deepl.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// https://github.com/OwO-Network/DeepLX
import { query } from '@ifyour/deeplx';

async function deeplTranslate(text, source_lang, target_lang) {
async function deepl_Translate(text, source_lang, target_lang) {
try {
const result = await query({ text, source_lang, target_lang })

Expand All @@ -19,4 +19,4 @@ async function deeplTranslate(text, source_lang, target_lang) {
}
}

export { deeplTranslate };
export { deepl_Translate };
4 changes: 2 additions & 2 deletions lib/gemini.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { GoogleGenerativeAI } from "@google/generative-ai";
const apiKey = process.env.GEMINI_API_KEY;
const genAI = new GoogleGenerativeAI(apiKey);

async function geminiTranslate(text, source_lang, target_lang) {
async function gemini_Translate(text, source_lang, target_lang) {
try {
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash"
Expand Down Expand Up @@ -69,4 +69,4 @@ async function geminiTranslate(text, source_lang, target_lang) {
}
}

export { geminiTranslate };
export { gemini_Translate };
4 changes: 2 additions & 2 deletions lib/google.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import translate from 'google-translate-api-x';


async function googleTranslate(text, source_lang, target_lang) {
async function google_Translate(text, source_lang, target_lang) {
try {
const result = await translate(text, { from: source_lang, to: target_lang })
return JSON.stringify({
Expand All @@ -18,4 +18,4 @@ async function googleTranslate(text, source_lang, target_lang) {
}
}

export { googleTranslate };
export { google_Translate };
4 changes: 2 additions & 2 deletions lib/microsoft.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ async function TestToken() {
}
}

async function microsoftTranslate(text, source_lang, target_lang) {
async function microsoft_Translate(text, source_lang, target_lang) {
try {
await TestToken();
const apiUrl = `https://api.cognitive.microsofttranslator.com/translate?from=${source_lang}&to=${target_lang}&api-version=3.0&includeSentenceLength=true`;
Expand Down Expand Up @@ -45,4 +45,4 @@ async function microsoftTranslate(text, source_lang, target_lang) {
}
}

export { microsoftTranslate };
export { microsoft_Translate };
4 changes: 2 additions & 2 deletions lib/niutrans.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
const API_URL = 'https://api.niutrans.com/NiuTransServer/translation';
const API_KEY = process.env.NIUTRANS_API_KEY

async function niutransTranslate(text, source_lang, target_lang) {
async function niutrans_Translate(text, source_lang, target_lang) {
try {
const response = await fetch(API_URL, {
method: 'POST',
Expand Down Expand Up @@ -32,4 +32,4 @@ async function niutransTranslate(text, source_lang, target_lang) {
}
}

export { niutransTranslate };
export { niutrans_Translate };
4 changes: 2 additions & 2 deletions lib/papago.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ const Translate = async (text, source_lang = 'auto', target_lang = 'en') => {
return data.translatedText;
};

async function papagoTranslate(text, source_lang, target_lang){
async function papago_Translate(text, source_lang, target_lang){
try {
const result = await Translate(text, source_lang, target_lang);
return JSON.stringify({
Expand All @@ -49,4 +49,4 @@ async function papagoTranslate(text, source_lang, target_lang){
}
};

export { papagoTranslate };
export { papago_Translate };
4 changes: 2 additions & 2 deletions lib/reverso.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// reverso.js

async function reversoTranslate(text, source_lang, target_lang) {
async function reverso_Translate(text, source_lang, target_lang) {
try {
const response = await fetch("https://api.reverso.net/translate/v1/translation", {
method: "POST",
Expand Down Expand Up @@ -39,4 +39,4 @@ async function reversoTranslate(text, source_lang, target_lang) {
}
}

export { reversoTranslate };
export { reverso_Translate };
4 changes: 2 additions & 2 deletions lib/transmart.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function initData(text, from, to) {
};
}

async function transmartTranslate(text, source_lang, target_lang) {
async function transmart_Translate(text, source_lang, target_lang) {
try {
const postData = initData(text, source_lang, target_lang);
const response = await fetch("https://yi.qq.com/api/imt", {
Expand Down Expand Up @@ -41,4 +41,4 @@ async function transmartTranslate(text, source_lang, target_lang) {
}
}

export { transmartTranslate };
export { transmart_Translate };
57 changes: 57 additions & 0 deletions lib/xinghuo_lite.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
async function xinghuo_lite_Translate(text, source_lang, target_lang) {
try {
const url = "https://spark-api-open.xf-yun.com/v1/chat/completions";
const data = {
model: "lite",
messages: [
{
role: "user",
content: "You are a professional translation engine, please translate the text into a colloquial, professional, elegant and fluent content, without the style of machine translation. You must only translate the text content, never interpret it.",
},
{
role: "assistant",
content: "Ok, I will only translate the text content, never interpret it.",
},
{
role: "user",
content: `Translate into Chinese """hello"""`,
},
{
role: "assistant",
content: "你好",
},
{
role: "user",
content: `Translate into ${target_lang} """${text}"""`,
},
]
};

const headers = {
"Content-Type": "application/json",
"Authorization": `Bearer ${process.env.XINGHUO_API_KEY}`,
};

const response = await fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(data),
});

const result = await response.json();

return JSON.stringify({
model: "xinghuo_lite",
raw: text,
text: result.choices[0].message.content,
from: source_lang,
to: target_lang,
});
} catch (error) {
console.error("xinghuo_lite error:", error);
return null;
}
}

export { xinghuo_lite_Translate };

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"main": "server.js",
"type": "module",
"scripts": {
"test": "node server.js"
"dev": "node --env-file=.env server.js"
},
"keywords": [],
"author": "",
Expand Down
36 changes: 20 additions & 16 deletions router.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
// router.js
import { getLanguageCode } from "./tool/iso.js";

import { deeplTranslate } from './lib/deepl.js';
import { googleTranslate } from "./lib/google.js";
import { microsoftTranslate } from "./lib/microsoft.js";
import { transmartTranslate } from "./lib/transmart.js";
import { geminiTranslate } from "./lib/gemini.js";
import { papagoTranslate } from "./lib/papago.js";
import { niutransTranslate } from "./lib/niutrans.js";
import { reversoTranslate } from "./lib/reverso.js";
import { deepl_Translate } from './lib/deepl.js';
import { google_Translate } from "./lib/google.js";
import { microsoft_Translate } from "./lib/microsoft.js";
import { transmart_Translate } from "./lib/transmart.js";
import { gemini_Translate } from "./lib/gemini.js";
import { papago_Translate } from "./lib/papago.js";
import { niutrans_Translate } from "./lib/niutrans.js";
import { reverso_Translate } from "./lib/reverso.js";
import { xinghuo_lite_Translate } from "./lib/xinghuo_lite.js";
import { caiyun_Translate } from "./lib/caiyun.js";

const translationFunctions = {
deepl: deeplTranslate,
google: googleTranslate,
microsoft: microsoftTranslate,
transmart: transmartTranslate,
gemini: geminiTranslate,
papago: papagoTranslate,
niutrans: niutransTranslate,
reverso: reversoTranslate,
deepl: deepl_Translate,
google: google_Translate,
microsoft: microsoft_Translate,
transmart: transmart_Translate,
gemini: gemini_Translate,
papago: papago_Translate,
niutrans: niutrans_Translate,
reverso: reverso_Translate,
xinghuo_lite: xinghuo_lite_Translate,
caiyun: caiyun_Translate,
};

async function Translate(model, text, form, to) {
Expand Down
2 changes: 2 additions & 0 deletions tool/iso.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ const modelLanguageCodes = {
'papago': { 'zh-Hans': 'zh-CN', 'zh-Hant': 'zh-TW', 'en': 'en', 'de': 'de', 'fr': 'fr', 'it': 'it', 'ja': 'ja', 'ko': 'ko' },
'niutrans': { 'zh-Hans': 'zh', 'zh-Hant': 'cht', 'en': 'en', 'de': 'de', 'fr': 'fr', 'it': 'it', 'ja': 'ja', 'ko': 'ko' },
'reverso': { 'zh-Hans': 'chi', 'zh-Hant': 'cht', 'en': 'eng', 'de': 'ger', 'fr': 'fra', 'it': 'ita', 'ja': 'jpn', 'ko': 'kor' },
'xinghuo_lite': { 'zh-Hans': 'Simplified Chinese', 'en': 'English', 'de': 'German', 'fr': 'French', 'it': 'Italian', 'ja': 'Japanese', 'ko': 'Korean' },
'caiyun': { 'zh-Hans': 'zh', 'en': 'en', 'de': 'de', 'fr': 'fr', 'it': 'it', 'ja': 'ja', 'ko': 'ko' },
};

function getLanguageCode(modelName, languageCode) {
Expand Down

0 comments on commit 3281f69

Please sign in to comment.