chore: add chat completion field form add remote engine (#4452)
This commit is contained in:
parent
06ee10be1b
commit
231c7116ea
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "jan",
|
"name": "jan",
|
||||||
"version": "0.1.1736864554",
|
"version": "0.1.4",
|
||||||
"main": "./build/main.js",
|
"main": "./build/main.js",
|
||||||
"author": "Jan <service@jan.ai>",
|
"author": "Jan <service@jan.ai>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-anthropic-extension",
|
"id": "@janhq/inference-anthropic-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "anthropic",
|
"engine": "anthropic",
|
||||||
"url": "https://api.anthropic.com",
|
"url": "https://console.anthropic.com/settings/keys",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://api.anthropic.com/v1/models",
|
"get_models_url": "https://api.anthropic.com/v1/models",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-cohere-extension",
|
"id": "@janhq/inference-cohere-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "cohere",
|
"engine": "cohere",
|
||||||
"url": "https://api.cohere.ai",
|
"url": "https://dashboard.cohere.com/api-keys",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://api.cohere.ai/v1/models",
|
"get_models_url": "https://api.cohere.ai/v1/models",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-groq-extension",
|
"id": "@janhq/inference-groq-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "groq",
|
"engine": "groq",
|
||||||
"url": "https://api.groq.com",
|
"url": "https://console.groq.com/keys",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://api.groq.com/openai/v1/models",
|
"get_models_url": "https://api.groq.com/openai/v1/models",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-martian-extension",
|
"id": "@janhq/inference-martian-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "martian",
|
"engine": "martian",
|
||||||
"url": "https://withmartian.com",
|
"url": "https://withmartian.com/dashboard",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://withmartian.com/api/openai/v1/models",
|
"get_models_url": "https://withmartian.com/api/openai/v1/models",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-mistral-extension",
|
"id": "@janhq/inference-mistral-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "mistral",
|
"engine": "mistral",
|
||||||
"url": "https://api.mistral.ai",
|
"url": "https://console.mistral.ai/api-keys/",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://api.mistral.ai/v1/models",
|
"get_models_url": "https://api.mistral.ai/v1/models",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-nvidia-extension",
|
"id": "@janhq/inference-nvidia-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "nvidia",
|
"engine": "nvidia",
|
||||||
"url": "https://integrate.api.nvidia.com",
|
"url": "https://org.ngc.nvidia.com/setup/personal-keys",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://integrate.api.nvidia.com/v1/models",
|
"get_models_url": "https://integrate.api.nvidia.com/v1/models",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-openai-extension",
|
"id": "@janhq/inference-openai-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "openai",
|
"engine": "openai",
|
||||||
"url": "https://api.openai.com",
|
"url": "https://platform.openai.com/account/api-keys",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://api.openai.com/v1/models",
|
"get_models_url": "https://api.openai.com/v1/models",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"id": "@janhq/inference-openrouter-extension",
|
"id": "@janhq/inference-openrouter-extension",
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"engine": "openrouter",
|
"engine": "openrouter",
|
||||||
"url": "https://openrouter.ai",
|
"url": "https://openrouter.ai/keys",
|
||||||
"api_key": "",
|
"api_key": "",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"get_models_url": "https://openrouter.ai/api/v1/models",
|
"get_models_url": "https://openrouter.ai/api/v1/models",
|
||||||
|
|||||||
@ -509,71 +509,71 @@ __metadata:
|
|||||||
|
|
||||||
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension":
|
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fassistant-extension%40workspace%3Aassistant-extension":
|
||||||
version: 0.1.10
|
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:
|
dependencies:
|
||||||
rxjs: "npm:^7.8.1"
|
rxjs: "npm:^7.8.1"
|
||||||
ulidx: "npm:^2.3.0"
|
ulidx: "npm:^2.3.0"
|
||||||
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
|
checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension":
|
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fconversational-extension%40workspace%3Aconversational-extension":
|
||||||
version: 0.1.10
|
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:
|
dependencies:
|
||||||
rxjs: "npm:^7.8.1"
|
rxjs: "npm:^7.8.1"
|
||||||
ulidx: "npm:^2.3.0"
|
ulidx: "npm:^2.3.0"
|
||||||
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
|
checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension":
|
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fengine-management-extension%40workspace%3Aengine-management-extension":
|
||||||
version: 0.1.10
|
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:
|
dependencies:
|
||||||
rxjs: "npm:^7.8.1"
|
rxjs: "npm:^7.8.1"
|
||||||
ulidx: "npm:^2.3.0"
|
ulidx: "npm:^2.3.0"
|
||||||
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
|
checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension":
|
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Finference-cortex-extension%40workspace%3Ainference-cortex-extension":
|
||||||
version: 0.1.10
|
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:
|
dependencies:
|
||||||
rxjs: "npm:^7.8.1"
|
rxjs: "npm:^7.8.1"
|
||||||
ulidx: "npm:^2.3.0"
|
ulidx: "npm:^2.3.0"
|
||||||
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
|
checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension":
|
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmodel-extension%40workspace%3Amodel-extension":
|
||||||
version: 0.1.10
|
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:
|
dependencies:
|
||||||
rxjs: "npm:^7.8.1"
|
rxjs: "npm:^7.8.1"
|
||||||
ulidx: "npm:^2.3.0"
|
ulidx: "npm:^2.3.0"
|
||||||
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
|
checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension":
|
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Fmonitoring-extension%40workspace%3Amonitoring-extension":
|
||||||
version: 0.1.10
|
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:
|
dependencies:
|
||||||
rxjs: "npm:^7.8.1"
|
rxjs: "npm:^7.8.1"
|
||||||
ulidx: "npm:^2.3.0"
|
ulidx: "npm:^2.3.0"
|
||||||
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
|
checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension":
|
"@janhq/core@file:../../core/package.tgz::locator=%40janhq%2Ftensorrt-llm-extension%40workspace%3Atensorrt-llm-extension":
|
||||||
version: 0.1.10
|
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:
|
dependencies:
|
||||||
rxjs: "npm:^7.8.1"
|
rxjs: "npm:^7.8.1"
|
||||||
ulidx: "npm:^2.3.0"
|
ulidx: "npm:^2.3.0"
|
||||||
checksum: 10c0/a617e70c606d6f463fbd82488704a02f75290323c07fcf0242641732efa5e9d067062595f27cefade0ac79b47796ac34ef57ac439e82a5a4888b30e37d019994
|
checksum: 10c0/8e1830ac4f0f26634d3bb243528f7a18fd6e9fa684c18e0a3b85e30d6386d9ef5b0348ddcaaecf27b2e8e8625983b4dc8591564ac6d42e899205bab57385573c
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
@ -11,8 +11,15 @@ import { addRemoteEngine, useGetEngines } from '@/hooks/useEngineManagement'
|
|||||||
|
|
||||||
const engineSchema = z.object({
|
const engineSchema = z.object({
|
||||||
engineName: z.string().min(1, 'Engine name is required'),
|
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(),
|
headerTemplate: z.string().optional(),
|
||||||
|
chatCmpletionsUrl: z
|
||||||
|
.string()
|
||||||
|
.url('Enter a valid Model List URL')
|
||||||
|
.or(z.literal('')),
|
||||||
apiKey: z.string().optional(),
|
apiKey: z.string().optional(),
|
||||||
requestFormat: z.string().optional(),
|
requestFormat: z.string().optional(),
|
||||||
responseFormat: z.string().optional(),
|
responseFormat: z.string().optional(),
|
||||||
@ -29,7 +36,7 @@ const ModalAddRemoteEngine = () => {
|
|||||||
resolver: zodResolver(engineSchema),
|
resolver: zodResolver(engineSchema),
|
||||||
defaultValues: {
|
defaultValues: {
|
||||||
engineName: '',
|
engineName: '',
|
||||||
apiUrl: '',
|
chatCmpletionsUrl: '',
|
||||||
modelListUrl: '',
|
modelListUrl: '',
|
||||||
headerTemplate: '',
|
headerTemplate: '',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
@ -42,6 +49,7 @@ const ModalAddRemoteEngine = () => {
|
|||||||
await addRemoteEngine({
|
await addRemoteEngine({
|
||||||
type: 'remote',
|
type: 'remote',
|
||||||
engine: data.engineName,
|
engine: data.engineName,
|
||||||
|
url: ' ',
|
||||||
api_key: data.apiKey,
|
api_key: data.apiKey,
|
||||||
metadata: {
|
metadata: {
|
||||||
header_template: data.headerTemplate,
|
header_template: data.headerTemplate,
|
||||||
@ -49,6 +57,7 @@ const ModalAddRemoteEngine = () => {
|
|||||||
transform_req: {
|
transform_req: {
|
||||||
chat_completions: {
|
chat_completions: {
|
||||||
template: data.requestFormat,
|
template: data.requestFormat,
|
||||||
|
url: data.chatCmpletionsUrl,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
transform_resp: {
|
transform_resp: {
|
||||||
@ -112,6 +121,21 @@ const ModalAddRemoteEngine = () => {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="space-y-2">
|
||||||
|
<label htmlFor="chatCmpletionsUrl" className="font-semibold">
|
||||||
|
{renderLabel('Chat Completion URL', false)}
|
||||||
|
</label>
|
||||||
|
<Input
|
||||||
|
placeholder="Enter your chat completion URL."
|
||||||
|
{...register('chatCmpletionsUrl')}
|
||||||
|
/>
|
||||||
|
{errors.chatCmpletionsUrl && (
|
||||||
|
<p className="text-sm text-red-500">
|
||||||
|
{errors.chatCmpletionsUrl.message}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
<label htmlFor="modelListUrl" className="font-semibold">
|
<label htmlFor="modelListUrl" className="font-semibold">
|
||||||
{renderLabel(
|
{renderLabel(
|
||||||
|
|||||||
@ -17,11 +17,13 @@ import { ScrollArea, Input, TextArea } from '@janhq/joi'
|
|||||||
import { useAtomValue } from 'jotai'
|
import { useAtomValue } from 'jotai'
|
||||||
|
|
||||||
import { set } from 'lodash'
|
import { set } from 'lodash'
|
||||||
import { ChevronRight } from 'lucide-react'
|
import { ChevronDown, ChevronRight } from 'lucide-react'
|
||||||
import { twMerge } from 'tailwind-merge'
|
import { twMerge } from 'tailwind-merge'
|
||||||
|
|
||||||
import { updateEngine, useGetEngines } from '@/hooks/useEngineManagement'
|
import { updateEngine, useGetEngines } from '@/hooks/useEngineManagement'
|
||||||
|
|
||||||
|
import { getTitleByEngine } from '@/utils/modelEngine'
|
||||||
|
|
||||||
import { downloadedModelsAtom } from '@/helpers/atoms/Model.atom'
|
import { downloadedModelsAtom } from '@/helpers/atoms/Model.atom'
|
||||||
|
|
||||||
const RemoteEngineSettings = ({
|
const RemoteEngineSettings = ({
|
||||||
@ -124,6 +126,18 @@ const RemoteEngineSettings = ({
|
|||||||
<h6 className="line-clamp-1 font-semibold">API Key</h6>
|
<h6 className="line-clamp-1 font-semibold">API Key</h6>
|
||||||
<p className="mt-1 text-[hsla(var(--text-secondary))]">
|
<p className="mt-1 text-[hsla(var(--text-secondary))]">
|
||||||
Enter your authentication key to activate this engine.
|
Enter your authentication key to activate this engine.
|
||||||
|
{engine.engine && engine.url && (
|
||||||
|
<span>
|
||||||
|
Get your API key from{' '}
|
||||||
|
<a
|
||||||
|
target="_blank"
|
||||||
|
href={engine.url}
|
||||||
|
className="text-[hsla(var(--app-link))]"
|
||||||
|
>
|
||||||
|
{getTitleByEngine(engine.engine)}.
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
@ -221,7 +235,11 @@ const RemoteEngineSettings = ({
|
|||||||
>
|
>
|
||||||
<span>Advance Settings</span>
|
<span>Advance Settings</span>
|
||||||
<span>
|
<span>
|
||||||
<ChevronRight size={14} className="ml-1" />
|
{isActiveAdvanceSetting ? (
|
||||||
|
<ChevronDown size={14} className="ml-1" />
|
||||||
|
) : (
|
||||||
|
<ChevronRight size={14} className="ml-1" />
|
||||||
|
)}
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user