From d852219c4c3b459426179b5af4f12bc4cda664c8 Mon Sep 17 00:00:00 2001 From: NamH Date: Tue, 23 Jan 2024 12:30:43 +0700 Subject: [PATCH 01/12] fix(API): #1720 host/port provided in the local API server does not fully applied (#1721) Signed-off-by: James Co-authored-by: James --- docs/openapi/jan.yaml | 4 ++-- server/index.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/openapi/jan.yaml b/docs/openapi/jan.yaml index e3463c94c..bfff0ad73 100644 --- a/docs/openapi/jan.yaml +++ b/docs/openapi/jan.yaml @@ -14,7 +14,7 @@ license: name: AGPLv3 url: https://github.com/janhq/nitro/blob/main/LICENSE servers: - - url: http://localhost:1337/v1/ + - url: /v1 tags: - name: Models description: List and describe the various models available in the API. @@ -642,4 +642,4 @@ x-webhooks: content: application/json: schema: - $ref: specs/threads.yaml#/components/schemas/ThreadObject \ No newline at end of file + $ref: specs/threads.yaml#/components/schemas/ThreadObject diff --git a/server/index.ts b/server/index.ts index 1d3752680..05bfdca96 100644 --- a/server/index.ts +++ b/server/index.ts @@ -116,7 +116,7 @@ export const startServer = async (configs?: ServerConfig) => { // Log server listening if (isVerbose) logServer( - `Debug: JAN API listening at: http://${JAN_API_HOST}:${JAN_API_PORT}` + `Debug: JAN API listening at: http://${hostSetting}:${portSetting}` ); }); } catch (e) { From 666bc01e89de06c4fbf04a8a2b52135a971bcc5c Mon Sep 17 00:00:00 2001 From: NamH Date: Tue, 23 Jan 2024 13:40:50 +0700 Subject: [PATCH 02/12] fix(Model): #1662 imported model does not use gpu (#1723) Signed-off-by: James Co-authored-by: James --- extensions/model-extension/src/index.ts | 10 +++++++++- models/config/default-model.json | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/extensions/model-extension/src/index.ts b/extensions/model-extension/src/index.ts index d80482985..f41999bd8 100644 --- a/extensions/model-extension/src/index.ts +++ b/extensions/model-extension/src/index.ts @@ -72,7 +72,10 @@ export default class JanModelExtension extends ModelExtension { * @param network - Optional object to specify proxy/whether to ignore SSL certificates. * @returns A Promise that resolves when the model is downloaded. */ - async downloadModel(model: Model, network?: { ignoreSSL?: boolean; proxy?: string }): Promise { + async downloadModel( + model: Model, + network?: { ignoreSSL?: boolean; proxy?: string } + ): Promise { // create corresponding directory const modelDirPath = await joinPath([JanModelExtension._homeDir, model.id]) if (!(await fs.existsSync(modelDirPath))) await fs.mkdirSync(modelDirPath) @@ -294,6 +297,11 @@ export default class JanModelExtension extends ModelExtension { name: dirName, created: Date.now(), description: `${dirName} - user self import model`, + metadata: { + size: binaryFileSize, + author: 'User', + tags: [], + }, } const modelFilePath = await joinPath([ diff --git a/models/config/default-model.json b/models/config/default-model.json index 50bf067c1..2263625f4 100644 --- a/models/config/default-model.json +++ b/models/config/default-model.json @@ -9,7 +9,6 @@ "description": "User self import model", "settings": { "ctx_len": 4096, - "ngl": 0, "embedding": false, "prompt_template": "{system_message}\n### Instruction: {prompt}\n### Response:" }, From 445d052201895065b438eecf78d33feb35987ddb Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 23 Jan 2024 01:52:18 +0900 Subject: [PATCH 03/12] docs: add troubleshoot unexpected token --- .../06-unexpected-token.mdx | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs/docs/guides/08-troubleshooting/06-unexpected-token.mdx diff --git a/docs/docs/guides/08-troubleshooting/06-unexpected-token.mdx b/docs/docs/guides/08-troubleshooting/06-unexpected-token.mdx new file mode 100644 index 000000000..973001f1b --- /dev/null +++ b/docs/docs/guides/08-troubleshooting/06-unexpected-token.mdx @@ -0,0 +1,20 @@ +--- +title: Unexpected Token +slug: /troubleshooting/unexpected-token +description: Unexpected token is not a valid JSON +keywords: + [ + Jan AI, + Jan, + ChatGPT alternative, + local AI, + private AI, + conversational AI, + no-subscription fee, + large language model, + troubleshooting, + unexpected token, + ] +--- + +1. You may receive an error response `Error occurred: Unexpected token '<', " Date: Tue, 23 Jan 2024 14:47:41 +0700 Subject: [PATCH 04/12] Correct download url readme (#1724) Co-authored-by: Hien To --- .github/workflows/jan-electron-build-nightly.yml | 8 ++++---- .github/workflows/jan-electron-build-pre-release.yml | 4 ++-- README.md | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/jan-electron-build-nightly.yml b/.github/workflows/jan-electron-build-nightly.yml index 2a7f3eefd..15390b752 100644 --- a/.github/workflows/jan-electron-build-nightly.yml +++ b/.github/workflows/jan-electron-build-nightly.yml @@ -69,9 +69,9 @@ jobs: if: github.event_name == 'schedule' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml with: - ref: refs/heads/main + ref: refs/heads/dev build_reason: Nightly - push_to_branch: main + push_to_branch: dev new_version: ${{ needs.get-update-version.outputs.new_version }} noti-discord-manual-and-update-url-readme: @@ -80,7 +80,7 @@ jobs: if: github.event_name == 'workflow_dispatch' && github.event.inputs.public_provider == 'cloudflare-r2' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml with: - ref: refs/heads/main + ref: refs/heads/dev build_reason: Manual - push_to_branch: main + push_to_branch: dev new_version: ${{ needs.get-update-version.outputs.new_version }} diff --git a/.github/workflows/jan-electron-build-pre-release.yml b/.github/workflows/jan-electron-build-pre-release.yml index c3580105b..d37cda5ab 100644 --- a/.github/workflows/jan-electron-build-pre-release.yml +++ b/.github/workflows/jan-electron-build-pre-release.yml @@ -46,7 +46,7 @@ jobs: if: github.event_name == 'push' && github.ref == 'refs/heads/main' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml with: - ref: refs/heads/main + ref: refs/heads/dev build_reason: Nightly - push_to_branch: main + push_to_branch: dev new_version: ${{ needs.get-update-version.outputs.new_version }} diff --git a/README.md b/README.md index fee40a1b3..18b2b3aa5 100644 --- a/README.md +++ b/README.md @@ -76,31 +76,31 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute Experimental (Nightly Build) - + jan.exe - + Intel - + M1/M2 - + jan.deb - + jan.AppImage From 2d7ec01c329e763aa0b123eaaf18fcb9a450d191 Mon Sep 17 00:00:00 2001 From: Service Account Date: Tue, 23 Jan 2024 08:25:25 +0000 Subject: [PATCH 05/12] janhq/jan: Update README.md with nightly build artifact URL --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 18b2b3aa5..04776acb5 100644 --- a/README.md +++ b/README.md @@ -76,31 +76,31 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute Experimental (Nightly Build) - + jan.exe - + Intel - + M1/M2 - + jan.deb - + jan.AppImage From 5b38d0e9bde1bbb10694f76e351aa5ef3e3366ba Mon Sep 17 00:00:00 2001 From: Service Account Date: Tue, 23 Jan 2024 09:53:01 +0000 Subject: [PATCH 06/12] janhq/jan: Update README.md with nightly build artifact URL --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 04776acb5..49ff79c8a 100644 --- a/README.md +++ b/README.md @@ -76,31 +76,31 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute Experimental (Nightly Build) - + jan.exe - + Intel - + M1/M2 - + jan.deb - + jan.AppImage From 994f4cea99e018133840a16755e63fb632aa419a Mon Sep 17 00:00:00 2001 From: Service Account Date: Tue, 23 Jan 2024 10:18:35 +0000 Subject: [PATCH 07/12] janhq/jan: Update README.md with nightly build artifact URL --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 49ff79c8a..dc933eb9a 100644 --- a/README.md +++ b/README.md @@ -76,31 +76,31 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute Experimental (Nightly Build) - + jan.exe - + Intel - + M1/M2 - + jan.deb - + jan.AppImage From fe1baed116e240f349c1a11653291ef40e3315a7 Mon Sep 17 00:00:00 2001 From: hiento09 <136591877+hiento09@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:18:55 +0700 Subject: [PATCH 08/12] Override Cloudflare R2 public with generic provider (#1727) Co-authored-by: Hien To --- .github/workflows/template-build-linux-x64.yml | 2 +- .github/workflows/template-build-macos.yml | 4 ++-- .github/workflows/template-build-windows-x64.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/template-build-linux-x64.yml b/.github/workflows/template-build-linux-x64.yml index f39f2302e..c6d1eac97 100644 --- a/.github/workflows/template-build-linux-x64.yml +++ b/.github/workflows/template-build-linux-x64.yml @@ -58,7 +58,7 @@ jobs: mv /tmp/package.json electron/package.json jq --arg version "${{ inputs.new_version }}" '.version = $version' web/package.json > /tmp/package.json mv /tmp/package.json web/package.json - jq '.build.publish = [{"provider": "s3", "bucket": "${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }}", "region": "auto", "endpoint": "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com", "path": "${{ inputs.cloudflare_r2_path }}", "channel": "latest"}]' electron/package.json > /tmp/package.json + jq '.build.publish = [{"provider": "generic", "url": "${{ secrets.CLOUDFLARE_R2_PUBLIC_URL }}", "channel": "latest"}, {"provider": "s3", "bucket": "${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }}", "region": "auto", "endpoint": "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com", "path": "${{ inputs.cloudflare_r2_path }}", "channel": "latest"}]' electron/package.json > /tmp/package.json mv /tmp/package.json electron/package.json cat electron/package.json diff --git a/.github/workflows/template-build-macos.yml b/.github/workflows/template-build-macos.yml index 8295947af..bc48e6c21 100644 --- a/.github/workflows/template-build-macos.yml +++ b/.github/workflows/template-build-macos.yml @@ -1,4 +1,4 @@ -name: build-linux-x64 +name: build-macos on: workflow_call: inputs: @@ -70,7 +70,7 @@ jobs: jq --arg version "${{ inputs.new_version }}" '.version = $version' web/package.json > /tmp/package.json mv /tmp/package.json web/package.json - jq '.build.publish = [{"provider": "s3", "bucket": "${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }}", "region": "auto", "endpoint": "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com", "path": "${{ inputs.cloudflare_r2_path }}", "channel": "latest"}]' electron/package.json > /tmp/package.json + jq '.build.publish = [{"provider": "generic", "url": "${{ secrets.CLOUDFLARE_R2_PUBLIC_URL }}", "channel": "latest"}, {"provider": "s3", "bucket": "${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }}", "region": "auto", "endpoint": "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com", "path": "${{ inputs.cloudflare_r2_path }}", "channel": "latest"}]' electron/package.json > /tmp/package.json mv /tmp/package.json electron/package.json cat electron/package.json diff --git a/.github/workflows/template-build-windows-x64.yml b/.github/workflows/template-build-windows-x64.yml index 83ca10e95..5d96b3f49 100644 --- a/.github/workflows/template-build-windows-x64.yml +++ b/.github/workflows/template-build-windows-x64.yml @@ -71,7 +71,7 @@ jobs: jq --arg version "${{ inputs.new_version }}" '.version = $version' web/package.json > /tmp/package.json mv /tmp/package.json web/package.json - jq '.build.publish = [{"provider": "s3", "bucket": "${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }}", "region": "auto", "endpoint": "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com", "path": "${{ inputs.cloudflare_r2_path }}", "channel": "latest"}]' electron/package.json > /tmp/package.json + jq '.build.publish = [{"provider": "generic", "url": "${{ secrets.CLOUDFLARE_R2_PUBLIC_URL }}", "channel": "latest"}, {"provider": "s3", "bucket": "${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }}", "region": "auto", "endpoint": "https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com", "path": "${{ inputs.cloudflare_r2_path }}", "channel": "latest"}]' electron/package.json > /tmp/package.json mv /tmp/package.json electron/package.json jq '.build.win.sign = "./sign.js"' electron/package.json > /tmp/package.json From 5c8c6f479517ca4681b3caf43738a337c29689df Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 23 Jan 2024 17:55:23 +0700 Subject: [PATCH 09/12] fix: Change to fixed `localhost` instead of using host variable --- web/screens/LocalServer/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/screens/LocalServer/index.tsx b/web/screens/LocalServer/index.tsx index 83b5989af..f9a803aa7 100644 --- a/web/screens/LocalServer/index.tsx +++ b/web/screens/LocalServer/index.tsx @@ -129,7 +129,7 @@ const LocalServerScreen = () => { {serverEnabled && ( From 8ce454ae6199c827652967c44235689cb810fafa Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Mon, 22 Jan 2024 20:02:08 +0700 Subject: [PATCH 10/12] fix: error message when not enough RAM --- web/screens/Chat/ErrorMessage/index.tsx | 49 ++++++++++++++++--------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/web/screens/Chat/ErrorMessage/index.tsx b/web/screens/Chat/ErrorMessage/index.tsx index 41d58dbdd..045e8185a 100644 --- a/web/screens/Chat/ErrorMessage/index.tsx +++ b/web/screens/Chat/ErrorMessage/index.tsx @@ -9,6 +9,7 @@ import { Button } from '@janhq/uikit' import { useAtomValue, useSetAtom } from 'jotai' import { RefreshCcw } from 'lucide-react' +import { useActiveModel } from '@/hooks/useActiveModel' import useSendChatMessage from '@/hooks/useSendChatMessage' import { extensionManager } from '@/extension' @@ -16,6 +17,7 @@ import { deleteMessageAtom, getCurrentChatMessagesAtom, } from '@/helpers/atoms/ChatMessage.atom' +import { totalRamAtom } from '@/helpers/atoms/SystemBar.atom' import { activeThreadAtom } from '@/helpers/atoms/Thread.atom' const ErrorMessage = ({ message }: { message: ThreadMessage }) => { @@ -23,6 +25,8 @@ const ErrorMessage = ({ message }: { message: ThreadMessage }) => { const thread = useAtomValue(activeThreadAtom) const deleteMessage = useSetAtom(deleteMessageAtom) const { resendChatMessage } = useSendChatMessage() + const { activeModel } = useActiveModel() + const totalRam = useAtomValue(totalRamAtom) const regenerateMessage = async () => { const lastMessageIndex = messages.length - 1 @@ -66,24 +70,33 @@ const ErrorMessage = ({ message }: { message: ThreadMessage }) => { {message.status === MessageStatus.Error && (
-

