From ec55e0dc8974c5972711169cdf221690fe63d923 Mon Sep 17 00:00:00 2001 From: Vishal K Date: Sun, 24 Dec 2023 08:16:44 +0530 Subject: [PATCH] First Release AI action draft --- .gitignore | 2 + README.md | 11 ++- README.pdf | Bin 0 -> 40965 bytes action.yml | 21 +++++ index.js | 46 ++++++++++ package-lock.json | 228 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 17 ++++ 7 files changed, 324 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 README.pdf create mode 100644 action.yml create mode 100644 index.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a7554c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# dependencies +/node_modules \ No newline at end of file diff --git a/README.md b/README.md index 7d92a2e..8d21956 100644 --- a/README.md +++ b/README.md @@ -1 +1,10 @@ -# Festive-Greeting \ No newline at end of file +# Festive-Greeting + +## Example usage + +```yaml +uses: Vishalk91-4/Festive-Greeting +with: + prompt: 'Vishal is a dear friend of mine, Diwali' + api-key: ${{ secrets.AI_API_KEY }} + endpoint: ${{ secrets.AI_ENDPOINT }} \ No newline at end of file diff --git a/README.pdf b/README.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cb3b29c5656159b69439f7e5a2db4cf227f28454 GIT binary patch literal 40965 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 SGZD1m+AM!}Wo48D`hNh{PQGUV literal 0 HcmV?d00001 diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..551ce77 --- /dev/null +++ b/action.yml @@ -0,0 +1,21 @@ +name: 'Festive Greetings' +description: 'Generate Festival greetings with OpenAI' +inputs: + prompt: # id of input + description: 'Let the AI know who the message is for and provide context about the person.' + required: true + default: 'Vishal is a friend of mine' + api-key: + description: 'The API key for the OpenAI API' + required: true + default: '0123456789' + endpoint: + description: 'Your endpoint for the Azure OpenAI API' + required: true + default: '' +outputs: + seasons-greeting: # id of output + description: 'The AI generated Festival greeting' +runs: + using: 'node20' + main: 'index.js' diff --git a/index.js b/index.js new file mode 100644 index 0000000..0e12080 --- /dev/null +++ b/index.js @@ -0,0 +1,46 @@ +const core = require('@actions/core'); +const github = require('@actions/github'); +const httpm = require('@actions/http-client'); + +async function makePostRequest() { + const prompt = core.getInput('prompt'); + const apikey = core.getInput('api-key'); + const endpoint = core.getInput('endpoint'); + + let http = new httpm.HttpClient('http-client'); + let data = { + messages: [ + { role: 'system', content: 'You generate short Festival greeting. The message should be 160 characters or less to fit into an SMS. The user will tell you who the message is for and will provide more context if needed. You will only answer with the text for the sms, nothing else.' }, + { role: 'user', content: 'Mother, haven\'t seen her for a long time, Birthday' }, + { role: 'assistant', content: 'Merry Birthday Mum! I miss you! 🎂 ' }, + { role: 'user', content: 'Laura, is a colleague of mine, Christmas' }, + { role: 'assistant', content: 'Have a great Holiday Season Laura! Thanks for the great partnership this year. 🎁✨' }, + { role: 'user', content: prompt } + ], + max_tokens: 800, + temperature: 0.7, + frequency_penalty: 0, + presence_penalty: 0, + top_p: 0.95, + stop: null + }; + let headers = { + 'Content-Type': 'application/json', + 'api-key': apikey + }; + + let res = await http.postJson(endpoint, data, headers); + return res.result; +} + +try { + makePostRequest().then(response => { + let message = response.choices[0].message.content; + console.log(message); + core.setOutput("seasons-greeting", message); + }).catch(error => { + core.setFailed(error.message); + }); +} catch (error) { + core.setFailed(error.message); +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..440a80a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,228 @@ +{ + "name": "festive-greeting", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "festive-greeting", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/github": "^6.0.0", + "@actions/http-client": "^2.2.0" + } + }, + "node_modules/@actions/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", + "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "node_modules/@actions/github": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz", + "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==", + "dependencies": { + "@actions/http-client": "^2.2.0", + "@octokit/core": "^5.0.1", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0" + } + }, + "node_modules/@actions/http-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", + "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.2.tgz", + "integrity": "sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.0.0", + "@octokit/request": "^8.0.2", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", + "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", + "dependencies": { + "@octokit/types": "^12.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", + "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", + "dependencies": { + "@octokit/request": "^8.0.1", + "@octokit/types": "^12.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", + "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz", + "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==", + "dependencies": { + "@octokit/types": "^12.4.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz", + "integrity": "sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==", + "dependencies": { + "@octokit/types": "^12.3.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, + "node_modules/@octokit/request": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.6.tgz", + "integrity": "sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==", + "dependencies": { + "@octokit/endpoint": "^9.0.0", + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz", + "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==", + "dependencies": { + "@octokit/types": "^12.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz", + "integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==", + "dependencies": { + "@octokit/openapi-types": "^19.1.0" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/undici": { + "version": "5.28.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", + "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..bfc95a5 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "festive-greeting", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/github": "^6.0.0", + "@actions/http-client": "^2.2.0" + } +}