generaltranslation 1.1.20 → 1.1.22
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 +1 -1
- package/index.js +13 -11
- package/models/models.js +15 -3
- package/package.json +1 -1
- package/{translate → prompts}/translate.js +18 -9
package/README.md
CHANGED
|
@@ -102,7 +102,7 @@ const gt = new GT({
|
|
|
102
102
|
});
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
### async getPrompt(prompt,
|
|
105
|
+
### async getPrompt(prompt, language)
|
|
106
106
|
|
|
107
107
|
Translates prompt into the language represented by an ISO-639 language code. Designed for translating prompts into other languages, to internationalize responses from AI models.
|
|
108
108
|
|
package/index.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// ----- IMPORTS ----- //
|
|
5
5
|
|
|
6
6
|
const { _getLanguageName, _getLanguageCode } = require('./codes/codes.js');
|
|
7
|
-
const { _getModelList, _getModelInfo, _getModelLanguages, _isLanguageSupported, _getModelsByDeveloper, _getModelsByLanguage, } = require('./models/models.js');
|
|
8
|
-
const {
|
|
7
|
+
const { _getModelList, _getModelInfo, _getAllModelInfo, _getModelLanguages, _isLanguageSupported, _getModelsByDeveloper, _getModelsByLanguage, } = require('./models/models.js');
|
|
8
|
+
const { _translatePrompt } = require('./prompts/translate.js');
|
|
9
9
|
|
|
10
10
|
// ----- CORE CLASS ----- //
|
|
11
11
|
|
|
@@ -13,10 +13,12 @@ class GT {
|
|
|
13
13
|
|
|
14
14
|
constructor({
|
|
15
15
|
apiKey = '',
|
|
16
|
-
defaultLanguage = 'en'
|
|
16
|
+
defaultLanguage = 'en',
|
|
17
|
+
baseURL = 'https://translate.gtx.dev'
|
|
17
18
|
} = {}) {
|
|
18
19
|
this.apiKey = apiKey;
|
|
19
20
|
this.defaultLanguage = defaultLanguage;
|
|
21
|
+
this.baseURL = baseURL;
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
// Language code functions
|
|
@@ -26,20 +28,19 @@ class GT {
|
|
|
26
28
|
// Model information functions
|
|
27
29
|
getModelList = _getModelList; // returns array of supported model names
|
|
28
30
|
getModelInfo = _getModelInfo; // returns model object
|
|
31
|
+
getAllModelInfo = _getAllModelInfo; // returns all info on all models
|
|
29
32
|
getModelLanguages = _getModelLanguages; // e.g. 'mistral-7b' => ['en']
|
|
30
33
|
isLanguageSupported = _isLanguageSupported; // e.g. ('mistral-7b', 'en') => true
|
|
31
34
|
getModelsByLanguage = _getModelsByLanguage; // returns array of model names
|
|
32
35
|
getModelsByDeveloper = _getModelsByDeveloper; // returns array of model names
|
|
33
36
|
|
|
34
|
-
// Prompt
|
|
35
|
-
getPrompt = async (prompt,
|
|
36
|
-
return await
|
|
37
|
+
// Prompt I18N
|
|
38
|
+
getPrompt = async (prompt, language) => {
|
|
39
|
+
return await _translatePrompt({
|
|
40
|
+
content: prompt, language: language, context: this
|
|
41
|
+
});
|
|
37
42
|
}
|
|
38
|
-
|
|
39
|
-
translate = async (content, code) => {
|
|
40
|
-
return await _translate(content, code, this.defaultLanguage, this.apiKey);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
+
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
// ----- EXPORTS ----- //
|
|
@@ -49,6 +50,7 @@ module.exports.getLanguageCode = _getLanguageCode;
|
|
|
49
50
|
module.exports.getLanguageName = _getLanguageName;
|
|
50
51
|
module.exports.getModelList = _getModelList;
|
|
51
52
|
module.exports.getModelInfo = _getModelInfo;
|
|
53
|
+
module.exports.getAllModelInfo = _getAllModelInfo;
|
|
52
54
|
module.exports.getModelLanguages = _getModelLanguages;
|
|
53
55
|
module.exports.isLanguageSupported = _isLanguageSupported;
|
|
54
56
|
module.exports.getModelsByDeveloper = _getModelsByDeveloper;
|
package/models/models.js
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
// ----- MODEL INFORMATION ----- //
|
|
2
2
|
|
|
3
|
+
// Get all info on all models
|
|
4
|
+
const _getAllModelInfo = async () => {
|
|
5
|
+
try {
|
|
6
|
+
const result = await fetch(`https://models.gtx.dev/all`);
|
|
7
|
+
return await result.json();
|
|
8
|
+
} catch (error) {
|
|
9
|
+
console.error(error)
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
3
14
|
// Get all models by a given developer
|
|
4
15
|
// Returns an empty array if none
|
|
5
16
|
const _getModelsByDeveloper = async developer => {
|
|
@@ -74,10 +85,11 @@ const _isLanguageSupported = async (model, code) => {
|
|
|
74
85
|
}
|
|
75
86
|
|
|
76
87
|
module.exports = {
|
|
77
|
-
_getModelsByDeveloper,
|
|
78
|
-
_getModelsByLanguage,
|
|
79
88
|
_getModelList,
|
|
80
89
|
_getModelInfo,
|
|
81
90
|
_getModelLanguages,
|
|
82
|
-
_isLanguageSupported
|
|
91
|
+
_isLanguageSupported,
|
|
92
|
+
_getModelsByDeveloper,
|
|
93
|
+
_getModelsByLanguage,
|
|
94
|
+
_getAllModelInfo
|
|
83
95
|
}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@ const _shouldTranslate = item => typeof item?.translate === 'boolean' ? item.tra
|
|
|
5
5
|
|
|
6
6
|
// Pre-processes content to send to the API
|
|
7
7
|
// Separates out text that shouldn't be translated.
|
|
8
|
-
const _processContent = (content) => {
|
|
8
|
+
const _processContent = ({ content }) => {
|
|
9
9
|
const processed = [];
|
|
10
10
|
const untranslated = [];
|
|
11
11
|
if (Array.isArray(content)) {
|
|
@@ -64,16 +64,24 @@ const _constructContent = ({ content, untranslated = null}) => {
|
|
|
64
64
|
|
|
65
65
|
// Get a translation via General Translation API
|
|
66
66
|
// Returns string
|
|
67
|
-
const
|
|
67
|
+
const _translatePrompt = async ({
|
|
68
|
+
content, language, context
|
|
69
|
+
}) => {
|
|
70
|
+
|
|
71
|
+
const apiKey = context?.apiKey;
|
|
68
72
|
if (!apiKey) {
|
|
69
73
|
throw new Error('Missing API Key!')
|
|
70
|
-
}
|
|
71
|
-
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const defaultLanguage = context?.defaultLanguage;
|
|
77
|
+
if (language === defaultLanguage) {
|
|
72
78
|
return _constructContent({ content: content });
|
|
73
|
-
}
|
|
74
|
-
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const { processed, untranslated } = _processContent({ content });
|
|
82
|
+
|
|
75
83
|
try {
|
|
76
|
-
const response = await fetch(
|
|
84
|
+
const response = await fetch(`${context?.baseURL}/prompt`, {
|
|
77
85
|
method: 'POST',
|
|
78
86
|
headers: {
|
|
79
87
|
'Content-Type': 'application/json',
|
|
@@ -81,7 +89,7 @@ const _translate = async (content, code, defaultLanguage, apiKey) => {
|
|
|
81
89
|
},
|
|
82
90
|
body: JSON.stringify({
|
|
83
91
|
content: processed,
|
|
84
|
-
targetLanguage:
|
|
92
|
+
targetLanguage: language,
|
|
85
93
|
defaultLanguage: defaultLanguage
|
|
86
94
|
})
|
|
87
95
|
})
|
|
@@ -96,8 +104,9 @@ const _translate = async (content, code, defaultLanguage, apiKey) => {
|
|
|
96
104
|
console.error(error)
|
|
97
105
|
return _constructContent({ content: content })
|
|
98
106
|
}
|
|
107
|
+
|
|
99
108
|
}
|
|
100
109
|
|
|
101
110
|
module.exports = {
|
|
102
|
-
|
|
111
|
+
_translatePrompt
|
|
103
112
|
}
|