feat: language support via locale config (#96)

Co-authored-by: hiroki osame <hiroki.osame@gmail.com>
This commit is contained in:
Vicente Gutiérrez
2023-03-09 05:13:58 -06:00
committed by GitHub
parent 4876e8d966
commit 58ce61eab8
4 changed files with 13 additions and 3 deletions

View File

@@ -26,6 +26,12 @@ const configParsers = {
return key;
},
locale(key: string) {
parseAssert('locale', key, 'Cannot be empty');
parseAssert('locale', /^[a-z-]+$/i.test(key), 'Must be a valid locale (letters and dashes/underscores). You can consult the list of codes in: https://wikipedia.org/wiki/List_of_ISO_639-1_codes');
return key;
},
generate(key: string) {
parseAssert('generate', key, 'Cannot be empty');
parseAssert('generate', /^\d+$/.test(key), 'Must be an integer');

View File

@@ -58,17 +58,18 @@ const sanitizeMessage = (message: string) => message.trim().replace(/[\n\r]/g, '
const deduplicateMessages = (array: string[]) => Array.from(new Set(array));
const promptTemplate = 'Write an insightful but concise Git commit message in a complete sentence in present tense for the following diff without prefacing it with anything:';
const getPrompt = (locale: string, diff: string) => `Write an insightful but concise Git commit message in a complete sentence in present tense for the following diff without prefacing it with anything, the response must be in the language ${locale}:\n${diff}`;
const model = 'text-davinci-003';
const encoder = encodingForModel(model);
export const generateCommitMessage = async (
apiKey: string,
locale: string,
diff: string,
completions: number,
) => {
const prompt = `${promptTemplate}\n${diff}`;
const prompt = getPrompt(locale, diff);
/**
* text-davinci-003 has a token limit of 4000