From 914055f1f990ade466aae68227d2847f3a9bfb80 Mon Sep 17 00:00:00 2001 From: Webifi Date: Sat, 22 Jul 2023 01:42:21 -0500 Subject: [PATCH] Initial test of Petals as alternative to OpenAI --- package-lock.json | 7 + package.json | 1 + src/lib/ApiUtil.svelte | 2 + src/lib/ChatCompletionResponse.svelte | 12 +- src/lib/ChatRequest.svelte | 269 ++++++++++++++++++-------- src/lib/ChatSettingsModal.svelte | 29 +-- src/lib/Home.svelte | 73 ++++++- src/lib/Models.svelte | 123 +++++++++++- src/lib/Settings.svelte | 24 ++- src/lib/Stats.svelte | 48 +++-- src/lib/Types.svelte | 22 ++- 11 files changed, 469 insertions(+), 141 deletions(-) diff --git a/package-lock.json b/package-lock.json index e645d79..15510ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "eslint-plugin-svelte3": "^4.0.0", "flourite": "^1.2.4", "gpt-tokenizer": "^2.0.0", + "llama-tokenizer-js": "^1.1.1", "postcss": "^8.4.26", "sass": "^1.63.6", "stacking-order": "^2.0.0", @@ -3182,6 +3183,12 @@ "node": ">= 0.8.0" } }, + "node_modules/llama-tokenizer-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/llama-tokenizer-js/-/llama-tokenizer-js-1.1.1.tgz", + "integrity": "sha512-5H2oSJnSufWGhOw6hcCGAqJeB3POmeIBzRklH3cXs0L4MSAYdwoYTodni4j5YVo6jApdhaqaNVU66gNRgXeBRg==", + "dev": true + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", diff --git a/package.json b/package.json index a4dfe5d..ec0de52 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "eslint-plugin-svelte3": "^4.0.0", "flourite": "^1.2.4", "gpt-tokenizer": "^2.0.0", + "llama-tokenizer-js": "^1.1.1", "postcss": "^8.4.26", "sass": "^1.63.6", "stacking-order": "^2.0.0", diff --git a/src/lib/ApiUtil.svelte b/src/lib/ApiUtil.svelte index 77edbc7..ceded8b 100644 --- a/src/lib/ApiUtil.svelte +++ b/src/lib/ApiUtil.svelte @@ -5,10 +5,12 @@ const endpointGenerations = import.meta.env.VITE_ENDPOINT_GENERATIONS || '/v1/images/generations' const endpointModels = import.meta.env.VITE_ENDPOINT_MODELS || '/v1/models' const endpointEmbeddings = import.meta.env.VITE_ENDPOINT_EMBEDDINGS || '/v1/embeddings' + const endpointPetalsV2Websocket = import.meta.env.VITE_PEDALS_WEBSOCKET || 'wss://chat.petals.dev/api/v2/generate' export const getApiBase = ():string => apiBase export const getEndpointCompletions = ():string => endpointCompletions export const getEndpointGenerations = ():string => endpointGenerations export const getEndpointModels = ():string => endpointModels export const getEndpointEmbeddings = ():string => endpointEmbeddings + export const getPetalsV2Websocket = ():string => endpointPetalsV2Websocket \ No newline at end of file diff --git a/src/lib/ChatCompletionResponse.svelte b/src/lib/ChatCompletionResponse.svelte index 03c1c31..a6743f6 100644 --- a/src/lib/ChatCompletionResponse.svelte +++ b/src/lib/ChatCompletionResponse.svelte @@ -1,9 +1,9 @@
@@ -60,6 +69,8 @@ onMount(() => {

+ + {#if !apiKey} @@ -70,6 +81,66 @@ onMount(() => { {/if} + + +
+
+ + {#if showPetalsSettings} +

Set Petals API Endpoint:

+
{ + if (event.target && event.target[0].value) { + setGlobalSettingValueByKey('pedalsEndpoint', (event.target[0].value).trim()) + } else { + setGlobalSettingValueByKey('pedalsEndpoint', '') + } + }} + > +

+ +

+

+ +

+ + +
+

+ Only use {getPetalsV2Websocket()} for testing. You must set up your own Petals server for actual use. +

+

+ Do not send sensitive information when using Petals. +

+

+ For more information on Petals, see + https://github.com/petals-infra/chat.petals.dev +

+ {/if} + {#if !apiKey} +

+ Please enter your OpenAI API key above to use ChatGPT-web. + It is required to use ChatGPT-web. +

+ {/if} +
+
{#if apiKey}
diff --git a/src/lib/Models.svelte b/src/lib/Models.svelte index ed8861d..1289939 100644 --- a/src/lib/Models.svelte +++ b/src/lib/Models.svelte @@ -1,43 +1,63 @@ \ No newline at end of file diff --git a/src/lib/Settings.svelte b/src/lib/Settings.svelte index f4540c6..fb525af 100644 --- a/src/lib/Settings.svelte +++ b/src/lib/Settings.svelte @@ -1,7 +1,6 @@