anylang
Version:
A translator's kit that uses the free APIs of Google Translate, Yandex, Bing, ChatGPT, and other LLMs
40 lines (38 loc) • 5.97 kB
JavaScript
import { LLMTranslator, } from '../LLMTranslator';
import { GeminiLLMFetcher } from './GeminiLLMFetcher';
export class GeminiLLMTranslator extends LLMTranslator {
constructor(config) {
var _a, _b, _c, _d;
const llm = new GeminiLLMFetcher({
apiKey: config.apiKey,
model: config.model,
apiOrigin: config.apiOrigin,
});
super(llm, {
getPrompt: config.getPrompt,
retryOptions: {
retryLimit: (_a = config.retryOptions) === null || _a === void 0 ? void 0 : _a.retryLimit,
retryTimeout: (_b = config.retryOptions) === null || _b === void 0 ? void 0 : _b.retryTimeout,
maxRetryTimeout: (_c = config.retryOptions) === null || _c === void 0 ? void 0 : _c.maxRetryTimeout,
retryBackoffFactor: (_d = config.retryOptions) === null || _d === void 0 ? void 0 : _d.retryBackoffFactor,
},
});
}
}
GeminiLLMTranslator.translatorName = 'GeminiLLMTranslator';
GeminiLLMTranslator.isRequiredKey = () => true;
GeminiLLMTranslator.isSupportedAutoFrom = () => true;
// source: https://ai.google.dev/gemini-api/docs/models#supported-languages
GeminiLLMTranslator.getSupportedLanguages = () => {
// eslint-disable
// prettier-ignore
return [
"ar", "bn", "bg", "zh", "hr", "cs", "da", "nl", "en",
"et", "fa", "fi", "fr", "de", "el", "gu", "he", "hi", "hu",
"id", "it", "ja", "kn", "ko", "lv", "lt", "ml", "mr", "no",
"pl", "pt", "ro", "ru", "sr", "sk", "sl", "es", "sw", "sv",
"ta", "te", "th", "tr", "uk", "ur", "vi"
];
// eslint-enable
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyYW5zbGF0b3JzL0xMTVRyYW5zbGF0b3JzL0dlbWluaUxMTVRyYW5zbGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGFBQWEsR0FHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBR3JELFlBQVksTUFNWDs7UUFDQSxNQUFNLEdBQUcsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ2hDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsWUFBWSxFQUFFO2dCQUNiLFVBQVUsRUFBRSxNQUFBLE1BQU0sQ0FBQyxZQUFZLDBDQUFFLFVBQVU7Z0JBQzNDLFlBQVksRUFBRSxNQUFBLE1BQU0sQ0FBQyxZQUFZLDBDQUFFLFlBQVk7Z0JBQy9DLGVBQWUsRUFBRSxNQUFBLE1BQU0sQ0FBQyxZQUFZLDBDQUFFLGVBQWU7Z0JBQ3JELGtCQUFrQixFQUFFLE1BQUEsTUFBTSxDQUFDLFlBQVksMENBQUUsa0JBQWtCO2FBQzNEO1NBQ0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7QUF2QnNCLGtDQUFjLEdBQVcscUJBQXFCLENBQUM7QUF5QnhELGlDQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQzNCLHVDQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUUvQywyRUFBMkU7QUFDN0QseUNBQXFCLEdBQUcsR0FBYSxFQUFFO0lBQ3BELGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsT0FBTztRQUNOLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtRQUNwRCxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1FBQzFELElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7UUFDMUQsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtRQUMxRCxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO0tBQ3hDLENBQUM7SUFDRixnQkFBZ0I7QUFDakIsQ0FBQyxDQUFDIiwiZmlsZSI6InRyYW5zbGF0b3JzL0xMTVRyYW5zbGF0b3JzL0dlbWluaUxMTVRyYW5zbGF0b3IvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRMTE1UcmFuc2xhdG9yLFxuXHRMTE1UcmFuc2xhdG9yUmV0cnlPcHRpb25zLFxuXHRQcm9tcHRHZW5lcmF0b3IsXG59IGZyb20gJy4uL0xMTVRyYW5zbGF0b3InO1xuaW1wb3J0IHsgR2VtaW5pTExNRmV0Y2hlciB9IGZyb20gJy4vR2VtaW5pTExNRmV0Y2hlcic7XG5cbmV4cG9ydCBjbGFzcyBHZW1pbmlMTE1UcmFuc2xhdG9yIGV4dGVuZHMgTExNVHJhbnNsYXRvciB7XG5cdHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHJhbnNsYXRvck5hbWU6IHN0cmluZyA9ICdHZW1pbmlMTE1UcmFuc2xhdG9yJztcblxuXHRjb25zdHJ1Y3Rvcihjb25maWc6IHtcblx0XHRhcGlLZXk6IHN0cmluZztcblx0XHRtb2RlbD86IHN0cmluZztcblx0XHRnZXRQcm9tcHQ/OiBQcm9tcHRHZW5lcmF0b3I7XG5cdFx0YXBpT3JpZ2luPzogc3RyaW5nO1xuXHRcdHJldHJ5T3B0aW9ucz86IExMTVRyYW5zbGF0b3JSZXRyeU9wdGlvbnM7XG5cdH0pIHtcblx0XHRjb25zdCBsbG0gPSBuZXcgR2VtaW5pTExNRmV0Y2hlcih7XG5cdFx0XHRhcGlLZXk6IGNvbmZpZy5hcGlLZXksXG5cdFx0XHRtb2RlbDogY29uZmlnLm1vZGVsLFxuXHRcdFx0YXBpT3JpZ2luOiBjb25maWcuYXBpT3JpZ2luLFxuXHRcdH0pO1xuXHRcdHN1cGVyKGxsbSwge1xuXHRcdFx0Z2V0UHJvbXB0OiBjb25maWcuZ2V0UHJvbXB0LFxuXHRcdFx0cmV0cnlPcHRpb25zOiB7XG5cdFx0XHRcdHJldHJ5TGltaXQ6IGNvbmZpZy5yZXRyeU9wdGlvbnM/LnJldHJ5TGltaXQsXG5cdFx0XHRcdHJldHJ5VGltZW91dDogY29uZmlnLnJldHJ5T3B0aW9ucz8ucmV0cnlUaW1lb3V0LFxuXHRcdFx0XHRtYXhSZXRyeVRpbWVvdXQ6IGNvbmZpZy5yZXRyeU9wdGlvbnM/Lm1heFJldHJ5VGltZW91dCxcblx0XHRcdFx0cmV0cnlCYWNrb2ZmRmFjdG9yOiBjb25maWcucmV0cnlPcHRpb25zPy5yZXRyeUJhY2tvZmZGYWN0b3IsXG5cdFx0XHR9LFxuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBpc1JlcXVpcmVkS2V5ID0gKCkgPT4gdHJ1ZTtcblx0cHVibGljIHN0YXRpYyBpc1N1cHBvcnRlZEF1dG9Gcm9tID0gKCkgPT4gdHJ1ZTtcblxuXHQvLyBzb3VyY2U6IGh0dHBzOi8vYWkuZ29vZ2xlLmRldi9nZW1pbmktYXBpL2RvY3MvbW9kZWxzI3N1cHBvcnRlZC1sYW5ndWFnZXNcblx0cHVibGljIHN0YXRpYyBnZXRTdXBwb3J0ZWRMYW5ndWFnZXMgPSAoKTogc3RyaW5nW10gPT4ge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlXG5cdFx0Ly8gcHJldHRpZXItaWdub3JlXG5cdFx0cmV0dXJuIFtcblx0XHRcdFwiYXJcIiwgXCJiblwiLCBcImJnXCIsIFwiemhcIiwgXCJoclwiLCBcImNzXCIsIFwiZGFcIiwgXCJubFwiLCBcImVuXCIsXG5cdFx0XHRcImV0XCIsIFwiZmFcIiwgXCJmaVwiLCBcImZyXCIsIFwiZGVcIiwgXCJlbFwiLCBcImd1XCIsIFwiaGVcIiwgXCJoaVwiLCBcImh1XCIsXG5cdFx0XHRcImlkXCIsIFwiaXRcIiwgXCJqYVwiLCBcImtuXCIsIFwia29cIiwgXCJsdlwiLCBcImx0XCIsIFwibWxcIiwgXCJtclwiLCBcIm5vXCIsXG5cdFx0XHRcInBsXCIsIFwicHRcIiwgXCJyb1wiLCBcInJ1XCIsIFwic3JcIiwgXCJza1wiLCBcInNsXCIsIFwiZXNcIiwgXCJzd1wiLCBcInN2XCIsXG5cdFx0XHRcInRhXCIsIFwidGVcIiwgXCJ0aFwiLCBcInRyXCIsIFwidWtcIiwgXCJ1clwiLCBcInZpXCJcblx0XHRdO1xuXHRcdC8vIGVzbGludC1lbmFibGVcblx0fTtcbn1cbiJdfQ==