From 1ca762bcc0bc1f22b6d653384d00e9b8fb580c59 Mon Sep 17 00:00:00 2001 From: Niek van der Maas Date: Mon, 6 Mar 2023 19:06:16 +0100 Subject: [PATCH] Add better types for `responses` --- src/lib/Chat.svelte | 6 +++--- src/lib/Types.svelte | 26 ++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/lib/Chat.svelte b/src/lib/Chat.svelte index 2f1247d..b62968c 100644 --- a/src/lib/Chat.svelte +++ b/src/lib/Chat.svelte @@ -91,7 +91,7 @@ }) ).json(); } catch (e) { - response = { error: { message: e.message } }; + response = { status: "error", error: { message: e.message } }; } // Hide updating bar @@ -113,7 +113,7 @@ const response = await sendRequest(chat.messages); - if (response.error) { + if (response.status === "error") { addMessage(chatId, { role: "system", content: `Error: ${response.error.message}`, @@ -135,7 +135,7 @@ const response = await sendRequest(chat.messages); - if (response.error) { + if (response.status === "error") { addMessage(chatId, { role: "system", content: `Error: ${response.error.message}`, diff --git a/src/lib/Types.svelte b/src/lib/Types.svelte index 7a5f608..256043c 100644 --- a/src/lib/Types.svelte +++ b/src/lib/Types.svelte @@ -17,6 +17,28 @@ total_tokens: number; }; - // TODO: add better type here, for now a generic JSON type - export type Response = Record; + type ResponseOK = { + status: "ok"; + id: string; + object: string; + created: number; + choices: { + index: number; + message: Message; + finish_reason: string; + }[]; + usage: Usage; + }; + + type ResponseError = { + status: "error"; + error: { + message: string; + type?: string; + param?: string | null; + code?: string | null; + }; + }; + + export type Response = ResponseOK | ResponseError;