mirror of
https://github.com/mudler/LocalAI.git
synced 2025-03-10 22:43:59 +00:00
ci: add workflow to comment new Opened PRs (#2892)
* ci: add workflow to comment new Opened PRs Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * Update comment-pr.yaml eliminate a stray ' character that was terminating the shell script by slightly rewriting the prompt Signed-off-by: Dave <dave@gray101.com> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Signed-off-by: Dave <dave@gray101.com> Co-authored-by: Dave <dave@gray101.com>
This commit is contained in:
parent
09de674b03
commit
f521e50fa8
75
.github/workflows/comment-pr.yaml
vendored
Normal file
75
.github/workflows/comment-pr.yaml
vendored
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
name: Comment PRs
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
comment-pr:
|
||||||
|
env:
|
||||||
|
MODEL_NAME: hermes-2-theta-llama-3-8b
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # needed to checkout all branches for this Action to work
|
||||||
|
- name: Start LocalAI
|
||||||
|
run: |
|
||||||
|
echo "Starting LocalAI..."
|
||||||
|
docker run -e -ti -d --name local-ai -p 8080:8080 localai/localai:master-ffmpeg-core run --debug $MODEL_NAME
|
||||||
|
until [ "`docker inspect -f {{.State.Health.Status}} local-ai`" == "healthy" ]; do echo "Waiting for container to be ready"; docker logs --tail 10 local-ai; sleep 2; done
|
||||||
|
# Check the PR diff using the current branch and the base branch of the PR
|
||||||
|
- uses: GrantBirki/git-diff-action@v2.7.0
|
||||||
|
id: git-diff-action
|
||||||
|
with:
|
||||||
|
json_diff_file_output: diff.json
|
||||||
|
raw_diff_file_output: diff.txt
|
||||||
|
file_output_only: "true"
|
||||||
|
- name: Summarize
|
||||||
|
env:
|
||||||
|
DIFF: ${{ steps.git-diff-action.outputs.raw-diff-path }}
|
||||||
|
id: summarize
|
||||||
|
run: |
|
||||||
|
input="$(cat $DIFF)"
|
||||||
|
|
||||||
|
# Define the LocalAI API endpoint
|
||||||
|
API_URL="http://localhost:8080/chat/completions"
|
||||||
|
|
||||||
|
# Create a JSON payload using jq to handle special characters
|
||||||
|
json_payload=$(jq -n --arg input "$input" '{
|
||||||
|
model: "'$MODEL_NAME'",
|
||||||
|
messages: [
|
||||||
|
{
|
||||||
|
role: "system",
|
||||||
|
content: "You are LocalAI-bot in Github that helps understanding PRs and assess complexity. Explain what has changed in this PR diff and why"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: $input
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}')
|
||||||
|
|
||||||
|
# Send the request to LocalAI
|
||||||
|
response=$(curl -s -X POST $API_URL \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "$json_payload")
|
||||||
|
|
||||||
|
# Extract the summary from the response
|
||||||
|
summary="$(echo $response | jq -r '.choices[0].message.content')"
|
||||||
|
|
||||||
|
# Print the summary
|
||||||
|
# -H "Authorization: Bearer $API_KEY" \
|
||||||
|
echo "Summary:"
|
||||||
|
echo "$summary"
|
||||||
|
echo "payload sent"
|
||||||
|
echo "$json_payload"
|
||||||
|
{
|
||||||
|
echo 'message<<EOF'
|
||||||
|
echo "$summary"
|
||||||
|
echo EOF
|
||||||
|
} >> "$GITHUB_OUTPUT"
|
||||||
|
docker logs --tail 10 local-ai
|
||||||
|
- name: Comment PR with execution number
|
||||||
|
uses: thollander/actions-comment-pull-request@v2
|
||||||
|
with:
|
||||||
|
message: ${{ steps.summarize.outputs.message }}
|
||||||
|
comment_tag: execution
|
Loading…
x
Reference in New Issue
Block a user