From 3f5df6ef7c2f4fcd701ba1207d2deccb7564cc05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Jos=C3=A9=20L=C3=B3pez=20Lira?= Date: Wed, 3 May 2023 23:33:06 -0500 Subject: [PATCH] Bugfix/increase tokens (#132) * feat(api.ts): add support for OPENAI_MAX_TOKENS environment variable feat(config.ts): add OPENAI_MAX_TOKENS to CONFIG_KEYS and configValidators * 2.0.2 * 2.0.3 * docs(README.md): add GPT-4 usage instructions and mention the cost difference compared to GPT-3.5-turbo --------- Co-authored-by: di-sukharev --- README.md | 12 ++++++++++++ package-lock.json | 5 +++-- package.json | 2 +- src/api.ts | 3 ++- src/commands/config.ts | 11 +++++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 73d6cdf..4443a73 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/package-lock.json b/package-lock.json index 62df067..e221cda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "opencommit", - "version": "2.0.1", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "opencommit", - "version": "2.0.1", + "version": "2.0.0", "license": "MIT", "dependencies": { "@clack/prompts": "^0.6.1", @@ -22,6 +22,7 @@ }, "bin": { "oc": "out/cli.cjs", + "oco": "out/cli.cjs", "opencommit": "out/cli.cjs" }, "devDependencies": { diff --git a/package.json b/package.json index a3ac925..4cb83f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opencommit", - "version": "2.0.1", + "version": "2.0.3", "description": "GPT CLI to auto-generate impressive commits in 1 second. Killing lame commits with AI 🤯🔫", "keywords": [ "git", diff --git a/src/api.ts b/src/api.ts index d3d65ef..3b38733 100644 --- a/src/api.ts +++ b/src/api.ts @@ -13,6 +13,7 @@ const config = getConfig(); let apiKey = config?.OPENAI_API_KEY; let basePath = config?.OPENAI_BASE_PATH; +let maxTokens = config?.OPENAI_MAX_TOKENS; const [command, mode] = process.argv.slice(2); @@ -53,7 +54,7 @@ class OpenAi { messages, temperature: 0, top_p: 0.1, - max_tokens: 196 + max_tokens: maxTokens ?? 196 }); const message = data.choices[0].message; diff --git a/src/commands/config.ts b/src/commands/config.ts index 68aa7ea..9f16034 100644 --- a/src/commands/config.ts +++ b/src/commands/config.ts @@ -10,6 +10,7 @@ import { getI18nLocal } from '../i18n'; export enum CONFIG_KEYS { OPENAI_API_KEY = 'OPENAI_API_KEY', + OPENAI_MAX_TOKENS = 'OPENAI_MAX_TOKENS', OPENAI_BASE_PATH = 'OPENAI_BASE_PATH', description = 'description', emoji = 'emoji', @@ -63,6 +64,16 @@ export const configValidators = { return value; }, + [CONFIG_KEYS.OPENAI_MAX_TOKENS](value: any) { + validateConfig( + CONFIG_KEYS.OPENAI_MAX_TOKENS, + typeof value === 'number', + 'Must be a number' + ); + + return value; + }, + [CONFIG_KEYS.emoji](value: any) { validateConfig( CONFIG_KEYS.emoji,