mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-24 19:34:08 +01:00
* chore: bun scripts * feat: comparisons * refactor: move scripts to own folder * feat: generated prompts script and Es output * feat: generated prompts * created prompts * feat: Russian localization prompts * translation setup * additional ES translations * additional ES translations * translation services * feat: additional translations * fix regex for parseParamPrompt * RU translations * remove stores from git * update gitignore * update gitignore * ZH translations * move gen prompt output location * ZH traditional translations * AR translations * chore: rename * JP * cleanup scripts * add additional instruction prompts * fix translation prompt and add DE * FR translations (rate limited so not complete) * chore: update translation comparisons * chore: remove unused AnthropicClient changes * refactor: use compositional styling for archive/delete buttons, fix manage archive table styling
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import { storeEmbeddings, loadEmbeddings } from './embeddings';
|
|
import { translateKeyPhrase } from './anthropic';
|
|
|
|
const missingKeyMap = {};
|
|
const vectorStoreMap = {};
|
|
|
|
export async function processLanguageModule(moduleName: string, modulePath: string) {
|
|
const filename = path.basename(moduleName, path.extname(moduleName));
|
|
const promptFilePath = path.join(path.dirname(modulePath), '../prompts', `${filename}.md`);
|
|
console.log(promptFilePath);
|
|
|
|
if (!fs.existsSync(promptFilePath)) {
|
|
console.error(`Prompt file not found for module: ${moduleName}`);
|
|
return undefined;
|
|
}
|
|
|
|
const prompt = fs.readFileSync(promptFilePath, 'utf-8');
|
|
await storeEmbeddings(modulePath);
|
|
vectorStoreMap[moduleName] = await loadEmbeddings(modulePath);
|
|
const baseKeys = Object.keys((await import(modulePath)).default);
|
|
console.log(`Keys in module: ${moduleName}:`, baseKeys.length)
|
|
missingKeyMap[moduleName] = 0;
|
|
return prompt;
|
|
}
|
|
|
|
export async function processMissingKey({
|
|
key,
|
|
baselineTranslation,
|
|
moduleName,
|
|
translationPrompt,
|
|
} : {
|
|
key: string, baselineTranslation: string, moduleName: string, translationPrompt: string
|
|
}) {
|
|
missingKeyMap[moduleName]++;
|
|
const vectorStore = vectorStoreMap[moduleName];
|
|
const context = await vectorStore.similaritySearch(key, 5);
|
|
const translation = await translateKeyPhrase({
|
|
key,
|
|
baselineTranslation,
|
|
translationPrompt,
|
|
context,
|
|
});
|
|
console.log(`"${key}": "${translation}",\n`)
|
|
return translation;
|
|
}
|