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 @@