aicommit/aicommit_groq

37 lines
1.1 KiB
Plaintext
Raw Normal View History

2024-08-06 22:53:06 -04:00
#!/bin/bash
pushd $(pwd) "$@" >/dev/null
TMP_FILE="/tmp/aicommit"
system="You are an expert programmer that values clear, unambiguous communication and are specialized in generating concise and informative git commit messages. Only reply with the commit message and nothing else."
diff=$(git diff --cached)
if [[ 0 -ne $? ]]; then
echo "Failed to get diff."
exit 1
fi
message=$(jq -n \
".messages = [{role: \"system\", content: $(jq -R -s '@json' <<< "$system")}, {role: \"user\", content: $(jq -R -s '@json' <<< "$diff")}] |
.model = \"llama-3.1-70b-versatile\" |
.temperature = 1 |
.max_tokens = 1024 |
.top_p = 1 |
.stream = false |
.stop = null"
)
curl -s "https://api.groq.com/openai/v1/chat/completions" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${GROQ_API_KEY}" \
-d "$message" | jq -r '.choices[0].message.content | gsub("\""; "")' > ${TMP_FILE}
if [[ 0 -ne $? ]]; then
echo "Failed to get response."
exit 1
fi
git commit -e -m "$(cat ${TMP_FILE})" && rm ${TMP_FILE}
popd "$@" >/dev/null