di-sukharev / opencommit

Auto-generate impressive commits with AI in 1 second 🤯🔫
https://www.npmjs.com/package/opencommit
MIT License
5.51k stars 289 forks source link

[Feature]: support groq #346

Open hacker-hackman opened 1 month ago

hacker-hackman commented 1 month ago

Description

Add support for API at groq.com.

Suggested Solution

groq api is compatible with openai api so basically no additional functionality is required.

Alternatives

I achieved groq support by opencommit just by removing corresponding checks for API key name and model name in cli.cjs:

["OCO_OPENAI_API_KEY" /* OCO_OPENAI_API_KEY */](value, config9 = {}) {
  validateConfig(
    "OpenAI API_KEY",
    value || config9.OCO_ANTHROPIC_API_KEY || config9.OCO_AI_PROVIDER == "ollama" || config9.OCO_AI_PROVIDER == "test",
    "You need to provide an OpenAI/Anthropic API key"
  );
  // Removed the check for the key starting with "sk-"
  return value;
},
["OCO_MODEL" /* OCO_MODEL */](value) {
  // Removed the validation that checks if the model name is in the predefined list
  return value;
},
var MODEL = config3?.OCO_MODEL || "gpt-3.5-turbo";
// Removed the validation that checks if the model name is in the predefined list

my .opencommit config:

OCO_OPENAI_API_KEY=MY_SECRET_GROQ_KEY
OCO_ANTHROPIC_API_KEY=undefined
OCO_TOKENS_MAX_INPUT=undefined
OCO_TOKENS_MAX_OUTPUT=undefined
OCO_OPENAI_BASE_PATH=https://api.groq.com/openai/v1
OCO_DESCRIPTION=false
OCO_EMOJI=false
OCO_MODEL=llama3-70b-8192
OCO_LANGUAGE=en
OCO_MESSAGE_TEMPLATE_PLACEHOLDER=$msg
OCO_PROMPT_MODULE=conventional-commit
OCO_AI_PROVIDER=openai
OCO_GITPUSH=false
OCO_ONE_LINE_COMMIT=false

Additional Context

No response

di-sukharev commented 1 month ago

we support openAI and Anthropic and other providers like local ollama, you can make groq work without hacks by adding a new provider similar to what we have for Anthropic support

Nidesh-Arumugam commented 1 month ago

@di-sukharev can you elaborate this ? I am kinda stuck in the same situation and looking for a way around.