From 24e85f535a7fd14796eae6c9f9286751c5ac1b31 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 13 Dec 2023 19:48:30 +0100 Subject: [PATCH 1/2] "Gracefully" exit when receiving sigint --- Dockerfile | 1 + src/index.ts | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9ef0693..32d0e7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,3 +17,4 @@ RUN npx tsc # Run the app CMD ["node", "dist/src/index.js"] +STOPSIGNAL SIGINT diff --git a/src/index.ts b/src/index.ts index 27e5c45..e0506ab 100644 --- a/src/index.ts +++ b/src/index.ts @@ -63,4 +63,17 @@ discord.on("messageCreate", message => { return queueRequest(message); }); -if (require.main === module) void discord.login(config.tokens.Discord); +if (require.main === module) { + void discord.login(config.tokens.Discord); + process.on("SIGINT", () => { + console.log("got SIGINT, exiting"); + //FIXME: finish executing requests then exit + discord.destroy() + .then(() => process.exit()) + .catch((e) => { + console.error("Failed to gracefully exit"); + console.error(e); + process.exit(); + }); + }); +} From 74359067d0e31c7a5ad80a72f01a219407e33ca7 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 13 Dec 2023 21:08:09 +0100 Subject: [PATCH 2/2] functionManager: don't return empty function array for openai openai doesn't accept empty function parameter, it was discovered after I removed the testing buildin function --- src/execution.ts | 2 +- src/funcitonManager.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/execution.ts b/src/execution.ts index 3b8e2fd..44e5710 100644 --- a/src/execution.ts +++ b/src/execution.ts @@ -246,7 +246,7 @@ async function executeFromQueue(channel: string) { ...config.chatCompletionParams, messages: OpenAImessages, // FIXME: don't use new instance of FunctionManager - functions: new FunctionManager().getFunctions(), + functions: new FunctionManager().getFunctionsForOpenAi(), }); logUsedTokens(answer, message, ++functionRanCounter); diff --git a/src/funcitonManager.ts b/src/funcitonManager.ts index 41e35c1..11b1bac 100644 --- a/src/funcitonManager.ts +++ b/src/funcitonManager.ts @@ -62,6 +62,11 @@ export default class FunctionManager { return rvalue; } + public getFunctionsForOpenAi(): ChatCompletionFunctions[] | undefined { + const rvalue = this.getFunctions(); + return rvalue.length > 0 ? rvalue : undefined; + } + public handleFunction(request: ChatCompletionFunctionCall): ChatCompletionMessageParam { // eslint-disable-next-line @typescript-eslint/no-explicit-any let parsedArguments: any;