Compare commits

...

13 Commits

Author SHA1 Message Date
di-sukharev
ba82d4d476 2.0.4 2023-04-28 15:36:45 +08:00
di-sukharev
9bf2ed34a5 docs(README.md): add GPT-4 usage instructions and mention the cost difference compared to GPT-3.5-turbo 2023-04-28 15:35:40 +08:00
di-sukharev
f6ab25ed1b 2.0.3 2023-04-28 15:31:54 +08:00
di-sukharev
83abd5ffd6 2.0.2 2023-04-28 15:31:46 +08:00
di-sukharev
42c26cbaaa fix(generateCommitMessageFromGitDiff.ts): update content to include WHAT and WHY in commit message instructions
fix(i18n/en.json): update commitFix and commitFeat messages to include reasons for changes
2023-04-28 15:31:10 +08:00
di-sukharev
51613c2aea feat(api.ts, config.ts): add support for custom model selection in OpenAi class
feat(config.ts): add model validation in configValidators
2023-04-28 15:29:32 +08:00
Sukharev
f04757f8af Revert "Suggest adding 'Edit' option to the Yes/No confirmation #53 (#70)" (#146)
This reverts commit 70f048672c.
2023-04-28 14:25:29 +08:00
Joshua Hamlet
70f048672c Suggest adding 'Edit' option to the Yes/No confirmation #53 (#70) 2023-04-28 14:22:45 +08:00
di-sukharev
a8a548ba5a 2.0.1 2023-04-28 14:15:39 +08:00
di-sukharev
eb09d5f4f6 Merge remote-tracking branch 'origin/dev' 2023-04-28 14:13:49 +08:00
Devrim Mazlum
801f6a9e7a feat(i18n): add support for Turkish (Türkçe) language (tr) (#110)
* feat(index.ts): Turkish language support

* feat(tr.json): Turkish language support
2023-04-17 01:14:34 +08:00
zenobit
b4f1bbdfe0 🌐 chore(i18n): add Czech language (#127)
* 🌐 chore(i18n): add Czech language

* 📦 chore(package-lock.json): aktualizace balíčku @dqbd/tiktoken na verzi 1.0.6
Byl aktualizován balíček @dqbd/tiktoken na verzi 1.0.6, což zahrnuje opravy chyb a zlepšení výkonu.
2023-04-17 01:09:51 +08:00
di-sukharev
1ecad09e44 chore(package.json): update package version from 1.1.51 to 2.0.0 2023-04-06 12:42:46 +08:00
10 changed files with 57 additions and 7 deletions

View File

@@ -54,6 +54,18 @@ oc
## Features
### Switch to GPT-4
By default OpenCommit uses GPT-3.5-turbo (ChatGPT).
You may switch to GPT-4 which performs better, but costs ~x15 times more 🤠
```sh
oc config set model=gpt-4
```
Make sure you do lowercase `gpt-4`.
### Preface commits with emoji 🤠
[GitMoji](https://gitmoji.dev/) convention is used.

10
package-lock.json generated
View File

@@ -1,15 +1,16 @@
{
"name": "opencommit",
"version": "1.1.51",
"version": "2.0.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "opencommit",
"version": "1.1.51",
"version": "2.0.4",
"license": "MIT",
"dependencies": {
"@clack/prompts": "^0.6.1",
"@dqbd/tiktoken": "^1.0.2",
"axios": "^1.3.4",
"chalk": "^5.2.0",
"cleye": "^1.3.2",
@@ -83,6 +84,11 @@
"node": ">=12"
}
},
"node_modules/@dqbd/tiktoken": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@dqbd/tiktoken/-/tiktoken-1.0.6.tgz",
"integrity": "sha512-umSdeZTy/SbPPKVuZKV/XKyFPmXSN145CcM3iHjBbmhlohBJg7vaDp4cPCW+xNlWL6L2U1sp7T2BD+di2sUKdA=="
},
"node_modules/@esbuild/android-arm": {
"version": "0.15.18",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "opencommit",
"version": "1.1.51",
"version": "2.0.4",
"description": "GPT CLI to auto-generate impressive commits in 1 second. Killing lame commits with AI 🤯🔫",
"keywords": [
"git",

View File

@@ -29,6 +29,8 @@ if (!apiKey && command !== 'config' && mode !== CONFIG_MODES.set) {
process.exit(1);
}
const MODEL = config?.model || 'gpt-3.5-turbo';
class OpenAi {
private openAiApiConfiguration = new OpenAiApiConfiguration({
apiKey: apiKey
@@ -47,7 +49,7 @@ class OpenAi {
): Promise<string | undefined> => {
try {
const { data } = await this.openAI.createChatCompletion({
model: 'gpt-3.5-turbo',
model: MODEL,
messages,
temperature: 0,
top_p: 0.1,

View File

@@ -13,6 +13,7 @@ export enum CONFIG_KEYS {
OPENAI_BASE_PATH = 'OPENAI_BASE_PATH',
description = 'description',
emoji = 'emoji',
model = 'model',
language = 'language'
}
@@ -88,6 +89,15 @@ export const configValidators = {
`${value} is not supported yet`
);
return value;
},
[CONFIG_KEYS.model](value: any) {
validateConfig(
CONFIG_KEYS.OPENAI_BASE_PATH,
value === 'gpt-3.5-turbo' || value === 'gpt-4',
`${value} is not supported yet, use 'gpt-4' or 'gpt-3.5-turbo' (default)`
);
return value;
}
};

View File

@@ -15,7 +15,7 @@ const INIT_MESSAGES_PROMPT: Array<ChatCompletionRequestMessage> = [
{
role: ChatCompletionRequestMessageRoleEnum.System,
// prettier-ignore
content: `You are to act as the author of a commit message in git. Your mission is to create clean and comprehensive commit messages in the conventional commit convention and explain why a change was done. I'll send you an output of 'git diff --staged' command, and you convert it into a commit message.
content: `You are to act as the author of a commit message in git. Your mission is to create clean and comprehensive commit messages in the conventional commit convention and explain WHAT were the changes and WHY the changes were done. I'll send you an output of 'git diff --staged' command, and you convert it into a commit message.
${config?.emoji? 'Use GitMoji convention to preface the commit.': 'Do not preface the commit with anything.'}
${config?.description ? 'Add a short description of WHY the changes are done after the commit message. Don\'t start it with "This commit", just describe the changes.': "Don't add any descriptions to the commit, only commit message."}
Use the present tense. Lines must not be longer than 74 characters. Use ${translation.localLanguage} to answer.`

6
src/i18n/cs.json Normal file
View File

@@ -0,0 +1,6 @@
{
"localLanguage": "česky",
"commitFix": "fix(server.ts): zlepšení velikosti proměnné port na velká písmena PORT",
"commitFeat": "feat(server.ts): přidání podpory pro proměnnou prostředí process.env.PORT",
"commitDescription": "Proměnná port se nyní jmenuje PORT, což odpovídá konvenci pojmenování, protože PORT je konstanta. Podpora proměnné prostředí process.env.PORT umožňuje snadnější správu nastavení při spuštění."
}

View File

@@ -1,6 +1,6 @@
{
"localLanguage": "english",
"commitFix": "fix(server.ts): change port variable case from lowercase port to uppercase PORT",
"commitFeat": "feat(server.ts): add support for process.env.PORT environment variable",
"commitFix": "fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics",
"commitFeat": "feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port",
"commitDescription": "The port variable is now named PORT, which improves consistency with the naming conventions as PORT is a constant. Support for an environment variable allows the application to be more flexible as it can now run on any available port specified via the process.env.PORT environment variable."
}

View File

@@ -1,4 +1,5 @@
import en from '../i18n/en.json' assert { type: 'json' };
import cs from '../i18n/cs.json' assert { type: 'json' };
import de from '../i18n/de.json' assert { type: 'json' };
import fr from '../i18n/fr.json' assert { type: 'json' };
import it from '../i18n/it.json' assert { type: 'json' };
@@ -14,6 +15,7 @@ import nl from '../i18n/nl.json' assert { type: 'json' };
import ru from '../i18n/ru.json' assert { type: 'json' };
import id_ID from '../i18n/id_ID.json' assert { type: 'json' };
import pl from '../i18n/pl.json' assert { type: 'json' };
import tr from '../i18n/tr.json' assert { type: 'json' };
import th from '../i18n/th.json' assert { type: 'json' };
export enum I18nLocals {
@@ -21,6 +23,7 @@ export enum I18nLocals {
'zh_CN' = 'zh_CN',
'zh_TW' = 'zh_TW',
'ja' = 'ja',
'cs' = 'cs',
'de' = 'de',
'fr' = 'fr',
'nl' = 'nl',
@@ -32,6 +35,7 @@ export enum I18nLocals {
'ru' = 'ru',
'id_ID' = 'id_ID',
'pl' = 'pl',
'tr' = 'tr',
'th' = 'th',
}
@@ -40,6 +44,7 @@ export const i18n = {
zh_CN,
zh_TW,
ja,
cs,
de,
fr,
it,
@@ -52,6 +57,7 @@ export const i18n = {
nl,
ru,
pl,
tr,
th
};
@@ -60,6 +66,7 @@ export const I18N_CONFIG_ALIAS: { [key: string]: string[] } = {
zh_TW: ['zh_TW', '繁體中文', '繁體'],
ja: ['ja', 'Japanese', 'にほんご'],
ko: ['ko', 'Korean', '한국어'],
cs: ['cs', 'Czech', 'česky'],
de: ['de', 'German', 'Deutsch'],
fr: ['fr', 'French', 'française'],
it: ['it', 'Italian', 'italiano'],
@@ -72,6 +79,7 @@ export const I18N_CONFIG_ALIAS: { [key: string]: string[] } = {
ru: ['ru', 'Russian', 'русский'],
id_ID: ['id_ID', 'Bahasa', 'bahasa'],
pl: ['pl', 'Polish', 'Polski'],
tr: ['tr', 'Turkish', 'Turkish'],
th: ['th', 'Thai', 'ไทย']
};

6
src/i18n/tr.json Normal file
View File

@@ -0,0 +1,6 @@
{
"localLanguage": "Turkish",
"commitFix": "fix(server.ts): port değişkeni küçük harfli porttan büyük harfli PORT'a değiştirildi",
"commitFeat": "feat(server.ts): process.env.PORT ortam değişkeni için destek eklendi.",
"commitDescription": "Bağlantı noktası değişkeni artık PORT olarak adlandırıldı ve PORT bir sabit değişken olduğu için bu adlandırma tutarlılığı artırır. Ortam değişkeni desteği, artık process.env.PORT ortam değişkeni aracılığıyla belirtilen herhangi bir kullanılabilir bağlantı noktasında çalışabileceğinden uygulamanın daha esnek olmasını sağlar."
}