From 231c7116ea2556a9c5bf6744aefcfce32291dcb7 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Wed, 15 Jan 2025 15:45:52 +0700 Subject: [PATCH] chore: add chat completion field form add remote engine (#4452) --- electron/package.json | 2 +- .../resources/anthropic.json | 2 +- .../resources/cohere.json | 2 +- .../resources/groq.json | 2 +- .../resources/martian.json | 2 +- .../resources/mistral.json | 2 +- .../resources/nvidia.json | 2 +- .../resources/openai.json | 2 +- .../resources/openrouter.json | 2 +- extensions/yarn.lock | 28 +++++++++---------- .../Settings/Engines/ModalAddRemoteEngine.tsx | 28 +++++++++++++++++-- .../Settings/Engines/RemoteEngineSettings.tsx | 22 +++++++++++++-- 12 files changed, 69 insertions(+), 27 deletions(-) diff --git a/electron/package.json b/electron/package.json index 53e0a2255..700f009a5 100644 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "jan", - "version": "0.1.1736864554", + "version": "0.1.4", "main": "./build/main.js", "author": "Jan ", "license": "MIT", diff --git a/extensions/engine-management-extension/resources/anthropic.json b/extensions/engine-management-extension/resources/anthropic.json index a599d7ce3..81d6c99c0 100644 --- a/extensions/engine-management-extension/resources/anthropic.json +++ b/extensions/engine-management-extension/resources/anthropic.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-anthropic-extension", "type": "remote", "engine": "anthropic", - "url": "https://api.anthropic.com", + "url": "https://console.anthropic.com/settings/keys", "api_key": "", "metadata": { "get_models_url": "https://api.anthropic.com/v1/models", diff --git a/extensions/engine-management-extension/resources/cohere.json b/extensions/engine-management-extension/resources/cohere.json index 6cb51dc04..b10e00e5b 100644 --- a/extensions/engine-management-extension/resources/cohere.json +++ b/extensions/engine-management-extension/resources/cohere.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-cohere-extension", "type": "remote", "engine": "cohere", - "url": "https://api.cohere.ai", + "url": "https://dashboard.cohere.com/api-keys", "api_key": "", "metadata": { "get_models_url": "https://api.cohere.ai/v1/models", diff --git a/extensions/engine-management-extension/resources/groq.json b/extensions/engine-management-extension/resources/groq.json index 6be1ce6ef..60d553a92 100644 --- a/extensions/engine-management-extension/resources/groq.json +++ b/extensions/engine-management-extension/resources/groq.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-groq-extension", "type": "remote", "engine": "groq", - "url": "https://api.groq.com", + "url": "https://console.groq.com/keys", "api_key": "", "metadata": { "get_models_url": "https://api.groq.com/openai/v1/models", diff --git a/extensions/engine-management-extension/resources/martian.json b/extensions/engine-management-extension/resources/martian.json index 4523ab754..3a65f3981 100644 --- a/extensions/engine-management-extension/resources/martian.json +++ b/extensions/engine-management-extension/resources/martian.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-martian-extension", "type": "remote", "engine": "martian", - "url": "https://withmartian.com", + "url": "https://withmartian.com/dashboard", "api_key": "", "metadata": { "get_models_url": "https://withmartian.com/api/openai/v1/models", diff --git a/extensions/engine-management-extension/resources/mistral.json b/extensions/engine-management-extension/resources/mistral.json index 4a032c4c8..40a77cbf1 100644 --- a/extensions/engine-management-extension/resources/mistral.json +++ b/extensions/engine-management-extension/resources/mistral.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-mistral-extension", "type": "remote", "engine": "mistral", - "url": "https://api.mistral.ai", + "url": "https://console.mistral.ai/api-keys/", "api_key": "", "metadata": { "get_models_url": "https://api.mistral.ai/v1/models", diff --git a/extensions/engine-management-extension/resources/nvidia.json b/extensions/engine-management-extension/resources/nvidia.json index fa224c32c..240130090 100644 --- a/extensions/engine-management-extension/resources/nvidia.json +++ b/extensions/engine-management-extension/resources/nvidia.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-nvidia-extension", "type": "remote", "engine": "nvidia", - "url": "https://integrate.api.nvidia.com", + "url": "https://org.ngc.nvidia.com/setup/personal-keys", "api_key": "", "metadata": { "get_models_url": "https://integrate.api.nvidia.com/v1/models", diff --git a/extensions/engine-management-extension/resources/openai.json b/extensions/engine-management-extension/resources/openai.json index 8f86a1785..bda24bc38 100644 --- a/extensions/engine-management-extension/resources/openai.json +++ b/extensions/engine-management-extension/resources/openai.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-openai-extension", "type": "remote", "engine": "openai", - "url": "https://api.openai.com", + "url": "https://platform.openai.com/account/api-keys", "api_key": "", "metadata": { "get_models_url": "https://api.openai.com/v1/models", diff --git a/extensions/engine-management-extension/resources/openrouter.json b/extensions/engine-management-extension/resources/openrouter.json index 631b211fa..45dc48414 100644 --- a/extensions/engine-management-extension/resources/openrouter.json +++ b/extensions/engine-management-extension/resources/openrouter.json @@ -2,7 +2,7 @@ "id": "@janhq/inference-openrouter-extension", "type": "remote", "engine": "openrouter", - "url": "https://openrouter.ai", + "url": "https://openrouter.ai/keys", "api_key": "", "metadata": { "get_models_url": "https://openrouter.ai/api/v1/models", diff --git a/extensions/yarn.lock b/extensions/yarn.lock index 46720a888..b340173b8 100644 --- a/extensions/yarn.lock +++ b/extensions/yarn.lock @@ -509,71 +509,71 @@ __metadata: "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=fc09ae&locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994 + checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=fc09ae&locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994 + checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=fc09ae&locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994 + checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=fc09ae&locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994 + checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=fc09ae&locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994 + checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=fc09ae&locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994 + checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c languageName: node linkType: hard "@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension": version: 0.1.10 - resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=b3efad&locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension" + resolution: "@janhq/core@file:../../core/package.tgz#../../core/package.tgz::hash=fc09ae&locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension" dependencies: rxjs: "npm:^7.8.1" ulidx: "npm:^2.3.0" - checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994 + checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c languageName: node linkType: hard diff --git a/web/screens/Settings/Engines/ModalAddRemoteEngine.tsx b/web/screens/Settings/Engines/ModalAddRemoteEngine.tsx index 7ea4877cc..d500616ae 100644 --- a/web/screens/Settings/Engines/ModalAddRemoteEngine.tsx +++ b/web/screens/Settings/Engines/ModalAddRemoteEngine.tsx @@ -11,8 +11,15 @@ import { addRemoteEngine, useGetEngines } from '@/hooks/useEngineManagement' const engineSchema = z.object({ engineName: z.string().min(1, 'Engine name is required'), - modelListUrl: z.string().url('Enter a valid Model List URL'), + modelListUrl: z + .string() + .url('Enter a valid Model List URL') + .or(z.literal('')), headerTemplate: z.string().optional(), + chatCmpletionsUrl: z + .string() + .url('Enter a valid Model List URL') + .or(z.literal('')), apiKey: z.string().optional(), requestFormat: z.string().optional(), responseFormat: z.string().optional(), @@ -29,7 +36,7 @@ const ModalAddRemoteEngine = () => { resolver: zodResolver(engineSchema), defaultValues: { engineName: '', - apiUrl: '', + chatCmpletionsUrl: '', modelListUrl: '', headerTemplate: '', apiKey: '', @@ -42,6 +49,7 @@ const ModalAddRemoteEngine = () => { await addRemoteEngine({ type: 'remote', engine: data.engineName, + url: ' ', api_key: data.apiKey, metadata: { header_template: data.headerTemplate, @@ -49,6 +57,7 @@ const ModalAddRemoteEngine = () => { transform_req: { chat_completions: { template: data.requestFormat, + url: data.chatCmpletionsUrl, }, }, transform_resp: { @@ -112,6 +121,21 @@ const ModalAddRemoteEngine = () => { )} +
+ + + {errors.chatCmpletionsUrl && ( +

+ {errors.chatCmpletionsUrl.message} +

+ )} +
+
@@ -221,7 +235,11 @@ const RemoteEngineSettings = ({ > Advance Settings - + {isActiveAdvanceSetting ? ( + + ) : ( + + )}