Apologies, something's amiss!

- Jan's in beta. Find troubleshooting guides{' '} - - here - {' '} - or reach out to us on{' '} - - Discord - {' '} - for assistance. + {Number(activeModel?.metadata.size) * 1.25 > totalRam ? ( + <> + Oops! Model size exceeds available RAM. Consider selecting a + smaller model or upgrading your RAM for smoother performance. + + ) : ( + <> +

Apologies, something's amiss!

+ Jan's in beta. Find troubleshooting guides{' '} + + here + {' '} + or reach out to us on{' '} + + Discord + {' '} + for assistance. + + )}
)} From 7d511cfbb0212b769762cd04b96aba0cde0f79c7 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Tue, 23 Jan 2024 13:20:51 +0700 Subject: [PATCH 11/12] update login calculate not enough ram for error message --- web/screens/Chat/ErrorMessage/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/screens/Chat/ErrorMessage/index.tsx b/web/screens/Chat/ErrorMessage/index.tsx index 045e8185a..8879b15be 100644 --- a/web/screens/Chat/ErrorMessage/index.tsx +++ b/web/screens/Chat/ErrorMessage/index.tsx @@ -70,7 +70,7 @@ const ErrorMessage = ({ message }: { message: ThreadMessage }) => { {message.status === MessageStatus.Error && (
- {Number(activeModel?.metadata.size) * 1.25 > totalRam ? ( + {Number(activeModel?.metadata.size) > totalRam ? ( <> Oops! Model size exceeds available RAM. Consider selecting a smaller model or upgrading your RAM for smoother performance. From d6242def98951b945caefd19115192afa4f8f2b8 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Tue, 23 Jan 2024 10:57:46 +0700 Subject: [PATCH 12/12] fix: active model when start server --- web/screens/LocalServer/index.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/web/screens/LocalServer/index.tsx b/web/screens/LocalServer/index.tsx index f9a803aa7..600437b62 100644 --- a/web/screens/LocalServer/index.tsx +++ b/web/screens/LocalServer/index.tsx @@ -108,9 +108,7 @@ const LocalServerScreen = () => { window.core?.api?.stopServer() setServerEnabled(false) } else { - if (!activeModel) { - startModel(String(selectedModel?.id)) - } + startModel(String(selectedModel?.id)) window.core?.api?.startServer({ host, port,