cc-translate 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/index.d.ts.map +1 -1
- package/index.js +0 -1
- package/lib/cache/index.d.ts +5 -1
- package/lib/cache/index.d.ts.map +1 -1
- package/lib/cache/index.js +6 -0
- package/package.json +1 -1
- package/src/fine-tuning/test.jsonl +1 -0
- package/src/lib/cache/index.ts +12 -1
- package/src/test/index.ts +26 -0
- package/src/types/index.ts +9 -0
- package/test/index.d.ts +3 -0
- package/test/index.d.ts.map +1 -0
- package/test/index.js +32 -0
- package/types/index.d.ts +6 -0
- package/types/index.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -21,23 +21,23 @@ yarn add cc-translate -D
|
|
|
21
21
|
## 快速开始
|
|
22
22
|
|
|
23
23
|
```mjs
|
|
24
|
-
|
|
24
|
+
// translate.mjs
|
|
25
25
|
import {CwalletTranslate} from 'cc-translate';
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
// 获取当前文件的完整路径
|
|
28
28
|
const __dirname = import.meta.dirname;
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
// 创建一个translate实例
|
|
31
31
|
const client = new CwalletTranslate({
|
|
32
32
|
key: "your api key",
|
|
33
33
|
sourceLanguage: 'en',
|
|
34
|
-
|
|
34
|
+
// 缓存文件路径
|
|
35
35
|
cacheFileRootPath: path.resolve(__dirname, './cache'),
|
|
36
|
-
|
|
36
|
+
// 翻译源文件路径
|
|
37
37
|
fileRootPath: path.resolve(__dirname, './langs'),
|
|
38
|
-
|
|
38
|
+
// 调整翻译语境,告诉gpt我们的翻译要求。提高翻译准确性!
|
|
39
39
|
fineTune: ['我们是一个区块链钱包', '请使用行业专业术语并更切合生活的翻译',....],
|
|
40
|
-
|
|
40
|
+
// 需要翻译的语言列表
|
|
41
41
|
languages: [
|
|
42
42
|
'zh-CN',
|
|
43
43
|
'zh-TW',
|
|
@@ -45,7 +45,7 @@ const client = new CwalletTranslate({
|
|
|
45
45
|
'ar',
|
|
46
46
|
...
|
|
47
47
|
],
|
|
48
|
-
|
|
48
|
+
// 输出文件路径
|
|
49
49
|
outputRootPath: path.resolve(__dirname, './langs'),
|
|
50
50
|
});
|
|
51
51
|
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAoBjB,qBAAa,gBAAgB;IAC3B,uBAAuB;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,MAAM;IACN,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,eAAe,EAAE,mBAAmB,CAAC;IACrC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEP,MAAM,EAAE,uBAAuB;IAY3C,IAAI,gBAAgB,kCAOnB;IAED,IAAI,UAAU,WAEb;IAED,cAAc,CAAC,IAAI,EAAE,mBAAmB;IAIxC,kBAAkB,aAOhB;IACF;;OAEG;IACH,SAAS,sBA0DP;IACF;;;;OAIG;IACH,eAAe,WAAkB,gBAAgB,mBAoD/C;IAEF;;;;;;;OAOG;IACH,aAAa,WAAY,cAAc,KAAG,OAAO,CAAC,sBAAsB,CAAC,CA2DvE;IACF;;;;;OAKG;IACH,mBAAmB,aACP,mBAAmB,YACnB,MAAM,KACf,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CA6B3B;IAEF;;;OAGG;IACH,kBAAkB,WAAkB,mBAAmB,mBAsCrD;CACH"}
|
package/index.js
CHANGED
|
@@ -16,7 +16,6 @@ import { chunkArray, getRandomNumber, notExistsToCreateFile, readFileOfDirSync,
|
|
|
16
16
|
import { getCacheFileSync, registerLanguageCacheFile, translateJSONDiffToJson, } from "./lib/cache/index.js";
|
|
17
17
|
import { logErrorToFile } from "./lib/log/index.js";
|
|
18
18
|
import { SUPPORT_LANGUAGE_MAP } from "./lib/support.js";
|
|
19
|
-
const __dirname = process.cwd();
|
|
20
19
|
const DEFAULT_OPENAI_CONFIG = {
|
|
21
20
|
model: "gpt-4o",
|
|
22
21
|
};
|
package/lib/cache/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IJson, IRegisterLanguageCacheFile } from "../../types";
|
|
1
|
+
import { IGenerateCacheParams, IJson, IRegisterLanguageCacheFile } from "../../types";
|
|
2
2
|
/**
|
|
3
3
|
* 和翻译缓存json文件对比 返回存在更改的json文件
|
|
4
4
|
* @param {object} cacheObject 已经缓存的对象
|
|
@@ -17,4 +17,8 @@ export declare const getCacheFileSync: (filePath: string) => Promise<IJson>;
|
|
|
17
17
|
* @param {string} language
|
|
18
18
|
*/
|
|
19
19
|
export declare const registerLanguageCacheFile: (params: IRegisterLanguageCacheFile) => Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* 根据现有的源文件生成缓存
|
|
22
|
+
*/
|
|
23
|
+
export declare const generateCache: (params: IGenerateCacheParams) => void;
|
|
20
24
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/cache/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/cache/index.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/cache/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,KAAK,EACL,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,gBACrB,KAAK,mBACD,KAAK,UAiBvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAoB,MAAM,KAAG,OAAO,CAAC,KAAK,CAMtE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,WAC5B,0BAA0B,kBAmBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,WAAY,oBAAoB,SAEzD,CAAC"}
|
package/lib/cache/index.js
CHANGED
|
@@ -64,3 +64,9 @@ export const registerLanguageCacheFile = (params) => __awaiter(void 0, void 0, v
|
|
|
64
64
|
notExistsToCreateFile(`${folderName}/${language}`);
|
|
65
65
|
yield fs.writeFileSync(cacheFilePath, JSON.stringify(cacheObject, null, 2), "utf8");
|
|
66
66
|
});
|
|
67
|
+
/**
|
|
68
|
+
* 根据现有的源文件生成缓存
|
|
69
|
+
*/
|
|
70
|
+
export const generateCache = (params) => {
|
|
71
|
+
const {} = params;
|
|
72
|
+
};
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"messages": [{"role": "system", "content": "你是一个翻译机器人"}, {"role": "user", "content": "将Reversal翻译成中文"}, {"role": "assistant", "content": "撤销"}]}
|
package/src/lib/cache/index.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import fs from "fs";
|
|
3
3
|
import { notExistsToCreateFile, readJsonFileSync } from "../utils.js";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
IGenerateCacheParams,
|
|
6
|
+
IJson,
|
|
7
|
+
IRegisterLanguageCacheFile,
|
|
8
|
+
} from "../../types";
|
|
5
9
|
|
|
6
10
|
/**
|
|
7
11
|
* 和翻译缓存json文件对比 返回存在更改的json文件
|
|
@@ -68,3 +72,10 @@ export const registerLanguageCacheFile = async (
|
|
|
68
72
|
"utf8"
|
|
69
73
|
);
|
|
70
74
|
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* 根据现有的源文件生成缓存
|
|
78
|
+
*/
|
|
79
|
+
export const generateCache = (params: IGenerateCacheParams) => {
|
|
80
|
+
const {} = params;
|
|
81
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import OpenAI from "openai";
|
|
2
|
+
import { ITestParams } from "src/types";
|
|
3
|
+
|
|
4
|
+
export const testCompletions = async (params: ITestParams) => {
|
|
5
|
+
try {
|
|
6
|
+
const { key, question } = params;
|
|
7
|
+
const client = new OpenAI({
|
|
8
|
+
apiKey: key,
|
|
9
|
+
});
|
|
10
|
+
const chatCompletion = await client.chat.completions.create({
|
|
11
|
+
model: "gpt-4o",
|
|
12
|
+
messages: [
|
|
13
|
+
{
|
|
14
|
+
role: "user",
|
|
15
|
+
content: question,
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
});
|
|
19
|
+
console.log(
|
|
20
|
+
"🚀 ~ test ~ chatCompletion:",
|
|
21
|
+
chatCompletion?.choices[0]?.message.content
|
|
22
|
+
);
|
|
23
|
+
} catch (err) {
|
|
24
|
+
console.error(err);
|
|
25
|
+
}
|
|
26
|
+
};
|
package/src/types/index.ts
CHANGED
|
@@ -115,3 +115,12 @@ export interface ITranslate {}
|
|
|
115
115
|
export interface IOpenaiConfig {
|
|
116
116
|
model: OpenAI.Chat.ChatModel;
|
|
117
117
|
}
|
|
118
|
+
|
|
119
|
+
export interface ITestParams {
|
|
120
|
+
key: string;
|
|
121
|
+
question: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export interface IGenerateCacheParams {
|
|
125
|
+
|
|
126
|
+
}
|
package/test/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/test/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,eAAO,MAAM,eAAe,WAAkB,WAAW,kBAsBxD,CAAC"}
|
package/test/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import OpenAI from "openai";
|
|
11
|
+
export const testCompletions = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12
|
+
var _a;
|
|
13
|
+
try {
|
|
14
|
+
const { key, question } = params;
|
|
15
|
+
const client = new OpenAI({
|
|
16
|
+
apiKey: key,
|
|
17
|
+
});
|
|
18
|
+
const chatCompletion = yield client.chat.completions.create({
|
|
19
|
+
model: "gpt-4o",
|
|
20
|
+
messages: [
|
|
21
|
+
{
|
|
22
|
+
role: "user",
|
|
23
|
+
content: question,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
});
|
|
27
|
+
console.log("🚀 ~ test ~ chatCompletion:", (_a = chatCompletion === null || chatCompletion === void 0 ? void 0 : chatCompletion.choices[0]) === null || _a === void 0 ? void 0 : _a.message.content);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error(err);
|
|
31
|
+
}
|
|
32
|
+
});
|
package/types/index.d.ts
CHANGED
|
@@ -74,4 +74,10 @@ export interface ITranslate {
|
|
|
74
74
|
export interface IOpenaiConfig {
|
|
75
75
|
model: OpenAI.Chat.ChatModel;
|
|
76
76
|
}
|
|
77
|
+
export interface ITestParams {
|
|
78
|
+
key: string;
|
|
79
|
+
question: string;
|
|
80
|
+
}
|
|
81
|
+
export interface IGenerateCacheParams {
|
|
82
|
+
}
|
|
77
83
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}
|