diff --git a/.github/scripts/auto-sign.sh b/.github/scripts/auto-sign.sh index a2130e791..e7ea49d40 100755 --- a/.github/scripts/auto-sign.sh +++ b/.github/scripts/auto-sign.sh @@ -7,6 +7,6 @@ if [[ -z "$APP_PATH" ]] || [[ -z "$DEVELOPER_ID" ]]; then fi # If both variables are set, execute the following commands -find "$APP_PATH" \( -type f -perm +111 -o -name "*.node" \) -exec codesign -s "$DEVELOPER_ID" --options=runtime {} \; +find "$APP_PATH" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force -s "$DEVELOPER_ID" --options=runtime {} \; -find "$APP_PATH" -type f -name "*.o" -exec codesign -s "$DEVELOPER_ID" --options=runtime {} \; +find "$APP_PATH" -type f -name "*.o" -exec codesign --force -s "$DEVELOPER_ID" --options=runtime {} \; diff --git a/.github/workflows/clean-cloudflare-page-preview-url-and-r2.yml b/.github/workflows/clean-cloudflare-page-preview-url-and-r2.yml index de761ca69..15b759cac 100644 --- a/.github/workflows/clean-cloudflare-page-preview-url-and-r2.yml +++ b/.github/workflows/clean-cloudflare-page-preview-url-and-r2.yml @@ -58,7 +58,7 @@ jobs: - name: Delete object older than 10 days run: | # Get the list of objects in the 'latest' folder - OBJECTS=$(aws s3api list-objects --bucket ${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }} --query 'Contents[?LastModified<`'$(date -d "$current_date -10 days" -u +"%Y-%m-%dT%H:%M:%SZ")'`].{Key: Key}' --endpoint-url https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | jq -c .) + OBJECTS=$(aws s3api list-objects --bucket ${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }} --prefix "latest/" --query 'Contents[?LastModified<`'$(date -d "$current_date -10 days" -u +"%Y-%m-%dT%H:%M:%SZ")'`].{Key: Key}' --endpoint-url https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | jq -c .) # Create a JSON file for the delete operation echo "{\"Objects\": $OBJECTS, \"Quiet\": false}" > delete.json diff --git a/.github/workflows/jan-electron-linter-and-test.yml b/.github/workflows/jan-electron-linter-and-test.yml index 40085391f..05d320bbd 100644 --- a/.github/workflows/jan-electron-linter-and-test.yml +++ b/.github/workflows/jan-electron-linter-and-test.yml @@ -22,6 +22,7 @@ on: branches: - main - dev + - release/** paths: - "electron/**" - .github/workflows/jan-electron-linter-and-test.yml @@ -66,17 +67,51 @@ jobs: CSC_IDENTITY_AUTO_DISCOVERY: "false" test-on-windows: + if: github.event_name == 'push' strategy: + fail-fast: false matrix: antivirus-tools: ['mcafee', 'default-windows-security','bit-defender'] runs-on: windows-desktop-${{ matrix.antivirus-tools }} steps: - name: Clean workspace run: | - Remove-Item -Path .\* -Force -Recurse + Remove-Item -Path "\\?\$(Get-Location)\*" -Force -Recurse $path = "$Env:APPDATA\jan" if (Test-Path $path) { - Remove-Item $path -Recurse -Force + Remove-Item "\\?\$path" -Recurse -Force + } else { + Write-Output "Folder does not exist." + } + - name: Getting the repo + uses: actions/checkout@v3 + + - name: Installing node + uses: actions/setup-node@v1 + with: + node-version: 20 + + # Clean cache, continue on error + - name: "Cleanup cache" + shell: powershell + continue-on-error: true + run: | + make clean + + - name: Linter and test + shell: powershell + run: | + make test + test-on-windows-pr: + if: github.event_name == 'pull_request' + runs-on: windows-desktop-default-windows-security + steps: + - name: Clean workspace + run: | + Remove-Item -Path "\\?\$(Get-Location)\*" -Force -Recurse + $path = "$Env:APPDATA\jan" + if (Test-Path $path) { + Remove-Item "\\?\$path" -Recurse -Force } else { Write-Output "Folder does not exist." } diff --git a/.github/workflows/template-build-macos-arm64.yml b/.github/workflows/template-build-macos-arm64.yml index 54355d55c..2ef40b7c0 100644 --- a/.github/workflows/template-build-macos-arm64.yml +++ b/.github/workflows/template-build-macos-arm64.yml @@ -78,6 +78,10 @@ jobs: 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 --arg teamid "${{ secrets.APPLE_TEAM_ID }}" '.build.mac.notarize.teamId = $teamid' electron/package.json > /tmp/package.json + mv /tmp/package.json electron/package.json + cat electron/package.json - name: Update app version base on tag @@ -91,6 +95,9 @@ jobs: mv /tmp/package.json electron/package.json jq --arg version "${VERSION_TAG#v}" '.version = $version' web/package.json > /tmp/package.json mv /tmp/package.json web/package.json + jq --arg teamid "${{ secrets.APPLE_TEAM_ID }}" '.build.mac.notarize.teamId = $teamid' electron/package.json > /tmp/package.json + mv /tmp/package.json electron/package.json + cat electron/package.json env: VERSION_TAG: ${{ inputs.new_version }} diff --git a/.github/workflows/template-build-macos-x64.yml b/.github/workflows/template-build-macos-x64.yml index e313c2947..12aad37bd 100644 --- a/.github/workflows/template-build-macos-x64.yml +++ b/.github/workflows/template-build-macos-x64.yml @@ -72,6 +72,10 @@ jobs: 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 --arg teamid "${{ secrets.APPLE_TEAM_ID }}" '.build.mac.notarize.teamId = $teamid' electron/package.json > /tmp/package.json + mv /tmp/package.json electron/package.json + cat electron/package.json - name: Update app version base on tag @@ -85,6 +89,9 @@ jobs: mv /tmp/package.json electron/package.json jq --arg version "${VERSION_TAG#v}" '.version = $version' web/package.json > /tmp/package.json mv /tmp/package.json web/package.json + jq --arg teamid "${{ secrets.APPLE_TEAM_ID }}" '.build.mac.notarize.teamId = $teamid' electron/package.json > /tmp/package.json + mv /tmp/package.json electron/package.json + cat electron/package.json env: VERSION_TAG: ${{ inputs.new_version }} diff --git a/.gitignore b/.gitignore index 62878011e..d9787d87b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ electron/renderer electron/models electron/docs electron/engines +electron/playwright-report server/pre-install package-lock.json @@ -21,13 +22,17 @@ package-lock.json core/lib/** # Nitro binary files -extensions/inference-nitro-extension/bin/*/nitro -extensions/inference-nitro-extension/bin/*/*.metal -extensions/inference-nitro-extension/bin/*/*.exe -extensions/inference-nitro-extension/bin/*/*.dll -extensions/inference-nitro-extension/bin/*/*.exp -extensions/inference-nitro-extension/bin/*/*.lib -extensions/inference-nitro-extension/bin/saved-* -extensions/inference-nitro-extension/bin/*.tar.gz -extensions/inference-nitro-extension/bin/vulkaninfoSDK.exe -extensions/inference-nitro-extension/bin/vulkaninfo +extensions/*-extension/bin/*/nitro +extensions/*-extension/bin/*/*.metal +extensions/*-extension/bin/*/*.exe +extensions/*-extension/bin/*/*.dll +extensions/*-extension/bin/*/*.exp +extensions/*-extension/bin/*/*.lib +extensions/*-extension/bin/saved-* +extensions/*-extension/bin/*.tar.gz +extensions/*-extension/bin/vulkaninfoSDK.exe +extensions/*-extension/bin/vulkaninfo + + +# Turborepo +.turbo \ No newline at end of file diff --git a/Makefile b/Makefile index a45477b29..0a53a18ed 100644 --- a/Makefile +++ b/Makefile @@ -53,15 +53,17 @@ build: check-file-counts clean: ifeq ($(OS),Windows_NT) powershell -Command "Get-ChildItem -Path . -Include node_modules, .next, dist, build, out -Recurse -Directory | Remove-Item -Recurse -Force" + powershell -Command "Get-ChildItem -Path . -Include package-lock.json -Recurse -File | Remove-Item -Recurse -Force" powershell -Command "Remove-Item -Recurse -Force ./pre-install/*.tgz" powershell -Command "Remove-Item -Recurse -Force ./electron/pre-install/*.tgz" - rmdir /s /q "%USERPROFILE%\jan\extensions" + powershell -Command "if (Test-Path \"$($env:USERPROFILE)\jan\extensions\") { Remove-Item -Path \"$($env:USERPROFILE)\jan\extensions\" -Recurse -Force }" else ifeq ($(shell uname -s),Linux) find . -name "node_modules" -type d -prune -exec rm -rf '{}' + find . -name ".next" -type d -exec rm -rf '{}' + find . -name "dist" -type d -exec rm -rf '{}' + find . -name "build" -type d -exec rm -rf '{}' + find . -name "out" -type d -exec rm -rf '{}' + + find . -name "packake-lock.json" -type f -exec rm -rf '{}' + rm -rf ./pre-install/*.tgz rm -rf ./electron/pre-install/*.tgz rm -rf "~/jan/extensions" @@ -72,6 +74,7 @@ else find . -name "dist" -type d -exec rm -rf '{}' + find . -name "build" -type d -exec rm -rf '{}' + find . -name "out" -type d -exec rm -rf '{}' + + find . -name "packake-lock.json" -type f -exec rm -rf '{}' + rm -rf ./pre-install/*.tgz rm -rf ./electron/pre-install/*.tgz rm -rf ~/jan/extensions diff --git a/README.md b/README.md index 676be0f78..1465fadeb 100644 --- a/README.md +++ b/README.md @@ -43,31 +43,31 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute Stable (Recommended) - + jan.exe - + Intel - + M1/M2 - + jan.deb - + jan.AppImage @@ -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 @@ -209,6 +209,12 @@ Contributions are welcome! Please read the [CONTRIBUTING.md](CONTRIBUTING.md) fi This will start the development server and open the desktop app. +3. (Optional) **Run the API server without frontend** + + ```bash + yarn dev:server + ``` + ### For production build ```bash @@ -304,7 +310,7 @@ This will build the app MacOS m1/m2 for production (with code signing already do ```bash # GPU mode with default file system - docker compose --profile gpu up -d + docker compose --profile gpu-fs up -d # GPU mode with S3 file system docker compose --profile gpu-s3fs up -d @@ -319,7 +325,9 @@ This will start the web server and you can access Jan at `http://localhost:3000` Jan builds on top of other open-source projects: - [llama.cpp](https://github.com/ggerganov/llama.cpp) +- [LangChain](https://github.com/langchain-ai) - [TensorRT](https://github.com/NVIDIA/TensorRT) +- [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM) ## Contact diff --git a/core/package.json b/core/package.json index c3abe2d56..9e4d8d69a 100644 --- a/core/package.json +++ b/core/package.json @@ -8,8 +8,8 @@ ], "homepage": "https://jan.ai", "license": "AGPL-3.0", - "main": "dist/core.umd.js", - "module": "dist/core.es5.js", + "main": "dist/core.es5.js", + "module": "dist/core.cjs.js", "typings": "dist/types/index.d.ts", "files": [ "dist", @@ -17,8 +17,7 @@ ], "author": "Jan ", "exports": { - ".": "./dist/core.umd.js", - "./sdk": "./dist/core.umd.js", + ".": "./dist/core.es5.js", "./node": "./dist/node/index.cjs.js" }, "typesVersions": { @@ -27,10 +26,6 @@ "./dist/core.es5.js.map", "./dist/types/index.d.ts" ], - "sdk": [ - "./dist/core.es5.js.map", - "./dist/types/index.d.ts" - ], "node": [ "./dist/node/index.cjs.js.map", "./dist/types/node/index.d.ts" @@ -38,26 +33,32 @@ } }, "scripts": { - "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", + "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "test": "jest", "prebuild": "rimraf dist", "build": "tsc --module commonjs && rollup -c rollup.config.ts", "start": "rollup -c rollup.config.ts -w" }, "devDependencies": { - "jest": "^25.4.0", - "@types/jest": "^29.5.11", - "@types/node": "^12.0.2", - "eslint-plugin-jest": "^23.8.2", + "@rollup/plugin-replace": "^5.0.5", + "@types/jest": "^29.5.12", + "@types/node": "^20.11.4", + "eslint": "8.57.0", + "eslint-plugin-jest": "^27.9.0", + "jest": "^29.7.0", + "rimraf": "^3.0.2", "rollup": "^2.38.5", "rollup-plugin-commonjs": "^9.1.8", "rollup-plugin-json": "^3.1.0", "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.36.0", - "ts-jest": "^26.1.1", + "ts-jest": "^29.1.2", "tslib": "^2.6.2", - "typescript": "^5.2.2", - "rimraf": "^3.0.2" + "typescript": "^5.3.3" + }, + "dependencies": { + "rxjs": "^7.8.1", + "ulidx": "^2.3.0" } } diff --git a/core/rollup.config.ts b/core/rollup.config.ts index ebea8e237..865e86d5c 100644 --- a/core/rollup.config.ts +++ b/core/rollup.config.ts @@ -3,17 +3,16 @@ import commonjs from 'rollup-plugin-commonjs' import sourceMaps from 'rollup-plugin-sourcemaps' import typescript from 'rollup-plugin-typescript2' import json from 'rollup-plugin-json' +import replace from '@rollup/plugin-replace' const pkg = require('./package.json') -const libraryName = 'core' - export default [ { input: `src/index.ts`, output: [ - { file: pkg.main, name: libraryName, format: 'umd', sourcemap: true }, - { file: pkg.module, format: 'es', sourcemap: true }, + // { file: pkg.main, name: libraryName, format: 'umd', sourcemap: true }, + { file: pkg.main, format: 'es', sourcemap: true }, ], // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') external: ['path'], @@ -30,7 +29,13 @@ export default [ // Allow node_modules resolution, so you can use 'external' to control // which external modules to include in the bundle // https://github.com/rollup/rollup-plugin-node-resolve#usage - resolve(), + replace({ + 'node:crypto': 'crypto', + 'delimiters': ['"', '"'], + }), + resolve({ + browser: true, + }), // Resolve source maps to the original source sourceMaps(), @@ -46,7 +51,7 @@ export default [ 'pacote', '@types/pacote', '@npmcli/arborist', - 'ulid', + 'ulidx', 'node-fetch', 'fs', 'request', diff --git a/core/src/api/index.ts b/core/src/api/index.ts index 676020758..8e41da0d1 100644 --- a/core/src/api/index.ts +++ b/core/src/api/index.ts @@ -7,7 +7,16 @@ export enum NativeRoute { openAppDirectory = 'openAppDirectory', openFileExplore = 'openFileExplorer', selectDirectory = 'selectDirectory', + selectModelFiles = 'selectModelFiles', relaunch = 'relaunch', + + hideQuickAskWindow = 'hideQuickAskWindow', + sendQuickAskInput = 'sendQuickAskInput', + + hideMainWindow = 'hideMainWindow', + showMainWindow = 'showMainWindow', + + quickAskSizeUpdated = 'quickAskSizeUpdated', } /** @@ -24,12 +33,17 @@ export enum AppRoute { stopServer = 'stopServer', log = 'log', logServer = 'logServer', + systemInformation = 'systemInformation', + showToast = 'showToast', } export enum AppEvent { onAppUpdateDownloadUpdate = 'onAppUpdateDownloadUpdate', onAppUpdateDownloadError = 'onAppUpdateDownloadError', onAppUpdateDownloadSuccess = 'onAppUpdateDownloadSuccess', + + onUserSubmitQuickAsk = 'onUserSubmitQuickAsk', + onSelectedText = 'onSelectedText', } export enum DownloadRoute { @@ -44,6 +58,14 @@ export enum DownloadEvent { onFileDownloadUpdate = 'onFileDownloadUpdate', onFileDownloadError = 'onFileDownloadError', onFileDownloadSuccess = 'onFileDownloadSuccess', + onFileUnzipSuccess = 'onFileUnzipSuccess', +} + +export enum LocalImportModelEvent { + onLocalImportModelUpdate = 'onLocalImportModelUpdate', + onLocalImportModelFailed = 'onLocalImportModelFailed', + onLocalImportModelSuccess = 'onLocalImportModelSuccess', + onLocalImportModelFinished = 'onLocalImportModelFinished', } export enum ExtensionRoute { @@ -67,11 +89,14 @@ export enum FileSystemRoute { } export enum FileManagerRoute { syncFile = 'syncFile', + copyFile = 'copyFile', getJanDataFolderPath = 'getJanDataFolderPath', getResourcePath = 'getResourcePath', getUserHomePath = 'getUserHomePath', fileStat = 'fileStat', writeBlob = 'writeBlob', + mkdir = 'mkdir', + rm = 'rm', } export type ApiFunction = (...args: any[]) => any @@ -126,4 +151,8 @@ export const CoreRoutes = [ ] export const APIRoutes = [...CoreRoutes, ...Object.values(NativeRoute)] -export const APIEvents = [...Object.values(AppEvent), ...Object.values(DownloadEvent)] +export const APIEvents = [ + ...Object.values(AppEvent), + ...Object.values(DownloadEvent), + ...Object.values(LocalImportModelEvent), +] diff --git a/core/src/core.ts b/core/src/core.ts index 8831c6001..32244e784 100644 --- a/core/src/core.ts +++ b/core/src/core.ts @@ -1,4 +1,4 @@ -import { FileStat } from './types' +import { DownloadRequest, FileStat, NetworkConfig, SystemInformation } from './types' /** * Execute a extension module function in main process @@ -13,22 +13,20 @@ const executeOnMain: (extension: string, method: string, ...args: any[]) => Prom extension, method, ...args -) => global.core?.api?.invokeExtensionFunc(extension, method, ...args) +) => globalThis.core?.api?.invokeExtensionFunc(extension, method, ...args) /** * Downloads a file from a URL and saves it to the local file system. - * @param {string} url - The URL of the file to download. - * @param {string} fileName - The name to use for the downloaded file. - * @param {object} network - Optional object to specify proxy/whether to ignore SSL certificates. + * + * @param {DownloadRequest} downloadRequest - The request to download the file. + * @param {NetworkConfig} network - Optional object to specify proxy/whether to ignore SSL certificates. + * * @returns {Promise} A promise that resolves when the file is downloaded. */ -const downloadFile: ( - url: string, - fileName: string, - network?: { proxy?: string; ignoreSSL?: boolean } -) => Promise = (url, fileName, network) => { - return global.core?.api?.downloadFile(url, fileName, network) -} +const downloadFile: (downloadRequest: DownloadRequest, network?: NetworkConfig) => Promise = ( + downloadRequest, + network +) => globalThis.core?.api?.downloadFile(downloadRequest, network) /** * Aborts the download of a specific file. @@ -36,14 +34,14 @@ const downloadFile: ( * @returns {Promise} A promise that resolves when the download has been aborted. */ const abortDownload: (fileName: string) => Promise = (fileName) => - global.core.api?.abortDownload(fileName) + globalThis.core.api?.abortDownload(fileName) /** * Gets Jan's data folder path. * * @returns {Promise} A Promise that resolves with Jan's data folder path. */ -const getJanDataFolderPath = (): Promise => global.core.api?.getJanDataFolderPath() +const getJanDataFolderPath = (): Promise => globalThis.core.api?.getJanDataFolderPath() /** * Opens the file explorer at a specific path. @@ -51,21 +49,22 @@ const getJanDataFolderPath = (): Promise => global.core.api?.getJanDataF * @returns {Promise} A promise that resolves when the file explorer is opened. */ const openFileExplorer: (path: string) => Promise = (path) => - global.core.api?.openFileExplorer(path) + globalThis.core.api?.openFileExplorer(path) /** * Joins multiple paths together. * @param paths - The paths to join. * @returns {Promise} A promise that resolves with the joined path. */ -const joinPath: (paths: string[]) => Promise = (paths) => global.core.api?.joinPath(paths) +const joinPath: (paths: string[]) => Promise = (paths) => + globalThis.core.api?.joinPath(paths) /** * Retrive the basename from an url. * @param path - The path to retrieve. * @returns {Promise} A promise that resolves with the basename. */ -const baseName: (paths: string[]) => Promise = (path) => global.core.api?.baseName(path) +const baseName: (paths: string) => Promise = (path) => globalThis.core.api?.baseName(path) /** * Opens an external URL in the default web browser. @@ -74,20 +73,20 @@ const baseName: (paths: string[]) => Promise = (path) => global.core.api * @returns {Promise} - A promise that resolves when the URL has been successfully opened. */ const openExternalUrl: (url: string) => Promise = (url) => - global.core.api?.openExternalUrl(url) + globalThis.core.api?.openExternalUrl(url) /** * Gets the resource path of the application. * * @returns {Promise} - A promise that resolves with the resource path. */ -const getResourcePath: () => Promise = () => global.core.api?.getResourcePath() +const getResourcePath: () => Promise = () => globalThis.core.api?.getResourcePath() /** * Gets the user's home path. * @returns return user's home path */ -const getUserHomePath = (): Promise => global.core.api?.getUserHomePath() +const getUserHomePath = (): Promise => globalThis.core.api?.getUserHomePath() /** * Log to file from browser processes. @@ -95,7 +94,7 @@ const getUserHomePath = (): Promise => global.core.api?.getUserHomePath( * @param message - Message to log. */ const log: (message: string, fileName?: string) => void = (message, fileName) => - global.core.api?.log(message, fileName) + globalThis.core.api?.log(message, fileName) /** * Check whether the path is a subdirectory of another path. @@ -106,8 +105,23 @@ const log: (message: string, fileName?: string) => void = (message, fileName) => * @returns {Promise} - A promise that resolves with a boolean indicating whether the path is a subdirectory. */ const isSubdirectory: (from: string, to: string) => Promise = (from: string, to: string) => - global.core.api?.isSubdirectory(from, to) + globalThis.core.api?.isSubdirectory(from, to) +/** + * Get system information + * @returns {Promise} - A promise that resolves with the system information. + */ +const systemInformation: () => Promise = () => + globalThis.core.api?.systemInformation() + +/** + * Show toast message from browser processes. + * @param title + * @param message + * @returns + */ +const showToast: (title: string, message: string) => void = (title, message) => + globalThis.core.api?.showToast(title, message) /** * Register extension point function type definition */ @@ -134,5 +148,7 @@ export { log, isSubdirectory, getUserHomePath, + systemInformation, + showToast, FileStat, } diff --git a/core/src/events.ts b/core/src/events.ts index 700807b0c..da85f7e3b 100644 --- a/core/src/events.ts +++ b/core/src/events.ts @@ -5,7 +5,7 @@ * @param handler The handler function to call when the event is observed. */ const on: (eventName: string, handler: Function) => void = (eventName, handler) => { - global.core?.events?.on(eventName, handler) + globalThis.core?.events?.on(eventName, handler) } /** @@ -15,7 +15,7 @@ const on: (eventName: string, handler: Function) => void = (eventName, handler) * @param handler The handler function to call when the event is observed. */ const off: (eventName: string, handler: Function) => void = (eventName, handler) => { - global.core?.events?.off(eventName, handler) + globalThis.core?.events?.off(eventName, handler) } /** @@ -25,7 +25,7 @@ const off: (eventName: string, handler: Function) => void = (eventName, handler) * @param object The object to pass to the event callback. */ const emit: (eventName: string, object: any) => void = (eventName, object) => { - global.core?.events?.emit(eventName, object) + globalThis.core?.events?.emit(eventName, object) } export const events = { diff --git a/core/src/extension.ts b/core/src/extension.ts index 3b3edc7b3..973d4778a 100644 --- a/core/src/extension.ts +++ b/core/src/extension.ts @@ -10,6 +10,23 @@ export enum ExtensionTypeEnum { export interface ExtensionType { type(): ExtensionTypeEnum | undefined } + +export interface Compatibility { + platform: string[] + version: string +} + +const ALL_INSTALLATION_STATE = [ + 'NotRequired', // not required. + 'Installed', // require and installed. Good to go. + 'Updatable', // require and installed but need to be updated. + 'NotInstalled', // require to be installed. + 'Corrupted', // require but corrupted. Need to redownload. +] as const + +export type InstallationStateTuple = typeof ALL_INSTALLATION_STATE +export type InstallationState = InstallationStateTuple[number] + /** * Represents a base extension. * This class should be extended by any class that represents an extension. @@ -33,4 +50,39 @@ export abstract class BaseExtension implements ExtensionType { * Any cleanup logic for the extension should be put here. */ abstract onUnload(): void + + /** + * The compatibility of the extension. + * This is used to check if the extension is compatible with the current environment. + * @property {Array} platform + */ + compatibility(): Compatibility | undefined { + return undefined + } + + /** + * Determine if the extension is updatable. + */ + updatable(): boolean { + return false + } + + /** + * Determine if the prerequisites for the extension are installed. + * + * @returns {boolean} true if the prerequisites are installed, false otherwise. + */ + async installationState(): Promise { + return 'NotRequired' + } + + /** + * Install the prerequisites for the extension. + * + * @returns {Promise} + */ + // @ts-ignore + async install(...args): Promise { + return + } } diff --git a/core/src/extensions/ai-engines/AIEngine.ts b/core/src/extensions/ai-engines/AIEngine.ts new file mode 100644 index 000000000..c65c081fd --- /dev/null +++ b/core/src/extensions/ai-engines/AIEngine.ts @@ -0,0 +1,62 @@ +import { getJanDataFolderPath, joinPath } from '../../core' +import { events } from '../../events' +import { BaseExtension } from '../../extension' +import { fs } from '../../fs' +import { Model, ModelEvent } from '../../types' + +/** + * Base AIEngine + * Applicable to all AI Engines + */ +export abstract class AIEngine extends BaseExtension { + // The inference engine + abstract provider: string + // The model folder + modelFolder: string = 'models' + + models(): Promise { + return Promise.resolve([]) + } + + /** + * On extension load, subscribe to events. + */ + onLoad() { + this.prePopulateModels() + } + + /** + * Pre-populate models to App Data Folder + */ + prePopulateModels(): Promise { + return this.models().then((models) => { + const prePoluateOperations = models.map((model) => + getJanDataFolderPath() + .then((janDataFolder) => + // Attempt to create the model folder + joinPath([janDataFolder, this.modelFolder, model.id]).then((path) => + fs + .mkdirSync(path) + .catch() + .then(() => path) + ) + ) + .then((path) => joinPath([path, 'model.json'])) + .then((path) => { + // Do not overwite existing model.json + return fs.existsSync(path).then((exist: any) => { + if (!exist) return fs.writeFileSync(path, JSON.stringify(model, null, 2)) + }) + }) + .catch((e: Error) => { + console.error('Error', e) + }) + ) + Promise.all(prePoluateOperations).then(() => + // Emit event to update models + // So the UI can update the models list + events.emit(ModelEvent.OnModelsUpdate, {}) + ) + }) + } +} diff --git a/core/src/extensions/ai-engines/LocalOAIEngine.ts b/core/src/extensions/ai-engines/LocalOAIEngine.ts new file mode 100644 index 000000000..f6557cd8f --- /dev/null +++ b/core/src/extensions/ai-engines/LocalOAIEngine.ts @@ -0,0 +1,66 @@ +import { executeOnMain, getJanDataFolderPath, joinPath, systemInformation } from '../../core' +import { events } from '../../events' +import { Model, ModelEvent } from '../../types' +import { OAIEngine } from './OAIEngine' + +/** + * Base OAI Local Inference Provider + * Added the implementation of loading and unloading model (applicable to local inference providers) + */ +export abstract class LocalOAIEngine extends OAIEngine { + // The inference engine + abstract nodeModule: string + loadModelFunctionName: string = 'loadModel' + unloadModelFunctionName: string = 'unloadModel' + + /** + * On extension load, subscribe to events. + */ + onLoad() { + super.onLoad() + // These events are applicable to local inference providers + events.on(ModelEvent.OnModelInit, (model: Model) => this.loadModel(model)) + events.on(ModelEvent.OnModelStop, (model: Model) => this.unloadModel(model)) + } + + /** + * Load the model. + */ + async loadModel(model: Model) { + if (model.engine.toString() !== this.provider) return + + const modelFolder = await joinPath([await getJanDataFolderPath(), this.modelFolder, model.id]) + const systemInfo = await systemInformation() + const res = await executeOnMain( + this.nodeModule, + this.loadModelFunctionName, + { + modelFolder, + model, + }, + systemInfo + ) + + if (res?.error) { + events.emit(ModelEvent.OnModelFail, { + ...model, + error: res.error, + }) + return + } else { + this.loadedModel = model + events.emit(ModelEvent.OnModelReady, model) + } + } + /** + * Stops the model. + */ + unloadModel(model: Model) { + if (model.engine && model.engine?.toString() !== this.provider) return + this.loadedModel = undefined + + executeOnMain(this.nodeModule, this.unloadModelFunctionName).then(() => { + events.emit(ModelEvent.OnModelStopped, {}) + }) + } +} diff --git a/core/src/extensions/ai-engines/OAIEngine.ts b/core/src/extensions/ai-engines/OAIEngine.ts new file mode 100644 index 000000000..5936005bb --- /dev/null +++ b/core/src/extensions/ai-engines/OAIEngine.ts @@ -0,0 +1,128 @@ +import { requestInference } from './helpers/sse' +import { ulid } from 'ulidx' +import { AIEngine } from './AIEngine' +import { + ChatCompletionRole, + ContentType, + InferenceEvent, + MessageEvent, + MessageRequest, + MessageRequestType, + MessageStatus, + Model, + ModelInfo, + ThreadContent, + ThreadMessage, +} from '../../types' +import { events } from '../../events' + +/** + * Base OAI Inference Provider + * Applicable to all OAI compatible inference providers + */ +export abstract class OAIEngine extends AIEngine { + // The inference engine + abstract inferenceUrl: string + + // Controller to handle stop requests + controller = new AbortController() + isCancelled = false + + // The loaded model instance + loadedModel: Model | undefined + + /** + * On extension load, subscribe to events. + */ + onLoad() { + super.onLoad() + events.on(MessageEvent.OnMessageSent, (data: MessageRequest) => this.inference(data)) + events.on(InferenceEvent.OnInferenceStopped, () => this.stopInference()) + } + + /** + * On extension unload + */ + onUnload(): void {} + + /* + * Inference request + */ + inference(data: MessageRequest) { + if (data.model?.engine?.toString() !== this.provider) return + + const timestamp = Date.now() + const message: ThreadMessage = { + id: ulid(), + thread_id: data.threadId, + type: data.type, + assistant_id: data.assistantId, + role: ChatCompletionRole.Assistant, + content: [], + status: MessageStatus.Pending, + created: timestamp, + updated: timestamp, + object: 'thread.message', + } + + if (data.type !== MessageRequestType.Summary) { + events.emit(MessageEvent.OnMessageResponse, message) + } + + this.isCancelled = false + this.controller = new AbortController() + + const model: ModelInfo = { + ...(this.loadedModel ? this.loadedModel : {}), + ...data.model, + } + + requestInference( + this.inferenceUrl, + data.messages ?? [], + model, + this.controller, + this.headers() + ).subscribe({ + next: (content: any) => { + const messageContent: ThreadContent = { + type: ContentType.Text, + text: { + value: content.trim(), + annotations: [], + }, + } + message.content = [messageContent] + events.emit(MessageEvent.OnMessageUpdate, message) + }, + complete: async () => { + message.status = message.content.length ? MessageStatus.Ready : MessageStatus.Error + events.emit(MessageEvent.OnMessageUpdate, message) + }, + error: async (err: any) => { + if (this.isCancelled || message.content.length) { + message.status = MessageStatus.Stopped + events.emit(MessageEvent.OnMessageUpdate, message) + return + } + message.status = MessageStatus.Error + events.emit(MessageEvent.OnMessageUpdate, message) + }, + }) + } + + /** + * Stops the inference. + */ + stopInference() { + this.isCancelled = true + this.controller?.abort() + } + + /** + * Headers for the inference request + */ + headers(): HeadersInit { + return {} + } +} diff --git a/core/src/extensions/ai-engines/RemoteOAIEngine.ts b/core/src/extensions/ai-engines/RemoteOAIEngine.ts new file mode 100644 index 000000000..5e9804b23 --- /dev/null +++ b/core/src/extensions/ai-engines/RemoteOAIEngine.ts @@ -0,0 +1,46 @@ +import { events } from '../../events' +import { Model, ModelEvent } from '../../types' +import { OAIEngine } from './OAIEngine' + +/** + * Base OAI Remote Inference Provider + * Added the implementation of loading and unloading model (applicable to local inference providers) + */ +export abstract class RemoteOAIEngine extends OAIEngine { + // The inference engine + abstract apiKey: string + /** + * On extension load, subscribe to events. + */ + onLoad() { + super.onLoad() + // These events are applicable to local inference providers + events.on(ModelEvent.OnModelInit, (model: Model) => this.loadModel(model)) + events.on(ModelEvent.OnModelStop, (model: Model) => this.unloadModel(model)) + } + + /** + * Load the model. + */ + async loadModel(model: Model) { + if (model.engine.toString() !== this.provider) return + events.emit(ModelEvent.OnModelReady, model) + } + /** + * Stops the model. + */ + unloadModel(model: Model) { + if (model.engine && model.engine.toString() !== this.provider) return + events.emit(ModelEvent.OnModelStopped, {}) + } + + /** + * Headers for the inference request + */ + override headers(): HeadersInit { + return { + 'Authorization': `Bearer ${this.apiKey}`, + 'api-key': `${this.apiKey}`, + } + } +} diff --git a/extensions/inference-nitro-extension/src/helpers/sse.ts b/core/src/extensions/ai-engines/helpers/sse.ts similarity index 87% rename from extensions/inference-nitro-extension/src/helpers/sse.ts rename to core/src/extensions/ai-engines/helpers/sse.ts index 06176c9b9..723d0dc13 100644 --- a/extensions/inference-nitro-extension/src/helpers/sse.ts +++ b/core/src/extensions/ai-engines/helpers/sse.ts @@ -1,5 +1,5 @@ -import { Model } from '@janhq/core' import { Observable } from 'rxjs' +import { ModelRuntimeParams } from '../../../types' /** * Sends a request to the inference server to generate a response based on the recent messages. * @param recentMessages - An array of recent messages to use as context for the inference. @@ -8,8 +8,12 @@ import { Observable } from 'rxjs' export function requestInference( inferenceUrl: string, recentMessages: any[], - model: Model, - controller?: AbortController + model: { + id: string + parameters: ModelRuntimeParams + }, + controller?: AbortController, + headers?: HeadersInit ): Observable { return new Observable((subscriber) => { const requestBody = JSON.stringify({ @@ -23,9 +27,8 @@ export function requestInference( headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', - 'Accept': model.parameters.stream - ? 'text/event-stream' - : 'application/json', + 'Accept': model.parameters.stream ? 'text/event-stream' : 'application/json', + ...headers, }, body: requestBody, signal: controller?.signal, diff --git a/core/src/extensions/ai-engines/index.ts b/core/src/extensions/ai-engines/index.ts new file mode 100644 index 000000000..fc341380a --- /dev/null +++ b/core/src/extensions/ai-engines/index.ts @@ -0,0 +1,4 @@ +export * from './AIEngine' +export * from './OAIEngine' +export * from './LocalOAIEngine' +export * from './RemoteOAIEngine' diff --git a/core/src/extensions/index.ts b/core/src/extensions/index.ts index c6834482c..c049f3b3a 100644 --- a/core/src/extensions/index.ts +++ b/core/src/extensions/index.ts @@ -28,3 +28,8 @@ export { ModelExtension } from './model' * Hugging Face extension for converting HF models to GGUF. */ export { HuggingFaceExtension } from './huggingface' + +/** + * Base AI Engines. + */ +export * from './ai-engines' diff --git a/core/src/extensions/model.ts b/core/src/extensions/model.ts index df7d14f42..33eec0afc 100644 --- a/core/src/extensions/model.ts +++ b/core/src/extensions/model.ts @@ -1,5 +1,5 @@ import { BaseExtension, ExtensionTypeEnum } from '../extension' -import { Model, ModelInterface } from '../index' +import { GpuSetting, ImportingModel, Model, ModelInterface, OptionType } from '../index' /** * Model extension for managing models. @@ -14,6 +14,7 @@ export abstract class ModelExtension extends BaseExtension implements ModelInter abstract downloadModel( model: Model, + gpuSettings?: GpuSetting, network?: { proxy: string; ignoreSSL?: boolean } ): Promise abstract cancelModelDownload(modelId: string): Promise @@ -21,4 +22,6 @@ export abstract class ModelExtension extends BaseExtension implements ModelInter abstract saveModel(model: Model): Promise abstract getDownloadedModels(): Promise abstract getConfiguredModels(): Promise + abstract importModels(models: ImportingModel[], optionType: OptionType): Promise + abstract updateModelInfo(modelInfo: Partial): Promise } diff --git a/core/src/extensions/monitoring.ts b/core/src/extensions/monitoring.ts index ba193f0f4..2d75e0218 100644 --- a/core/src/extensions/monitoring.ts +++ b/core/src/extensions/monitoring.ts @@ -1,5 +1,5 @@ import { BaseExtension, ExtensionTypeEnum } from '../extension' -import { MonitoringInterface } from '../index' +import { GpuSetting, MonitoringInterface, OperatingSystemInfo } from '../index' /** * Monitoring extension for system monitoring. @@ -13,6 +13,8 @@ export abstract class MonitoringExtension extends BaseExtension implements Monit return ExtensionTypeEnum.SystemMonitoring } + abstract getGpuSetting(): Promise abstract getResourcesInfo(): Promise abstract getCurrentLoad(): Promise + abstract getOsInfo(): Promise } diff --git a/core/src/fs.ts b/core/src/fs.ts index 0e570d1f5..2eb22f9d6 100644 --- a/core/src/fs.ts +++ b/core/src/fs.ts @@ -4,7 +4,7 @@ import { FileStat } from './types' * Writes data to a file at the specified path. * @returns {Promise} A Promise that resolves when the file is written successfully. */ -const writeFileSync = (...args: any[]) => global.core.api?.writeFileSync(...args) +const writeFileSync = (...args: any[]) => globalThis.core.api?.writeFileSync(...args) /** * Writes blob data to a file at the specified path. @@ -13,47 +13,52 @@ const writeFileSync = (...args: any[]) => global.core.api?.writeFileSync(...args * @returns */ const writeBlob: (path: string, data: string) => Promise = (path, data) => - global.core.api?.writeBlob(path, data) + globalThis.core.api?.writeBlob(path, data) /** * Reads the contents of a file at the specified path. * @returns {Promise} A Promise that resolves with the contents of the file. */ -const readFileSync = (...args: any[]) => global.core.api?.readFileSync(...args) +const readFileSync = (...args: any[]) => globalThis.core.api?.readFileSync(...args) /** * Check whether the file exists * @param {string} path * @returns {boolean} A boolean indicating whether the path is a file. */ -const existsSync = (...args: any[]) => global.core.api?.existsSync(...args) +const existsSync = (...args: any[]) => globalThis.core.api?.existsSync(...args) /** * List the directory files * @returns {Promise} A Promise that resolves with the contents of the directory. */ -const readdirSync = (...args: any[]) => global.core.api?.readdirSync(...args) +const readdirSync = (...args: any[]) => globalThis.core.api?.readdirSync(...args) /** * Creates a directory at the specified path. * @returns {Promise} A Promise that resolves when the directory is created successfully. */ -const mkdirSync = (...args: any[]) => global.core.api?.mkdirSync(...args) +const mkdirSync = (...args: any[]) => globalThis.core.api?.mkdirSync(...args) + +const mkdir = (...args: any[]) => globalThis.core.api?.mkdir(...args) /** * Removes a directory at the specified path. * @returns {Promise} A Promise that resolves when the directory is removed successfully. */ const rmdirSync = (...args: any[]) => - global.core.api?.rmdirSync(...args, { recursive: true, force: true }) + globalThis.core.api?.rmdirSync(...args, { recursive: true, force: true }) + +const rm = (path: string) => globalThis.core.api?.rm(path) + /** * Deletes a file from the local file system. * @param {string} path - The path of the file to delete. * @returns {Promise} A Promise that resolves when the file is deleted. */ -const unlinkSync = (...args: any[]) => global.core.api?.unlinkSync(...args) +const unlinkSync = (...args: any[]) => globalThis.core.api?.unlinkSync(...args) /** * Appends data to a file at the specified path. */ -const appendFileSync = (...args: any[]) => global.core.api?.appendFileSync(...args) +const appendFileSync = (...args: any[]) => globalThis.core.api?.appendFileSync(...args) /** * Synchronizes a file from a source path to a destination path. @@ -62,21 +67,27 @@ const appendFileSync = (...args: any[]) => global.core.api?.appendFileSync(...ar * @returns {Promise} - A promise that resolves when the file has been successfully synchronized. */ const syncFile: (src: string, dest: string) => Promise = (src, dest) => - global.core.api?.syncFile(src, dest) + globalThis.core.api?.syncFile(src, dest) /** * Copy file sync. */ -const copyFileSync = (...args: any[]) => global.core.api?.copyFileSync(...args) +const copyFileSync = (...args: any[]) => globalThis.core.api?.copyFileSync(...args) + +const copyFile: (src: string, dest: string) => Promise = (src, dest) => + globalThis.core.api?.copyFile(src, dest) /** * Gets the file's stats. * * @param path - The path to the file. + * @param outsideJanDataFolder - Whether the file is outside the Jan data folder. * @returns {Promise} - A promise that resolves with the file's stats. */ -const fileStat: (path: string) => Promise = (path) => - global.core.api?.fileStat(path) +const fileStat: (path: string, outsideJanDataFolder?: boolean) => Promise = ( + path, + outsideJanDataFolder +) => globalThis.core.api?.fileStat(path, outsideJanDataFolder) // TODO: Export `dummy` fs functions automatically // Currently adding these manually @@ -86,10 +97,13 @@ export const fs = { existsSync, readdirSync, mkdirSync, + mkdir, rmdirSync, + rm, unlinkSync, appendFileSync, copyFileSync, + copyFile, syncFile, fileStat, writeBlob, diff --git a/core/src/node/api/processors/download.ts b/core/src/node/api/processors/download.ts index 686ba58a1..8e8e08f2f 100644 --- a/core/src/node/api/processors/download.ts +++ b/core/src/node/api/processors/download.ts @@ -5,7 +5,7 @@ import { getJanDataFolderPath } from '../../helper' import { DownloadManager } from '../../helper/download' import { createWriteStream, renameSync } from 'fs' import { Processor } from './Processor' -import { DownloadState } from '../../../types' +import { DownloadRequest, DownloadState, NetworkConfig } from '../../../types' export class Downloader implements Processor { observer?: Function @@ -20,37 +20,67 @@ export class Downloader implements Processor { return func(this.observer, ...args) } - downloadFile(observer: any, url: string, localPath: string, network: any) { + downloadFile(observer: any, downloadRequest: DownloadRequest, network?: NetworkConfig) { const request = require('request') const progress = require('request-progress') const strictSSL = !network?.ignoreSSL const proxy = network?.proxy?.startsWith('http') ? network.proxy : undefined + + const { localPath, url } = downloadRequest + let normalizedPath = localPath if (typeof localPath === 'string') { - localPath = normalizeFilePath(localPath) + normalizedPath = normalizeFilePath(localPath) } - const array = localPath.split(sep) + const array = normalizedPath.split(sep) const fileName = array.pop() ?? '' const modelId = array.pop() ?? '' - const destination = resolve(getJanDataFolderPath(), localPath) + const destination = resolve(getJanDataFolderPath(), normalizedPath) const rq = request({ url, strictSSL, proxy }) // Put request to download manager instance - DownloadManager.instance.setRequest(localPath, rq) + DownloadManager.instance.setRequest(normalizedPath, rq) // Downloading file to a temp file first const downloadingTempFile = `${destination}.download` + // adding initial download state + const initialDownloadState: DownloadState = { + modelId, + fileName, + time: { + elapsed: 0, + remaining: 0, + }, + speed: 0, + percent: 0, + size: { + total: 0, + transferred: 0, + }, + children: [], + downloadState: 'downloading', + extensionId: downloadRequest.extensionId, + downloadType: downloadRequest.downloadType, + localPath: normalizedPath, + } + DownloadManager.instance.downloadProgressMap[modelId] = initialDownloadState + + if (downloadRequest.downloadType === 'extension') { + observer?.(DownloadEvent.onFileDownloadUpdate, initialDownloadState) + } + progress(rq, {}) .on('progress', (state: any) => { + const currentDownloadState = DownloadManager.instance.downloadProgressMap[modelId] const downloadState: DownloadState = { + ...currentDownloadState, ...state, - modelId, - fileName, + fileName: fileName, downloadState: 'downloading', } - console.log('progress: ', downloadState) + console.debug('progress: ', downloadState) observer?.(DownloadEvent.onFileDownloadUpdate, downloadState) DownloadManager.instance.downloadProgressMap[modelId] = downloadState }) @@ -58,22 +88,22 @@ export class Downloader implements Processor { const currentDownloadState = DownloadManager.instance.downloadProgressMap[modelId] const downloadState: DownloadState = { ...currentDownloadState, + fileName: fileName, error: error.message, downloadState: 'error', } - if (currentDownloadState) { - DownloadManager.instance.downloadProgressMap[modelId] = downloadState - } observer?.(DownloadEvent.onFileDownloadError, downloadState) + DownloadManager.instance.downloadProgressMap[modelId] = downloadState }) .on('end', () => { const currentDownloadState = DownloadManager.instance.downloadProgressMap[modelId] - if (currentDownloadState && DownloadManager.instance.networkRequests[localPath]) { + if (currentDownloadState && DownloadManager.instance.networkRequests[normalizedPath]) { // Finished downloading, rename temp file to actual file renameSync(downloadingTempFile, destination) const downloadState: DownloadState = { ...currentDownloadState, + fileName: fileName, downloadState: 'end', } observer?.(DownloadEvent.onFileDownloadSuccess, downloadState) diff --git a/core/src/node/api/processors/fsExt.ts b/core/src/node/api/processors/fsExt.ts index 71e07ae57..7b08e24c9 100644 --- a/core/src/node/api/processors/fsExt.ts +++ b/core/src/node/api/processors/fsExt.ts @@ -1,6 +1,5 @@ import { join } from 'path' import fs from 'fs' -import { FileManagerRoute } from '../../../api' import { appResourcePath, normalizeFilePath } from '../../helper/path' import { getJanDataFolderPath, getJanDataFolderPath as getPath } from '../../helper' import { Processor } from './Processor' @@ -48,10 +47,12 @@ export class FSExt implements Processor { } // handle fs is directory here - fileStat(path: string) { + fileStat(path: string, outsideJanDataFolder?: boolean) { const normalizedPath = normalizeFilePath(path) - const fullPath = join(getJanDataFolderPath(), normalizedPath) + const fullPath = outsideJanDataFolder + ? normalizedPath + : join(getJanDataFolderPath(), normalizedPath) const isExist = fs.existsSync(fullPath) if (!isExist) return undefined @@ -75,4 +76,40 @@ export class FSExt implements Processor { console.error(`writeFile ${path} result: ${err}`) } } + + copyFile(src: string, dest: string): Promise { + return new Promise((resolve, reject) => { + fs.copyFile(src, dest, (err) => { + if (err) { + reject(err) + } else { + resolve() + } + }) + }) + } + + mkdir(path: string): Promise { + return new Promise((resolve, reject) => { + fs.mkdir(path, { recursive: true }, (err) => { + if (err) { + reject(err) + } else { + resolve() + } + }) + }) + } + + rm(path: string): Promise { + return new Promise((resolve, reject) => { + fs.rm(path, { recursive: true }, (err) => { + if (err) { + reject(err) + } else { + resolve() + } + }) + }) + } } diff --git a/core/src/node/api/restful/common.ts b/core/src/node/api/restful/common.ts index 433632989..c8061c34a 100644 --- a/core/src/node/api/restful/common.ts +++ b/core/src/node/api/restful/common.ts @@ -40,7 +40,7 @@ export const commonRouter = async (app: HttpServer) => { }) // Threads - app.post(`/threads/`, async (req, res) => createThread(req.body)) + app.post(`/threads`, async (req, res) => createThread(req.body)) app.get(`/threads/:threadId/messages`, async (req, res) => getMessages(req.params.threadId).then(normalizeData) diff --git a/core/src/node/api/restful/helper/builder.ts b/core/src/node/api/restful/helper/builder.ts index 7001c0c76..1ef8d34a4 100644 --- a/core/src/node/api/restful/helper/builder.ts +++ b/core/src/node/api/restful/helper/builder.ts @@ -1,7 +1,16 @@ -import fs from 'fs' +import { + existsSync, + readdirSync, + readFileSync, + writeFileSync, + mkdirSync, + appendFileSync, + createWriteStream, + rmdirSync, +} from 'fs' import { JanApiRouteConfiguration, RouteConfiguration } from './configuration' import { join } from 'path' -import { ContentType, MessageStatus, Model, ThreadMessage } from '../../../../index' +import { ContentType, MessageStatus, Model, ThreadMessage } from '../../../../types' import { getEngineConfiguration, getJanDataFolderPath } from '../../../helper' import { DEFAULT_CHAT_COMPLETION_URL } from './consts' @@ -9,12 +18,12 @@ import { DEFAULT_CHAT_COMPLETION_URL } from './consts' export const getBuilder = async (configuration: RouteConfiguration) => { const directoryPath = join(getJanDataFolderPath(), configuration.dirName) try { - if (!fs.existsSync(directoryPath)) { + if (!existsSync(directoryPath)) { console.debug('model folder not found') return [] } - const files: string[] = fs.readdirSync(directoryPath) + const files: string[] = readdirSync(directoryPath) const allDirectories: string[] = [] for (const file of files) { @@ -46,8 +55,8 @@ export const getBuilder = async (configuration: RouteConfiguration) => { } const readModelMetadata = (path: string): string | undefined => { - if (fs.existsSync(path)) { - return fs.readFileSync(path, 'utf-8') + if (existsSync(path)) { + return readFileSync(path, 'utf-8') } else { return undefined } @@ -81,7 +90,7 @@ export const deleteBuilder = async (configuration: RouteConfiguration, id: strin } const objectPath = join(directoryPath, id) - fs.rmdirSync(objectPath, { recursive: true }) + rmdirSync(objectPath, { recursive: true }) return { id: id, object: configuration.delete.object, @@ -96,20 +105,19 @@ export const getMessages = async (threadId: string): Promise => const threadDirPath = join(getJanDataFolderPath(), 'threads', threadId) const messageFile = 'messages.jsonl' try { - const files: string[] = fs.readdirSync(threadDirPath) + const files: string[] = readdirSync(threadDirPath) if (!files.includes(messageFile)) { console.error(`${threadDirPath} not contains message file`) return [] } const messageFilePath = join(threadDirPath, messageFile) - if (!fs.existsSync(messageFilePath)) { + if (!existsSync(messageFilePath)) { console.debug('message file not found') return [] } - const lines = fs - .readFileSync(messageFilePath, 'utf-8') + const lines = readFileSync(messageFilePath, 'utf-8') .toString() .split('\n') .filter((line: any) => line !== '') @@ -157,11 +165,11 @@ export const createThread = async (thread: any) => { const threadDirPath = join(getJanDataFolderPath(), 'threads', updatedThread.id) const threadJsonPath = join(threadDirPath, threadMetadataFileName) - if (!fs.existsSync(threadDirPath)) { - fs.mkdirSync(threadDirPath) + if (!existsSync(threadDirPath)) { + mkdirSync(threadDirPath) } - await fs.writeFileSync(threadJsonPath, JSON.stringify(updatedThread, null, 2)) + await writeFileSync(threadJsonPath, JSON.stringify(updatedThread, null, 2)) return updatedThread } catch (err) { return { @@ -191,7 +199,7 @@ export const updateThread = async (threadId: string, thread: any) => { const threadDirPath = join(getJanDataFolderPath(), 'threads', updatedThread.id) const threadJsonPath = join(threadDirPath, threadMetadataFileName) - await fs.writeFileSync(threadJsonPath, JSON.stringify(updatedThread, null, 2)) + await writeFileSync(threadJsonPath, JSON.stringify(updatedThread, null, 2)) return updatedThread } catch (err) { return { @@ -208,7 +216,7 @@ export const createMessage = async (threadId: string, message: any) => { const threadMessagesFileName = 'messages.jsonl' try { - const { ulid } = require('ulid') + const { ulid } = require('ulidx') const msgId = ulid() const createdAt = Date.now() const threadMessage: ThreadMessage = { @@ -233,10 +241,10 @@ export const createMessage = async (threadId: string, message: any) => { const threadDirPath = join(getJanDataFolderPath(), 'threads', threadId) const threadMessagePath = join(threadDirPath, threadMessagesFileName) - if (!fs.existsSync(threadDirPath)) { - fs.mkdirSync(threadDirPath) + if (!existsSync(threadDirPath)) { + mkdirSync(threadDirPath) } - fs.appendFileSync(threadMessagePath, JSON.stringify(threadMessage) + '\n') + appendFileSync(threadMessagePath, JSON.stringify(threadMessage) + '\n') return threadMessage } catch (err) { return { @@ -259,8 +267,8 @@ export const downloadModel = async ( } const directoryPath = join(getJanDataFolderPath(), 'models', modelId) - if (!fs.existsSync(directoryPath)) { - fs.mkdirSync(directoryPath) + if (!existsSync(directoryPath)) { + mkdirSync(directoryPath) } // path to model binary @@ -281,7 +289,7 @@ export const downloadModel = async ( .on('end', function () { console.debug('end') }) - .pipe(fs.createWriteStream(modelBinaryPath)) + .pipe(createWriteStream(modelBinaryPath)) } return { diff --git a/core/src/node/api/restful/helper/startStopModel.ts b/core/src/node/api/restful/helper/startStopModel.ts index 0e6972b0b..4627b4120 100644 --- a/core/src/node/api/restful/helper/startStopModel.ts +++ b/core/src/node/api/restful/helper/startStopModel.ts @@ -41,7 +41,7 @@ const runModel = async (modelId: string, settingParams?: ModelSettingParams): Pr const modelFolderFullPath = join(janDataFolderPath, 'models', modelId) if (!fs.existsSync(modelFolderFullPath)) { - throw `Model not found: ${modelId}` + throw new Error(`Model not found: ${modelId}`) } const files: string[] = fs.readdirSync(modelFolderFullPath) @@ -53,7 +53,7 @@ const runModel = async (modelId: string, settingParams?: ModelSettingParams): Pr const modelMetadata: Model = JSON.parse(fs.readFileSync(modelMetadataPath, 'utf-8')) if (!ggufBinFile) { - throw 'No GGUF model file found' + throw new Error('No GGUF model file found') } const modelBinaryPath = join(modelFolderFullPath, ggufBinFile) @@ -76,7 +76,7 @@ const runModel = async (modelId: string, settingParams?: ModelSettingParams): Pr const promptTemplate = modelMetadata.settings.prompt_template const prompt = promptTemplateConverter(promptTemplate) if (prompt?.error) { - return Promise.reject(prompt.error) + throw new Error(prompt.error) } nitroModelSettings.system_prompt = prompt.system_prompt nitroModelSettings.user_prompt = prompt.user_prompt diff --git a/core/src/node/extension/store.ts b/core/src/node/extension/store.ts index 93b1aeb2b..630756485 100644 --- a/core/src/node/extension/store.ts +++ b/core/src/node/extension/store.ts @@ -93,8 +93,7 @@ export function persistExtensions() { */ export async function installExtensions(extensions: any) { const installed: Extension[] = [] - for (const ext of extensions) { - // Set install options and activation based on input type + const installations = extensions.map((ext: any): Promise => { const isObject = typeof ext === 'object' const spec = isObject ? [ext.specifier, ext] : [ext] const activate = isObject ? ext.activate !== false : true @@ -102,15 +101,17 @@ export async function installExtensions(extensions: any) { // Install and possibly activate extension const extension = new Extension(...spec) if (!extension.origin) { - continue + return Promise.resolve() } - await extension._install() - if (activate) extension.setActive(true) + return extension._install().then(() => { + if (activate) extension.setActive(true) + // Add extension to store if needed + addExtension(extension) + installed.push(extension) + }) + }) - // Add extension to store if needed - addExtension(extension) - installed.push(extension) - } + await Promise.all(installations) // Return list of all installed extensions return installed diff --git a/core/src/node/helper/config.ts b/core/src/node/helper/config.ts index 71e721578..b5ec2e029 100644 --- a/core/src/node/helper/config.ts +++ b/core/src/node/helper/config.ts @@ -4,13 +4,13 @@ import fs from 'fs' import os from 'os' import childProcess from 'child_process' -// TODO: move this to core const configurationFileName = 'settings.json' // TODO: do no specify app name in framework module const defaultJanDataFolder = join(os.homedir(), 'jan') const defaultAppConfig: AppConfiguration = { data_folder: defaultJanDataFolder, + quick_ask: false, } /** @@ -82,26 +82,34 @@ export const getJanExtensionsPath = (): string => { */ export const physicalCpuCount = async (): Promise => { const platform = os.platform() - if (platform === 'linux') { - const output = await exec('lscpu -p | egrep -v "^#" | sort -u -t, -k 2,4 | wc -l') - return parseInt(output.trim(), 10) - } else if (platform === 'darwin') { - const output = await exec('sysctl -n hw.physicalcpu_max') - return parseInt(output.trim(), 10) - } else if (platform === 'win32') { - const output = await exec('WMIC CPU Get NumberOfCores') - return output - .split(os.EOL) - .map((line: string) => parseInt(line)) - .filter((value: number) => !isNaN(value)) - .reduce((sum: number, number: number) => sum + number, 1) - } else { - const cores = os.cpus().filter((cpu: any, index: number) => { - const hasHyperthreading = cpu.model.includes('Intel') - const isOdd = index % 2 === 1 - return !hasHyperthreading || isOdd - }) - return cores.length + try { + if (platform === 'linux') { + const output = await exec('lscpu -p | egrep -v "^#" | sort -u -t, -k 2,4 | wc -l') + return parseInt(output.trim(), 10) + } else if (platform === 'darwin') { + const output = await exec('sysctl -n hw.physicalcpu_max') + return parseInt(output.trim(), 10) + } else if (platform === 'win32') { + const output = await exec('WMIC CPU Get NumberOfCores') + return output + .split(os.EOL) + .map((line: string) => parseInt(line)) + .filter((value: number) => !isNaN(value)) + .reduce((sum: number, number: number) => sum + number, 1) + } else { + const cores = os.cpus().filter((cpu: any, index: number) => { + const hasHyperthreading = cpu.model.includes('Intel') + const isOdd = index % 2 === 1 + return !hasHyperthreading || isOdd + }) + return cores.length + } + } catch (err) { + console.warn('Failed to get physical CPU count', err) + // Divide by 2 to get rid of hyper threading + const coreCount = Math.ceil(os.cpus().length / 2) + console.debug('Using node API to get physical CPU count:', coreCount) + return coreCount } } @@ -118,7 +126,7 @@ const exec = async (command: string): Promise => { } export const getEngineConfiguration = async (engineId: string) => { - if (engineId !== 'openai') { + if (engineId !== 'openai' && engineId !== 'groq') { return undefined } const directoryPath = join(getJanDataFolderPath(), 'engines') diff --git a/core/src/node/helper/resource.ts b/core/src/node/helper/resource.ts index c79a63688..faaaace05 100644 --- a/core/src/node/helper/resource.ts +++ b/core/src/node/helper/resource.ts @@ -1,6 +1,6 @@ import { SystemResourceInfo } from '../../types' import { physicalCpuCount } from './config' -import { log, logServer } from './log' +import { log } from './log' export const getSystemResourceInfo = async (): Promise => { const cpu = await physicalCpuCount() diff --git a/core/src/node/index.ts b/core/src/node/index.ts index 31f2f076e..02d921fd6 100644 --- a/core/src/node/index.ts +++ b/core/src/node/index.ts @@ -4,3 +4,5 @@ export * from './extension/manager' export * from './extension/store' export * from './api' export * from './helper' +export * from './../types' +export * from './../api' diff --git a/core/src/types/config/appConfigEntity.ts b/core/src/types/config/appConfigEntity.ts index 81ea0b30f..1402aeca1 100644 --- a/core/src/types/config/appConfigEntity.ts +++ b/core/src/types/config/appConfigEntity.ts @@ -1,3 +1,4 @@ export type AppConfiguration = { data_folder: string + quick_ask: boolean } diff --git a/core/src/types/file/index.ts b/core/src/types/file/index.ts index cc7274a28..d941987ef 100644 --- a/core/src/types/file/index.ts +++ b/core/src/types/file/index.ts @@ -4,16 +4,43 @@ export type FileStat = { } export type DownloadState = { - modelId: string + modelId: string // TODO: change to download id fileName: string time: DownloadTime speed: number - percent: number + percent: number size: DownloadSize - children?: DownloadState[] - error?: string downloadState: 'downloading' | 'error' | 'end' + children?: DownloadState[] + + error?: string + extensionId?: string + downloadType?: DownloadType + localPath?: string +} + +export type DownloadType = 'model' | 'extension' + +export type DownloadRequest = { + /** + * The URL to download the file from. + */ + url: string + + /** + * The local path to save the file to. + */ + localPath: string + + /** + * The extension ID of the extension that initiated the download. + * + * Can be extension name. + */ + extensionId?: string + + downloadType?: DownloadType } type DownloadTime = { diff --git a/core/src/types/message/messageEntity.ts b/core/src/types/message/messageEntity.ts index e9211d550..b7365c6cd 100644 --- a/core/src/types/message/messageEntity.ts +++ b/core/src/types/message/messageEntity.ts @@ -29,6 +29,9 @@ export type ThreadMessage = { metadata?: Record type?: string + + /** The error code which explain what error type. Used in conjunction with MessageStatus.Error */ + error_code?: ErrorCode } /** @@ -77,6 +80,12 @@ export enum MessageStatus { Stopped = 'stopped', } +export enum ErrorCode { + InvalidApiKey = 'invalid_api_key', + + Unknown = 'unknown', +} + /** * The content type of the message. */ diff --git a/core/src/types/miscellaneous/appUpdate.ts b/core/src/types/miscellaneous/appUpdate.ts new file mode 100644 index 000000000..ed135e3bd --- /dev/null +++ b/core/src/types/miscellaneous/appUpdate.ts @@ -0,0 +1,7 @@ +export type AppUpdateInfo = { + total: number + delta: number + transferred: number + percent: number + bytesPerSecond: number +} diff --git a/core/src/types/miscellaneous/fileDownloadRequest.ts b/core/src/types/miscellaneous/fileDownloadRequest.ts new file mode 100644 index 000000000..83131aa71 --- /dev/null +++ b/core/src/types/miscellaneous/fileDownloadRequest.ts @@ -0,0 +1,8 @@ +export type FileDownloadRequest = { + downloadId: string + url: string + localPath: string + fileName: string + displayName: string + metadata: Record +} diff --git a/core/src/types/miscellaneous/index.ts b/core/src/types/miscellaneous/index.ts index 02c973323..b4ef68ab6 100644 --- a/core/src/types/miscellaneous/index.ts +++ b/core/src/types/miscellaneous/index.ts @@ -1,2 +1,5 @@ export * from './systemResourceInfo' export * from './promptTemplate' +export * from './appUpdate' +export * from './fileDownloadRequest' +export * from './networkConfig' \ No newline at end of file diff --git a/core/src/types/miscellaneous/networkConfig.ts b/core/src/types/miscellaneous/networkConfig.ts new file mode 100644 index 000000000..2d27f4223 --- /dev/null +++ b/core/src/types/miscellaneous/networkConfig.ts @@ -0,0 +1,4 @@ +export type NetworkConfig = { + proxy?: string + ignoreSSL?: boolean +} diff --git a/core/src/types/miscellaneous/systemResourceInfo.ts b/core/src/types/miscellaneous/systemResourceInfo.ts index 1472cda47..fb059b1ba 100644 --- a/core/src/types/miscellaneous/systemResourceInfo.ts +++ b/core/src/types/miscellaneous/systemResourceInfo.ts @@ -2,3 +2,55 @@ export type SystemResourceInfo = { numCpuPhysicalCore: number memAvailable: number } + +export type RunMode = 'cpu' | 'gpu' + +export type GpuSetting = { + notify: boolean + run_mode: RunMode + nvidia_driver: { + exist: boolean + version: string + } + cuda: { + exist: boolean + version: string + } + gpus: GpuSettingInfo[] + gpu_highest_vram: string + gpus_in_use: string[] + is_initial: boolean + // TODO: This needs to be set based on user toggle in settings + vulkan: boolean +} + +export type GpuSettingInfo = { + id: string + vram: string + name: string + arch?: string +} + +export type SystemInformation = { + gpuSetting: GpuSetting + osInfo?: OperatingSystemInfo +} + +export const SupportedPlatforms = ['win32', 'linux', 'darwin'] as const +export type SupportedPlatformTuple = typeof SupportedPlatforms +export type SupportedPlatform = SupportedPlatformTuple[number] + +export type OperatingSystemInfo = { + platform: SupportedPlatform | 'unknown' + arch: string + release: string + machine: string + version: string + totalMem: number + freeMem: number +} + +export type CpuCoreInfo = { + model: string + speed: number +} diff --git a/core/src/types/model/index.ts b/core/src/types/model/index.ts index cba06ea95..fdbf01863 100644 --- a/core/src/types/model/index.ts +++ b/core/src/types/model/index.ts @@ -1,3 +1,4 @@ export * from './modelEntity' export * from './modelInterface' export * from './modelEvent' +export * from './modelImport' diff --git a/core/src/types/model/modelEntity.ts b/core/src/types/model/modelEntity.ts index 644c34dfb..d62a7c387 100644 --- a/core/src/types/model/modelEntity.ts +++ b/core/src/types/model/modelEntity.ts @@ -7,7 +7,7 @@ export type ModelInfo = { settings: ModelSettingParams parameters: ModelRuntimeParams engine?: InferenceEngine - proxyEngine?: InferenceEngine + proxy_model?: InferenceEngine } /** @@ -18,7 +18,9 @@ export type ModelInfo = { export enum InferenceEngine { nitro = 'nitro', openai = 'openai', + groq = 'groq', triton_trtllm = 'triton_trtllm', + nitro_tensorrt_llm = 'nitro-tensorrt-llm', tool_retrieval_enabled = 'tool_retrieval_enabled', } @@ -93,12 +95,7 @@ export type Model = { */ engine: InferenceEngine - proxyEngine?: InferenceEngine - - /** - * Is multimodal or not. - */ - visionModel?: boolean + proxy_model?: InferenceEngine } export type ModelMetadata = { @@ -124,6 +121,8 @@ export type ModelSettingParams = { llama_model_path?: string mmproj?: string cont_batching?: boolean + vision_model?: boolean + text_model?: boolean } /** @@ -141,3 +140,7 @@ export type ModelRuntimeParams = { presence_penalty?: number engine?: string } + +export type ModelInitFailed = Model & { + error: Error +} diff --git a/core/src/types/model/modelImport.ts b/core/src/types/model/modelImport.ts new file mode 100644 index 000000000..7c72a691b --- /dev/null +++ b/core/src/types/model/modelImport.ts @@ -0,0 +1,23 @@ +export type OptionType = 'SYMLINK' | 'MOVE_BINARY_FILE' + +export type ModelImportOption = { + type: OptionType + title: string + description: string +} + +export type ImportingModelStatus = 'PREPARING' | 'IMPORTING' | 'IMPORTED' | 'FAILED' + +export type ImportingModel = { + importId: string + modelId: string | undefined + name: string + description: string + path: string + tags: string[] + size: number + status: ImportingModelStatus + format: string + percentage?: number + error?: string +} diff --git a/core/src/types/model/modelInterface.ts b/core/src/types/model/modelInterface.ts index 93d5867ee..639c7c8d3 100644 --- a/core/src/types/model/modelInterface.ts +++ b/core/src/types/model/modelInterface.ts @@ -1,3 +1,4 @@ +import { GpuSetting } from '../miscellaneous' import { Model } from './modelEntity' /** @@ -10,7 +11,11 @@ export interface ModelInterface { * @param network - Optional object to specify proxy/whether to ignore SSL certificates. * @returns A Promise that resolves when the model has been downloaded. */ - downloadModel(model: Model, network?: { ignoreSSL?: boolean; proxy?: string }): Promise + downloadModel( + model: Model, + gpuSettings?: GpuSetting, + network?: { ignoreSSL?: boolean; proxy?: string } + ): Promise /** * Cancels the download of a specific model. diff --git a/core/src/types/monitoring/index.ts b/core/src/types/monitoring/index.ts index 5828dae8b..b96c518fd 100644 --- a/core/src/types/monitoring/index.ts +++ b/core/src/types/monitoring/index.ts @@ -1 +1,2 @@ export * from './monitoringInterface' +export * from './resourceInfo' diff --git a/core/src/types/monitoring/resourceInfo.ts b/core/src/types/monitoring/resourceInfo.ts new file mode 100644 index 000000000..b19da5462 --- /dev/null +++ b/core/src/types/monitoring/resourceInfo.ts @@ -0,0 +1,6 @@ +export type ResourceInfo = { + mem: { + totalMemory: number + usedMemory: number + } +} diff --git a/core/tsconfig.json b/core/tsconfig.json index b112079d2..daeb7eeff 100644 --- a/core/tsconfig.json +++ b/core/tsconfig.json @@ -13,7 +13,7 @@ "declarationDir": "dist/types", "outDir": "dist/lib", "importHelpers": true, - "types": ["@types/jest"] + "types": ["@types/jest"], }, - "include": ["src"] + "include": ["src"], } diff --git a/docs/.env.example b/docs/.env.example index b4a7fa5f1..22f6e715f 100644 --- a/docs/.env.example +++ b/docs/.env.example @@ -2,4 +2,5 @@ GTM_ID=xxxx UMAMI_PROJECT_API_KEY=xxxx UMAMI_APP_URL=xxxx ALGOLIA_API_KEY=xxxx -ALGOLIA_APP_ID=xxxx \ No newline at end of file +ALGOLIA_APP_ID=xxxx +GITHUB_ACCESS_TOKEN=xxxx \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index b5d31702f..02330bc80 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,18 +1,20 @@ -# Website +# Website & Docs -This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. +This website is built using [Docusaurus 3.0](https://docusaurus.io/), a modern static website generator. -## Information Architecture +### Information Architecture We try to **keep routes consistent** to maintain SEO. -- `/guides`: Guides on how to use the Jan application, with GIFs. For end users who are directly using Jan. Always assume users are not technical. +- **`/guides/`**: Guides on how to use the Jan application. For end users who are directly using Jan. -- `/developer`: Developer docs on how to extend Jan. These pages are about what people can build with our software. We must hide the complexity of HOW the app is built, but explain just enough of the high level architecture so devs know enough to build on top of it. +- **`/developer/`**: Developer docs on how to extend Jan. These pages are about what people can build with our software. -- `/api-reference`: Reference documentation, written in Swagger/OpenAPI format. +- **`/api-reference/`**: Reference documentation for the Jan API server, written in Swagger/OpenAPI format. -- `/docs`: Engineering specs and product specs, i.e. HOW the app is built. Mostly for internal reference and for our core contributors who are building the SDK itself. +- **`/changelog/`**: A list of changes made to the Jan application with each release. + +- **`/blog/`**: A blog for the Jan application. ### Sidebar Autogeneration @@ -20,34 +22,36 @@ The order of each page is either explicitly defined in `sidebar.js` or follows t Important slugs are hardcoded at the document level (and shouldn't be rerouted): -```md +``` --- title: Overview slug: /docs --- ``` -## Contributing +## How to Contribute -### Installation +Refer to the [Contributing Guide](https://github.com/janhq/jan/blob/dev/CONTRIBUTING.md) for more comprehensive information on how to contribute to the Jan project. -``` -$ yarn -``` +### Pre-requisites and Installation -### Local Development +- [Node.js](https://nodejs.org/en/) (version 20.0.0 or higher) +- [yarn](https://yarnpkg.com/) (version 1.22.0 or higher) -``` -$ cp .env.example .env -$ yarn start +#### Installation + +```bash +cd jan/docs +yarn install +yarn start ``` This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. -### Build +#### Build -``` -$ yarn build +```bash +yarn build ``` This command generates static content into the `build` directory and can be served using any static contents hosting service. @@ -56,25 +60,27 @@ This command generates static content into the `build` directory and can be serv Using SSH: -``` -$ USE_SSH=true yarn deploy +```bash +USE_SSH=true yarn deploy ``` Not using SSH: -``` -$ GIT_USER= yarn deploy +```bash +GIT_USER= yarn deploy ``` If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. ### Preview URL, Pre-release and Publishing Documentation -When a PR is created, the preview URL will be automatically commented on the PR. +- When a pull request is created, the preview URL will be automatically commented on the pull request. -The documentation will then be published to [https://jan.ai/](https://jan.ai/) when the PR is merged to `main`. +- The documentation will then be published to [https://dev.jan.ai/](https://dev.jan.ai/) when the pull request is merged to `dev`. + +- Our open-source maintainers will sync the updated content from `dev` to `docs` branch, which will then be published to [https://jan.ai/](https://jan.ai/). ### Additional Plugins - @docusaurus/theme-live-codeblock -- [Redocusaurus](https://redocusaurus.vercel.app/): manually upload swagger files at `/openapi/OpenAPISpec.json` +- [Redocusaurus](https://redocusaurus.vercel.app/): manually upload swagger files at `/openapi/jan.yaml` to update the API reference documentation. diff --git a/docs/blog/01-january-10-2024-bitdefender-false-positive-flag.mdx b/docs/blog/2024-01-10-bitdefender-false-positive-flag.mdx similarity index 96% rename from docs/blog/01-january-10-2024-bitdefender-false-positive-flag.mdx rename to docs/blog/2024-01-10-bitdefender-false-positive-flag.mdx index ef418ff97..4e6c9b542 100644 --- a/docs/blog/01-january-10-2024-bitdefender-false-positive-flag.mdx +++ b/docs/blog/2024-01-10-bitdefender-false-positive-flag.mdx @@ -1,8 +1,27 @@ --- -title: "Post Mortem: Bitdefender False Positive Flag" +title: 'Post Mortem: Bitdefender False Positive Flag' description: "10th January 2024, Jan's 0.4.4 Release on Windows triggered Bitdefender to incorrectly flag it as infected with Gen:Variant.Tedy.258323, leading to automatic quarantine warnings on users' computers." slug: /postmortems/january-10-2024-bitdefender-false-positive-flag tags: [Postmortem] +keywords: + [ + postmortem, + bitdefender, + false positive, + antivirus, + jan, + nitro, + incident, + incident response, + supply chain security, + user communication, + documentation, + antivirus compatibility, + cross-platform testing, + proactive incident response, + user education, + lessons learned, + ] --- Following the recent incident related to Jan version 0.4.4 triggering Bitdefender on Windows with Gen:Variant.Tedy.258323 on January 10, 2024, we wanted to provide a comprehensive postmortem and outline the necessary follow-up actions. diff --git a/docs/blog/2024-03-19-TensorRT-LLM.md b/docs/blog/2024-03-19-TensorRT-LLM.md new file mode 100644 index 000000000..03afb2179 --- /dev/null +++ b/docs/blog/2024-03-19-TensorRT-LLM.md @@ -0,0 +1,145 @@ +--- +title: Benchmarking TensorRT-LLM vs. llama.cpp +description: Jan has added support for the TensorRT-LLM Inference Engine, as an alternative to llama.cpp. We provide a performance benchmark that shows the head-to-head comparison of the two Inference Engine and model formats, with TensorRT-LLM providing better performance but consumes significantly more VRAM and RAM. +tags: [Nvidia, TensorRT-LLM, llama.cpp, 3090, 4090, "inference engine"] +unlisted: true +--- + +Jan has added support [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM) as an alternative to the default [llama.cpp](https://github.com/ggerganov/llama.cpp) inference engine. TensorRT-LLM allows Nvidia GPU owners to run blazing fast LLM inference as a hardware-optimized LLM inference engine that compiles models to [run extremely fast on Nvidia GPUs](https://blogs.nvidia.com/blog/tensorrt-llm-windows-stable-diffusion-rtx/). + +You can follow our [TensorRT-LLM Guide](/guides/providers/tensorrt-llm) to try it out today. We've also added a few TensorRT-LLM models to Jan's Model Hub for download: + +- Mistral 7b +- TinyLlama-1.1b +- TinyJensen-1.1b 😂 + +:::tip + +TensorRT-LLM support is available in [v0.4.9](https://github.com/janhq/jan/releases/tag/v0.4.9), but should be considered an experimental feature. + +Please report bugs on [Github](https://github.com/janhq/jan) or on our Discord's [#tensorrt-llm](https://discord.com/channels/1107178041848909847/1201832734704795688) channel. + +::: + +## Performance Benchmarks + + +We were really curious to see how TensorRT-LLM would perform vs. llama.cpp on consumer-grade GPUs. TensorRT-LLM has previously been shown by Nvidia to reach performance of up to [10,000 tokens/s](https://nvidia.github.io/TensorRT-LLM/blogs/H100vsA100.html) on datacenter-grade GPUs. As most of Jan's users are proud card carrying members of the [GPU Poor](https://www.semianalysis.com/p/google-gemini-eats-the-world-gemini#the-gpu-poor), we wanted to see how the two inference engine performed on the same hardware. + +:::info + +An interesting aside: Jan actually started out in June 2023 building on [FastTransformer](https://github.com/NVIDIA/FasterTransformer), the precursor library to TensorRT-LLM. TensorRT-LLM was released in September 2023, making it a very young library. We're excited to see it's roadmap develop! + +::: + +### Test Setup + +We picked 3 hardware platforms to run the test on, based on Jan's userbase's self-reported common hardware platforms. + +| NVIDIA GPU | VRAM Used (GB) | CUDA Cores | Tensor Cores | Memory Bus Width (bit) | Memory Bandwidth (GB/s) | +| ------------------------- | -------------- | ---------- | ------------ | ---------------------- | ----------------------- | +| RTX 4090 Desktop (Ada) | 24 | 16,384 | 512 | 384 | ~1000 | +| RTX 3090 Desktop (Ampere) | 24 | 10,496 | 328 | 384 | 935.8 | +| RTX 4060 Laptop (Ada) | 8 | 3,072 | 96 | 128 | 272 | + +:::warning[Low-spec Machines?] + +We didn't bother including low-spec machines: TensorRT-LLM is meant for performance, and simply doesn't work on lower grade Nvidia GPUs, or computers without GPUs. + +TensorRT-LLM provides blazing fast performance at the cost of [memory usage](https://nvidia.github.io/TensorRT-LLM/memory.html). This means that the performance improvements only show up in higher-range GPUs with larger VRAMs. + +We've found that [llama.cpp](https://github.com/ggerganov/llama.cpp) does an incredible job of democratizing inference to the [GPU Poor](https://www.semianalysis.com/p/google-gemini-eats-the-world-gemini#the-gpu-poor) with CPU-only or lower-range GPUs. Huge shout outs to the [llama.cpp maintainers](https://github.com/ggerganov/llama.cpp/graphs/contributors) and the [ggml.ai](https://ggml.ai/) team. + +::: + +We chose the popular Mistral 7b model to run on both GGUF and TensorRT-LLM, picking comparable quantizations. + +#### llama.cpp Setup +- For llama.cpp, we used `Mistral-7b-q4_k_m` +- [ ] Fill in `ngl` params, GPU offload etc + +#### TensorRT-LLM Setup +- For TensorRT-LLM, we used `Mistral-7b-int4 AWQ` +- We ran TensorRT-LLM with `free_gpu_memory_fraction` to test it with the lowest VRAM consumption (performance may be affected) +- Note: We picked AWQ for TensorRT-LLM as a handicap as AWQ supposedly sacrifices performance for quality + +#### Experiment Setup +We ran the experiment using a standardized inference request in a sandboxed environment on the same machine: +- We ran tests 5 times for each inference engine, on a baremetal PC with no other applications open +- Each inference request was of `batch_size` 1 and `input_len` 2048, `output_len` 512 as a realistic test case +- CPU and Memory usage were obtained from.... Windows Task Manager 😱 +- GPU usage was obtained from `nvtop`, `htop`, and `nvidia-smi` + +## Results + +Our biggest takeaway: TensorRT-LLM is faster than llama.cpp on 4090s and 3090s with larger VRAMs. However, on smaller GPUs (e.g. Laptop 4060 GPUs), + +| | 4090 Desktop | 3090 Desktop | 4060 Laptop | +| ------------ | ------------ | ------------ | ----------- | +| TensorRT-LLM | ✅ 159t/s | ✅ 140.27t/s | ❌ 19t/s | +| llama.cpp | 101.3t/s | 90t/s | 22t/s | + +### RTX-4090 Desktop + +:::info[Hardware Details] + +- CPU: Intel 13th series +- GPU: NVIDIA GPU 4090 (Ampere - sm 86) +- RAM: 32GB +- OS: Windows 11 Pro on Proxmox + +::: + +Nvidia's RTX-4090 is their top-of-the-line consumer GPU, and retails for [approximately $2,000](https://www.amazon.com/rtx-4090/s?k=rtx+4090). + +#### Mistral-7b int4 + +| Metrics | GGUF (using GPU) | TensorRT-LLM | Difference | +| -------------------- | -------------------- | ------------ | -------------- | +| Throughput (token/s) | 101.3 | 159 | ✅ 57% faster | +| VRAM Used (GB) | 5.5 | 6.3 | 🤔 14% more | +| RAM Used (GB) | 0.54 | 0.42 | 🤯 20% less | +| Disk Size (GB) | 4.07 | 3.66 | 🤯 10% smaller | + + +### RTX-3090 Desktop + +:::info[Hardware Details] + +- CPU: Intel 13th series +- GPU: NVIDIA GPU 3090 (Ampere - sm 86) +- RAM: 64GB +- OS: Windows + +::: + +#### Mistral-7b int4 + +| Metrics | GGUF (using GPU) | TensorRT-LLM | Difference | +| -------------------- | -------------------- | ------------ | ------------ | +| Throughput (token/s) | 90 | ✅ 140.27 | ✅ 55% faster | +| VRAM Used (GB) | 6.0 | 6.8 | 🤔 13% more | +| RAM Used (GB) | 0.54 | 0.42 | 🤯 22% less | +| Disk Size (GB) | 4.07 | 3.66 | 🤯 10% less | + +### RTX-4060 Laptop + +- [ ] Dan to re-run perf tests and fill in details + +:::info[Hardware Details] + +- Manufacturer: Acer Nitro 16 Phenix +- CPU: Ryzen 7000 +- RAM: 16GB +- GPU: NVIDIA Laptop GPU 4060 (Ada) + +::: + +#### Mistral-7b int4 + +| Metrics | GGUF (using the GPU) | TensorRT-LLM | Difference | +| -------------------- | -------------------- | ------------ | ---------- | +| Throughput (token/s) | 22 | ❌ 19 | | +| VRAM Used (GB) | 2.1 | 7.7 | | +| RAM Used (GB) | 0.3 | 13.5 | | +| Disk Size (GB) | 4.07 | 4.07 | | \ No newline at end of file diff --git a/docs/docs/about/about.md b/docs/docs/about/about.md index 3066f3003..1e755752c 100644 --- a/docs/docs/about/about.md +++ b/docs/docs/about/about.md @@ -1,56 +1,86 @@ --- title: About Jan slug: /about -description: Jan is a productivity tool to customize AI to your needs and workflows. +description: Jan is a desktop application that turns computers into thinking machines. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, + about Jan, + desktop application, + thinking machine, ] --- -Jan is a [open-source](https://en.wikipedia.org/wiki/Open_source), [local-first](https://www.inkandswitch.com/local-first/) tool to [create, customize and use AI](https://www.gatesnotes.com/AI-agents) for everyday tasks. +Jan turns computers into thinking machines to change how we use them. +Jan is created and maintained by Jan Labs, a robotics company. -You can: +With Jan, you can: -- Run locally using [open-source LLMs](https://huggingface.co/models?pipeline_tag=text-generation) or connect to cloud AIs like [ChatGPT](https://openai.com/blog/openai-api) or [Google](https://ai.google.dev/) -- Fine-tune AI with specific knowledge -- Search the web and other databases -- Connect AI to your everyday tools and (with your permission) do work on your behalf +- Run [open-source LLMs](https://huggingface.co/models?pipeline_tag=text-generation) locally or connect to cloud AIs like [ChatGPT](https://openai.com/blog/openai-api) or [Google](https://ai.google.dev/). +- Fine-tune AI with specific knowledge. +- Supercharge your productivity by leveraging AI. +- Search the web and databases. +- Integrate AI with everyday tools to work on your behalf (with permission). +- Customize and add features with Extensions. -Longer-term, Jan is building a cognitive framework for future robots. We envision a world where we have personal or company robots that we continually improve and customize, growing together with us. +:::tip + +Jan aims for long-term human-robot collaboration, envisioning AI as a harmonious extension of human capabilities. Our goal is to build customizable robots that we continually improve and customize, growing together. + +::: ![Human repairing a Droid](/img/star-wars-droids.png) -## Why do we exist +## Jan’s principles -At Jan, our mission is to advance human-machine collaboration. We achieve this through delivering the best open-source, local-first tools to allow users to run, customize and tinker with AI. +- **Ownership**: Jan is committed to developing a product that fully belongs to users. You're the true owner, free from data tracking and storage by us. +- **Privacy**: Jan works locally by default, allowing use without an internet connection. Your data stays on your device in a universal format, giving you complete privacy control. +- **100% User Supported**: Every user can access, develop, and customize Jan's codebases to suit their needs. +- **Rejecting Dark Patterns**: We never use tricks to extract more money or lock you into an ecosystem. -## What's different about it? +## Why do we exist? -| | Status Quo | Jan | -| ---------------------------------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| Ownership | AI Monopolies owned by Big Tech | AI that you own and control | -| Openness? | Closed-source | [Open-source (AGPLv3)](https://github.com/janhq/jan/blob/main/LICENSE) | -| Your role | Consume | Create, Tinker and Customize | -| Approach | Cloud | [Local-first](https://www.inkandswitch.com/local-first/), running 100% on your devices | -| Data | Data stored on their servers | Data stored in your local filesystem in open, non-proprietary file formats | -| Privacy | 😂 | Runs 100% on your own machine, predictably, privately and offline | -| Transparency | "Black Box" | Runs predictability with code available to tinker and customize | -| What happens if there's an outage or goes out of business? | Your life's work held hostage in the cloud in proprietary data formats[^1] | Continues to run 100% on your computer, your data is safe in your local folder | -| Driving Philosophy | Monetize your users | [Privacy as a human right](https://en.wikipedia.org/wiki/Right_to_privacy) and the [Right to Repair](https://www.repair.org/) | +> _"I do not fear computers. I fear the lack of them." - Isaac Asimov_ -## How do I get it? +Jan was founded on the belief that AI should coexist with humans, not replace them. Our mission is to democratize AI access, ensuring everyone can easily utilize it with full ownership and control over their data, free from privacy concerns. -You can install and start using Jan in less than 5 minutes, from [jan.ai](https://jan.ai) or our [Github repo](https://github.com/janhq/jan). +### What are the things Jan committed on? -You can read the [User Guide](/docs/user-guide) if you need some help to get started. +We are committed to creating open, local-first products that extend individual freedom, rejecting dark patterns and ecosystem lock-ins, and embracing an open-source ethos. + +#### What's different about it? + +| | Status Quo | Jan | +| --------------------- | -------------------------- | ---------------------------------------------------------------------- | +| **Ownership** | Owned by Big Tech | Fully owned by you | +| **Openness** | Closed-source | [Open-source (AGPLv3)](https://github.com/janhq/jan/blob/main/LICENSE) | +| **Your Role** | Consumer | Creator | +| **Approach** | Cloud-based | [Local-first](https://www.inkandswitch.com/local-first/) | +| **Data Handling** | Stored on external servers | Stored locally, openly accessible | +| **Privacy** | Questionable | Private and offline | +| **Transparency** | Opaque "Black Box" | Open-source and customizable | +| **Outage Resilience** | Potential data hostage | Continues to work on your device | +| **Philosophy** | User monetization | Empowerment with the right to repair | + +## How we work + +Jan is an open-source product with transparent development and future features. Users have the right to modify and customize Jan. We are committed to building an open-source AI ecosystem. + +Jan is building in public using GitHub, where anyone is welcome to join. Key resources include Jan's [Kanban](https://github.com/orgs/janhq/projects/5/views/7) and Jan's [Roadmap](https://github.com/orgs/janhq/projects/5/views/29). + +Jan has a fully-remote team, primarily based in the APAC timezone, and we use Discord and GitHub for collaboration. Our community is central to our operations, and we embrace asynchronous work. We hold meetings only for synchronization and vision sharing, using [Excalidraw](https://excalidraw.com/) or [Miro](https://miro.com/) for visualization and sharing notes on Discord for alignment. We also use [HackMD](https://hackmd.io/) to document our ideas and build a Jan library. + +## How to get it? + +You can install and start using Jan in less than 5 minutes, from [Jan.ai](https://jan.ai) or our [Github repo](https://github.com/janhq/jan). ## What license is the code under? @@ -58,8 +88,6 @@ Jan is licensed under the [AGPLv3 License](https://github.com/janhq/jan/blob/mai We happily accept pull requests, however, we do ask that you sign a [Contributor License Agreement](https://en.wikipedia.org/wiki/Contributor_License_Agreement) so that we have the right to relicense your contributions[^2]. -We also have a [Contributor Program](/docs/team/contributor-program) to provide ownership and upside to contributors who have made significant contributions to the project. - ## What was it built with? [Jan](https://github.com/janhq/jan) is pragmatically built using `Typescript` at the application level and `C++` at the Inference level (which we have refactored into [Nitro](https://nitro.jan.ai)[^3]). @@ -73,11 +101,9 @@ We follow [clean architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/ Architecturally, we have made similar choices to the [Next.js Enterprise Javascript Stack](https://vercel.com/templates/next.js/nextjs-enterprise-boilerplate), which is a [battle-tested](https://nextjs.org/showcase/enterprise) framework for building enterprise-grade applications that scale. -:::tip +## Join the team -**At its core, Jan is a software development kit to build and run copilots on personal devices**. The Desktop Client many folks use is, rather, a specific set of extensions packaged by default. We're excited to see what developers do with the SDK (once its in better shape). - -::: +Join us on this journey at Jan Labs, where we embrace open-source collaboration and transparency. Together, let's shape a future where Jan becomes an essential companion in the open-source community. Explore [careers](https://janai.bamboohr.com/careers) with us. ## Contact diff --git a/docs/docs/about/assets/solar-punk.webp b/docs/docs/about/assets/solar-punk.webp new file mode 100644 index 000000000..20829fea4 Binary files /dev/null and b/docs/docs/about/assets/solar-punk.webp differ diff --git a/docs/docs/about/assets/vision-1.webp b/docs/docs/about/assets/vision-1.webp new file mode 100644 index 000000000..66e41b543 Binary files /dev/null and b/docs/docs/about/assets/vision-1.webp differ diff --git a/docs/docs/about/faq.md b/docs/docs/about/faq.md new file mode 100644 index 000000000..12c08a244 --- /dev/null +++ b/docs/docs/about/faq.md @@ -0,0 +1,69 @@ +--- +title: Frequently Asked Questions (FAQ) - Jan +--- + +# Frequently Asked Questions (FAQ) + +## What is Jan? + +Jan is software that helps you run large language models (LLMs) on your everyday tasks. For details, read the [About page](https://jan.ai/about/). + +## How do I use Jan? + +Download Jan to your computer, choose a compatible LLM, or connect to a remote AI with the API code to start. You can switch between them as needed. + +## Is Jan compatible with my operating system? + +Jan is available for Mac, Windows, and Linux, ensuring wide compatibility. + +## Do you use my data? + +No. See our data and analytics policy [here](https://jan.ai/privacy/#:~:text=We%20do%20not%20share%20your,with%20a%20better%20user%20experience.). + +## Do you sell my data? + +No. We don't even track your data. Jan is yours. + +## How does Jan ensure my data remains private? + +Jan prioritizes your privacy by running open-source AI models 100% offline on your computer, ensuring all conversations, documents, and files stay private. + +## What does "Jan" stand for? + +Jan stands for “Just Another Neuron”, as we are passionate about building software that complements in your existing neural pathways. But in the spirit of full transparency, it was also just a nice 3 letter domain name we owned 😂. + +## Can I use Jan without an internet connection? + +Yes, Jan can run locally without an internet connection for many features. + +## Are there any costs associated with using Jan? + +Jan is free to use. However, if you want to connect to remote APIs, like GPT-4, you will need to put in your own API key. + +## What types of AI models can I download or import with Jan? + +You can download popular AI models or import any model of your choice through Jan's Hub. + +## How do I customize Jan using the programmable API? + +The API allows you to tailor Jan to your needs, but specific details on usage would require consulting Jan's documentation. + +## How can I contribute to Jan's development or suggest features? + +Contributions can be made through [GitHub](https://github.com/janhq/jan) and [Discord](https://discord.gg/Exe46xPMbK), where you can also suggest features and contribute. + +## How can I get involved with the Jan community? + +Joining [Jan's Discord server](https://discord.gg/qSwXFx6Krr) is a great way to get involved with the community. + +## How do I troubleshoot issues with installing or using Jan? + +For troubleshooting, you should reach out on Discord and check GitHub for assistance and support from the community and the development team. + +## Can I self-host? + +Yes! We love the self-hosted movement. Jan is available as a Helm chart/ Docker composes which can be run across home servers or even production-level environments. + +## Are you hiring? + +We often hire directly from our community. If you are interested in applying, please see our careers page [here](https://janai.bamboohr.com/careers). diff --git a/docs/docs/about/roadmap.md b/docs/docs/about/roadmap.md index 1c789d733..82b4fa34d 100644 --- a/docs/docs/about/roadmap.md +++ b/docs/docs/about/roadmap.md @@ -3,4 +3,4 @@ title: Roadmap --- - [ ] [Immediate Roadmap on Github](https://github.com/orgs/janhq/projects/5/views/16) -- [ ] [Longer-term Roadmap on Discord](https://discord.gg/Ey62mynnYr) \ No newline at end of file +- [ ] [Longer-term Roadmap on Discord](https://discord.gg/Ey62mynnYr) diff --git a/docs/docs/about/vision.md b/docs/docs/about/vision.md new file mode 100644 index 000000000..7c3ffac63 --- /dev/null +++ b/docs/docs/about/vision.md @@ -0,0 +1,74 @@ +--- +title: Jan's Vision +slug: /vision +description: Jan is a desktop application that turns computers into thinking machines. +keywords: + [ + Jan AI, + Jan, + ChatGPT alternative, + local AI, + private AI, + conversational AI, + no-subscription fee, + large language model, + about Jan, + desktop application, + thinking machine, + jan vision, + ] +--- + +## Jan's vision is to shape a future where humans and machines collaborate, continuing our legacy as toolmakers + +Throughout history, humanity has thrived by mastering tools, from [controlling fire](https://en.wikipedia.org/wiki/Control_of_fire_by_early_humans) to [inventing the wheel](https://en.wikipedia.org/wiki/Wheel). These leaps weren't just about survival, they were foundational to our civilization. + +Today, we stand on the brink of a new frontier with artificial intelligence. AI is not merely another tool, it represents a new form of collaboration between humans and machines - promising to enhance our creativity, augment our lives, and deepen our understanding of the world. + +![jan ai shapes the future](./assets/vision-1.webp) + +In the future we envision, AI will be as integral to our lives as fire and the wheel once were, with each individual having their own machines/robots. Mastering AI, like mastering fire, will require understanding its potential, respecting its power, and learning to control it for the betterment of humanity. + +### Inspired by Science Fiction, Grounded in Optimism + +Our vision is influenced by the harmonious coexistence of humans and machines in science fiction. From the helpful companionship of [C3PO](https://tr.wikipedia.org/wiki/C-3PO) and [Jarvis](https://en.wikipedia.org/wiki/J.A.R.V.I.S.) to the strategic alliances in [Halo](https://www.imdb.com/title/tt2934286/), these stories showcase a future where technology amplifies human potential. + +### Jan's Role in Shaping the Future + +Jan is our contribution to this future - a tool designed to augment human capabilities, not replace them. We are committed to developing AI that works for humanity, enhancing our creativity, productivity, and well-being. With Jan, we aim to empower individuals and communities to achieve more, together. + +Our vision is not just a dream, it's a blueprint for a future where technology and humanity harmonize to unlock unprecedented possibilities. + +## How we imagine the world in the future + +We are fundamentally optimistic about the future. Jan aligns with the [Solarpunk movement](https://en.wikipedia.org/wiki/Solarpunk), which envisions a world where technology and nature coexist and flourish together. We reject the notion of climate doomerism and instead, focus on the positive impact we can make with AI. + +![solarpunk and jan](./assets/solar-punk.webp) + +Imagine a world where every individual is empowered by their own robots, where machines are not just tools but partners in our journey. This is the future Jan is striving to create. + +Now, let's take a glimpse into this future through a day in the life of Emre, a reflection of how Jan's vision manifests in everyday life. + +## A Day in the Life of Emre in 2050 + +> In 2050, Emre wakes up to the gentle sound of birds chirping, a soothing alarm created by **his own AI robot, Jan**. As he gets ready for the day, **Jan has already prepared** his schedule, factoring in his preferences and the day's weather. +> +> At breakfast, Emre discusses his upcoming project with **Jan, who offers insights and suggestions**, enhancing Emre's creativity. As he heads to work, his self-driving car, **integrated with Jan**, takes the most scenic and efficient route, allowing Emre to enjoy a moment of tranquility. +> +> In the office, Emre collaborates with colleagues from around the globe in a virtual workspace. **Jan assists** by translating languages in real-time and organizing ideas, making collaboration seamless and productive. +> +> During lunch, Emre decides to explore a new hobby. **Jan quickly curates** a list of resources and connects Emre with a virtual mentor, making learning accessible and enjoyable. +> +> In the afternoon, Emre takes a break to connect with nature. His smart garden, **managed by Jan**, is thriving, blending technology with the natural world in perfect harmony. +> +> As the day winds down, Emre reflects on his accomplishments. **With Jan's help**, he's been able to focus on what truly matters, achieving a balance between work, personal growth, and well-being. +> +> In 2050, Jan is more than just a tool, it's an integral part of Emre's life, **augmenting his abilities** and enabling him to live a more fulfilling life. + +What a day, hah! + +--- + +Jan's vision commits to developing thinking machines that work alongside humans - learning, adapting, and contributing to a broader, smarter society. This journey isn't just about technology. It's about creating a future where humans and machines collaborate. + +Let's build the future together - join the journey! diff --git a/docs/docs/acknowledgements.md b/docs/docs/acknowledgements.md new file mode 100644 index 000000000..0ec3176c0 --- /dev/null +++ b/docs/docs/acknowledgements.md @@ -0,0 +1,28 @@ +--- +title: Acknowledgements +description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +slug: /acknowledgements +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + acknowledgements, + third-party libraries, + ] +--- + +# Acknowledgements + +We would like to express our gratitude to the following third-party libraries that have made the development of Jan possible. + +- [llama.cpp](https://github.com/ggerganov/llama.cpp/blob/master/LICENSE) +- [LangChain.js](https://github.com/langchain-ai/langchainjs/blob/main/LICENSE) +- [TensorRT](https://github.com/NVIDIA/TensorRT/blob/main/LICENSE) +- [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM/blob/main/LICENSE) diff --git a/docs/docs/community/community.md b/docs/docs/community/community.md deleted file mode 100644 index 24a87daf0..000000000 --- a/docs/docs/community/community.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Jan's Community -slug: /community -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - ] ---- - -## Socials - -- [Discord](https://discord.gg/SH3DGmUs6b) -- [X](https://twitter.com/janframework) -- [HuggingFace](https://huggingface.co/janhq) -- [LinkedIn](https://www.linkedin.com/company/janframework/) - -## Community Run - -- [Reddit](https://www.reddit.com/r/janframework/) - -## Careers - -- [Jobs](https://janai.bamboohr.com/careers) diff --git a/docs/docs/community/community.mdx b/docs/docs/community/community.mdx new file mode 100644 index 000000000..f4ce0da87 --- /dev/null +++ b/docs/docs/community/community.mdx @@ -0,0 +1,52 @@ +--- +title: Jan's Community +slug: /community +description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + about Jan, + desktop application, + thinking machine, + community, + socials, + ] +--- + +## Socials + +- [Discord](https://discord.gg/SH3DGmUs6b) +- [X](https://twitter.com/janframework) +- [HuggingFace](https://huggingface.co/janhq) +- [LinkedIn](https://www.linkedin.com/company/janframework/) + +## Community Run + +- [Reddit](https://www.reddit.com/r/janframework/) + +## Careers + +- [Jobs](https://janai.bamboohr.com/careers) + +## Newsletter + + diff --git a/docs/docs/developer/01-overview/01-architecture.md b/docs/docs/developer/01-overview/01-architecture.md index 432b12537..09fffed69 100644 --- a/docs/docs/developer/01-overview/01-architecture.md +++ b/docs/docs/developer/01-overview/01-architecture.md @@ -4,14 +4,16 @@ slug: /developer/architecture description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, + architecture, ] --- diff --git a/docs/docs/developer/01-overview/02-file-based.md b/docs/docs/developer/01-overview/02-file-based.md index 653eba3f5..2b0c15a68 100644 --- a/docs/docs/developer/01-overview/02-file-based.md +++ b/docs/docs/developer/01-overview/02-file-based.md @@ -4,14 +4,16 @@ slug: /developer/file-based description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, + file based approach, ] --- diff --git a/docs/docs/developer/01-overview/03-user-interface.md b/docs/docs/developer/01-overview/03-user-interface.md index eb6eac89e..3454b2f61 100644 --- a/docs/docs/developer/01-overview/03-user-interface.md +++ b/docs/docs/developer/01-overview/03-user-interface.md @@ -4,14 +4,16 @@ slug: /developer/ui description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, + UI kit, ] --- diff --git a/docs/docs/developer/01-overview/04-install-and-prerequisites.md b/docs/docs/developer/01-overview/04-install-and-prerequisites.md index 110f62e36..efd7ebe76 100644 --- a/docs/docs/developer/01-overview/04-install-and-prerequisites.md +++ b/docs/docs/developer/01-overview/04-install-and-prerequisites.md @@ -4,14 +4,15 @@ slug: /developer/prereq description: Guide to install and setup Jan for development. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, installation, prerequisites, developer setup, @@ -24,7 +25,7 @@ keywords: Ensure your system meets the following specifications to guarantee a smooth development experience: -- [Hardware Requirements](../../guides/02-installation/06-hardware.md) +- Hardware Requirements ### System Requirements diff --git a/docs/docs/developer/01-overview/README.md b/docs/docs/developer/01-overview/README.md index 98e1b1164..b73c77aeb 100644 --- a/docs/docs/developer/01-overview/README.md +++ b/docs/docs/developer/01-overview/README.md @@ -4,21 +4,22 @@ slug: /developer description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- The following docs are aimed at developers who want to build extensions on top of the Jan Framework. :::tip -If you are interested to **contribute to the framework's Core SDK itself**, like adding new drivers, runtimes, and infrastructure level support, please refer to [framework docs](/docs) instead. +If you are interested to **contribute to the framework's Core SDK itself**, like adding new drivers, runtimes, and infrastructure level support, please refer to [framework docs](/developer/framework) instead. ::: ## Extensions diff --git a/docs/docs/developer/02-build-assistant/01-your-first-assistant.md b/docs/docs/developer/02-build-assistant/01-your-first-assistant.md index 16b80fc5e..f96dd2802 100644 --- a/docs/docs/developer/02-build-assistant/01-your-first-assistant.md +++ b/docs/docs/developer/02-build-assistant/01-your-first-assistant.md @@ -1,17 +1,18 @@ --- title: Your First Assistant -slug: /developer/build-assistant/your-first-assistant/ +slug: /developer/assistant/your-first-assistant/ description: A quick start on how to build an assistant. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, quick start, build assistant, ] @@ -20,4 +21,3 @@ keywords: :::caution This is currently under development. ::: - diff --git a/docs/docs/developer/02-build-assistant/02-assistant-anatomy.md b/docs/docs/developer/02-build-assistant/02-assistant-anatomy.md index e6951a05b..124817372 100644 --- a/docs/docs/developer/02-build-assistant/02-assistant-anatomy.md +++ b/docs/docs/developer/02-build-assistant/02-assistant-anatomy.md @@ -1,17 +1,18 @@ --- title: Anatomy of an Assistant -slug: /developer/build-assistant/assistant-anatomy/ +slug: /developer/assistant/assistant-anatomy/ description: An overview of assistant.json keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, build assistant, assistant anatomy, ] diff --git a/docs/docs/developer/02-build-assistant/03-package-your-assistant.md b/docs/docs/developer/02-build-assistant/03-package-your-assistant.md index 12fa1510c..e18bcc5f6 100644 --- a/docs/docs/developer/02-build-assistant/03-package-your-assistant.md +++ b/docs/docs/developer/02-build-assistant/03-package-your-assistant.md @@ -1,17 +1,18 @@ --- title: Package your Assistant -slug: /developer/build-assistant/package-your-assistant/ +slug: /developer/assistant/package-your-assistant/ description: Package your assistant for sharing and publishing. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, quick start, build assistant, ] diff --git a/docs/docs/developer/02-build-assistant/README.mdx b/docs/docs/developer/02-build-assistant/README.mdx index 29cf8b63d..35944a8cc 100644 --- a/docs/docs/developer/02-build-assistant/README.mdx +++ b/docs/docs/developer/02-build-assistant/README.mdx @@ -1,17 +1,10 @@ --- title: Build an Assistant -slug: /developer/build-assistant +slug: /developer/assistant description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, + Jan, Rethink the Computer, local AI, privacy focus, free and open source, private and offline, conversational AI, no-subscription fee, large language models, build assistant, ] --- diff --git a/docs/docs/developer/03-build-engine/01-your-first-engine.md b/docs/docs/developer/03-build-engine/01-your-first-engine.md index 0670d63c4..2c69b2199 100644 --- a/docs/docs/developer/03-build-engine/01-your-first-engine.md +++ b/docs/docs/developer/03-build-engine/01-your-first-engine.md @@ -1,17 +1,18 @@ --- title: Your First Engine -slug: /developer/build-engine/your-first-engine/ +slug: /developer/engine/your-first-engine/ description: A quick start on how to build your first engine keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, quick start, build engine, ] @@ -21,4 +22,4 @@ keywords: This is currently under development. ::: -A quickstart on how to integrate tensorrt llm \ No newline at end of file +A quickstart on how to integrate tensorrt llm diff --git a/docs/docs/developer/03-build-engine/02-engine-anatomy.md b/docs/docs/developer/03-build-engine/02-engine-anatomy.md index 1e7f559da..5f45339eb 100644 --- a/docs/docs/developer/03-build-engine/02-engine-anatomy.md +++ b/docs/docs/developer/03-build-engine/02-engine-anatomy.md @@ -1,17 +1,18 @@ --- title: Anatomy of an Engine -slug: /developer/build-engine/engine-anatomy +slug: /developer/engine/engine-anatomy description: An overview of engine.json keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, build engine, engine anatomy, ] diff --git a/docs/docs/developer/03-build-engine/03-package-your-engine.md b/docs/docs/developer/03-build-engine/03-package-your-engine.md index 794e1abb2..a44807c68 100644 --- a/docs/docs/developer/03-build-engine/03-package-your-engine.md +++ b/docs/docs/developer/03-build-engine/03-package-your-engine.md @@ -1,17 +1,18 @@ --- title: Package your Engine -slug: /developer/build-engine/package-your-engine/ +slug: /developer/engine/package-your-engine/ description: Package your engine for sharing and publishing. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, build engine, engine anatomy, ] diff --git a/docs/docs/developer/03-build-engine/README.mdx b/docs/docs/developer/03-build-engine/README.mdx index a2521ff54..e4c5980e0 100644 --- a/docs/docs/developer/03-build-engine/README.mdx +++ b/docs/docs/developer/03-build-engine/README.mdx @@ -1,17 +1,18 @@ --- title: Build an Inference Engine -slug: /developer/build-engine/ +slug: /developer/engine/ description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, build assistant, ] --- diff --git a/docs/docs/developer/03-build-engine/asset/plugin.png b/docs/docs/developer/03-build-engine/asset/plugin.png new file mode 100644 index 000000000..f5f032e0d Binary files /dev/null and b/docs/docs/developer/03-build-engine/asset/plugin.png differ diff --git a/docs/docs/developer/04-build-extension/01-your-first-extension.md b/docs/docs/developer/04-build-extension/01-your-first-extension.md index f89f34053..4dd413ca6 100644 --- a/docs/docs/developer/04-build-extension/01-your-first-extension.md +++ b/docs/docs/developer/04-build-extension/01-your-first-extension.md @@ -1,17 +1,18 @@ --- title: Your First Extension -slug: /developer/build-extension/your-first-extension/ +slug: /developer/extension/your-first-extension/ description: A quick start on how to build your first extension keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, quick start, build extension, ] @@ -76,13 +77,13 @@ There are a few things to keep in mind when writing your extension code: In `index.ts`, you will see that the extension function will return a `Promise`. ```typescript - import { core } from "@janhq/core"; + import { core } from '@janhq/core' function onStart(): Promise { - return core.invokePluginFunc(MODULE_PATH, "run", 0); + return core.invokePluginFunc(MODULE_PATH, 'run', 0) } ``` For more information about the Jan Extension Core module, see the [documentation](https://github.com/janhq/jan/blob/main/core/README.md). -Now, go ahead and start customizing your extension! Happy coding! \ No newline at end of file +Now, go ahead and start customizing your extension! Happy coding! diff --git a/docs/docs/developer/04-build-extension/02-extension-anatomy.md b/docs/docs/developer/04-build-extension/02-extension-anatomy.md index 7c3cd1911..b41f1f0f4 100644 --- a/docs/docs/developer/04-build-extension/02-extension-anatomy.md +++ b/docs/docs/developer/04-build-extension/02-extension-anatomy.md @@ -1,17 +1,18 @@ --- title: Anatomy of an Extension -slug: /developer/build-extension/extension-anatomy +slug: /developer/extension/extension-anatomy description: An overview of extensions.json keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, build extension, extension anatomy, ] diff --git a/docs/docs/developer/04-build-extension/03-package-your-extension.md b/docs/docs/developer/04-build-extension/03-package-your-extension.md index cf7ffc6ba..a4c894695 100644 --- a/docs/docs/developer/04-build-extension/03-package-your-extension.md +++ b/docs/docs/developer/04-build-extension/03-package-your-extension.md @@ -1,17 +1,18 @@ --- title: Package your Engine -slug: /developer/build-extension/package-your-extension/ +slug: /developer/extension/package-your-extension/ description: Package your extension for sharing and publishing. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, build extension, extension anatomy, ] diff --git a/docs/docs/developer/04-build-extension/README.mdx b/docs/docs/developer/04-build-extension/README.mdx index a981281e7..ce7fce5b2 100644 --- a/docs/docs/developer/04-build-extension/README.mdx +++ b/docs/docs/developer/04-build-extension/README.mdx @@ -1,17 +1,10 @@ --- title: Build an Extension -slug: /developer/build-extension/ +slug: /developer/extension/ description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, + Jan, Rethink the Computer, local AI, privacy focus, free and open source, private and offline, conversational AI, no-subscription fee, large language models, build extension, ] --- diff --git a/docs/docs/docs/03-engineering/README.mdx b/docs/docs/developer/05-framework/03-engineering/README.mdx similarity index 71% rename from docs/docs/docs/03-engineering/README.mdx rename to docs/docs/developer/05-framework/03-engineering/README.mdx index 2fd9a5cc1..18c3904a4 100644 --- a/docs/docs/docs/03-engineering/README.mdx +++ b/docs/docs/developer/05-framework/03-engineering/README.mdx @@ -1,17 +1,18 @@ --- title: Engineering Specs -slug: /docs/engineering +slug: /developer/engineering description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, spec, engineering, ] diff --git a/docs/docs/docs/03-engineering/assistants.md b/docs/docs/developer/05-framework/03-engineering/assistants.md similarity index 95% rename from docs/docs/docs/03-engineering/assistants.md rename to docs/docs/developer/05-framework/03-engineering/assistants.md index fa9c593ab..2a2dc2681 100644 --- a/docs/docs/docs/03-engineering/assistants.md +++ b/docs/docs/developer/05-framework/03-engineering/assistants.md @@ -1,16 +1,17 @@ --- -title: "Assistants" +title: 'Assistants' description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-engineering/chats.md b/docs/docs/developer/05-framework/03-engineering/chats.md similarity index 91% rename from docs/docs/docs/03-engineering/chats.md rename to docs/docs/developer/05-framework/03-engineering/chats.md index eb0ae287a..b13240e63 100644 --- a/docs/docs/docs/03-engineering/chats.md +++ b/docs/docs/developer/05-framework/03-engineering/chats.md @@ -3,14 +3,15 @@ title: Chats description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-engineering/engine.md b/docs/docs/developer/05-framework/03-engineering/engine.md similarity index 100% rename from docs/docs/docs/03-engineering/engine.md rename to docs/docs/developer/05-framework/03-engineering/engine.md diff --git a/docs/docs/docs/03-engineering/files.md b/docs/docs/developer/05-framework/03-engineering/files.md similarity index 92% rename from docs/docs/docs/03-engineering/files.md rename to docs/docs/developer/05-framework/03-engineering/files.md index 59ca27ec9..950d8729f 100644 --- a/docs/docs/docs/03-engineering/files.md +++ b/docs/docs/developer/05-framework/03-engineering/files.md @@ -1,16 +1,17 @@ --- -title: "Files" +title: 'Files' description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-engineering/fine-tuning.md b/docs/docs/developer/05-framework/03-engineering/fine-tuning.md similarity index 59% rename from docs/docs/docs/03-engineering/fine-tuning.md rename to docs/docs/developer/05-framework/03-engineering/fine-tuning.md index 53ca2b206..dac7cf54a 100644 --- a/docs/docs/docs/03-engineering/fine-tuning.md +++ b/docs/docs/developer/05-framework/03-engineering/fine-tuning.md @@ -1,16 +1,17 @@ --- -title: "Fine-tuning" +title: 'Fine-tuning' description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-engineering/messages.md b/docs/docs/developer/05-framework/03-engineering/messages.md similarity index 95% rename from docs/docs/docs/03-engineering/messages.md rename to docs/docs/developer/05-framework/03-engineering/messages.md index 8f2497002..37cd061c5 100644 --- a/docs/docs/docs/03-engineering/messages.md +++ b/docs/docs/developer/05-framework/03-engineering/messages.md @@ -3,14 +3,15 @@ title: Messages description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-engineering/models.md b/docs/docs/developer/05-framework/03-engineering/models.md similarity index 97% rename from docs/docs/docs/03-engineering/models.md rename to docs/docs/developer/05-framework/03-engineering/models.md index 4e4c3c604..4895954d7 100644 --- a/docs/docs/docs/03-engineering/models.md +++ b/docs/docs/developer/05-framework/03-engineering/models.md @@ -3,14 +3,15 @@ title: Models description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-engineering/prompts.md b/docs/docs/developer/05-framework/03-engineering/prompts.md similarity index 71% rename from docs/docs/docs/03-engineering/prompts.md rename to docs/docs/developer/05-framework/03-engineering/prompts.md index 22fc578af..5897309d1 100644 --- a/docs/docs/docs/03-engineering/prompts.md +++ b/docs/docs/developer/05-framework/03-engineering/prompts.md @@ -3,14 +3,15 @@ title: Prompts description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-engineering/threads.md b/docs/docs/developer/05-framework/03-engineering/threads.md similarity index 95% rename from docs/docs/docs/03-engineering/threads.md rename to docs/docs/developer/05-framework/03-engineering/threads.md index a1cd2b4df..161b93948 100644 --- a/docs/docs/docs/03-engineering/threads.md +++ b/docs/docs/developer/05-framework/03-engineering/threads.md @@ -3,14 +3,15 @@ title: Threads description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-product/README.mdx b/docs/docs/developer/05-framework/03-product/README.mdx similarity index 69% rename from docs/docs/docs/03-product/README.mdx rename to docs/docs/developer/05-framework/03-product/README.mdx index cce274f22..5b3f35f5d 100644 --- a/docs/docs/docs/03-product/README.mdx +++ b/docs/docs/developer/05-framework/03-product/README.mdx @@ -1,17 +1,18 @@ --- title: Product Specs -slug: /docs/product +slug: /developer/product description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, spec, product, ] diff --git a/docs/docs/docs/03-product/chat.md b/docs/docs/developer/05-framework/03-product/chat.md similarity index 82% rename from docs/docs/docs/03-product/chat.md rename to docs/docs/developer/05-framework/03-product/chat.md index b0dcce2d6..fdd87644b 100644 --- a/docs/docs/docs/03-product/chat.md +++ b/docs/docs/developer/05-framework/03-product/chat.md @@ -3,14 +3,15 @@ title: Chat description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-product/hub.md b/docs/docs/developer/05-framework/03-product/hub.md similarity index 84% rename from docs/docs/docs/03-product/hub.md rename to docs/docs/developer/05-framework/03-product/hub.md index 7171f8378..ebbb24fd7 100644 --- a/docs/docs/docs/03-product/hub.md +++ b/docs/docs/developer/05-framework/03-product/hub.md @@ -3,14 +3,15 @@ title: Hub description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-product/jan.md b/docs/docs/developer/05-framework/03-product/jan.md similarity index 87% rename from docs/docs/docs/03-product/jan.md rename to docs/docs/developer/05-framework/03-product/jan.md index 9e8973360..f42e4643a 100644 --- a/docs/docs/docs/03-product/jan.md +++ b/docs/docs/developer/05-framework/03-product/jan.md @@ -3,14 +3,15 @@ title: Jan (The Default Assistant) description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-product/settings.md b/docs/docs/developer/05-framework/03-product/settings.md similarity index 87% rename from docs/docs/docs/03-product/settings.md rename to docs/docs/developer/05-framework/03-product/settings.md index 514139a00..327fa5c97 100644 --- a/docs/docs/docs/03-product/settings.md +++ b/docs/docs/developer/05-framework/03-product/settings.md @@ -3,14 +3,15 @@ title: Settings description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/03-product/system-monitor.md b/docs/docs/developer/05-framework/03-product/system-monitor.md similarity index 80% rename from docs/docs/docs/03-product/system-monitor.md rename to docs/docs/developer/05-framework/03-product/system-monitor.md index 761d9a7bf..fc4a91751 100644 --- a/docs/docs/docs/03-product/system-monitor.md +++ b/docs/docs/developer/05-framework/03-product/system-monitor.md @@ -3,14 +3,15 @@ title: System Monitor description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/docs/01-README.md b/docs/docs/developer/05-framework/README.md similarity index 92% rename from docs/docs/docs/01-README.md rename to docs/docs/developer/05-framework/README.md index 2fea12c53..c94ce9701 100644 --- a/docs/docs/docs/01-README.md +++ b/docs/docs/developer/05-framework/README.md @@ -1,6 +1,19 @@ --- -title: Overview -slug: /docs +title: Framework +slug: /developer/framework/ +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] --- The following low-level docs are aimed at core contributors. diff --git a/docs/docs/docs/assets/CleanArchitecture.jpg b/docs/docs/developer/05-framework/assets/CleanArchitecture.jpg similarity index 100% rename from docs/docs/docs/assets/CleanArchitecture.jpg rename to docs/docs/developer/05-framework/assets/CleanArchitecture.jpg diff --git a/docs/docs/docs/assets/ExtensionCallouts.png b/docs/docs/developer/05-framework/assets/ExtensionCallouts.png similarity index 100% rename from docs/docs/docs/assets/ExtensionCallouts.png rename to docs/docs/developer/05-framework/assets/ExtensionCallouts.png diff --git a/docs/docs/docs/image.png b/docs/docs/developer/05-framework/image.png similarity index 100% rename from docs/docs/docs/image.png rename to docs/docs/developer/05-framework/image.png diff --git a/docs/docs/docs/img/chat-screen.png b/docs/docs/developer/05-framework/img/chat-screen.png similarity index 100% rename from docs/docs/docs/img/chat-screen.png rename to docs/docs/developer/05-framework/img/chat-screen.png diff --git a/docs/docs/docs/img/hub-screen.png b/docs/docs/developer/05-framework/img/hub-screen.png similarity index 100% rename from docs/docs/docs/img/hub-screen.png rename to docs/docs/developer/05-framework/img/hub-screen.png diff --git a/docs/docs/docs/img/settings-screen.png b/docs/docs/developer/05-framework/img/settings-screen.png similarity index 100% rename from docs/docs/docs/img/settings-screen.png rename to docs/docs/developer/05-framework/img/settings-screen.png diff --git a/docs/docs/docs/img/system-screen.png b/docs/docs/developer/05-framework/img/system-screen.png similarity index 100% rename from docs/docs/docs/img/system-screen.png rename to docs/docs/developer/05-framework/img/system-screen.png diff --git a/docs/docs/events/hcmc-oct23.md b/docs/docs/events/hcmc-oct23.md index 73898efcd..182153263 100644 --- a/docs/docs/events/hcmc-oct23.md +++ b/docs/docs/events/hcmc-oct23.md @@ -1,8 +1,9 @@ --- title: "Jan's AI Hacker House (Ho Chi Minh City)" -description: "24-27 Oct 2023, District 3, HCMC. AI-focused talks, workshops and social events. Hosted by Jan.ai" +description: '24-27 Oct 2023, District 3, HCMC. AI-focused talks, workshops and social events. Hosted by Jan.ai' slug: /events/hcmc-oct23 image: /img/hcmc-launch-party.png +keywords: [AI, Hacker House, Ho Chi Minh City, HCMC, Jan.ai] --- ![](/img/hcmc-launch-party.png) diff --git a/docs/docs/events/nvidia-llm-day-nov-23.md b/docs/docs/events/nvidia-llm-day-nov-23.md index d467dcb6e..a57776ef4 100644 --- a/docs/docs/events/nvidia-llm-day-nov-23.md +++ b/docs/docs/events/nvidia-llm-day-nov-23.md @@ -1,21 +1,20 @@ --- -title: "Nov 23: Nvidia GenAI Day" -description: Nvidia's LLM Day +title: 'Nov 23: Nvidia GenAI Day' +description: Nvidia's LLM Day --- ![](/img/nvidia-llm-day-header.png) ## Nvidia GenAI Innovation Day -Jan will be at Nvidia's GenAI Innovation Day in Nov '23, focusing on Enterprise use-cases of LLMs. +Jan will be at Nvidia's GenAI Innovation Day in Nov '23, focusing on Enterprise use-cases of LLMs. ### Location -- JW Marriott Hanoi Hotel +- JW Marriott Hanoi Hotel - 8:30am November 8th 2023 - Registration: [https://gmcgroup.com.vn/nvidia-genai-event/](https://gmcgroup.com.vn/nvidia-genai-event/) ### Programme ![](/img/nvidia-llm-day.png) - diff --git a/docs/docs/guides/00-overview.md b/docs/docs/guides/00-overview.md deleted file mode 100644 index c6f346454..000000000 --- a/docs/docs/guides/00-overview.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Overview -slug: /guides -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - ] ---- - -The following docs are aimed at end users who want to troubleshoot or learn how to use the **Jan Desktop** application better. - -:::tip -If you are interested to build extensions, please refer to [developer docs](/developer) instead (WIP). - -If you are interested to contribute to the underlying framework, please refer to [framework docs](/docs) instead. -::: - -## Jan Desktop - -The desktop client is a ChatGPT alternative that runs on your own computer, with a [local API server](/guides/using-server). - -## Features - -- Compatible with [open-source models](/guides/using-models) (GGUF via [llama.cpp](https://github.com/ggerganov/llama.cpp), TensorRT via [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM), and [remote APIs](https://platform.openai.com/docs/api-reference)) -- Compatible with most OSes: [Windows](/install/windows/), [Mac](/install/mac), [Linux](/install/linux), with GPU acceleration through [llama.cpp](https://github.com/ggerganov/llama.cpp) -- Stores data in [open file formats](/developer/file-based) -- Local API [server mode](/guides/using-server) -- Customizable via [extensions](/developer/build-extension) -- And more in the [roadmap](https://github.com/orgs/janhq/projects/5/views/16). Join us on [Discord](https://discord.gg/5rQ2zTv3be) and tell us what you want to see! - -## Why Jan? - -We believe in the need for an open source AI ecosystem. - -We're focused on building infra, tooling and [custom models](https://huggingface.co/janhq) to allow open source AIs to compete on a level playing field with proprietary offerings. - -Read more about our mission and culture [here](/about). - -#### 💻 Own your AI - -Jan runs 100% on your own machine, predictably, privately and offline. No one else can see your conversations, not even us. - -#### 🏗️ Extensions - -Jan ships with a local-first, AI-native, and cross platform [extensions framework](/developer/build-extension). Developers can extend and customize everything from functionality to UI to branding. In fact, Jan's current main features are actually built as extensions on top of this framework. - -#### 🗂️ Open File Formats - -Jan stores data in your [local filesystem](/developer/file-based). Your data never leaves your computer. You are free to delete, export, migrate your data, even to a different platform. - -#### 🌍 Open Source - -Both Jan and [Nitro](https://nitro.jan.ai), our lightweight inference engine, are licensed via the open source [AGPLv3 license](https://github.com/janhq/jan/blob/main/LICENSE). diff --git a/docs/docs/guides/02-installation/01-mac.md b/docs/docs/guides/02-installation/01-mac.md deleted file mode 100644 index 7a3961384..000000000 --- a/docs/docs/guides/02-installation/01-mac.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Mac -slug: /install/mac -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - installation guide, - ] ---- - -# Installing Jan on MacOS - -## System Requirements - -Ensure that your MacOS version is 13 or higher to run Jan. - -## Installation - -Jan is available for download via our homepage, [https://jan.ai/](https://jan.ai/). - -For MacOS, the download should be available as a `.dmg` file in the following format. - -```bash -# Intel Mac -jan-mac-x64-{version}.dmg -# Apple Silicon Mac -jan-mac-arm64-{version}.dmg -``` - -The typical installation process takes around a minute. - -## GitHub Releases - -Jan is also available from [Jan's GitHub Releases](https://github.com/janhq/jan/releases) page, with a recommended [latest stable release](https://github.com/janhq/jan/releases/latest). - -Within the Releases' assets, you will find the following files for MacOS: - -```bash -# Intel Mac (dmg file and zip file) -jan-mac-x64-{version}.dmg -jan-mac-x64-{version}.zip - -# Apple Silicon Mac (dmg file and zip file) -jan-mac-arm64-{version}.dmg -jan-mac-arm64-{version}.zip -``` - -## Uninstall Jan - -As Jan is in development mode, you might get stuck on a broken build. -To reset your installation - -1. Delete Jan from your `/Applications` folder -2. Delete Application data - -```bash -# Newer versions -rm -rf ~/Library/Application\ Support/jan - -# Versions 0.2.0 and older -rm -rf ~/Library/Application\ Support/jan-electron -``` - -3. Clear Application cache - -```bash -rm -rf ~/Library/Caches/jan* -``` - -4. Use the following commands to remove any dangling backend processes: - -```bash -ps aux | grep nitro -``` - -Look for processes like "nitro" and "nitro_arm_64", and kill them one by one with: - -```bash -kill -9 -``` - -## Common Questions - -### Does Jan run on Apple Silicon machines? - -Yes, Jan supports MacOS Arm64 builds that can run on Macs with the Apple Silicon chipsets. You can install Jan on your Apple Silicon Mac by downloading the `jan-mac-arm64-.dmg` file from the [Jan's homepage](https://jan.ai/). - -### Which package should I download for my Mac? - -Jan supports both Intel and Apple Silicon Macs. To find which appropriate package to download for your Mac, please follow this official guide from Apple: [Get system information about your Mac - Apple Support](https://support.apple.com/guide/mac-help/syspr35536/mac). diff --git a/docs/docs/guides/02-installation/02-windows.md b/docs/docs/guides/02-installation/02-windows.md deleted file mode 100644 index d60ab86f7..000000000 --- a/docs/docs/guides/02-installation/02-windows.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Windows -slug: /install/windows -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - installation guide, - ] ---- - -# Installing Jan on Windows - -## System Requirements - -Ensure that your system meets the following requirements: - -- Windows 10 or higher is required to run Jan. - -To enable GPU support, you will need: - -- NVIDIA GPU with CUDA Toolkit 11.7 or higher -- NVIDIA driver 470.63.01 or higher - -## Installation - -Jan is available for download via our homepage, [https://jan.ai](https://jan.ai/). - -For Windows, the download should be available as a `.exe` file in the following format. - -```bash -jan-win-x64-{version}.exe -``` - -The typical installation process takes around a minute. - -### GitHub Releases - -Jan is also available from [Jan's GitHub Releases](https://github.com/janhq/jan/releases) page, with a recommended [latest stable release](https://github.com/janhq/jan/releases/latest). - -Within the Releases' assets, you will find the following files for Windows: - -```bash -# Windows Installers -jan-win-x64-{version}.exe -``` - -### Default Installation Directory - -By default, Jan is installed in the following directory: - -```bash -# Default installation directory -C:\Users\{username}\AppData\Local\Programs\Jan -``` - -## Uninstalling Jan - -To uninstall Jan on Windows, use the [Windows Control Panel](https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98). - -To remove all user data associated with Jan, you can delete the `/jan` directory in Windows' [AppData directory](https://superuser.com/questions/632891/what-is-appdata). - -```bash -cd C:\Users\%USERNAME%\AppData\Roaming -rmdir /S jan -``` diff --git a/docs/docs/guides/02-installation/03-linux.md b/docs/docs/guides/02-installation/03-linux.md deleted file mode 100644 index 0ec7fea60..000000000 --- a/docs/docs/guides/02-installation/03-linux.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Linux -slug: /install/linux -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - installation guide, - ] ---- - -# Installing Jan on Linux - -## System Requirements - -Ensure that your system meets the following requirements: - -- glibc 2.27 or higher (check with `ldd --version`) -- gcc 11, g++ 11, cpp 11, or higher, refer to this [link](https://jan.ai/guides/troubleshooting/gpu-not-used/#specific-requirements-for-linux) for more information. - -To enable GPU support, you will need: - -- NVIDIA GPU with CUDA Toolkit 11.7 or higher -- NVIDIA driver 470.63.01 or higher - -## Installation - -Jan is available for download via our homepage, [https://jan.ai](https://jan.ai/). - -For Linux, the download should be available as a `.AppImage` file or a `.deb` file in the following format. - -```bash -# AppImage -jan-linux-x86_64-{version}.AppImage - -# Debian Linux distribution -jan-linux-amd64-{version}.deb -``` - -To install Jan on Linux, you should use your package manager's install or `dpkg``. For Debian/Ubuntu-based distributions, you can install Jan using the following command: - -```bash -# Install Jan using dpkg -sudo dpkg -i jan-linux-amd64-{version}.deb - -# Install Jan using apt-get -sudo apt-get install ./jan-linux-amd64-{version}.deb -# where jan-linux-amd64-{version}.deb is path to the Jan package -``` - -For other Linux distributions, you launch the AppImage file without installation. To do so, you need to make the AppImage file executable and then run it. You can do this either through your file manager's properties dialog or with the following commands: - -```bash -# Install Jan using AppImage -chmod +x jan-linux-x86_64-{version}.AppImage -./jan-linux-x86_64-{version}.AppImage -# where jan-linux-x86_64-{version}.AppImage is path to the Jan package -``` - -The typical installation process takes around a minute. - -### GitHub Releases - -Jan is also available from [Jan's GitHub Releases](https://github.com/janhq/jan/releases) page, with a recommended [latest stable release](https://github.com/janhq/jan/releases/latest). - -Within the Releases' assets, you will find the following files for Linux: - -```bash -# Debian Linux distribution -jan-linux-amd64-{version}.deb - -# AppImage -jan-linux-x86_64-{version}.AppImage -``` - -## Uninstall Jan - -To uninstall Jan on Linux, you should use your package manager's uninstall or remove option. For Debian/Ubuntu-based distributions, if you installed Jan via the `.deb` package, you can uninstall Jan using the following command: - -```bash -sudo apt-get remove jan -# where jan is the name of Jan package -``` - -For other Linux distributions, if you installed Jan via the `.AppImage` file, you can uninstall Jan by deleting the `.AppImage` file. - -In case you wish to completely remove all user data associated with Jan after uninstallation, you can delete the user data folders located at ~/jan. This will return your system to its state prior to the installation of Jan. This method can also be used to reset all settings if you are experiencing any issues with Jan. diff --git a/docs/docs/guides/02-installation/04-from-source.md b/docs/docs/guides/02-installation/04-from-source.md deleted file mode 100644 index 06a025d1c..000000000 --- a/docs/docs/guides/02-installation/04-from-source.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: From Source -slug: /install/from-source -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - ] ---- - -# Installing Jan from Source - -## Installation - -### Pre-requisites - -Before proceeding with the installation of Jan from source, ensure that the following software versions are installed on your system: - -- Node.js version 20.0.0 or higher -- Yarn version 1.22.0 or higher - -### Instructions - -:::note - -This instruction is tested on MacOS only. - -::: - -1. Clone the Jan repository from GitHub - -```bash -git clone https://github.com/janhq/jan -git checkout DESIRED_BRANCH -cd jan -``` - -2. Install the required dependencies using Yarn - -```bash -yarn install - -# Build core module -yarn build:core - -# Packing base plugins -yarn build:plugins - -# Packing uikit -yarn build:uikit -``` - -3. Run development and using Jan - -```bash -yarn dev -``` - -This will start the development server and open the desktop app. During this step, you may encounter notifications about installing base plugins. Simply click `OK` and `Next` to continue. - -#### For production build - -Build the app for macOS M1/M2 for production and place the result in the dist folder - -```bash -# Do step 1 and 2 in the previous section -git clone https://github.com/janhq/jan -cd jan -yarn install - -# Build core module -yarn build:core - -# Package base plugins -yarn build:plugins - -# Packing uikit -yarn build:uikit - -# Build the app -yarn build -``` - -This completes the installation process for Jan from source. The production-ready app for macOS can be found in the dist folder. diff --git a/docs/docs/guides/02-installation/05-docker.md b/docs/docs/guides/02-installation/05-docker.md deleted file mode 100644 index 5973e9771..000000000 --- a/docs/docs/guides/02-installation/05-docker.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: Docker -slug: /install/docker -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - docker installation, - cpu mode, - gpu mode, - ] ---- - -# Installing Jan using Docker - -### Pre-requisites - -:::note - -**Supported OS**: Linux, WSL2 Docker - -::: - -- Docker Engine and Docker Compose are required to run Jan in Docker mode. Follow the [instructions](https://docs.docker.com/engine/install/ubuntu/) below to get started with Docker Engine on Ubuntu. - -```bash -curl -fsSL https://get.docker.com -o get-docker.sh -sudo sh ./get-docker.sh --dry-run -``` - -- If you intend to run Jan in GPU mode, you need to install `nvidia-driver` and `nvidia-docker2`. Follow the instruction [here](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) for installation. - -### Run Jan in Docker Mode - -| Docker compose Profile | Description | -| ---------------------- | -------------------------------------------- | -| `cpu-fs` | Run Jan in CPU mode with default file system | -| `cpu-s3fs` | Run Jan in CPU mode with S3 file system | -| `gpu-fs` | Run Jan in GPU mode with default file system | -| `gpu-s3fs` | Run Jan in GPU mode with S3 file system | - -| Environment Variable | Description | -| ----------------------- | ------------------------------------------------------------------------------------------------------- | -| `S3_BUCKET_NAME` | S3 bucket name - leave blank for default file system | -| `AWS_ACCESS_KEY_ID` | AWS access key ID - leave blank for default file system | -| `AWS_SECRET_ACCESS_KEY` | AWS secret access key - leave blank for default file system | -| `AWS_ENDPOINT` | AWS endpoint URL - leave blank for default file system | -| `AWS_REGION` | AWS region - leave blank for default file system | -| `API_BASE_URL` | Jan Server URL, please modify it as your public ip address or domain name default http://localhost:1377 | - -- **Option 1**: Run Jan in CPU mode - - ```bash - # cpu mode with default file system - docker compose --profile cpu-fs up -d - - # cpu mode with S3 file system - docker compose --profile cpu-s3fs up -d - ``` - -- **Option 2**: Run Jan in GPU mode - - - **Step 1**: Check CUDA compatibility with your NVIDIA driver by running `nvidia-smi` and check the CUDA version in the output - - ```bash - nvidia-smi - - # Output - +---------------------------------------------------------------------------------------+ - | NVIDIA-SMI 531.18 Driver Version: 531.18 CUDA Version: 12.1 | - |-----------------------------------------+----------------------+----------------------+ - | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | - | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | - | | | MIG M. | - |=========================================+======================+======================| - | 0 NVIDIA GeForce RTX 4070 Ti WDDM | 00000000:01:00.0 On | N/A | - | 0% 44C P8 16W / 285W| 1481MiB / 12282MiB | 2% Default | - | | | N/A | - +-----------------------------------------+----------------------+----------------------+ - | 1 NVIDIA GeForce GTX 1660 Ti WDDM | 00000000:02:00.0 Off | N/A | - | 0% 49C P8 14W / 120W| 0MiB / 6144MiB | 0% Default | - | | | N/A | - +-----------------------------------------+----------------------+----------------------+ - | 2 NVIDIA GeForce GTX 1660 Ti WDDM | 00000000:05:00.0 Off | N/A | - | 29% 38C P8 11W / 120W| 0MiB / 6144MiB | 0% Default | - | | | N/A | - +-----------------------------------------+----------------------+----------------------+ - - +---------------------------------------------------------------------------------------+ - | Processes: | - | GPU GI CI PID Type Process name GPU Memory | - | ID ID Usage | - |=======================================================================================| - ``` - - - **Step 2**: Visit [NVIDIA NGC Catalog ](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda/tags) and find the smallest minor version of image tag that matches your CUDA version (e.g., 12.1 -> 12.1.0) - - - **Step 3**: Update the `Dockerfile.gpu` line number 5 with the latest minor version of the image tag from step 2 (e.g. change `FROM nvidia/cuda:12.2.0-runtime-ubuntu22.04 AS base` to `FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04 AS base`) - - - **Step 4**: Run command to start Jan in GPU mode - - ```bash - # GPU mode with default file system - docker compose --profile gpu up -d - - # GPU mode with S3 file system - docker compose --profile gpu-s3fs up -d - ``` - -This will start the web server and you can access Jan at `http://localhost:3000`. - -:::warning - -- RAG feature is not supported in Docker mode with s3fs yet. - -::: diff --git a/docs/docs/guides/02-installation/06-hardware.md b/docs/docs/guides/02-installation/06-hardware.md deleted file mode 100644 index b91722456..000000000 --- a/docs/docs/guides/02-installation/06-hardware.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Hardware Requirements -slug: /guides/install/hardware -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - ] ---- - -Jan is designed to be lightweight and able to run Large Language Models (LLMs) out-of-the-box. - -The current download size is less than 150 MB and has a disk space of ~300 MB. - -To ensure optimal performance, please see the following system requirements: - -## Disk Space - -- Minimum requirement - - At least 5 GB of free disk space is required to accommodate the download, storage, and management of open-source LLM models. -- Recommended - - For an optimal experience and to run most available open-source LLM models on Jan, it is recommended to have 10 GB of free disk space. - -## RAM and GPU VRAM - -The amount of RAM on your system plays a crucial role in determining the size and complexity of LLM models you can effectively run. Jan can be utilized on traditional computers where RAM is a key resource. For enhanced performance, Jan also supports GPU acceleration, utilizing the VRAM of your graphics card. - -## Best Models for your V/RAM - -The RAM and GPU VRAM requirements are dependent on the size and complexity of the LLM models you intend to run. The following are some general guidelines to help you determine the amount of RAM or VRAM you need to run LLM models on Jan - -- `8 GB of RAM`: Suitable for running smaller models like 3B models or quantized 7B models -- `16 GB of RAM (recommended)`: This is considered the "minimum usable models" threshold, particularly for 7B models (e.g Mistral 7B, etc) -- `Beyond 16GB of RAM`: Required for handling larger and more sophisticated model, such as 70B models. - -## Architecture - -Jan is designed to run on multiple architectures, versatility and widespread usability. The supported architectures include: - -### CPU Support - -- `x86`: Jan is well-suited for systems with x86 architecture, which is commonly found in traditional desktops and laptops. It ensures smooth performance on a variety of devices using x86 processors. -- `ARM`: Jan is optimized to run efficiently on ARM-based systems, extending compatibility to a broad range of devices using ARM processors. - -### GPU Support - -- `NVIDIA` -- `AMD` -- `ARM64 Mac` diff --git a/docs/docs/guides/02-installation/07-nightly-build.md b/docs/docs/guides/02-installation/07-nightly-build.md deleted file mode 100644 index 5a84f3410..000000000 --- a/docs/docs/guides/02-installation/07-nightly-build.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Nightly Release -slug: /install/nightly -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - nightly release, - ] ---- - -:::warning - -- Nightly releases are cutting-edge versions that include the latest features. However, they are highly unstable and may contain bugs. - -::: - -## Where to Find Nightly Releases - -- **Jan's GitHub Repository**: Visit the [Download section](https://github.com/janhq/jan?tab=readme-ov-file#download) of Jan's GitHub repository for the latest nightly release. - -- **Discord Channel**: Nightly releases are also announced in our [Discord channel](https://discord.com/channels/1107178041848909847/1191638499355537418). - -## Automatic Updates - -Once you install a nightly build, the application will automatically prompt you to update each time it is restarted, ensuring you always have the latest version. - -## Running Stable and Nightly Versions Simultaneously - -If you wish to use both the stable and nightly versions of Jan, follow these steps: - -1. Install the stable version as usual. -2. For the nightly build, choose a different installation directory to avoid conflicts. -3. Ensure that you clearly label or create shortcuts for each version to avoid confusion. - -

- -:::tip - -- Engage with [our community on Discord](https://discord.gg/Dt7MxDyNNZ) to share feedback or get support for any issues you encounter. - -::: diff --git a/docs/docs/guides/02-installation/08-antivirus-compatibility-testing.md b/docs/docs/guides/02-installation/08-antivirus-compatibility-testing.md deleted file mode 100644 index 6dd82138b..000000000 --- a/docs/docs/guides/02-installation/08-antivirus-compatibility-testing.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Antivirus Compatibility Testing -slug: /guides/install/antivirus-compatibility-testing -description: Antivirus compatibility testing documentation for the Jan App v0.4.4 release. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - antivirus compatibility, - ] ---- - -This documentation outlines the antivirus compatibility testing conducted for the Jan App v0.4.4 release. This documentation includes a matrix that correlates the Jan App version with the tested antivirus versions. - -## Tested Antivirus Versions - -The Jan App v0.4.4 release has undergone automatic testing through CI with a selection of popular antivirus software to ensure compatibility and safety. The following summarizes the testing results: - -| Antivirus | Version | Result | -| ------------------ | ------------ | -------------------------------- | -| Bitdefender | 27.0.27.125 | Scanned and 0 threat(s) detected | -| McAfee | 4.21.0.0 | Scanned and 0 threat(s) detected | -| Microsoft Defender | 1.403.2259.0 | Scanned and 0 threat(s) detected | - -## Conclusion - -The testing indicates that Jan App v0.4.4 is compatible with Bitdefender, Microsoft Defender, and McAfee. Any updates or changes to compatibility status will be promptly documented. diff --git a/docs/docs/guides/02-installation/README.mdx b/docs/docs/guides/02-installation/README.mdx deleted file mode 100644 index 4c316c248..000000000 --- a/docs/docs/guides/02-installation/README.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Installation -slug: /install -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - ] ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -In this quickstart, we'll show you how to: - -- Download the Jan Desktop client - Mac, Windows, Linux, (and toaster) compatible -- Download the Nightly (unstable) version -- Build the application from source - -## Setup - -### Installation - -- To download the latest stable release: https://jan.ai/ or visit the [GitHub Releases](https://github.com/janhq/jan/releases) to download any previous release. - -- To download a nightly release (highly unstable but lots of new features), please check out the [Download section](https://github.com/janhq/jan?tab=readme-ov-file#download) on our repository. - -- For a detailed installation guide for your operating system, see the following: - - - - [Mac installation guide](/install/mac) - - - [Windows installation guide](/install/windows) - - - [Linux installation guide](/install/linux) - - - -- To build Jan Desktop from scratch (and have the right to tinker!) - - See the [Build from Source](/install/from-source) guide. diff --git a/docs/docs/guides/03-chatting/04-manage-history.md b/docs/docs/guides/03-chatting/04-manage-history.md deleted file mode 100644 index 1b21cc0eb..000000000 --- a/docs/docs/guides/03-chatting/04-manage-history.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Manage Chat History -slug: /guides/chatting/manage-history/ -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - manage-chat-history, - ] ---- - -Jan offers a convenient and private way to interact with a conversational AI locally on your computer. This guide will walk you through how to manage your chat history with Jan, ensuring your interactions remain private and organized. - -## Viewing Chat History - -1. Navigate to the main dashboard. -2. Locate the list of threads on the left side of the screen. This list shows all your conversations. -3. Select a thread to view the conversation in the main chat window. -4. Scroll up and down to view the entire chat history in the selected thread. - -

-![viewing-chat-history](./assets/viewing-chat-history.gif) - -## Managing Threads via Folders - -This feature allows you to directly manage your thread history and configurations. - -1. Navigate to the Thread that you want to manage via the list of threads on the left side of the dashboard. -2. Click on the three dots (⋮) on the `Thread` section on the right side of the dashboard. There are two options: - -- `Reveal in Finder` will open the folder containing the thread history and configurations. -- `View as JSON` will open the thread.json file in your default browser. - -

-![managing-threads-via-folders](./assets/managing-threads-via-folders.gif) - -## Clean Thread - -To streamline your conservation view, click on the three dots (⋮) on the thread you want to clean, then select `Clean Thread`. It will remove all messages from the thread. It is useful if you want to keep the thread settings, but want to remove the messages from the chat window. - -

-![clean-thread](./assets/clean-thread.gif) - -## Delete Thread - -To delete a thread, click on the three dots (⋮) on the thread you want to delete, then select `Delete Thread`. It will remove the thread from the list of threads. - -

-![delete-thread](./assets/delete-thread.gif) diff --git a/docs/docs/guides/03-chatting/README.mdx b/docs/docs/guides/03-chatting/README.mdx deleted file mode 100644 index 6b5550964..000000000 --- a/docs/docs/guides/03-chatting/README.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Chatting -slug: /guides/chatting/ -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - chatting, - ] ---- - -This guide is designed to help you maximize your experience with Jan, covering everything from starting engaging threads to managing your chat history effectively. - -import DocCardList from "@theme/DocCardList"; - - diff --git a/docs/docs/guides/03-chatting/assets/choose-model.png b/docs/docs/guides/03-chatting/assets/choose-model.png deleted file mode 100644 index d109f03e0..000000000 Binary files a/docs/docs/guides/03-chatting/assets/choose-model.png and /dev/null differ diff --git a/docs/docs/guides/03-chatting/assets/clean-thread.gif b/docs/docs/guides/03-chatting/assets/clean-thread.gif deleted file mode 100644 index e4f7c678e..000000000 Binary files a/docs/docs/guides/03-chatting/assets/clean-thread.gif and /dev/null differ diff --git a/docs/docs/guides/03-chatting/assets/customize-model-params.png b/docs/docs/guides/03-chatting/assets/customize-model-params.png deleted file mode 100644 index 8e27fdbe3..000000000 Binary files a/docs/docs/guides/03-chatting/assets/customize-model-params.png and /dev/null differ diff --git a/docs/docs/guides/03-chatting/assets/delete-thread.gif b/docs/docs/guides/03-chatting/assets/delete-thread.gif deleted file mode 100644 index 92ae66cb7..000000000 Binary files a/docs/docs/guides/03-chatting/assets/delete-thread.gif and /dev/null differ diff --git a/docs/docs/guides/03-chatting/assets/setting-assistant-instructions.png b/docs/docs/guides/03-chatting/assets/setting-assistant-instructions.png deleted file mode 100644 index 8c9b39d19..000000000 Binary files a/docs/docs/guides/03-chatting/assets/setting-assistant-instructions.png and /dev/null differ diff --git a/docs/docs/guides/03-chatting/assets/setting-thread-title.png b/docs/docs/guides/03-chatting/assets/setting-thread-title.png deleted file mode 100644 index b9ab4c71c..000000000 Binary files a/docs/docs/guides/03-chatting/assets/setting-thread-title.png and /dev/null differ diff --git a/docs/docs/guides/03-chatting/assets/viewing-chat-history.gif b/docs/docs/guides/03-chatting/assets/viewing-chat-history.gif deleted file mode 100644 index 3fed0f25c..000000000 Binary files a/docs/docs/guides/03-chatting/assets/viewing-chat-history.gif and /dev/null differ diff --git a/docs/docs/guides/04-using-models/01-install-from-hub.mdx b/docs/docs/guides/04-using-models/01-install-from-hub.mdx deleted file mode 100644 index bf521bddd..000000000 --- a/docs/docs/guides/04-using-models/01-install-from-hub.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Install Models from the Hub -slug: /guides/using-models/install-from-hub -description: Guide to install models from the Hub. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - install model, - ] ---- - -In this guide, we will walk through the process of installing a **Large Language Model (LLM)** from the Hub. - -## Steps to Install Models from the Hub - -### 1. Explore and Select a Model - -Explore the available LLMs by scrolling through the Hub or using the **Search Bar**. - -![Search Model](assets/01-search-model.gif) - -Utilize the **Filter Button** to choose the **recommended LLM**. LLM is recommended based on the [RAM usage](https://github.com/janhq/jan/issues/1384). - -| Name | Description | -| ----------- | ------------------------------------- | -| All Models | Show all LLMs available | -| Recommended | Show the Recommended LLM | -| Downloaded | Show the LLM that has been downloaded | - -![Search Model](assets/01-filter-button.png) - -If you want to use a model that is not available in the Hub, you can also [import the Model Manually](./02-import-manually.mdx). - -### 2. Download the Model - -Once you've identified the desired LLM, simply click the **Download** button to initiate the download. A progress bar will appear to indicate the download progress. - -![Download Progress](assets/01-download-progress.png) - -### 3. Use the Model - -Once the download is completed, you can start using the model by clicking the **Use** button. - -![Use Model](assets/01-use-model.gif) \ No newline at end of file diff --git a/docs/docs/guides/04-using-models/02-import-manually.mdx b/docs/docs/guides/04-using-models/02-import-manually.mdx deleted file mode 100644 index 7c446ea1c..000000000 --- a/docs/docs/guides/04-using-models/02-import-manually.mdx +++ /dev/null @@ -1,242 +0,0 @@ ---- -title: Import Models Manually -slug: /guides/using-models/import-manually -description: Guide to manually import a local model into Jan. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - import-models-manually, - local model, - ] ---- - -:::caution -This is currently under development. -::: - -{/* Imports */} -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -In this section, we will show you how to import a GGUF model from [HuggingFace](https://huggingface.co/), using our latest model, [Trinity](https://huggingface.co/janhq/trinity-v1-GGUF), as an example. - -> We are fast shipping a UI to make this easier, but it's a bit manual for now. Apologies. - -## Import Models Using Absolute Filepath (version 0.4.7) - -Starting from version 0.4.7, Jan has introduced the capability to import models using an absolute file path. It allows you to import models from any directory on your computer. Please check the [import models using absolute filepath](../import-models-using-absolute-filepath) guide for more information. - -## Manually Importing a Downloaded Model (nightly versions and v0.4.4+) - -### 1. Create a Model Folder - -Navigate to the `~/jan/models` folder. You can find this folder by going to `App Settings` > `Advanced` > `Open App Directory`. - - - - - ```sh - cd ~/jan/models - ``` - - - - - ```sh - C:/Users//jan/models - ``` - - - - - ```sh - cd ~/jan/models - ``` - - - - -In the `models` folder, create a folder with the name of the model. - - - - - ```sh - mkdir trinity-v1-7b - ``` - - - - - ```sh - mkdir trinity-v1-7b - ``` - - - - - ```sh - mkdir trinity-v1-7b - ``` - - - - -#### 2. Drag & Drop the Model - -Drag and drop your model binary into this folder, ensuring the `modelname.gguf` is the same name as the folder name, e.g. `models/modelname` - -#### 3. Voila - -If your model doesn't show up in the Model Selector in conversations, please restart the app. - -If that doesn't work, please feel free to join our [Discord community](https://discord.gg/Dt7MxDyNNZ) for support, updates, and discussions. - -## Manually Importing a Downloaded Model (older versions) - -### 1. Create a Model Folder - -Navigate to the `~/jan/models` folder. You can find this folder by going to `App Settings` > `Advanced` > `Open App Directory`. - - - - - ```sh - cd ~/jan/models - ``` - - - - - ```sh - C:/Users//jan/models - ``` - - - - - ```sh - cd ~/jan/models - ``` - - - - -In the `models` folder, create a folder with the name of the model. - - - - - ```sh - mkdir trinity-v1-7b - ``` - - - - - ```sh - mkdir trinity-v1-7b - ``` - - - - - ```sh - mkdir trinity-v1-7b - ``` - - - - -### 2. Create a Model JSON - -Jan follows a folder-based, [standard model template](/docs/engineering/models) called a `model.json` to persist the model configurations on your local filesystem. - -This means that you can easily reconfigure your models, export them, and share your preferences transparently. - - - - - ```sh - cd trinity-v1-7b - touch model.json - ``` - - - - - ```sh - cd trinity-v1-7b - echo {} > model.json - ``` - - - - - ```sh - cd trinity-v1-7b - touch model.json - ``` - - - - -Edit `model.json` and include the following configurations: - -- Ensure the `id` property matches the folder name you created. -- Ensure the GGUF filename should match the `id` property exactly. -- Ensure the `source.url` property is the direct binary download link ending in `.gguf`. In HuggingFace, you can find the direct links in the `Files and versions` tab. -- Ensure you are using the correct `prompt_template`. This is usually provided in the HuggingFace model's description page. - -```json title="model.json" -{ - // highlight-start - "sources": [ - { - "filename": "trinity-v1.Q4_K_M.gguf", - "url": "https://huggingface.co/janhq/trinity-v1-GGUF/resolve/main/trinity-v1.Q4_K_M.gguf" - } - ], - "id": "trinity-v1-7b", - // highlight-end - "object": "model", - "name": "Trinity-v1 7B Q4", - "version": "1.0", - "description": "Trinity is an experimental model merge of GreenNodeLM & LeoScorpius using the Slerp method. Recommended for daily assistance purposes.", - "format": "gguf", - "settings": { - "ctx_len": 4096, - // highlight-next-line - "prompt_template": "{system_message}\n### Instruction:\n{prompt}\n### Response:", - "llama_model_path": "trinity-v1.Q4_K_M.gguf" - }, - "parameters": { - "max_tokens": 4096 - }, - "metadata": { - "author": "Jan", - "tags": ["7B", "Merged"], - "size": 4370000000 - }, - "engine": "nitro" -} -``` - -### 3. Download the Model - -Restart Jan and navigate to the Hub. Locate your model and click the `Download` button to download the model binary. - -![image-01](assets/02-manually-import-local-model.png) - -Your model is now ready to use in Jan. - -## Assistance and Support - -If you have questions or are looking for more preconfigured GGUF models, please feel free to join our [Discord community](https://discord.gg/Dt7MxDyNNZ) for support, updates, and discussions. diff --git a/docs/docs/guides/04-using-models/03-import-models-using-absolute-filepath.mdx b/docs/docs/guides/04-using-models/03-import-models-using-absolute-filepath.mdx deleted file mode 100644 index 490f68cd6..000000000 --- a/docs/docs/guides/04-using-models/03-import-models-using-absolute-filepath.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Import Models Using Absolute Filepath -slug: /guides/using-models/import-models-using-absolute-filepath -description: Guide to import model using absolute filepath in Jan. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - import-models-manually, - absolute-filepath, - ] ---- - -In this guide, we will walk you through the process of importing a model using an absolute filepath in Jan, using our latest model, [Trinity](https://huggingface.co/janhq/trinity-v1-GGUF), as an example. - -### 1. Get the Absolute Filepath of the Model - -After downloading .gguf model, you can get the absolute filepath of the model file. - -### 2. Configure the Model JSON - -1. Navigate to the `~/jan/models` folder. -2. Create a folder named ``, for example, `tinyllama`. -3. Create a `model.json` file inside the folder, including the following configurations: - -- Ensure the `id` property matches the folder name you created. -- Ensure the `url` property is the direct binary download link ending in `.gguf`. Now, you can use the absolute filepath of the model file. -- Ensure the `engine` property is set to `nitro`. - -```json -{ - "sources": [ - { - "filename": "tinyllama.gguf", - // highlight-next-line - "url": "" - } - ], - "id": "tinyllama-1.1b", - "object": "model", - "name": "(Absolute Path) TinyLlama Chat 1.1B Q4", - "version": "1.0", - "description": "TinyLlama is a tiny model with only 1.1B. It's a good model for less powerful computers.", - "format": "gguf", - "settings": { - "ctx_len": 4096, - "prompt_template": "<|system|>\n{system_message}<|user|>\n{prompt}<|assistant|>", - "llama_model_path": "tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf" - }, - "parameters": { - "temperature": 0.7, - "top_p": 0.95, - "stream": true, - "max_tokens": 2048, - "stop": [], - "frequency_penalty": 0, - "presence_penalty": 0 - }, - "metadata": { - "author": "TinyLlama", - "tags": ["Tiny", "Foundation Model"], - "size": 669000000 - }, - "engine": "nitro" -} -``` - -:::warning - -- If you are using Windows, you need to use double backslashes in the url property, for example: `C:\\Users\\username\\filename.gguf`. - -::: - -### 3. Start the Model - -Restart Jan and navigate to the Hub. Locate your model and click the Use button. - -![Demo](assets/03-demo-absolute-filepath.gif) \ No newline at end of file diff --git a/docs/docs/guides/04-using-models/04-integrate-with-remote-server.mdx b/docs/docs/guides/04-using-models/04-integrate-with-remote-server.mdx deleted file mode 100644 index 3632a40b0..000000000 --- a/docs/docs/guides/04-using-models/04-integrate-with-remote-server.mdx +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: Integrate With a Remote Server -slug: /guides/using-models/integrate-with-remote-server -description: Guide to integrate with a remote server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - import-models-manually, - remote server, - OAI compatible, - ] ---- - -:::caution -This is currently under development. -::: - -In this guide, we will show you how to configure Jan as a client and point it to any remote & local (self-hosted) API server. - -## OpenAI Platform Configuration - -In this section, we will show you how to configure with OpenAI Platform, using the OpenAI GPT 3.5 Turbo 16k model as an example. - -### 1. Create a Model JSON - -Navigate to the `~/jan/models` folder. Create a folder named `gpt-3.5-turbo-16k` and create a `model.json` file inside the folder including the following configurations: - -- Ensure the filename must be `model.json`. -- Ensure the `id` property matches the folder name you created. -- Ensure the `format` property is set to `api`. -- Ensure the `engine` property is set to `openai`. -- Ensure the `state` property is set to `ready`. - -```json title="~/jan/models/gpt-3.5-turbo-16k/model.json" -{ - "sources": [ - { - "filename": "openai", - "url": "https://openai.com" - } - ], - // highlight-next-line - "id": "gpt-3.5-turbo-16k", - "object": "model", - "name": "OpenAI GPT 3.5 Turbo 16k", - "version": "1.0", - "description": "OpenAI GPT 3.5 Turbo 16k model is extremely good", - // highlight-start - "format": "api", - "settings": {}, - "parameters": {}, - "metadata": { - "author": "OpenAI", - "tags": ["General", "Big Context Length"] - }, - "engine": "openai" - // highlight-end -} -``` - -:::tip - -- You can find the list of available models in the [OpenAI Platform](https://platform.openai.com/docs/models/overview). -- Please note that the `id` property need to match the model name in the list. For example, if you want to use the [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo), you need to set the `id` property as `gpt-4-1106-preview`. - -::: - -### 2. Configure OpenAI API Keys - -You can find your API keys in the [OpenAI Platform](https://platform.openai.com/api-keys) and set the OpenAI API keys in `~/jan/engines/openai.json` file. - -```json title="~/jan/engines/openai.json" -{ - "full_url": "https://api.openai.com/v1/chat/completions", - // highlight-next-line - "api_key": "sk-" -} -``` - -### 3. Start the Model - -Restart Jan and navigate to the Hub. Then, select your configured model and start the model. - -![image-01](assets/04-openai-platform-configuration.png) - -## Engines with OAI Compatible Configuration - -In this section, we will show you how to configure a client connection to a remote/local server, using Jan's API server that is running model `mistral-ins-7b-q4` as an example. - -:::note - -- Please note that at the moment, you can only connect to one OpenAI compatible endpoint at a time. - -::: - -### 1. Configure a Client Connection - -Navigate to the `~/jan/engines` folder and modify the `openai.json` file. Please note that at the moment the code that supports any openai compatible endpoint only reads `engine/openai.json` file, thus, it will not search any other files in this directory. - -Configure `full_url` properties with the endpoint server that you want to connect. For example, if you want to connect to Jan's API server, you can configure it as follows: - -```json title="~/jan/engines/openai.json" -{ - // highlight-start - // "full_url": "https://:/v1/chat/completions" - "full_url": "https://:1337/v1/chat/completions" - // highlight-end - // Skip api_key if your local server does not require authentication - // "api_key": "sk-" -} -``` - -### 2. Create a Model JSON - -Navigate to the `~/jan/models` folder. Create a folder named `mistral-ins-7b-q4` and create a `model.json` file inside the folder including the following configurations: - -- Ensure the filename must be `model.json`. -- Ensure the `id` property matches the folder name you created. -- Ensure the `format` property is set to `api`. -- Ensure the `engine` property is set to `openai`. -- Ensure the `state` property is set to `ready`. - -```json title="~/jan/models/mistral-ins-7b-q4/model.json" -{ - "sources": [ - { - "filename": "janai", - "url": "https://jan.ai" - } - ], - // highlight-next-line - "id": "mistral-ins-7b-q4", - "object": "model", - "name": "Mistral Instruct 7B Q4 on Jan API Server", - "version": "1.0", - "description": "Jan integration with remote Jan API server", - // highlight-next-line - "format": "api", - "settings": {}, - "parameters": {}, - "metadata": { - "author": "MistralAI, The Bloke", - "tags": ["remote", "awesome"] - }, - // highlight-start - "engine": "openai" - // highlight-end -} -``` - -### 3. Start the Model - -Restart Jan and navigate to the Hub. Locate your model and click the Use button. - -![image-02](assets/04-oai-compatible-configuration.png) - -## Assistance and Support - -If you have questions or are looking for more preconfigured GGUF models, please feel free to join our [Discord community](https://discord.gg/Dt7MxDyNNZ) for support, updates, and discussions. diff --git a/docs/docs/guides/04-using-models/05-customize-engine-settings.mdx b/docs/docs/guides/04-using-models/05-customize-engine-settings.mdx deleted file mode 100644 index 103bba378..000000000 --- a/docs/docs/guides/04-using-models/05-customize-engine-settings.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Customize Engine Settings -slug: /guides/using-models/customize-engine-settings -description: Guide to customize engine settings. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - import-models-manually, - customize-engine-settings, - ] ---- - -{/* Imports */} -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -In this guide, we will show you how to customize the engine settings. - -1. Navigate to the `~/jan/engine` folder. You can find this folder by going to `App Settings` > `Advanced` > `Open App Directory`. - - - - - ```sh - cd ~/jan/engine - ``` - - - - - ```sh - C:/Users//jan/engine - ``` - - - - - ```sh - cd ~/jan/engine - ``` - - - - -2. Modify the `nitro.json` file based on your needs. The default settings are shown below. - -```json title="~/jan/engines/nitro.json" -{ - "ctx_len": 2048, - "ngl": 100, - "cpu_threads": 1, - "cont_batching": false, - "embedding": false -} -``` - -The table below describes the parameters in the `nitro.json` file. - -| Parameter | Type | Description | -| --------------- | ------- | ------------------------------------------------------------ | -| `ctx_len` | Integer | The context length for the model operations. | -| `ngl` | Integer | The number of GPU layers to use. | -| `cpu_threads` | Integer | The number of threads to use for inferencing (CPU mode only) | -| `cont_batching` | Boolean | Whether to use continuous batching. | -| `embedding` | Boolean | Whether to use embedding in the model. | - -:::tip - -- By default, the value of `ngl` is set to 100, which indicates that it will offload all. If you wish to offload only 50% of the GPU, you can set `ngl` to 15. Because the majority of models on Mistral or Llama are around ~ 30 layers. -- To utilize the embedding feature, include the JSON parameter `"embedding": true`. It will enable Nitro to process inferences with embedding capabilities. For a more detailed explanation, please refer to the [Embedding in the Nitro documentation](https://nitro.jan.ai/features/embed). -- To utilize the continuous batching feature to boost throughput and minimize latency in large language model (LLM) inference, please refer to the [Continuous Batching in the Nitro documentation](https://nitro.jan.ai/features/cont-batch). - -::: diff --git a/docs/docs/guides/04-using-models/README.mdx b/docs/docs/guides/04-using-models/README.mdx deleted file mode 100644 index 3c1ee7778..000000000 --- a/docs/docs/guides/04-using-models/README.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Using Models -slug: /guides/using-models/ -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - using-models, - ] ---- - -import DocCardList from "@theme/DocCardList"; - - diff --git a/docs/docs/guides/04-using-models/assets/01-download-progress.png b/docs/docs/guides/04-using-models/assets/01-download-progress.png deleted file mode 100644 index 17b0b75de..000000000 Binary files a/docs/docs/guides/04-using-models/assets/01-download-progress.png and /dev/null differ diff --git a/docs/docs/guides/04-using-models/assets/01-filter-button.png b/docs/docs/guides/04-using-models/assets/01-filter-button.png deleted file mode 100644 index 0d8b712e7..000000000 Binary files a/docs/docs/guides/04-using-models/assets/01-filter-button.png and /dev/null differ diff --git a/docs/docs/guides/04-using-models/assets/01-search-model.gif b/docs/docs/guides/04-using-models/assets/01-search-model.gif deleted file mode 100644 index a49b8c265..000000000 Binary files a/docs/docs/guides/04-using-models/assets/01-search-model.gif and /dev/null differ diff --git a/docs/docs/guides/04-using-models/assets/01-use-model.gif b/docs/docs/guides/04-using-models/assets/01-use-model.gif deleted file mode 100644 index 7be537373..000000000 Binary files a/docs/docs/guides/04-using-models/assets/01-use-model.gif and /dev/null differ diff --git a/docs/docs/guides/04-using-models/assets/02-manually-import-local-model.png b/docs/docs/guides/04-using-models/assets/02-manually-import-local-model.png deleted file mode 100644 index b2fddaee9..000000000 Binary files a/docs/docs/guides/04-using-models/assets/02-manually-import-local-model.png and /dev/null differ diff --git a/docs/docs/guides/04-using-models/assets/03-demo-absolute-filepath.gif b/docs/docs/guides/04-using-models/assets/03-demo-absolute-filepath.gif deleted file mode 100644 index 24dcc251a..000000000 Binary files a/docs/docs/guides/04-using-models/assets/03-demo-absolute-filepath.gif and /dev/null differ diff --git a/docs/docs/guides/04-using-models/assets/04-oai-compatible-configuration.png b/docs/docs/guides/04-using-models/assets/04-oai-compatible-configuration.png deleted file mode 100644 index a298d9405..000000000 Binary files a/docs/docs/guides/04-using-models/assets/04-oai-compatible-configuration.png and /dev/null differ diff --git a/docs/docs/guides/04-using-models/assets/04-openai-platform-configuration.png b/docs/docs/guides/04-using-models/assets/04-openai-platform-configuration.png deleted file mode 100644 index 6300b20f0..000000000 Binary files a/docs/docs/guides/04-using-models/assets/04-openai-platform-configuration.png and /dev/null differ diff --git a/docs/docs/guides/05-using-server/01-start-server.md b/docs/docs/guides/05-using-server/01-start-server.md deleted file mode 100644 index 2433fd80a..000000000 --- a/docs/docs/guides/05-using-server/01-start-server.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Start Local Server -slug: /guides/using-server/start-server -description: How to run Jan's built-in API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - local server, - api server, - ] ---- - -Jan ships with a built-in API server that can be used as a drop-in, local replacement for OpenAI's API. You can run your server by following these simple steps. - -## Open Local API Server View - -Navigate to the Local API Server view by clicking the corresponding icon on the left side of the screen. - -

- -![01-local-api-view](./assets/01-local-api-view.gif) - -## Choosing a Model - -On the top right of your screen under `Model Settings`, set the LLM that your local server will be running. You can choose from any of the models already installed, or pick a new model by clicking `Explore the Hub`. - -

- -![01-choose-model](./assets/01-choose-model.png) - -## Server Options - -On the left side of your screen, you can set custom server options. - -

- -![01-server-settings](./assets/01-server-options.png) - -### Local Server Address - -By default, Jan will be accessible only on localhost `127.0.0.1`. This means a local server can only be accessed on the same machine where the server is being run. - -You can make the local server more accessible by clicking on the address and choosing `0.0.0.0` instead, which allows the server to be accessed from other devices on the local network. This is less secure than choosing localhost, and should be done with caution. - -### Port - -Jan runs on port `1337` by default. You can change the port to any other port number if needed. - -### Cross-Origin Resource Sharing (CORS) - -Cross-Origin Resource Sharing (CORS) manages resource access on the local server from external domains. Enabled for security by default, it can be disabled if needed. - -### Verbose Server Logs - -The center of the screen displays the server logs as the local server runs. This option provides extensive details about server activities. - -## Start Server - -Click the `Start Server` button on the top left of your screen. You will see the server log display a message such as `Server listening at http://127.0.0.1:1337`, and the `Start Server` button will change to a red `Stop Server` button. - -

- -![01-running-server](./assets/01-running-server.gif) - -You server is now running and you can use the server address and port to make requests to the local server. diff --git a/docs/docs/guides/05-using-server/02-using-server.md b/docs/docs/guides/05-using-server/02-using-server.md deleted file mode 100644 index 3d4b004a1..000000000 --- a/docs/docs/guides/05-using-server/02-using-server.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: Using Jan's Built-in API Server -description: How to use Jan's built-in API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - local server, - api server, - ] ---- - -Jan's built-in API server is compatible with [OpenAI's API](https://platform.openai.com/docs/api-reference) and can be used as a drop-in, local replacement. Follow these steps to use the API server. - -## Open the API Reference - -Jan contains a comprehensive API reference. This reference displays all the API endpoints available, gives you examples requests and responses, and allows you to execute them in browser. - -On the top left of your screen below the red `Stop Server` button is the blue `API Reference`. Clicking this will open the reference in your browser. - -

- -![02-api-reference](./assets/02-api-reference.png) - -Scroll through the various available endpoints to learn what options are available and try them out by executing the example requests. In addition, you can also use the [Jan API Reference](https://jan.ai/api-reference/) on the Jan website. - -### Chat - -In the Chat section of the API reference, you will see an example JSON request body. - -

- -![02-chat-example](./assets/02-chat-example.png) - -With your local server running, you can click the `Try it out` button on the top left, then the blue `Execute` button below the JSON. The browser will send the example request to your server, and display the response body below. - -Use the API endpoints, request and response body examples as models for your own application. - -### cURL Request Example - -Here is an example curl request with a local server running `tinyllama-1.1b`: - -

- -```json -{ - "messages": [ - { - "content": "You are a helpful assistant.", - "role": "system" - }, - { - "content": "Hello!", - "role": "user" - } - ], - "model": "tinyllama-1.1b", - "stream": true, - "max_tokens": 2048, - "stop": [ - "hello" - ], - "frequency_penalty": 0, - "presence_penalty": 0, - "temperature": 0.7, - "top_p": 0.95 -} -' -``` - -### Response Body Example - -```json -{ - "choices": [ - { - "finish_reason": null, - "index": 0, - "message": { - "content": "Hello user. What can I help you with?", - "role": "assistant" - } - } - ], - "created": 1700193928, - "id": "ebwd2niJvJB1Q2Whyvkz", - "model": "_", - "object": "chat.completion", - "system_fingerprint": "_", - "usage": { - "completion_tokens": 500, - "prompt_tokens": 33, - "total_tokens": 533 - } -} -``` diff --git a/docs/docs/guides/05-using-server/assets/01-choose-model.png b/docs/docs/guides/05-using-server/assets/01-choose-model.png deleted file mode 100644 index 9062a1e95..000000000 Binary files a/docs/docs/guides/05-using-server/assets/01-choose-model.png and /dev/null differ diff --git a/docs/docs/guides/05-using-server/assets/01-local-api-view.gif b/docs/docs/guides/05-using-server/assets/01-local-api-view.gif deleted file mode 100644 index cb221fce4..000000000 Binary files a/docs/docs/guides/05-using-server/assets/01-local-api-view.gif and /dev/null differ diff --git a/docs/docs/guides/05-using-server/assets/01-running-server.gif b/docs/docs/guides/05-using-server/assets/01-running-server.gif deleted file mode 100644 index a4225f3cb..000000000 Binary files a/docs/docs/guides/05-using-server/assets/01-running-server.gif and /dev/null differ diff --git a/docs/docs/guides/05-using-server/assets/01-server-options.png b/docs/docs/guides/05-using-server/assets/01-server-options.png deleted file mode 100644 index c48844e40..000000000 Binary files a/docs/docs/guides/05-using-server/assets/01-server-options.png and /dev/null differ diff --git a/docs/docs/guides/05-using-server/assets/02-api-reference.png b/docs/docs/guides/05-using-server/assets/02-api-reference.png deleted file mode 100644 index 154d9dfc9..000000000 Binary files a/docs/docs/guides/05-using-server/assets/02-api-reference.png and /dev/null differ diff --git a/docs/docs/guides/05-using-server/assets/02-chat-example.png b/docs/docs/guides/05-using-server/assets/02-chat-example.png deleted file mode 100644 index bd7e33a6a..000000000 Binary files a/docs/docs/guides/05-using-server/assets/02-chat-example.png and /dev/null differ diff --git a/docs/docs/guides/06-using-extensions/02-import-extensions.md b/docs/docs/guides/06-using-extensions/02-import-extensions.md deleted file mode 100644 index 91b0eab7c..000000000 --- a/docs/docs/guides/06-using-extensions/02-import-extensions.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Import Extensions -slug: /guides/using-extensions/import-extensions/ -description: Import extensions into Jan. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - import extensions, - ] ---- - -Beside default extensions, you can import extensions into Jan by navigate to `Settings` > `Extensions` > `Manual Installation`. Then, the `~/jan/extensions/extensions.json` file will be updated automatically. - -:::caution - -You need to prepare the extension file in `.tgz` format to install. - -::: - -![Manual Installation](./assets/02-import-extensions.gif) - -If you want to build your own extension, please refer to the [Build Your First Extension | Developer Documentation](/developer/build-extension/your-first-extension/). diff --git a/docs/docs/guides/06-using-extensions/assets/01-extension-settings.png b/docs/docs/guides/06-using-extensions/assets/01-extension-settings.png deleted file mode 100644 index 29f4c9d08..000000000 Binary files a/docs/docs/guides/06-using-extensions/assets/01-extension-settings.png and /dev/null differ diff --git a/docs/docs/guides/06-using-extensions/assets/02-import-extensions.gif b/docs/docs/guides/06-using-extensions/assets/02-import-extensions.gif deleted file mode 100644 index d2436b947..000000000 Binary files a/docs/docs/guides/06-using-extensions/assets/02-import-extensions.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/01-integrate-continue.mdx b/docs/docs/guides/07-integrations/01-integrate-continue.mdx deleted file mode 100644 index 1fa0397e2..000000000 --- a/docs/docs/guides/07-integrations/01-integrate-continue.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Integrate Continue with Jan and VS Code -slug: /guides/integrations/continue -description: Guide to integrate Continue with Jan and VS Code -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - Continue integration, - VSCode integration, - ] ---- - -{/* Imports */} -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -## Quick Introduction - -[Continue](https://continue.dev/docs/intro) is an open-source autopilot for VS Code and JetBrains—the easiest way to code with any LLM. - -In this guide, we will show you how to integrate Continue with Jan and VS Code, enhancing your coding experience with the power of the local AI language model. - -## Steps to Integrate Continue with Jan and VS Code - -### 1. Install Continue for VS Code - -To get started with Continue in VS Code, please follow this [guide to install Continue for VS Code](https://continue.dev/docs/quickstart). - -### 2. Enable Jan API Server - -To configure the Continue to use Jan's Local Server, you need to enable Jan API Server with your preferred model, please follow this [guide to enable Jan API Server](/guides/using-server/start-server). - -### 3. Configure Continue to Use Jan's Local Server - -Navigate to the `~/.continue` directory. - - - - - ```sh - cd ~/.continue - ``` - - - - - ```sh - C:/Users//.continue - ``` - - - - - ```sh - cd ~/.continue - ``` - - - - -Edit the `config.json` file and include the following configuration. - -```json title="~/.continue/config.json" -{ - "models": [ - { - // highlight-next-line - "title": "Jan", - "provider": "openai", - // highlight-start - "model": "mistral-ins-7b-q4", - "apiKey": "EMPTY", - "apiBase": "http://localhost:1337/v1" - // highlight-end - } - ] -} -``` - -- Ensure that the `provider` is `openai`. -- Ensure that the `model` is the same as the one you enabled in the Jan API Server. -- Ensure that the `apiBase` is `http://localhost:1337/v1`. -- Ensure that the `apiKey` is `EMPTY`. - -### 4. Ensure the Using Model Is Activated in Jan - -Navigate to `Settings` > `Models`. Activate the model that you want to use in Jan by clicking the **three dots (⋮)** and **start model**. - -![Active Models](assets/01-start-model.png) - -### 5. Try Out the Integration of Jan and Continue in VS Code - -#### Asking questions about the code - -- Highlight a code snippet and press `Command + Shift + M` to open the **Left Panel**. -- Select Jan at the bottom and ask a question about the code, for example, `Explain this code`. - -![Continue Interactions](assets/01-continue-ask.png) - -#### Editing the code with the help of a large language model - -- Highlight a code snippet and press `Command + Shift + L` and input your edit request, for example, `Write comments for this code`. - -![Continue Edit Code](assets/01-continue-edit-demo.gif) diff --git a/docs/docs/guides/07-integrations/02-integrate-openrouter.mdx b/docs/docs/guides/07-integrations/02-integrate-openrouter.mdx deleted file mode 100644 index e0db0e336..000000000 --- a/docs/docs/guides/07-integrations/02-integrate-openrouter.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Integrate OpenRouter with Jan -slug: /guides/integrations/openrouter -description: Guide to integrate OpenRouter with Jan -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - OpenRouter integration, - ] ---- - -## Quick Introduction - -[OpenRouter](https://openrouter.ai/docs#quick-start) is an AI model aggregator. The API can be used by developers to interact with a variety of large language models, generative image models, and generative 3D object models. - -In this guide, we will show you how to integrate OpenRouter with Jan, enabling you to leverage remote Large Language Models (LLM) that are available at OpenRouter. - -## Steps to Integrate OpenRouter with Jan - -### 1. Configure OpenRouter API key - -You can find your API keys in the [OpenRouter API Key](https://openrouter.ai/keys) and set the OpenRouter API key in `~/jan/engines/openai.json` file. - -```json title="~/jan/engines/openai.json" -{ - // highlight-start - "full_url": "https://openrouter.ai/api/v1/chat/completions", - "api_key": "sk-or-v1" - // highlight-end -} -``` - -### 2. Modify a Model JSON - -Navigate to the `~/jan/models` folder. Create a folder named ``, for example, `openrouter-dolphin-mixtral-8x7b` and create a `model.json` file inside the folder including the following configurations: - -- Ensure the filename must be `model.json`. -- Ensure the `id` property is set to the model id from OpenRouter. -- Ensure the `format` property is set to `api`. -- Ensure the `engine` property is set to `openai`. -- Ensure the `state` property is set to `ready`. - -```json title="~/jan/models/openrouter-dolphin-mixtral-8x7b/model.json" -{ - "sources": [ - { - "filename": "openrouter", - "url": "https://openrouter.ai/" - } - ], - "id": "cognitivecomputations/dolphin-mixtral-8x7b", - "object": "model", - "name": "Dolphin 2.6 Mixtral 8x7B", - "version": "1.0", - "description": "This is a 16k context fine-tune of Mixtral-8x7b. It excels in coding tasks due to extensive training with coding data and is known for its obedience, although it lacks DPO tuning. The model is uncensored and is stripped of alignment and bias. It requires an external alignment layer for ethical use. Users are cautioned to use this highly compliant model responsibly, as detailed in a blog post about uncensored models at erichartford.com/uncensored-models.", - // highlight-next-line - "format": "api", - "settings": {}, - "parameters": {}, - "metadata": { - "tags": ["General", "Big Context Length"] - }, - // highlight-start - "engine": "openai" - // highlight-end -} -``` - -### 3. Start the Model - -Restart Jan and navigate to the Hub. Locate your model and click the Use button. - -![Dolphin OpenRouter Model](assets/02-openrouter-dolphin.png) - -### 4. Try Out the Integration of Jan and OpenRouter - -![Dolphin OpenRouter Model Trial](assets/02-openrouter-dolphin-trial.gif) diff --git a/docs/docs/guides/07-integrations/03-integrate-azure-openai-service.mdx b/docs/docs/guides/07-integrations/03-integrate-azure-openai-service.mdx deleted file mode 100644 index c99be66ea..000000000 --- a/docs/docs/guides/07-integrations/03-integrate-azure-openai-service.mdx +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Integrate Azure OpenAI Service with Jan -slug: /guides/integrations/azure-openai-service -description: Guide to integrate Azure OpenAI Service with Jan -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - integration, - Azure OpenAI Service, - ] ---- - -## Quick Introduction - -[Azure OpenAI Service](https://learn.microsoft.com/en-us/azure/ai-services/openai/overview?source=docs) provides a set of powerful APIs that enable you to easily integrate the OpenAI's language models. - -In this guide, we will show you how to integrate Azure OpenAI Service with Jan. - -## Steps to Integrate Azure OpenAI Service with Jan - -### 1. Configure Azure OpenAI Service API key - -Once you completed setting up and deploying the Azure OpenAI Service, you can find the endpoint and API key in the [Azure OpenAI Studio](https://oai.azure.com/) by navigating to `Chat` > `View code`. - -![View-code](./assets/03-viewcode.png) - -

- -![AzureOpenAIKeyandEndpoint](./assets/03-azureopenai-endpoint-key.png) - -Set the Azure OpenAI Service endpoint and API key in the `~/jan/engines/openai.json` file. - -```json title="~/jan/engines/openai.json" -{ - // https://hieujan.openai.azure.com/openai/deployments/gpt-35-hieu-jan/chat/completions?api-version=2023-07-01-preview - // highlight-start - "full_url": "https://.openai.azure.com/openai/deployments//chat/completions?api-version=", - "api_key": "" - // highlight-end -} -``` - -### 2. Modify a Model JSON - -Navigate to the `~/jan/models` folder. Create a folder named ``, for example, `gpt-35-hieu-jan` and create a `model.json` file inside the folder including the following configurations: - -- Ensure the filename must be `model.json`. -- Ensure the `id` property is set to the same as the folder name and your deployment name. -- Ensure the `format` property is set to `api`. -- Ensure the `engine` property is set to `openai`. -- Ensure the `state` property is set to `ready`. - -```json title="~/jan/models/gpt-35-hieu-jan/model.json" -{ - "sources": [ - { - "filename": "azure_openai", - "url": "https://hieujan.openai.azure.com" - } - ], - // highlight-next-line - "id": "gpt-35-hieu-jan", - "object": "model", - "name": "Azure OpenAI GPT 3.5", - "version": "1.0", - "description": "Azure Open AI GPT 3.5 model is extremely good", - // highlight-next-line - "format": "api", - "settings": {}, - "parameters": {}, - "metadata": { - "author": "OpenAI", - "tags": ["General", "Big Context Length"] - }, - // highlight-start - "engine": "openai" - // highlight-end -} -``` - -### 3. Start the Model - -Restart Jan and navigate to the Hub. Locate your model and click the Use button. -![StartModel](./assets/03-start-model.png) - -### 4. Try Out the Integration of Jan and Azure OpenAI Service - -![Integration Demo](./assets/03-azureopenai-integration-demo.gif) diff --git a/docs/docs/guides/07-integrations/04-integrate-mistral-ai.mdx b/docs/docs/guides/07-integrations/04-integrate-mistral-ai.mdx deleted file mode 100644 index 14ddeaa75..000000000 --- a/docs/docs/guides/07-integrations/04-integrate-mistral-ai.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Integrate Mistral AI with Jan -slug: /guides/integrations/mistral-ai -description: Guide to integrate Mistral AI with Jan -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - Mistral integration, - ] ---- - -## Quick Introduction - -[Mistral AI](https://docs.mistral.ai/) currently provides two ways of accessing their Large Language Models (LLM) - via their API or via open source models available on Hugging Face. In this guide, we will show you how to integrate Mistral AI with Jan using the API method. - -## Steps to Integrate Mistral AI with Jan - -### 1. Configure Mistral API key - -You can find your API keys in the [Mistral API Key](https://console.mistral.ai/user/api-keys/) and set the Mistral AI API key in `~/jan/engines/openai.json` file. - -```json title="~/jan/engines/openai.json" -{ - // highlight-start - "full_url": "https://api.mistral.ai/v1/chat/completions", - "api_key": "" - // highlight-end -} -``` - -### 2. Modify a Model JSON - -Navigate to the `~/jan/models` folder. Create a folder named ``, for example, `mistral-tiny` and create a `model.json` file inside the folder including the following configurations: - -- Ensure the filename must be `model.json`. -- Ensure the `id` property is set to the model id from Mistral AI. -- Ensure the `format` property is set to `api`. -- Ensure the `engine` property is set to `openai`. -- Ensure the `state` property is set to `ready`. - -```json title="~/jan/models/mistral-tiny/model.json" -{ - "sources": [ - { - "filename": "mistral-tiny", - "url": "https://mistral.ai/" - } - ], - "id": "mistral-tiny", - "object": "model", - "name": "Mistral-7B-v0.2 (Tiny Endpoint)", - "version": "1.0", - "description": "Currently powered by Mistral-7B-v0.2, a better fine-tuning of the initial Mistral-7B released, inspired by the fantastic work of the community.", - // highlight-next-line - "format": "api", - "settings": {}, - "parameters": {}, - "metadata": { - "author": "Mistral AI", - "tags": ["General", "Big Context Length"] - }, - // highlight-start - "engine": "openai" - // highlight-end -} -``` - -:::tip - -Mistral AI provides different endpoints. Please check out their [endpoint documentation](https://docs.mistral.ai/platform/endpoints/) to find the one that suits your needs. In this example, we will use the `mistral-tiny` model. - -::: - -### 3. Start the Model - -Restart Jan and navigate to the Hub. Locate your model and click the Use button. - -![Mitral AI Tiny Model](assets/04-mistral-ai-tiny-hub.png) - -### 4. Try Out the Integration of Jan and Mistral AI - -![Mistral AI Integration Demo](assets/04-mistral-ai-integration-demo.gif) diff --git a/docs/docs/guides/07-integrations/05-integrate-lmstudio.mdx b/docs/docs/guides/07-integrations/05-integrate-lmstudio.mdx deleted file mode 100644 index 58e2f0be9..000000000 --- a/docs/docs/guides/07-integrations/05-integrate-lmstudio.mdx +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: Integrate LM Studio with Jan -slug: /guides/integrations/lmstudio -description: Guide to integrate LM Studio with Jan -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - LM Studio integration, - ] ---- - -## Quick Introduction - -With [LM Studio](https://lmstudio.ai/), you can discover, download, and run local Large Language Models (LLMs). In this guide, we will show you how to integrate and use your current models on LM Studio with Jan using 2 methods. The first method is integrating LM Studio server with Jan UI. The second method is migrating your downloaded model from LM Studio to Jan. We will use the [Phi 2 - GGUF](https://huggingface.co/TheBloke/phi-2-GGUF) model on Hugging Face as an example. - -## Steps to Integrate LM Studio Server with Jan UI - -### 1. Start the LM Studio Server - -1. Navigate to the `Local Inference Server` on the LM Studio application. -2. Select the model you want to use. -3. Start the server after configuring the server port and options. - -![LM Studio Server](assets/05-setting-lmstudio-server.gif) - -

- -Modify the `openai.json` file in the `~/jan/engines` folder to include the full URL of the LM Studio server. - -```json title="~/jan/engines/openai.json" -{ - "full_url": "http://localhost:/v1/chat/completions" -} -``` - -:::tip - -- Replace `` with the port number you set in the LM Studio server. The default port is `1234`. - -::: - -### 2. Modify a Model JSON - -Navigate to the `~/jan/models` folder. Create a folder named ``, for example, `lmstudio-phi-2` and create a `model.json` file inside the folder including the following configurations: - -- Set the `format` property to `api`. -- Set the `engine` property to `openai`. -- Set the `state` property to `ready`. - -```json title="~/jan/models/lmstudio-phi-2/model.json" -{ - "sources": [ - { - "filename": "phi-2-GGUF", - "url": "https://huggingface.co/TheBloke/phi-2-GGUF" - } - ], - "id": "lmstudio-phi-2", - "object": "model", - "name": "LM Studio - Phi 2 - GGUF", - "version": "1.0", - "description": "TheBloke/phi-2-GGUF", - // highlight-next-line - "format": "api", - "settings": {}, - "parameters": {}, - "metadata": { - "author": "Microsoft", - "tags": ["General", "Big Context Length"] - }, - // highlight-start - "engine": "openai" - // highlight-end -} -``` - -### 3. Start the Model - -1. Restart Jan and navigate to the **Hub**. -2. Locate your model and click the **Use** button. - -![LM Studio Model](assets/05-lmstudio-run.png) - -### 4. Try Out the Integration of Jan and LM Studio - -![LM Studio Integration Demo](assets/05-lmstudio-integration-demo.gif) - -## Steps to Migrate Your Downloaded Model from LM Studio to Jan (version 0.4.6 and older) - -### 1. Migrate Your Downloaded Model - -1. Navigate to `My Models` in the LM Studio application and reveal the model folder. - -![Reveal-model-folder-lmstudio](assets/05-reveal-model-folder-lmstudio.gif) - -2. Copy the model folder that you want to migrate to `~/jan/models` folder. - -3. Ensure the folder name property is the same as the model name of `.gguf` filename by changing the folder name if necessary. For example, in this case, we changed foldername from `TheBloke` to `phi-2.Q4_K_S`. - -### 2. Start the Model - -1. Restart Jan and navigate to the **Hub**. Jan will automatically detect the model and display it in the **Hub**. -2. Locate your model and click the **Use** button to try the migrating model. - -![Demo](assets/05-demo-migrating-model.gif) - -## Steps to Pointing to the Downloaded Model of LM Studio from Jan (version 0.4.7+) - -Starting from version 0.4.7, Jan supports importing models using an absolute filepath, so you can directly use the model from the LM Studio folder. - -### 1. Reveal the Model Absolute Path - -Navigate to `My Models` in the LM Studio application and reveal the model folder. Then, you can get the absolute path of your model. - -![Reveal-model-folder-lmstudio](assets/05-reveal-model-folder-lmstudio.gif) - -### 2. Modify a Model JSON - -Navigate to the `~/jan/models` folder. Create a folder named ``, for example, `phi-2.Q4_K_S` and create a `model.json` file inside the folder including the following configurations: - -- Ensure the `id` property matches the folder name you created. -- Ensure the `url` property is the direct binary download link ending in `.gguf`. Now, you can use the absolute filepath of the model file. In this example, the absolute filepath is `/Users//.cache/lm-studio/models/TheBloke/phi-2-GGUF/phi-2.Q4_K_S.gguf`. -- Ensure the `engine` property is set to `nitro`. - -```json -{ - "object": "model", - "version": 1, - "format": "gguf", - "sources": [ - { - "filename": "phi-2.Q4_K_S.gguf", - "url": "" - } - ], - "id": "phi-2.Q4_K_S", - "name": "phi-2.Q4_K_S", - "created": 1708308111506, - "description": "phi-2.Q4_K_S - user self import model", - "settings": { - "ctx_len": 4096, - "embedding": false, - "prompt_template": "{system_message}\n### Instruction: {prompt}\n### Response:", - "llama_model_path": "phi-2.Q4_K_S.gguf" - }, - "parameters": { - "temperature": 0.7, - "top_p": 0.95, - "stream": true, - "max_tokens": 2048, - "stop": [""], - "frequency_penalty": 0, - "presence_penalty": 0 - }, - "metadata": { - "size": 1615568736, - "author": "User", - "tags": [] - }, - "engine": "nitro" -} -``` - -:::warning - -- If you are using Windows, you need to use double backslashes in the url property, for example: `C:\\Users\\username\\filename.gguf`. - -::: - - -### 3. Start the Model - -1. Restart Jan and navigate to the **Hub**. -2. Jan will automatically detect the model and display it in the **Hub**. -3. Locate your model and click the **Use** button to try the migrating model. - -![Demo](assets/05-demo-pointing-model.gif) diff --git a/docs/docs/guides/07-integrations/06-integrate-ollama.mdx b/docs/docs/guides/07-integrations/06-integrate-ollama.mdx deleted file mode 100644 index e55c3e49f..000000000 --- a/docs/docs/guides/07-integrations/06-integrate-ollama.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Integrate Ollama with Jan -slug: /guides/integrations/ollama -description: Guide to integrate Ollama with Jan -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - Ollama integration, - ] ---- - -## Quick Introduction - -With [Ollama](https://ollama.com/), you can run large language models locally. In this guide, we will show you how to integrate and use your current models on Ollama with Jan using 2 methods. The first method is integrating Ollama server with Jan UI. The second method is migrating your downloaded model from Ollama to Jan. We will use the [llama2](https://ollama.com/library/llama2) model as an example. - -## Steps to Integrate Ollama Server with Jan UI - -### 1. Start the Ollama Server - -1. Select the model you want to use from the [Ollama library](https://ollama.com/library). -2. Run your model by using the following command: - -```bash -ollama run -``` - -3. According to the [Ollama documentation on OpenAI compatibility](https://github.com/ollama/ollama/blob/main/docs/openai.md), you can use the `http://localhost:11434/v1/chat/completions` endpoint to interact with the Ollama server. Thus, modify the `openai.json` file in the `~/jan/engines` folder to include the full URL of the Ollama server. - -```json title="~/jan/engines/openai.json" -{ - "full_url": "http://localhost:11434/v1/chat/completions" -} -``` - -### 2. Modify a Model JSON - -1. Navigate to the `~/jan/models` folder. -2. Create a folder named ``, for example, `lmstudio-phi-2`. -3. Create a `model.json` file inside the folder including the following configurations: - -- Set the `id` property to the model name as Ollama model name. -- Set the `format` property to `api`. -- Set the `engine` property to `openai`. -- Set the `state` property to `ready`. - -```json title="~/jan/models/llama2/model.json" -{ - "sources": [ - { - "filename": "llama2", - "url": "https://ollama.com/library/llama2" - } - ], - // highlight-next-line - "id": "llama2", - "object": "model", - "name": "Ollama - Llama2", - "version": "1.0", - "description": "Llama 2 is a collection of foundation language models ranging from 7B to 70B parameters.", - // highlight-next-line - "format": "api", - "settings": {}, - "parameters": {}, - "metadata": { - "author": "Meta", - "tags": ["General", "Big Context Length"] - }, - // highlight-next-line - "engine": "openai" -} -``` - -### 3. Start the Model - -1. Restart Jan and navigate to the **Hub**. -2. Locate your model and click the **Use** button. - -![Ollama Model](assets/06-ollama-run.png) - -### 4. Try Out the Integration of Jan and Ollama - -![Ollama Integration Demo](assets/06-ollama-integration-demo.gif) - diff --git a/docs/docs/guides/07-integrations/assets/01-activate-model.png b/docs/docs/guides/07-integrations/assets/01-activate-model.png deleted file mode 100644 index 417f4bf3c..000000000 Binary files a/docs/docs/guides/07-integrations/assets/01-activate-model.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/01-continue-ask.png b/docs/docs/guides/07-integrations/assets/01-continue-ask.png deleted file mode 100644 index d61c42974..000000000 Binary files a/docs/docs/guides/07-integrations/assets/01-continue-ask.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/01-start-model.png b/docs/docs/guides/07-integrations/assets/01-start-model.png deleted file mode 100644 index bc807a960..000000000 Binary files a/docs/docs/guides/07-integrations/assets/01-start-model.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/02-openrouter-dolphin-trial.gif b/docs/docs/guides/07-integrations/assets/02-openrouter-dolphin-trial.gif deleted file mode 100644 index cca62b75f..000000000 Binary files a/docs/docs/guides/07-integrations/assets/02-openrouter-dolphin-trial.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/02-openrouter-dolphin.png b/docs/docs/guides/07-integrations/assets/02-openrouter-dolphin.png deleted file mode 100644 index 1fc3b2f7f..000000000 Binary files a/docs/docs/guides/07-integrations/assets/02-openrouter-dolphin.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/03-azureopenai-endpoint-key.png b/docs/docs/guides/07-integrations/assets/03-azureopenai-endpoint-key.png deleted file mode 100644 index b762da3d2..000000000 Binary files a/docs/docs/guides/07-integrations/assets/03-azureopenai-endpoint-key.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/03-azureopenai-integration-demo.gif b/docs/docs/guides/07-integrations/assets/03-azureopenai-integration-demo.gif deleted file mode 100644 index 05cdb1147..000000000 Binary files a/docs/docs/guides/07-integrations/assets/03-azureopenai-integration-demo.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/03-start-model.png b/docs/docs/guides/07-integrations/assets/03-start-model.png deleted file mode 100644 index 65f44734b..000000000 Binary files a/docs/docs/guides/07-integrations/assets/03-start-model.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/03-viewcode.png b/docs/docs/guides/07-integrations/assets/03-viewcode.png deleted file mode 100644 index 6613499dd..000000000 Binary files a/docs/docs/guides/07-integrations/assets/03-viewcode.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/04-mistral-ai-integration-demo.gif b/docs/docs/guides/07-integrations/assets/04-mistral-ai-integration-demo.gif deleted file mode 100644 index 015167e2a..000000000 Binary files a/docs/docs/guides/07-integrations/assets/04-mistral-ai-integration-demo.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/04-mistral-ai-tiny-hub.png b/docs/docs/guides/07-integrations/assets/04-mistral-ai-tiny-hub.png deleted file mode 100644 index 1ae377d70..000000000 Binary files a/docs/docs/guides/07-integrations/assets/04-mistral-ai-tiny-hub.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/05-demo-migrating-model.gif b/docs/docs/guides/07-integrations/assets/05-demo-migrating-model.gif deleted file mode 100644 index 985755e47..000000000 Binary files a/docs/docs/guides/07-integrations/assets/05-demo-migrating-model.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/05-demo-pointing-model.gif b/docs/docs/guides/07-integrations/assets/05-demo-pointing-model.gif deleted file mode 100644 index 137fb955a..000000000 Binary files a/docs/docs/guides/07-integrations/assets/05-demo-pointing-model.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/05-lmstudio-integration-demo.gif b/docs/docs/guides/07-integrations/assets/05-lmstudio-integration-demo.gif deleted file mode 100644 index 445ea3416..000000000 Binary files a/docs/docs/guides/07-integrations/assets/05-lmstudio-integration-demo.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/05-lmstudio-run.png b/docs/docs/guides/07-integrations/assets/05-lmstudio-run.png deleted file mode 100644 index 721581f72..000000000 Binary files a/docs/docs/guides/07-integrations/assets/05-lmstudio-run.png and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/05-reveal-model-folder-lmstudio.gif b/docs/docs/guides/07-integrations/assets/05-reveal-model-folder-lmstudio.gif deleted file mode 100644 index 4c1ee85fc..000000000 Binary files a/docs/docs/guides/07-integrations/assets/05-reveal-model-folder-lmstudio.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/05-setting-lmstudio-server.gif b/docs/docs/guides/07-integrations/assets/05-setting-lmstudio-server.gif deleted file mode 100644 index 63084be01..000000000 Binary files a/docs/docs/guides/07-integrations/assets/05-setting-lmstudio-server.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/06-ollama-integration-demo.gif b/docs/docs/guides/07-integrations/assets/06-ollama-integration-demo.gif deleted file mode 100644 index 708f2058a..000000000 Binary files a/docs/docs/guides/07-integrations/assets/06-ollama-integration-demo.gif and /dev/null differ diff --git a/docs/docs/guides/07-integrations/assets/06-ollama-run.png b/docs/docs/guides/07-integrations/assets/06-ollama-run.png deleted file mode 100644 index 7f18e1b15..000000000 Binary files a/docs/docs/guides/07-integrations/assets/06-ollama-run.png and /dev/null differ diff --git a/docs/docs/guides/08-troubleshooting/01-stuck-on-broken-build.mdx b/docs/docs/guides/08-troubleshooting/01-stuck-on-broken-build.mdx deleted file mode 100644 index 7f6100a67..000000000 --- a/docs/docs/guides/08-troubleshooting/01-stuck-on-broken-build.mdx +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: Stuck on a Broken Build -slug: /troubleshooting/stuck-on-broken-build -description: Troubleshooting steps to resolve issues related to broken builds. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - troubleshooting, - ] ---- - -{/* Imports */} -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -The following steps will help you troubleshoot and resolve issues related to broken builds. - -1. Unistall Jan - - - - - Delete Jan from your `/Applications` folder - - - - - To uninstall Jan on Windows, use the [Windows Control Panel](https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98). - - - - - To uninstall Jan on Linux, you should use your package manager's uninstall or remove option. For Debian/Ubuntu-based distributions, if you installed Jan via the `.deb` package, you can uninstall Jan using the following command: - ```bash - sudo apt-get remove jan - ``` - - - - -2. Delete the application data, cache, and user data folders - - - - - ```bash - # Step 1: Delete the application data - ## Newer versions - rm -rf ~/Library/Application\ Support/jan - ## Versions 0.2.0 and older - rm -rf ~/Library/Application\ Support/jan-electron - - # Step 2: Clear application cache - rm -rf ~/Library/Caches/jan* - - # Step 3: Remove all user data - rm -rf ~/jan - ``` - - - - - ```bash - # You can delete the `/Jan` directory in Windows's AppData Directory by visiting the following path `%APPDATA%\Jan` - cd C:\Users\%USERNAME%\AppData\Roaming - rmdir /S jan - ``` - - - - - ```bash - # You can delete the user data folders located at the following `~/jan` - rm -rf ~/jan - ``` - - - - -3. If you are using version before `0.4.2` you need to run the following commands - - - - - ```bash - ps aux | grep nitro - # Looks for processes like `nitro` and `nitro_arm_64`, and kill them one by one by process ID - kill -9 - ``` - - - - - ```bash - # Find the process ID (PID) of the nitro process by filtering the list by process name - tasklist | findstr "nitro" - # Once you have the PID of the process you want to terminate, run the `taskkill` - taskkill /F /PID - ``` - - - - - ```bash - ps aux | grep nitro - # Looks for processes like `nitro` and `nitro_arm_64`, and kill them one by one by process ID - kill -9 - ``` - - - - -4. Download the latest version from via our homepage, [https://jan.ai/](https://jan.ai/). - -:::note - -If Jan is installed on multiple user accounts on your device, ensure it's completely removed from all shared space before reinstalling. - -::: diff --git a/docs/docs/guides/08-troubleshooting/02-somethings-amiss.mdx b/docs/docs/guides/08-troubleshooting/02-somethings-amiss.mdx deleted file mode 100644 index 4e16e362a..000000000 --- a/docs/docs/guides/08-troubleshooting/02-somethings-amiss.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Something's Amiss -slug: /troubleshooting/somethings-amiss -description: Troubleshooting "Something's amiss". -keywords: [ - jan ai failed to fetch, - failed to fetch error, - jan ai error, - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - convZ - ersational AI, - no-subscription fee, - large language model, - troubleshooting, - ] ---- - -{/* Imports */} -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -Previously labelled "Failed to fetch" error. - -You may receive a "Something's amiss" response when you first start chatting with a selected model. - -This may occur due to several reasons. Please follow these steps to resolve it: - -1. Ensure you are on the latest version of Mac, Windows, or Ubuntu OS version - - - Upgrading to the latest version has resolved this issue for most people - -2. Select a model that is smaller than 80% of your hardware V/RAM. - - - For example, if you have an 8GB machine, you should select models smaller than 6GB. - -3. Install the latest [Nightly release](https://jan.ai/install/nightly/) - - - If you are re-installing Jan, it can help to [clear the application cache](https://jan.ai/troubleshooting/stuck-on-broken-build/). - -4. Ensure your V/RAM is accessible by the application (some people have virtual RAM). - -5. If you are on Nvidia GPUs, please download [Cuda](https://developer.nvidia.com/cuda-downloads). - -6. If you're using Linux, please ensure that your system meets the following requirements gcc 11, g++ 11, cpp 11, or higher, refer to this [link](https://jan.ai/guides/troubleshooting/gpu-not-used/#specific-requirements-for-linux) for more information. - -7. When [checking app logs](https://jan.ai/troubleshooting/how-to-get-error-logs/), if you encounter the error log `Bind address failed at 127.0.0.1:3928`, it indicates that the port used by Nitro might already be in use. Use the following commands to check the port status: - - - - - ```bash - netstat -an | grep 3928 - ``` - - - - - ```sh - netstat -ano | find "3928" - tasklist /fi "PID eq 3928" - ``` - - - - - ```sh - netstat -anpe | grep "3928" - ``` - - - - -:::tip - -Jan uses the following ports: - -- Nitro: 3928 -- Jan API Server: 1337 -- Jan Documentation: 3001 - -::: diff --git a/docs/docs/guides/08-troubleshooting/03-gpu-not-used.mdx b/docs/docs/guides/08-troubleshooting/03-gpu-not-used.mdx deleted file mode 100644 index 53638027b..000000000 --- a/docs/docs/guides/08-troubleshooting/03-gpu-not-used.mdx +++ /dev/null @@ -1,193 +0,0 @@ ---- -title: Jan is Not Using GPU -slug: /troubleshooting/gpu-not-used -description: Jan is not using GPU. -keywords: [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - convZ - ersational AI, - no-subscription fee, - large language model, - troubleshooting, - using GPU, - ] ---- - -This guide provides steps to troubleshoot and resolve issues when Jan app does not utilize the GPU on Windows and Linux systems. - -## Requirements for Running Jan in GPU Mode on Windows and Linux - -### NVIDIA Driver - -Ensure that you have installed the NVIDIA driver that supports CUDA 11.7 or higher. For a detailed of CUDA compatibility, please refer [here](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#binary-compatibility__table-toolkit-driver). - -To verify, open PowerShell or Terminal and enter the following command: - -```bash -nvidia-smi -``` - -If you see a result similar to the following, you have successfully installed the NVIDIA driver: - -```bash -+-----------------------------------------------------------------------------+ -| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.7 | -|-------------------------------+----------------------+----------------------+ -| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | -| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | -| | | MIG M. | -|===============================+======================+======================| -| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A | -| 0% 51C P8 10W / 170W | 364MiB / 7982MiB | 0% Default | -| | | N/A | -+-------------------------------+----------------------+----------------------+ -``` - -### CUDA Toolkit - -Ensure that you have installed the CUDA toolkit that is compatible with your NVIDIA driver. For a detailed of CUDA compatibility, please refer [here](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#binary-compatibility__table-toolkit-driver). - -To verify, open PowerShell or Terminal and enter the following command: - -```bash -nvcc --version -``` - -If you see a result similar to the following, you have successfully installed CUDA: - -```bash -nvcc: NVIDIA (R) Cuda compiler driver - -Cuda compilation tools, release 11.7, V11.7.100 -Build cuda_11.7.r11.7/compiler.30033411_0 -``` - -### Specific Requirements for Linux - -**GCC and G++ Version**: Ensure that you have installed `gcc-11`, `g++-11`, `cpp-11` or higher, refer [here](https://gcc.gnu.org/projects/cxx-status.html#cxx17). For Ubuntu, you can install g++ 11 by following the instructions [here](https://linuxconfig.org/how-to-switch-between-multiple-gcc-and-g-compiler-versions-on-ubuntu-20-04-lts-focal-fossa). - -```bash -# Example for ubuntu -# Add the following PPA repository -sudo add-apt-repository ppa:ubuntu-toolchain-r/test -# Update the package list -sudo apt update -# Install g++ 11 -sudo apt-get install -y gcc-11 g++-11 cpp-11 - -# Update the default g++ version -sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 \ - --slave /usr/bin/g++ g++ /usr/bin/g++-11 \ - --slave /usr/bin/gcov gcov /usr/bin/gcov-11 \ - --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 \ - --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 -sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-11 110 -# Check the default g++ version -g++ --version -``` - -**Post-Installation Actions**: You must add the `.so` libraries of CUDA to the `LD_LIBRARY_PATH` environment variable by following the [Post-installation Actions instruction](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions). - -```bash -# Example for ubuntu with CUDA 11.7 -sudo nano /etc/environment -# Add /usr/local/cuda-11.7/bin to the PATH environment variable - the first line -# Add the following line to the end of the file -LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64 - -# Save and exit -# Restart your computer or log out and log in again, the changes will take effect -``` - -## Switching Between CPU/GPU Modes in Jan - -By default, Jan runs in CPU mode. Upon start, Jan checks if your system is capable of running in GPU mode. If compatible, GPU mode is enabled automatically, and the GPU with the highest VRAM is selected. This setting can be verified in the `Settings` > `Advanced` section. - -![jan-gpu-enable-setting](../../../static/img/usage/jan-gpu-enable-setting.png) - -If you find that GPU mode is available but not enabled by default, consider the following troubleshooting steps: - -:::tip - -1. Check if you have installed the NVIDIA driver that supports CUDA 11.7 or higher. For a detailed of CUDA compatibility, please refer [here](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#binary-compatibility__table-toolkit-driver). - -2. Ensure that the CUDA toolkit is installed and compatible with your NVIDIA driver. For a detailed of CUDA compatibility, please refer [here](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#binary-compatibility__table-toolkit-driver). - -3. For Linux, it's crucial to add the `.so` libraries of CUDA and the CUDA compatible driver to the `LD_LIBRARY_PATH` environment variable. For Windows, users should ensure that the `.dll` libraries of CUDA and the CUDA compatible driver are included in the PATH environment variable. Usually, when installing CUDA on Windows, this environment variable is automatically added, but if you do not see it, you can add it manually by referring [here](https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#environment-setup). - -::: - -## Checking GPU Settings in Jan - -1. To check the current GPU settings detected by Jan, navigate to `Settings` > `Advanced` > `Open App Directory` - -

- -![OpenAppDirectory](../../../static/img/usage/jan-open-home-directory.png) - -

- -2. Open the `settings.json` file under the `settings` folder. The following is an example of the `settings.json` file: - -

- -```json title="~/jan/settings/settings.json" -{ - "notify": true, - "run_mode": "gpu", - "nvidia_driver": { - "exist": true, - "version": "531.18" - }, - "cuda": { - "exist": true, - "version": "12" - }, - "gpus": [ - { - "id": "0", - "vram": "12282" - }, - { - "id": "1", - "vram": "6144" - }, - { - "id": "2", - "vram": "6144" - } - ], - "gpu_highest_vram": "0" -} -``` - -:::tip - -Troubleshooting tips: - -- Ensure the `nvidia_driver` and `cuda` fields indicate that requirements software are installed. -- If the `gpus` field is empty or does not list your GPU, verify the installation of the NVIDIA driver and CUDA toolkit. -- For further assistance, please share the `settings.json` with us. - -::: - -## Tested Configurations - -- Windows 11 Pro 64-bit, NVIDIA GeForce RTX 4070ti GPU, CUDA 12.2, NVIDIA driver 531.18 (Bare metal) -- Ubuntu 22.04 LTS, NVIDIA GeForce RTX 4070ti GPU, CUDA 12.2, NVIDIA driver 545 (Bare metal) -- Ubuntu 20.04 LTS, NVIDIA GeForce GTX 1660ti GPU, CUDA 12.1, NVIDIA driver 535 (Proxmox VM passthrough GPU) -- Ubuntu 18.04 LTS, NVIDIA GeForce GTX 1660ti GPU, CUDA 12.1, NVIDIA driver 535 (Proxmox VM passthrough GPU) - -## Common Issues and Solutions - -1. If the issue persists, please install the [Nightly version](/install/nightly) instead. - -2. If the issue persists, ensure your (V)RAM is accessible by the application. Some folks have virtual RAM and need additional configuration. - -3. If you are facing issues with the installation of RTX issues, please update the NVIDIA driver that supports CUDA 11.7 or higher. Ensure that the CUDA path is added to the environment variable. - -4. Get help in [Jan Discord](https://discord.gg/mY69SZaMaC). diff --git a/docs/docs/guides/08-troubleshooting/04-how-to-get-error-logs.mdx b/docs/docs/guides/08-troubleshooting/04-how-to-get-error-logs.mdx deleted file mode 100644 index 7eaebf24c..000000000 --- a/docs/docs/guides/08-troubleshooting/04-how-to-get-error-logs.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: How to Get Error Logs -slug: /troubleshooting/how-to-get-error-logs -description: How to get error logs. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - troubleshooting, - error logs, - app logs, - server logs, - ] ---- - -To get the error logs of Jan, you can navigate to the `~/jan/logs` directory through `Settings` > `Advanced` > `Open App Directory`. - -- Open the `app.log` file if you are using UI. -- Open the `error.log` file for error logs if you are using the local API server. - -```bash -# Using UI -tail -n 50 ~/jan/logs/app.log - -# Using local api server -tail -n 50 ~/jan/logs/server.log -``` - -:::note -- When sharing logs or error information, make sure to redact any private or sensitive information. -::: - -If you have any questions or are looking for support, please don't hesitate to contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ) or create a [new issue in our GitHub repository](https://github.com/janhq/jan/issues/new/choose). diff --git a/docs/docs/guides/08-troubleshooting/05-permission-denied.mdx b/docs/docs/guides/08-troubleshooting/05-permission-denied.mdx deleted file mode 100644 index 07452d822..000000000 --- a/docs/docs/guides/08-troubleshooting/05-permission-denied.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Permission Denied -slug: /troubleshooting/permission-denied -description: Permission denied. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - troubleshooting, - permission denied, - ] ---- - -When you run Jan, you may encounter the following error: - -```bash -Uncaught (in promise) Error: Error invoking layout-480796bff433a3a3.js:538 remote method 'installExtension': -Error Package /Applications/Jan.app/Contents/Resources/app.asar.unpacked/pre-install/janhq-assistant-extension-1.0.0.tgz does not contain a valid manifest: -Error EACCES: permission denied, mkdtemp '/Users/username/.npm/_cacache/tmp/ueCMn4' -``` - -This error indicates a permission issue during the installation process. To fix this issue, you can run the following command to change ownership of the `~/.npm` directory to the current user: - -```bash -sudo chown -R $(whoami) ~/.npm -``` diff --git a/docs/docs/guides/08-troubleshooting/06-unexpected-token.mdx b/docs/docs/guides/08-troubleshooting/06-unexpected-token.mdx deleted file mode 100644 index 1de609ffa..000000000 --- a/docs/docs/guides/08-troubleshooting/06-unexpected-token.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -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, - ] ---- - -You may receive an error response `Error occurred: Unexpected token '<', "/nitro` and run the nitro manually and see if you get any error messages. -3. Resolve the error messages you get from the nitro and see if the issue persists. -4. Reopen the Jan app and see if the issue is resolved. -5. If the issue persists, please share with us the [app logs](https://jan.ai/troubleshooting/how-to-get-error-logs/) via [Jan Discord](https://discord.gg/mY69SZaMaC). diff --git a/docs/docs/guides/09-advanced-settings/01-https-proxy.mdx b/docs/docs/guides/09-advanced-settings/01-https-proxy.mdx deleted file mode 100644 index 35f4c30f9..000000000 --- a/docs/docs/guides/09-advanced-settings/01-https-proxy.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: HTTPS Proxy -slug: /guides/advanced-settings/https-proxy -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - advanced-settings, - https-proxy, - ] ---- - -In this guide, we will show you how to set up your own HTTPS proxy server and configure Jan to use it. - -## Why HTTPS Proxy? -An HTTPS proxy helps you to maintain your privacy and security while still being able to browser the internet circumventing geographical restrictions. - -## Setting Up Your Own HTTPS Proxy Server -In this section, we will show you a high-level overview of how to set up your own HTTPS proxy server. This guide focus on using Squid as a popular and open-source proxy server software, but there are other software options you might consider based on your needs and preferences. - -### Step 1: Choosing a Server -Firstly, you need to choose a server to host your proxy server. We recommend using a cloud provider like Amazon AWS, Google Cloud, Microsoft Azure, Digital Ocean, etc. Ensure that your server has a public IP address and is accessible from the internet. - -### Step 2: Installing Squid -```bash -sudo apt-get update -sudo apt-get install squid -``` - -### Step 3: Configure Squid for HTTPS - -To enable HTTPS, you will need to configure Squid with SSL support. - -- Generate SSL certificate - -Squid requires an SSL certificate to be able to handle HTTPS traffic. You can generate a self-signed certificate or obtain one from a Certificate Authority (CA). For a self-signed certificate, you can use OpenSSL: - -```bash -openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout squid-proxy.pem -out squid-proxy.pem -``` - -- Configure Squid to use the SSL certificate: Edit the Squid configuration file `/etc/squid/squid.conf` to include the path to your SSL certificate and enable the HTTPS port: - -```bash -http_port 3128 ssl-bump cert=/path/to/your/squid-proxy.pem -ssl_bump server-first all -ssl_bump bump all -``` - -- Enable SSL Bumping: To intercept HTTPS traffic, Squid uses a process called SSL Bumping. This process allows Squid to decrypt and re-encrypt HTTPS traffic. To enable SSL Bumping, ensure the `ssl_bump` directives are configured correctly in your `squid.conf` file. - -### Step 4 (Optional): Configure ACLs and Authentication - -- Access Control Lists (ACLs): You can define rules to control who can access your proxy. This is done by editing the squid.conf file and defining ACLs: - -```bash -acl allowed_ips src "/etc/squid/allowed_ips.txt" -http_access allow allowed_ips -``` - -- Authentication: If you want to add an authentication layer, Squid supports several authentication schemes. Basic authentication setup might look like this: - -```bash -auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords -acl authenticated proxy_auth REQUIRED -http_access allow authenticated -``` - -### Step 5: Restart and Test Your Proxy - -After configuring, restart Squid to apply the changes: - -```bash -sudo systemctl restart squid -``` - -To test, configure your browser or another client to use the proxy server with its IP address and port (default is 3128). Check if you can access the internet through your proxy. - -:::tip - -Tips for Secure Your Proxy: -- Firewall rules: Ensure that only intended users or IP addresses can connect to your proxy server. This can be achieved by setting up appropriate firewall rules. -- Regular updates: Keep your server and proxy software updated to ensure that you are protected against known vulnerabilities. -- Monitoring and logging: Monitor your proxy server for unusual activity and enable logging to keep track of the traffic passing through your proxy. - -::: - -## Setting Up Jan to Use Your HTTPS Proxy - -Once you have your HTTPS proxy server set up, you can configure Jan to use it. Navigate to `Settings` > `Advanced Settings` and specify the HTTPS proxy (proxy auto-configuration and SOCKS not supported). - -You can turn on the feature `Ignore SSL Certificates` if you are using a self-signed certificate. This feature allows self-signed or unverified certificates. - -![01-https-proxy-jan-configure](./assets/01-https-proxy-jan-configure.png) \ No newline at end of file diff --git a/docs/docs/guides/09-advanced-settings/README.mdx b/docs/docs/guides/09-advanced-settings/README.mdx deleted file mode 100644 index ba3da9bb1..000000000 --- a/docs/docs/guides/09-advanced-settings/README.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Advanced Settings -slug: /guides/advanced-settings/ -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - advanced-settings, - ] ---- - -This guide will show you how to use the advanced settings in Jan. - -## Keyboard Shortcuts - -Keyboard shortcuts are a great way to speed up your workflow. Here are some of the keyboard shortcuts that you can use in Jan. - -| Combination | Description | -| --------------- | -------------------------------------------------- | -| `⌘ E` | Show list your models | -| `⌘ K` | Show list navigation pages | -| `⌘ B` | Toggle collapsible left panel | -| `⌘ ,` | Navigate to setting page | -| `Enter` | Send a message | -| `Shift + Enter` | Insert new line in input box | -| `Arrow Up` | Navigate to previous option (within search dialog) | -| `Arrow Down` | Navigate to next option (within search dialog) | - -

- -:::note -`⌘` is the command key on macOS, and `Ctrl` on Windows. -::: - -## Experimental Mode - -Experimental mode allows you to enable experimental features that may be unstable tested. - -## Jan Data Folder - -The Jan data folder is the location where messages, model configurations, and other user data are placed. You can change the location of the data folder to a different location. - -![00-changing-folder](./assets/00-changing-folder.gif) - -## HTTPS Proxy & Ignore SSL Certificate - -HTTPS Proxy allows you to use a proxy server to connect to the internet. You can also ignore SSL certificates if you are using a self-signed certificate. -Please check out the guide on [how to set up your own HTTPS proxy server and configure Jan to use it](../advanced-settings/https-proxy) for more information. - -## Clear Logs - -Clear logs will remove all logs from the Jan application. - -## Reset To Factory Default - -Reset the application to its original state, deleting all your usage data, including model customizations and conversation history. This action is irreversible and recommended only if the application is in a corrupted state. - -![00-reset-factory-settings](./assets/00-reset-factory-settings.gif) diff --git a/docs/docs/guides/09-advanced-settings/assets/00-changing-folder.gif b/docs/docs/guides/09-advanced-settings/assets/00-changing-folder.gif deleted file mode 100644 index ac280a5c3..000000000 Binary files a/docs/docs/guides/09-advanced-settings/assets/00-changing-folder.gif and /dev/null differ diff --git a/docs/docs/guides/09-advanced-settings/assets/00-reset-factory-settings.gif b/docs/docs/guides/09-advanced-settings/assets/00-reset-factory-settings.gif deleted file mode 100644 index 81760848d..000000000 Binary files a/docs/docs/guides/09-advanced-settings/assets/00-reset-factory-settings.gif and /dev/null differ diff --git a/docs/docs/guides/09-advanced-settings/assets/01-https-proxy-jan-configure.png b/docs/docs/guides/09-advanced-settings/assets/01-https-proxy-jan-configure.png deleted file mode 100644 index 25e0f7660..000000000 Binary files a/docs/docs/guides/09-advanced-settings/assets/01-https-proxy-jan-configure.png and /dev/null differ diff --git a/docs/docs/guides/assets/janOpenAppDirectory.gif b/docs/docs/guides/assets/janOpenAppDirectory.gif new file mode 100644 index 000000000..c71d1a9c2 Binary files /dev/null and b/docs/docs/guides/assets/janOpenAppDirectory.gif differ diff --git a/docs/docs/guides/assets/janSwitchCPUtoGPU.gif b/docs/docs/guides/assets/janSwitchCPUtoGPU.gif new file mode 100644 index 000000000..41cc099d4 Binary files /dev/null and b/docs/docs/guides/assets/janSwitchCPUtoGPU.gif differ diff --git a/docs/docs/guides/06-using-extensions/01-extension-settings.md b/docs/docs/guides/extensions/extensions.mdx similarity index 53% rename from docs/docs/guides/06-using-extensions/01-extension-settings.md rename to docs/docs/guides/extensions/extensions.mdx index 4e36415dd..63b71b390 100644 --- a/docs/docs/guides/06-using-extensions/01-extension-settings.md +++ b/docs/docs/guides/extensions/extensions.mdx @@ -1,18 +1,21 @@ --- -title: Extension Settings -slug: /guides/using-extensions/extension-settings/ -description: Configure settings for extensions. +title: What are Jan Extensions? +slug: /extensions +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 1 keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, - extension settings, + large language models, + Jan Extensions, + Extensions, ] --- @@ -22,33 +25,37 @@ The current Jan Desktop Client has some default extensions built on top of this You can find the default extensions in the `Settings` > `Extensions`. -![Extensions](./assets/01-extension-settings.png) +## List of Default Extensions -### List of Default Extensions - -| Extension Name | Version | Description | Source Code Link | -| ---------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | -| Assistant Extension | v1.0.0 | This extension enables assistants, including Jan, a default assistant that can call all downloaded models. | [Link to Source](https://github.com/janhq/jan/tree/main/extensions/assistant-extension) | -| Conversational Extension | v1.0.0 | This extension enables conversations and state persistence via your filesystem. | [Link to Source](https://github.com/janhq/jan/tree/main/extensions/conversational-extension) | -| Inference Nitro Extension | v1.0.0 | This extension embeds Nitro, a lightweight (3mb) inference engine written in C++. See [nitro.jan.ai](nitro.jan.ai) | [Link to Source](https://github.com/janhq/jan/tree/main/extensions/inference-nitro-extension) | -| Inference Openai Extension | v1.0.0 | This extension enables OpenAI chat completion API calls | [Link to Source](https://github.com/janhq/jan/tree/main/extensions/inference-openai-extension) | -| Inference Triton Trt Llm Extension | v1.0.0 | This extension enables Nvidia's TensorRT-LLM as an inference engine option. | [Link to Source](https://github.com/janhq/jan/tree/main/extensions/inference-triton-trtllm-extension) | -| Model Extension | v1.0.22 | Model Management Extension provides model exploration and seamless downloads. | [Link to Source](https://github.com/janhq/jan/tree/main/extensions/model-extension) | -| Monitoring Extension | v1.0.9 | This extension provides system health and OS level data. | [Link to Source](https://github.com/janhq/jan/tree/main/extensions/monitoring-extension) | +| Extension Name | Version | Description | Source Code Link | +| ---------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| Assistant Extension | `v1.0.0` | This extension enables assistants, including Jan, a default assistant that can call all downloaded models. | [Link to Source](https://github.com/janhq/jan/tree/dev/extensions/assistant-extension) | +| Conversational Extension | `v1.0.0` | This extension enables conversations and state persistence via your filesystem. | [Link to Source](https://github.com/janhq/jan/tree/dev/extensions/conversational-extension) | +| Inference Nitro Extension | `v1.0.0` | This extension embeds Nitro, a lightweight (3 MB) inference engine in C++. See nitro.jan.ai. | [Link to Source](https://github.com/janhq/jan/tree/dev/extensions/inference-nitro-extension) | +| Inference Openai Extension | `v1.0.0` | This extension enables OpenAI chat completion API calls. | [Link to Source](https://github.com/janhq/jan/tree/dev/extensions/inference-openai-extension) | +| Inference Triton Trt Llm Extension | `v1.0.0` | This extension enables Nvidia's TensorRT-LLM as an inference engine option. | [Link to Source](https://github.com/janhq/jan/tree/dev/extensions/inference-triton-trtllm-extension) | +| Model Extension | `v1.0.22` | Model Management Extension provides model exploration and seamless downloads. | [Link to Source](https://github.com/janhq/jan/tree/dev/extensions/model-extension) | +| Monitoring Extension | `v1.0.9` | This extension offers system health and OS-level data. | [Link to Source](https://github.com/janhq/jan/tree/dev/extensions/monitoring-extension) | ## Configure Extension Settings -You can configure the extension settings by modifying the `extensions.json` file under the `~/jan/extensions` directory including the following configurations: +To configure extension settings: -- `_active`: true means the extension is enabled. If you want to disable an extension, you can set it to false. -- `listeners`: {} is the default value for listeners. -- `origin`: the path to the extension file. -- `installOptions`: configure the installOptions with version and fullMetadata. -- `name`: the name of the extension. -- `version`: the version of the extension. -- `main`: the path to the main file of the extension. -- `description`: the description of the extension. -- `url`: the url of the extension. +1. Navigate to the `~/jan/extensions`. +2. Open the `extensions.json` file +3. Edit the file with options including: + +| Option | Description | +| ---------------- | ----------------------------------- | +| `_active` | Enable/disable the extension. | +| `listeners` | Default listener setting. | +| `origin` | Extension file path. | +| `installOptions` | Version and metadata configuration. | +| `name` | Extension name. | +| `version` | Extension version. | +| `main` | Main file path. | +| `description` | Extension description. | +| `url` | Extension URL. | ```json title="~/jan/extensions/extensions.json" { @@ -131,3 +138,26 @@ You can configure the extension settings by modifying the `extensions.json` file } } ``` + +## Import Custom Extension + +:::note +Currently, Jan only supports official extensions, which can be directly downloaded in Extension Settings. We plan to support 3rd party Extensions in the future. +::: + +For now you can always import a third party extension at your own risk by following the steps below: + +1. Navigate to **Settings** > **Extensions** > Click Select under **Manual Installation**. +2. Then, the ~/jan/extensions/extensions.json file will be updated automatically. + +:::caution + +You need to prepare the extension file in .tgz format to install the **non-default** extension. + +::: + +:::info[Assistance and Support] + +If you have questions, please join our [Discord community](https://discord.gg/Dt7MxDyNNZ) for support, updates, and discussions. + +::: diff --git a/docs/docs/guides/03-chatting/assets/managing-threads-via-folders.gif b/docs/docs/guides/get-started/asset/download.gif similarity index 62% rename from docs/docs/guides/03-chatting/assets/managing-threads-via-folders.gif rename to docs/docs/guides/get-started/asset/download.gif index abbb2313d..10cb4b466 100644 Binary files a/docs/docs/guides/03-chatting/assets/managing-threads-via-folders.gif and b/docs/docs/guides/get-started/asset/download.gif differ diff --git a/docs/docs/guides/get-started/asset/gpt.gif b/docs/docs/guides/get-started/asset/gpt.gif new file mode 100644 index 000000000..3972e812f Binary files /dev/null and b/docs/docs/guides/get-started/asset/gpt.gif differ diff --git a/docs/docs/guides/get-started/asset/model.gif b/docs/docs/guides/get-started/asset/model.gif new file mode 100644 index 000000000..e5abdf757 Binary files /dev/null and b/docs/docs/guides/get-started/asset/model.gif differ diff --git a/docs/docs/guides/get-started/hardware-setup.mdx b/docs/docs/guides/get-started/hardware-setup.mdx new file mode 100644 index 000000000..7225708cf --- /dev/null +++ b/docs/docs/guides/get-started/hardware-setup.mdx @@ -0,0 +1,25 @@ +--- +title: Hardware Setup +slug: /guides/hardware +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 3 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + hardware requirements, + Nvidia, + AMD, + CPU, + GPU, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/get-started/overview.mdx b/docs/docs/guides/get-started/overview.mdx new file mode 100644 index 000000000..c979d53b9 --- /dev/null +++ b/docs/docs/guides/get-started/overview.mdx @@ -0,0 +1,20 @@ +--- +title: Overview +slug: /guides +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 1 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/get-started/quickstart.mdx b/docs/docs/guides/get-started/quickstart.mdx new file mode 100644 index 000000000..243e4a59e --- /dev/null +++ b/docs/docs/guides/get-started/quickstart.mdx @@ -0,0 +1,277 @@ +--- +title: Quickstart +slug: /guides/quickstart +description: Get started quickly with Jan, a ChatGPT-alternative that runs on your own computer, with a local API server. Learn how to install Jan and select an AI model to start chatting. +sidebar_position: 2 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + quickstart, + getting started, + using AI model, + installation, + ] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import download from './asset/download.gif'; +import gpt from './asset/gpt.gif'; +import model from './asset/model.gif'; + +To get started quickly with Jan, follow the steps below: + +## Step 1: Get Jan Desktop + + + + + #### Pre-requisites + Before installing Jan, ensure : + - You have a Mac with an Apple Silicon Processor. + - Homebrew and its dependencies are installed for installing Jan with Homebrew package. + - Your macOS version is 10.15 or higher. + + #### Stable Releases + + To download stable releases, go to [Jan](https://jan.ai/) > select **Download for Mac**. + + The download should be available as a `.dmg`. + + #### Nightly Releases + + We provide the Nightly Release so that you can test new features and see what might be coming in a future stable release. Please be aware that there might be bugs! + + You can download it from [Jan's Discord](https://discord.gg/FTk2MvZwJH) in the [`#nightly-builds`](https://discord.gg/q8szebnxZ7) channel. + + #### Experimental Model + + To enable the experimental mode, go to **Settings** > **Advanced Settings** and toggle the **Experimental Mode** + + #### Install with Homebrew + Install Jan with the following Homebrew command: + + ```brew + brew install --cask jan + ``` + +:::warning + +Homebrew package installation is currently limited to **Apple Silicon Macs**, with upcoming support for Windows and Linux. + +::: + + + + + #### Pre-requisites + Ensure that your system meets the following requirements: + - Windows 10 or higher is required to run Jan. + + To enable GPU support, you will need: + - NVIDIA GPU with CUDA Toolkit 11.7 or higher + - NVIDIA driver 470.63.01 or higher + + #### Stable Releases + + To download stable releases, go to [Jan](https://jan.ai/) > select **Download for Windows**. + + The download should be available as a `.exe` file. + + #### Nightly Releases + + We provide the Nightly Release so that you can test new features and see what might be coming in a future stable release. Please be aware that there might be bugs! + + You can download it from [Jan's Discord](https://discord.gg/FTk2MvZwJH) in the [`#nightly-builds`](https://discord.gg/q8szebnxZ7) channel. + + #### Experimental Model + + To enable the experimental mode, go to **Settings** > **Advanced Settings** and toggle the **Experimental Mode** + + #### Default Installation Directory + + By default, Jan is installed in the following directory: + + ```sh + # Default installation directory + C:\Users\{username}\AppData\Local\Programs\Jan + ``` + +:::warning + +If you are stuck in a broken build, go to the [Broken Build](/guides/common-error/broken-build) section of Common Errors. + +::: + + + + + #### Pre-requisites + Ensure that your system meets the following requirements: + - glibc 2.27 or higher (check with `ldd --version`) + - gcc 11, g++ 11, cpp 11, or higher, refer to this link for more information. + + To enable GPU support, you will need: + - NVIDIA GPU with CUDA Toolkit 11.7 or higher + - NVIDIA driver 470.63.01 or higher + + #### Stable Releases + + To download stable releases, go to [Jan](https://jan.ai/) > select **Download for Linux**. + + The download should be available as a `.AppImage` file or a `.deb` file. + + #### Nightly Releases + + We provide the Nightly Release so that you can test new features and see what might be coming in a future stable release. Please be aware that there might be bugs! + + You can download it from [Jan's Discord](https://discord.gg/FTk2MvZwJH) in the [`#nightly-builds`](https://discord.gg/q8szebnxZ7) channel. + + #### Experimental Model + + To enable the experimental mode, go to **Settings** > **Advanced Settings** and toggle the **Experimental Mode** + + + + + To install Jan, you should use your package manager's install or `dpkg`. + + + + + To install Jan, run the following command: + + ```sh + # Install Jan using dpkg + sudo dpkg -i jan-linux-amd64-{version}.deb + + # Install Jan using apt-get + sudo apt-get install ./jan-linux-amd64-{version}.deb + # where jan-linux-amd64-{version}.deb is path to the Jan package + ``` + + + + + To install Jan, run the following commands: + + ```sh + # Install Jan using AppImage + chmod +x jan-linux-x86_64-{version}.AppImage + ./jan-linux-x86_64-{version}.AppImage + # where jan-linux-x86_64-{version}.AppImage is path to the Jan package + ``` + + + + +:::warning + +If you are stuck in a broken build, go to the [Broken Build](/guides/common-error/broken-build) section of Common Errors. + +::: + + + + + +## Step 2: Download a Model + +Jan provides a variety of local AI models tailored to different needs, ready for download. These models are installed and run directly on the user's device. + +1. Go to the **Hub**. +2. Select the models that you would like to install, to see a model details click the dropdown button. +3. Click the **Download** button. + +
+ +
+ Download a Model +
+ +
+ +:::note + +Ensure you select the appropriate model size by balancing performance, cost, and resource considerations in line with your task's specific requirements and hardware specifications. +::: + +## Step 3: Connect to ChatGPT (Optional) + +Jan also provides access to remote models hosted on external servers, requiring an API key for connectivity. For example, to use the ChatGPT model with Jan, you must input your API key by following these steps: + +1. Go to the **Thread** tab. +2. Under the Model dropdown menu, select the ChatGPT model. +3. Fill in your ChatGPT API Key that you can get in your [OpenAI platform](https://platform.openai.com/account/api-keys). + +
+ +
+ Connect to ChatGPT +
+ +
+ +## Step 4: Chat with Models + +After downloading and configuring your model, you can immediately use it in the **Thread** tab. + +
+ +
+ Chat with a model +
+ +
+ +## Best Practices + +This section outlines best practices for developers, analysts, and AI enthusiasts to enhance their experience with Jan when adding AI locally to their computers. Implementing these practices will optimize the performance of AI models. + +### Follow the Quickstart Guide + +The quickstart guide above is designed to facilitate a quick setup process. It provides a clear instruction and simple steps to get you up and running with Jan quickly. Even, if you are inexperienced in AI. + +### Select the Right Models + +Jan offers a range of pre-configured AI models that are suited for different purposes. You should identify which on that aligns with your objectives. There are factors to be considered: + +- Capabilities +- Accuracy +- Processing Speed + +:::note + +- Some of these factors also depend on your hardware, please see Hardware Requirement. +- Choosing the right model is important to achieve the best performance. + ::: + +### Setting up Jan + +Ensure that you familiarize yourself with the Jan application. Jan offers advanced settings that you can adjust. These settings may influence how your AI behaves locally. Please see the [Advanced Settings](/guides/advanced) article for a complete list of Jan's configurations and instructions on how to configure them. + +### Integrations + +Jan can work with many different systems and tools. Whether you are incorporating Jan with any open-source LLM provider or other tools, it is important to understand the integration capabilities and limitations. + +### Mastering the Prompt Engineering + +Prompt engineering is an important aspect when dealing with AI models to generate the desired outputs. Mastering this skill can significantly enhance the performance and the responses of the AI. Below are some tips that you can do for prompt engineering: + +- Ask the model to adopt a persona +- Be specific and details get a more specific answers +- Provide examples or preference text or context at the beginning +- Use a clear and concise language +- Use certain keywords and phrases + +## Pre-configured Models + +To see the full list of Jan's pre-configured models, please see our official GitHub [here](https://github.com/janhq/jan). diff --git a/docs/docs/guides/get-started/settingup-gpu.mdx b/docs/docs/guides/get-started/settingup-gpu.mdx new file mode 100644 index 000000000..cd8fb3556 --- /dev/null +++ b/docs/docs/guides/get-started/settingup-gpu.mdx @@ -0,0 +1,20 @@ +--- +title: Setting Up GPU +slug: /guides/hardware/gpu +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 1 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/inference/overview-inference.mdx b/docs/docs/guides/inference/overview-inference.mdx new file mode 100644 index 000000000..79e306a67 --- /dev/null +++ b/docs/docs/guides/inference/overview-inference.mdx @@ -0,0 +1,20 @@ +--- +title: Overview +slug: /guides/engines +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 12 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/installation/README.mdx b/docs/docs/guides/installation/README.mdx new file mode 100644 index 000000000..cd8ca4cc5 --- /dev/null +++ b/docs/docs/guides/installation/README.mdx @@ -0,0 +1,107 @@ +--- +title: Installation +sidebar_position: 4 +slug: /guides/install/ +hide_table_of_contents: true +description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] +--- + +## Jan Device Compatible + +Jan is compatible with macOS, Windows, and Linux, making it accessible for a wide range of users. This compatibility allows users to leverage Jan's AI tools effectively, regardless of their device or operating system. + +:::note +For detailed system requirements and setup instructions, refer to our [Hardware Setup](/guides/hardware/) guide. +::: + +import DocCardList from "@theme/DocCardList"; + + + +## Install Server-Side + +To install Jan from source, follow the steps below: + +### Pre-requisites + +Before proceeding with the installation of Jan from source, ensure that the following software versions are installed on your system: + +- Node.js version 20.0.0 or higher +- Yarn version 1.22.0 or higher + +### Install Jan Development Build + +1. Clone the Jan repository from GitHub by using the following command: + +```bash +git clone https://github.com/janhq/jan +git checkout DESIRED_BRANCH +cd jan +``` + +2. Install the required dependencies by using the following Yarn command: + +```bash +yarn install + +# Build core module +yarn build:core + +# Packing base plugins +yarn build:plugins + +# Packing uikit +yarn build:uikit +``` + +3. Run the development server. + +```bash +yarn dev +``` + +This will start the development server and open the desktop app. During this step, you may encounter notifications about installing base plugins. Simply click **OK** and **Next** to continue. + +### Install Jan Production Build + +1. Clone the Jan repository from GitHub by using the following command: + +```bash +git clone https://github.com/janhq/jan +cd jan +``` + +2. Install the required dependencies by using the following Yarn command: + +```bash +yarn install + +# Build core module +yarn build:core + +# Packing base plugins +yarn build:plugins + +# Packing uikit +yarn build:uikit +``` + +3. Run the production server. + +```bash +yarn +``` + +This completes the installation process for Jan from source. The production-ready app for macOS can be found in the dist folder. diff --git a/docs/docs/guides/installation/docker.mdx b/docs/docs/guides/installation/docker.mdx new file mode 100644 index 000000000..55557058b --- /dev/null +++ b/docs/docs/guides/installation/docker.mdx @@ -0,0 +1,137 @@ +--- +title: Install with Docker +sidebar_position: 4 +slug: /guides/install/server +hide_table_of_contents: true +description: A step-by-step guide to install Jan using Docker. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Install on Docker, + Docker, + Helm, + ] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +### Pre-requisites + + Ensure that your system meets the following requirements: + - Linux or WSL2 Docker + - Latest Docker Engine and Docker Compose + + To enable GPU support, you will need: + - `nvidia-driver` + - `nvidia-docker2` + + +:::note + +- If you have not installed Docker, follow the instructions [here](https://docs.docker.com/engine/install/ubuntu/). +- If you have not installed the required file for GPU support, follow the instructions [here](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). + ::: + + ### Run Jan in Docker + You can run Jan in Docker with two methods: + 1. Run Jan in CPU mode + 2. Run Jan in GPU mode + + + + To run Jan in Docker CPU mode, by using the following code: + + ```bash + # cpu mode with default file system + docker compose --profile cpu-fs up -d + + # cpu mode with S3 file system + docker compose --profile cpu-s3fs up -d + ``` + + + + + To run Jan in Docker CPU mode, follow the steps below: + 1. Check CUDA compatibility with your NVIDIA driver by running nvidia-smi and check the CUDA version in the output as shown below: + ```sh + nvidia-smi + + # Output + +---------------------------------------------------------------------------------------+ + | NVIDIA-SMI 531.18 Driver Version: 531.18 CUDA Version: 12.1 | + |-----------------------------------------+----------------------+----------------------+ + | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | + | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | + | | | MIG M. | + |=========================================+======================+======================| + | 0 NVIDIA GeForce RTX 4070 Ti WDDM | 00000000:01:00.0 On | N/A | + | 0% 44C P8 16W / 285W| 1481MiB / 12282MiB | 2% Default | + | | | N/A | + +-----------------------------------------+----------------------+----------------------+ + | 1 NVIDIA GeForce GTX 1660 Ti WDDM | 00000000:02:00.0 Off | N/A | + | 0% 49C P8 14W / 120W| 0MiB / 6144MiB | 0% Default | + | | | N/A | + +-----------------------------------------+----------------------+----------------------+ + | 2 NVIDIA GeForce GTX 1660 Ti WDDM | 00000000:05:00.0 Off | N/A | + | 29% 38C P8 11W / 120W| 0MiB / 6144MiB | 0% Default | + | | | N/A | + +-----------------------------------------+----------------------+----------------------+ + + +---------------------------------------------------------------------------------------+ + | Processes: | + | GPU GI CI PID Type Process name GPU Memory | + | ID ID Usage | + |=======================================================================================| + ``` + 2. Visit [NVIDIA NGC Catalog](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda/tags) and find the smallest minor version of image tag that matches your CUDA version (e.g., 12.1 -> 12.1.0) + 3. Update the `Dockerfile.gpu` line number 5 with the latest minor version of the image tag from step 2 (e.g. change `FROM nvidia/cuda:12.2.0-runtime-ubuntu22.04 AS base` to `FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04 AS base`) + 4. Run Jan in GPU mode by using the following command: + + ```bash + # GPU mode with default file system + docker compose --profile gpu-fs up -d + + # GPU mode with S3 file system + docker compose --profile gpu-s3fs up -d + ``` + + + + ### Docker Compose Profile and Environment + The available Docker Compose profile and the environment variables listed below: + + #### Docker Compose Profile + + | Profile | Description | + |-----------|-------------------------------------------| + | cpu-fs | Run Jan in CPU mode with default file system | + | cpu-s3fs | Run Jan in CPU mode with S3 file system | + | gpu-fs | Run Jan in GPU mode with default file system | + | gpu-s3fs | Run Jan in GPU mode with S3 file system | + + #### Environment Variables + + | Environment Variable | Description | + |--------------------------|------------------------------------------------------------| + | S3_BUCKET_NAME | S3 bucket name - leave blank for default file system | + | AWS_ACCESS_KEY_ID | AWS access key ID - leave blank for default file system | + | AWS_SECRET_ACCESS_KEY | AWS secret access key - leave blank for default file system| + | AWS_ENDPOINT | AWS endpoint URL - leave blank for default file system | + | AWS_REGION | AWS region - leave blank for default file system | + | API_BASE_URL | Jan Server URL, please modify it as your public ip address or domain name default http://localhost:1377 | + +:::warning + +If you are stuck in a broken build, go to the [Broken Build](/troubleshooting/#broken-build) section of Common Errors. + +::: diff --git a/docs/docs/guides/installation/linux.mdx b/docs/docs/guides/installation/linux.mdx new file mode 100644 index 000000000..2e03fd6e7 --- /dev/null +++ b/docs/docs/guides/installation/linux.mdx @@ -0,0 +1,23 @@ +--- +title: Install on Linux +sidebar_position: 3 +slug: /guides/install/linux +hide_table_of_contents: true +description: A step-by-step guide to install Jan on your Linux. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Install on Linux, + Linux, + ] +--- + +Coming soon diff --git a/docs/docs/guides/installation/mac.mdx b/docs/docs/guides/installation/mac.mdx new file mode 100644 index 000000000..519fef644 --- /dev/null +++ b/docs/docs/guides/installation/mac.mdx @@ -0,0 +1,24 @@ +--- +title: Install on Mac +sidebar_position: 1 +slug: /guides/install/mac +hide_table_of_contents: true +description: A step-by-step guide to install Jan on your Mac. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + MacOs, + Install on Mac, + Apple devices, + ] +--- + +Coming soon diff --git a/docs/docs/guides/installation/windows.mdx b/docs/docs/guides/installation/windows.mdx new file mode 100644 index 000000000..58bd1597f --- /dev/null +++ b/docs/docs/guides/installation/windows.mdx @@ -0,0 +1,25 @@ +--- +title: Install on Windows +sidebar_position: 2 +slug: /guides/install/windows +hide_table_of_contents: true +description: A step-by-step guide to install Jan on your Windows. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Windows 10, + Windows 11, + Install on Windows, + Microsoft devices, + ] +--- + +Coming soon diff --git a/docs/docs/guides/07-integrations/README.mdx b/docs/docs/guides/integrations/README.mdx similarity index 60% rename from docs/docs/guides/07-integrations/README.mdx rename to docs/docs/guides/integrations/README.mdx index 90ca2c1d5..7ede1233b 100644 --- a/docs/docs/guides/07-integrations/README.mdx +++ b/docs/docs/guides/integrations/README.mdx @@ -1,18 +1,20 @@ --- title: Integrations -slug: /guides/integrations/ +slug: /integrations/ +sidebar_position: 1 description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, - troubleshooting, + large language models, + build extension, ] --- diff --git a/docs/docs/guides/integrations/crewai.mdx b/docs/docs/guides/integrations/crewai.mdx new file mode 100644 index 000000000..bda409059 --- /dev/null +++ b/docs/docs/guides/integrations/crewai.mdx @@ -0,0 +1,23 @@ +--- +title: CrewAI +sidebar_position: 19 +description: A step-by-step guide on how to integrate Jan with CrewAI. +slug: /integrations/crewai +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Continue integration, + CrewAI integration, + CrewAI, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/integrations/discord.mdx b/docs/docs/guides/integrations/discord.mdx new file mode 100644 index 000000000..8fd676f02 --- /dev/null +++ b/docs/docs/guides/integrations/discord.mdx @@ -0,0 +1,78 @@ +--- +title: Discord +slug: /integrations/discord +sidebar_position: 5 +description: A step-by-step guide on how to integrate Jan with a Discord bot. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Discord integration, + Discord, + bot, + ] +--- + +## Integrate Discord Bot with Jan + +Discord bot can enhances your discord server interactions. By integrating Jan with it, you can significantly boost responsiveness and user engaggement in your discord server. + +To integrate Jan with a Discord bot, follow the steps below: + +### Step 1: Clone the repository + +To make this integration successful, it is necessary to clone the discord bot's [repository](https://github.com/jakobdylanc/discord-llm-chatbot). + +### Step 2: Install the Required Libraries + +After cloning the repository, run the following command: + +```sh +pip install -r requirements.txt +``` + +### Step 3: Set the Environment + +1. Create a copy of `.env.example`. +2. Change the name to `.env`. +3. Set the environment with the following options: + +| Setting | Instructions | +| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DISCORD_BOT_TOKEN` | Generate a new Discord application at [discord.com/developers/applications](https://discord.com/developers/applications), obtain a token from the Bot tab, and enable MESSAGE CONTENT INTENT. | +| `LLM` | For [Jan](https://jan.ai/), set to `local/openai/(MODEL_NAME)`, where `(MODEL_NAME)` is your loaded model's name. | +| `CUSTOM_SYSTEM_PROMPT` | Adjust the bot's behavior as needed. | +| `CUSTOM_DISCORD_STATUS` | Set a custom message for the bot's Discord profile. (Max 128 characters) | +| `ALLOWED_CHANNEL_IDS` | Enter Discord channel IDs where the bot can send messages, separated by commas. Leave blank to allow all channels. | +| `ALLOWED_ROLE_IDS` | Enter Discord role IDs allowed to use the bot, separated by commas. Leave blank to allow everyone. Including at least one role also disables DMs. | +| `MAX_IMAGES` | Max number of image attachments allowed per message when using a vision model. (Default: `5`) | +| `MAX_MESSAGES` | Max messages allowed in a reply chain. (Default: `20`) | +| `LOCAL_SERVER_URL` | URL of your local API server for LLMs starting with `local/`. (Default: `http://localhost:5000/v1`) | +| `LOCAL_API_KEY` | API key for your local API server with LLMs starting with `local/`. Usually safe to leave blank. | + +### Step 4: Insert the Bot + +Invite the bot to your Discord server using the following URL: + +``` +https://discord.com/api/oauth2/authorize?client_id=(CLIENT_ID)&permissions=412317273088&scope=bot +``` + +:::note +Replace `CLIENT_ID` with your Discord application's client ID from the OAuth2 tab +::: + +### Step 5: Run the bot + +Run the bot by using the following command in your command prompt: + +```sh +python llmcord.py +``` diff --git a/docs/docs/guides/integrations/interpreter.mdx b/docs/docs/guides/integrations/interpreter.mdx new file mode 100644 index 000000000..9acd0fa4b --- /dev/null +++ b/docs/docs/guides/integrations/interpreter.mdx @@ -0,0 +1,60 @@ +--- +title: Open Interpreter +slug: /integrations/interpreter +sidebar_position: 6 +description: A step-by-step guide on how to integrate Jan with Open Interpreter. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Open Interpreter integration, + Open Interpreter, + ] +--- + +## Integrate Open Interpreter with Jan + +[Open Interpreter](https://github.com/KillianLucas/open-interpreter/) lets LLMs run code (Python, Javascript, Shell, and more) locally. You can chat with Open Interpreter through a ChatGPT-like interface in your terminal by running `interpreter` after installing. To integrate Open Interpreter with Jan, follow the steps below: + +### Step 1: Install Open Interpreter + +1. Install Open Interpreter by running: + +```sh +pip install open-interpreter +``` + +2. A Rust compiler is required to install Open Interpreter. If not already installed, run the following command or go to [this page](https://rustup.rs/) if you are running on windows: + +```zsh +sudo apt install rustc +``` + +### Step 2: Configure Jan's Local API Server + +Before using Open Interpreter, configure the model in `Settings` > `My Model` for Jan and activate its local API server. + +#### Enabling Jan API Server + +1. Click the `<>` button to access the **Local API Server** section in Jan. + +2. Configure the server settings, including **IP Port**, **Cross-Origin-Resource-Sharing (CORS)**, and **Verbose Server Logs**. + +3. Click **Start Server**. + +### Step 3: Set the Open Interpreter Environment + +1. For integration, provide the API Base (`http://localhost:1337/v1`) and the model ID (e.g., `mistral-ins-7b-q4`) when running Open Interpreter. For example see the code below: + +```zsh +interpreter --api_base http://localhost:1337/v1 --model mistral-ins-7b-q4 +``` + +> **Open Interpreter is now ready for use!** diff --git a/docs/docs/guides/integrations/overview-integration.mdx b/docs/docs/guides/integrations/overview-integration.mdx new file mode 100644 index 000000000..344ebaa5f --- /dev/null +++ b/docs/docs/guides/integrations/overview-integration.mdx @@ -0,0 +1,20 @@ +--- +title: Overview +slug: /integrationss +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 1 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/integrations/raycast.mdx b/docs/docs/guides/integrations/raycast.mdx new file mode 100644 index 000000000..3611dcf00 --- /dev/null +++ b/docs/docs/guides/integrations/raycast.mdx @@ -0,0 +1,42 @@ +--- +title: Raycast +slug: /integrations/raycast +sidebar_position: 17 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + raycast integration, + Raycast, + ] +description: A step-by-step guide on how to integrate Jan with Raycast. +--- + +## Integrate Raycast with Jan + +[Raycast](https://www.raycast.com/) is a productivity tool designed for macOS that enhances workflow efficiency by providing quick access to various tasks and functionalities through a keyboard-driven interface. To integrate Raycast with Jan, follow the steps below: + +### Step 1: Download the TinyLlama Model + +1. Go to the **Hub** and download the TinyLlama model. +2. The model will be available at `~jan/models/tinyllama-1.1b`. + +### Step 2: Clone and Run the Program + +1. Clone this [GitHub repository](https://github.com/InNoobWeTrust/nitro-raycast). +2. Execute the project using the following command: + +```sh title="Node.js" +npm i && npm run dev +``` + +### Step 3: Search for Nitro and Run the Model + +Search for `Nitro` using the program and you can use the models from Jan in RayCast. diff --git a/docs/docs/guides/integrations/router.mdx b/docs/docs/guides/integrations/router.mdx new file mode 100644 index 000000000..42d1b1940 --- /dev/null +++ b/docs/docs/guides/integrations/router.mdx @@ -0,0 +1,74 @@ +--- +title: OpenRouter +slug: /integrations/openrouter +sidebar_position: 2 +description: A step-by-step guide on how to integrate Jan with OpenRouter. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + OpenRouter integration, + OpenRouter, + ] +--- + +## Integrate OpenRouter with Jan + +[OpenRouter](https://openrouter.ai/docs#quick-start) is a tool that gathers AI models. Developers can utilize its API to engage with diverse large language models, generative image models, and generative 3D object models. + +To connect Jan with OpenRouter for accessing remote Large Language Models (LLMs) through OpenRouter, you can follow the steps below: + +### Step 1: Configure OpenRouter API key + +1. Find your API keys in the [OpenRouter API Key](https://openrouter.ai/keys). +2. Set the OpenRouter API key in `~/jan/engines/openai.json` file. + +### Step 2: Model Configuration + +1. Go to the directory `~/jan/models`. +2. Make a new folder called `openrouter-(modelname)`, like `openrouter-dolphin-mixtral-8x7b`. +3. Inside the folder, create a `model.json` file with the following settings: + +- Set the `id` property to the model id obtained from OpenRouter. +- Set the `format` property to `api`. +- Set the `engine` property to `openai`. +- Ensure the `state` property is set to `ready`. + +```json title="~/jan/models/openrouter-dolphin-mixtral-8x7b/model.json" +{ + "sources": [ + { + "filename": "openrouter", + "url": "https://openrouter.ai/" + } + ], + "id": "cognitivecomputations/dolphin-mixtral-8x7b", + "object": "model", + "name": "Dolphin 2.6 Mixtral 8x7B", + "version": "1.0", + "description": "This is a 16k context fine-tune of Mixtral-8x7b. It excels in coding tasks due to extensive training with coding data and is known for its obedience, although it lacks DPO tuning. The model is uncensored and is stripped of alignment and bias. It requires an external alignment layer for ethical use. Users are cautioned to use this highly compliant model responsibly, as detailed in a blog post about uncensored models at erichartford.com/uncensored-models.", + "format": "api", + "settings": {}, + "parameters": {}, + "metadata": { + "tags": ["General", "Big Context Length"] + }, + "engine": "openai" +} +``` + +:::note +For more details regarding the `model.json` settings and parameters fields, please see [here](/guides/engines/remote-server/#modeljson). +::: + +### Step 3 : Start the Model + +1. Restart Jan and go to the **Hub**. +2. Find your model and click on the **Use** button. diff --git a/docs/docs/guides/integrations/unsloth.mdx b/docs/docs/guides/integrations/unsloth.mdx new file mode 100644 index 000000000..b99fa5ee7 --- /dev/null +++ b/docs/docs/guides/integrations/unsloth.mdx @@ -0,0 +1,22 @@ +--- +title: Unsloth +sidebar_position: 20 +slug: /integrations/unsloth +description: A step-by-step guide on how to integrate Jan with Unsloth. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Continue integration, + Unsloth integration, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/integrations/vscode.mdx b/docs/docs/guides/integrations/vscode.mdx new file mode 100644 index 000000000..943ba7968 --- /dev/null +++ b/docs/docs/guides/integrations/vscode.mdx @@ -0,0 +1,102 @@ +--- +title: Continue Integration +sidebar_position: 18 +slug: /integrations/continue +description: A step-by-step guide on how to integrate Jan with Continue and VS Code. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Continue integration, + VSCode integration, + ] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Integrate with Continue VS Code + +[Continue](https://continue.dev/docs/intro) is an open-source autopilot compatible with Visual Studio Code and JetBrains, offering the simplest method to code with any LLM (Local Language Model). + +To integrate Jan with a local AI language model, follow the steps below: + +### Step 1: Installing Continue on Visal Studio Code + +Follow this [guide to install the Continue extension on Visual Studio Code](https://continue.dev/docs/quickstart) + +### Step 2: Enable the Jan API Server + +To set up Continue for use with Jan's Local Server, you must activate the Jan API Server with your chosen model. + +1. Press the `<>` button. Jan will take you to the **Local API Server** section. + +2. Setup the server, which includes the **IP Port**, **Cross-Origin-Resource-Sharing (CORS)** and **Verbose Server Logs**. + +3. Press the **Start Server** button + +### Step 3: Configure Continue to Use Jan's Local Server + +1. Go to the `~/.continue` directory. + + + + ```sh + cd ~/.continue + ``` + + + ```sh + C:/Users//.continue + ``` + + + ```sh + cd ~/.continue + ``` + + + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Jan", + "provider": "openai", + "model": "mistral-ins-7b-q4", + "apiKey": "EMPTY", + "apiBase": "http://localhost:1337" + } + ] +} +``` + +2. Ensure the file has the following configurations: + - Ensure `openai` is selected as the `provider`. + - Match the `model` with the one enabled in the Jan API Server. + - Set `apiBase` to `http://localhost:1337`. + - Leave the `apiKey` field to `EMPTY`. + +### Step 4: Ensure the Using Model Is Activated in Jan + +1. Navigate to `Settings` > `Models`. +2. Activate the model you want to use in Jan by clicking the **three dots (⋮)** and select **Start Model**. + +## Try out Jan integration with Continue in Visual Studio Code + +### 1. Asking questions about the code + +1. Highlight a code snippet and press `Command + Shift + M` to open the Left Panel. +2. Select Jan at the bottom and ask a question about the code, for example, `Explain this code`. + +### 2. Editing the code with the help of a large language model + +1. Select a code snippet and use `Command + Shift + L`. +2. Enter your editing request, such as `Add comments to this code`. diff --git a/docs/docs/guides/08-troubleshooting/README.mdx b/docs/docs/guides/local-providers/README.mdx similarity index 54% rename from docs/docs/guides/08-troubleshooting/README.mdx rename to docs/docs/guides/local-providers/README.mdx index 2b8a3b89f..36dbae13e 100644 --- a/docs/docs/guides/08-troubleshooting/README.mdx +++ b/docs/docs/guides/local-providers/README.mdx @@ -1,18 +1,20 @@ --- -title: Troubleshooting -slug: /guides/troubleshooting/ +title: Local Engines +slug: /guides/engines/local +sidebar_position: 13 description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, - troubleshooting, + large language models, + build extension, ] --- diff --git a/docs/docs/guides/local-providers/assets/azure.png b/docs/docs/guides/local-providers/assets/azure.png new file mode 100644 index 000000000..b5b9dc46a Binary files /dev/null and b/docs/docs/guides/local-providers/assets/azure.png differ diff --git a/docs/docs/guides/local-providers/assets/cont.png b/docs/docs/guides/local-providers/assets/cont.png new file mode 100644 index 000000000..4803a6a39 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/cont.png differ diff --git a/docs/docs/guides/local-providers/assets/discordflow.png b/docs/docs/guides/local-providers/assets/discordflow.png new file mode 100644 index 000000000..904354942 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/discordflow.png differ diff --git a/docs/docs/guides/local-providers/assets/image.png b/docs/docs/guides/local-providers/assets/image.png new file mode 100644 index 000000000..5f1f7104e Binary files /dev/null and b/docs/docs/guides/local-providers/assets/image.png differ diff --git a/docs/docs/guides/local-providers/assets/interpreter.png b/docs/docs/guides/local-providers/assets/interpreter.png new file mode 100644 index 000000000..c735e33ca Binary files /dev/null and b/docs/docs/guides/local-providers/assets/interpreter.png differ diff --git a/docs/docs/guides/local-providers/assets/jan-ai-continue-ask.png b/docs/docs/guides/local-providers/assets/jan-ai-continue-ask.png new file mode 100644 index 000000000..5ccc431d5 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/jan-ai-continue-ask.png differ diff --git a/docs/docs/guides/local-providers/assets/jan-ai-continue-comment.gif b/docs/docs/guides/local-providers/assets/jan-ai-continue-comment.gif new file mode 100644 index 000000000..d7b5a0ec7 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/jan-ai-continue-comment.gif differ diff --git a/docs/docs/guides/local-providers/assets/jan-ai-discord-repo.png b/docs/docs/guides/local-providers/assets/jan-ai-discord-repo.png new file mode 100644 index 000000000..77ec70192 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/jan-ai-discord-repo.png differ diff --git a/docs/docs/guides/03-chatting/assets/start-thread.gif b/docs/docs/guides/local-providers/assets/jan-ai-openrouter.gif similarity index 52% rename from docs/docs/guides/03-chatting/assets/start-thread.gif rename to docs/docs/guides/local-providers/assets/jan-ai-openrouter.gif index 2c944dbb9..fa45ec182 100644 Binary files a/docs/docs/guides/03-chatting/assets/start-thread.gif and b/docs/docs/guides/local-providers/assets/jan-ai-openrouter.gif differ diff --git a/docs/docs/guides/local-providers/assets/lmstudio.png b/docs/docs/guides/local-providers/assets/lmstudio.png new file mode 100644 index 000000000..bffd0a00d Binary files /dev/null and b/docs/docs/guides/local-providers/assets/lmstudio.png differ diff --git a/docs/docs/guides/local-providers/assets/mistral.png b/docs/docs/guides/local-providers/assets/mistral.png new file mode 100644 index 000000000..0efeaef83 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/mistral.png differ diff --git a/docs/docs/guides/local-providers/assets/ollama.png b/docs/docs/guides/local-providers/assets/ollama.png new file mode 100644 index 000000000..02a3278bf Binary files /dev/null and b/docs/docs/guides/local-providers/assets/ollama.png differ diff --git a/docs/docs/guides/local-providers/assets/openrouter.png b/docs/docs/guides/local-providers/assets/openrouter.png new file mode 100644 index 000000000..5f051ee76 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/openrouter.png differ diff --git a/docs/docs/guides/local-providers/assets/raycast-image.png b/docs/docs/guides/local-providers/assets/raycast-image.png new file mode 100644 index 000000000..c0af00060 Binary files /dev/null and b/docs/docs/guides/local-providers/assets/raycast-image.png differ diff --git a/docs/docs/guides/local-providers/assets/raycast.png b/docs/docs/guides/local-providers/assets/raycast.png new file mode 100644 index 000000000..454d81f4b Binary files /dev/null and b/docs/docs/guides/local-providers/assets/raycast.png differ diff --git a/docs/docs/guides/local-providers/assets/vscode.png b/docs/docs/guides/local-providers/assets/vscode.png new file mode 100644 index 000000000..f361e16ab Binary files /dev/null and b/docs/docs/guides/local-providers/assets/vscode.png differ diff --git a/docs/docs/guides/local-providers/llamacpp.mdx b/docs/docs/guides/local-providers/llamacpp.mdx new file mode 100644 index 000000000..ca6285c4a --- /dev/null +++ b/docs/docs/guides/local-providers/llamacpp.mdx @@ -0,0 +1,91 @@ +--- +title: LlamaCPP Extension +slug: /guides/engines/llamacpp +sidebar_position: 1 +description: A step-by-step guide on how to customize the LlamaCPP extension. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Llama CPP integration, + LlamaCPP Extension, + ] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Overview + +[Nitro](https://github.com/janhq/nitro) is an inference server on top of [llama.cpp](https://github.com/ggerganov/llama.cpp). It provides an OpenAI-compatible API, queue, & scaling. + +## LlamaCPP Extension + +:::note +Nitro is the default AI engine downloaded with Jan. There is no additional setup needed. +::: + +In this guide, we'll walk you through the process of customizing your engine settings by configuring the `nitro.json` file + +1. Navigate to the `App Settings` > `Advanced` > `Open App Directory` > `~/jan/engine` folder. + + + + ```sh + cd ~/jan/engines + ``` + + + ```sh + C:/Users//jan/engines + ``` + + + ```sh + cd ~/jan/engines + ``` + + + +2. Modify the `nitro.json` file based on your needs. The default settings are shown below. + +```json title="~/jan/engines/nitro.json" +{ + "ctx_len": 2048, + "ngl": 100, + "cpu_threads": 1, + "cont_batching": false, + "embedding": false +} +``` + +The table below describes the parameters in the `nitro.json` file. + +| Parameter | Type | Description | +| --------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `ctx_len` | **Integer** | Typically set at `2048`, `ctx_len` provides ample context for model operations like `GPT-3.5`. (_Maximum_: `4096`, _Minimum_: `1`) | +| `ngl` | **Integer** | Defaulted at `100`, `ngl` determines GPU layer usage. | +| `cpu_threads` | **Integer** | Determines CPU inference threads, limited by hardware and OS. (_Maximum_ determined by system) | +| `cont_batching` | **Integer** | Controls continuous batching, enhancing throughput for LLM inference. | +| `embedding` | **Integer** | Enables embedding utilization for tasks like document-enhanced chat in RAG-based applications. | + +:::tip + +- By default, the value of `ngl` is set to 100, which indicates that it will offload all. If you wish to offload only 50% of the GPU, you can set `ngl` to 15 because most models on Mistral or Llama are around ~ 30 layers. +- To utilize the embedding feature, include the JSON parameter `"embedding": true`. It will enable Nitro to process inferences with embedding capabilities. Please refer to the [Embedding in the Nitro documentation](https://nitro.jan.ai/features/embed) for a more detailed explanation. +- To utilize the continuous batching feature for boosting throughput and minimizing latency in large language model (LLM) inference, include `cont_batching: true`. For details, please refer to the [Continuous Batching in the Nitro documentation](https://nitro.jan.ai/features/cont-batch). + +::: + +:::info[Assistance and Support] + +If you have questions, please join our [Discord community](https://discord.gg/Dt7MxDyNNZ) for support, updates, and discussions. + +::: diff --git a/docs/docs/guides/local-providers/lmstudio.mdx b/docs/docs/guides/local-providers/lmstudio.mdx new file mode 100644 index 000000000..db4234700 --- /dev/null +++ b/docs/docs/guides/local-providers/lmstudio.mdx @@ -0,0 +1,176 @@ +--- +title: LM Studio +slug: /guides/engines/lmstudio +sidebar_position: 8 +description: A step-by-step guide on how to integrate Jan with LM Studio. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + LM Studio integration, + ] +--- + +## Integrate LM Studio with Jan + +[LM Studio](https://lmstudio.ai/) enables you to explore, download, and run local Large Language Models (LLMs). You can integrate Jan with LM Studio using two methods: + +1. Integrate the LM Studio server with Jan UI +2. Migrate your downloaded model from LM Studio to Jan. + +To integrate LM Studio with Jan follow the steps below: + +:::note + +In this guide, we're going to show you how to connect Jan to [LM Studio](https://lmstudio.ai/) using the second method. We'll use the [Phi 2 - GGUF](https://huggingface.co/TheBloke/phi-2-GGUF) model from Hugging Face as our example. +::: + +### Step 1: Server Setup + +1. Access the `Local Inference Server` within LM Studio. +2. Select your desired model. +3. Start the server after configuring the port and options. + +4. Update the `openai.json` file in `~/jan/engines` to include the LM Studio server's full URL. + +```json title="~/jan/engines/openai.json" +{ + "full_url": "http://localhost:/v1/chat/completions" +} +``` + +:::tip + +Replace `(port)` with your chosen port number. The default is 1234. + +::: + +### Step 2: Model Configuration + +1. Navigate to `~/jan/models`. +2. Create a folder named `lmstudio-(modelname)`, like `lmstudio-phi-2`. +3. Inside, create a `model.json` file with these options: + - Set `format` to `api`. + - Specify `engine` as `openai`. + - Set `state` to `ready`. + +```json title="~/jan/models/lmstudio-phi-2/model.json" +{ + "sources": [ + { + "filename": "phi-2-GGUF", + "url": "https://huggingface.co/TheBloke/phi-2-GGUF" + } + ], + "id": "lmstudio-phi-2", + "object": "model", + "name": "LM Studio - Phi 2 - GGUF", + "version": "1.0", + "description": "TheBloke/phi-2-GGUF", + "format": "api", + "settings": {}, + "parameters": {}, + "metadata": { + "author": "Microsoft", + "tags": ["General", "Big Context Length"] + }, + "engine": "openai" +} +``` + +:::note +For more details regarding the `model.json` settings and parameters fields, please see [here](/guides/engines/remote-server/#modeljson). +::: + +### Step 3: Starting the Model + +1. Restart Jan and proceed to the **Hub**. +2. Locate your model and click **Use** to activate it. + +## Migrating Models from LM Studio to Jan (version 0.4.6 and older) + +### Step 1: Model Migration + +1. In LM Studio, navigate to `My Models` and access your model folder. +2. Copy the model folder to `~/jan/models`. +3. Ensure the folder name matches the model name in the `.gguf` filename. Rename as necessary. + +### Step 2: Activating the Model + +1. Restart Jan and navigate to the **Hub**, where the model will be automatically detected. +2. Click **Use** to use the model. + +## Direct Access to LM Studio Models from Jan (version 0.4.7+) + +Starting from version 0.4.7, Jan enables direct import of LM Studio models using absolute file paths. + +### Step 1: Locating the Model Path + +1. Access `My Models` in LM Studio and locate your model folder. +2. Obtain the absolute path of your model. + +### Step 2: Model Configuration + +1. Go to `~/jan/models`. +2. Create a folder named `(modelname)` (e.g., `phi-2.Q4_K_S`). +3. Inside, craft a `model.json` file: + - Set `id` to match the folder name. + - Use the direct binary download link ending in `.gguf` as the `url`. You can now use the absolute filepath of the model file. + - Set `engine` as `nitro`. + +```json +{ + "object": "model", + "version": 1, + "format": "gguf", + "sources": [ + { + "filename": "phi-2.Q4_K_S.gguf", + "url": "" + } + ], + "id": "phi-2.Q4_K_S", + "name": "phi-2.Q4_K_S", + "created": 1708308111506, + "description": "phi-2.Q4_K_S - user self import model", + "settings": { + "ctx_len": 4096, + "embedding": false, + "prompt_template": "{system_message}\n### Instruction: {prompt}\n### Response:", + "llama_model_path": "phi-2.Q4_K_S.gguf" + }, + "parameters": { + "temperature": 0.7, + "top_p": 0.95, + "stream": true, + "max_tokens": 2048, + "stop": [""], + "frequency_penalty": 0, + "presence_penalty": 0 + }, + "metadata": { + "size": 1615568736, + "author": "User", + "tags": [] + }, + "engine": "nitro" +} +``` + +:::warning + +For Windows users, ensure to include double backslashes in the URL property, such as `C:\\Users\\username\\filename.gguf`. + +::: + +### Step 3: Starting the Model + +1. Restart Jan and proceed to the **Hub**. +2. Locate your model and click **Use** to activate it. diff --git a/docs/docs/guides/local-providers/ollama.mdx b/docs/docs/guides/local-providers/ollama.mdx new file mode 100644 index 000000000..2f7a26227 --- /dev/null +++ b/docs/docs/guides/local-providers/ollama.mdx @@ -0,0 +1,93 @@ +--- +title: Ollama +slug: /guides/engines/ollama +sidebar_position: 4 +description: A step-by-step guide on how to integrate Jan with Ollama. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Ollama integration, + ] +--- + +## Integrate Ollama with Jan + +Ollama provides you with largen language that you can run locally. There are two methods to integrate Ollama with Jan: + +1. Integrate Ollama server with Jan. +2. Migrate the downloaded model from Ollama to Jan. + +To integrate Ollama with Jan, follow the steps below: + +:::note +In this tutorial, we'll show how to integrate Ollama with Jan using the first method. We will use the [llama2](https://ollama.com/library/llama2) model as an example. +::: + +### Step 1: Start the Ollama Server + +1. Choose your model from the [Ollama library](https://ollama.com/library). +2. Run your model with this command: + +```sh +ollama run +``` + +3. According to the [Ollama documentation on OpenAI compatibility](https://github.com/ollama/ollama/blob/main/docs/openai.md), you can connect to the Ollama server using the web address `http://localhost:11434/v1/chat/completions`. To do this, change the `openai.json` file in the `~/jan/engines` folder to add the Ollama server's full web address: + +```json title="~/jan/engines/openai.json" +{ + "full_url": "http://localhost:11434/v1/chat/completions" +} +``` + +### Step 2: Model Configuration + +1. Navigate to the `~/jan/models` folder. +2. Create a folder named `(ollam-modelname)`, for example, `lmstudio-phi-2`. +3. Create a `model.json` file inside the folder including the following configurations: + +- Set the `id` property to the model name as Ollama model name. +- Set the `format` property to `api`. +- Set the `engine` property to `openai`. +- Set the `state` property to `ready`. + +```json title="~/jan/models/llama2/model.json" +{ + "sources": [ + { + "filename": "llama2", + "url": "https://ollama.com/library/llama2" + } + ], + "id": "llama2", + "object": "model", + "name": "Ollama - Llama2", + "version": "1.0", + "description": "Llama 2 is a collection of foundation language models ranging from 7B to 70B parameters.", + "format": "api", + "settings": {}, + "parameters": {}, + "metadata": { + "author": "Meta", + "tags": ["General", "Big Context Length"] + }, + "engine": "openai" +} +``` + +:::note +For more details regarding the `model.json` settings and parameters fields, please see [here](/guides/engines/remote-server/#modeljson). +::: + +### Step 3: Start the Model + +1. Restart Jan and navigate to the **Hub**. +2. Locate your model and click the **Use** button. diff --git a/docs/docs/guides/local-providers/tensorrt.mdx b/docs/docs/guides/local-providers/tensorrt.mdx new file mode 100644 index 000000000..46f4346c9 --- /dev/null +++ b/docs/docs/guides/local-providers/tensorrt.mdx @@ -0,0 +1,115 @@ +--- +title: TensorRT-LLM Extension +slug: /guides/engines/tensorrt-llm +sidebar_position: 2 +description: A step-by-step guide on how to customize the TensorRT-LLM extension. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + TensorRT-LLM Extension, + TensorRT, + tensorRT, + extension, + ] +--- + +## Overview + +Users with Nvidia GPUs can get **20-40% faster token speeds** compared to using LlamaCPP engine on their laptop or desktops by using [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM). The greater implication is that you are running FP16, which is also more accurate than quantized models. + +## TensortRT-LLM Extension + +This guide walks you through how to install Jan's official [TensorRT-LLM Extension](https://github.com/janhq/nitro-tensorrt-llm). This extension uses [Nitro-TensorRT-LLM](https://github.com/janhq/nitro-tensorrt-llm) as the AI engine, instead of the default [Nitro-Llama-CPP](https://github.com/janhq/nitro). It includes an efficient C++ server to natively execute the [TRT-LLM C++ runtime](https://nvidia.github.io/TensorRT-LLM/gpt_runtime.html). It also comes with additional feature and performance improvements like OpenAI compatibility, tokenizer improvements, and queues. + +:::warning + +- This feature is only available for Windows users. Linux is coming soon. + +- Additionally, we only prebuilt a few demo models. You can always build your desired models directly on your machine. For more information, please see [here](#build-your-own-tensorrt-models). + +::: + +### Pre-requisites + +- A Windows PC +- Nvidia GPU(s): Ada or Ampere series (i.e. RTX 4000s & 3000s). More will be supported soon. +- 3GB+ of disk space to download TRT-LLM artifacts and a Nitro binary +- Jan v0.4.9+ or Jan v0.4.8-321+ (nightly) +- Nvidia Driver v535+ (For installation guide, please see [here](/troubleshooting/#1-ensure-gpu-mode-requirements)) +- CUDA Toolkit v12.2+ (For installation guide, please see [here](/troubleshooting/#1-ensure-gpu-mode-requirements)) + +### Step 1: Install TensorRT-Extension + +1. Go to **Settings** > **Extensions**. +2. Click **Install** next to the TensorRT-LLM Extension. +3. Check that files are correctly downloaded. + +```sh +ls ~\jan\extensions\@janhq\tensorrt-llm-extension\dist\bin +# Your Extension Folder should now include `nitro.exe`, among other artifacts needed to run TRT-LLM +``` + +### Step 2: Download a Compatible Model + +TensorRT-LLM can only run models in `TensorRT` format. These models, aka "TensorRT Engines", are prebuilt specifically for each target OS+GPU architecture. + +We offer a handful of precompiled models for Ampere and Ada cards that you can immediately download and play with: + +1. Restart the application and go to the Hub. +2. Look for models with the `TensorRT-LLM` label in the recommended models list > Click **Download**. + +:::note +This step might take some time. 🙏 +::: + +![image](https://hackmd.io/_uploads/rJewrEgRp.png) + +3. Click use and start chatting! +4. You may need to allow Nitro in your network + +![alt text](./assets/image.png) + +:::warning +If you are our nightly builds, you may have to reinstall the TensorRT-LLM extension each time you update the app. We're working on better extension lifecyles - stay tuned. +::: + +### Step 3: Configure Settings + +You can customize the default parameters for how Jan runs TensorRT-LLM. + +:::info +coming soon +::: + +## Troubleshooting + +### Incompatible Extension vs Engine versions + +For now, the model versions are pinned to the extension versions. + +### Uninstall Extension + +To uninstall the extension, follow the steps below: + +1. Quit the app. +2. Go to **Settings** > **Extensions**. +3. Delete the entire Extensions folder. +4. Reopen the app, only the default extensions should be restored. + +### Install Nitro-TensorRT-LLM manually + +To manually build the artifacts needed to run the server and TensorRT-LLM, you can reference the source code. [Read here](https://github.com/janhq/nitro-tensorrt-llm?tab=readme-ov-file#quickstart). + +### Build your own TensorRT models + +:::info +coming soon +::: diff --git a/docs/docs/guides/providers/tensorrt-llm.md b/docs/docs/guides/providers/tensorrt-llm.md new file mode 100644 index 000000000..f73168873 --- /dev/null +++ b/docs/docs/guides/providers/tensorrt-llm.md @@ -0,0 +1,226 @@ +--- +title: TensorRT-LLM +slug: /guides/providers/tensorrt-llm +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + TensorRT-LLM Extension, + TensorRT, + tensorRT, + extension, + ] +--- + +:::info + +TensorRT-LLM support was launched in 0.4.9, and should be regarded as an Experimental feature. + +- Only Windows is supported for now. +- Please report bugs in our Discord's [#tensorrt-llm](https://discord.com/channels/1107178041848909847/1201832734704795688) channel. + +::: + +Jan supports [TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM) as an alternate Inference Engine, for users who have Nvidia GPUs with large VRAM. TensorRT-LLM allows for blazing fast inference, but requires Nvidia GPUs with [larger VRAM](https://nvidia.github.io/TensorRT-LLM/memory.html). + +## What is TensorRT-LLM? + +[TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM) is an hardware-optimized LLM inference engine for Nvidia GPUs, that compiles models to run extremely fast on Nvidia GPUs. + +- Mainly used on Nvidia's Datacenter-grade GPUs like the H100s [to produce 10,000 tok/s](https://nvidia.github.io/TensorRT-LLM/blogs/H100vsA100.html). +- Can be used on Nvidia's workstation (e.g. [A6000](https://www.nvidia.com/en-us/design-visualization/rtx-6000/)) and consumer-grade GPUs (e.g. [RTX 4090](https://www.nvidia.com/en-us/geforce/graphics-cards/40-series/rtx-4090/)) + +:::tip[Benefits] + +- Our performance testing shows 20-40% faster token/s speeds on consumer-grade GPUs +- On datacenter-grade GPUs, TensorRT-LLM can go up to 10,000 tokens/s +- TensorRT-LLM is a relatively new library, that was [released in Sept 2023](https://github.com/NVIDIA/TensorRT-LLM/graphs/contributors). We anticipate performance and resource utilization improvements in the future. + +::: + +:::warning[Caveats] + +- TensorRT-LLM requires models to be compiled into GPU and OS-specific "Model Engines" (vs. GGUF's "convert once, run anywhere" approach) +- TensorRT-LLM Model Engines tend to utilize larger amount of VRAM and RAM in exchange for performance +- This usually means only people with top-of-the-line Nvidia GPUs can use TensorRT-LLM + +::: + +## Requirements + +### Hardware + +- Windows PC +- Nvidia GPU(s): Ada or Ampere series (i.e. RTX 4000s & 3000s). More will be supported soon. +- 3GB+ of disk space to download TRT-LLM artifacts and a Nitro binary + +**Compatible GPUs** + +| Architecture | Supported? | Consumer-grade | Workstation-grade | +| ------------ | ---------- | -------------- | ----------------- | +| Ada | ✅ | 4050 and above | RTX A2000 Ada | +| Ampere | ✅ | 3050 and above | A100 | +| Turing | ❌ | Not Supported | Not Supported | + +:::info + +Please ping us in Discord's [#tensorrt-llm](https://discord.com/channels/1107178041848909847/1201832734704795688) channel if you would like Turing support. + +::: + +### Software + +- Jan v0.4.9+ or Jan v0.4.8-321+ (nightly) +- [Nvidia Driver v535+](https://jan.ai/guides/common-error/not-using-gpu/#1-ensure-gpu-mode-requirements) +- [CUDA Toolkit v12.2+](https://jan.ai/guides/common-error/not-using-gpu/#1-ensure-gpu-mode-requirements) + +## Getting Started + +### Install TensorRT-Extension + +1. Go to Settings > Extensions +2. Install the TensorRT-LLM Extension + +:::info +You can check if files have been correctly downloaded: + +```sh +ls ~\jan\extensions\@janhq\tensorrt-llm-extension\dist\bin +# Your Extension Folder should now include `nitro.exe`, among other `.dll` files needed to run TRT-LLM +``` + +::: + +### Download a TensorRT-LLM Model + +Jan's Hub has a few pre-compiled TensorRT-LLM models that you can download, which have a `TensorRT-LLM` label + +- We automatically download the TensorRT-LLM Model Engine for your GPU architecture +- We have made a few 1.1b models available that can run even on Laptop GPUs with 8gb VRAM + +| Model | OS | Ada (40XX) | Ampere (30XX) | Description | +| ------------------- | ------- | ---------- | ------------- | --------------------------------------------------- | +| Llamacorn 1.1b | Windows | ✅ | ✅ | TinyLlama-1.1b, fine-tuned for usability | +| TinyJensen 1.1b | Windows | ✅ | ✅ | TinyLlama-1.1b, fine-tuned on Jensen Huang speeches | +| Mistral Instruct 7b | Windows | ✅ | ✅ | Mistral | + +### Importing Pre-built Models + +You can import a pre-built model, by creating a new folder in Jan's `/models` directory that includes: + +- TensorRT-LLM Engine files (e.g. `tokenizer`, `.engine`, etc) +- `model.json` that registers these files, and specifies `engine` as `nitro-tensorrt-llm` + +:::note[Sample model.json] + +Note the `engine` is `nitro-tensorrt-llm`: this won't work without it! + +```js +{ + "sources": [ + { + "filename": "config.json", + "url": "https://delta.jan.ai/dist/models///tensorrt-llm-v0.7.1/TinyJensen-1.1B-Chat-fp16/config.json" + }, + { + "filename": "mistral_float16_tp1_rank0.engine", + "url": "https://delta.jan.ai/dist/models///tensorrt-llm-v0.7.1/TinyJensen-1.1B-Chat-fp16/mistral_float16_tp1_rank0.engine" + }, + { + "filename": "tokenizer.model", + "url": "https://delta.jan.ai/dist/models///tensorrt-llm-v0.7.1/TinyJensen-1.1B-Chat-fp16/tokenizer.model" + }, + { + "filename": "special_tokens_map.json", + "url": "https://delta.jan.ai/dist/models///tensorrt-llm-v0.7.1/TinyJensen-1.1B-Chat-fp16/special_tokens_map.json" + }, + { + "filename": "tokenizer.json", + "url": "https://delta.jan.ai/dist/models///tensorrt-llm-v0.7.1/TinyJensen-1.1B-Chat-fp16/tokenizer.json" + }, + { + "filename": "tokenizer_config.json", + "url": "https://delta.jan.ai/dist/models///tensorrt-llm-v0.7.1/TinyJensen-1.1B-Chat-fp16/tokenizer_config.json" + }, + { + "filename": "model.cache", + "url": "https://delta.jan.ai/dist/models///tensorrt-llm-v0.7.1/TinyJensen-1.1B-Chat-fp16/model.cache" + } + ], + "id": "tinyjensen-1.1b-chat-fp16", + "object": "model", + "name": "TinyJensen 1.1B Chat FP16", + "version": "1.0", + "description": "Do you want to chat with Jensen Huan? Here you are", + "format": "TensorRT-LLM", + "settings": { + "ctx_len": 2048, + "text_model": false + }, + "parameters": { + "max_tokens": 4096 + }, + "metadata": { + "author": "LLama", + "tags": [ + "TensorRT-LLM", + "1B", + "Finetuned" + ], + "size": 2151000000 + }, + "engine": "nitro-tensorrt-llm" +} +``` + +::: + +### Using a TensorRT-LLM Model + +You can just select and use a TensorRT-LLM model from Jan's Thread interface. + +- Jan will automatically start the TensorRT-LLM model engine in the background +- You may encounter a pop-up from Windows Security, asking for Nitro to allow public and private network access + +:::info[Why does Nitro need network access?] + +- This is because Jan runs TensorRT-LLM using the [Nitro Server](https://github.com/janhq/nitro-tensorrt-llm/) +- Jan makes network calls to the Nitro server running on your computer on a separate port + +::: + +### Configure Settings + +:::note +coming soon +::: + +## Troubleshooting + +## Extension Details + +Jan's TensorRT-LLM Extension is built on top of the open source [Nitro TensorRT-LLM Server](https://github.com/janhq/nitro-tensorrt-llm), a C++ inference server on top of TensorRT-LLM that provides an OpenAI-compatible API. + +### Manual Build + +To manually build the artifacts needed to run the server and TensorRT-LLM, you can reference the source code. [Read here](https://github.com/janhq/nitro-tensorrt-llm?tab=readme-ov-file#quickstart). + +### Uninstall Extension + +1. Quit the app +2. Go to Settings > Extensions +3. Delete the entire Extensions folder. +4. Reopen the app, only the default extensions should be restored. + +## Build your own TensorRT models + +:::info +coming soon +::: diff --git a/docs/docs/guides/06-using-extensions/README.mdx b/docs/docs/guides/remote-providers/README.mdx similarity index 54% rename from docs/docs/guides/06-using-extensions/README.mdx rename to docs/docs/guides/remote-providers/README.mdx index 015fc5948..0e3f6b747 100644 --- a/docs/docs/guides/06-using-extensions/README.mdx +++ b/docs/docs/guides/remote-providers/README.mdx @@ -1,18 +1,20 @@ --- -title: Using Extensions -slug: /guides/using-extensions/ +title: Remote Engines +slug: /guides/engines/remote +sidebar_position: 14 description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, - using-extensions, + large language models, + build extension, ] --- diff --git a/docs/docs/guides/remote-providers/assets/azure.png b/docs/docs/guides/remote-providers/assets/azure.png new file mode 100644 index 000000000..b5b9dc46a Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/azure.png differ diff --git a/docs/docs/guides/remote-providers/assets/cont.png b/docs/docs/guides/remote-providers/assets/cont.png new file mode 100644 index 000000000..4803a6a39 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/cont.png differ diff --git a/docs/docs/guides/remote-providers/assets/discordflow.png b/docs/docs/guides/remote-providers/assets/discordflow.png new file mode 100644 index 000000000..904354942 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/discordflow.png differ diff --git a/docs/docs/guides/remote-providers/assets/interpreter.png b/docs/docs/guides/remote-providers/assets/interpreter.png new file mode 100644 index 000000000..c735e33ca Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/interpreter.png differ diff --git a/docs/docs/guides/remote-providers/assets/jan-ai-continue-ask.png b/docs/docs/guides/remote-providers/assets/jan-ai-continue-ask.png new file mode 100644 index 000000000..5ccc431d5 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/jan-ai-continue-ask.png differ diff --git a/docs/docs/guides/remote-providers/assets/jan-ai-continue-comment.gif b/docs/docs/guides/remote-providers/assets/jan-ai-continue-comment.gif new file mode 100644 index 000000000..d7b5a0ec7 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/jan-ai-continue-comment.gif differ diff --git a/docs/docs/guides/remote-providers/assets/jan-ai-discord-repo.png b/docs/docs/guides/remote-providers/assets/jan-ai-discord-repo.png new file mode 100644 index 000000000..77ec70192 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/jan-ai-discord-repo.png differ diff --git a/docs/docs/guides/07-integrations/assets/01-continue-edit-demo.gif b/docs/docs/guides/remote-providers/assets/jan-ai-openrouter.gif similarity index 52% rename from docs/docs/guides/07-integrations/assets/01-continue-edit-demo.gif rename to docs/docs/guides/remote-providers/assets/jan-ai-openrouter.gif index 743b5d02b..fa45ec182 100644 Binary files a/docs/docs/guides/07-integrations/assets/01-continue-edit-demo.gif and b/docs/docs/guides/remote-providers/assets/jan-ai-openrouter.gif differ diff --git a/docs/docs/guides/remote-providers/assets/lmstudio.png b/docs/docs/guides/remote-providers/assets/lmstudio.png new file mode 100644 index 000000000..bffd0a00d Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/lmstudio.png differ diff --git a/docs/docs/guides/remote-providers/assets/mistral.png b/docs/docs/guides/remote-providers/assets/mistral.png new file mode 100644 index 000000000..0efeaef83 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/mistral.png differ diff --git a/docs/docs/guides/remote-providers/assets/ollama.png b/docs/docs/guides/remote-providers/assets/ollama.png new file mode 100644 index 000000000..02a3278bf Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/ollama.png differ diff --git a/docs/docs/guides/remote-providers/assets/openrouter.png b/docs/docs/guides/remote-providers/assets/openrouter.png new file mode 100644 index 000000000..5f051ee76 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/openrouter.png differ diff --git a/docs/docs/guides/remote-providers/assets/raycast-image.png b/docs/docs/guides/remote-providers/assets/raycast-image.png new file mode 100644 index 000000000..c0af00060 Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/raycast-image.png differ diff --git a/docs/docs/guides/remote-providers/assets/raycast.png b/docs/docs/guides/remote-providers/assets/raycast.png new file mode 100644 index 000000000..454d81f4b Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/raycast.png differ diff --git a/docs/docs/guides/remote-providers/assets/vscode.png b/docs/docs/guides/remote-providers/assets/vscode.png new file mode 100644 index 000000000..f361e16ab Binary files /dev/null and b/docs/docs/guides/remote-providers/assets/vscode.png differ diff --git a/docs/docs/guides/remote-providers/claude.mdx b/docs/docs/guides/remote-providers/claude.mdx new file mode 100644 index 000000000..968a469fe --- /dev/null +++ b/docs/docs/guides/remote-providers/claude.mdx @@ -0,0 +1,22 @@ +--- +title: Claude +sidebar_position: 6 +slug: /guides/engines/claude +description: A step-by-step guide on how to integrate Jan with LM Studio. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Claude integration, + claude, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/remote-providers/groq.mdx b/docs/docs/guides/remote-providers/groq.mdx new file mode 100644 index 000000000..c9837bcfc --- /dev/null +++ b/docs/docs/guides/remote-providers/groq.mdx @@ -0,0 +1,84 @@ +--- +title: Groq +sidebar_position: 5 +slug: /guides/engines/groq +description: Learn how to integrate Groq API with Jan for enhanced functionality. +keywords: + [ + Groq API, + Jan, + Jan AI, + ChatGPT alternative, + conversational AI, + large language model, + integration, + Groq integration, + API integration + ] +--- + +## How to Integrate Mistral AI with Jan + +This guide provides step-by-step instructions on integrating the Groq API with Jan, enabling users to leverage Groq's capabilities within Jan's conversational interface. + +Before proceeding, ensure you have the following: +- Access to the Jan Application +- Groq API credentials + +## Integration Steps + +### Step 1: Obtain Groq API Credentials + +If you haven't already, sign up for the Groq API and obtain your API credentials. +Obtain Groq API keys from your [Groq Console](https://console.groq.com/keys). + +### Step 2: Configure Jan Settings + +1. Insert the Groq AI API key into `~/jan/engines/openai.json`. + +```json title="~/jan/engines/openai.json" +{ + "full_url": "https://api.groq.com/openai/v1/chat/completions", + "api_key": "" +} +``` + +### Step 3: Enable Groq Integration + +To set up the configuration for Groq in Jan, follow these steps: + +1. Navigate to `~/jan/models`. +2. Create a folder named `groq`. +3. Inside the groq folder, create a model.json file with the specified settings: +```json title="~/jan/models/groq/model.json +{ + "id": "mixtral-8x7b-32768", + "object": "model", + "name": "Groq Integration", + "version": "1.0", + "description": "Integration with Groq API for enhanced functionality.", + "format": "api", + "sources": [], + "settings": {}, + "parameters": {}, + "metadata": { + "author": "Mistral", + "tags": ["Groq Integration"] + }, + "engine": "openai" +} +``` + +### Step 4: Start the Model + +1. Restart Jan and navigate to the **Hub**. +2. Locate your model and click the **Use** button. + +## Troubleshooting + +If you encounter any issues during the integration process or while using Groq with Jan, consider the following troubleshooting steps: + +- Double-check your API credentials and ensure they are correctly entered. +- Verify that the Groq integration is enabled within Jan's settings. +- Check for any error messages or logs that may provide insight into the issue. +- Reach out to Groq API support for assistance if needed. \ No newline at end of file diff --git a/docs/docs/guides/remote-providers/mistral.mdx b/docs/docs/guides/remote-providers/mistral.mdx new file mode 100644 index 000000000..e93a02183 --- /dev/null +++ b/docs/docs/guides/remote-providers/mistral.mdx @@ -0,0 +1,89 @@ +--- +title: Mistral AI +sidebar_position: 4 +slug: /guides/engines/mistral +description: A step-by-step guide on how to integrate Jan with Mistral AI. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Mistral integration, + ] +--- + +## How to Integrate Mistral AI with Jan + +[Mistral AI](https://docs.mistral.ai/) provides two ways to use their Large Language Models (LLM): + +1. API +2. Open-source models on Hugging Face. + +To integrate Jan with Mistral AI, follow the steps below: + +:::note +This tutorial demonstrates integrating Mistral AI with Jan using the API. +::: + +### Step 1: Configure Mistral API Key + +1. Obtain Mistral API keys from your [Mistral](https://console.mistral.ai/user/api-keys/) dashboard. +2. Insert the Mistral AI API key into `~/jan/engines/openai.json`. + +```json title="~/jan/engines/openai.json" +{ + "full_url": "https://api.mistral.ai/v1/chat/completions", + "api_key": "" +} +``` + +### Step 2: Model Configuration + +1. Navigate to `~/jan/models`. +2. Create a folder named `mistral-(modelname)` (e.g., `mistral-tiny`). +3. Inside, create a `model.json` file with these settings: + - Set `id` to the Mistral AI model ID. + - Set `format` to `api`. + - Set `engine` to `openai`. + - Set `state` to `ready`. + +```json title="~/jan/models/mistral-tiny/model.json" +{ + "sources": [ + { + "filename": "mistral-tiny", + "url": "https://mistral.ai/" + } + ], + "id": "mistral-tiny", + "object": "model", + "name": "Mistral-7B-v0.2 (Tiny Endpoint)", + "version": "1.0", + "description": "Currently powered by Mistral-7B-v0.2, a better fine-tuning of the initial Mistral-7B released, inspired by the fantastic work of the community.", + "format": "api", + "settings": {}, + "parameters": {}, + "metadata": { + "author": "Mistral AI", + "tags": ["General", "Big Context Length"] + }, + "engine": "openai" +} +``` + +:::note + +- For more details regarding the `model.json` settings and parameters fields, please see [here](/guides/engines/remote-server/#modeljson). +- Mistral AI offers various endpoints. Refer to their [endpoint documentation](https://docs.mistral.ai/platform/endpoints/) to select the one that fits your requirements. Here, we use the `mistral-tiny` model as an example. + ::: + +### Step 3: Start the Model + +1. Restart Jan and navigate to the **Hub**. +2. Locate your model and click the **Use** button. diff --git a/docs/docs/guides/remote-providers/openai.mdx b/docs/docs/guides/remote-providers/openai.mdx new file mode 100644 index 000000000..f0ac032c9 --- /dev/null +++ b/docs/docs/guides/remote-providers/openai.mdx @@ -0,0 +1,83 @@ +--- +title: Azure OpenAI +sidebar_position: 2 +slug: /guides/engines/openai +description: A step-by-step guide on how to integrate Jan with Azure OpenAI. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + integration, + Azure OpenAI Service, + ] +--- + +## Integrate Azure OpenAI with Jan + +The [Azure OpenAI Service](https://learn.microsoft.com/en-us/azure/ai-services/openai/overview?source=docs) offers robust APIs, making it simple for you to incorporate OpenAI's language models into your applications. You can integrate Azure OpenAI with Jan by following the steps below: + +### Step 1: Configure Azure OpenAI Service API Key + +1. Set up and deploy the Azure OpenAI Service. +2. Once you've set up and deployed Azure OpenAI Service, you can find the endpoint and API key in [Azure OpenAI Studio](https://oai.azure.com/) under `Chat` > `View code`. + +3. Set up the endpoint and API key for Azure OpenAI Service in the `~/jan/engines/openai.json` file. + +```json title="~/jan/engines/openai.json" +{ + // https://hieujan.openai.azure.com/openai/deployments/gpt-35-hieu-jan/chat/completions?api-version=2023-07-01-preview + "full_url": "https://.openai.azure.com/openai/deployments//chat/completions?api-version=", + "api_key": "" +} +``` + +### Step 2: Model Configuration + +1. Go to the `~/jan/models` directory. +2. Make a new folder called `(your-deployment-name)`, for example `gpt-35-hieu-jan`. +3. Create a `model.json` file inside the folder with the specified configurations: + +- Match the `id` property with both the folder name and your deployment name. +- Set the `format` property as `api`. +- Choose `openai` for the `engine` property. +- Set the `state` property as `ready`. + +```json title="~/jan/models/gpt-35-hieu-jan/model.json" +{ + "sources": [ + { + "filename": "azure_openai", + "url": "https://hieujan.openai.azure.com" + } + ], + "id": "gpt-35-hieu-jan", + "object": "model", + "name": "Azure OpenAI GPT 3.5", + "version": "1.0", + "description": "Azure Open AI GPT 3.5 model is extremely good", + "format": "api", + "settings": {}, + "parameters": {}, + "metadata": { + "author": "OpenAI", + "tags": ["General", "Big Context Length"] + }, + "engine": "openai" +} +``` + +:::note +For more details regarding the `model.json` settings and parameters fields, please see [here](/guides/engines/remote-server/#modeljson). +::: + +### Step 3: Start the Model + +1. Restart Jan and go to the Hub. +2. Find your model in Jan application and click on the Use button. diff --git a/docs/docs/guides/remote-providers/remote-server-integration.mdx b/docs/docs/guides/remote-providers/remote-server-integration.mdx new file mode 100644 index 000000000..e96a5ba3d --- /dev/null +++ b/docs/docs/guides/remote-providers/remote-server-integration.mdx @@ -0,0 +1,195 @@ +--- +title: Remote Server Integration +sidebar_position: 1 +slug: /guides/engines/remote-server +description: A step-by-step guide on how to set up Jan to connect with any remote or local API server. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + import-models-manually, + remote server, + OAI compatible, + ] +--- + +This guide will show you how to configure Jan as a client and point it to any remote & local (self-hosted) API server. + +## OpenAI Platform Configuration + +### 1. Create a Model JSON + +1. In `~/jan/models`, create a folder named `gpt-3.5-turbo-16k`. + +2. In this folder, add a `model.json` file with Filename as `model.json`, `id` matching folder name, `Format` as `api`, `Engine` as `openai`, and `State` as `ready`. + +```json title="~/jan/models/gpt-3.5-turbo-16k/model.json" +{ + "sources": [ + { + "filename": "openai", + "url": "https://openai.com" + } + ], + "id": "gpt-3.5-turbo-16k", + "object": "model", + "name": "OpenAI GPT 3.5 Turbo 16k", + "version": "1.0", + "description": "OpenAI GPT 3.5 Turbo 16k model is extremely good", + "format": "api", + "settings": {}, + "parameters": {}, + "metadata": { + "author": "OpenAI", + "tags": ["General", "Big Context Length"] + }, + "engine": "openai" +} +``` + +### `model.json` + +The `model.json` file is used to set up your local models. +:::note + +- If you've set up your model's configuration in `nitro.json`, please note that `model.json` can overwrite the settings. +- When using OpenAI models like GPT-3.5 and GPT-4, you can use the default settings in `model.json` file. + ::: + +There are two important fields in model.json that you need to setup: + +#### Settings + +This is the field where to set your engine configurations, there are two imporant field that you need to define for your local models: + +| Term | Description | +| ----------------- | --------------------------------------------------------------------- | +| `ctx_len` | Defined based on the model's context size. | +| `prompt_template` | Defined based on the model's trained template (e.g., ChatML, Alpaca). | + +To set up the `prompt_template` based on your model, follow the steps below: 1. Visit [Hugging Face](https://huggingface.co/), an open-source machine learning platform. 2. Find the current model that you're using (e.g., [Gemma 7b it](https://huggingface.co/google/gemma-7b-it)). 3. Review the text and identify the template. + +#### Parameters + +`parameters` is the adjustable settings that affect how your model operates or processes the data. +The fields in `parameters` are typically general and can be the same across models. An example is provided below: + +```json +"parameters":{ + "temperature": 0.7, + "top_p": 0.95, + "stream": true, + "max_tokens": 4096, + "frequency_penalty": 0, + "presence_penalty": 0 +} +``` + +:::tip + +- You can find the list of available models in the [OpenAI Platform](https://platform.openai.com/docs/models/overview). +- The `id` property needs to match the model name in the list. + - For example, if you want to use the [GPT-4 Turbo](https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo), you must set the `id` property to `gpt-4-1106-preview`. + +::: + +### 2. Configure OpenAI API Keys + +1. Find your API keys in the [OpenAI Platform](https://platform.openai.com/api-keys). +2. Set the OpenAI API keys in `~/jan/engines/openai.json` file. + +```json title="~/jan/engines/openai.json" +{ + "full_url": "https://api.openai.com/v1/chat/completions", + "api_key": "sk-" +} +``` + +### 3. Start the Model + +Restart Jan and navigate to the Hub. Then, select your configured model and start the model. + +## Engines with OAI Compatible Configuration + +This section will show you how to configure a client connection to a remote/local server using Jan's API server running model `mistral-ins-7b-q4` as an example. + +:::note + +Currently, you can only connect to one OpenAI-compatible endpoint at a time. + +::: + +### 1. Configure a Client Connection + +1. Navigate to the `~/jan/engines` folder. +2. Modify the `openai.json file`. + +:::note + +Please note that currently, the code that supports any OpenAI-compatible endpoint only reads `engine/openai.json` file. Thus, it will not search any other files in this directory. + +::: + +3. Configure `full_url` properties with the endpoint server that you want to connect. For example, if you're going to communicate to Jan's API server, you can configure it as follows: + +```json title="~/jan/engines/openai.json" +{ + // "full_url": "https://:/v1/chat/completions" + "full_url": "https://:1337/v1/chat/completions" + // Skip api_key if your local server does not require authentication + // "api_key": "sk-" +} +``` + +### 2. Create a Model JSON + +1. In `~/jan/models`, create a folder named `mistral-ins-7b-q4`. + +2. In this folder, add a `model.json` file with Filename as `model.json`, ensure the following configurations: + +- `id` matching folder name. +- `Format` set to `api`. +- `Engine` set to `openai` +- `State` set to `ready`. + +```json title="~/jan/models/mistral-ins-7b-q4/model.json" +{ + "sources": [ + { + "filename": "janai", + "url": "https://jan.ai" + } + ], + "id": "mistral-ins-7b-q4", + "object": "model", + "name": "Mistral Instruct 7B Q4 on Jan API Server", + "version": "1.0", + "description": "Jan integration with remote Jan API server", + "format": "api", + "settings": {}, + "parameters": {}, + "metadata": { + "author": "MistralAI, The Bloke", + "tags": ["remote", "awesome"] + }, + "engine": "openai" +} +``` + +### 3. Start the Model + +1. Restart Jan and navigate to the **Hub**. +2. Locate your model and click the **Use** button. + +:::info[Assistance and Support] + +If you have questions or want more preconfigured GGUF models, please join our [Discord community](https://discord.gg/Dt7MxDyNNZ) for support, updates, and discussions. + +::: diff --git a/docs/docs/guides/troubleshooting.mdx b/docs/docs/guides/troubleshooting.mdx new file mode 100644 index 000000000..fda83bb49 --- /dev/null +++ b/docs/docs/guides/troubleshooting.mdx @@ -0,0 +1,458 @@ +--- +title: Troubleshooting +slug: /troubleshooting +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 21 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + troubleshooting, + error codes, + broken build, + something amiss, + unexpected token, + undefined issue, + permission denied, + ] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Broken Build + +To resolve the issue where your Jan is stuck in a broken build after installation. + + + + #### 1. Uninstall Jan + + Delete Jan from your `/Applications` folder. + + #### 2. Delete Application Data, Cache, and User Data + + ```zsh + # Step 1: Delete the application data + ## Newer versions + rm -rf ~/Library/Application\ Support/jan + ## Versions 0.2.0 and older + rm -rf ~/Library/Application\ Support/jan-electron + + # Step 2: Clear application cache + rm -rf ~/Library/Caches/jan* + + # Step 3: Remove all user data + rm -rf ~/jan + ``` + + #### 3. Additional Step for Versions Before 0.4.2 + + If you are using a version before `0.4.2`, you need to run the following commands: + + ```zsh + ps aux | grep nitro + # Looks for processes like `nitro` and `nitro_arm_64`, and kill them one by one by process ID + kill -9 + ``` + + #### 4. Download the Latest Version + + Download the latest version of Jan from our [homepage](https://jan.ai/). + + + + #### 1. Uninstall Jan + + To uninstall Jan on Windows, use the [Windows Control Panel](https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98). + + #### 2. Delete Application Data, Cache, and User Data + + ```sh + # You can delete the `/Jan` directory in Windows's AppData Directory by visiting the following path `%APPDATA%\Jan` + cd C:\Users\%USERNAME%\AppData\Roaming + rmdir /S jan + ``` + + #### 3. Additional Step for Versions Before 0.4.2 + + If you are using a version before `0.4.2`, you need to run the following commands: + + ```sh + # Find the process ID (PID) of the nitro process by filtering the list by process name + tasklist | findstr "nitro" + # Once you have the PID of the process you want to terminate, run the `taskkill` + taskkill /F /PID + ``` + + #### 4. Download the Latest Version + + Download the latest version of Jan from our [homepage](https://jan.ai/). + + + + + #### 1. Uninstall Jan + + + + + To uninstall Jan, you should use your package manager's uninstall or remove option. + + This will return your system to its state before the installation of Jan. + + This method can also reset all settings if you are experiencing any issues with Jan. + + + + + To uninstall Jan, run the following command.MDXContent + + ```sh + sudo apt-get remove jan + # where jan is the name of Jan package + ``` + + This will return your system to its state before the installation of Jan. + + This method can also be used to reset all settings if you are experiencing any issues with Jan. + + + + + To uninstall Jan, you can uninstall Jan by deleting the `.AppImage` file. + + If you wish to completely remove all user data associated with Jan after uninstallation, you can delete the user data at `~/jan`. + + This method can also reset all settings if you are experiencing any issues with Jan. + + + + + #### 2. Delete Application Data, Cache, and User Data + + ```sh + # You can delete the user data folders located at the following `~/jan` + rm -rf ~/jan + ``` + + #### 3. Additional Step for Versions Before 0.4.2 + + If you are using a version before `0.4.2`, you need to run the following commands: + + ```zsh + ps aux | grep nitro + # Looks for processes like `nitro` and `nitro_arm_64`, and kill them one by one by process ID + kill -9 + ``` + + #### 4. Download the Latest Version + + Download the latest version of Jan from our [homepage](https://jan.ai/). + + + + +By following these steps, you can cleanly uninstall and reinstall Jan, ensuring a smooth and error-free experience with the latest version. + +:::note + +Before reinstalling Jan, ensure it's completely removed from all shared spaces if it's installed on multiple user accounts on your device. + +::: + +## Troubleshooting NVIDIA GPU + +To resolve issues when the Jan app does not utilize the NVIDIA GPU on Windows and Linux systems. + +#### 1. Ensure GPU Mode Requirements + + + + + ##### NVIDIA Driver + + - Install an [NVIDIA Driver](https://www.nvidia.com/Download/index.aspx) supporting CUDA 11.7 or higher. + - Use the following command to verify the installation: + + ```sh + nvidia-smi + ``` + + ##### CUDA Toolkit + + - Install a [CUDA toolkit](https://developer.nvidia.com/cuda-downloads) compatible with your NVIDIA driver. + - Use the following command to verify the installation: + + ```sh + nvcc --version + ``` + + + + + ##### NVIDIA Driver + + - Install an [NVIDIA Driver](https://www.nvidia.com/Download/index.aspx) supporting CUDA 11.7 or higher. + - Use the following command to verify the installation: + + ```sh + nvidia-smi + ``` + + ##### CUDA Toolkit + + - Install a [CUDA toolkit](https://developer.nvidia.com/cuda-downloads) compatible with your NVIDIA driver. + - Use the following command to verify the installation: + + ```sh + nvcc --version + ``` + ##### Linux Specifics + + - Ensure that `gcc-11`, `g++-11`, `cpp-11`, or higher is installed. + - See [instructions](https://gcc.gnu.org/projects/cxx-status.html#cxx17) for Ubuntu installation. + + - **Post-Installation Actions**: Add CUDA libraries to `LD_LIBRARY_PATH`. + - Follow the [Post-installation Actions](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions) instructions. + + + + +#### 2. Switch to GPU Mode + +Jan defaults to CPU mode but automatically switches to GPU mode if your system supports it, selecting the GPU with the highest VRAM. Check this setting in `Settings` > `Advanced Settings`. + +##### Troubleshooting Tips + +If GPU mode isn't enabled by default: + +1. Confirm that you have installed an NVIDIA driver supporting CUDA 11.7 or higher. Refer to [CUDA compatibility](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#binary-compatibility__table-toolkit-driver). +2. Ensure compatibility of the CUDA toolkit with your NVIDIA driver. Refer to [CUDA compatibility](https://docs.nvidia.com/deploy/cuda-compatibility/index.html#binary-compatibility__table-toolkit-driver). +3. For Linux, add CUDA's `.so` libraries to the `LD_LIBRARY_PATH`. For Windows, ensure that CUDA's `.dll` libraries are in the PATH. Refer to [Windows setup](https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#environment-setup). + +#### 3. Check GPU Settings + +1. Navigate to `Settings` > `Advanced Settings` > `Jan Data Folder` to access GPU settings. +2. Open the `settings.json` file in the `settings` folder. Here's an example: + +```json title="~/jan/settings/settings.json" +{ + "notify": true, + "run_mode": "gpu", + "nvidia_driver": { + "exist": true, + "version": "531.18" + }, + "cuda": { + "exist": true, + "version": "12" + }, + "gpus": [ + { + "id": "0", + "vram": "12282" + }, + { + "id": "1", + "vram": "6144" + }, + { + "id": "2", + "vram": "6144" + } + ], + "gpu_highest_vram": "0" +} +``` + +#### 4. Restart Jan + +Restart Jan application to make sure it works. + +##### Troubleshooting Tips + +- Ensure `nvidia_driver` and `cuda` fields indicate installed software. +- If `gpus` field is empty or lacks your GPU, check NVIDIA driver and CUDA toolkit installations. +- For further assistance, share the `settings.json` file. + +#### Tested Configurations + +- **Windows 11 Pro 64-bit:** + + - GPU: NVIDIA GeForce RTX 4070ti + - CUDA: 12.2 + - NVIDIA driver: 531.18 (Bare metal) + +- **Ubuntu 22.04 LTS:** + + - GPU: NVIDIA GeForce RTX 4070ti + - CUDA: 12.2 + - NVIDIA driver: 545 (Bare metal) + +- **Ubuntu 20.04 LTS:** + + - GPU: NVIDIA GeForce GTX 1660ti + - CUDA: 12.1 + - NVIDIA driver: 535 (Proxmox VM passthrough GPU) + +- **Ubuntu 18.04 LTS:** + - GPU: NVIDIA GeForce GTX 1660ti + - CUDA: 12.1 + - NVIDIA driver: 535 (Proxmox VM passthrough GPU) + +#### Common Issues and Solutions + +1. If the issue persists, try installing the [Nightly version](/guides/quickstart/#nightly-releases). +2. Ensure your (V)RAM is accessible; some users with virtual RAM may require additional configuration. +3. Seek assistance in [Jan Discord](https://discord.gg/mY69SZaMaC). + +## How to Get Error Logs + +To get the error logs of your Jan application, follow the steps below: + +#### Jan Application + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. On the **Jan Data Folder** click the **folder icon (📂)** to access the data. +5. Click the **logs** folder. + +#### Jan UI + +1. Open your Unix or Linux terminal. +2. Use the following commands to get the recent 50 lines of log files: + +```bash +tail -n 50 ~/jan/logs/app.log + +``` + +#### Jan API Server + +1. Open your Unix or Linux terminal. +2. Use the following commands to get the recent 50 lines of log files: + +```bash +tail -n 50 ~/jan/logs/server.log + +``` + +:::warning +Ensure to redact any private or sensitive information when sharing logs or error details. +::: + +:::note +If you have any questions or are looking for support, please don't hesitate to contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ) or create a new issue in our [GitHub repository](https://github.com/janhq/jan/issues/new/choose). +::: + +## Permission Denied + +When running Jan, you might encounter the following error message: + +``` +Uncaught (in promise) Error: Error invoking layout-480796bff433a3a3.js:538 remote method 'installExtension': +Error Package /Applications/Jan.app/Contents/Resources/app.asar.unpacked/pre-install/janhq-assistant-extension-1.0.0.tgz does not contain a valid manifest: +Error EACCES: permission denied, mkdtemp '/Users/username/.npm/_cacache/tmp/ueCMn4' +``` + +This error mainly caused by permission problem during installation. To resolve this issue, follow these steps: + +1. Open your terminal. + +2. Execute the following command to change ownership of the `~/.npm` directory to the current user: + +```sh +sudo chown -R $(whoami) ~/.npm +``` + +:::note + +- This command ensures that the necessary permissions are granted for Jan installation, resolving the encountered error. +- If you have any questions or are looking for support, please don't hesitate to contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ) or create a new issue in our [GitHub repository](https://github.com/janhq/jan/issues/new/choose). + ::: + +## Something's Amiss + +When you start a chat with a model and encounter with a Something's Amiss error, here's how to resolve it: + +1. Ensure your OS is up to date. +2. Choose a model smaller than 80% of your hardware's V/RAM. For example, on an 8GB machine, opt for models smaller than 6GB. +3. Install the latest [Nightly release](/guides/quickstart/#nightly-releases) or [clear the application cache](/troubleshooting/#broken-build) when reinstalling Jan. +4. Confirm your V/RAM accessibility, particularly if using virtual RAM. +5. Nvidia GPU users should download [CUDA](https://developer.nvidia.com/cuda-downloads). +6. Linux users, ensure your system meets the requirements of gcc 11, g++ 11, cpp 11, or higher. Refer to this [link](/troubleshooting/#troubleshooting-nvidia-gpu) for details. +7. You might use the wrong port when you [check the app logs](/troubleshooting/#how-to-get-error-logs) and encounter the Bind address failed at 127.0.0.1:3928 error. To check the port status, try use the `netstat` command, like the following: + + + + ```sh + netstat -an | grep 3928 + ``` + + + ```sh + netstat -ano | find "3928" + tasklist /fi "PID eq 3928" + ``` + + + ```sh + netstat -anpe | grep "3928" + ``` + + + +:::note + +`Netstat` displays the contents of various network-related data structures for active connections + +::: + +:::tip + +Jan uses the following ports: + +- Nitro: `3928` +- Jan API Server: `1337` +- Jan Documentation: `3001` + +::: + +:::note +If you have any questions or are looking for support, please don't hesitate to contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ) or create a new issue in our [GitHub repository](https://github.com/janhq/jan/issues/new/choose). +::: + +## Undefined Issue + +Encountering an `undefined issue` in Jan is caused by errors related to the Nitro tool or other internal processes. It can be resolved through the following steps: + +1. Clearing the Jan folder and then reopen the application to determine if the problem persists +2. Manually run the nitro tool located at `~/jan/extensions/@janhq/inference-nitro-extensions/dist/bin/(your-os)/nitro` to check for error messages. +3. Address any nitro error messages that are identified and reassess the persistence of the issue. +4. Reopen Jan to determine if the problem has been resolved after addressing any identified errors. +5. If the issue persists, please share the [app logs](/troubleshooting/#how-to-get-error-logs) via [Jan Discord](https://discord.gg/mY69SZaMaC) for further assistance and troubleshooting. + +:::note +If you have any questions or are looking for support, please don't hesitate to contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ) or create a new issue in our [GitHub repository](https://github.com/janhq/jan/issues/new/choose). +::: + +## Unexpected Token + +Encountering the `Unexpected token` error when initiating a chat with OpenAI models mainly caused by either your OpenAI key or where you access your OpenAI from. This issue can be solved through the following steps: + +1. Obtain an OpenAI API key from [OpenAI's developer platform](https://platform.openai.com/) and integrate it into your application. + +2. Trying a VPN could potentially solve the issue, especially if it's related to region locking for accessing OpenAI services. By connecting through a VPN, you may bypass such restrictions and successfully initiate chats with OpenAI models. + +:::note +If you have any questions or are looking for support, please don't hesitate to contact us via our [Discord community](https://discord.gg/Dt7MxDyNNZ) or create a new issue in our [GitHub repository](https://github.com/janhq/jan/issues/new/choose). +::: diff --git a/docs/docs/guides/user-guides/advanced-settings.mdx b/docs/docs/guides/user-guides/advanced-settings.mdx new file mode 100644 index 000000000..9a26e952f --- /dev/null +++ b/docs/docs/guides/user-guides/advanced-settings.mdx @@ -0,0 +1,271 @@ +--- +title: Advanced Settings +slug: /guides/advanced +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 11 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + Advanced Settings, + HTTPS Proxy, + SSL, + settings, + Jan settings, + ] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +This guide will show you how to use the advanced settings in Jan. + +## Access the Advanced Settings + +To access the Jan's advanced settings, follow the steps below: + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. You can configure the following settings: + +| Feature | Description | +| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Keyboard Shortcuts** | Keyboard shortcuts speed up your workflow. For a quick overview of useful keyboard shortcuts, refer to the list [below](advanced-settings.mdx#keyboard-shortcuts). | +| **Experimental Mode** | Enables experimental features that may be unstable. | +| **GPU Acceleration** | Enables the boosting of your model performance by using your GPU devices for acceleration. | +| **Jan Data Folder** | Location for messages, model configurations, and user data. Changeable to a different location. | +| **HTTPS Proxy & Ignore SSL Certificate** | Use a proxy server for internet connections and ignore SSL certificates for self-signed certificates. Please check out the guide on how to set up your own HTTPS proxy server [here](advanced-settings.mdx#https-proxy). | +| **Clear Logs** | Removes all logs from the Jan application. | +| **Reset To Factory Default** | Resets the application to its original state, deleting all data including model customizations and conversation history. | + +## Keyboard Shortcuts + +Here are some of the keyboard shortcuts that you can use in Jan. + + + +| Combination | Description | +| --------------- | -------------------------------------------------- | +| `⌘ E` | Show list your models | +| `⌘ K` | Show list navigation pages | +| `⌘ B` | Toggle collapsible left panel | +| `⌘ ,` | Navigate to setting page | +| `Enter` | Send a message | +| `Shift + Enter` | Insert new line in input box | +| `Arrow Up` | Navigate to the previous option (within the search dialog) | +| `Arrow Down` | Navigate to the next option (within the search dialog) | + + + + +| Combination | Description | +| --------------- | ---------------------------------------------------------- | +| `Ctrl E` | Show list your models | +| `Ctrl K` | Show list navigation pages | +| `Ctrl B` | Toggle collapsible left panel | +| `Ctrl ,` | Navigate to setting page | +| `Enter` | Send a message | +| `Shift + Enter` | Insert new line in input box | +| `Arrow Up` | Navigate to the previous option (within the search dialog) | +| `Arrow Down` | Navigate to the next option (within the search dialog) | + + + + +| Combination | Description | +| --------------- | ---------------------------------------------------------- | +| `Ctrl E` | Show list your models | +| `Ctrl K` | Show list navigation pages | +| `Ctrl B` | Toggle collapsible left panel | +| `Ctrl ,` | Navigate to setting page | +| `Enter` | Send a message | +| `Shift + Enter` | Insert new line in input box | +| `Arrow Up` | Navigate to the previous option (within the search dialog) | +| `Arrow Down` | Navigate to the next option (within the search dialog) | + + + + +:::note +The keyboard shortcuts are customizable. +::: + +## Enable the Experimental Mode + +To try out new fetures that are still in testing phase, follow the steps below: + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. On the **Experimental Mode** click the slider to enable. + +## Enable the GPU Acceleration + +To enhance your model performance, follow the steps below: + +:::warning +Ensure that you have read the [troubleshooting guide](/troubleshooting/#troubleshooting-nvidia-gpu) here for further assistance. +::: + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. On the **GPU Acceleration** click the slider to enable. + +## Access the Jan Data Folder + +To access the folder where messages, model configurations and user data are stored, follow the steps below: + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. On the **Jan Data Folder** click the **folder icon (📂)** to access the data or the **pencil icon (✏️)** to change the folder where you keep your data. + +## HTTPS Proxy + +HTTPS Proxy encrypts data between your browser and the internet, making it hard for outsiders to intercept or read. It also helps you to maintain your privacy and security while being able to bypass regional restrictions on internet. + +:::note + +- When configuring Jan using an HTTPS proxy, the speed of the downloading model may be affected due to the encryption and decryption process. It also depends on the networking of the cloud service provider. +- HTTPS Proxy does not affect the remote model usage. + +::: + +### Setting Up Your Own HTTPS Proxy Server + +This guide provides a simple overview of setting up an HTTPS proxy server using **Squid**, a widely used open-source proxy software. + +:::note +Other software options are also available depending on your requirements. +::: + +#### Step 1: Choosing a Server + +1. Firstly, you need to choose a server to host your proxy server. + :::note + We recommend using a well-known cloud provider service like: + +- Amazon AWS +- Google Cloud +- Microsoft Azure +- Digital Ocean + ::: + +2. Ensure that your server has a public IP address and is accessible from the internet. + +#### Step 2: Installing Squid + +Instal **Squid** using the following command: + +```bash +sudo apt-get update +sudo apt-get install squid +``` + +#### Step 3: Configure Squid for HTTPS + +To enable HTTPS, you will need to configure Squid with SSL support. + +1. Squid requires an SSL certificate to be able to handle HTTPS traffic. You can generate a self-signed certificate or obtain one from a Certificate Authority (CA). For a self-signed certificate, you can use OpenSSL: + +```bash +openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout squid-proxy.pem -out squid-proxy.pem +``` + +2. Edit the Squid configuration file `/etc/squid/squid.conf` to include the path to your SSL certificate and enable the HTTPS port: + +```bash +http_port 3128 ssl-bump cert=/path/to/your/squid-proxy.pem +ssl_bump server-first all +ssl_bump bump all +``` + +3. To intercept HTTPS traffic, Squid uses a process called SSL Bumping. This process allows Squid to decrypt and re-encrypt HTTPS traffic. To enable SSL Bumping, ensure the `ssl_bump` directives are configured correctly in your `squid.conf` file. + +#### Step 4 (Optional): Configure ACLs and Authentication + +1. You can define rules to control who can access your proxy. This is done by editing the squid.conf file and defining ACLs: + +```bash +acl allowed_ips src "/etc/squid/allowed_ips.txt" +http_access allow allowed_ips +``` + +2. If you want to add an authentication layer, Squid supports several authentication schemes. Basic authentication setup might look like this: + +```bash +auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords +acl authenticated proxy_auth REQUIRED +http_access allow authenticated +``` + +#### Step 5: Restart and Test Your Proxy + +1. After configuring, restart Squid to apply the changes: + +```bash +sudo systemctl restart squid +``` + +2. To test, configure your browser or another client to use the proxy server with its IP address and port (default is 3128). +3. Check if you can access the internet through your proxy. + +:::tip + +Tips for Secure Your Proxy: + +- **Firewall rules**: Ensure that only intended users or IP addresses can connect to your proxy server. This can be achieved by setting up appropriate firewall rules. +- **Regular updates**: Keep your server and proxy software updated to ensure that you are protected against known vulnerabilities. +- **Monitoring and logging**: Monitor your proxy server for unusual activity and enable logging to keep track of the traffic passing through your proxy. + +::: + +### Setting Up Jan to Use Your HTTPS Proxy + +Once you have your HTTPS proxy server set up, you can configure Jan to use it. + +1. Navigate to **Settings** > **Advanced Settings**. +2. On the **HTTPS Proxy** click the slider to enable. +3. Input your domain in the blank field. + +## Ignore SSL Certificate + +To Allow self-signed or unverified certificates, follow the steps below: + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. On the **Ignore SSL Certificates** click the slider to enable. + +## Clear Logs + +To clear all logs on your Jan app, follow the steps below: +:::warning +This feature clears all the data in your **Jan Data Folder**. +::: + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. On the **Clear Logs** click the the **Clear** button. + +## Reset To Factory Default + +To reset the Jan app to its original state, follow the steps below: +:::danger[Remember!] +This irreversible action is only recommended if the application is corrupted. +::: + +1. Navigate to the main dashboard. +2. Click the **gear icon (⚙️)** on the bottom left of your screen. +3. Under the **Settings screen**, click the **Advanced Settings**. +4. On the **Reset To Factory Default** click the the **Reset** button. diff --git a/docs/docs/guides/user-guides/jan-data-folder.mdx b/docs/docs/guides/user-guides/jan-data-folder.mdx new file mode 100644 index 000000000..b2bf14968 --- /dev/null +++ b/docs/docs/guides/user-guides/jan-data-folder.mdx @@ -0,0 +1,23 @@ +--- +title: Jan Data Folder +slug: /guides/data-folder +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 6 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + data folder, + source folder, + Jan data, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/user-guides/local-server.mdx b/docs/docs/guides/user-guides/local-server.mdx new file mode 100644 index 000000000..421981503 --- /dev/null +++ b/docs/docs/guides/user-guides/local-server.mdx @@ -0,0 +1,109 @@ +--- +title: Local Server or API Endpoint +slug: /guides/local-api +description: A step-by-step guide to start Jan Local Server. +sidebar_position: 10 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + local server, + start server, + api endpoint, + ] +--- + +Jan provides a built-in API server that can be used as a drop-in for OpenAI's API local replacement. This guide will walk you through on how to start the local server and use it to make request to the local server. + +## Step 1: Set the Local Server + +To start the local server, follow the steps below: + +1. Navigate to the Jan main menu dashboard. +2. Click the corresponding icon on the bottom left side of your screen. +3. Select the model you want to use under the Model Settings screen to set the LLM for your local server. +4. Configure the server settings as follows: + +| Feature | Description | Default Setting | +| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | +| Local Server Address | By default, Jan is only accessible on the same computer it's running on, using the address 127.0.0.1. You can change this to 0.0.0.0 to let other devices on your local network access it. However, this is less secure than just allowing access from the same computer. | `localhost (127.0.0.1)` | +| Port | Jan runs on port 1337 by default. The port can be changed to any other port number as needed. | `1337` | +| Cross-Origin Resource Sharing (CORS) | Manages resource access from external domains. Enabled for security by default but can be disabled if needed. | Enabled | +| Verbose Server Logs | Provides extensive details about server activities as the local server runs, displayed at the center of the screen. | Not specified (implied enabled) | + +## Step 2: Start and Use the Built-in API Server + +Once you have set the server settings, you can start the server by following the steps below: + +1. Click the **Start Server** button on the top left of your screen. + +:::note + +When the server starts, you'll see a message like `Server listening at http://127.0.0.1:1337`, and the **Start Server** button will turn into a red **Stop Server** button. +::: + +2. You will be redirected to the API reference server in your browser. +3. Select the available endpoints and try them out by executing the example request. +4. In this example, we will show you how it works using the `Chat` endpoint. +5. Click the **Try it out** button. +6. The Chat endpoint has the following `cURL request example` when running using a `tinyllama-1.1b` model local server: + +```json +{ + "messages": [ + { + "content": "You are a helpful assistant.", + "role": "system" + }, + { + "content": "Hello!", + "role": "user" + } + ], + "model": "tinyllama-1.1b", + "stream": true, + "max_tokens": 2048, + "stop": [ + "hello" + ], + "frequency_penalty": 0, + "presence_penalty": 0, + "temperature": 0.7, + "top_p": 0.95 +} +' +``` + +7. The endpoint returns the following `JSON response body`: + +```json +{ + "choices": [ + { + "finish_reason": null, + "index": 0, + "message": { + "content": "Hello user. What can I help you with?", + "role": "assistant" + } + } + ], + "created": 1700193928, + "id": "ebwd2niJvJB1Q2Whyvkz", + "model": "_", + "object": "chat.completion", + "system_fingerprint": "_", + "usage": { + "completion_tokens": 500, + "prompt_tokens": 33, + "total_tokens": 533 + } +} +``` diff --git a/docs/docs/guides/user-guides/manage-assistants.mdx b/docs/docs/guides/user-guides/manage-assistants.mdx new file mode 100644 index 000000000..27330f187 --- /dev/null +++ b/docs/docs/guides/user-guides/manage-assistants.mdx @@ -0,0 +1,22 @@ +--- +title: Manage Assistants +slug: /guides/assistants +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 8 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + manage assistants, + assistants, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/user-guides/manage-models.mdx b/docs/docs/guides/user-guides/manage-models.mdx new file mode 100644 index 000000000..1fa2ed3f0 --- /dev/null +++ b/docs/docs/guides/user-guides/manage-models.mdx @@ -0,0 +1,24 @@ +--- +title: Manage Models +slug: /guides/models +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 7 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + models, + remote models, + local models, + manage models, + ] +--- + +Coming Soon diff --git a/docs/docs/guides/user-guides/manage-threads.mdx b/docs/docs/guides/user-guides/manage-threads.mdx new file mode 100644 index 000000000..7344efb41 --- /dev/null +++ b/docs/docs/guides/user-guides/manage-threads.mdx @@ -0,0 +1,60 @@ +--- +title: Manage Threads +slug: /guides/threads +description: Manage your interaction with AI locally. +sidebar_position: 9 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + threads, + chat history, + thread history, + ] +--- + +Jan provides a straightforward and private solution for managing your threads with AI on your own device. As you interact with AI using Jan, you'll accumulate a history of threads. +Jan offers easy tools to organize, delete, or review your past threads with AI. This guide will show you how to keep your threads private and well-organized. + + ### View Thread History + To view your thread history, follow the steps below: + 1. Navigate to the main dashboard. + 2. Locate the list of threads screen on the left side. + 3. To view a specific thread, simply choose the one you're interested in and then scroll up or down to explore the entire conversation. + + + ### Manage the Threads via Folder + To manage your thread history and configurations, follow the steps below: + 1. Navigate to the Thread that you want to manage via the list of threads on the left side of the dashboard. + 2. Click on the **three dots (⋮)** in the Thread section. + 3. There are two available options to select: + - **Reveal in Finder**: Opens the folder containing the thread history and configurations. + - **View as JSON**: Opens the thread.json file in your default browser. + + + ### Clean Threads History + To clean all the messages from a thread, follow the steps below: + 1. Navigate to the Thread that you want to clean. + 2. Click on the **three dots (⋮)** in the Thread section. + 3. Sleect the **Clean Thread** button. + +:::note +This will delete all messages in the thread while keeping the thread settings. +::: + + ### Delete Threads History + To delete a thread, follow the steps below: + 1. Navigate to the Thread that you want to delete. + 2. Click on the **three dots (⋮)** in the Thread section. + 3. Sleect the **Delete Thread** button. + +:::note +This will delete all messages and the thread settings. +::: diff --git a/docs/docs/guides/user-guides/overview-guides.mdx b/docs/docs/guides/user-guides/overview-guides.mdx new file mode 100644 index 000000000..bb522ccf4 --- /dev/null +++ b/docs/docs/guides/user-guides/overview-guides.mdx @@ -0,0 +1,20 @@ +--- +title: Overview +slug: /guides/overview +description: Jan Docs | Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. +sidebar_position: 5 +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] +--- + +Coming Soon diff --git a/docs/docs/hardware/community.md b/docs/docs/hardware/community.md index e1825b24b..da142b7c3 100644 --- a/docs/docs/hardware/community.md +++ b/docs/docs/hardware/community.md @@ -1,12 +1,23 @@ --- title: Hardware Examples description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -keywords: [Jan AI, Jan, ChatGPT alternative, local AI, private AI, conversational AI, no-subscription fee, large language model ] +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + ] --- ## Add your own example -Add your own examples to this page by creating a new file in the `docs/docs/hardware/examples` directory. +Add your own examples to this page by creating a new file in the `docs/docs/hardware/examples` directory. ```shell docs @@ -18,9 +29,10 @@ docs // highlight-next-line └── .md ``` + ### File and Title Convention -We use a specific naming convention for the file name. +We use a specific naming convention for the file name. ```shell # Filename @@ -52,4 +64,4 @@ You are allowed to include affiliate links in your example. ## Longer-Term -We will likely build a simple web app to make it easier to add your own examples, sort and retrieve. \ No newline at end of file +We will likely build a simple web app to make it easier to add your own examples, sort and retrieve. diff --git a/docs/docs/how-we-work.md b/docs/docs/how-we-work.md index e81099d18..5ab1cc15e 100644 --- a/docs/docs/how-we-work.md +++ b/docs/docs/how-we-work.md @@ -1,5 +1,22 @@ --- title: How We Work +slug: /how-we-work +description: How we work at Jan +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + build in public, + remote team, + how we work, + ] --- ### Open Source diff --git a/docs/docs/how-we-work/analytics/analytics.md b/docs/docs/how-we-work/analytics/analytics.md index 79e107a83..22957f01c 100644 --- a/docs/docs/how-we-work/analytics/analytics.md +++ b/docs/docs/how-we-work/analytics/analytics.md @@ -1,5 +1,20 @@ --- title: Analytics +slug: /how-we-work/analytics +description: Jan's Analytics philosophy and implementation +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + analytics, + ] --- Adhering to Jan's privacy preserving philosophy, our analytics philosophy is to get "barely-enough-to-function'. diff --git a/docs/docs/how-we-work/engineering/acknowledgements.md b/docs/docs/how-we-work/engineering/acknowledgements.md deleted file mode 100644 index 07fb1cf4d..000000000 --- a/docs/docs/how-we-work/engineering/acknowledgements.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Acknowledgements -description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. -slug: /acknowledgements -keywords: - [ - Jan AI, - Jan, - ChatGPT alternative, - local AI, - private AI, - conversational AI, - no-subscription fee, - large language model, - acknowledgements, - third-party libraries, - ] ---- - -# Acknowledgements - -We would like to express our gratitude to the following third-party libraries that have made the development of Jan possible. - -### llama.cpp - -``` -MIT License - -Copyright (c) 2023 Georgi Gerganov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` - -### LangChain - -``` -The MIT License - -Copyright (c) LangChain, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -``` diff --git a/docs/docs/how-we-work/engineering/engineering.md b/docs/docs/how-we-work/engineering/engineering.md index 1db5c3912..63e797629 100644 --- a/docs/docs/how-we-work/engineering/engineering.md +++ b/docs/docs/how-we-work/engineering/engineering.md @@ -4,14 +4,15 @@ description: Jan is a ChatGPT-alternative that runs on your own computer, with a slug: /engineering keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/how-we-work/engineering/qa.mdx b/docs/docs/how-we-work/engineering/qa.mdx index f43caae4a..9957aaefa 100644 --- a/docs/docs/how-we-work/engineering/qa.mdx +++ b/docs/docs/how-we-work/engineering/qa.mdx @@ -4,14 +4,15 @@ description: Jan is a ChatGPT-alternative that runs on your own computer, with a slug: /engineering/qa keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/how-we-work/product-design/product-design.md b/docs/docs/how-we-work/product-design/product-design.md index a2016b6b8..30c1e5b21 100644 --- a/docs/docs/how-we-work/product-design/product-design.md +++ b/docs/docs/how-we-work/product-design/product-design.md @@ -1,5 +1,20 @@ --- title: Product & Design +slug: /how-we-work/product-design +description: How we work on product design +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + product design, + ] --- ## Roadmap @@ -8,4 +23,4 @@ title: Product & Design - Discord's #roadmap channel - Work with the community to turn conversations into Product Specs - Future System? - - Use Canny? \ No newline at end of file + - Use Canny? diff --git a/docs/docs/how-we-work/project-management/project-management.md b/docs/docs/how-we-work/project-management/project-management.md index 58af4a0d3..b1e76757e 100644 --- a/docs/docs/how-we-work/project-management/project-management.md +++ b/docs/docs/how-we-work/project-management/project-management.md @@ -1,5 +1,20 @@ --- title: Project Management +slug: /how-we-work/project-management +description: Project management at Jan +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + project management, + ] --- We use the [Jan Monorepo Project](https://github.com/orgs/janhq/projects/5) in Github to manage our roadmap and sprint Kanbans. @@ -58,7 +73,6 @@ We aim to always sprint on `tasks` that are a part of the [current roadmap](http - `Urgent bugs`: assign to an owner (or @engineers if you are not sure) && tag the current `sprint` & `milestone` - `All else`: assign the correct roadmap `label(s)` and owner (if any) - #### Request for help As a result, our feature prioritization can feel a bit black box at times. diff --git a/docs/docs/how-we-work/strategy/strategy.md b/docs/docs/how-we-work/strategy/strategy.md index 09d9b9fb4..001a7c8a2 100644 --- a/docs/docs/how-we-work/strategy/strategy.md +++ b/docs/docs/how-we-work/strategy/strategy.md @@ -3,6 +3,7 @@ title: Strategy --- We only have 2 planning parameters: + - 10 year vision - 2 week sprint - Quarterly OKRs @@ -46,7 +47,6 @@ Jan is a seamless user experience that runs on your personal computer, that glue - We run on top of a local folder of non-proprietary files, that anyone can tinker with (yes, even other apps!) - We provide open formats for packaging and distributing AI to run reproducibly across devices - ## Prerequisites - [Figma](https://figma.com) diff --git a/docs/docs/how-we-work/website-docs/website-docs.md b/docs/docs/how-we-work/website-docs/website-docs.md index a152c6dc9..007cd16d7 100644 --- a/docs/docs/how-we-work/website-docs/website-docs.md +++ b/docs/docs/how-we-work/website-docs/website-docs.md @@ -1,3 +1,104 @@ --- title: Website & Docs ---- \ No newline at end of file +slug: /how-we-work/website-docs/ +description: Information about the Jan website and documentation. +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + website, + documentation, + ] +--- + +This website is built using [Docusaurus 3.0](https://docusaurus.io/), a modern static website generator. + +### Information Architecture + +We try to **keep routes consistent** to maintain SEO. + +- **`/guides/`**: Guides on how to use the Jan application. For end users who are directly using Jan. + +- **`/developer/`**: Developer docs on how to extend Jan. These pages are about what people can build with our software. + +- **`/api-reference/`**: Reference documentation for the Jan API server, written in Swagger/OpenAPI format. + +- **`/changelog/`**: A list of changes made to the Jan application with each release. + +- **`/blog/`**: A blog for the Jan application. + +### Sidebar Autogeneration + +The order of each page is either explicitly defined in `sidebar.js` or follows the [Docusaurus autogenerated](https://docusaurus.io/docs/next/sidebar/autogenerated) naming format, `##-path-name.md`. + +Important slugs are hardcoded at the document level (and shouldn't be rerouted): + +``` +--- +title: Overview +slug: /docs +--- +``` + +## How to Contribute + +Refer to the [Contributing Guide](https://github.com/janhq/jan/blob/dev/CONTRIBUTING.md) for more comprehensive information on how to contribute to the Jan project. + +### Pre-requisites and Installation + +- [Node.js](https://nodejs.org/en/) (version 20.0.0 or higher) +- [yarn](https://yarnpkg.com/) (version 1.22.0 or higher) + +#### Installation + +```bash +cd jan/docs +yarn install +yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +#### Build + +```bash +yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +```bash +USE_SSH=true yarn deploy +``` + +Not using SSH: + +```bash +GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. + +### Preview URL, Pre-release and Publishing Documentation + +- When a pull request is created, the preview URL will be automatically commented on the pull request. + +- The documentation will then be published to [https://dev.jan.ai/](https://dev.jan.ai/) when the pull request is merged to `dev`. + +- Our open-source maintainers will sync the updated content from `dev` to `docs` branch, which will then be published to [https://jan.ai/](https://jan.ai/). + +### Additional Plugins + +- @docusaurus/theme-live-codeblock +- [Redocusaurus](https://redocusaurus.vercel.app/): manually upload swagger files at `/openapi/jan.yaml` to update the API reference documentation. diff --git a/docs/docs/integrations/tensorrt.md b/docs/docs/integrations/tensorrt.md deleted file mode 100644 index 8a77d1436..000000000 --- a/docs/docs/integrations/tensorrt.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: TensorRT-LLM ---- - -## Quicklinks - -- Jan Framework [Extension Code](https://github.com/janhq/jan/tree/main/extensions/inference-triton-trtllm-extension) -- TensorRT [Source URL](https://github.com/NVIDIA/TensorRT-LLM) diff --git a/docs/docs/pending-blogpost/02-surpassing-chatgpt-with-open-source-alternatives.mdx b/docs/docs/pending-blogpost/02-surpassing-chatgpt-with-open-source-alternatives.mdx new file mode 100644 index 000000000..8c72b10ef --- /dev/null +++ b/docs/docs/pending-blogpost/02-surpassing-chatgpt-with-open-source-alternatives.mdx @@ -0,0 +1,136 @@ +--- +title: 'Rag Is Not Enough: Lessons from Beating GPT-3.5 on Specialized Tasks with Mistral 7B' +description: 'Creating Open Source Alternatives to Outperform ChatGPT' +slug: /blog/surpassing-chatgpt-with-open-source-alternatives +tags: [Open Source ChatGPT Alternatives, Outperform ChatGPT] +authors: [hahuyhoang411, 0xsage, automaticcat] +date: 2024-03-17 +--- + +## Abstract + +We present a straightforward approach to adapting small, open-source models for specialized use cases, that can surpass GPT 3.5 performance with RAG. With it, we were able to get superior results on Q&A over [technical documentation](https://nitro.jan.ai/docs) describing a small [codebase](https://github.com/janhq/nitro). + +In short, (3) extending a general foundation model like [Mistral](https://huggingface.co/mistralai/Mistral-7B-v0.1) with strong math and coding, and (7) training it over a high-quality, synthetic dataset generated from the intended corpus, and (2) adding RAG capabilities, can lead to significant accuracy improvements. + +Problems still arise with catastrophic forgetting in general tasks, commonly observed during specialized domain fine-tuning. In our case, this is likely exacerbated by our lack of access to Mistral’s original training dataset and various compression techniques used in our approach to keep the model small. + +## Selecting a Strong Foundation Model + +[Mistral 7B](https://huggingface.co/mistralai/Mistral-7B-v0.1) outshines both [Meta's Llama-2 7B](https://huggingface.co/meta-llama/Llama-2-7b) and [Google's Gemma 7B](https://huggingface.co/google/gemma-7b) in key benchmarks, making it our choice for a base model. Starting with a strong foundation like Mistral allowed us to achieve greater accuracy in our specialized adaptations. + +![Mistral vs LLama vs Gemma](assets/mistral-comparasion.png) + +_Figure 1._ Mistral 7B excels in benchmarks, ranking among the top foundational models. + +_Note: we are not sponsored by the Mistral team. Though many folks in their community do like to run Mistral locally using our desktop client - [Jan](https://jan.ai/)._ + +## Cost-Effectively Improving the Base Model + +Mistral alone has known, poor math capabilities, which we needed for our highly technical use case. Thus, we tested all model variants on top of Mistral, from foundation models to finetunes to model merges, in order to find a stronger base model to receive our own finetuning. + +![Merged model vs finetuned models](assets/stealth-comparasion.png) + +_Figure 2._ The merged model, Stealth, doubles the mathematical capabilities of its foundational model while retaining the performance in other tasks. + +We found merging models is quick and cost-effective, enabling fast adjustments based on the result of each iteration. + +We ended up with [Stealth 7B v1.1](https://huggingface.co/jan-hq/stealth-v1.1), a [SLERP](https://github.com/Digitous/LLM-SLERP-Merge) merge of Mistral with the following: + +- [WizardMath](https://huggingface.co/WizardLM/WizardMath-7B-V1.1) for its math capabilities. +- [WizardCoder](https://huggingface.co/WizardLM/WizardCoder-Python-7B-V1.0) for its coding capabilities. +- Our own [Trinity](https://huggingface.co/jan-hq/trinity-v1.2) model for its versatility across general tasks. + +This particular combination yielded the best tradeoff across mathematical & technical reasoning while retaining the most pre-merge performance on general tasks. + +## DPO Finetuning + +Merging different LLMs can lead to a mixed answering style because each model was originally trained on different types of data. + +Thus, we applied Direct Preference Optimization ([DPO](https://arxiv.org/abs/2305.18290)) using the [Intel's Orca DPO pairs](https://huggingface.co/datasets/Intel/orca_dpo_pairs) dataset, chosen for its helpful answering style in general, math and coding concentration. + +This approach results in a final model - [Stealth 7B v1.2](https://huggingface.co/jan-hq/stealth-v1.2), with minimal loss, and realign to our technical preferences. + +## Using Our Technical Documentation + +With the base model ready, we started on our specific use case. + +Jan is an open-source & bootstrapped project - at one point during our unanticipated growth, we received 1 customer support ticket per minute, with no one to handle customer service. + +So, we directed our efforts toward training a model to answer user questions based on existing technical documentation. + +Specifically, we trained it on Nitro [docs](https://nitro.jan.ai/docs). For context, Nitro is the default inference engine for Jan. It’s a serious server implementation of LlamaCPP, written in C++, with multimodal, queues, and other production-level server capabilities. + +It made an interesting corpus because it was rife with post-2023 technical jargon, edge cases, and poor informational layout. + +## Generating a Training Dataset for GPT-4 + +The first step was to transform Nitro’s unstructured format into a synthetic Q&A dataset designed for [instruction tuning](https://arxiv.org/pdf/2109.01652.pdf). + +The text was split into chunks of 300-token segments with 30-token overlaps. This helped to avoid a [lost-in-the-middle](https://arxiv.org/abs/2307.03172) problem where LLM can’t use context efficiently to answer given questions. + +The chunks were then given to GPT-4 with 8k context length to generate 3800 Q&A pairs. The [training dataset](https://huggingface.co/datasets/jan-hq/nitro_binarized_v2) is available on HuggingFace. + +## Training + +The training was done with supervised finetuning (SFT) from the [Hugging Face's alignment handbook](https://github.com/huggingface/alignment-handbook) based on the [Huggingface's Zephyr Beta](https://github.com/huggingface/alignment-handbook/tree/main/recipes/zephyr-7b-beta) guidelines. + +We used consumer-grade, dual Nvidia RTX 4090s for the training. The end-to-end training took 18 minutes. We found optimal hyperparameters in LoRA for this specific task to be `r = 256` and `alpha = 512`. + +This final model is publicly available at https://huggingface.co/jan-hq/nitro-v1.2-e3. + +![Using LLM locally](assets/nitro-on-jan.png) + +_Figure 3._ Using the new finetuned model in [Jan](https://jan.ai/). + +## Improving Results With Rag + +As an additional step, we also added [Retrieval Augmented Generation (RAG)](https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/) as an experiment parameter. + +A simple RAG setup was done using **[Llamaindex](https://www.llamaindex.ai/)** and the **[bge-en-base-v1.5 embedding](https://huggingface.co/BAAI/bge-base-en-v1.5)** model for efficient documentation retrieval and question-answering. The RAG implementation is publicly available at at https://github.com/janhq/open-foundry/blob/main/rag-is-not-enough/rag/nitro_rag.ipynb + +## Benchmarking the Results + +We curated a new set of [50 multiple-choice questions](https://github.com/janhq/open-foundry/blob/main/rag-is-not-enough/rag/mcq_nitro.csv) (MCQ) based on the Nitro docs. The questions had varying levels of difficulty and had trick components that challenged the model's ability to discern misleading information. + +![Opensource model outperforms GPT](assets/rag-comparasion.png) + +_Figure 4._ Comparison between fine-tuned model and OpenAI's GPT. + +_Table 1._ Result of Benchmarking Different Model With RAG. +| Approach | Performance | +| ----------------------------------------------------------------------------------- | ----------- | +| GPT-3.5 with RAG | 56.7% | +| GPT-4 with RAG | 64.3% | +| Merged 7B Model ([Stealth 7B](https://huggingface.co/jan-hq/stealth-v1.3)) with RAG | 47.7% | +| Finetuned 7B Model (Nitro 7B) with RAG | 57.8% | + +This indicates that with task-specific training, we can improve an open-source, Small Language Model to the level of GPT-3.5 on domain knowledge. + +Notably, the finetuned with RAG approach also demonstrated more consistency across benchmarking, as indicated by its lower standard deviation. + +## Conclusion + +We conclude that this combination of model merging finetuning and RAG yields promise. This finding is relevant for teams and individuals that need specialized, technical SLMs that need to run in resource-constrained or highly secured environments, where GPT may not be an option. + +Anecdotally, we’ve had some success using this model in practice to onboard new team members to the Nitro codebase. + +A full research report with more statistics can be found at https://github.com/janhq/open-foundry/blob/main/rag-is-not-enough/README.md. + +## References + +[1] Jason Wei, Maarten Bosma, Vincent Y. Zhao, Kelvin Guu, Adams Wei Yu, Brian Lester, Nan Du, Andrew M. Dai, Quoc V. Le. Finetuned Language Models Are Zero-Shot Learners. _arXiv preprint arXiv:2109.01652_, 2021. URL: https://arxiv.org/abs/2109.01652 + +[2] Haipeng Luo, Qingfeng Sun, Can Xu, Pu Zhao, Jianguang Lou, Chongyang Tao, Xiubo Geng, Qingwei Lin, Shifeng Chen, Dongmei Zhang. WizardMath: Empowering Mathematical Reasoning for Large Language Models via Reinforced Evol-Instruct. _arXiv preprint arXiv:2308.09583_, 2023. URL: https://arxiv.org/abs/2308.09583 + +[3] Luo, Y., Yang, Z., Meng, F., Li, Y., Zhou, J., & Zhang, Y. An Empirical Study of Catastrophic Forgetting in Large Language Models During Continual Fine-tuning. _arXiv preprint arXiv:2308.08747_,2023 URL: https://arxiv.org/abs/2308.08747 + +[4] Ziyang Luo, Can Xu, Pu Zhao, Qingfeng Sun, Xiubo Geng, Wenxiang Hu, Chongyang Tao, Jing Ma, Qingwei Lin, Daxin Jiang. WizardCoder: Empowering Code Large Language Models with Evol-Instruct., _arXiv preprint arXiv:2306.08568_, 2023. URL: https://arxiv.org/abs/2306.08568 + +[5] SciPhi-AI, Agent Search. GitHub. URL: https://github.com/SciPhi-AI/agent-search + +[6] Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, Percy Liang. "Lost in the Middle: How Language Models Use Long Contexts." _arXiv preprint arXiv:2307.03172_, 2023. URL: https://arxiv.org/abs/2307.03172 + +[7] Luo, H., Sun, Q., Xu, C., Zhao, P., Lou, J., Tao, C., Geng, X., Lin, Q., Chen, S., & Zhang, D. WizardMath: Empowering Mathematical Reasoning for Large Language Models via Reinforced Evol-Instruct. _arXiv preprint arXiv:2308.09583_, 2023. URL: https://arxiv.org/abs/2308.09583 + +[8] nlpxucan et al., WizardLM. GitHub. URL: https://github.com/nlpxucan/WizardLM diff --git a/docs/docs/pending-blogpost/assets/mistral-comparasion.png b/docs/docs/pending-blogpost/assets/mistral-comparasion.png new file mode 100644 index 000000000..efe993982 Binary files /dev/null and b/docs/docs/pending-blogpost/assets/mistral-comparasion.png differ diff --git a/docs/docs/pending-blogpost/assets/nitro-on-jan.png b/docs/docs/pending-blogpost/assets/nitro-on-jan.png new file mode 100644 index 000000000..0122f271c Binary files /dev/null and b/docs/docs/pending-blogpost/assets/nitro-on-jan.png differ diff --git a/docs/docs/pending-blogpost/assets/rag-comparasion.png b/docs/docs/pending-blogpost/assets/rag-comparasion.png new file mode 100644 index 000000000..196f46dca Binary files /dev/null and b/docs/docs/pending-blogpost/assets/rag-comparasion.png differ diff --git a/docs/docs/pending-blogpost/assets/stealth-comparasion.png b/docs/docs/pending-blogpost/assets/stealth-comparasion.png new file mode 100644 index 000000000..67427d5c7 Binary files /dev/null and b/docs/docs/pending-blogpost/assets/stealth-comparasion.png differ diff --git a/docs/docs/platforms/desktop.md b/docs/docs/platforms/desktop.md index fb4ea8389..1fed9274a 100644 --- a/docs/docs/platforms/desktop.md +++ b/docs/docs/platforms/desktop.md @@ -4,14 +4,15 @@ slug: /desktop description: Turn your computer into an AI PC keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/platforms/mobile.md b/docs/docs/platforms/mobile.md index 827544201..d502cb99a 100644 --- a/docs/docs/platforms/mobile.md +++ b/docs/docs/platforms/mobile.md @@ -4,13 +4,14 @@ slug: /mobile description: Jan Mobile allows you to bring your AI on the go keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] ---- \ No newline at end of file +--- diff --git a/docs/docs/pricing/pricing.md b/docs/docs/pricing/pricing.md index 233610468..958c021ee 100644 --- a/docs/docs/pricing/pricing.md +++ b/docs/docs/pricing/pricing.md @@ -1,6 +1,20 @@ --- title: Pricing slug: /pricing +description: Pricing for Jan +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + pricing, + ] --- | $0 | $1 | Enterprise | diff --git a/docs/docs/privacy/privacy.md b/docs/docs/privacy/privacy.md index 56e81f3a1..9bf408810 100644 --- a/docs/docs/privacy/privacy.md +++ b/docs/docs/privacy/privacy.md @@ -1,3 +1,7 @@ +--- +title: Privacy - Jan +--- + # Privacy Policy Jan is committed to protecting your privacy and ensuring that your personal information is handled in a safe and responsible way. This policy outlines how we collect, store, and use your personal information when you use our mobile application. diff --git a/docs/docs/guides/05-using-server/README.mdx b/docs/docs/releases/changelog/README.mdx similarity index 57% rename from docs/docs/guides/05-using-server/README.mdx rename to docs/docs/releases/changelog/README.mdx index 79ccad1f6..8cd181cd3 100644 --- a/docs/docs/guides/05-using-server/README.mdx +++ b/docs/docs/releases/changelog/README.mdx @@ -1,18 +1,20 @@ --- -title: Using the Local Server -slug: /guides/using-server/ +title: Changelog +sidebar_position: 1 +slug: /changelog description: Jan is a ChatGPT-alternative that runs on your own computer, with a local API server. keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, - using-server, + large language models, + changelog, ] --- diff --git a/docs/docs/releases/changelog/cache.json b/docs/docs/releases/changelog/cache.json new file mode 100644 index 000000000..13bb08d60 --- /dev/null +++ b/docs/docs/releases/changelog/cache.json @@ -0,0 +1,9598 @@ +{ + "releases": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/147163406", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/147163406/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/147163406/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.9", + "id": 147163406, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4IxYkO", + "tag_name": "v0.4.9", + "target_commitish": "3a3bceb0c01bfe69d71156891f169e39bca7ebb7", + "name": "0.4.9", + "draft": false, + "prerelease": false, + "created_at": "2024-03-19T03:06:47Z", + "published_at": "2024-03-19T04:45:39Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157403858", + "id": 157403858, + "node_id": "RA_kwDOKIBx0s4JYcrS", + "name": "jan-linux-amd64-0.4.9.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 118201794, + "download_count": 94, + "created_at": "2024-03-19T04:08:03Z", + "updated_at": "2024-03-19T04:08:06Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-linux-amd64-0.4.9.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157403802", + "id": 157403802, + "node_id": "RA_kwDOKIBx0s4JYcqa", + "name": "jan-linux-x86_64-0.4.9.AppImage", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 156697166, + "download_count": 98, + "created_at": "2024-03-19T04:06:51Z", + "updated_at": "2024-03-19T04:06:55Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-linux-x86_64-0.4.9.AppImage" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157403986", + "id": 157403986, + "node_id": "RA_kwDOKIBx0s4JYctS", + "name": "jan-mac-arm64-0.4.9.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 132665337, + "download_count": 135, + "created_at": "2024-03-19T04:10:15Z", + "updated_at": "2024-03-19T04:10:26Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-arm64-0.4.9.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157403987", + "id": 157403987, + "node_id": "RA_kwDOKIBx0s4JYctT", + "name": "jan-mac-arm64-0.4.9.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 139167, + "download_count": 1, + "created_at": "2024-03-19T04:10:15Z", + "updated_at": "2024-03-19T04:10:16Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-arm64-0.4.9.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404007", + "id": 157404007, + "node_id": "RA_kwDOKIBx0s4JYctn", + "name": "jan-mac-arm64-0.4.9.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 128089843, + "download_count": 222, + "created_at": "2024-03-19T04:10:32Z", + "updated_at": "2024-03-19T04:10:46Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-arm64-0.4.9.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404006", + "id": 157404006, + "node_id": "RA_kwDOKIBx0s4JYctm", + "name": "jan-mac-arm64-0.4.9.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 134845, + "download_count": 1, + "created_at": "2024-03-19T04:10:31Z", + "updated_at": "2024-03-19T04:10:32Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-arm64-0.4.9.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404722", + "id": 157404722, + "node_id": "RA_kwDOKIBx0s4JYc4y", + "name": "jan-mac-x64-0.4.9.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 139245048, + "download_count": 39, + "created_at": "2024-03-19T04:17:33Z", + "updated_at": "2024-03-19T04:17:37Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-x64-0.4.9.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404721", + "id": 157404721, + "node_id": "RA_kwDOKIBx0s4JYc4x", + "name": "jan-mac-x64-0.4.9.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 147376, + "download_count": 2, + "created_at": "2024-03-19T04:17:33Z", + "updated_at": "2024-03-19T04:17:33Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-x64-0.4.9.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404738", + "id": 157404738, + "node_id": "RA_kwDOKIBx0s4JYc5C", + "name": "jan-mac-x64-0.4.9.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 134752189, + "download_count": 40, + "created_at": "2024-03-19T04:17:52Z", + "updated_at": "2024-03-19T04:17:56Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-x64-0.4.9.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404739", + "id": 157404739, + "node_id": "RA_kwDOKIBx0s4JYc5D", + "name": "jan-mac-x64-0.4.9.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 141832, + "download_count": 2, + "created_at": "2024-03-19T04:17:52Z", + "updated_at": "2024-03-19T04:17:52Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-mac-x64-0.4.9.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404826", + "id": 157404826, + "node_id": "RA_kwDOKIBx0s4JYc6a", + "name": "jan-win-x64-0.4.9.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 129440528, + "download_count": 1078, + "created_at": "2024-03-19T04:18:43Z", + "updated_at": "2024-03-19T04:18:46Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-win-x64-0.4.9.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404825", + "id": 157404825, + "node_id": "RA_kwDOKIBx0s4JYc6Z", + "name": "jan-win-x64-0.4.9.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 136498, + "download_count": 570, + "created_at": "2024-03-19T04:18:43Z", + "updated_at": "2024-03-19T04:18:43Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/jan-win-x64-0.4.9.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157403860", + "id": 157403860, + "node_id": "RA_kwDOKIBx0s4JYcrU", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 540, + "download_count": 321, + "created_at": "2024-03-19T04:08:06Z", + "updated_at": "2024-03-19T04:08:06Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404835", + "id": 157404835, + "node_id": "RA_kwDOKIBx0s4JYc6j", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 842, + "download_count": 743, + "created_at": "2024-03-19T04:18:53Z", + "updated_at": "2024-03-19T04:18:53Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/157404832", + "id": 157404832, + "node_id": "RA_kwDOKIBx0s4JYc6g", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 1890, + "created_at": "2024-03-19T04:18:46Z", + "updated_at": "2024-03-19T04:18:46Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.9/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.9", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.9", + "body": "## Changes\r\n\r\n- Release/v0.4.9 @namchuai (#2421)\r\n- Release cut 0.4.9 @louis-jan (#2398)\r\n- Update models.json @louis-jan (#2382)\r\n- docs: add about/faq @eckartal (#2329)\r\n- Update docs 14th mar @dan-jan (#2362)\r\n- feat: Nitro-Tensorrt-LLM Extension @louis-jan (#2280)\r\n- Sync release 0.4.8 to dev @louis-jan (#2297)\r\n\r\n## 🚀 Features\r\n\r\n- feat: quick ask support dark mode @urmauur (#2316)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: move tensorrt executable to engine @namchuai (#2400)\r\n- fix: unable to start web with quick ask @namchuai (#2402)\r\n- fix: fail-fast would cancel matrix jobs as soon as one job fails @louis-jan (#2401)\r\n- fix: clean working dir with long space support on Windows @louis-jan (#2399)\r\n- fix: line height typography blog and docs @urmauur (#2390)\r\n- fix: some regressions for tensorrt nightly build @namchuai (#2380)\r\n- fix: use model from model hub not load correct model in thread screen @namchuai (#2368)\r\n- fix: wrong engine handling @louis-jan (#2363)\r\n- fix: incompatible GPU error message @louis-jan (#2357)\r\n- fix: app does not recognize GPU first launch @louis-jan (#2350)\r\n- fix: disable rag \\& stream settings from tensorrt llm model.json @louis-jan (#2351)\r\n- fix: badge or progress tensorRtExtensionItem @urmauur (#2349)\r\n- fix: ts error when declar var in case @namchuai (#2348)\r\n- fix: some costmetic issues: badges corner, recommended for tensorrt models @namchuai (#2346)\r\n- Add icon file contain image size in file name to fix linux icon @hiento09 (#2344)\r\n- fix: put quick ask feature toggle under experimental feature @louis-jan (#2338)\r\n- fix: do not migrate extensions from quick ask window @louis-jan (#2336)\r\n- fix: existing changelog @hieu-jan (#2330)\r\n- fix: gate quick ask with feature toggle @louis-jan (#2331)\r\n- fix: quick app windows, tray and dock behaviors @louis-jan (#2327)\r\n- fix: jan app tray blocks app update @louis-jan (#2319)\r\n- fix: quick ask not show @louis-jan (#2315)\r\n- fix: quick ask blocks app update @louis-jan (#2310)\r\n- fix: message from quick ask not get the selected model @namchuai (#2307)\r\n- fix: replace robotjs by nutjs (#2295) @louis-jan (#2302)\r\n\r\n## 🧰 Maintenance\r\n\r\n- docs: Update sidebar and content for http proxy and import model @aindrajaya (#2328)\r\n- chore: temporary remove linux from tensorrt support @namchuai (#2386)\r\n- docs: Update broken-build.mdx @0xSage (#2385)\r\n- docs: sync updated content to main page @hieu-jan (#2384)\r\n- docs: fix broken link by redirecting to the right paths @aindrajaya (#2381)\r\n- docs: api reference 2.0 @aindrajaya (#2367)\r\n- docs: bump changelog v0.4.8 @hieu-jan (#2366)\r\n- docs: trt-llm extension guides @0xSage (#2353)\r\n- docs: enhance autogenerate changelog configuration @hieu-jan (#2289)\r\n- docs: update website-docs content @hieu-jan (#2287)\r\n- docs: update slogan @hieu-jan (#2282)\r\n- docs: sync updated content from dev to docs branch @hieu-jan (#2283)\r\n- docs: Fix install slug and fix navbar style in darkmode @aindrajaya (#2306)\r\n\r\n## Contributor\r\n\r\n@0xSage, @aindrajaya, @dan-jan, @eckartal, @hiento09, @hieu-jan, @jan-service-account, @louis-jan, @namchuai and @urmauur\r\n", + "reactions": { + "url": "https://api.github.com/repos/janhq/jan/releases/147163406/reactions", + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 10 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/145763492", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/145763492/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/145763492/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.8", + "id": 145763492, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4IsCyk", + "tag_name": "v0.4.8", + "target_commitish": "3aeb6434b8d65f5540778ceff311c63d6683d933", + "name": "0.4.8", + "draft": false, + "prerelease": false, + "created_at": "2024-03-11T06:02:54Z", + "published_at": "2024-03-11T06:34:40Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016220", + "id": 156016220, + "node_id": "RA_kwDOKIBx0s4JTJ5c", + "name": "jan-linux-amd64-0.4.8.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 110060688, + "download_count": 852, + "created_at": "2024-03-11T06:08:19Z", + "updated_at": "2024-03-11T06:08:21Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-linux-amd64-0.4.8.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016113", + "id": 156016113, + "node_id": "RA_kwDOKIBx0s4JTJ3x", + "name": "jan-linux-x86_64-0.4.8.AppImage", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 145793120, + "download_count": 735, + "created_at": "2024-03-11T06:07:03Z", + "updated_at": "2024-03-11T06:07:06Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-linux-x86_64-0.4.8.AppImage" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016899", + "id": 156016899, + "node_id": "RA_kwDOKIBx0s4JTKED", + "name": "jan-mac-arm64-0.4.8.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 121575422, + "download_count": 1258, + "created_at": "2024-03-11T06:16:32Z", + "updated_at": "2024-03-11T06:16:43Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-arm64-0.4.8.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016900", + "id": 156016900, + "node_id": "RA_kwDOKIBx0s4JTKEE", + "name": "jan-mac-arm64-0.4.8.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 128586, + "download_count": 3, + "created_at": "2024-03-11T06:16:32Z", + "updated_at": "2024-03-11T06:16:33Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-arm64-0.4.8.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016916", + "id": 156016916, + "node_id": "RA_kwDOKIBx0s4JTKEU", + "name": "jan-mac-arm64-0.4.8.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 117287741, + "download_count": 1167, + "created_at": "2024-03-11T06:16:48Z", + "updated_at": "2024-03-11T06:17:07Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-arm64-0.4.8.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016915", + "id": 156016915, + "node_id": "RA_kwDOKIBx0s4JTKET", + "name": "jan-mac-arm64-0.4.8.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 122022, + "download_count": 3, + "created_at": "2024-03-11T06:16:48Z", + "updated_at": "2024-03-11T06:16:49Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-arm64-0.4.8.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016670", + "id": 156016670, + "node_id": "RA_kwDOKIBx0s4JTKAe", + "name": "jan-mac-x64-0.4.8.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 128115024, + "download_count": 478, + "created_at": "2024-03-11T06:14:43Z", + "updated_at": "2024-03-11T06:14:49Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-x64-0.4.8.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016669", + "id": 156016669, + "node_id": "RA_kwDOKIBx0s4JTKAd", + "name": "jan-mac-x64-0.4.8.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 135139, + "download_count": 3, + "created_at": "2024-03-11T06:14:43Z", + "updated_at": "2024-03-11T06:14:43Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-x64-0.4.8.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016721", + "id": 156016721, + "node_id": "RA_kwDOKIBx0s4JTKBR", + "name": "jan-mac-x64-0.4.8.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 123950755, + "download_count": 201, + "created_at": "2024-03-11T06:15:11Z", + "updated_at": "2024-03-11T06:15:17Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-x64-0.4.8.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016722", + "id": 156016722, + "node_id": "RA_kwDOKIBx0s4JTKBS", + "name": "jan-mac-x64-0.4.8.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 130406, + "download_count": 2, + "created_at": "2024-03-11T06:15:11Z", + "updated_at": "2024-03-11T06:15:11Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-mac-x64-0.4.8.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016806", + "id": 156016806, + "node_id": "RA_kwDOKIBx0s4JTKCm", + "name": "jan-win-x64-0.4.8.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 119749864, + "download_count": 7280, + "created_at": "2024-03-11T06:15:48Z", + "updated_at": "2024-03-11T06:15:52Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-win-x64-0.4.8.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016805", + "id": 156016805, + "node_id": "RA_kwDOKIBx0s4JTKCl", + "name": "jan-win-x64-0.4.8.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 127370, + "download_count": 3195, + "created_at": "2024-03-11T06:15:48Z", + "updated_at": "2024-03-11T06:15:48Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/jan-win-x64-0.4.8.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016223", + "id": 156016223, + "node_id": "RA_kwDOKIBx0s4JTJ5f", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 540, + "download_count": 2719, + "created_at": "2024-03-11T06:08:22Z", + "updated_at": "2024-03-11T06:08:22Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156017041", + "id": 156017041, + "node_id": "RA_kwDOKIBx0s4JTKGR", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 842, + "download_count": 5959, + "created_at": "2024-03-11T06:18:08Z", + "updated_at": "2024-03-11T06:18:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/156016808", + "id": 156016808, + "node_id": "RA_kwDOKIBx0s4JTKCo", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 15868, + "created_at": "2024-03-11T06:15:52Z", + "updated_at": "2024-03-11T06:15:52Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.8/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.8", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.8", + "body": "## Changes\r\n\r\n- Release cut v0.4.8 @louis-jan (#2267)\r\n- Add modify notary team in CI @hiento09 (#2265)\r\n- Chore: Update new models to model hub @hahuyhoang411 (#2192)\r\n- Macos Notarize migrage to new Team ID @hiento09 (#2228)\r\n- docs: update API Reference assistants\\_id endpoint from DevDocs @avb-is-me (#2195)\r\n- docs: update API Reference assistants endpoint from DevDocs @avb-is-me (#2194)\r\n- docs: update API Reference threads endpoint from DevDocs @avb-is-me (#2182)\r\n- fix: wrong profile parameter in docker command @mooncool (#2159)\r\n- Sync release 0.4.7 to dev @louis-jan (#2151)\r\n- docs: add upstream acknowledgements @hieu-jan (#2136)\r\n- Sync dev branch to docs branch @hieu-jan (#2131)\r\n\r\n## 🚀 Features\r\n\r\n- feat: prompt user to download an update manually @louis-jan (#2261)\r\n- feat: Jan can see @hiro-v (#2069)\r\n- Revert feat: temporary remove dark mode @urmauur (#2221)\r\n- feat: add turborepo @louis-jan (#2220)\r\n- fix: change button import model on hub page @urmauur (#2178)\r\n- feat: temporary remove dark mode :( @urmauur (#2168)\r\n- feat: add import model feature @namchuai (#2104)\r\n- feat: restore docusaurus style @urmauur (#2152)\r\n- feat: add a simple way to convert Hugging Face model to GGUF @Helloyunho (#1972)\r\n\r\n## 🐛 Fixes\r\n\r\n- codesign script force sign @hiento09 (#2291)\r\n- fix: should not attach error messages to the completion request @louis-jan (#2258)\r\n- fix: image upload button and drag event are not enabled @louis-jan (#2248)\r\n- fix: error message being sent along with conversation when inference @namchuai (#2242)\r\n- fix: replaced user path from app log @namchuai (#2238)\r\n- fix: drag and drop support image format to support vision model @urmauur (#2237)\r\n- fix: re-configure changelog sections @hieu-jan (#2230)\r\n- fix: import from HuggingFace with random string is causing app crash @louis-jan (#2214)\r\n- fix: comment from QA regarding import model @namchuai (#2213)\r\n- fix: download model error does not reset state in model hub @namchuai (#2199)\r\n- fix: minor ui missing secondary background @urmauur (#2198)\r\n- docs: update docker command @hieu-jan (#2180)\r\n- fix: some bugs for import model @namchuai (#2181)\r\n- fix: change button import model on hub page @urmauur (#2178)\r\n- fix space between progress bar and title list of gpu @urmauur (#2177)\r\n- fix: disabled prompt user using dangerouslySetInnerHTML @urmauur (#2176)\r\n- fix: style list of gpus on system monitor @urmauur (#2172)\r\n- fix: system monitor expand overlap tooltip ribbon @urmauur (#2158)\r\n- Huggingface extension add codesign step for building on darwin @hiento09 (#2166)\r\n- Add run codesign for huggingface extension @hiento09 (#2163)\r\n- fix: system monitor ui @urmauur (#2135)\r\n\r\n## 🧰 Maintenance\r\n\r\n- chore: temporary remove convert model @namchuai (#2266)\r\n- docs: sync slug fix from dev branch to docs branch @hieu-jan (#2264)\r\n- docs: Update broken link and fix the slug @aindrajaya (#2260)\r\n- docs: Fix navbar issues. Keep stay when clicked other menu items from the sidebar @aindrajaya (#2253)\r\n- docs: sync docs hub fixes from dev to docs branch @hieu-jan (#2247)\r\n- docs: Update content for Hub page and Guides section @aindrajaya (#2245)\r\n- docs: Fix Dark Mode on the Hub page and Update the Navbar functionality @aindrajaya (#2243)\r\n- chore: sync dev branch to docs branch @hieu-jan (#2239)\r\n- Chore: add prefix latest for task clean r2 bucket @hiento09 (#2233)\r\n- fix: re-configure changelog sections @hieu-jan (#2230)\r\n- docs: add command run API server without frontend @hieu-jan (#2231)\r\n- docs: revamp entire Jan guides @hieu-jan (#2139)\r\n- chore: clean up some redundant code @namchuai (#2215)\r\n- docs: update API Reference chatCompletions from DevDocs @avb-is-me (#2171)\r\n- docs: update API Reference download model from DevDocs @avb-is-me (#2170)\r\n- docs: update API Reference model\\_id from DevDocs @avb-is-me (#2169)\r\n- docs: update API Reference listModel from DevDocs @avb-is-me (#2161)\r\n- docs: Update 08-antivirus-compatibility-testing.md @0xSage (#2186)\r\n- docs: adding new feature for v0.4.7 to release checklist @Van-QA (#2189)\r\n- docs: Update 01-integrate-continue.mdx @0xSage (#2187)\r\n- chore: bump nitro 0.3.14 @louis-jan (#2183)\r\n- docs: Sync dev branch to docs branch @hieu-jan (#2185)\r\n- docs: update docker command @hieu-jan (#2180)\r\n- docs: update wall of love @hieu-jan (#2179)\r\n- docs: add Jan newsletter @hieu-jan (#2174)\r\n- chore: make convert gguf as experimental feature @namchuai (#2156)\r\n- docs: update acknowledgements @hieu-jan (#2147)\r\n- feat: restore docusaurus style @urmauur (#2152)\r\n- docs: update run Jan in Docker mode @hieu-jan (#2150)\r\n- Docs pena team - Add Quickstart Docs @aindrajaya (#2138)\r\n- docs: hide incomplete pages @hieu-jan (#2127)\r\n\r\n## Contributor\r\n\r\n@0xSage, @Helloyunho, @Van-QA, @aindrajaya, @avb-is-me, @hahuyhoang411, @hiento09, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @mooncool, @namchuai and @urmauur\r\n", + "reactions": { + "url": "https://api.github.com/repos/janhq/jan/releases/145763492/reactions", + "total_count": 8, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 8, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 14 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/143551170", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/143551170/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/143551170/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.7", + "id": 143551170, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4IjmrC", + "tag_name": "v0.4.7", + "target_commitish": "3c8caf3345f256f2fac41857ab25994047de0de3", + "name": "0.4.7", + "draft": false, + "prerelease": false, + "created_at": "2024-02-22T14:18:39Z", + "published_at": "2024-02-26T03:30:36Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153554843", + "id": 153554843, + "node_id": "RA_kwDOKIBx0s4JJw-b", + "name": "jan-linux-amd64-0.4.7.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 100168358, + "download_count": 1494, + "created_at": "2024-02-26T02:39:48Z", + "updated_at": "2024-02-26T02:39:51Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-linux-amd64-0.4.7.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153554729", + "id": 153554729, + "node_id": "RA_kwDOKIBx0s4JJw8p", + "name": "jan-linux-x86_64-0.4.7.AppImage", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 135683130, + "download_count": 1329, + "created_at": "2024-02-26T02:38:38Z", + "updated_at": "2024-02-26T02:38:42Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-linux-x86_64-0.4.7.AppImage" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555177", + "id": 153555177, + "node_id": "RA_kwDOKIBx0s4JJxDp", + "name": "jan-mac-arm64-0.4.7.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 116705772, + "download_count": 2658, + "created_at": "2024-02-26T02:41:58Z", + "updated_at": "2024-02-26T02:42:09Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-arm64-0.4.7.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555178", + "id": 153555178, + "node_id": "RA_kwDOKIBx0s4JJxDq", + "name": "jan-mac-arm64-0.4.7.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 124328, + "download_count": 5, + "created_at": "2024-02-26T02:41:58Z", + "updated_at": "2024-02-26T02:41:59Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-arm64-0.4.7.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555202", + "id": 153555202, + "node_id": "RA_kwDOKIBx0s4JJxEC", + "name": "jan-mac-arm64-0.4.7.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 112429002, + "download_count": 1569, + "created_at": "2024-02-26T02:42:14Z", + "updated_at": "2024-02-26T02:42:30Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-arm64-0.4.7.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555201", + "id": 153555201, + "node_id": "RA_kwDOKIBx0s4JJxEB", + "name": "jan-mac-arm64-0.4.7.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 117816, + "download_count": 5, + "created_at": "2024-02-26T02:42:14Z", + "updated_at": "2024-02-26T02:42:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-arm64-0.4.7.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555519", + "id": 153555519, + "node_id": "RA_kwDOKIBx0s4JJxI_", + "name": "jan-mac-x64-0.4.7.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 123302141, + "download_count": 1019, + "created_at": "2024-02-26T02:45:43Z", + "updated_at": "2024-02-26T02:45:48Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-x64-0.4.7.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555520", + "id": 153555520, + "node_id": "RA_kwDOKIBx0s4JJxJA", + "name": "jan-mac-x64-0.4.7.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 130493, + "download_count": 4, + "created_at": "2024-02-26T02:45:43Z", + "updated_at": "2024-02-26T02:45:43Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-x64-0.4.7.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555541", + "id": 153555541, + "node_id": "RA_kwDOKIBx0s4JJxJV", + "name": "jan-mac-x64-0.4.7.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 119095882, + "download_count": 329, + "created_at": "2024-02-26T02:45:59Z", + "updated_at": "2024-02-26T02:46:04Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-x64-0.4.7.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555542", + "id": 153555542, + "node_id": "RA_kwDOKIBx0s4JJxJW", + "name": "jan-mac-x64-0.4.7.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 125044, + "download_count": 7, + "created_at": "2024-02-26T02:45:59Z", + "updated_at": "2024-02-26T02:45:59Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-mac-x64-0.4.7.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555767", + "id": 153555767, + "node_id": "RA_kwDOKIBx0s4JJxM3", + "name": "jan-win-x64-0.4.7.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 109668960, + "download_count": 14695, + "created_at": "2024-02-26T02:48:10Z", + "updated_at": "2024-02-26T02:48:12Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-win-x64-0.4.7.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555768", + "id": 153555768, + "node_id": "RA_kwDOKIBx0s4JJxM4", + "name": "jan-win-x64-0.4.7.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 116340, + "download_count": 6509, + "created_at": "2024-02-26T02:48:10Z", + "updated_at": "2024-02-26T02:48:10Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/jan-win-x64-0.4.7.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153554848", + "id": 153554848, + "node_id": "RA_kwDOKIBx0s4JJw-g", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 540, + "download_count": 4867, + "created_at": "2024-02-26T02:39:52Z", + "updated_at": "2024-02-26T02:39:52Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555632", + "id": 153555632, + "node_id": "RA_kwDOKIBx0s4JJxKw", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 842, + "download_count": 11437, + "created_at": "2024-02-26T02:47:00Z", + "updated_at": "2024-02-26T02:47:00Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/153555773", + "id": 153555773, + "node_id": "RA_kwDOKIBx0s4JJxM9", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 35170, + "created_at": "2024-02-26T02:48:12Z", + "updated_at": "2024-02-26T02:48:12Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.7/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.7", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.7", + "body": "## Changes\r\n\r\n- Release cut v0.4.7 @louis-jan (#2121)\r\n- chore: update models @hahuyhoang411 (#1829)\r\n- add docs for entire advanced settings @hieu-jan (#2063)\r\n- docs: Fix #2040 : added /v1 path to apiBase @ldebs (#2041)\r\n- fix: ui for disabled state of gpu acceleration @namchuai (#2034)\r\n- feat: Initialize POM structure with fixtures on Playwright @Van-QA (#2015)\r\n- Alternative solution for `Thread titles should auto-summarize Topic` @0xgokuz (#1976)\r\n- Update authors.yml Rex @hahuyhoang411 (#1956)\r\n- Update authors.yml Louis @louis-jan (#1955)\r\n- Change env Dockerfile.gpu and update README @hiento09 (#1963)\r\n- chore: Update authors.yml for Van Pham @Van-QA (#1954)\r\n- Sync dev branch to docs branch @hieu-jan (#1948)\r\n- sync current docs branch to dev branch @hieu-jan (#1947)\r\n- feat: Playwright capture screenshot of Electron desktop app (Jan) on failures @Van-QA (#1934)\r\n- Sync main to dev after release 0.4.6 @hiento09 (#1929)\r\n\r\n## 🚀 Features\r\n\r\n- feat: Add nitro vulkan to support AMD GPU/ APU and Intel Arc GPU @hiro-v (#2056)\r\n- fix: flow edit message @urmauur (#2113)\r\n- Feature helmchart and ci jan server @hiento09 (#2106)\r\n- feat: improvementUI GPU acceleration @urmauur (#1990)\r\n- feat: add edit messages users @urmauur (#1974)\r\n- feat: revamp ui dropdown list model option @urmauur (#1977)\r\n- feat: add modal troubleshooting guideline @urmauur (#1968)\r\n- feat: integrate umami script locally @hieu-jan (#1958)\r\n- feat: User Selectable GPUs and GPU-based Model Recommendations @hiento09 (#1730)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: correct vulkan settings @louis-jan (#2128)\r\n- fix: chore UI @louis-jan (#2125)\r\n- Regression: bump nitro to 0.3.13 @hiento09 (#2124)\r\n- Regression: Linux vulkan binary path @hiento09 (#2123)\r\n- fix: revert back menu actions @louis-jan (#2120)\r\n- fix: mismatching between nightly build and version - jan about @louis-jan (#2114)\r\n- fix: flow edit message @urmauur (#2113)\r\n- fix: tools section should be expanded by default @louis-jan (#2110)\r\n- fix: failed to bind port - nitro error message copy @louis-jan (#2101)\r\n- fix: remove caret down icon when tab selected into remote model @urmauur (#2102)\r\n- fix: openai client sdk compatible @louis-jan (#2096)\r\n- Fix bug #2005 docker blank website @hiento09 (#2093)\r\n- fix: check if port is occupied before start local server @namchuai (#2098)\r\n- fix: broken model.json update @louis-jan (#2099)\r\n- fix: make text input scrollable @urmauur (#2083)\r\n- fix: failed to send message blocks thread creation @louis-jan (#2091)\r\n- fix: server crashes on missing module @louis-jan (#2089)\r\n- fix: expand assistant and model settings by default @louis-jan (#2081)\r\n- fix: move jan data folder - error handling for no write permission granted @louis-jan (#2077)\r\n- fix: check for updates should show no update are available on the latest build @louis-jan (#2075)\r\n- fix: infinity showed when haven't get total size @namchuai (#2066)\r\n- fix: should stop running the model when GPU settings are changed @louis-jan (#2067)\r\n- fix: settings page state loop and dark theme @louis-jan (#2065)\r\n- fix: Fix Nitro windows with error 3221225781 @hiro-v (#2057)\r\n- fix: message should only be interrupted when i start another thread @louis-jan (#2053)\r\n- fix: local server start error should not change to started state @louis-jan (#2052)\r\n- fix: update copy of message queue @louis-jan (#2051)\r\n- fix: download mutilple binaries @namchuai (#2043)\r\n- fix: disable gpu drop down box if there's no GPU ready @namchuai (#2046)\r\n- fix: app should generate thread title with length restriction @louis-jan (#2037)\r\n- fix: factory reset not remove jan data folder @namchuai (#2027)\r\n- fix: content setting right panel default to collapse @urmauur (#2026)\r\n- fix: local server blank parameters if there is no thread selected @louis-jan (#2028)\r\n- fix: model path backward compatible @louis-jan (#2018)\r\n- fix: resolve state update loop infinitive rerendering @louis-jan (#2017)\r\n- fix: lack of auto-cleaning mechanism for logs @louis-jan (#2003)\r\n- fix: app stuck regenerating assistant response @louis-jan (#2001)\r\n- fix: decouple thread summary update @louis-jan (#1994)\r\n- fix: app fails gracefully with clear error messages @louis-jan (#1993)\r\n- fix: retrieval stuck at generating response @louis-jan (#1988)\r\n- Fix macos auto update failed on nightly build @hiento09 (#1991)\r\n- fix: model downloads broken on nightly @louis-jan (#1984)\r\n- fix: RAG enhancements @urmauur (#1965)\r\n- Update docs run Jan Server in Docker mode @hiento09 (#1960)\r\n- fix: update conditional check last status message @urmauur (#1951)\r\n- fix: markdown render for chat completion role user @urmauur (#1944)\r\n- fix: avoid users to create so many threads at the same time @urmauur (#1930)\r\n- fix: download model will close panel item hub @urmauur (#1923)\r\n\r\n## 🧰 Maintenance\r\n\r\n- docs: improve integrations guide \\& import model using absolute path @hieu-jan (#2076)\r\n- chore: add app version into log @namchuai (#2116)\r\n- docs: add integration docs Mistral AI API @hieu-jan (#2070)\r\n- docs:add-advanced-settings-https-proxy @hieu-jan (#2054)\r\n- chore: refactor watch system resource hook @louis-jan (#2048)\r\n- docs: Updates Guide Using the Local Server @SamPatt (#1924)\r\n- server install core using link instead of file @hiento09 (#2025)\r\n- chore: prettier fix @louis-jan (#2019)\r\n- chore: bump nitro 0.3.9 @louis-jan (#2016)\r\n- refactor: reduce IPC \\& API handlers - shared node logics @louis-jan (#2011)\r\n- docs: update 03-gpu-not-used with RTX issues @hieu-jan (#1992)\r\n- docs: add Jan installation using Docker @hieu-jan (#1981)\r\n- chore: reduce bundle size @louis-jan (#1970)\r\n- docs: add author.yml @hieu-jan (#1973)\r\n- Update authors.yml hien @hiento09 (#1953)\r\n- chore: server download progress + S3 @louis-jan (#1925)\r\n- chore: add author james @namchuai (#1952)\r\n- chore: Add author - Ashley @imtuyethan (#1950)\r\n- chore: Add Author - Hiro @hiro-v (#1949)\r\n- docs: adding new feature for v0.4.6 to release checklist @Van-QA (#1927)\r\n\r\n## Contributor\r\n\r\n@0xSage, @0xgokuz, @SamPatt, @Van-QA, @hahuyhoang411, @hiento09, @hieu-jan, @hiro-v, @imtuyethan, @jan-service-account, @ldebs, @louis-jan, @namchuai, @urmauur and James\r\n", + "reactions": { + "url": "https://api.github.com/repos/janhq/jan/releases/143551170/reactions", + "total_count": 12, + "+1": 11, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 1, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 14 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/139867661", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/139867661/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/139867661/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.6", + "id": 139867661, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4IVjYN", + "tag_name": "v0.4.6", + "target_commitish": "ee5a44a799b42bab9e8b291e52c1bf6a4b7dd0e5", + "name": "0.4.6", + "draft": false, + "prerelease": false, + "created_at": "2024-02-05T08:53:11Z", + "published_at": "2024-02-05T09:16:22Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149880406", + "id": 149880406, + "node_id": "RA_kwDOKIBx0s4I7v5W", + "name": "jan-linux-amd64-0.4.6.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 122112210, + "download_count": 2421, + "created_at": "2024-02-05T08:58:35Z", + "updated_at": "2024-02-05T08:58:37Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-linux-amd64-0.4.6.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149880342", + "id": 149880342, + "node_id": "RA_kwDOKIBx0s4I7v4W", + "name": "jan-linux-x86_64-0.4.6.AppImage", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 161255742, + "download_count": 2197, + "created_at": "2024-02-05T08:57:24Z", + "updated_at": "2024-02-05T08:57:27Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-linux-x86_64-0.4.6.AppImage" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149882151", + "id": 149882151, + "node_id": "RA_kwDOKIBx0s4I7wUn", + "name": "jan-mac-arm64-0.4.6.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 149608360, + "download_count": 5271, + "created_at": "2024-02-05T09:12:39Z", + "updated_at": "2024-02-05T09:13:19Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-arm64-0.4.6.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149882150", + "id": 149882150, + "node_id": "RA_kwDOKIBx0s4I7wUm", + "name": "jan-mac-arm64-0.4.6.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 157046, + "download_count": 15, + "created_at": "2024-02-05T09:12:39Z", + "updated_at": "2024-02-05T09:12:40Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-arm64-0.4.6.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149882211", + "id": 149882211, + "node_id": "RA_kwDOKIBx0s4I7wVj", + "name": "jan-mac-arm64-0.4.6.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 144942589, + "download_count": 1719, + "created_at": "2024-02-05T09:12:56Z", + "updated_at": "2024-02-05T09:13:09Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-arm64-0.4.6.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149882210", + "id": 149882210, + "node_id": "RA_kwDOKIBx0s4I7wVi", + "name": "jan-mac-arm64-0.4.6.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 151798, + "download_count": 10, + "created_at": "2024-02-05T09:12:56Z", + "updated_at": "2024-02-05T09:12:57Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-arm64-0.4.6.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149881499", + "id": 149881499, + "node_id": "RA_kwDOKIBx0s4I7wKb", + "name": "jan-mac-x64-0.4.6.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 156182072, + "download_count": 2042, + "created_at": "2024-02-05T09:07:20Z", + "updated_at": "2024-02-05T09:07:25Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-x64-0.4.6.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149881500", + "id": 149881500, + "node_id": "RA_kwDOKIBx0s4I7wKc", + "name": "jan-mac-x64-0.4.6.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 164549, + "download_count": 14, + "created_at": "2024-02-05T09:07:20Z", + "updated_at": "2024-02-05T09:07:20Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-x64-0.4.6.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149881557", + "id": 149881557, + "node_id": "RA_kwDOKIBx0s4I7wLV", + "name": "jan-mac-x64-0.4.6.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 151601089, + "download_count": 423, + "created_at": "2024-02-05T09:07:54Z", + "updated_at": "2024-02-05T09:07:58Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-x64-0.4.6.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149881558", + "id": 149881558, + "node_id": "RA_kwDOKIBx0s4I7wLW", + "name": "jan-mac-x64-0.4.6.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 159770, + "download_count": 16, + "created_at": "2024-02-05T09:07:54Z", + "updated_at": "2024-02-05T09:07:55Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-mac-x64-0.4.6.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149881285", + "id": 149881285, + "node_id": "RA_kwDOKIBx0s4I7wHF", + "name": "jan-win-x64-0.4.6.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 136684856, + "download_count": 29522, + "created_at": "2024-02-05T09:05:31Z", + "updated_at": "2024-02-05T09:05:36Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-win-x64-0.4.6.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149881286", + "id": 149881286, + "node_id": "RA_kwDOKIBx0s4I7wHG", + "name": "jan-win-x64-0.4.6.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 145259, + "download_count": 8542, + "created_at": "2024-02-05T09:05:31Z", + "updated_at": "2024-02-05T09:05:31Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/jan-win-x64-0.4.6.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149880413", + "id": 149880413, + "node_id": "RA_kwDOKIBx0s4I7v5d", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 540, + "download_count": 8083, + "created_at": "2024-02-05T08:58:38Z", + "updated_at": "2024-02-05T08:58:38Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149882379", + "id": 149882379, + "node_id": "RA_kwDOKIBx0s4I7wYL", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 842, + "download_count": 18035, + "created_at": "2024-02-05T09:14:20Z", + "updated_at": "2024-02-05T09:14:20Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/149881293", + "id": 149881293, + "node_id": "RA_kwDOKIBx0s4I7wHN", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 61912, + "created_at": "2024-02-05T09:05:37Z", + "updated_at": "2024-02-05T09:05:37Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.6/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.6", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.6", + "body": "## Changes\r\n\r\n- Regression fix assitant extension codesign @hiento09 (#1918)\r\n- Release cut 0.4.6 @louis-jan (#1888)\r\n- feat: add factory reset feature @namchuai (#1750)\r\n- chore: add react developer tools to electron @Helloyunho (#1858)\r\n- Sync Release 0.4.5 to dev @louis-jan (#1830)\r\n\r\n## 🚀 Features\r\n\r\n- feat: integrate umami @hieu-jan (#1809)\r\n- feat: Add default value for ngl @hiro-v (#1886)\r\n- feat: add start/stop model via http api @namchuai (#1862)\r\n- feat: add snackbar component and update style side banner @urmauur (#1874)\r\n- feat: move open app directory into icon folder @urmauur (#1879)\r\n- chore: Bump nitro to 0.3.3 @hiro-v (#1877)\r\n- feat: put timestamp under thread name in left panel @urmauur (#1820)\r\n- perf: remove unnecessary rerender when user typing input @namchuai (#1818)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: umami analytics send app loaded event @louis-jan (#1928)\r\n- fix: migration loading indicator @louis-jan (#1913)\r\n- fix: broken manual import model with NA fields @louis-jan (#1912)\r\n- fix: openAIEmbedding now requires top level API Key configuration @louis-jan (#1902)\r\n- fix: load model fail overlays thread message error @louis-jan (#1901)\r\n- fix: show generate response on message send @louis-jan (#1895)\r\n- fix: display error message on model load fail @louis-jan (#1894)\r\n- fix: the selected model auto revert back to previous used model with setting mismatch @louis-jan (#1883)\r\n- fix: add dialog confirm when move folder and next dest isn't empty @urmauur (#1880)\r\n- Increase timeout for explore.e2e.spec test @hiento09 (#1844)\r\n- chore: Bump nitro to 0.3.3 @hiro-v (#1877)\r\n- fix: auto collapse retrieval setting while update config @urmauur (#1866)\r\n- fix: loader show while error global when change folder @urmauur (#1870)\r\n- fix: retrieval always ask for api key @louis-jan (#1856)\r\n- fix: all input text box are disabled @namchuai (#1855)\r\n- fix: add loader when user change folder @urmauur (#1850)\r\n- Add code sign step for darwin assistant extension @hiento09 (#1841)\r\n- fix: preserve focused thread when navigating in jan app @namchuai (#1814)\r\n- fix: highlight menu dropdown server options @urmauur (#1831)\r\n\r\n## 🧰 Maintenance\r\n\r\n- chore: mark RAG as experimental feature @louis-jan (#1882)\r\n- Increase timeout for explore.e2e.spec test @hiento09 (#1844)\r\n- chore: Bump nitro to 0.3.3 @hiro-v (#1877)\r\n- chore: Jan Data Folder setting is no longer an experimental feature @louis-jan (#1847)\r\n- chore: resolve main conflict @louis-jan (#1833)\r\n- Update release url on README to default branch instead of main branch @hiento09 (#1832)\r\n\r\n## Contributor\r\n\r\n@Helloyunho, @hiento09, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @namchuai, @urmauur and James\r\n", + "reactions": { + "url": "https://api.github.com/repos/janhq/jan/releases/139867661/reactions", + "total_count": 13, + "+1": 7, + "-1": 0, + "laugh": 0, + "hooray": 5, + "confused": 0, + "heart": 0, + "rocket": 1, + "eyes": 0 + }, + "mentions_count": 8 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/138849187", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/138849187/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/138849187/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.5", + "id": 138849187, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4IRquj", + "tag_name": "v0.4.5", + "target_commitish": "dev", + "name": "0.4.5", + "draft": false, + "prerelease": false, + "created_at": "2024-01-29T03:34:09Z", + "published_at": "2024-01-29T05:19:22Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148430393", + "id": 148430393, + "node_id": "RA_kwDOKIBx0s4I2N45", + "name": "jan-linux-amd64-0.4.5.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 100526314, + "download_count": 1108, + "created_at": "2024-01-29T04:42:56Z", + "updated_at": "2024-01-29T04:42:59Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-linux-amd64-0.4.5.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148430297", + "id": 148430297, + "node_id": "RA_kwDOKIBx0s4I2N3Z", + "name": "jan-linux-x86_64-0.4.5.AppImage", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 139479533, + "download_count": 991, + "created_at": "2024-01-29T04:41:42Z", + "updated_at": "2024-01-29T04:41:47Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-linux-x86_64-0.4.5.AppImage" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431736", + "id": 148431736, + "node_id": "RA_kwDOKIBx0s4I2ON4", + "name": "jan-mac-arm64-0.4.5.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 127455536, + "download_count": 1481, + "created_at": "2024-01-29T05:04:02Z", + "updated_at": "2024-01-29T05:04:16Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-arm64-0.4.5.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431735", + "id": 148431735, + "node_id": "RA_kwDOKIBx0s4I2ON3", + "name": "jan-mac-arm64-0.4.5.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 133835, + "download_count": 4, + "created_at": "2024-01-29T05:04:02Z", + "updated_at": "2024-01-29T05:04:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-arm64-0.4.5.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431759", + "id": 148431759, + "node_id": "RA_kwDOKIBx0s4I2OOP", + "name": "jan-mac-arm64-0.4.5.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 122951194, + "download_count": 1063, + "created_at": "2024-01-29T05:04:18Z", + "updated_at": "2024-01-29T05:04:23Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-arm64-0.4.5.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431758", + "id": 148431758, + "node_id": "RA_kwDOKIBx0s4I2OOO", + "name": "jan-mac-arm64-0.4.5.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 129367, + "download_count": 4, + "created_at": "2024-01-29T05:04:18Z", + "updated_at": "2024-01-29T05:04:18Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-arm64-0.4.5.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431510", + "id": 148431510, + "node_id": "RA_kwDOKIBx0s4I2OKW", + "name": "jan-mac-x64-0.4.5.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 134030913, + "download_count": 643, + "created_at": "2024-01-29T05:00:45Z", + "updated_at": "2024-01-29T05:00:52Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-x64-0.4.5.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431511", + "id": 148431511, + "node_id": "RA_kwDOKIBx0s4I2OKX", + "name": "jan-mac-x64-0.4.5.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 140125, + "download_count": 4, + "created_at": "2024-01-29T05:00:45Z", + "updated_at": "2024-01-29T05:00:46Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-x64-0.4.5.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431576", + "id": 148431576, + "node_id": "RA_kwDOKIBx0s4I2OLY", + "name": "jan-mac-x64-0.4.5.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 129562996, + "download_count": 190, + "created_at": "2024-01-29T05:01:35Z", + "updated_at": "2024-01-29T05:01:41Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-x64-0.4.5.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431577", + "id": 148431577, + "node_id": "RA_kwDOKIBx0s4I2OLZ", + "name": "jan-mac-x64-0.4.5.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 135459, + "download_count": 5, + "created_at": "2024-01-29T05:01:35Z", + "updated_at": "2024-01-29T05:01:35Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-mac-x64-0.4.5.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148430949", + "id": 148430949, + "node_id": "RA_kwDOKIBx0s4I2OBl", + "name": "jan-win-x64-0.4.5.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 112164048, + "download_count": 9316, + "created_at": "2024-01-29T04:51:58Z", + "updated_at": "2024-01-29T04:52:00Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-win-x64-0.4.5.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148430948", + "id": 148430948, + "node_id": "RA_kwDOKIBx0s4I2OBk", + "name": "jan-win-x64-0.4.5.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 119750, + "download_count": 5239, + "created_at": "2024-01-29T04:51:58Z", + "updated_at": "2024-01-29T04:51:58Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/jan-win-x64-0.4.5.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148430399", + "id": 148430399, + "node_id": "RA_kwDOKIBx0s4I2N4_", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 540, + "download_count": 3298, + "created_at": "2024-01-29T04:42:59Z", + "updated_at": "2024-01-29T04:42:59Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148431765", + "id": 148431765, + "node_id": "RA_kwDOKIBx0s4I2OOV", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 6004, + "created_at": "2024-01-29T05:04:24Z", + "updated_at": "2024-01-29T05:04:24Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/148430954", + "id": 148430954, + "node_id": "RA_kwDOKIBx0s4I2OBq", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 17196, + "created_at": "2024-01-29T04:52:00Z", + "updated_at": "2024-01-29T04:52:01Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.5/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.5", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.5", + "body": "## Changes\r\n\r\n- fix(Wording): #1758 correct text for windows @namchuai (#1768)\r\n- fix(Log): server log is not display in windows @namchuai (#1764)\r\n- Release Cut v0.4.5 @louis-jan (#1752)\r\n- chore(nitro): 0.2.11 -> 0.2.12 @hiro-v (#1754)\r\n- fix: Nitro CPU threads with correct physical/ performance CPU count @hiro-v (#1726)\r\n- fix(Model): #1662 imported model does not use gpu @namchuai (#1723)\r\n- fix(API): #1720 host/port provided in the local API server does not fully applied @namchuai (#1721)\r\n- fix: server API reference @hiro-v (#1670)\r\n- fix(Model): refactor model label @namchuai (#1596)\r\n- docs/postmortem v 0.4.4 @hieu-jan (#1617)\r\n- chore(ShortcutModal): clean up shortcut modal @namchuai (#1614)\r\n- chore(Dependencies): upgrade node-fetch to fix vulnerable issue @namchuai (#1598)\r\n\r\n## 🚀 Features\r\n\r\n- feat: update UI allow user change folder @urmauur (#1738)\r\n- feat: error message when not enough RAM @urmauur (#1706)\r\n- feat: improvement ux for local api server @urmauur (#1704)\r\n- feat: allow user to move jan folder @namchuai (#1649)\r\n- feat: HTTP proxy support @markmehere (#1562)\r\n- Feature add schedule clean cloudflare page and r2 @hiento09 (#1653)\r\n- feat: relayout left panel setting page @urmauur (#1648)\r\n- Update CI follow git flow @hiento09 (#1625)\r\n- feat: Implement UI page API server dashboard @urmauur (#1636)\r\n- fix: #1545 long thread title @lucido-simon (#1605)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: model selection does not show in API settings page @louis-jan (#1828)\r\n- fix: user can't view model setting in local api server @namchuai (#1807)\r\n- fix: cannot change jan data folder @namchuai (#1805)\r\n- fix: model selection does not show in API settings page @louis-jan (#1802)\r\n- fix: user can't use a model in model hub @namchuai (#1801)\r\n- fix: stop openai inference raises something amiss @louis-jan (#1799)\r\n- regression fix: input disabled darkmode @urmauur (#1800)\r\n- fix: clean last message when user clean thread message @namchuai (#1793)\r\n- fix: app log not being printed @namchuai (#1790)\r\n- fix: api settings are not applied on changes @louis-jan (#1789)\r\n- fix: could not delete model @louis-jan (#1779)\r\n- fix: can not start model when server is not enabled from model settings page @louis-jan (#1774)\r\n- regression fix: input port not accept alphabets @urmauur (#1772)\r\n- Correct bash script syntax in ci @hiento09 (#1769)\r\n- Hotfix CI pre-release not trigger @hiento09 (#1757)\r\n- fix: bring back open app directory @louis-jan (#1756)\r\n- fix: input port have range validation @urmauur (#1741)\r\n- Fix error nightly build schedule run failed @hiento09 (#1736)\r\n- fix: active model when start server @urmauur (#1719)\r\n- fix: Change to fixed `localhost` instead of using host variable @hiro-v (#1729)\r\n- Fix autoupdater nightly build error @hiento09 (#1727)\r\n- Correct download url readme @hiento09 (#1724)\r\n- fix: API chat/completion is blocked by CORS @louis-jan (#1705)\r\n- fix: Jan server - v1/chat/completions is throwing ERR\\_REQUIRE\\_ESM @louis-jan (#1703)\r\n- fix: Jan server is showing blank page @louis-jan (#1702)\r\n- fix: switching loader from remote to local model from thread right panel @urmauur (#1692)\r\n- fix: hot-fix algolia search @hieu-jan (#1700)\r\n- fix: disable api key field while server is running @urmauur (#1694)\r\n- fix: stoping model show starting model @urmauur (#1693)\r\n- fix bug #1650 hogging resources @hiento09 (#1663)\r\n- fix: auto select text when collapse panel @urmauur (#1645)\r\n- fix: wrong selected model ref @louis-jan (#1638)\r\n- fix: enable check for update on all supported platforms @louis-jan (#1626)\r\n- fix: correct footer @hieu-jan (#1628)\r\n\r\n## 🧰 Maintenance\r\n\r\n- Docs publish to github page trigger on push to docs branch @hiento09 (#1783)\r\n- Correct bash script syntax in ci @hiento09 (#1769)\r\n- Combine 2 ci pipeline pre-release and nightly into one @hiento09 (#1767)\r\n- Hotfix CI pre-release not trigger @hiento09 (#1757)\r\n- Fix error nightly build schedule run failed @hiento09 (#1736)\r\n- docs: add troubleshoot unexpected token @hieu-jan (#1711)\r\n- docs: fix about pages @0xSage (#1699)\r\n- refactor: deprecate extension type implementation @louis-jan (#1677)\r\n- refactor: file prefix replace utils \\& add unit test @louis-jan (#1676)\r\n- Correct ref branch for update url on README.md file @hiento09 (#1672)\r\n- docs: update 02-somethings-amiss @hieu-jan (#1668)\r\n- Cherrypick cicd to main branch to apply new gitflow @hiento09 (#1665)\r\n- docs: add user and developer guides for extensions @hieu-jan (#1657)\r\n- docs: add QA Script @hieu-jan (#1660)\r\n- chore: Bump nitro to 0.2.11 @hiro-v (#1655)\r\n- chore: Bump version nitro to 0.2.10 @hiro-v (#1644)\r\n- docs: add antivirus compatibility testing @hieu-jan (#1641)\r\n- refactor: introduce node module in nitro extension @louis-jan (#1630)\r\n- Update 02-somethings-amiss.mdx @Ssstars (#1634)\r\n- docs: add integration AzureOpenAI @hieu-jan (#1632)\r\n- docs: add troubleshooting permission denied @hieu-jan (#1631)\r\n\r\n## Contributor\r\n\r\n@0xSage, @Ssstars, @hiento09, @hientominh, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @lucido-simon, @markmehere, @namchuai and @urmauur\r\n", + "reactions": { + "url": "https://api.github.com/repos/janhq/jan/releases/138849187/reactions", + "total_count": 10, + "+1": 6, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 3, + "eyes": 1 + }, + "mentions_count": 12 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/137134422", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/137134422/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/137134422/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.4", + "id": 137134422, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4ILIFW", + "tag_name": "v0.4.4", + "target_commitish": "e3a06aad3e158be0919478f5893108f71557649d", + "name": "0.4.4", + "draft": false, + "prerelease": false, + "created_at": "2024-01-15T08:52:00Z", + "published_at": "2024-01-16T01:55:43Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145769193", + "id": 145769193, + "node_id": "RA_kwDOKIBx0s4IsELp", + "name": "jan-linux-amd64-0.4.4.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 100113418, + "download_count": 2705, + "created_at": "2024-01-16T01:43:11Z", + "updated_at": "2024-01-16T01:43:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-linux-amd64-0.4.4.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145768983", + "id": 145768983, + "node_id": "RA_kwDOKIBx0s4IsEIX", + "name": "jan-linux-x86_64-0.4.4.AppImage", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 139077362, + "download_count": 2502, + "created_at": "2024-01-16T01:41:56Z", + "updated_at": "2024-01-16T01:41:59Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-linux-x86_64-0.4.4.AppImage" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770452", + "id": 145770452, + "node_id": "RA_kwDOKIBx0s4IsEfU", + "name": "jan-mac-arm64-0.4.4.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 127211966, + "download_count": 4864, + "created_at": "2024-01-16T01:52:32Z", + "updated_at": "2024-01-16T01:52:37Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-arm64-0.4.4.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770451", + "id": 145770451, + "node_id": "RA_kwDOKIBx0s4IsEfT", + "name": "jan-mac-arm64-0.4.4.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 132898, + "download_count": 7, + "created_at": "2024-01-16T01:52:32Z", + "updated_at": "2024-01-16T01:52:32Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-arm64-0.4.4.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770459", + "id": 145770459, + "node_id": "RA_kwDOKIBx0s4IsEfb", + "name": "jan-mac-arm64-0.4.4.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 122737615, + "download_count": 1061, + "created_at": "2024-01-16T01:52:40Z", + "updated_at": "2024-01-16T01:52:44Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-arm64-0.4.4.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770458", + "id": 145770458, + "node_id": "RA_kwDOKIBx0s4IsEfa", + "name": "jan-mac-arm64-0.4.4.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 129515, + "download_count": 5, + "created_at": "2024-01-16T01:52:40Z", + "updated_at": "2024-01-16T01:52:40Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-arm64-0.4.4.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770231", + "id": 145770231, + "node_id": "RA_kwDOKIBx0s4IsEb3", + "name": "jan-mac-x64-0.4.4.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 133785404, + "download_count": 1930, + "created_at": "2024-01-16T01:49:55Z", + "updated_at": "2024-01-16T01:50:00Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-x64-0.4.4.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770232", + "id": 145770232, + "node_id": "RA_kwDOKIBx0s4IsEb4", + "name": "jan-mac-x64-0.4.4.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 140010, + "download_count": 6, + "created_at": "2024-01-16T01:49:55Z", + "updated_at": "2024-01-16T01:49:55Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-x64-0.4.4.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770132", + "id": 145770132, + "node_id": "RA_kwDOKIBx0s4IsEaU", + "name": "jan-mac-x64-0.4.4.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 129349430, + "download_count": 275, + "created_at": "2024-01-16T01:48:29Z", + "updated_at": "2024-01-16T01:48:35Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-x64-0.4.4.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770133", + "id": 145770133, + "node_id": "RA_kwDOKIBx0s4IsEaV", + "name": "jan-mac-x64-0.4.4.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 135543, + "download_count": 6, + "created_at": "2024-01-16T01:48:29Z", + "updated_at": "2024-01-16T01:48:29Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-mac-x64-0.4.4.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770178", + "id": 145770178, + "node_id": "RA_kwDOKIBx0s4IsEbC", + "name": "jan-win-x64-0.4.4.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 111766336, + "download_count": 23208, + "created_at": "2024-01-16T01:49:06Z", + "updated_at": "2024-01-16T01:49:10Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-win-x64-0.4.4.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770185", + "id": 145770185, + "node_id": "RA_kwDOKIBx0s4IsEbJ", + "name": "jan-win-x64-0.4.4.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 118550, + "download_count": 7136, + "created_at": "2024-01-16T01:49:11Z", + "updated_at": "2024-01-16T01:49:11Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/jan-win-x64-0.4.4.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145769198", + "id": 145769198, + "node_id": "RA_kwDOKIBx0s4IsELu", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 540, + "download_count": 6804, + "created_at": "2024-01-16T01:43:13Z", + "updated_at": "2024-01-16T01:43:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770487", + "id": 145770487, + "node_id": "RA_kwDOKIBx0s4IsEf3", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 10715, + "created_at": "2024-01-16T01:52:44Z", + "updated_at": "2024-01-16T01:52:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/145770186", + "id": 145770186, + "node_id": "RA_kwDOKIBx0s4IsEbK", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 25723, + "created_at": "2024-01-16T01:49:12Z", + "updated_at": "2024-01-16T01:49:12Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.4/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.4", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.4", + "body": "## Changes\r\n\r\n- Update 2023-11-05-hello-world.md @Ssstars (#1587)\r\n- fix(API): #1511 update swagger page @namchuai (#1572)\r\n- fix(Thread): #1212 thread.json not created when user change thread settings @namchuai (#1570)\r\n- fix(Thread): #1336 not allow creating too many unfinished thread @namchuai (#1538)\r\n- Update 01-how-to-get-involved-and-FAQ.mdx @Ssstars (#1555)\r\n- Update 01-how-to-get-involved-and-FAQ.mdx @Ssstars (#1553)\r\n- Update 02-embracing-pod-structure.mdx @Ssstars (#1550)\r\n- Update 01-how-we-hire.mdx @Ssstars (#1551)\r\n- Update 01-how-we-hire.mdx @Ssstars (#1524)\r\n- fix(InferenceExtension): #1067 sync the nitro process state @namchuai (#1493)\r\n- fix(Messages): #1434 create message via api does not display on app correctly @namchuai (#1479)\r\n- Docs for the Integration of Continue and Jan in VSCode @0xgokuz (#1467)\r\n- Chore: Update model.json for UI @hahuyhoang411 (#1448)\r\n- Docs for Installing Models from Hub @0xgokuz (#1450)\r\n- Update about.md @Ssstars (#1436)\r\n- feat(UI): #1404 make left side bar collapsible by hot key @namchuai (#1420)\r\n- docs: Typo in 06-hardware.md @akaMrNagar (#1408)\r\n- fix(API): #1409 fix wrong prefix for threads api @namchuai (#1410)\r\n- Update model hub @hahuyhoang411 (#1383)\r\n- fix(Model): remove unsupported default model setting params @namchuai (#1382)\r\n- fix(trinity): update cover path for trinity v1.2 @hahuyhoang411 (#1380)\r\n- Chore/update model hub @hahuyhoang411 (#1342)\r\n- Update about.md @Ssstars (#1359)\r\n- fix(JanHub): #1158 sort model list @namchuai (#1257)\r\n- fix(Message): open link with external browser @namchuai (#1339)\r\n- feat(Model): #1028 made model.json optional @namchuai (#1314)\r\n- docs: Update onboarding.md @Diane0111 (#1293)\r\n- fix: clean resource on exit @louis-jan (#1290)\r\n- fix: posthog configuration @hieu-jan (#1283)\r\n- docs: update README.md @eltociear (#1277)\r\n- Enable scrolling in the message chat box @Gri-ffin (#1280)\r\n- chore: Update README.md @sr-albert (#1263)\r\n- Adding new model to the Hub @hahuyhoang411 (#1213)\r\n- Feature GPU detection for Jan on Windows and Linux @hiento09 (#1242)\r\n- fix(Thread): #1168 fix newly created thread cannot select model after restart @namchuai (#1176)\r\n\r\n## 🚀 Features\r\n\r\n- feat: add compatibility tag to model selection in right panel @urmauur (#1552)\r\n- Feature integrate antivirus scanner to ci @hiento09 (#1529)\r\n- feat: [hub] update compatibility tags colors @urmauur (#1516)\r\n- feat: hub recommendation labels @urmauur (#1440)\r\n- Feature linux support app image format @hiento09 (#1442)\r\n- fix: render external links @urmauur (#1441)\r\n- fix: add icon collapsible left panel and update keyboard shortcut page @urmauur (#1439)\r\n- feat(UI): update UI footer @urmauur (#1424)\r\n- Fix Bug for Chat Reply Goes off Screen @mishrababhishek (#1393)\r\n- feat: move social media from left panel into footer @urmauur (#1325)\r\n- feat: implementation new UI thread settings @urmauur (#1301)\r\n- Bring social media links @Gri-ffin (#1295)\r\n- feat: added keyboard shortcut list in setting page @urmauur (#1275)\r\n- feat: add swagger /docs to localhost:1337 @louis-jan (#1268)\r\n- feat: update posthog configuration @hieu-jan (#1258)\r\n- feat: Deprecate model.json ready state in favor of .download ext @louis-jan (#1238)\r\n- feat: add engine settings @namchuai (#1199)\r\n- feat: users should be able to switch models mid-thread @louis-jan (#1226)\r\n- feat: temporary link how to import model @urmauur (#1209)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: #1594 - Model settings - change thread model - go back does not see according settings @louis-jan (#1595)\r\n- fix: #1548 - duplicate command shortcut instruction @louis-jan (#1600)\r\n- fix: switch model caused app crash @louis-jan (#1597)\r\n- fix: #1559 Inference Parameters displayed on new thread with Openai GPT Model @louis-jan (#1588)\r\n- fix: enable user set value manually model setting from input @urmauur (#1585)\r\n- fix: #1569 - Does not apply thread settings when loading model @louis-jan (#1576)\r\n- fix: could not change model params settings @louis-jan (#1547)\r\n- fix: gpu check module export does not work in extension @louis-jan (#1536)\r\n- fix: adjust calculation hub labels using total RAM instead remaining RAM @urmauur (#1522)\r\n- Feature integrate antivirus scanner to ci @hiento09 (#1529)\r\n- fix: allow users to set max tokens variably @urmauur (#1513)\r\n- fix: stop word update @louis-jan (#1457)\r\n- Revert nitro to 0.2.6 @hiento09 (#1491)\r\n- fix: enable text selection codeblock @urmauur (#1466)\r\n- fix: suppress all main node JS error message dialog @louis-jan (#1460)\r\n- Correct AppImage path @hiento09 (#1446)\r\n- fix: render external links @urmauur (#1441)\r\n- fix: add icon collapsible left panel and update keyboard shortcut page @urmauur (#1439)\r\n- fix: GET /models does not work due to new default model dir @louis-jan (#1392)\r\n- fix: model migration stopped working @louis-jan (#1378)\r\n- fix: wrong condition for displaying error message @louis-jan (#1376)\r\n- fix: show hide section engine params @urmauur (#1374)\r\n- fix: copy stream tooltip and hide section when no params setting @urmauur (#1373)\r\n- bugs: fix stop streaming when user delete or clean thread @urmauur (#1347)\r\n- fix: show a proper error message on download failure @louis-jan (#1345)\r\n- Add detect cuda version jan app @hiento09 (#1351)\r\n- fix: Error occurred: Unexpected token \"d\", \"data: ...\" is not a valid JSON @louis-jan (#1332)\r\n- fix: app getting stuck at downloading 99% while downloading model @louis-jan (#1320)\r\n- correct type utf-8 @hiento09 (#1311)\r\n- Fix memory on mac included cached and swap @hiento09 (#1298)\r\n- fix: should check app dir before spawning log @louis-jan (#1297)\r\n- fix: disable process logging from server @louis-jan (#1296)\r\n- fix: user should be able to access Swagger docs from localhost:1337 @louis-jan (#1292)\r\n- Switch from Gigabyte to Gibibyte - System monitor @hiento09 (#1286)\r\n- Switch from systeminformation to os-utils to resolve Bitdefender false positive and memory leak issue @hiento09 (#1282)\r\n- fix: swagger CSP issue @louis-jan (#1284)\r\n- fix: support markdown break line @urmauur (#1274)\r\n- fix ci test run failed @hiento09 (#1267)\r\n- Fix wrong linux nitro path @hiento09 (#1266)\r\n- fix: enable command enter on dialog confirmation clean thread @urmauur (#1261)\r\n- fix: input message duplicated due with some input sources @louis-jan (#1259)\r\n- fix: mac users should not see GPU settings @louis-jan (#1255)\r\n- fix: remove redundant gpu detection prompt event @louis-jan (#1254)\r\n- fix: engine settings GUI - feature toggle @louis-jan (#1252)\r\n- Fix bug #1178 high ram on windows @hiento09 (#1241)\r\n- fix: #1183 Reveal in finder does not work on windows @namchuai (#1239)\r\n- fix: remove delay tooltip and click event @urmauur (#1217)\r\n- fix: enable enter command on dialog confirmation delete thread @urmauur (#1218)\r\n- fix: Cleared thread last message is not updated @louis-jan (#1225)\r\n- Fix switch thread crash nitro windows linux @hiento09 (#1214)\r\n- fix: darkmode broken color @urmauur (#1186)\r\n\r\n## 🧰 Maintenance\r\n\r\n- chore: typo model.json @louis-jan (#1599)\r\n- docs: add 04-how-to-get-error-logs.mdx @hieu-jan (#1580)\r\n- chore: teach how to attach logs @0xSage (#1578)\r\n- chore: issues should auto close with PRs through template @0xSage (#1577)\r\n- chore: Update issue templates @0xSage (#1568)\r\n- docs: fix x handles @0xSage (#1532)\r\n- Docs to integrate OpenRouter with Jan without UI/UX @0xgokuz (#1495)\r\n- chore: fix darkmode docs @hieu-jan (#1520)\r\n- docs: fix algolia configuration @hieu-jan (#1518)\r\n- docs: fix algolia configuration @hieu-jan (#1517)\r\n- Revert URL release in readme to version 0.4.3 @hiento09 (#1502)\r\n- refactor: add app and nitro log - resolve dependencies issue @louis-jan (#1447)\r\n- chore: enable agolia @hieu-jan (#1497)\r\n- docs: update troubleshooting and redirects old pages @hieu-jan (#1492)\r\n- docs: minor fix @hieu-jan (#1478)\r\n- docs: initial handbook structure @hieu-jan (#1477)\r\n- Bump nitro to 0.2.8 and change Jan App to support cuda >= 11.7 @hiento09 (#1476)\r\n- Chore update docs jan - add AppImage instruction to docusaurus @hiento09 (#1480)\r\n- Bump nitro to 0.2.7 @hiento09 (#1474)\r\n- chore: error message update @louis-jan (#1473)\r\n- docs: Update 02-import-manually.mdx @0xSage (#1469)\r\n- docs: Update about.md @0xSage (#1465)\r\n- Bump nitro version to 0.2.6 @hiento09 (#1458)\r\n- docs: adding customize engine settings @hieu-jan (#1455)\r\n- docs: add-missing-path @hieu-jan (#1454)\r\n- docs: resize gif @hieu-jan (#1453)\r\n- docs: revenue philosophy @0xSage (#1443)\r\n- docs: jan framework principles @0xSage (#1438)\r\n- docs: fix typo in docs @hieu-jan (#1419)\r\n- chore: clean up use os hook @namchuai (#1418)\r\n- docs: explain each docs page intent @0xSage (#1417)\r\n- docs: Update 01-server.md @0xSage (#1416)\r\n- Update warning url from github md file to jan.ai docs site @hiento09 (#1414)\r\n- docs: improve gpu not used guide @hieu-jan (#1405)\r\n- chore: update README.md @eltociear (#1406)\r\n- Update USAGE docs for linux @hiento09 (#1401)\r\n- docs: gpu not detected @0xSage (#1399)\r\n- docs: Troubleshoot Failed To Fetch @gabrielle-ong (#1398)\r\n- docs: improve docs syntax @hieu-jan (#1394)\r\n- docs: add-install-nightly-guide @hieu-jan (#1390)\r\n- docs: correct href link @hieu-jan (#1338)\r\n- docs: fix chat payload and cURL @hieu-jan (#1360)\r\n- docs: add Chatting Guide @hieu-jan (#1184)\r\n- Chore add docs usage how to switch run mode jan app @hiento09 (#1353)\r\n- docs: configure index page @hieu-jan (#1330)\r\n- docs: Update product.md @0xSage (#1326)\r\n- docs: Update 01-server.md @0xSage (#1327)\r\n- refactor: deprecate the appVersion IPC and use the predefined VERSION @louis-jan (#1309)\r\n- docs: update using models documentation @hieu-jan (#1288)\r\n- docs: update pm handbook @0xSage (#1307)\r\n- docs: contributor docs overview @0xSage (#1305)\r\n- chore: github PR template @0xSage (#1304)\r\n- Fix memory on mac included cached and swap @hiento09 (#1298)\r\n- Enrich discord message for nightly build url @hiento09 (#1294)\r\n- Refactor CI by create shared jobs output @hiento09 (#1287)\r\n- docs: update README.md @hieu-jan (#1281)\r\n- docs: Update README.md @0xSage (#1248)\r\n- feat: Jan Server, API and decoupled clients @louis-jan (#948)\r\n- docs: improve 02-import-manually @hieu-jan (#1222)\r\n- chore: Update issue templates @0xSage (#1229)\r\n- docs: Update 02-import-manually.mdx @0xSage (#1197)\r\n- add sleep 500ms if platform is windows before starting nitro process @hiento09 (#1215)\r\n- docs: improve troubleshoot documentation @hieu-jan (#1173)\r\n- docs: update bug report template @hieu-jan (#1180)\r\n- docs: add troubleshooting @hieu-jan (#1169)\r\n- chore: copy fixes @0xSage (#1167)\r\n- docs: Update 01-start-thread.md @0xSage (#1122)\r\n\r\n## Contributor\r\n\r\n@0xSage, @0xgokuz, @Diane0111, @Gri-ffin, @Ssstars, @akaMrNagar, @eltociear, @gabrielle-ong, @hahuyhoang411, @hiento09, @hieu-jan, @jan-service-account, @louis-jan, @mishrababhishek, @namchuai, @sr-albert, @urmauur and Abhishek Mishra\r\n", + "reactions": { + "url": "https://api.github.com/repos/janhq/jan/releases/137134422/reactions", + "total_count": 18, + "+1": 13, + "-1": 0, + "laugh": 0, + "hooray": 3, + "confused": 0, + "heart": 0, + "rocket": 2, + "eyes": 0 + }, + "mentions_count": 17 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/134782366", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/134782366/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/134782366/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.3", + "id": 134782366, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4ICJ2e", + "tag_name": "v0.4.3", + "target_commitish": "75e0342c9fa2debeb238d15dc76514383401bb9d", + "name": "0.4.3", + "draft": false, + "prerelease": false, + "created_at": "2023-12-21T14:02:37Z", + "published_at": "2023-12-21T14:20:48Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141813723", + "id": 141813723, + "node_id": "RA_kwDOKIBx0s4Ic-fb", + "name": "jan-linux-amd64-0.4.3.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 95840002, + "download_count": 5037, + "created_at": "2023-12-21T14:11:45Z", + "updated_at": "2023-12-21T14:11:49Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-linux-amd64-0.4.3.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814855", + "id": 141814855, + "node_id": "RA_kwDOKIBx0s4Ic-xH", + "name": "jan-mac-arm64-0.4.3.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 121463938, + "download_count": 9217, + "created_at": "2023-12-21T14:19:40Z", + "updated_at": "2023-12-21T14:19:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-arm64-0.4.3.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814856", + "id": 141814856, + "node_id": "RA_kwDOKIBx0s4Ic-xI", + "name": "jan-mac-arm64-0.4.3.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 126494, + "download_count": 15, + "created_at": "2023-12-21T14:19:40Z", + "updated_at": "2023-12-21T14:19:40Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-arm64-0.4.3.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814864", + "id": 141814864, + "node_id": "RA_kwDOKIBx0s4Ic-xQ", + "name": "jan-mac-arm64-0.4.3.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 117347980, + "download_count": 128, + "created_at": "2023-12-21T14:19:44Z", + "updated_at": "2023-12-21T14:19:49Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-arm64-0.4.3.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814863", + "id": 141814863, + "node_id": "RA_kwDOKIBx0s4Ic-xP", + "name": "jan-mac-arm64-0.4.3.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 120628, + "download_count": 8, + "created_at": "2023-12-21T14:19:43Z", + "updated_at": "2023-12-21T14:19:44Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-arm64-0.4.3.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814507", + "id": 141814507, + "node_id": "RA_kwDOKIBx0s4Ic-rr", + "name": "jan-mac-x64-0.4.3.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 128025547, + "download_count": 3363, + "created_at": "2023-12-21T14:16:54Z", + "updated_at": "2023-12-21T14:17:00Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-x64-0.4.3.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814508", + "id": 141814508, + "node_id": "RA_kwDOKIBx0s4Ic-rs", + "name": "jan-mac-x64-0.4.3.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 132736, + "download_count": 9, + "created_at": "2023-12-21T14:16:54Z", + "updated_at": "2023-12-21T14:16:54Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-x64-0.4.3.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814538", + "id": 141814538, + "node_id": "RA_kwDOKIBx0s4Ic-sK", + "name": "jan-mac-x64-0.4.3.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 123959766, + "download_count": 84, + "created_at": "2023-12-21T14:17:03Z", + "updated_at": "2023-12-21T14:17:09Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-x64-0.4.3.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814537", + "id": 141814537, + "node_id": "RA_kwDOKIBx0s4Ic-sJ", + "name": "jan-mac-x64-0.4.3.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 128011, + "download_count": 9, + "created_at": "2023-12-21T14:17:03Z", + "updated_at": "2023-12-21T14:17:03Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-mac-x64-0.4.3.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814690", + "id": 141814690, + "node_id": "RA_kwDOKIBx0s4Ic-ui", + "name": "jan-win-x64-0.4.3.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 105609992, + "download_count": 28157, + "created_at": "2023-12-21T14:18:19Z", + "updated_at": "2023-12-21T14:18:22Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-win-x64-0.4.3.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814698", + "id": 141814698, + "node_id": "RA_kwDOKIBx0s4Ic-uq", + "name": "jan-win-x64-0.4.3.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 110786, + "download_count": 4150, + "created_at": "2023-12-21T14:18:23Z", + "updated_at": "2023-12-21T14:18:23Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/jan-win-x64-0.4.3.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141813777", + "id": 141813777, + "node_id": "RA_kwDOKIBx0s4Ic-gR", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 5274, + "created_at": "2023-12-21T14:11:49Z", + "updated_at": "2023-12-21T14:11:49Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814872", + "id": 141814872, + "node_id": "RA_kwDOKIBx0s4Ic-xY", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 15930, + "created_at": "2023-12-21T14:19:49Z", + "updated_at": "2023-12-21T14:19:50Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/141814704", + "id": 141814704, + "node_id": "RA_kwDOKIBx0s4Ic-uw", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 29751, + "created_at": "2023-12-21T14:18:24Z", + "updated_at": "2023-12-21T14:18:24Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.3/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.3", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.3", + "body": "## Changes\r\n\r\n- Hotfix Prompt template for models on the Hub @hahuyhoang411 (#1159)\r\n- Update model list for new release @hahuyhoang411 (#1143)\r\n- fix(Thread): #1119 focus on the first thread to prevent blank chat screen @namchuai (#1127)\r\n- fix(Thread): #1064 message being added to wrong thread if switching thread @namchuai (#1108)\r\n- fix(Thread): #1042 allow create new thread by clicking Use in Jan Hub @namchuai (#1103)\r\n- feat(ModelSetting): #1065 update state of model setting between threads @namchuai (#1090)\r\n- Update model version @hahuyhoang411 (#1086)\r\n- fix: cache hallucinations and failed to load model due to race condition @louis-jan (#1071)\r\n- fix(thread): #1043 default model to prefer active model @namchuai (#1070)\r\n- Update issue templates @0xSage (#1058)\r\n- Update ctx\\_len and max\\_tokens @hahuyhoang411 (#1035)\r\n\r\n## 🚀 Features\r\n\r\n- feat: Add codeQL analysis for push main and pr main @hiro-v (#1128)\r\n- Feature autoupdater for nightly build @hiento09 (#1068)\r\n- feat: copy button for code block @urmauur (#1062)\r\n- Enhancements to Dependency Installation and App Testing @hiento09 (#965)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: error road map url @hieu-jan (#1153)\r\n- Fix token speed slow in machine has multi gpus @hiento09 (#1157)\r\n- fix: added dialog confirmation clean thread @urmauur (#1142)\r\n- fix: remove remote model from shortcut models dialog @urmauur (#1124)\r\n- fix: ui issue - all models are activated @louis-jan (#1120)\r\n- fix: should not hide empty message away @louis-jan (#1116)\r\n- fix: added tooltip for user cannot change model after starting thread @urmauur (#1115)\r\n- fix: remote model always active badges @urmauur (#1113)\r\n- fix: handle chat completion state with enter button @louis-jan (#1114)\r\n- fix: model active indicator only show when model activated @urmauur (#1110)\r\n- fix: #1096 yield error message upon thread switching @louis-jan (#1109)\r\n- fix: toaster success deleted thread showing id instead of active model @urmauur (#1111)\r\n- fix: update copy setting page @urmauur (#1105)\r\n- fix: search recommended model @urmauur (#1106)\r\n- fix: #1097 streaming response is replaced by error message @louis-jan (#1099)\r\n- Fix auto update windows Bug @hiento09 (#1102)\r\n- fix: added dialog confirmation when delete thread @urmauur (#1093)\r\n- fix: system monitor broken layout when responsive @urmauur (#1085)\r\n- bug: chatbox doesn't resize back down @urmauur (#1084)\r\n- fix: thread is broken after deleted first generated message @louis-jan (#1061)\r\n\r\n## 🧰 Maintenance\r\n\r\n- feat: Add codeQL analysis for push main and pr main @hiro-v (#1128)\r\n- docs: refactor dev docs, guides and specs @0xSage (#1092)\r\n- Correct jq command cause ci nightly build run failed @hiento09 (#1104)\r\n- Fix nightly build autoupdater @hiento09 (#1073)\r\n- Feature autoupdater for nightly build @hiento09 (#1068)\r\n- docs: Update product.md @0xSage (#1066)\r\n- Posthog disable click event and increase timeout for nitro load model… @hiento09 (#1060)\r\n- docs: improve quickstart docs @0xSage (#1047)\r\n\r\n## Contributor\r\n\r\n@0xSage, @hahuyhoang411, @hiento09, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @namchuai and @urmauur\r\n", + "reactions": { + "url": "https://api.github.com/repos/janhq/jan/releases/134782366/reactions", + "total_count": 7, + "+1": 6, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 9 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/134100003", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/134100003/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/134100003/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.2", + "id": 134100003, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4H_jQj", + "tag_name": "v0.4.2", + "target_commitish": "f62b0ca4ef41ed4f4ba3895f6f0bdc0f3fb2142a", + "name": "0.4.2", + "draft": false, + "prerelease": false, + "created_at": "2023-12-15T14:10:26Z", + "published_at": "2023-12-15T14:30:06Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140857832", + "id": 140857832, + "node_id": "RA_kwDOKIBx0s4IZVHo", + "name": "jan-linux-amd64-0.4.2.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 95879008, + "download_count": 119, + "created_at": "2023-12-15T14:14:29Z", + "updated_at": "2023-12-15T14:14:32Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-linux-amd64-0.4.2.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140859550", + "id": 140859550, + "node_id": "RA_kwDOKIBx0s4IZVie", + "name": "jan-mac-arm64-0.4.2.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 119581861, + "download_count": 139, + "created_at": "2023-12-15T14:27:06Z", + "updated_at": "2023-12-15T14:27:12Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-arm64-0.4.2.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140859551", + "id": 140859551, + "node_id": "RA_kwDOKIBx0s4IZVif", + "name": "jan-mac-arm64-0.4.2.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 125700, + "download_count": 2, + "created_at": "2023-12-15T14:27:06Z", + "updated_at": "2023-12-15T14:27:07Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-arm64-0.4.2.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140859676", + "id": 140859676, + "node_id": "RA_kwDOKIBx0s4IZVkc", + "name": "jan-mac-arm64-0.4.2.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 115488941, + "download_count": 14, + "created_at": "2023-12-15T14:28:07Z", + "updated_at": "2023-12-15T14:28:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-arm64-0.4.2.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140859675", + "id": 140859675, + "node_id": "RA_kwDOKIBx0s4IZVkb", + "name": "jan-mac-arm64-0.4.2.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 120796, + "download_count": 2, + "created_at": "2023-12-15T14:28:07Z", + "updated_at": "2023-12-15T14:28:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-arm64-0.4.2.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140858769", + "id": 140858769, + "node_id": "RA_kwDOKIBx0s4IZVWR", + "name": "jan-mac-x64-0.4.2.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 126174829, + "download_count": 35, + "created_at": "2023-12-15T14:21:56Z", + "updated_at": "2023-12-15T14:22:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-x64-0.4.2.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140858770", + "id": 140858770, + "node_id": "RA_kwDOKIBx0s4IZVWS", + "name": "jan-mac-x64-0.4.2.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 131844, + "download_count": 2, + "created_at": "2023-12-15T14:21:56Z", + "updated_at": "2023-12-15T14:21:57Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-x64-0.4.2.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140859027", + "id": 140859027, + "node_id": "RA_kwDOKIBx0s4IZVaT", + "name": "jan-mac-x64-0.4.2.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 122100717, + "download_count": 6, + "created_at": "2023-12-15T14:22:45Z", + "updated_at": "2023-12-15T14:22:50Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-x64-0.4.2.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140859025", + "id": 140859025, + "node_id": "RA_kwDOKIBx0s4IZVaR", + "name": "jan-mac-x64-0.4.2.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 128437, + "download_count": 2, + "created_at": "2023-12-15T14:22:45Z", + "updated_at": "2023-12-15T14:22:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-mac-x64-0.4.2.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140858450", + "id": 140858450, + "node_id": "RA_kwDOKIBx0s4IZVRS", + "name": "jan-win-x64-0.4.2.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 103875992, + "download_count": 374, + "created_at": "2023-12-15T14:19:37Z", + "updated_at": "2023-12-15T14:19:41Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-win-x64-0.4.2.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140858472", + "id": 140858472, + "node_id": "RA_kwDOKIBx0s4IZVRo", + "name": "jan-win-x64-0.4.2.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/xml", + "state": "uploaded", + "size": 110511, + "download_count": 221, + "created_at": "2023-12-15T14:19:41Z", + "updated_at": "2023-12-15T14:19:42Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/jan-win-x64-0.4.2.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140857842", + "id": 140857842, + "node_id": "RA_kwDOKIBx0s4IZVHy", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 153, + "created_at": "2023-12-15T14:14:32Z", + "updated_at": "2023-12-15T14:14:32Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140859687", + "id": 140859687, + "node_id": "RA_kwDOKIBx0s4IZVkn", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 316, + "created_at": "2023-12-15T14:28:14Z", + "updated_at": "2023-12-15T14:28:14Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140858478", + "id": 140858478, + "node_id": "RA_kwDOKIBx0s4IZVRu", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 537, + "created_at": "2023-12-15T14:19:43Z", + "updated_at": "2023-12-15T14:19:43Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.2/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.2", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.2", + "body": "## Changes\r\n\r\n- Hotfix model hub @hahuyhoang411 (#1033)\r\n- Update Model.json @hahuyhoang411 (#1005)\r\n\r\n## 🚀 Features\r\n\r\n- feat: app theme depend on local storage instead native theme electron @urmauur (#1014)\r\n- feat: move stop inference button into the send button @urmauur (#1011)\r\n- feat: loader when starting model @urmauur (#945)\r\n- fix: enable download app linux @urmauur (#993)\r\n- fix: remove coming soon windows @urmauur (#986)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: migrate new models @louis-jan (#1034)\r\n- fix: add input for api key remote model @urmauur (#1031)\r\n- fix bug #1013, enable posthog for release app version only @hiento09 (#1019)\r\n- fix: delete first message then regenerate again will break the thread @louis-jan (#1015)\r\n- fix: #995 - Fix onboarding state and model sorting @louis-jan (#1009)\r\n- fix: limit analytics events capture @louis-jan (#1012)\r\n- fix: wrong selected model right panel @urmauur (#1001)\r\n- fix: review finder and view as json @louis-jan (#1000)\r\n- fix: enable download app linux @urmauur (#993)\r\n\r\n## 🧰 Maintenance\r\n\r\n- chore: remigrate if there is no models dir @louis-jan (#1038)\r\n- bump nitro version to 0.1.30 @hiento09 (#1036)\r\n- chore: in app copy fixes @0xSage (#1032)\r\n- Separate posthog project for jan app and docs @hiento09 (#1029)\r\n- Update posthog capture url list @hiento09 (#1022)\r\n- docs: second half of \"import model docs\" PR @0xSage (#1021)\r\n- docs: how to import models @0xSage (#1020)\r\n- fix bug #1013, enable posthog for release app version only @hiento09 (#1019)\r\n\r\n## Contributor\r\n\r\n@0xSage, @hahuyhoang411, @hiento09, @jan-service-account, @louis-jan and @urmauur\r\n", + "mentions_count": 6 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/133838092", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/133838092/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/133838092/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.1", + "id": 133838092, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4H-jUM", + "tag_name": "v0.4.1", + "target_commitish": "596f40f20255ac554f2d4d644b92ea426be31cba", + "name": "0.4.1", + "draft": false, + "prerelease": false, + "created_at": "2023-12-14T02:31:54Z", + "published_at": "2023-12-14T03:19:44Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580290", + "id": 140580290, + "node_id": "RA_kwDOKIBx0s4IYRXC", + "name": "jan-linux-amd64-0.4.1.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 93269080, + "download_count": 43, + "created_at": "2023-12-14T02:35:58Z", + "updated_at": "2023-12-14T02:36:01Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-linux-amd64-0.4.1.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140581049", + "id": 140581049, + "node_id": "RA_kwDOKIBx0s4IYRi5", + "name": "jan-mac-arm64-0.4.1.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 116601237, + "download_count": 34, + "created_at": "2023-12-14T02:44:08Z", + "updated_at": "2023-12-14T02:44:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-arm64-0.4.1.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140581050", + "id": 140581050, + "node_id": "RA_kwDOKIBx0s4IYRi6", + "name": "jan-mac-arm64-0.4.1.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 121458, + "download_count": 2, + "created_at": "2023-12-14T02:44:08Z", + "updated_at": "2023-12-14T02:44:09Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-arm64-0.4.1.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140581100", + "id": 140581100, + "node_id": "RA_kwDOKIBx0s4IYRjs", + "name": "jan-mac-arm64-0.4.1.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 112560272, + "download_count": 8, + "created_at": "2023-12-14T02:45:00Z", + "updated_at": "2023-12-14T02:45:04Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-arm64-0.4.1.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140581101", + "id": 140581101, + "node_id": "RA_kwDOKIBx0s4IYRjt", + "name": "jan-mac-arm64-0.4.1.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 118119, + "download_count": 2, + "created_at": "2023-12-14T02:45:00Z", + "updated_at": "2023-12-14T02:45:00Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-arm64-0.4.1.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580839", + "id": 140580839, + "node_id": "RA_kwDOKIBx0s4IYRfn", + "name": "jan-mac-x64-0.4.1.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 123218066, + "download_count": 9, + "created_at": "2023-12-14T02:41:40Z", + "updated_at": "2023-12-14T02:41:44Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-x64-0.4.1.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580838", + "id": 140580838, + "node_id": "RA_kwDOKIBx0s4IYRfm", + "name": "jan-mac-x64-0.4.1.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 130326, + "download_count": 2, + "created_at": "2023-12-14T02:41:40Z", + "updated_at": "2023-12-14T02:41:40Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-x64-0.4.1.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580908", + "id": 140580908, + "node_id": "RA_kwDOKIBx0s4IYRgs", + "name": "jan-mac-x64-0.4.1.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 119172042, + "download_count": 3, + "created_at": "2023-12-14T02:42:31Z", + "updated_at": "2023-12-14T02:42:36Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-x64-0.4.1.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580907", + "id": 140580907, + "node_id": "RA_kwDOKIBx0s4IYRgr", + "name": "jan-mac-x64-0.4.1.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 124617, + "download_count": 2, + "created_at": "2023-12-14T02:42:31Z", + "updated_at": "2023-12-14T02:42:31Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-mac-x64-0.4.1.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580903", + "id": 140580903, + "node_id": "RA_kwDOKIBx0s4IYRgn", + "name": "jan-win-x64-0.4.1.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 100741136, + "download_count": 109, + "created_at": "2023-12-14T02:42:30Z", + "updated_at": "2023-12-14T02:42:32Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-win-x64-0.4.1.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580912", + "id": 140580912, + "node_id": "RA_kwDOKIBx0s4IYRgw", + "name": "jan-win-x64-0.4.1.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/xml", + "state": "uploaded", + "size": 106791, + "download_count": 40, + "created_at": "2023-12-14T02:42:33Z", + "updated_at": "2023-12-14T02:42:34Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/jan-win-x64-0.4.1.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580294", + "id": 140580294, + "node_id": "RA_kwDOKIBx0s4IYRXG", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 30, + "created_at": "2023-12-14T02:36:02Z", + "updated_at": "2023-12-14T02:36:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140581104", + "id": 140581104, + "node_id": "RA_kwDOKIBx0s4IYRjw", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 100, + "created_at": "2023-12-14T02:45:04Z", + "updated_at": "2023-12-14T02:45:04Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/140580916", + "id": 140580916, + "node_id": "RA_kwDOKIBx0s4IYRg0", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 126, + "created_at": "2023-12-14T02:42:34Z", + "updated_at": "2023-12-14T02:42:35Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.1/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.1", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.1", + "body": "## Changes\r\n\r\n- Update README.md @imtuyethan (#903)\r\n\r\n## 🚀 Features\r\n\r\n- feat: Kill nitro process with API - nitro 0.1.27 @vuonghoainam (#975)\r\n- feat: Inference Nitro with Prompt Template @hahuyhoang411 (#952)\r\n- feat: Add NVIDIA triton trt-llm extension @vuonghoainam (#888)\r\n- feat: Hotfit for Nitro loading on CPU with hyper-threading support @vuonghoainam (#931)\r\n- feat: adding model params @namchuai (#886)\r\n- feat: Multiple inference engines for nitro and openai @vuonghoainam (#814)\r\n- docs: add json schema for engine and model parameters @tikikun (#840)\r\n- feat: improve SEO keywords @hieu-jan (#894)\r\n- enhancement: fix spacing landing page responsive @urmauur (#891)\r\n- bug: added label coming soon for windows and linux @urmauur (#881)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: 963 can not run openai models on windows @louis-jan (#974)\r\n- fix: Inference engine Nitro with Windows with/ without CUDA @vuonghoainam (#950)\r\n- Fix error Jan app linux crash @hiento09 (#958)\r\n- fix: windows bug - control buttons close,max,min hidden @linhtran174 (#949)\r\n- bug: fix ui landing page @urmauur (#937)\r\n- fix: model parameters for inference extensions @vuonghoainam (#935)\r\n- [bug] Fix floating border outside card right panel @urmauur (#934)\r\n- fix: import\\_typescript.default.isTokenKind is not a function @louis-jan (#923)\r\n- bug: fix syntax formatting @urmauur (#899)\r\n- bug: update metadata title and desc @urmauur (#884)\r\n- fix: download button text color is blending into the background @louis-jan (#883)\r\n\r\n## 🧰 Maintenance\r\n\r\n- chore: add desktop app analytics @louis-jan (#978)\r\n- refactor: clean types and interfaces @0xSage (#966)\r\n- docs: scaffold dev docs @0xSage (#856)\r\n- chore: Bump nitro to 0.1.26 @vuonghoainam (#960)\r\n- Update update-release-url.yml @hiento09 (#951)\r\n- Fix update release url pipeline run failed @hiento09 (#947)\r\n- chore: Bumpt nitro bin version to version 0.1.23 @vuonghoainam (#942)\r\n- Fix update release url pipeline @hiento09 (#941)\r\n- CI automatically update Update README with Nightly Build Information and stable download URL @hiento09 (#940)\r\n- refactor: deprecate invokers - auto proxying apis - strict types @louis-jan (#924)\r\n- docs: standardize yaml files @hieu-jan (#933)\r\n- chore: universal module definition @louis-jan (#902)\r\n- docs: add assistants api reference @hieu-jan (#801)\r\n- docs: add json schema for engine and model parameters @tikikun (#840)\r\n\r\n## Contributor\r\n\r\n@0xSage, @hahuyhoang411, @hiento09, @hieu-jan, @imtuyethan, @jan-service-account, @linhtran174, @louis-jan, @namchuai, @tikikun, @urmauur and @vuonghoainam\r\n", + "mentions_count": 12 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/132810439", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/132810439/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/132810439/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.4.0", + "id": 132810439, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4H6obH", + "tag_name": "v0.4.0", + "target_commitish": "004b7b8a6409cb35b690f67c16a2e63cbe9894a9", + "name": "0.4.0", + "draft": false, + "prerelease": false, + "created_at": "2023-12-06T09:42:43Z", + "published_at": "2023-12-06T12:01:45Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139225188", + "id": 139225188, + "node_id": "RA_kwDOKIBx0s4ITGhk", + "name": "jan-linux-amd64-0.4.0.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 91395002, + "download_count": 31, + "created_at": "2023-12-06T09:46:23Z", + "updated_at": "2023-12-06T09:46:26Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-linux-amd64-0.4.0.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226339", + "id": 139226339, + "node_id": "RA_kwDOKIBx0s4ITGzj", + "name": "jan-mac-arm64-0.4.0.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 111557710, + "download_count": 80, + "created_at": "2023-12-06T09:55:15Z", + "updated_at": "2023-12-06T09:55:20Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-arm64-0.4.0.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226340", + "id": 139226340, + "node_id": "RA_kwDOKIBx0s4ITGzk", + "name": "jan-mac-arm64-0.4.0.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 116975, + "download_count": 1, + "created_at": "2023-12-06T09:55:15Z", + "updated_at": "2023-12-06T09:55:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-arm64-0.4.0.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226407", + "id": 139226407, + "node_id": "RA_kwDOKIBx0s4ITG0n", + "name": "jan-mac-arm64-0.4.0.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 107609646, + "download_count": 4, + "created_at": "2023-12-06T09:55:55Z", + "updated_at": "2023-12-06T09:56:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-arm64-0.4.0.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226406", + "id": 139226406, + "node_id": "RA_kwDOKIBx0s4ITG0m", + "name": "jan-mac-arm64-0.4.0.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 114156, + "download_count": 1, + "created_at": "2023-12-06T09:55:55Z", + "updated_at": "2023-12-06T09:55:56Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-arm64-0.4.0.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226063", + "id": 139226063, + "node_id": "RA_kwDOKIBx0s4ITGvP", + "name": "jan-mac-x64-0.4.0.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 116732954, + "download_count": 22, + "created_at": "2023-12-06T09:52:25Z", + "updated_at": "2023-12-06T09:52:31Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-x64-0.4.0.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226064", + "id": 139226064, + "node_id": "RA_kwDOKIBx0s4ITGvQ", + "name": "jan-mac-x64-0.4.0.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 121418, + "download_count": 1, + "created_at": "2023-12-06T09:52:25Z", + "updated_at": "2023-12-06T09:52:25Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-x64-0.4.0.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226211", + "id": 139226211, + "node_id": "RA_kwDOKIBx0s4ITGxj", + "name": "jan-mac-x64-0.4.0.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 112914573, + "download_count": 2, + "created_at": "2023-12-06T09:53:20Z", + "updated_at": "2023-12-06T09:53:25Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-x64-0.4.0.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226210", + "id": 139226210, + "node_id": "RA_kwDOKIBx0s4ITGxi", + "name": "jan-mac-x64-0.4.0.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 119771, + "download_count": 1, + "created_at": "2023-12-06T09:53:20Z", + "updated_at": "2023-12-06T09:53:20Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-mac-x64-0.4.0.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226182", + "id": 139226182, + "node_id": "RA_kwDOKIBx0s4ITGxG", + "name": "jan-win-x64-0.4.0.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 89974264, + "download_count": 120, + "created_at": "2023-12-06T09:53:10Z", + "updated_at": "2023-12-06T09:53:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-win-x64-0.4.0.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226192", + "id": 139226192, + "node_id": "RA_kwDOKIBx0s4ITGxQ", + "name": "jan-win-x64-0.4.0.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/xml", + "state": "uploaded", + "size": 94542, + "download_count": 18, + "created_at": "2023-12-06T09:53:14Z", + "updated_at": "2023-12-06T09:53:14Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/jan-win-x64-0.4.0.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139225200", + "id": 139225200, + "node_id": "RA_kwDOKIBx0s4ITGhw", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 24, + "created_at": "2023-12-06T09:46:26Z", + "updated_at": "2023-12-06T09:46:26Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226418", + "id": 139226418, + "node_id": "RA_kwDOKIBx0s4ITG0y", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 130, + "created_at": "2023-12-06T09:56:03Z", + "updated_at": "2023-12-06T09:56:03Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/139226194", + "id": 139226194, + "node_id": "RA_kwDOKIBx0s4ITGxS", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 95, + "created_at": "2023-12-06T09:53:15Z", + "updated_at": "2023-12-06T09:53:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.4.0/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.4.0", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.4.0", + "body": "## Changes\r\n\r\n- bug: fix tag description showing a title and fix card right panel @urmauur (#878)\r\n- fix/no-assistant-available-fresh-install @louis-jan (#876)\r\n- Model.json update @hahuyhoang411 (#870)\r\n- Hotfix desc for openhermes @hahuyhoang411 (#864)\r\n- Openhermes update v1 @hahuyhoang411 (#863)\r\n- update deepseek 1.3b @hahuyhoang411 (#858)\r\n- Update tags @hahuyhoang411 (#857)\r\n- Update model hub @hahuyhoang411 (#829)\r\n- hotfix: fix typo @tikikun (#836)\r\n- chore: pre-populate Jan's /models folder with model.jsons @hahuyhoang411 (#775)\r\n- chore: clarification changes to the model settings and model parameters @tikikun (#742)\r\n\r\n## 🚀 Features\r\n\r\n- feat: revamp landing page @urmauur (#745)\r\n- feat : add cover image model hub screen @urmauur (#872)\r\n- feat: boilerplate for express server localhost 1337 @linhtran174 (#803)\r\n- enhancement: revamp hub screen @urmauur (#825)\r\n- feat: revamp thread screen @urmauur (#802)\r\n- docs/update-api-reference @hieu-jan (#739)\r\n- refactor: model plugin to follow new specs @namchuai (#682)\r\n\r\n## 🐛 Fixes\r\n\r\n- fix: Nitro interface update to prevent warning @vuonghoainam (#877)\r\n- fix: delete message break the entire thread @louis-jan (#869)\r\n- fix: can not download multiple models at once @louis-jan (#867)\r\n- fix: production CI workflow does not populate models @louis-jan (#862)\r\n- fix: update wrong main view state when use a model @namchuai (#861)\r\n- fix: handle crash issue on hljs highlighting @louis-jan (#859)\r\n- fix: empty assistant instruction by default @louis-jan (#855)\r\n- bug: fix broken banner position hub screen @urmauur (#846)\r\n- fix: not update active model when using resend button @namchuai (#834)\r\n- Hotfix jan windows download nitro failed @hiento09 (#838)\r\n- Switch to download nitro .tar.gz file instead of .zip file on windows @hiento09 (#832)\r\n- fix/docusaurus-seo @hieu-jan (#818)\r\n- fix: CI script - reorder copy models action @louis-jan (#819)\r\n- fix: messages sync is not threadsafe @louis-jan (#784)\r\n- Fix Makefile Indentation Issue @hiento09 (#788)\r\n\r\n## 🧰 Maintenance\r\n\r\n- chore: update model ranking @louis-jan (#874)\r\n- Bump nitro version to 0.1.21 - nitro has windows codesign @hiento09 (#843)\r\n- Hotfix jan windows download nitro failed @hiento09 (#838)\r\n- 810 docs add modeljson and revamp models specs page @tikikun (#816)\r\n- Add document for nightly build and update message for manual build @hiento09 (#831)\r\n- chore: Bump nitro to 0.1.20 @vuonghoainam (#830)\r\n- Refactor build:extension command @hiento09 (#822)\r\n- feat: pre-populate Jan's /models folder @namchuai (#796)\r\n- chore: fix pr auto labeling @0xSage (#812)\r\n- chore: add gi automations @0xSage (#809)\r\n- refactor: jan extensions @louis-jan (#799)\r\n- Remove .zip in artifact name @hiento09 (#800)\r\n- docs/update-api-reference @hieu-jan (#739)\r\n- Add nightly build ci @hiento09 (#794)\r\n- Fix Makefile Indentation Issue @hiento09 (#788)\r\n- Switch from .zip to .tar.gz for nitro url inference plugin @hiento09 (#781)\r\n\r\n## Contributor\r\n\r\n@0xSage, @hahuyhoang411, @hiento09, @hieu-jan, @linhtran174, @louis-jan, @namchuai, @tikikun, @urmauur and @vuonghoainam\r\n", + "mentions_count": 10 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/131748097", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/131748097/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/131748097/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.3.3", + "id": 131748097, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4H2lEB", + "tag_name": "v0.3.3", + "target_commitish": "a990fa6c07e08e54821a4d257c071977436bbf45", + "name": "0.3.3", + "draft": false, + "prerelease": false, + "created_at": "2023-11-28T14:22:12Z", + "published_at": "2023-11-28T15:12:02Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137845132", + "id": 137845132, + "node_id": "RA_kwDOKIBx0s4IN1mM", + "name": "jan-linux-amd64-0.3.3.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 82300876, + "download_count": 33, + "created_at": "2023-11-28T14:33:55Z", + "updated_at": "2023-11-28T14:33:57Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-linux-amd64-0.3.3.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137846505", + "id": 137846505, + "node_id": "RA_kwDOKIBx0s4IN17p", + "name": "jan-mac-arm64-0.3.3.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 102358840, + "download_count": 35, + "created_at": "2023-11-28T14:43:02Z", + "updated_at": "2023-11-28T14:43:07Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-arm64-0.3.3.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137846504", + "id": 137846504, + "node_id": "RA_kwDOKIBx0s4IN17o", + "name": "jan-mac-arm64-0.3.3.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 106938, + "download_count": 3, + "created_at": "2023-11-28T14:43:02Z", + "updated_at": "2023-11-28T14:43:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-arm64-0.3.3.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137846831", + "id": 137846831, + "node_id": "RA_kwDOKIBx0s4IN2Av", + "name": "jan-mac-arm64-0.3.3.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 98581298, + "download_count": 12, + "created_at": "2023-11-28T14:43:53Z", + "updated_at": "2023-11-28T14:43:57Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-arm64-0.3.3.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137846832", + "id": 137846832, + "node_id": "RA_kwDOKIBx0s4IN2Aw", + "name": "jan-mac-arm64-0.3.3.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 104552, + "download_count": 3, + "created_at": "2023-11-28T14:43:53Z", + "updated_at": "2023-11-28T14:43:53Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-arm64-0.3.3.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137845885", + "id": 137845885, + "node_id": "RA_kwDOKIBx0s4IN1x9", + "name": "jan-mac-x64-0.3.3.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 107582920, + "download_count": 18, + "created_at": "2023-11-28T14:40:08Z", + "updated_at": "2023-11-28T14:40:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-x64-0.3.3.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137845884", + "id": 137845884, + "node_id": "RA_kwDOKIBx0s4IN1x8", + "name": "jan-mac-x64-0.3.3.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 113751, + "download_count": 3, + "created_at": "2023-11-28T14:40:08Z", + "updated_at": "2023-11-28T14:40:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-x64-0.3.3.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137846301", + "id": 137846301, + "node_id": "RA_kwDOKIBx0s4IN14d", + "name": "jan-mac-x64-0.3.3.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 103886222, + "download_count": 5, + "created_at": "2023-11-28T14:41:16Z", + "updated_at": "2023-11-28T14:41:21Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-x64-0.3.3.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137846302", + "id": 137846302, + "node_id": "RA_kwDOKIBx0s4IN14e", + "name": "jan-mac-x64-0.3.3.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 110645, + "download_count": 3, + "created_at": "2023-11-28T14:41:16Z", + "updated_at": "2023-11-28T14:41:16Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-mac-x64-0.3.3.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137845387", + "id": 137845387, + "node_id": "RA_kwDOKIBx0s4IN1qL", + "name": "jan-win-x64-0.3.3.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 81157168, + "download_count": 102, + "created_at": "2023-11-28T14:35:42Z", + "updated_at": "2023-11-28T14:35:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-win-x64-0.3.3.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137845403", + "id": 137845403, + "node_id": "RA_kwDOKIBx0s4IN1qb", + "name": "jan-win-x64-0.3.3.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/xml", + "state": "uploaded", + "size": 85522, + "download_count": 17, + "created_at": "2023-11-28T14:35:46Z", + "updated_at": "2023-11-28T14:35:46Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/jan-win-x64-0.3.3.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137845141", + "id": 137845141, + "node_id": "RA_kwDOKIBx0s4IN1mV", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 32, + "created_at": "2023-11-28T14:33:58Z", + "updated_at": "2023-11-28T14:33:58Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137846845", + "id": 137846845, + "node_id": "RA_kwDOKIBx0s4IN2A9", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 798, + "download_count": 146, + "created_at": "2023-11-28T14:43:57Z", + "updated_at": "2023-11-28T14:43:58Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/137845404", + "id": 137845404, + "node_id": "RA_kwDOKIBx0s4IN1qc", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 122, + "created_at": "2023-11-28T14:35:47Z", + "updated_at": "2023-11-28T14:35:47Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.3/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.3.3", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.3.3", + "body": "## Changes\r\n\r\n- docs: cleanup @0xSage (#719)\r\n- docs: threads and messages @0xSage (#681)\r\n- Updating Onboarding Kit @Diane0111 (#675)\r\n- Update issue templates @0xSage (#685)\r\n- docs: polish models spec @0xSage (#680)\r\n- Feature: Preview URL for each PR and add pre-release.jan.ai as staging of Jan Docs @hiento09 (#669)\r\n- Migrate Model definitions to Swagger/OpenAPI @dan-jan (#659)\r\n- [docs] Add Introduction and refactor Models Spec @dan-jan (#657)\r\n- docs: Add model methods to swagger @0xSage (#660)\r\n- Models Spec: Delete broken Markdown links @dan-jan (#648)\r\n- docs: assistants and threads specs @0xSage (#646)\r\n\r\n## 🚀 Features\r\n\r\n- improvement: styling message action toolbar @urmauur (#737)\r\n- experimental: allow user to give instruction for the conversation @louis-jan (#714)\r\n- docs/enable-seo-docusaurus @hieu-jan (#725)\r\n- Add windows code sign to CI @hiento09 (#712)\r\n- docs: update installation guide @hieu-jan (#664)\r\n- chore: Update based on team discussion on Nov 20 @vuonghoainam (#673)\r\n- docs: add OpenAI swagger file @hieu-jan (#623)\r\n- Update landing page Jan @urmauur (#638)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- chore: open app data should lead user to jan root @louis-jan (#749)\r\n- fix: cancel download does not work @louis-jan (#746)\r\n- fix: error when switching between threads @louis-jan (#736)\r\n- chore: app raises error when attempting to start a model that is already starting @louis-jan (#721)\r\n- bug: fix filter list menu from command base on search type and make a symbol base on OS @urmauur (#723)\r\n- bug: fix clickable small download button on chat screen @urmauur (#722)\r\n- fix: incorrect update progress bar visibility check @louis-jan (#713)\r\n- fix: app shows wrong performance tag, all say not enough ram on windows @louis-jan (#699)\r\n- bug: fix padding quotations and numbering list @urmauur (#695)\r\n- fix: local npm module update does not reflect web app @louis-jan (#677)\r\n- [bug] fix markdown todo items shifted to the left and remove the dots @urmauur (#694)\r\n- bug: fix footer and section spacing landing page @urmauur (#683)\r\n- bug: fix anchor link sidebar openapi @urmauur (#668)\r\n- refactor: remove unused hooks and resolve no-explicit-any @louis-jan (#647)\r\n- bug: fix titles should have spaces in between @urmauur (#652)\r\n- bug: fix compatibility content not fully display @urmauur (#653)\r\n\r\n## 🧰 Maintenance\r\n\r\n- chore: fix app grammar @0xSage (#750)\r\n- chore: bumb nitro version @louis-jan (#740)\r\n- chore: fs module should not cover app logic @louis-jan (#720)\r\n- API Reference for Models, Messages, Threads @hahuyhoang411 (#679)\r\n- docs: upgrade mdx-js package @hieu-jan (#705)\r\n- [docs] Update Docusaurus to 3.0 and fix closing tag issue in Handbook @dan-jan (#704)\r\n- Fix error docs pipeline run failed @hiento09 (#702)\r\n- Revert docs CICD trigger on push to main instead of tag-based @hiento09 (#698)\r\n- fix: local npm module update does not reflect web app @louis-jan (#677)\r\n- Chore: refactor to makefile @hiento09 (#691)\r\n- Add Instruction to publish docs @hiento09 (#687)\r\n- chore/add-mermaid @hieu-jan (#672)\r\n- chore/update package docs @hieu-jan (#670)\r\n- Enhance Cross-Platform Argument Handling for Nitro Startup Scripts @hiento09 (#674)\r\n- refactor: remove unused hooks and resolve no-explicit-any @louis-jan (#647)\r\n- docs: add OpenAI swagger file @hieu-jan (#623)\r\n- Preliminary Restructure of Docs @dan-jan (#655)\r\n- Model specs @vuonghoainam (#641)\r\n- refactor: refactor app entities @louis-jan (#626)\r\n- refactor: move file to jan root @namchuai (#598)\r\n- Add run-script-os @linhtran174 (#620)\r\n- Refactor Jan Documentation @dan-jan (#625)\r\n\r\n## 📖 Documentaion\r\n\r\n- docs: update specs/product @0xSage (#744)\r\n- docs/enable-seo-docusaurus @hieu-jan (#725)\r\n- docs: assistant spec @vuonghoainam (#707)\r\n- docs: Refactor Jan Site Structure @dan-jan (#706)\r\n- docs/improve install docs @hieu-jan (#708)\r\n- API Reference for Models, Messages, Threads @hahuyhoang411 (#679)\r\n- [docs] Update Docusaurus to 3.0 and fix closing tag issue in Handbook @dan-jan (#704)\r\n- docs: update installation guide @hieu-jan (#664)\r\n- chore: Update based on team discussion on Nov 20 @vuonghoainam (#673)\r\n- docs: add OpenAI swagger file @hieu-jan (#623)\r\n- Preliminary Restructure of Docs @dan-jan (#655)\r\n- Fix: specs revision @vuonghoainam (#649)\r\n- Model specs @vuonghoainam (#641)\r\n- Update README.md @imtuyethan (#629)\r\n- Refactor Jan Documentation @dan-jan (#625)\r\n\r\n## Contributor\r\n\r\n@0xSage, @Diane0111, @dan-jan, @hahuyhoang411, @hiento09, @hieu-jan, @imtuyethan, @linhtran174, @louis-jan, @namchuai, @urmauur, @vuonghoainam and Le Tra Mi\r\n", + "mentions_count": 12 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/129492652", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/129492652/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/129492652/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.3.2", + "id": 129492652, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4Ht-as", + "tag_name": "v0.3.2", + "target_commitish": "main", + "name": "0.3.2", + "draft": false, + "prerelease": false, + "created_at": "2023-11-15T06:29:59Z", + "published_at": "2023-11-23T12:57:14Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613074", + "id": 135613074, + "node_id": "RA_kwDOKIBx0s4IFUqS", + "name": "jan-linux-amd64-0.3.2.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 81940296, + "download_count": 22, + "created_at": "2023-11-15T06:33:57Z", + "updated_at": "2023-11-15T06:33:59Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-linux-amd64-0.3.2.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613444", + "id": 135613444, + "node_id": "RA_kwDOKIBx0s4IFUwE", + "name": "jan-mac-arm64-0.3.2.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 102275617, + "download_count": 28, + "created_at": "2023-11-15T06:38:49Z", + "updated_at": "2023-11-15T06:38:54Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-arm64-0.3.2.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613446", + "id": 135613446, + "node_id": "RA_kwDOKIBx0s4IFUwG", + "name": "jan-mac-arm64-0.3.2.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 106299, + "download_count": 2, + "created_at": "2023-11-15T06:38:49Z", + "updated_at": "2023-11-15T06:38:49Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-arm64-0.3.2.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613469", + "id": 135613469, + "node_id": "RA_kwDOKIBx0s4IFUwd", + "name": "jan-mac-arm64-0.3.2.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 98501600, + "download_count": 10, + "created_at": "2023-11-15T06:39:01Z", + "updated_at": "2023-11-15T06:40:11Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-arm64-0.3.2.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613468", + "id": 135613468, + "node_id": "RA_kwDOKIBx0s4IFUwc", + "name": "jan-mac-arm64-0.3.2.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 104215, + "download_count": 2, + "created_at": "2023-11-15T06:39:00Z", + "updated_at": "2023-11-15T06:39:01Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-arm64-0.3.2.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613290", + "id": 135613290, + "node_id": "RA_kwDOKIBx0s4IFUtq", + "name": "jan-mac-x64-0.3.2.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 107523862, + "download_count": 9, + "created_at": "2023-11-15T06:36:29Z", + "updated_at": "2023-11-15T06:36:33Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-x64-0.3.2.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613291", + "id": 135613291, + "node_id": "RA_kwDOKIBx0s4IFUtr", + "name": "jan-mac-x64-0.3.2.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 113475, + "download_count": 2, + "created_at": "2023-11-15T06:36:29Z", + "updated_at": "2023-11-15T06:36:29Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-x64-0.3.2.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613322", + "id": 135613322, + "node_id": "RA_kwDOKIBx0s4IFUuK", + "name": "jan-mac-x64-0.3.2.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 103806500, + "download_count": 3, + "created_at": "2023-11-15T06:36:56Z", + "updated_at": "2023-11-15T06:37:00Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-x64-0.3.2.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613321", + "id": 135613321, + "node_id": "RA_kwDOKIBx0s4IFUuJ", + "name": "jan-mac-x64-0.3.2.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 110226, + "download_count": 3, + "created_at": "2023-11-15T06:36:56Z", + "updated_at": "2023-11-15T06:36:57Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-mac-x64-0.3.2.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613198", + "id": 135613198, + "node_id": "RA_kwDOKIBx0s4IFUsO", + "name": "jan-win-x64-0.3.2.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 81017298, + "download_count": 73, + "created_at": "2023-11-15T06:35:18Z", + "updated_at": "2023-11-15T06:35:21Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-win-x64-0.3.2.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613199", + "id": 135613199, + "node_id": "RA_kwDOKIBx0s4IFUsP", + "name": "jan-win-x64-0.3.2.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 85408, + "download_count": 8, + "created_at": "2023-11-15T06:35:18Z", + "updated_at": "2023-11-15T06:35:19Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/jan-win-x64-0.3.2.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613081", + "id": 135613081, + "node_id": "RA_kwDOKIBx0s4IFUqZ", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 10, + "created_at": "2023-11-15T06:33:59Z", + "updated_at": "2023-11-15T06:34:00Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613552", + "id": 135613552, + "node_id": "RA_kwDOKIBx0s4IFUxw", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 798, + "download_count": 70, + "created_at": "2023-11-15T06:40:12Z", + "updated_at": "2023-11-15T06:40:12Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/135613202", + "id": 135613202, + "node_id": "RA_kwDOKIBx0s4IFUsS", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 55, + "created_at": "2023-11-15T06:35:21Z", + "updated_at": "2023-11-15T06:35:22Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.2/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.3.2", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.3.2", + "body": "## Changes\r\n\r\n- fix: disabled required env @urmauur (#612)\r\n- Install Posthog snippet @imtuyethan (#573)\r\n- web: google tag manager @urmauur (#562)\r\n- docs: fix syntax highlighting @0xSage (#602)\r\n- chore: remove past event @0xSage (#600)\r\n- docs: new docs @0xSage (#599)\r\n- [chore]: Update docs @dan-jan (#597)\r\n\r\n## 🚀 Features\r\n\r\n- refactor: main electron with managers and handlers @louis-jan (#610)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix: Failed to load model - unload model nitro @louis-jan (#616)\r\n- Restore cpx nitro step in yarn script @hiento09 (#617)\r\n- fix(#591): prevent duplicate message id issue @namchuai (#595)\r\n- bug: cancelling a model download should be delete the model file on user data @urmauur (#613)\r\n- bug: fix weird padding vertical snippet code @urmauur (#608)\r\n- bug: Fix button download detect intel or apple silicon @urmauur (#609)\r\n- bug: enable delete conversation after deleted model @urmauur (#594)\r\n- bug: download modal should truncate model name @urmauur (#592)\r\n- bug: support multiple line input chat using Textarea instead @urmauur (#593)\r\n\r\n## 🧰 Maintenance\r\n\r\n- refactor: main electron with managers and handlers @louis-jan (#610)\r\n- Chore/refactor yarn script @hiento09 (#615)\r\n- fix: line height and update typography component @urmauur (#611)\r\n\r\n## Contributor\r\n\r\n@0xSage, @dan-jan, @hiento09, @imtuyethan, @jan-service-account, @louis-jan, @namchuai and @urmauur\r\n", + "mentions_count": 8 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/128887162", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/128887162/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/128887162/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.3.1", + "id": 128887162, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4Hrql6", + "tag_name": "v0.3.1", + "target_commitish": "main", + "name": "0.3.1", + "draft": false, + "prerelease": false, + "created_at": "2023-11-10T10:23:06Z", + "published_at": "2023-11-10T10:38:09Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134885595", + "id": 134885595, + "node_id": "RA_kwDOKIBx0s4ICjDb", + "name": "jan-linux-amd64-0.3.1.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 88473890, + "download_count": 19, + "created_at": "2023-11-10T10:32:29Z", + "updated_at": "2023-11-10T10:32:32Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-linux-amd64-0.3.1.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886493", + "id": 134886493, + "node_id": "RA_kwDOKIBx0s4ICjRd", + "name": "jan-mac-arm64-0.3.1.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 111212160, + "download_count": 39, + "created_at": "2023-11-10T10:37:02Z", + "updated_at": "2023-11-10T10:37:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-arm64-0.3.1.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886494", + "id": 134886494, + "node_id": "RA_kwDOKIBx0s4ICjRe", + "name": "jan-mac-arm64-0.3.1.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 116917, + "download_count": 3, + "created_at": "2023-11-10T10:37:02Z", + "updated_at": "2023-11-10T10:37:03Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-arm64-0.3.1.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886543", + "id": 134886543, + "node_id": "RA_kwDOKIBx0s4ICjSP", + "name": "jan-mac-arm64-0.3.1.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 107422060, + "download_count": 12, + "created_at": "2023-11-10T10:37:15Z", + "updated_at": "2023-11-10T10:37:22Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-arm64-0.3.1.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886544", + "id": 134886544, + "node_id": "RA_kwDOKIBx0s4ICjSQ", + "name": "jan-mac-arm64-0.3.1.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 114462, + "download_count": 3, + "created_at": "2023-11-10T10:37:15Z", + "updated_at": "2023-11-10T10:37:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-arm64-0.3.1.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886072", + "id": 134886072, + "node_id": "RA_kwDOKIBx0s4ICjK4", + "name": "jan-mac-x64-0.3.1.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 116468631, + "download_count": 8, + "created_at": "2023-11-10T10:34:56Z", + "updated_at": "2023-11-10T10:35:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-x64-0.3.1.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886071", + "id": 134886071, + "node_id": "RA_kwDOKIBx0s4ICjK3", + "name": "jan-mac-x64-0.3.1.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 121262, + "download_count": 3, + "created_at": "2023-11-10T10:34:56Z", + "updated_at": "2023-11-10T10:34:57Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-x64-0.3.1.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886107", + "id": 134886107, + "node_id": "RA_kwDOKIBx0s4ICjLb", + "name": "jan-mac-x64-0.3.1.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 112726975, + "download_count": 6, + "created_at": "2023-11-10T10:35:07Z", + "updated_at": "2023-11-10T10:35:12Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-x64-0.3.1.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886108", + "id": 134886108, + "node_id": "RA_kwDOKIBx0s4ICjLc", + "name": "jan-mac-x64-0.3.1.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 119995, + "download_count": 2, + "created_at": "2023-11-10T10:35:07Z", + "updated_at": "2023-11-10T10:35:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-mac-x64-0.3.1.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134885339", + "id": 134885339, + "node_id": "RA_kwDOKIBx0s4ICi_b", + "name": "jan-win-x64-0.3.1.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 81029196, + "download_count": 94, + "created_at": "2023-11-10T10:30:51Z", + "updated_at": "2023-11-10T10:30:56Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-win-x64-0.3.1.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134885340", + "id": 134885340, + "node_id": "RA_kwDOKIBx0s4ICi_c", + "name": "jan-win-x64-0.3.1.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 85734, + "download_count": 9, + "created_at": "2023-11-10T10:30:51Z", + "updated_at": "2023-11-10T10:30:51Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/jan-win-x64-0.3.1.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134885607", + "id": 134885607, + "node_id": "RA_kwDOKIBx0s4ICjDn", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 13, + "created_at": "2023-11-10T10:32:33Z", + "updated_at": "2023-11-10T10:32:33Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134886557", + "id": 134886557, + "node_id": "RA_kwDOKIBx0s4ICjSd", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 217, + "created_at": "2023-11-10T10:37:23Z", + "updated_at": "2023-11-10T10:37:23Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/134885348", + "id": 134885348, + "node_id": "RA_kwDOKIBx0s4ICi_k", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 69, + "created_at": "2023-11-10T10:30:56Z", + "updated_at": "2023-11-10T10:30:57Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.1/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.3.1", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.3.1", + "body": "## Changes\r\n\r\n- fix: preformatted text indents the first line strangely @louis-jan (#580)\r\n- fix: failed to package app since core and uikit are not being built @louis-jan (#575)\r\n- cleanup: remove component folder and cleanup conversation screen @urmauur (#574)\r\n- bug: update convo state when user change model @urmauur (#571)\r\n- fix(#566): jan cannot retrieve the conversations @namchuai (#570)\r\n- bug: Toast messages shows [object object] @urmauur (#569)\r\n- ui: improve state of welcome screen @urmauur (#563)\r\n- chore: fixed an issue where app does not yield message result @louis-jan (#561)\r\n- Update readme @urmauur (#560)\r\n- ui: standalone UIKit and refactor @urmauur (#557)\r\n- Small description changes @dan-jan (#558)\r\n- add 'change download button based on OS' feature @Vikram-2004 (#551)\r\n- feat: revamp plugin architecture @louis-jan (#535)\r\n- Fix mobile padding @imtuyethan (#550)\r\n- chore: Update Readme @dan-jan (#549)\r\n- Update Homepage and README with 1-line pitch @dan-jan (#548)\r\n- docs: Add About, Events, Blog @dan-jan (#546)\r\n- Ashley/update website content @imtuyethan (#545)\r\n- Add guides @hahuyhoang411 (#488)\r\n- Structure Docs @dan-jan (#536)\r\n- Update README.md @imtuyethan (#533)\r\n- Chore: Setup \"Jan Improvements Proposal\" workflow @dan-jan (#534)\r\n- Update website tag line @imtuyethan (#527)\r\n- fix: #396 - allow user to cancel a model download @louis-jan (#530)\r\n- fix: #479 - Toggle plugin is now experimental feature @louis-jan (#531)\r\n- chore: disable app update on test @louis-jan (#521)\r\n- bug: chat UI is not consistent @urmauur (#520)\r\n- refactor: plugin manager and execution as ts @louis-jan (#504)\r\n- fix: app toolbar is gone on windows @louis-jan (#503)\r\n- Chore: refactor code, hide plugin menu in web @ghost (#502)\r\n- fix: dest.end is not a function @louis-jan (#501)\r\n- #255: Jan cloud native @ghost (#320)\r\n- bug: download new version should show in status bar @urmauur (#500)\r\n- feat: add New Conversation button on the conversation sidebar @urmauur (#499)\r\n- chore: update plugin readme @louis-jan (#497)\r\n- chore: update plugins license @louis-jan (#496)\r\n- #255: Read plugins manifest from CDN @ghost (#495)\r\n- chore: update plugin sdk - add appDataPath @louis-jan (#492)\r\n- chore: enable back bot function for edge-release @louis-jan (#474)\r\n- chore: attempt to kill Nitro subprocesses @louis-jan (#484)\r\n- docs: new dev hub @0xSage (#450)\r\n\r\n## 🚀 Features\r\n\r\n- feat: Experimental Feature Toggle @louis-jan (#525)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Add rebuild leveldown for arm on mac intel @hiento09 (#487)\r\n\r\n## 🧰 Maintenance\r\n\r\n- Bump nitro version from 0.1.4 to 0.1.6 @hiento09 (#581)\r\n- Add set yarn network timeout for uikit @hiento09 (#579)\r\n- Fix error CI e2e run failed on windows @hiento09 (#578)\r\n- Fix build plugins macos codesiging error @hiento09 (#576)\r\n- Add install nitro mac intel inference plugin build locally @hiento09 (#542)\r\n- Bump nitro version to 0.1.4 @hiento09 (#532)\r\n- Chore/update yarn dev script @hiento09 (#529)\r\n- Inference Plugin pull nitro binary from release @hiento09 (#524)\r\n- Correct version and license @hiento09 (#498)\r\n\r\n## Contributor\r\n\r\n@0xSage, @Vikram-2004, @dan-jan, @hahuyhoang411, @hiento09, @imtuyethan, @jan-service-account, @louis-jan, @namchuai, @tikikun, @urmauur, Han, James, John and nam-john-ho\r\n", + "mentions_count": 12 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/126905705", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/126905705/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/126905705/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.3.0", + "id": 126905705, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4HkG1p", + "tag_name": "v0.3.0", + "target_commitish": "main", + "name": "0.3.0", + "draft": false, + "prerelease": false, + "created_at": "2023-10-27T07:43:43Z", + "published_at": "2023-10-27T09:02:52Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132611284", + "id": 132611284, + "node_id": "RA_kwDOKIBx0s4H53zU", + "name": "jan-linux-amd64-0.3.0.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 95795282, + "download_count": 15, + "created_at": "2023-10-27T08:26:42Z", + "updated_at": "2023-10-27T08:26:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-linux-amd64-0.3.0.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612852", + "id": 132612852, + "node_id": "RA_kwDOKIBx0s4H54L0", + "name": "jan-mac-arm64-0.3.0.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 122527047, + "download_count": 47, + "created_at": "2023-10-27T08:39:24Z", + "updated_at": "2023-10-27T08:39:29Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-arm64-0.3.0.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612853", + "id": 132612853, + "node_id": "RA_kwDOKIBx0s4H54L1", + "name": "jan-mac-arm64-0.3.0.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 130885, + "download_count": 3, + "created_at": "2023-10-27T08:39:24Z", + "updated_at": "2023-10-27T08:39:25Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-arm64-0.3.0.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612932", + "id": 132612932, + "node_id": "RA_kwDOKIBx0s4H54NE", + "name": "jan-mac-arm64-0.3.0.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 118596061, + "download_count": 15, + "created_at": "2023-10-27T08:39:50Z", + "updated_at": "2023-10-27T08:39:55Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-arm64-0.3.0.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612931", + "id": 132612931, + "node_id": "RA_kwDOKIBx0s4H54ND", + "name": "jan-mac-arm64-0.3.0.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 124846, + "download_count": 3, + "created_at": "2023-10-27T08:39:50Z", + "updated_at": "2023-10-27T08:39:50Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-arm64-0.3.0.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612509", + "id": 132612509, + "node_id": "RA_kwDOKIBx0s4H54Gd", + "name": "jan-mac-x64-0.3.0.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 127747523, + "download_count": 25, + "created_at": "2023-10-27T08:36:45Z", + "updated_at": "2023-10-27T08:36:51Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-x64-0.3.0.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612510", + "id": 132612510, + "node_id": "RA_kwDOKIBx0s4H54Ge", + "name": "jan-mac-x64-0.3.0.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 134480, + "download_count": 3, + "created_at": "2023-10-27T08:36:45Z", + "updated_at": "2023-10-27T08:36:46Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-x64-0.3.0.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612398", + "id": 132612398, + "node_id": "RA_kwDOKIBx0s4H54Eu", + "name": "jan-mac-x64-0.3.0.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 123901017, + "download_count": 6, + "created_at": "2023-10-27T08:35:56Z", + "updated_at": "2023-10-27T08:36:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-x64-0.3.0.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612397", + "id": 132612397, + "node_id": "RA_kwDOKIBx0s4H54Et", + "name": "jan-mac-x64-0.3.0.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 131343, + "download_count": 3, + "created_at": "2023-10-27T08:35:56Z", + "updated_at": "2023-10-27T08:35:56Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-mac-x64-0.3.0.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132611781", + "id": 132611781, + "node_id": "RA_kwDOKIBx0s4H537F", + "name": "jan-win-x64-0.3.0.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 98469954, + "download_count": 53, + "created_at": "2023-10-27T08:30:52Z", + "updated_at": "2023-10-27T08:30:55Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-win-x64-0.3.0.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132611782", + "id": 132611782, + "node_id": "RA_kwDOKIBx0s4H537G", + "name": "jan-win-x64-0.3.0.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 103165, + "download_count": 9, + "created_at": "2023-10-27T08:30:52Z", + "updated_at": "2023-10-27T08:30:53Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/jan-win-x64-0.3.0.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132611292", + "id": 132611292, + "node_id": "RA_kwDOKIBx0s4H53zc", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 80, + "created_at": "2023-10-27T08:26:45Z", + "updated_at": "2023-10-27T08:26:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132612949", + "id": 132612949, + "node_id": "RA_kwDOKIBx0s4H54NV", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 306, + "created_at": "2023-10-27T08:39:55Z", + "updated_at": "2023-10-27T08:39:55Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132611787", + "id": 132611787, + "node_id": "RA_kwDOKIBx0s4H537L", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 115, + "created_at": "2023-10-27T08:30:55Z", + "updated_at": "2023-10-27T08:30:55Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.3.0/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.3.0", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.3.0", + "body": "## Changes\r\n\r\n- fix: hide preferences section if empty @louis-jan (#482)\r\n- chore: fix conversation summary @louis-jan (#480)\r\n- chore: missing create conversation button when there is no conversation is selected @louis-jan (#478)\r\n- fix: download now change state immediately @namchuai (#475)\r\n- chore: add required app version to edge release plugin @louis-jan (#471)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- add rebuild for mac x64 @hiento09 (#473)\r\n\r\n## 🧰 Maintenance\r\n\r\n- Add build deps for data-plugin in CI @hiento09 (#472)\r\n\r\n## Contributor\r\n\r\n@hiento09, @hientominh, @jan-service-account, @louis-jan and @namchuai\r\n", + "mentions_count": 5 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/126900705", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/126900705/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/126900705/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.2.3", + "id": 126900705, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4HkFnh", + "tag_name": "v0.2.3", + "target_commitish": "main", + "name": "0.2.3", + "draft": false, + "prerelease": false, + "created_at": "2023-10-27T07:43:43Z", + "published_at": "2023-10-27T08:08:46Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132606886", + "id": 132606886, + "node_id": "RA_kwDOKIBx0s4H52um", + "name": "jan-linux-amd64-0.2.3.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 95796132, + "download_count": 3, + "created_at": "2023-10-27T07:52:29Z", + "updated_at": "2023-10-27T07:52:32Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-linux-amd64-0.2.3.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132608260", + "id": 132608260, + "node_id": "RA_kwDOKIBx0s4H53EE", + "name": "jan-mac-arm64-0.2.3.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 122527352, + "download_count": 13, + "created_at": "2023-10-27T08:04:29Z", + "updated_at": "2023-10-27T08:04:35Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-arm64-0.2.3.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132608261", + "id": 132608261, + "node_id": "RA_kwDOKIBx0s4H53EF", + "name": "jan-mac-arm64-0.2.3.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 130923, + "download_count": 3, + "created_at": "2023-10-27T08:04:30Z", + "updated_at": "2023-10-27T08:04:30Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-arm64-0.2.3.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132608404", + "id": 132608404, + "node_id": "RA_kwDOKIBx0s4H53GU", + "name": "jan-mac-arm64-0.2.3.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 118596651, + "download_count": 11, + "created_at": "2023-10-27T08:05:09Z", + "updated_at": "2023-10-27T08:05:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-arm64-0.2.3.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132608405", + "id": 132608405, + "node_id": "RA_kwDOKIBx0s4H53GV", + "name": "jan-mac-arm64-0.2.3.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 125183, + "download_count": 3, + "created_at": "2023-10-27T08:05:09Z", + "updated_at": "2023-10-27T08:05:09Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-arm64-0.2.3.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132607792", + "id": 132607792, + "node_id": "RA_kwDOKIBx0s4H528w", + "name": "jan-mac-x64-0.2.3.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 127748199, + "download_count": 3, + "created_at": "2023-10-27T08:00:23Z", + "updated_at": "2023-10-27T08:00:31Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-x64-0.2.3.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132607790", + "id": 132607790, + "node_id": "RA_kwDOKIBx0s4H528u", + "name": "jan-mac-x64-0.2.3.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 134400, + "download_count": 3, + "created_at": "2023-10-27T08:00:23Z", + "updated_at": "2023-10-27T08:00:23Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-x64-0.2.3.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132607895", + "id": 132607895, + "node_id": "RA_kwDOKIBx0s4H52-X", + "name": "jan-mac-x64-0.2.3.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 123901593, + "download_count": 3, + "created_at": "2023-10-27T08:01:37Z", + "updated_at": "2023-10-27T08:01:43Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-x64-0.2.3.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132607894", + "id": 132607894, + "node_id": "RA_kwDOKIBx0s4H52-W", + "name": "jan-mac-x64-0.2.3.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 131642, + "download_count": 3, + "created_at": "2023-10-27T08:01:37Z", + "updated_at": "2023-10-27T08:01:37Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-mac-x64-0.2.3.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132607282", + "id": 132607282, + "node_id": "RA_kwDOKIBx0s4H520y", + "name": "jan-win-x64-0.2.3.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 98472254, + "download_count": 12, + "created_at": "2023-10-27T07:55:16Z", + "updated_at": "2023-10-27T07:55:19Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-win-x64-0.2.3.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132607284", + "id": 132607284, + "node_id": "RA_kwDOKIBx0s4H5200", + "name": "jan-win-x64-0.2.3.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 102940, + "download_count": 10, + "created_at": "2023-10-27T07:55:16Z", + "updated_at": "2023-10-27T07:55:17Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/jan-win-x64-0.2.3.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132606889", + "id": 132606889, + "node_id": "RA_kwDOKIBx0s4H52up", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 3, + "created_at": "2023-10-27T07:52:33Z", + "updated_at": "2023-10-27T07:52:33Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132608421", + "id": 132608421, + "node_id": "RA_kwDOKIBx0s4H53Gl", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 22, + "created_at": "2023-10-27T08:05:15Z", + "updated_at": "2023-10-27T08:05:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132607291", + "id": 132607291, + "node_id": "RA_kwDOKIBx0s4H5207", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 10, + "created_at": "2023-10-27T07:55:19Z", + "updated_at": "2023-10-27T07:55:19Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.3/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.2.3", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.2.3", + "body": "## Changes\r\n\r\n- fix: hide preferences section if empty @louis-jan (#482)\r\n- chore: fix conversation summary @louis-jan (#480)\r\n- chore: missing create conversation button when there is no conversation is selected @louis-jan (#478)\r\n- fix: download now change state immediately @namchuai (#475)\r\n- chore: add required app version to edge release plugin @louis-jan (#471)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- add rebuild for mac x64 @hiento09 (#473)\r\n\r\n## 🧰 Maintenance\r\n\r\n- Add build deps for data-plugin in CI @hiento09 (#472)\r\n\r\n## Contributor\r\n\r\n@hiento09, @hientominh, @jan-service-account, @louis-jan and @namchuai\r\n", + "mentions_count": 5 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/126752541", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/126752541/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/126752541/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.2.2", + "id": 126752541, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4Hjhcd", + "tag_name": "v0.2.2", + "target_commitish": "main", + "name": "0.2.2", + "draft": false, + "prerelease": false, + "created_at": "2023-10-26T10:41:40Z", + "published_at": "2023-10-26T12:01:49Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446198", + "id": 132446198, + "node_id": "RA_kwDOKIBx0s4H5Pf2", + "name": "jan-linux-amd64-0.2.2.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 95810320, + "download_count": 17, + "created_at": "2023-10-26T10:47:31Z", + "updated_at": "2023-10-26T10:47:33Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-linux-amd64-0.2.2.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132447114", + "id": 132447114, + "node_id": "RA_kwDOKIBx0s4H5PuK", + "name": "jan-mac-arm64-0.2.2.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 122505953, + "download_count": 16, + "created_at": "2023-10-26T10:55:21Z", + "updated_at": "2023-10-26T10:55:27Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-arm64-0.2.2.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132447113", + "id": 132447113, + "node_id": "RA_kwDOKIBx0s4H5PuJ", + "name": "jan-mac-arm64-0.2.2.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 130321, + "download_count": 3, + "created_at": "2023-10-26T10:55:21Z", + "updated_at": "2023-10-26T10:55:22Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-arm64-0.2.2.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132447151", + "id": 132447151, + "node_id": "RA_kwDOKIBx0s4H5Puv", + "name": "jan-mac-arm64-0.2.2.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 118590874, + "download_count": 7, + "created_at": "2023-10-26T10:55:40Z", + "updated_at": "2023-10-26T10:55:47Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-arm64-0.2.2.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132447152", + "id": 132447152, + "node_id": "RA_kwDOKIBx0s4H5Puw", + "name": "jan-mac-arm64-0.2.2.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 124759, + "download_count": 3, + "created_at": "2023-10-26T10:55:40Z", + "updated_at": "2023-10-26T10:55:41Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-arm64-0.2.2.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446857", + "id": 132446857, + "node_id": "RA_kwDOKIBx0s4H5PqJ", + "name": "jan-mac-x64-0.2.2.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 127735305, + "download_count": 4, + "created_at": "2023-10-26T10:52:32Z", + "updated_at": "2023-10-26T10:52:38Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-x64-0.2.2.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446858", + "id": 132446858, + "node_id": "RA_kwDOKIBx0s4H5PqK", + "name": "jan-mac-x64-0.2.2.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 134230, + "download_count": 3, + "created_at": "2023-10-26T10:52:32Z", + "updated_at": "2023-10-26T10:52:33Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-x64-0.2.2.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446906", + "id": 132446906, + "node_id": "RA_kwDOKIBx0s4H5Pq6", + "name": "jan-mac-x64-0.2.2.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 123895826, + "download_count": 4, + "created_at": "2023-10-26T10:53:03Z", + "updated_at": "2023-10-26T10:53:09Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-x64-0.2.2.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446905", + "id": 132446905, + "node_id": "RA_kwDOKIBx0s4H5Pq5", + "name": "jan-mac-x64-0.2.2.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 131354, + "download_count": 3, + "created_at": "2023-10-26T10:53:03Z", + "updated_at": "2023-10-26T10:53:04Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-mac-x64-0.2.2.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446798", + "id": 132446798, + "node_id": "RA_kwDOKIBx0s4H5PpO", + "name": "jan-win-x64-0.2.2.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 98467481, + "download_count": 8, + "created_at": "2023-10-26T10:52:08Z", + "updated_at": "2023-10-26T10:52:10Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-win-x64-0.2.2.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446797", + "id": 132446797, + "node_id": "RA_kwDOKIBx0s4H5PpN", + "name": "jan-win-x64-0.2.2.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 103420, + "download_count": 6, + "created_at": "2023-10-26T10:52:08Z", + "updated_at": "2023-10-26T10:52:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/jan-win-x64-0.2.2.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446207", + "id": 132446207, + "node_id": "RA_kwDOKIBx0s4H5Pf_", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 33, + "created_at": "2023-10-26T10:47:33Z", + "updated_at": "2023-10-26T10:47:34Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132447165", + "id": 132447165, + "node_id": "RA_kwDOKIBx0s4H5Pu9", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 68, + "created_at": "2023-10-26T10:55:47Z", + "updated_at": "2023-10-26T10:55:47Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132446812", + "id": 132446812, + "node_id": "RA_kwDOKIBx0s4H5Ppc", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 31, + "created_at": "2023-10-26T10:52:10Z", + "updated_at": "2023-10-26T10:52:11Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.2/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.2.2", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.2.2", + "body": "## Changes\r\n\r\n- chore: plugin and app version dependency @louis-jan (#469)\r\n- bug: showing a modal when user start conf but model not active @urmauur (#466)\r\n- fix: duplicated modal and loading state @louis-jan (#465)\r\n- bug: fix overflow scroll horizontal message @urmauur (#464)\r\n- bug: avoid chat body scroll horizontal @urmauur (#462)\r\n- bug: fix logic plugin update plugin and show installed version @urmauur (#459)\r\n- bug: chat view drops enumeration @urmauur (#456)\r\n- fix: allow switching models when switch between conversations @namchuai (#458)\r\n- fix: CI run fails on windows @louis-jan (#463)\r\n- fix: failed to build electron app @louis-jan (#461)\r\n- fix: correct app version display @louis-jan (#452)\r\n- fix: enable link color blue on docusaurus markdown @urmauur (#449)\r\n\r\n## 🚀 Features\r\n\r\n- feat: Add ADR-008 for extensible Jan @vuonghoainam (#431)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- data-plugin force leveldown to 6.1.1 @hiento09 (#453)\r\n\r\n## 🧰 Maintenance\r\n\r\n- Use electron-rebuild to build leveldown@5.6.0 for darwin arm64 @hiento09 (#455)\r\n- data-plugin force leveldown back to 5.6.0 and rebuild for darwin arm64 @hiento09 (#454)\r\n- data-plugin force leveldown to 6.1.1 @hiento09 (#453)\r\n\r\n## Contributor\r\n\r\n@hiento09, @jan-service-account, @louis-jan, @namchuai, @urmauur and @vuonghoainam\r\n", + "mentions_count": 6 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/126564105", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/126564105/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/126564105/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.2.1", + "id": 126564105, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4HizcJ", + "tag_name": "v0.2.1", + "target_commitish": "main", + "name": "0.2.1", + "draft": false, + "prerelease": false, + "created_at": "2023-10-25T08:56:36Z", + "published_at": "2023-10-25T09:17:04Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132253645", + "id": 132253645, + "node_id": "RA_kwDOKIBx0s4H4gfN", + "name": "jan-linux-amd64-0.2.1.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 97793320, + "download_count": 14, + "created_at": "2023-10-25T09:02:35Z", + "updated_at": "2023-10-25T09:02:38Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-linux-amd64-0.2.1.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132255435", + "id": 132255435, + "node_id": "RA_kwDOKIBx0s4H4g7L", + "name": "jan-mac-arm64-0.2.1.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 120490638, + "download_count": 13, + "created_at": "2023-10-25T09:15:35Z", + "updated_at": "2023-10-25T09:15:40Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-arm64-0.2.1.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132255436", + "id": 132255436, + "node_id": "RA_kwDOKIBx0s4H4g7M", + "name": "jan-mac-arm64-0.2.1.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 125173, + "download_count": 3, + "created_at": "2023-10-25T09:15:35Z", + "updated_at": "2023-10-25T09:15:41Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-arm64-0.2.1.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132255505", + "id": 132255505, + "node_id": "RA_kwDOKIBx0s4H4g8R", + "name": "jan-mac-arm64-0.2.1.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 116580462, + "download_count": 5, + "created_at": "2023-10-25T09:15:58Z", + "updated_at": "2023-10-25T09:16:02Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-arm64-0.2.1.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132255504", + "id": 132255504, + "node_id": "RA_kwDOKIBx0s4H4g8Q", + "name": "jan-mac-arm64-0.2.1.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 122252, + "download_count": 3, + "created_at": "2023-10-25T09:15:58Z", + "updated_at": "2023-10-25T09:15:58Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-arm64-0.2.1.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132255104", + "id": 132255104, + "node_id": "RA_kwDOKIBx0s4H4g2A", + "name": "jan-mac-x64-0.2.1.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 125739334, + "download_count": 5, + "created_at": "2023-10-25T09:13:07Z", + "updated_at": "2023-10-25T09:13:14Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-x64-0.2.1.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132255105", + "id": 132255105, + "node_id": "RA_kwDOKIBx0s4H4g2B", + "name": "jan-mac-x64-0.2.1.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 132524, + "download_count": 3, + "created_at": "2023-10-25T09:13:07Z", + "updated_at": "2023-10-25T09:13:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-x64-0.2.1.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132254864", + "id": 132254864, + "node_id": "RA_kwDOKIBx0s4H4gyQ", + "name": "jan-mac-x64-0.2.1.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 121885377, + "download_count": 4, + "created_at": "2023-10-25T09:11:35Z", + "updated_at": "2023-10-25T09:11:40Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-x64-0.2.1.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132254865", + "id": 132254865, + "node_id": "RA_kwDOKIBx0s4H4gyR", + "name": "jan-mac-x64-0.2.1.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 129631, + "download_count": 3, + "created_at": "2023-10-25T09:11:35Z", + "updated_at": "2023-10-25T09:11:36Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-mac-x64-0.2.1.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132253894", + "id": 132253894, + "node_id": "RA_kwDOKIBx0s4H4gjG", + "name": "jan-win-x64-0.2.1.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 100456828, + "download_count": 6, + "created_at": "2023-10-25T09:05:10Z", + "updated_at": "2023-10-25T09:05:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-win-x64-0.2.1.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132253895", + "id": 132253895, + "node_id": "RA_kwDOKIBx0s4H4gjH", + "name": "jan-win-x64-0.2.1.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 104940, + "download_count": 4, + "created_at": "2023-10-25T09:05:10Z", + "updated_at": "2023-10-25T09:05:11Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/jan-win-x64-0.2.1.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132253647", + "id": 132253647, + "node_id": "RA_kwDOKIBx0s4H4gfP", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 73, + "created_at": "2023-10-25T09:02:38Z", + "updated_at": "2023-10-25T09:02:38Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132255519", + "id": 132255519, + "node_id": "RA_kwDOKIBx0s4H4g8f", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 104, + "created_at": "2023-10-25T09:16:03Z", + "updated_at": "2023-10-25T09:16:03Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/132253917", + "id": 132253917, + "node_id": "RA_kwDOKIBx0s4H4gjd", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 339, + "download_count": 72, + "created_at": "2023-10-25T09:05:15Z", + "updated_at": "2023-10-25T09:05:15Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.1/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.2.1", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.2.1", + "body": "## Changes\r\n\r\n- fix: model is started but the indicator is not stopped loading @louis-jan (#446)\r\n- fix: bring back install plugin manually function @louis-jan (#448)\r\n- fix: duplicated messages when user switch between conversations @namchuai (#441)\r\n- chore: added loader starting and stopping model @urmauur (#438)\r\n- chore: Change license to AGPL @dan-jan (#442)\r\n- fix: plugin \\& model catalog import cache are not cleared properly @louis-jan (#437)\r\n- fix error codesign @hiento09 (#439)\r\n- fix: app version and cleanup unused code @urmauur (#434)\r\n- chore: update core service - get plugin manifest @louis-jan (#432)\r\n- ui: interface revamp @urmauur (#429)\r\n- fix: scroll on explore models does not work @namchuai (#427)\r\n- feat: adding create bot functionality @namchuai (#368)\r\n- chore: install or update a plugin should not interrupt dev process @louis-jan (#420)\r\n- chore: Update nitro 0.1.2 windows/ linux @vuonghoainam (#421)\r\n- chore: update core service enums @louis-jan (#414)\r\n- feat: chat with documents plugin @louis-jan (#417)\r\n- misc: setup prettier @urmauur (#412)\r\n- adr: 007 - Jan Plugin Catalog @louis-jan (#408)\r\n- adr: 006 - Jan Core Module @louis-jan (#404)\r\n- feat: Support for nitro release 0.1.2 @vuonghoainam (#409)\r\n- feat: explore plugins from the npm repository and install them remotely @louis-jan (#399)\r\n- feat: fix event description @dan-jan (#400)\r\n- fix: high cpu usage @louis-jan (#401)\r\n- docs: model installation ADR @0xSage (#390)\r\n- chore: update core events module @louis-jan (#394)\r\n- feat: Update Social OG Image and Meta Description @dan-jan (#387)\r\n- misc: UI home @urmauur (#392)\r\n- Update hcmc-oct23.md @0xSage (#389)\r\n- chore: remove deprecated extension functions @louis-jan (#388)\r\n- Fix bugs image overlap dropdown button download @urmauur (#384)\r\n- chore: resolve fetch models api limit rate @louis-jan (#383)\r\n- chore: update convo summary @louis-jan (#378)\r\n- Update interface landing page @urmauur (#381)\r\n- Add simple copywriting changes @dan-jan (#382)\r\n- chore: update core services and module export @louis-jan (#376)\r\n- chore: #371 - reference to plugin name and module path as variables @louis-jan (#372)\r\n- feat: Edit event details, hide all unnecessary website sections @dan-jan (#369)\r\n- docs: UI Service ADR @0xSage (#318)\r\n- Feat/issue 255 adr 001 jand cloud native @nam-john-ho (#262)\r\n- Move plugins folder from electron to root folder @hiento09 (#366)\r\n- feature: core plugin support events \\& preferences modules @louis-jan (#365)\r\n- Fix/250 @namchuai (#349)\r\n- Change License and update README @dan-jan (#356)\r\n- Jan 339 @dan-jan (#348)\r\n- feat: Jan 339 @dan-jan (#347)\r\n- Add social og:image @dan-jan (#346)\r\n- feat(ard): Add adr 002 @vuonghoainam (#261)\r\n\r\n## 🚀 Features\r\n\r\n- #357 plugin \\& app can subscribe and emit events @louis-jan (#358)\r\n- feature: @janhq/plugin-core module \\& usage @louis-jan (#321)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Change to load nitron on windows and linux from bash/shell script @hiento09 (#451)\r\n- Fix data-plugin install failed on mac silicon from npm @hiento09 (#413)\r\n- Correct version of plugins @hiento09 (#374)\r\n\r\n## 🧰 Maintenance\r\n\r\n- upgrade leveldown to newest version @hiento09 (#447)\r\n- Update auto-sign plugin by search file permission 664 @hiento09 (#445)\r\n- Change codesign plugin folder in ci @hiento09 (#440)\r\n- Add continue on error for import cert @hiento09 (#436)\r\n- Update code siging for new data plugin @hiento09 (#433)\r\n- Add readme inference plugin @hiento09 (#426)\r\n- Add username to remote origin @hiento09 (#425)\r\n- Add auto create PR to plugin-catalog when a new version of plugin is … @hiento09 (#416)\r\n- Fix data-plugin install failed on mac silicon from npm @hiento09 (#413)\r\n- Chore/remove package lock @hiento09 (#398)\r\n- Refactor cicd @hiento09 (#397)\r\n- Correct version of plugins @hiento09 (#374)\r\n- Rename plugin-core to core @hiento09 (#370)\r\n- Fix error check change in plugins folder @hiento09 (#367)\r\n- chore: jan.ai nits @0xSage (#354)\r\n\r\n## Contributor\r\n\r\n@0xSage, @dan-jan, @hiento09, @jan-service-account, @louis-jan, @nam-john-ho, @namchuai, @tikikun, @urmauur, @vuonghoainam and Hien To\r\n", + "mentions_count": 9 + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/124963068", + "assets_url": "https://api.github.com/repos/janhq/jan/releases/124963068/assets", + "upload_url": "https://uploads.github.com/repos/janhq/jan/releases/124963068/assets{?name,label}", + "html_url": "https://github.com/janhq/jan/releases/tag/v0.2.0", + "id": 124963068, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "node_id": "RE_kwDOKIBx0s4Hcsj8", + "tag_name": "v0.2.0", + "target_commitish": "main", + "name": "0.2.0", + "draft": false, + "prerelease": false, + "created_at": "2023-10-13T10:30:52Z", + "published_at": "2023-10-13T10:51:19Z", + "assets": [ + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418359", + "id": 130418359, + "node_id": "RA_kwDOKIBx0s4Hxga3", + "name": "jan-linux-amd64-0.2.0.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 94500286, + "download_count": 15, + "created_at": "2023-10-13T10:35:34Z", + "updated_at": "2023-10-13T10:35:36Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-linux-amd64-0.2.0.deb" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130419294", + "id": 130419294, + "node_id": "RA_kwDOKIBx0s4Hxgpe", + "name": "jan-mac-arm64-0.2.0.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 117364184, + "download_count": 37, + "created_at": "2023-10-13T10:42:56Z", + "updated_at": "2023-10-13T10:42:59Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-arm64-0.2.0.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130419293", + "id": 130419293, + "node_id": "RA_kwDOKIBx0s4Hxgpd", + "name": "jan-mac-arm64-0.2.0.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 121696, + "download_count": 3, + "created_at": "2023-10-13T10:42:56Z", + "updated_at": "2023-10-13T10:42:56Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-arm64-0.2.0.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130419318", + "id": 130419318, + "node_id": "RA_kwDOKIBx0s4Hxgp2", + "name": "jan-mac-arm64-0.2.0.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 113497245, + "download_count": 6, + "created_at": "2023-10-13T10:43:10Z", + "updated_at": "2023-10-13T10:43:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-arm64-0.2.0.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130419317", + "id": 130419317, + "node_id": "RA_kwDOKIBx0s4Hxgp1", + "name": "jan-mac-arm64-0.2.0.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 120020, + "download_count": 3, + "created_at": "2023-10-13T10:43:10Z", + "updated_at": "2023-10-13T10:43:10Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-arm64-0.2.0.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418907", + "id": 130418907, + "node_id": "RA_kwDOKIBx0s4Hxgjb", + "name": "jan-mac-x64-0.2.0.dmg", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 122602134, + "download_count": 10, + "created_at": "2023-10-13T10:40:05Z", + "updated_at": "2023-10-13T10:40:08Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-x64-0.2.0.dmg" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418908", + "id": 130418908, + "node_id": "RA_kwDOKIBx0s4Hxgjc", + "name": "jan-mac-x64-0.2.0.dmg.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 129839, + "download_count": 3, + "created_at": "2023-10-13T10:40:05Z", + "updated_at": "2023-10-13T10:40:06Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-x64-0.2.0.dmg.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418915", + "id": 130418915, + "node_id": "RA_kwDOKIBx0s4Hxgjj", + "name": "jan-mac-x64-0.2.0.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 118802191, + "download_count": 3, + "created_at": "2023-10-13T10:40:10Z", + "updated_at": "2023-10-13T10:40:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-x64-0.2.0.zip" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418916", + "id": 130418916, + "node_id": "RA_kwDOKIBx0s4Hxgjk", + "name": "jan-mac-x64-0.2.0.zip.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 126330, + "download_count": 3, + "created_at": "2023-10-13T10:40:10Z", + "updated_at": "2023-10-13T10:40:10Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-mac-x64-0.2.0.zip.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418886", + "id": 130418886, + "node_id": "RA_kwDOKIBx0s4HxgjG", + "name": "jan-win-x64-0.2.0.exe", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 97037738, + "download_count": 42, + "created_at": "2023-10-13T10:39:41Z", + "updated_at": "2023-10-13T10:39:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-win-x64-0.2.0.exe" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418888", + "id": 130418888, + "node_id": "RA_kwDOKIBx0s4HxgjI", + "name": "jan-win-x64-0.2.0.exe.blockmap", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 102058, + "download_count": 8, + "created_at": "2023-10-13T10:39:41Z", + "updated_at": "2023-10-13T10:39:41Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/jan-win-x64-0.2.0.exe.blockmap" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418360", + "id": 130418360, + "node_id": "RA_kwDOKIBx0s4Hxga4", + "name": "latest-linux.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 346, + "download_count": 326, + "created_at": "2023-10-13T10:35:36Z", + "updated_at": "2023-10-13T10:35:37Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/latest-linux.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130419322", + "id": 130419322, + "node_id": "RA_kwDOKIBx0s4Hxgp6", + "name": "latest-mac.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 799, + "download_count": 396, + "created_at": "2023-10-13T10:43:13Z", + "updated_at": "2023-10-13T10:43:13Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/latest-mac.yml" + }, + { + "url": "https://api.github.com/repos/janhq/jan/releases/assets/130418891", + "id": 130418891, + "node_id": "RA_kwDOKIBx0s4HxgjL", + "name": "latest.yml", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "content_type": "text/yaml", + "state": "uploaded", + "size": 338, + "download_count": 168, + "created_at": "2023-10-13T10:39:45Z", + "updated_at": "2023-10-13T10:39:45Z", + "browser_download_url": "https://github.com/janhq/jan/releases/download/v0.2.0/latest.yml" + } + ], + "tarball_url": "https://api.github.com/repos/janhq/jan/tarball/v0.2.0", + "zipball_url": "https://api.github.com/repos/janhq/jan/zipball/v0.2.0", + "body": "## Changes\r\n\r\n- feat: Add Jan Hacker House event page to Docs @dan-jan (#342)\r\n- feat: Hide incomplete Hardware section from Docs site @dan-jan (#341)\r\n- style: better chatbox ui @0xSage (#338)\r\n- feat: allowing user to fetch models from github @namchuai (#319)\r\n- fixes: #247 - inference plugin should check nitro service available @louis-jan (#313)\r\n- Fix icon error for linux app @hiento09 (#316)\r\n- docs: initial hardware content @Its-Alamin-H (#240)\r\n- fixes #277 - bug: memory utilization always at 99% @louis-jan (#309)\r\n- Docusaurus parser string from githubapi to get latest release @hiento09 (#312)\r\n- Footer background, CTA \\& Highlight colors @drakehere (#288)\r\n- Fix CI Test run failed on ubuntu and change release file app name @hiento09 (#307)\r\n- Add docusaurus test build pipeline @hiento09 (#302)\r\n- fix: #271 Cannot read properties of undefined (reading 'map') @louis-jan (#300)\r\n- Fix Docusaurus server side render error @hiento09 (#301)\r\n- fix #283: small ui fixes @namchuai (#299)\r\n\r\n## 🐛 Bug Fixes\r\n\r\n- Fix #290: Add description in package.json and rename to jan @hiento09 (#333)\r\n\r\n## 🧰 Maintenance\r\n\r\n- Add Documentation category to release note template @hiento09 (#332)\r\n- Chore/release note template @hiento09 (#323)\r\n- Add release note template @hiento09 (#322)\r\n\r\n## 📖 Documentaion\r\n\r\n- Add auto update app download url on jan.ai @hiento09 (#311)\r\n- docs: update per v0.1.3 @0xSage (#280)\r\n\r\n## Contributor\r\n\r\n@0xSage, @Its-Alamin-H, @dan-jan, @drakehere, @hiento09, @hientominh, @louis-jan, @namchuai, Hien To and James\r\n", + "mentions_count": 8 + } + ] +} \ No newline at end of file diff --git a/docs/docs/releases/changelog/changelog-v0.2.0.mdx b/docs/docs/releases/changelog/changelog-v0.2.0.mdx new file mode 100644 index 000000000..5884db762 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.2.0.mdx @@ -0,0 +1,47 @@ +--- +sidebar_position: 18 +slug: /changelog/changelog-v0.2.0 +--- +# v0.2.0 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.2.0) + +Highlighted Issue: [Issue #342: feat: Add Jan Hacker House event page to Docs](https://github.com/janhq/jan/pull/342) + +## Changes + +- feat: Add Jan Hacker House event page to Docs @dan-jan (#342) +- feat: Hide incomplete Hardware section from Docs site @dan-jan (#341) +- style: better chatbox ui @0xSage (#338) +- feat: allowing user to fetch models from github @namchuai (#319) +- fixes: #247 - inference plugin should check nitro service available @louis-jan (#313) +- Fix icon error for linux app @hiento09 (#316) +- docs: initial hardware content @Its-Alamin-H (#240) +- fixes #277 - bug: memory utilization always at 99% @louis-jan (#309) +- Docusaurus parser string from githubapi to get latest release @hiento09 (#312) +- Footer background, CTA \& Highlight colors @drakehere (#288) +- Fix CI Test run failed on ubuntu and change release file app name @hiento09 (#307) +- Add docusaurus test build pipeline @hiento09 (#302) +- fix: #271 Cannot read properties of undefined (reading 'map') @louis-jan (#300) +- Fix Docusaurus server side render error @hiento09 (#301) +- fix #283: small ui fixes @namchuai (#299) + +## 🐛 Bug Fixes + +- Fix #290: Add description in package.json and rename to jan @hiento09 (#333) + +## 🧰 Maintenance + +- Add Documentation category to release note template @hiento09 (#332) +- Chore/release note template @hiento09 (#323) +- Add release note template @hiento09 (#322) + +## 📖 Documentaion + +- Add auto update app download url on jan.ai @hiento09 (#311) +- docs: update per v0.1.3 @0xSage (#280) + +## Contributor + +@0xSage, @Its-Alamin-H, @dan-jan, @drakehere, @hiento09, @hientominh, @louis-jan, @namchuai, Hien To and James + diff --git a/docs/docs/releases/changelog/changelog-v0.2.1.mdx b/docs/docs/releases/changelog/changelog-v0.2.1.mdx new file mode 100644 index 000000000..917aa43a3 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.2.1.mdx @@ -0,0 +1,93 @@ +--- +sidebar_position: 17 +slug: /changelog/changelog-v0.2.1 +--- +# v0.2.1 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.2.1) + +Highlighted Issue: [Issue #446: fix: model is started but the indicator is not stopped loading](https://github.com/janhq/jan/pull/446) + +## Changes + +- fix: model is started but the indicator is not stopped loading @louis-jan (#446) +- fix: bring back install plugin manually function @louis-jan (#448) +- fix: duplicated messages when user switch between conversations @namchuai (#441) +- chore: added loader starting and stopping model @urmauur (#438) +- chore: Change license to AGPL @dan-jan (#442) +- fix: plugin \& model catalog import cache are not cleared properly @louis-jan (#437) +- fix error codesign @hiento09 (#439) +- fix: app version and cleanup unused code @urmauur (#434) +- chore: update core service - get plugin manifest @louis-jan (#432) +- ui: interface revamp @urmauur (#429) +- fix: scroll on explore models does not work @namchuai (#427) +- feat: adding create bot functionality @namchuai (#368) +- chore: install or update a plugin should not interrupt dev process @louis-jan (#420) +- chore: Update nitro 0.1.2 windows/ linux @vuonghoainam (#421) +- chore: update core service enums @louis-jan (#414) +- feat: chat with documents plugin @louis-jan (#417) +- misc: setup prettier @urmauur (#412) +- adr: 007 - Jan Plugin Catalog @louis-jan (#408) +- adr: 006 - Jan Core Module @louis-jan (#404) +- feat: Support for nitro release 0.1.2 @vuonghoainam (#409) +- feat: explore plugins from the npm repository and install them remotely @louis-jan (#399) +- feat: fix event description @dan-jan (#400) +- fix: high cpu usage @louis-jan (#401) +- docs: model installation ADR @0xSage (#390) +- chore: update core events module @louis-jan (#394) +- feat: Update Social OG Image and Meta Description @dan-jan (#387) +- misc: UI home @urmauur (#392) +- Update hcmc-oct23.md @0xSage (#389) +- chore: remove deprecated extension functions @louis-jan (#388) +- Fix bugs image overlap dropdown button download @urmauur (#384) +- chore: resolve fetch models api limit rate @louis-jan (#383) +- chore: update convo summary @louis-jan (#378) +- Update interface landing page @urmauur (#381) +- Add simple copywriting changes @dan-jan (#382) +- chore: update core services and module export @louis-jan (#376) +- chore: #371 - reference to plugin name and module path as variables @louis-jan (#372) +- feat: Edit event details, hide all unnecessary website sections @dan-jan (#369) +- docs: UI Service ADR @0xSage (#318) +- Feat/issue 255 adr 001 jand cloud native @nam-john-ho (#262) +- Move plugins folder from electron to root folder @hiento09 (#366) +- feature: core plugin support events \& preferences modules @louis-jan (#365) +- Fix/250 @namchuai (#349) +- Change License and update README @dan-jan (#356) +- Jan 339 @dan-jan (#348) +- feat: Jan 339 @dan-jan (#347) +- Add social og:image @dan-jan (#346) +- feat(ard): Add adr 002 @vuonghoainam (#261) + +## 🚀 Features + +- #357 plugin \& app can subscribe and emit events @louis-jan (#358) +- feature: @janhq/plugin-core module \& usage @louis-jan (#321) + +## 🐛 Bug Fixes + +- Change to load nitron on windows and linux from bash/shell script @hiento09 (#451) +- Fix data-plugin install failed on mac silicon from npm @hiento09 (#413) +- Correct version of plugins @hiento09 (#374) + +## 🧰 Maintenance + +- upgrade leveldown to newest version @hiento09 (#447) +- Update auto-sign plugin by search file permission 664 @hiento09 (#445) +- Change codesign plugin folder in ci @hiento09 (#440) +- Add continue on error for import cert @hiento09 (#436) +- Update code siging for new data plugin @hiento09 (#433) +- Add readme inference plugin @hiento09 (#426) +- Add username to remote origin @hiento09 (#425) +- Add auto create PR to plugin-catalog when a new version of plugin is … @hiento09 (#416) +- Fix data-plugin install failed on mac silicon from npm @hiento09 (#413) +- Chore/remove package lock @hiento09 (#398) +- Refactor cicd @hiento09 (#397) +- Correct version of plugins @hiento09 (#374) +- Rename plugin-core to core @hiento09 (#370) +- Fix error check change in plugins folder @hiento09 (#367) +- chore: jan.ai nits @0xSage (#354) + +## Contributor + +@0xSage, @dan-jan, @hiento09, @jan-service-account, @louis-jan, @nam-john-ho, @namchuai, @tikikun, @urmauur, @vuonghoainam and Hien To + diff --git a/docs/docs/releases/changelog/changelog-v0.2.2.mdx b/docs/docs/releases/changelog/changelog-v0.2.2.mdx new file mode 100644 index 000000000..0beb0013b --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.2.2.mdx @@ -0,0 +1,43 @@ +--- +sidebar_position: 16 +slug: /changelog/changelog-v0.2.2 +--- +# v0.2.2 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.2.2) + +Highlighted Issue: [Issue #469: chore: plugin and app version dependency](https://github.com/janhq/jan/pull/469) + +## Changes + +- chore: plugin and app version dependency @louis-jan (#469) +- bug: showing a modal when user start conf but model not active @urmauur (#466) +- fix: duplicated modal and loading state @louis-jan (#465) +- bug: fix overflow scroll horizontal message @urmauur (#464) +- bug: avoid chat body scroll horizontal @urmauur (#462) +- bug: fix logic plugin update plugin and show installed version @urmauur (#459) +- bug: chat view drops enumeration @urmauur (#456) +- fix: allow switching models when switch between conversations @namchuai (#458) +- fix: CI run fails on windows @louis-jan (#463) +- fix: failed to build electron app @louis-jan (#461) +- fix: correct app version display @louis-jan (#452) +- fix: enable link color blue on docusaurus markdown @urmauur (#449) + +## 🚀 Features + +- feat: Add ADR-008 for extensible Jan @vuonghoainam (#431) + +## 🐛 Bug Fixes + +- data-plugin force leveldown to 6.1.1 @hiento09 (#453) + +## 🧰 Maintenance + +- Use electron-rebuild to build leveldown@5.6.0 for darwin arm64 @hiento09 (#455) +- data-plugin force leveldown back to 5.6.0 and rebuild for darwin arm64 @hiento09 (#454) +- data-plugin force leveldown to 6.1.1 @hiento09 (#453) + +## Contributor + +@hiento09, @jan-service-account, @louis-jan, @namchuai, @urmauur and @vuonghoainam + diff --git a/docs/docs/releases/changelog/changelog-v0.2.3.mdx b/docs/docs/releases/changelog/changelog-v0.2.3.mdx new file mode 100644 index 000000000..ba4c8fafd --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.2.3.mdx @@ -0,0 +1,30 @@ +--- +sidebar_position: 15 +slug: /changelog/changelog-v0.2.3 +--- +# v0.2.3 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.2.3) + +Highlighted Issue: [Issue #482: fix: hide preferences section if empty](https://github.com/janhq/jan/pull/482) + +## Changes + +- fix: hide preferences section if empty @louis-jan (#482) +- chore: fix conversation summary @louis-jan (#480) +- chore: missing create conversation button when there is no conversation is selected @louis-jan (#478) +- fix: download now change state immediately @namchuai (#475) +- chore: add required app version to edge release plugin @louis-jan (#471) + +## 🐛 Bug Fixes + +- add rebuild for mac x64 @hiento09 (#473) + +## 🧰 Maintenance + +- Add build deps for data-plugin in CI @hiento09 (#472) + +## Contributor + +@hiento09, @hientominh, @jan-service-account, @louis-jan and @namchuai + diff --git a/docs/docs/releases/changelog/changelog-v0.3.0.mdx b/docs/docs/releases/changelog/changelog-v0.3.0.mdx new file mode 100644 index 000000000..1e91edc8b --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.3.0.mdx @@ -0,0 +1,30 @@ +--- +sidebar_position: 14 +slug: /changelog/changelog-v0.3.0 +--- +# v0.3.0 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.3.0) + +Highlighted Issue: [Issue #482: fix: hide preferences section if empty](https://github.com/janhq/jan/pull/482) + +## Changes + +- fix: hide preferences section if empty @louis-jan (#482) +- chore: fix conversation summary @louis-jan (#480) +- chore: missing create conversation button when there is no conversation is selected @louis-jan (#478) +- fix: download now change state immediately @namchuai (#475) +- chore: add required app version to edge release plugin @louis-jan (#471) + +## 🐛 Bug Fixes + +- add rebuild for mac x64 @hiento09 (#473) + +## 🧰 Maintenance + +- Add build deps for data-plugin in CI @hiento09 (#472) + +## Contributor + +@hiento09, @hientominh, @jan-service-account, @louis-jan and @namchuai + diff --git a/docs/docs/releases/changelog/changelog-v0.3.1.mdx b/docs/docs/releases/changelog/changelog-v0.3.1.mdx new file mode 100644 index 000000000..dedbae8e1 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.3.1.mdx @@ -0,0 +1,78 @@ +--- +sidebar_position: 13 +slug: /changelog/changelog-v0.3.1 +--- +# v0.3.1 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.3.1) + +Highlighted Issue: [Issue #580: fix: preformatted text indents the first line strangely](https://github.com/janhq/jan/pull/580) + +## Changes + +- fix: preformatted text indents the first line strangely @louis-jan (#580) +- fix: failed to package app since core and uikit are not being built @louis-jan (#575) +- cleanup: remove component folder and cleanup conversation screen @urmauur (#574) +- bug: update convo state when user change model @urmauur (#571) +- fix(#566): jan cannot retrieve the conversations @namchuai (#570) +- bug: Toast messages shows [object object] @urmauur (#569) +- ui: improve state of welcome screen @urmauur (#563) +- chore: fixed an issue where app does not yield message result @louis-jan (#561) +- Update readme @urmauur (#560) +- ui: standalone UIKit and refactor @urmauur (#557) +- Small description changes @dan-jan (#558) +- add 'change download button based on OS' feature @Vikram-2004 (#551) +- feat: revamp plugin architecture @louis-jan (#535) +- Fix mobile padding @imtuyethan (#550) +- chore: Update Readme @dan-jan (#549) +- Update Homepage and README with 1-line pitch @dan-jan (#548) +- docs: Add About, Events, Blog @dan-jan (#546) +- Ashley/update website content @imtuyethan (#545) +- Add guides @hahuyhoang411 (#488) +- Structure Docs @dan-jan (#536) +- Update README.md @imtuyethan (#533) +- Chore: Setup "Jan Improvements Proposal" workflow @dan-jan (#534) +- Update website tag line @imtuyethan (#527) +- fix: #396 - allow user to cancel a model download @louis-jan (#530) +- fix: #479 - Toggle plugin is now experimental feature @louis-jan (#531) +- chore: disable app update on test @louis-jan (#521) +- bug: chat UI is not consistent @urmauur (#520) +- refactor: plugin manager and execution as ts @louis-jan (#504) +- fix: app toolbar is gone on windows @louis-jan (#503) +- Chore: refactor code, hide plugin menu in web @ghost (#502) +- fix: dest.end is not a function @louis-jan (#501) +- #255: Jan cloud native @ghost (#320) +- bug: download new version should show in status bar @urmauur (#500) +- feat: add New Conversation button on the conversation sidebar @urmauur (#499) +- chore: update plugin readme @louis-jan (#497) +- chore: update plugins license @louis-jan (#496) +- #255: Read plugins manifest from CDN @ghost (#495) +- chore: update plugin sdk - add appDataPath @louis-jan (#492) +- chore: enable back bot function for edge-release @louis-jan (#474) +- chore: attempt to kill Nitro subprocesses @louis-jan (#484) +- docs: new dev hub @0xSage (#450) + +## 🚀 Features + +- feat: Experimental Feature Toggle @louis-jan (#525) + +## 🐛 Bug Fixes + +- Add rebuild leveldown for arm on mac intel @hiento09 (#487) + +## 🧰 Maintenance + +- Bump nitro version from 0.1.4 to 0.1.6 @hiento09 (#581) +- Add set yarn network timeout for uikit @hiento09 (#579) +- Fix error CI e2e run failed on windows @hiento09 (#578) +- Fix build plugins macos codesiging error @hiento09 (#576) +- Add install nitro mac intel inference plugin build locally @hiento09 (#542) +- Bump nitro version to 0.1.4 @hiento09 (#532) +- Chore/update yarn dev script @hiento09 (#529) +- Inference Plugin pull nitro binary from release @hiento09 (#524) +- Correct version and license @hiento09 (#498) + +## Contributor + +@0xSage, @Vikram-2004, @dan-jan, @hahuyhoang411, @hiento09, @imtuyethan, @jan-service-account, @louis-jan, @namchuai, @tikikun, @urmauur, Han, James, John and nam-john-ho + diff --git a/docs/docs/releases/changelog/changelog-v0.3.2.mdx b/docs/docs/releases/changelog/changelog-v0.3.2.mdx new file mode 100644 index 000000000..556085a6a --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.3.2.mdx @@ -0,0 +1,46 @@ +--- +sidebar_position: 12 +slug: /changelog/changelog-v0.3.2 +--- +# v0.3.2 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.3.2) + +Highlighted Issue: [Issue #612: fix: disabled required env](https://github.com/janhq/jan/pull/612) + +## Changes + +- fix: disabled required env @urmauur (#612) +- Install Posthog snippet @imtuyethan (#573) +- web: google tag manager @urmauur (#562) +- docs: fix syntax highlighting @0xSage (#602) +- chore: remove past event @0xSage (#600) +- docs: new docs @0xSage (#599) +- [chore]: Update docs @dan-jan (#597) + +## 🚀 Features + +- refactor: main electron with managers and handlers @louis-jan (#610) + +## 🐛 Bug Fixes + +- Fix: Failed to load model - unload model nitro @louis-jan (#616) +- Restore cpx nitro step in yarn script @hiento09 (#617) +- fix(#591): prevent duplicate message id issue @namchuai (#595) +- bug: cancelling a model download should be delete the model file on user data @urmauur (#613) +- bug: fix weird padding vertical snippet code @urmauur (#608) +- bug: Fix button download detect intel or apple silicon @urmauur (#609) +- bug: enable delete conversation after deleted model @urmauur (#594) +- bug: download modal should truncate model name @urmauur (#592) +- bug: support multiple line input chat using Textarea instead @urmauur (#593) + +## 🧰 Maintenance + +- refactor: main electron with managers and handlers @louis-jan (#610) +- Chore/refactor yarn script @hiento09 (#615) +- fix: line height and update typography component @urmauur (#611) + +## Contributor + +@0xSage, @dan-jan, @hiento09, @imtuyethan, @jan-service-account, @louis-jan, @namchuai and @urmauur + diff --git a/docs/docs/releases/changelog/changelog-v0.3.3.mdx b/docs/docs/releases/changelog/changelog-v0.3.3.mdx new file mode 100644 index 000000000..13fbeae01 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.3.3.mdx @@ -0,0 +1,101 @@ +--- +sidebar_position: 11 +slug: /changelog/changelog-v0.3.3 +--- +# v0.3.3 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.3.3) + +Highlighted Issue: [Issue #719: docs: cleanup](https://github.com/janhq/jan/pull/719) + +## Changes + +- docs: cleanup @0xSage (#719) +- docs: threads and messages @0xSage (#681) +- Updating Onboarding Kit @Diane0111 (#675) +- Update issue templates @0xSage (#685) +- docs: polish models spec @0xSage (#680) +- Feature: Preview URL for each PR and add pre-release.jan.ai as staging of Jan Docs @hiento09 (#669) +- Migrate Model definitions to Swagger/OpenAPI @dan-jan (#659) +- [docs] Add Introduction and refactor Models Spec @dan-jan (#657) +- docs: Add model methods to swagger @0xSage (#660) +- Models Spec: Delete broken Markdown links @dan-jan (#648) +- docs: assistants and threads specs @0xSage (#646) + +## 🚀 Features + +- improvement: styling message action toolbar @urmauur (#737) +- experimental: allow user to give instruction for the conversation @louis-jan (#714) +- docs/enable-seo-docusaurus @hieu-jan (#725) +- Add windows code sign to CI @hiento09 (#712) +- docs: update installation guide @hieu-jan (#664) +- chore: Update based on team discussion on Nov 20 @vuonghoainam (#673) +- docs: add OpenAI swagger file @hieu-jan (#623) +- Update landing page Jan @urmauur (#638) + +## 🐛 Bug Fixes + +- chore: open app data should lead user to jan root @louis-jan (#749) +- fix: cancel download does not work @louis-jan (#746) +- fix: error when switching between threads @louis-jan (#736) +- chore: app raises error when attempting to start a model that is already starting @louis-jan (#721) +- bug: fix filter list menu from command base on search type and make a symbol base on OS @urmauur (#723) +- bug: fix clickable small download button on chat screen @urmauur (#722) +- fix: incorrect update progress bar visibility check @louis-jan (#713) +- fix: app shows wrong performance tag, all say not enough ram on windows @louis-jan (#699) +- bug: fix padding quotations and numbering list @urmauur (#695) +- fix: local npm module update does not reflect web app @louis-jan (#677) +- [bug] fix markdown todo items shifted to the left and remove the dots @urmauur (#694) +- bug: fix footer and section spacing landing page @urmauur (#683) +- bug: fix anchor link sidebar openapi @urmauur (#668) +- refactor: remove unused hooks and resolve no-explicit-any @louis-jan (#647) +- bug: fix titles should have spaces in between @urmauur (#652) +- bug: fix compatibility content not fully display @urmauur (#653) + +## 🧰 Maintenance + +- chore: fix app grammar @0xSage (#750) +- chore: bumb nitro version @louis-jan (#740) +- chore: fs module should not cover app logic @louis-jan (#720) +- API Reference for Models, Messages, Threads @hahuyhoang411 (#679) +- docs: upgrade mdx-js package @hieu-jan (#705) +- [docs] Update Docusaurus to 3.0 and fix closing tag issue in Handbook @dan-jan (#704) +- Fix error docs pipeline run failed @hiento09 (#702) +- Revert docs CICD trigger on push to main instead of tag-based @hiento09 (#698) +- fix: local npm module update does not reflect web app @louis-jan (#677) +- Chore: refactor to makefile @hiento09 (#691) +- Add Instruction to publish docs @hiento09 (#687) +- chore/add-mermaid @hieu-jan (#672) +- chore/update package docs @hieu-jan (#670) +- Enhance Cross-Platform Argument Handling for Nitro Startup Scripts @hiento09 (#674) +- refactor: remove unused hooks and resolve no-explicit-any @louis-jan (#647) +- docs: add OpenAI swagger file @hieu-jan (#623) +- Preliminary Restructure of Docs @dan-jan (#655) +- Model specs @vuonghoainam (#641) +- refactor: refactor app entities @louis-jan (#626) +- refactor: move file to jan root @namchuai (#598) +- Add run-script-os @linhtran174 (#620) +- Refactor Jan Documentation @dan-jan (#625) + +## 📖 Documentaion + +- docs: update specs/product @0xSage (#744) +- docs/enable-seo-docusaurus @hieu-jan (#725) +- docs: assistant spec @vuonghoainam (#707) +- docs: Refactor Jan Site Structure @dan-jan (#706) +- docs/improve install docs @hieu-jan (#708) +- API Reference for Models, Messages, Threads @hahuyhoang411 (#679) +- [docs] Update Docusaurus to 3.0 and fix closing tag issue in Handbook @dan-jan (#704) +- docs: update installation guide @hieu-jan (#664) +- chore: Update based on team discussion on Nov 20 @vuonghoainam (#673) +- docs: add OpenAI swagger file @hieu-jan (#623) +- Preliminary Restructure of Docs @dan-jan (#655) +- Fix: specs revision @vuonghoainam (#649) +- Model specs @vuonghoainam (#641) +- Update README.md @imtuyethan (#629) +- Refactor Jan Documentation @dan-jan (#625) + +## Contributor + +@0xSage, @Diane0111, @dan-jan, @hahuyhoang411, @hiento09, @hieu-jan, @imtuyethan, @linhtran174, @louis-jan, @namchuai, @urmauur, @vuonghoainam and Le Tra Mi + diff --git a/docs/docs/releases/changelog/changelog-v0.4.0.mdx b/docs/docs/releases/changelog/changelog-v0.4.0.mdx new file mode 100644 index 000000000..e8838e191 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.0.mdx @@ -0,0 +1,75 @@ +--- +sidebar_position: 10 +slug: /changelog/changelog-v0.4.0 +--- +# v0.4.0 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.0) + +Highlighted Issue: [Issue #878: bug: fix tag description showing a title and fix card right panel](https://github.com/janhq/jan/pull/878) + +## Changes + +- bug: fix tag description showing a title and fix card right panel @urmauur (#878) +- fix/no-assistant-available-fresh-install @louis-jan (#876) +- Model.json update @hahuyhoang411 (#870) +- Hotfix desc for openhermes @hahuyhoang411 (#864) +- Openhermes update v1 @hahuyhoang411 (#863) +- update deepseek 1.3b @hahuyhoang411 (#858) +- Update tags @hahuyhoang411 (#857) +- Update model hub @hahuyhoang411 (#829) +- hotfix: fix typo @tikikun (#836) +- chore: pre-populate Jan's /models folder with model.jsons @hahuyhoang411 (#775) +- chore: clarification changes to the model settings and model parameters @tikikun (#742) + +## 🚀 Features + +- feat: revamp landing page @urmauur (#745) +- feat : add cover image model hub screen @urmauur (#872) +- feat: boilerplate for express server localhost 1337 @linhtran174 (#803) +- enhancement: revamp hub screen @urmauur (#825) +- feat: revamp thread screen @urmauur (#802) +- docs/update-api-reference @hieu-jan (#739) +- refactor: model plugin to follow new specs @namchuai (#682) + +## 🐛 Fixes + +- fix: Nitro interface update to prevent warning @vuonghoainam (#877) +- fix: delete message break the entire thread @louis-jan (#869) +- fix: can not download multiple models at once @louis-jan (#867) +- fix: production CI workflow does not populate models @louis-jan (#862) +- fix: update wrong main view state when use a model @namchuai (#861) +- fix: handle crash issue on hljs highlighting @louis-jan (#859) +- fix: empty assistant instruction by default @louis-jan (#855) +- bug: fix broken banner position hub screen @urmauur (#846) +- fix: not update active model when using resend button @namchuai (#834) +- Hotfix jan windows download nitro failed @hiento09 (#838) +- Switch to download nitro .tar.gz file instead of .zip file on windows @hiento09 (#832) +- fix/docusaurus-seo @hieu-jan (#818) +- fix: CI script - reorder copy models action @louis-jan (#819) +- fix: messages sync is not threadsafe @louis-jan (#784) +- Fix Makefile Indentation Issue @hiento09 (#788) + +## 🧰 Maintenance + +- chore: update model ranking @louis-jan (#874) +- Bump nitro version to 0.1.21 - nitro has windows codesign @hiento09 (#843) +- Hotfix jan windows download nitro failed @hiento09 (#838) +- 810 docs add modeljson and revamp models specs page @tikikun (#816) +- Add document for nightly build and update message for manual build @hiento09 (#831) +- chore: Bump nitro to 0.1.20 @vuonghoainam (#830) +- Refactor build:extension command @hiento09 (#822) +- feat: pre-populate Jan's /models folder @namchuai (#796) +- chore: fix pr auto labeling @0xSage (#812) +- chore: add gi automations @0xSage (#809) +- refactor: jan extensions @louis-jan (#799) +- Remove .zip in artifact name @hiento09 (#800) +- docs/update-api-reference @hieu-jan (#739) +- Add nightly build ci @hiento09 (#794) +- Fix Makefile Indentation Issue @hiento09 (#788) +- Switch from .zip to .tar.gz for nitro url inference plugin @hiento09 (#781) + +## Contributor + +@0xSage, @hahuyhoang411, @hiento09, @hieu-jan, @linhtran174, @louis-jan, @namchuai, @tikikun, @urmauur and @vuonghoainam + diff --git a/docs/docs/releases/changelog/changelog-v0.4.1.mdx b/docs/docs/releases/changelog/changelog-v0.4.1.mdx new file mode 100644 index 000000000..37d35a63d --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.1.mdx @@ -0,0 +1,62 @@ +--- +sidebar_position: 9 +slug: /changelog/changelog-v0.4.1 +--- +# v0.4.1 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.1) + +Highlighted Issue: [Issue #903: Update README.md](https://github.com/janhq/jan/pull/903) + +## Changes + +- Update README.md @imtuyethan (#903) + +## 🚀 Features + +- feat: Kill nitro process with API - nitro 0.1.27 @vuonghoainam (#975) +- feat: Inference Nitro with Prompt Template @hahuyhoang411 (#952) +- feat: Add NVIDIA triton trt-llm extension @vuonghoainam (#888) +- feat: Hotfit for Nitro loading on CPU with hyper-threading support @vuonghoainam (#931) +- feat: adding model params @namchuai (#886) +- feat: Multiple inference engines for nitro and openai @vuonghoainam (#814) +- docs: add json schema for engine and model parameters @tikikun (#840) +- feat: improve SEO keywords @hieu-jan (#894) +- enhancement: fix spacing landing page responsive @urmauur (#891) +- bug: added label coming soon for windows and linux @urmauur (#881) + +## 🐛 Fixes + +- fix: 963 can not run openai models on windows @louis-jan (#974) +- fix: Inference engine Nitro with Windows with/ without CUDA @vuonghoainam (#950) +- Fix error Jan app linux crash @hiento09 (#958) +- fix: windows bug - control buttons close,max,min hidden @linhtran174 (#949) +- bug: fix ui landing page @urmauur (#937) +- fix: model parameters for inference extensions @vuonghoainam (#935) +- [bug] Fix floating border outside card right panel @urmauur (#934) +- fix: import\_typescript.default.isTokenKind is not a function @louis-jan (#923) +- bug: fix syntax formatting @urmauur (#899) +- bug: update metadata title and desc @urmauur (#884) +- fix: download button text color is blending into the background @louis-jan (#883) + +## 🧰 Maintenance + +- chore: add desktop app analytics @louis-jan (#978) +- refactor: clean types and interfaces @0xSage (#966) +- docs: scaffold dev docs @0xSage (#856) +- chore: Bump nitro to 0.1.26 @vuonghoainam (#960) +- Update update-release-url.yml @hiento09 (#951) +- Fix update release url pipeline run failed @hiento09 (#947) +- chore: Bumpt nitro bin version to version 0.1.23 @vuonghoainam (#942) +- Fix update release url pipeline @hiento09 (#941) +- CI automatically update Update README with Nightly Build Information and stable download URL @hiento09 (#940) +- refactor: deprecate invokers - auto proxying apis - strict types @louis-jan (#924) +- docs: standardize yaml files @hieu-jan (#933) +- chore: universal module definition @louis-jan (#902) +- docs: add assistants api reference @hieu-jan (#801) +- docs: add json schema for engine and model parameters @tikikun (#840) + +## Contributor + +@0xSage, @hahuyhoang411, @hiento09, @hieu-jan, @imtuyethan, @jan-service-account, @linhtran174, @louis-jan, @namchuai, @tikikun, @urmauur and @vuonghoainam + diff --git a/docs/docs/releases/changelog/changelog-v0.4.2.mdx b/docs/docs/releases/changelog/changelog-v0.4.2.mdx new file mode 100644 index 000000000..c2a6f7c0f --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.2.mdx @@ -0,0 +1,50 @@ +--- +sidebar_position: 8 +slug: /changelog/changelog-v0.4.2 +--- +# v0.4.2 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.2) + +Highlighted Issue: [Issue #1033: Hotfix model hub](https://github.com/janhq/jan/pull/1033) + +## Changes + +- Hotfix model hub @hahuyhoang411 (#1033) +- Update Model.json @hahuyhoang411 (#1005) + +## 🚀 Features + +- feat: app theme depend on local storage instead native theme electron @urmauur (#1014) +- feat: move stop inference button into the send button @urmauur (#1011) +- feat: loader when starting model @urmauur (#945) +- fix: enable download app linux @urmauur (#993) +- fix: remove coming soon windows @urmauur (#986) + +## 🐛 Fixes + +- fix: migrate new models @louis-jan (#1034) +- fix: add input for api key remote model @urmauur (#1031) +- fix bug #1013, enable posthog for release app version only @hiento09 (#1019) +- fix: delete first message then regenerate again will break the thread @louis-jan (#1015) +- fix: #995 - Fix onboarding state and model sorting @louis-jan (#1009) +- fix: limit analytics events capture @louis-jan (#1012) +- fix: wrong selected model right panel @urmauur (#1001) +- fix: review finder and view as json @louis-jan (#1000) +- fix: enable download app linux @urmauur (#993) + +## 🧰 Maintenance + +- chore: remigrate if there is no models dir @louis-jan (#1038) +- bump nitro version to 0.1.30 @hiento09 (#1036) +- chore: in app copy fixes @0xSage (#1032) +- Separate posthog project for jan app and docs @hiento09 (#1029) +- Update posthog capture url list @hiento09 (#1022) +- docs: second half of "import model docs" PR @0xSage (#1021) +- docs: how to import models @0xSage (#1020) +- fix bug #1013, enable posthog for release app version only @hiento09 (#1019) + +## Contributor + +@0xSage, @hahuyhoang411, @hiento09, @jan-service-account, @louis-jan and @urmauur + diff --git a/docs/docs/releases/changelog/changelog-v0.4.3.mdx b/docs/docs/releases/changelog/changelog-v0.4.3.mdx new file mode 100644 index 000000000..7ba008286 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.3.mdx @@ -0,0 +1,69 @@ +--- +sidebar_position: 7 +slug: /changelog/changelog-v0.4.3 +--- +# v0.4.3 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.3) + +Highlighted Issue: [Issue #1159: Hotfix Prompt template for models on the Hub](https://github.com/janhq/jan/pull/1159) + +## Changes + +- Hotfix Prompt template for models on the Hub @hahuyhoang411 (#1159) +- Update model list for new release @hahuyhoang411 (#1143) +- fix(Thread): #1119 focus on the first thread to prevent blank chat screen @namchuai (#1127) +- fix(Thread): #1064 message being added to wrong thread if switching thread @namchuai (#1108) +- fix(Thread): #1042 allow create new thread by clicking Use in Jan Hub @namchuai (#1103) +- feat(ModelSetting): #1065 update state of model setting between threads @namchuai (#1090) +- Update model version @hahuyhoang411 (#1086) +- fix: cache hallucinations and failed to load model due to race condition @louis-jan (#1071) +- fix(thread): #1043 default model to prefer active model @namchuai (#1070) +- Update issue templates @0xSage (#1058) +- Update ctx\_len and max\_tokens @hahuyhoang411 (#1035) + +## 🚀 Features + +- feat: Add codeQL analysis for push main and pr main @hiro-v (#1128) +- Feature autoupdater for nightly build @hiento09 (#1068) +- feat: copy button for code block @urmauur (#1062) +- Enhancements to Dependency Installation and App Testing @hiento09 (#965) + +## 🐛 Fixes + +- fix: error road map url @hieu-jan (#1153) +- Fix token speed slow in machine has multi gpus @hiento09 (#1157) +- fix: added dialog confirmation clean thread @urmauur (#1142) +- fix: remove remote model from shortcut models dialog @urmauur (#1124) +- fix: ui issue - all models are activated @louis-jan (#1120) +- fix: should not hide empty message away @louis-jan (#1116) +- fix: added tooltip for user cannot change model after starting thread @urmauur (#1115) +- fix: remote model always active badges @urmauur (#1113) +- fix: handle chat completion state with enter button @louis-jan (#1114) +- fix: model active indicator only show when model activated @urmauur (#1110) +- fix: #1096 yield error message upon thread switching @louis-jan (#1109) +- fix: toaster success deleted thread showing id instead of active model @urmauur (#1111) +- fix: update copy setting page @urmauur (#1105) +- fix: search recommended model @urmauur (#1106) +- fix: #1097 streaming response is replaced by error message @louis-jan (#1099) +- Fix auto update windows Bug @hiento09 (#1102) +- fix: added dialog confirmation when delete thread @urmauur (#1093) +- fix: system monitor broken layout when responsive @urmauur (#1085) +- bug: chatbox doesn't resize back down @urmauur (#1084) +- fix: thread is broken after deleted first generated message @louis-jan (#1061) + +## 🧰 Maintenance + +- feat: Add codeQL analysis for push main and pr main @hiro-v (#1128) +- docs: refactor dev docs, guides and specs @0xSage (#1092) +- Correct jq command cause ci nightly build run failed @hiento09 (#1104) +- Fix nightly build autoupdater @hiento09 (#1073) +- Feature autoupdater for nightly build @hiento09 (#1068) +- docs: Update product.md @0xSage (#1066) +- Posthog disable click event and increase timeout for nitro load model… @hiento09 (#1060) +- docs: improve quickstart docs @0xSage (#1047) + +## Contributor + +@0xSage, @hahuyhoang411, @hiento09, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @namchuai and @urmauur + diff --git a/docs/docs/releases/changelog/changelog-v0.4.4.mdx b/docs/docs/releases/changelog/changelog-v0.4.4.mdx new file mode 100644 index 000000000..348a48e7e --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.4.mdx @@ -0,0 +1,198 @@ +--- +sidebar_position: 6 +slug: /changelog/changelog-v0.4.4 +--- +# v0.4.4 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.4) + +Highlighted Issue: [Issue #1587: Update 2023-11-05-hello-world.md](https://github.com/janhq/jan/pull/1587) + +## Changes + +- Update 2023-11-05-hello-world.md @Ssstars (#1587) +- fix(API): #1511 update swagger page @namchuai (#1572) +- fix(Thread): #1212 thread.json not created when user change thread settings @namchuai (#1570) +- fix(Thread): #1336 not allow creating too many unfinished thread @namchuai (#1538) +- Update 01-how-to-get-involved-and-FAQ.mdx @Ssstars (#1555) +- Update 01-how-to-get-involved-and-FAQ.mdx @Ssstars (#1553) +- Update 02-embracing-pod-structure.mdx @Ssstars (#1550) +- Update 01-how-we-hire.mdx @Ssstars (#1551) +- Update 01-how-we-hire.mdx @Ssstars (#1524) +- fix(InferenceExtension): #1067 sync the nitro process state @namchuai (#1493) +- fix(Messages): #1434 create message via api does not display on app correctly @namchuai (#1479) +- Docs for the Integration of Continue and Jan in VSCode @0xgokuz (#1467) +- Chore: Update model.json for UI @hahuyhoang411 (#1448) +- Docs for Installing Models from Hub @0xgokuz (#1450) +- Update about.md @Ssstars (#1436) +- feat(UI): #1404 make left side bar collapsible by hot key @namchuai (#1420) +- docs: Typo in 06-hardware.md @akaMrNagar (#1408) +- fix(API): #1409 fix wrong prefix for threads api @namchuai (#1410) +- Update model hub @hahuyhoang411 (#1383) +- fix(Model): remove unsupported default model setting params @namchuai (#1382) +- fix(trinity): update cover path for trinity v1.2 @hahuyhoang411 (#1380) +- Chore/update model hub @hahuyhoang411 (#1342) +- Update about.md @Ssstars (#1359) +- fix(JanHub): #1158 sort model list @namchuai (#1257) +- fix(Message): open link with external browser @namchuai (#1339) +- feat(Model): #1028 made model.json optional @namchuai (#1314) +- docs: Update onboarding.md @Diane0111 (#1293) +- fix: clean resource on exit @louis-jan (#1290) +- fix: posthog configuration @hieu-jan (#1283) +- docs: update README.md @eltociear (#1277) +- Enable scrolling in the message chat box @Gri-ffin (#1280) +- chore: Update README.md @sr-albert (#1263) +- Adding new model to the Hub @hahuyhoang411 (#1213) +- Feature GPU detection for Jan on Windows and Linux @hiento09 (#1242) +- fix(Thread): #1168 fix newly created thread cannot select model after restart @namchuai (#1176) + +## 🚀 Features + +- feat: add compatibility tag to model selection in right panel @urmauur (#1552) +- Feature integrate antivirus scanner to ci @hiento09 (#1529) +- feat: [hub] update compatibility tags colors @urmauur (#1516) +- feat: hub recommendation labels @urmauur (#1440) +- Feature linux support app image format @hiento09 (#1442) +- fix: render external links @urmauur (#1441) +- fix: add icon collapsible left panel and update keyboard shortcut page @urmauur (#1439) +- feat(UI): update UI footer @urmauur (#1424) +- Fix Bug for Chat Reply Goes off Screen @mishrababhishek (#1393) +- feat: move social media from left panel into footer @urmauur (#1325) +- feat: implementation new UI thread settings @urmauur (#1301) +- Bring social media links @Gri-ffin (#1295) +- feat: added keyboard shortcut list in setting page @urmauur (#1275) +- feat: add swagger /docs to localhost:1337 @louis-jan (#1268) +- feat: update posthog configuration @hieu-jan (#1258) +- feat: Deprecate model.json ready state in favor of .download ext @louis-jan (#1238) +- feat: add engine settings @namchuai (#1199) +- feat: users should be able to switch models mid-thread @louis-jan (#1226) +- feat: temporary link how to import model @urmauur (#1209) + +## 🐛 Fixes + +- fix: #1594 - Model settings - change thread model - go back does not see according settings @louis-jan (#1595) +- fix: #1548 - duplicate command shortcut instruction @louis-jan (#1600) +- fix: switch model caused app crash @louis-jan (#1597) +- fix: #1559 Inference Parameters displayed on new thread with Openai GPT Model @louis-jan (#1588) +- fix: enable user set value manually model setting from input @urmauur (#1585) +- fix: #1569 - Does not apply thread settings when loading model @louis-jan (#1576) +- fix: could not change model params settings @louis-jan (#1547) +- fix: gpu check module export does not work in extension @louis-jan (#1536) +- fix: adjust calculation hub labels using total RAM instead remaining RAM @urmauur (#1522) +- Feature integrate antivirus scanner to ci @hiento09 (#1529) +- fix: allow users to set max tokens variably @urmauur (#1513) +- fix: stop word update @louis-jan (#1457) +- Revert nitro to 0.2.6 @hiento09 (#1491) +- fix: enable text selection codeblock @urmauur (#1466) +- fix: suppress all main node JS error message dialog @louis-jan (#1460) +- Correct AppImage path @hiento09 (#1446) +- fix: render external links @urmauur (#1441) +- fix: add icon collapsible left panel and update keyboard shortcut page @urmauur (#1439) +- fix: GET /models does not work due to new default model dir @louis-jan (#1392) +- fix: model migration stopped working @louis-jan (#1378) +- fix: wrong condition for displaying error message @louis-jan (#1376) +- fix: show hide section engine params @urmauur (#1374) +- fix: copy stream tooltip and hide section when no params setting @urmauur (#1373) +- bugs: fix stop streaming when user delete or clean thread @urmauur (#1347) +- fix: show a proper error message on download failure @louis-jan (#1345) +- Add detect cuda version jan app @hiento09 (#1351) +- fix: Error occurred: Unexpected token "d", "data: ..." is not a valid JSON @louis-jan (#1332) +- fix: app getting stuck at downloading 99% while downloading model @louis-jan (#1320) +- correct type utf-8 @hiento09 (#1311) +- Fix memory on mac included cached and swap @hiento09 (#1298) +- fix: should check app dir before spawning log @louis-jan (#1297) +- fix: disable process logging from server @louis-jan (#1296) +- fix: user should be able to access Swagger docs from localhost:1337 @louis-jan (#1292) +- Switch from Gigabyte to Gibibyte - System monitor @hiento09 (#1286) +- Switch from systeminformation to os-utils to resolve Bitdefender false positive and memory leak issue @hiento09 (#1282) +- fix: swagger CSP issue @louis-jan (#1284) +- fix: support markdown break line @urmauur (#1274) +- fix ci test run failed @hiento09 (#1267) +- Fix wrong linux nitro path @hiento09 (#1266) +- fix: enable command enter on dialog confirmation clean thread @urmauur (#1261) +- fix: input message duplicated due with some input sources @louis-jan (#1259) +- fix: mac users should not see GPU settings @louis-jan (#1255) +- fix: remove redundant gpu detection prompt event @louis-jan (#1254) +- fix: engine settings GUI - feature toggle @louis-jan (#1252) +- Fix bug #1178 high ram on windows @hiento09 (#1241) +- fix: #1183 Reveal in finder does not work on windows @namchuai (#1239) +- fix: remove delay tooltip and click event @urmauur (#1217) +- fix: enable enter command on dialog confirmation delete thread @urmauur (#1218) +- fix: Cleared thread last message is not updated @louis-jan (#1225) +- Fix switch thread crash nitro windows linux @hiento09 (#1214) +- fix: darkmode broken color @urmauur (#1186) + +## 🧰 Maintenance + +- chore: typo model.json @louis-jan (#1599) +- docs: add 04-how-to-get-error-logs.mdx @hieu-jan (#1580) +- chore: teach how to attach logs @0xSage (#1578) +- chore: issues should auto close with PRs through template @0xSage (#1577) +- chore: Update issue templates @0xSage (#1568) +- docs: fix x handles @0xSage (#1532) +- Docs to integrate OpenRouter with Jan without UI/UX @0xgokuz (#1495) +- chore: fix darkmode docs @hieu-jan (#1520) +- docs: fix algolia configuration @hieu-jan (#1518) +- docs: fix algolia configuration @hieu-jan (#1517) +- Revert URL release in readme to version 0.4.3 @hiento09 (#1502) +- refactor: add app and nitro log - resolve dependencies issue @louis-jan (#1447) +- chore: enable agolia @hieu-jan (#1497) +- docs: update troubleshooting and redirects old pages @hieu-jan (#1492) +- docs: minor fix @hieu-jan (#1478) +- docs: initial handbook structure @hieu-jan (#1477) +- Bump nitro to 0.2.8 and change Jan App to support cuda >= 11.7 @hiento09 (#1476) +- Chore update docs jan - add AppImage instruction to docusaurus @hiento09 (#1480) +- Bump nitro to 0.2.7 @hiento09 (#1474) +- chore: error message update @louis-jan (#1473) +- docs: Update 02-import-manually.mdx @0xSage (#1469) +- docs: Update about.md @0xSage (#1465) +- Bump nitro version to 0.2.6 @hiento09 (#1458) +- docs: adding customize engine settings @hieu-jan (#1455) +- docs: add-missing-path @hieu-jan (#1454) +- docs: resize gif @hieu-jan (#1453) +- docs: revenue philosophy @0xSage (#1443) +- docs: jan framework principles @0xSage (#1438) +- docs: fix typo in docs @hieu-jan (#1419) +- chore: clean up use os hook @namchuai (#1418) +- docs: explain each docs page intent @0xSage (#1417) +- docs: Update 01-server.md @0xSage (#1416) +- Update warning url from github md file to jan.ai docs site @hiento09 (#1414) +- docs: improve gpu not used guide @hieu-jan (#1405) +- chore: update README.md @eltociear (#1406) +- Update USAGE docs for linux @hiento09 (#1401) +- docs: gpu not detected @0xSage (#1399) +- docs: Troubleshoot Failed To Fetch @gabrielle-ong (#1398) +- docs: improve docs syntax @hieu-jan (#1394) +- docs: add-install-nightly-guide @hieu-jan (#1390) +- docs: correct href link @hieu-jan (#1338) +- docs: fix chat payload and cURL @hieu-jan (#1360) +- docs: add Chatting Guide @hieu-jan (#1184) +- Chore add docs usage how to switch run mode jan app @hiento09 (#1353) +- docs: configure index page @hieu-jan (#1330) +- docs: Update product.md @0xSage (#1326) +- docs: Update 01-server.md @0xSage (#1327) +- refactor: deprecate the appVersion IPC and use the predefined VERSION @louis-jan (#1309) +- docs: update using models documentation @hieu-jan (#1288) +- docs: update pm handbook @0xSage (#1307) +- docs: contributor docs overview @0xSage (#1305) +- chore: github PR template @0xSage (#1304) +- Fix memory on mac included cached and swap @hiento09 (#1298) +- Enrich discord message for nightly build url @hiento09 (#1294) +- Refactor CI by create shared jobs output @hiento09 (#1287) +- docs: update README.md @hieu-jan (#1281) +- docs: Update README.md @0xSage (#1248) +- feat: Jan Server, API and decoupled clients @louis-jan (#948) +- docs: improve 02-import-manually @hieu-jan (#1222) +- chore: Update issue templates @0xSage (#1229) +- docs: Update 02-import-manually.mdx @0xSage (#1197) +- add sleep 500ms if platform is windows before starting nitro process @hiento09 (#1215) +- docs: improve troubleshoot documentation @hieu-jan (#1173) +- docs: update bug report template @hieu-jan (#1180) +- docs: add troubleshooting @hieu-jan (#1169) +- chore: copy fixes @0xSage (#1167) +- docs: Update 01-start-thread.md @0xSage (#1122) + +## Contributor + +@0xSage, @0xgokuz, @Diane0111, @Gri-ffin, @Ssstars, @akaMrNagar, @eltociear, @gabrielle-ong, @hahuyhoang411, @hiento09, @hieu-jan, @jan-service-account, @louis-jan, @mishrababhishek, @namchuai, @sr-albert, @urmauur and Abhishek Mishra + diff --git a/docs/docs/releases/changelog/changelog-v0.4.5.mdx b/docs/docs/releases/changelog/changelog-v0.4.5.mdx new file mode 100644 index 000000000..0a94313a5 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.5.mdx @@ -0,0 +1,103 @@ +--- +sidebar_position: 5 +slug: /changelog/changelog-v0.4.5 +--- +# v0.4.5 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.5) + +Highlighted Issue: [Issue #1758: bug: Correct text for Windows](https://github.com/janhq/jan/issues/1758) + +## Changes + +- fix(Wording): #1758 correct text for windows @namchuai (#1768) +- fix(Log): server log is not display in windows @namchuai (#1764) +- Release Cut v0.4.5 @louis-jan (#1752) +- chore(nitro): 0.2.11 -> 0.2.12 @hiro-v (#1754) +- fix: Nitro CPU threads with correct physical/ performance CPU count @hiro-v (#1726) +- fix(Model): #1662 imported model does not use gpu @namchuai (#1723) +- fix(API): #1720 host/port provided in the local API server does not fully applied @namchuai (#1721) +- fix: server API reference @hiro-v (#1670) +- fix(Model): refactor model label @namchuai (#1596) +- docs/postmortem v 0.4.4 @hieu-jan (#1617) +- chore(ShortcutModal): clean up shortcut modal @namchuai (#1614) +- chore(Dependencies): upgrade node-fetch to fix vulnerable issue @namchuai (#1598) + +## 🚀 Features + +- feat: update UI allow user change folder @urmauur (#1738) +- feat: error message when not enough RAM @urmauur (#1706) +- feat: improvement ux for local api server @urmauur (#1704) +- feat: allow user to move jan folder @namchuai (#1649) +- feat: HTTP proxy support @markmehere (#1562) +- Feature add schedule clean cloudflare page and r2 @hiento09 (#1653) +- feat: relayout left panel setting page @urmauur (#1648) +- Update CI follow git flow @hiento09 (#1625) +- feat: Implement UI page API server dashboard @urmauur (#1636) +- fix: #1545 long thread title @lucido-simon (#1605) + +## 🐛 Fixes + +- fix: model selection does not show in API settings page @louis-jan (#1828) +- fix: user can't view model setting in local api server @namchuai (#1807) +- fix: cannot change jan data folder @namchuai (#1805) +- fix: model selection does not show in API settings page @louis-jan (#1802) +- fix: user can't use a model in model hub @namchuai (#1801) +- fix: stop openai inference raises something amiss @louis-jan (#1799) +- regression fix: input disabled darkmode @urmauur (#1800) +- fix: clean last message when user clean thread message @namchuai (#1793) +- fix: app log not being printed @namchuai (#1790) +- fix: api settings are not applied on changes @louis-jan (#1789) +- fix: could not delete model @louis-jan (#1779) +- fix: can not start model when server is not enabled from model settings page @louis-jan (#1774) +- regression fix: input port not accept alphabets @urmauur (#1772) +- Correct bash script syntax in ci @hiento09 (#1769) +- Hotfix CI pre-release not trigger @hiento09 (#1757) +- fix: bring back open app directory @louis-jan (#1756) +- fix: input port have range validation @urmauur (#1741) +- Fix error nightly build schedule run failed @hiento09 (#1736) +- fix: active model when start server @urmauur (#1719) +- fix: Change to fixed `localhost` instead of using host variable @hiro-v (#1729) +- Fix autoupdater nightly build error @hiento09 (#1727) +- Correct download url readme @hiento09 (#1724) +- fix: API chat/completion is blocked by CORS @louis-jan (#1705) +- fix: Jan server - v1/chat/completions is throwing ERR\_REQUIRE\_ESM @louis-jan (#1703) +- fix: Jan server is showing blank page @louis-jan (#1702) +- fix: switching loader from remote to local model from thread right panel @urmauur (#1692) +- fix: hot-fix algolia search @hieu-jan (#1700) +- fix: disable api key field while server is running @urmauur (#1694) +- fix: stoping model show starting model @urmauur (#1693) +- fix bug #1650 hogging resources @hiento09 (#1663) +- fix: auto select text when collapse panel @urmauur (#1645) +- fix: wrong selected model ref @louis-jan (#1638) +- fix: enable check for update on all supported platforms @louis-jan (#1626) +- fix: correct footer @hieu-jan (#1628) + +## 🧰 Maintenance + +- Docs publish to github page trigger on push to docs branch @hiento09 (#1783) +- Correct bash script syntax in ci @hiento09 (#1769) +- Combine 2 ci pipeline pre-release and nightly into one @hiento09 (#1767) +- Hotfix CI pre-release not trigger @hiento09 (#1757) +- Fix error nightly build schedule run failed @hiento09 (#1736) +- docs: add troubleshoot unexpected token @hieu-jan (#1711) +- docs: fix about pages @0xSage (#1699) +- refactor: deprecate extension type implementation @louis-jan (#1677) +- refactor: file prefix replace utils \& add unit test @louis-jan (#1676) +- Correct ref branch for update url on README.md file @hiento09 (#1672) +- docs: update 02-somethings-amiss @hieu-jan (#1668) +- Cherrypick cicd to main branch to apply new gitflow @hiento09 (#1665) +- docs: add user and developer guides for extensions @hieu-jan (#1657) +- docs: add QA Script @hieu-jan (#1660) +- chore: Bump nitro to 0.2.11 @hiro-v (#1655) +- chore: Bump version nitro to 0.2.10 @hiro-v (#1644) +- docs: add antivirus compatibility testing @hieu-jan (#1641) +- refactor: introduce node module in nitro extension @louis-jan (#1630) +- Update 02-somethings-amiss.mdx @Ssstars (#1634) +- docs: add integration AzureOpenAI @hieu-jan (#1632) +- docs: add troubleshooting permission denied @hieu-jan (#1631) + +## Contributor + +@0xSage, @Ssstars, @hiento09, @hientominh, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @lucido-simon, @markmehere, @namchuai and @urmauur + diff --git a/docs/docs/releases/changelog/changelog-v0.4.6.mdx b/docs/docs/releases/changelog/changelog-v0.4.6.mdx new file mode 100644 index 000000000..aece33420 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.6.mdx @@ -0,0 +1,64 @@ +--- +sidebar_position: 4 +slug: /changelog/changelog-v0.4.6 +--- +# v0.4.6 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.6) + +Highlighted Issue: [Issue #1918: Regression fix assistant extension codesign](https://github.com/janhq/jan/pull/1918) + +## Changes + +- Regression fix assitant extension codesign @hiento09 (#1918) +- Release cut 0.4.6 @louis-jan (#1888) +- feat: add factory reset feature @namchuai (#1750) +- chore: add react developer tools to electron @Helloyunho (#1858) +- Sync Release 0.4.5 to dev @louis-jan (#1830) + +## 🚀 Features + +- feat: integrate umami @hieu-jan (#1809) +- feat: Add default value for ngl @hiro-v (#1886) +- feat: add start/stop model via http api @namchuai (#1862) +- feat: add snackbar component and update style side banner @urmauur (#1874) +- feat: move open app directory into icon folder @urmauur (#1879) +- chore: Bump nitro to 0.3.3 @hiro-v (#1877) +- feat: put timestamp under thread name in left panel @urmauur (#1820) +- perf: remove unnecessary rerender when user typing input @namchuai (#1818) + +## 🐛 Fixes + +- fix: umami analytics send app loaded event @louis-jan (#1928) +- fix: migration loading indicator @louis-jan (#1913) +- fix: broken manual import model with NA fields @louis-jan (#1912) +- fix: openAIEmbedding now requires top level API Key configuration @louis-jan (#1902) +- fix: load model fail overlays thread message error @louis-jan (#1901) +- fix: show generate response on message send @louis-jan (#1895) +- fix: display error message on model load fail @louis-jan (#1894) +- fix: the selected model auto revert back to previous used model with setting mismatch @louis-jan (#1883) +- fix: add dialog confirm when move folder and next dest isn't empty @urmauur (#1880) +- Increase timeout for explore.e2e.spec test @hiento09 (#1844) +- chore: Bump nitro to 0.3.3 @hiro-v (#1877) +- fix: auto collapse retrieval setting while update config @urmauur (#1866) +- fix: loader show while error global when change folder @urmauur (#1870) +- fix: retrieval always ask for api key @louis-jan (#1856) +- fix: all input text box are disabled @namchuai (#1855) +- fix: add loader when user change folder @urmauur (#1850) +- Add code sign step for darwin assistant extension @hiento09 (#1841) +- fix: preserve focused thread when navigating in jan app @namchuai (#1814) +- fix: highlight menu dropdown server options @urmauur (#1831) + +## 🧰 Maintenance + +- chore: mark RAG as experimental feature @louis-jan (#1882) +- Increase timeout for explore.e2e.spec test @hiento09 (#1844) +- chore: Bump nitro to 0.3.3 @hiro-v (#1877) +- chore: Jan Data Folder setting is no longer an experimental feature @louis-jan (#1847) +- chore: resolve main conflict @louis-jan (#1833) +- Update release url on README to default branch instead of main branch @hiento09 (#1832) + +## Contributor + +@Helloyunho, @hiento09, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @namchuai, @urmauur and James + diff --git a/docs/docs/releases/changelog/changelog-v0.4.7.mdx b/docs/docs/releases/changelog/changelog-v0.4.7.mdx new file mode 100644 index 000000000..06db9832d --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.7.mdx @@ -0,0 +1,118 @@ +--- +sidebar_position: 3 +slug: /changelog/changelog-v0.4.7 +--- +# v0.4.7 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.7) + +Highlighted Issue: [Issue #2121: Release cut v0.4.7](https://github.com/janhq/jan/pull/2121) + +## Changes + +- Release cut v0.4.7 @louis-jan (#2121) +- chore: update models @hahuyhoang411 (#1829) +- add docs for entire advanced settings @hieu-jan (#2063) +- docs: Fix #2040 : added /v1 path to apiBase @ldebs (#2041) +- fix: ui for disabled state of gpu acceleration @namchuai (#2034) +- feat: Initialize POM structure with fixtures on Playwright @Van-QA (#2015) +- Alternative solution for `Thread titles should auto-summarize Topic` @0xgokuz (#1976) +- Update authors.yml Rex @hahuyhoang411 (#1956) +- Update authors.yml Louis @louis-jan (#1955) +- Change env Dockerfile.gpu and update README @hiento09 (#1963) +- chore: Update authors.yml for Van Pham @Van-QA (#1954) +- Sync dev branch to docs branch @hieu-jan (#1948) +- sync current docs branch to dev branch @hieu-jan (#1947) +- feat: Playwright capture screenshot of Electron desktop app (Jan) on failures @Van-QA (#1934) +- Sync main to dev after release 0.4.6 @hiento09 (#1929) + +## 🚀 Features + +- feat: Add nitro vulkan to support AMD GPU/ APU and Intel Arc GPU @hiro-v (#2056) +- fix: flow edit message @urmauur (#2113) +- Feature helmchart and ci jan server @hiento09 (#2106) +- feat: improvementUI GPU acceleration @urmauur (#1990) +- feat: add edit messages users @urmauur (#1974) +- feat: revamp ui dropdown list model option @urmauur (#1977) +- feat: add modal troubleshooting guideline @urmauur (#1968) +- feat: integrate umami script locally @hieu-jan (#1958) +- feat: User Selectable GPUs and GPU-based Model Recommendations @hiento09 (#1730) + +## 🐛 Fixes + +- fix: correct vulkan settings @louis-jan (#2128) +- fix: chore UI @louis-jan (#2125) +- Regression: bump nitro to 0.3.13 @hiento09 (#2124) +- Regression: Linux vulkan binary path @hiento09 (#2123) +- fix: revert back menu actions @louis-jan (#2120) +- fix: mismatching between nightly build and version - jan about @louis-jan (#2114) +- fix: flow edit message @urmauur (#2113) +- fix: tools section should be expanded by default @louis-jan (#2110) +- fix: failed to bind port - nitro error message copy @louis-jan (#2101) +- fix: remove caret down icon when tab selected into remote model @urmauur (#2102) +- fix: openai client sdk compatible @louis-jan (#2096) +- Fix bug #2005 docker blank website @hiento09 (#2093) +- fix: check if port is occupied before start local server @namchuai (#2098) +- fix: broken model.json update @louis-jan (#2099) +- fix: make text input scrollable @urmauur (#2083) +- fix: failed to send message blocks thread creation @louis-jan (#2091) +- fix: server crashes on missing module @louis-jan (#2089) +- fix: expand assistant and model settings by default @louis-jan (#2081) +- fix: move jan data folder - error handling for no write permission granted @louis-jan (#2077) +- fix: check for updates should show no update are available on the latest build @louis-jan (#2075) +- fix: infinity showed when haven't get total size @namchuai (#2066) +- fix: should stop running the model when GPU settings are changed @louis-jan (#2067) +- fix: settings page state loop and dark theme @louis-jan (#2065) +- fix: Fix Nitro windows with error 3221225781 @hiro-v (#2057) +- fix: message should only be interrupted when i start another thread @louis-jan (#2053) +- fix: local server start error should not change to started state @louis-jan (#2052) +- fix: update copy of message queue @louis-jan (#2051) +- fix: download mutilple binaries @namchuai (#2043) +- fix: disable gpu drop down box if there's no GPU ready @namchuai (#2046) +- fix: app should generate thread title with length restriction @louis-jan (#2037) +- fix: factory reset not remove jan data folder @namchuai (#2027) +- fix: content setting right panel default to collapse @urmauur (#2026) +- fix: local server blank parameters if there is no thread selected @louis-jan (#2028) +- fix: model path backward compatible @louis-jan (#2018) +- fix: resolve state update loop infinitive rerendering @louis-jan (#2017) +- fix: lack of auto-cleaning mechanism for logs @louis-jan (#2003) +- fix: app stuck regenerating assistant response @louis-jan (#2001) +- fix: decouple thread summary update @louis-jan (#1994) +- fix: app fails gracefully with clear error messages @louis-jan (#1993) +- fix: retrieval stuck at generating response @louis-jan (#1988) +- Fix macos auto update failed on nightly build @hiento09 (#1991) +- fix: model downloads broken on nightly @louis-jan (#1984) +- fix: RAG enhancements @urmauur (#1965) +- Update docs run Jan Server in Docker mode @hiento09 (#1960) +- fix: update conditional check last status message @urmauur (#1951) +- fix: markdown render for chat completion role user @urmauur (#1944) +- fix: avoid users to create so many threads at the same time @urmauur (#1930) +- fix: download model will close panel item hub @urmauur (#1923) + +## 🧰 Maintenance + +- docs: improve integrations guide \& import model using absolute path @hieu-jan (#2076) +- chore: add app version into log @namchuai (#2116) +- docs: add integration docs Mistral AI API @hieu-jan (#2070) +- docs:add-advanced-settings-https-proxy @hieu-jan (#2054) +- chore: refactor watch system resource hook @louis-jan (#2048) +- docs: Updates Guide Using the Local Server @SamPatt (#1924) +- server install core using link instead of file @hiento09 (#2025) +- chore: prettier fix @louis-jan (#2019) +- chore: bump nitro 0.3.9 @louis-jan (#2016) +- refactor: reduce IPC \& API handlers - shared node logics @louis-jan (#2011) +- docs: update 03-gpu-not-used with RTX issues @hieu-jan (#1992) +- docs: add Jan installation using Docker @hieu-jan (#1981) +- chore: reduce bundle size @louis-jan (#1970) +- docs: add author.yml @hieu-jan (#1973) +- Update authors.yml hien @hiento09 (#1953) +- chore: server download progress + S3 @louis-jan (#1925) +- chore: add author james @namchuai (#1952) +- chore: Add author - Ashley @imtuyethan (#1950) +- chore: Add Author - Hiro @hiro-v (#1949) +- docs: adding new feature for v0.4.6 to release checklist @Van-QA (#1927) + +## Contributor + +@0xSage, @0xgokuz, @SamPatt, @Van-QA, @hahuyhoang411, @hiento09, @hieu-jan, @hiro-v, @imtuyethan, @jan-service-account, @ldebs, @louis-jan, @namchuai, @urmauur and James + diff --git a/docs/docs/releases/changelog/changelog-v0.4.8.mdx b/docs/docs/releases/changelog/changelog-v0.4.8.mdx new file mode 100644 index 000000000..6aecf4293 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.8.mdx @@ -0,0 +1,98 @@ +--- +sidebar_position: 2 +slug: /changelog/changelog-v0.4.8 +--- +# v0.4.8 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.8) + +Highlighted Issue: [Issue #2267: Release cut v0.4.8](https://github.com/janhq/jan/pull/2267) + +## Changes + +- Release cut v0.4.8 @louis-jan (#2267) +- Add modify notary team in CI @hiento09 (#2265) +- Chore: Update new models to model hub @hahuyhoang411 (#2192) +- Macos Notarize migrage to new Team ID @hiento09 (#2228) +- docs: update API Reference assistants\_id endpoint from DevDocs @avb-is-me (#2195) +- docs: update API Reference assistants endpoint from DevDocs @avb-is-me (#2194) +- docs: update API Reference threads endpoint from DevDocs @avb-is-me (#2182) +- fix: wrong profile parameter in docker command @mooncool (#2159) +- Sync release 0.4.7 to dev @louis-jan (#2151) +- docs: add upstream acknowledgements @hieu-jan (#2136) +- Sync dev branch to docs branch @hieu-jan (#2131) + +## 🚀 Features + +- feat: prompt user to download an update manually @louis-jan (#2261) +- feat: Jan can see @hiro-v (#2069) +- Revert feat: temporary remove dark mode @urmauur (#2221) +- feat: add turborepo @louis-jan (#2220) +- fix: change button import model on hub page @urmauur (#2178) +- feat: temporary remove dark mode :( @urmauur (#2168) +- feat: add import model feature @namchuai (#2104) +- feat: restore docusaurus style @urmauur (#2152) +- feat: add a simple way to convert Hugging Face model to GGUF @Helloyunho (#1972) + +## 🐛 Fixes + +- codesign script force sign @hiento09 (#2291) +- fix: should not attach error messages to the completion request @louis-jan (#2258) +- fix: image upload button and drag event are not enabled @louis-jan (#2248) +- fix: error message being sent along with conversation when inference @namchuai (#2242) +- fix: replaced user path from app log @namchuai (#2238) +- fix: drag and drop support image format to support vision model @urmauur (#2237) +- fix: re-configure changelog sections @hieu-jan (#2230) +- fix: import from HuggingFace with random string is causing app crash @louis-jan (#2214) +- fix: comment from QA regarding import model @namchuai (#2213) +- fix: download model error does not reset state in model hub @namchuai (#2199) +- fix: minor ui missing secondary background @urmauur (#2198) +- docs: update docker command @hieu-jan (#2180) +- fix: some bugs for import model @namchuai (#2181) +- fix: change button import model on hub page @urmauur (#2178) +- fix space between progress bar and title list of gpu @urmauur (#2177) +- fix: disabled prompt user using dangerouslySetInnerHTML @urmauur (#2176) +- fix: style list of gpus on system monitor @urmauur (#2172) +- fix: system monitor expand overlap tooltip ribbon @urmauur (#2158) +- Huggingface extension add codesign step for building on darwin @hiento09 (#2166) +- Add run codesign for huggingface extension @hiento09 (#2163) +- fix: system monitor ui @urmauur (#2135) + +## 🧰 Maintenance + +- chore: temporary remove convert model @namchuai (#2266) +- docs: sync slug fix from dev branch to docs branch @hieu-jan (#2264) +- docs: Update broken link and fix the slug @aindrajaya (#2260) +- docs: Fix navbar issues. Keep stay when clicked other menu items from the sidebar @aindrajaya (#2253) +- docs: sync docs hub fixes from dev to docs branch @hieu-jan (#2247) +- docs: Update content for Hub page and Guides section @aindrajaya (#2245) +- docs: Fix Dark Mode on the Hub page and Update the Navbar functionality @aindrajaya (#2243) +- chore: sync dev branch to docs branch @hieu-jan (#2239) +- Chore: add prefix latest for task clean r2 bucket @hiento09 (#2233) +- fix: re-configure changelog sections @hieu-jan (#2230) +- docs: add command run API server without frontend @hieu-jan (#2231) +- docs: revamp entire Jan guides @hieu-jan (#2139) +- chore: clean up some redundant code @namchuai (#2215) +- docs: update API Reference chatCompletions from DevDocs @avb-is-me (#2171) +- docs: update API Reference download model from DevDocs @avb-is-me (#2170) +- docs: update API Reference model\_id from DevDocs @avb-is-me (#2169) +- docs: update API Reference listModel from DevDocs @avb-is-me (#2161) +- docs: Update 08-antivirus-compatibility-testing.md @0xSage (#2186) +- docs: adding new feature for v0.4.7 to release checklist @Van-QA (#2189) +- docs: Update 01-integrate-continue.mdx @0xSage (#2187) +- chore: bump nitro 0.3.14 @louis-jan (#2183) +- docs: Sync dev branch to docs branch @hieu-jan (#2185) +- docs: update docker command @hieu-jan (#2180) +- docs: update wall of love @hieu-jan (#2179) +- docs: add Jan newsletter @hieu-jan (#2174) +- chore: make convert gguf as experimental feature @namchuai (#2156) +- docs: update acknowledgements @hieu-jan (#2147) +- feat: restore docusaurus style @urmauur (#2152) +- docs: update run Jan in Docker mode @hieu-jan (#2150) +- Docs pena team - Add Quickstart Docs @aindrajaya (#2138) +- docs: hide incomplete pages @hieu-jan (#2127) + +## Contributor + +@0xSage, @Helloyunho, @Van-QA, @aindrajaya, @avb-is-me, @hahuyhoang411, @hiento09, @hieu-jan, @hiro-v, @jan-service-account, @louis-jan, @mooncool, @namchuai and @urmauur + diff --git a/docs/docs/releases/changelog/changelog-v0.4.9.mdx b/docs/docs/releases/changelog/changelog-v0.4.9.mdx new file mode 100644 index 000000000..62211eac6 --- /dev/null +++ b/docs/docs/releases/changelog/changelog-v0.4.9.mdx @@ -0,0 +1,72 @@ +--- +sidebar_position: 1 +slug: /changelog/changelog-v0.4.9 +--- +# v0.4.9 + +For more details, [GitHub Issues](https://github.com/janhq/jan/releases/tag/v0.4.9) + +Highlighted Issue: [Issue #2421: Release/v0.4.9](https://github.com/janhq/jan/pull/2421) + +## Changes + +- Release/v0.4.9 @namchuai (#2421) +- Release cut 0.4.9 @louis-jan (#2398) +- Update models.json @louis-jan (#2382) +- docs: add about/faq @eckartal (#2329) +- Update docs 14th mar @dan-jan (#2362) +- feat: Nitro-Tensorrt-LLM Extension @louis-jan (#2280) +- Sync release 0.4.8 to dev @louis-jan (#2297) + +## 🚀 Features + +- feat: quick ask support dark mode @urmauur (#2316) + +## 🐛 Fixes + +- fix: move tensorrt executable to engine @namchuai (#2400) +- fix: unable to start web with quick ask @namchuai (#2402) +- fix: fail-fast would cancel matrix jobs as soon as one job fails @louis-jan (#2401) +- fix: clean working dir with long space support on Windows @louis-jan (#2399) +- fix: line height typography blog and docs @urmauur (#2390) +- fix: some regressions for tensorrt nightly build @namchuai (#2380) +- fix: use model from model hub not load correct model in thread screen @namchuai (#2368) +- fix: wrong engine handling @louis-jan (#2363) +- fix: incompatible GPU error message @louis-jan (#2357) +- fix: app does not recognize GPU first launch @louis-jan (#2350) +- fix: disable rag \& stream settings from tensorrt llm model.json @louis-jan (#2351) +- fix: badge or progress tensorRtExtensionItem @urmauur (#2349) +- fix: ts error when declar var in case @namchuai (#2348) +- fix: some costmetic issues: badges corner, recommended for tensorrt models @namchuai (#2346) +- Add icon file contain image size in file name to fix linux icon @hiento09 (#2344) +- fix: put quick ask feature toggle under experimental feature @louis-jan (#2338) +- fix: do not migrate extensions from quick ask window @louis-jan (#2336) +- fix: existing changelog @hieu-jan (#2330) +- fix: gate quick ask with feature toggle @louis-jan (#2331) +- fix: quick app windows, tray and dock behaviors @louis-jan (#2327) +- fix: jan app tray blocks app update @louis-jan (#2319) +- fix: quick ask not show @louis-jan (#2315) +- fix: quick ask blocks app update @louis-jan (#2310) +- fix: message from quick ask not get the selected model @namchuai (#2307) +- fix: replace robotjs by nutjs (#2295) @louis-jan (#2302) + +## 🧰 Maintenance + +- docs: Update sidebar and content for http proxy and import model @aindrajaya (#2328) +- chore: temporary remove linux from tensorrt support @namchuai (#2386) +- docs: Update broken-build.mdx @0xSage (#2385) +- docs: sync updated content to main page @hieu-jan (#2384) +- docs: fix broken link by redirecting to the right paths @aindrajaya (#2381) +- docs: api reference 2.0 @aindrajaya (#2367) +- docs: bump changelog v0.4.8 @hieu-jan (#2366) +- docs: trt-llm extension guides @0xSage (#2353) +- docs: enhance autogenerate changelog configuration @hieu-jan (#2289) +- docs: update website-docs content @hieu-jan (#2287) +- docs: update slogan @hieu-jan (#2282) +- docs: sync updated content from dev to docs branch @hieu-jan (#2283) +- docs: Fix install slug and fix navbar style in darkmode @aindrajaya (#2306) + +## Contributor + +@0xSage, @aindrajaya, @dan-jan, @eckartal, @hiento09, @hieu-jan, @jan-service-account, @louis-jan, @namchuai and @urmauur + diff --git a/docs/docs/server-suite/enterprise.md b/docs/docs/server-suite/enterprise.md index 565c14fde..292911485 100644 --- a/docs/docs/server-suite/enterprise.md +++ b/docs/docs/server-suite/enterprise.md @@ -4,14 +4,15 @@ slug: /enterprise description: Built for Enterprise Deployments keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/server-suite/home-server.md b/docs/docs/server-suite/home-server.md index 97f3afbc7..4f6a375a9 100644 --- a/docs/docs/server-suite/home-server.md +++ b/docs/docs/server-suite/home-server.md @@ -4,14 +4,15 @@ slug: /home-server description: Built for Home Servers keywords: [ - Jan AI, Jan, - ChatGPT alternative, + Rethink the Computer, local AI, - private AI, + privacy focus, + free and open source, + private and offline, conversational AI, no-subscription fee, - large language model, + large language models, ] --- diff --git a/docs/docs/support/support.md b/docs/docs/support/support.md index 5a1ec2097..36895017d 100644 --- a/docs/docs/support/support.md +++ b/docs/docs/support/support.md @@ -1,3 +1,7 @@ +--- +title: Support - Jan +--- + # Support - Bugs & requests: file a GitHub ticket [here](https://github.com/janhq/jan/issues) diff --git a/docs/docs/team/team.md b/docs/docs/team/team.md index 7d5e07cfb..b18774dda 100644 --- a/docs/docs/team/team.md +++ b/docs/docs/team/team.md @@ -13,7 +13,6 @@ Jan is a startup with an open source business model. We believe in the need for - [Jan Desktop Client & Local server](https://jan.ai) (AGPLv3, built on Jan Framework) - [Nitro: run Local AI](https://github.com/janhq/nitro) (AGPLv3) - ### Bootstrapped Jan is currently a bootstrapped startup. @@ -25,4 +24,4 @@ We balance technical invention with the search for a sustainable business model. ## Our Team - Contributors -- Core Team \ No newline at end of file +- Core Team diff --git a/docs/docs/template/QA_script.md b/docs/docs/template/QA_script.md index bba667bcd..de006c629 100644 --- a/docs/docs/template/QA_script.md +++ b/docs/docs/template/QA_script.md @@ -1,8 +1,8 @@ -# [Release Version] QA Script +# Regression test -**Release Version:** v0.4.6 +**Release Version:** v0.4.7 -**Operating System:** +**Operating System:** MacOS --- @@ -10,112 +10,89 @@ ### 1. Users install app -- [ ] :key: Test for clear user installation instructions. -- [ ] :key: Verify that the installation path is correct for each OS. - [ ] Check that the installation package is not corrupted and passes all security checks. -- [ ] Validate that the app is correctly installed in the default or user-specified directory. -- [ ] Ensure that all necessary dependencies are installed along with the app. -- [ ] :key: :rocket: Confirm that the app launches successfully after installation. +- [ ] :key: Confirm that the app launches successfully after installation. ### 2. Users update app -- [ ] :key: Test that the updated version includes the new features or fixes outlined in the update notes. - [ ] :key: Validate that the update does not corrupt user data or settings. - [ ] :key: Confirm that the app restarts or prompts the user to restart after an update. - -### 3. Users uninstall app - -- [ ] :key::warning: Check that the uninstallation process removes the app successfully from the system. -- [ ] Clean the Jan root directory and open the app to check if it creates all the necessary folders, especially models and extensions. - [ ] When updating the app, check if the `/models` directory has any JSON files that change according to the update. - [ ] Verify if updating the app also updates extensions correctly (test functionality changes, support notifications for necessary tests with each version related to extensions update). -### 4. Users close app +### 3. Users uninstall / close app - [ ] :key: Ensure that after closing the app, all models are unloaded. +- [ ] :key::warning: Check that the uninstallation process removes the app successfully from the system. +- [ ] Clean the Jan root directory and open the app to check if it creates all the necessary folders, especially models and extensions. ## B. Overview -### 1. Users use shortcut keys +### 1. Shortcut key, memory usage / CPU usage - [ ] :key: Test each shortcut key to confirm it works as described (My models, navigating, opening, closing, etc.). - -### 2. Users check the memory usage and CPU usage - - [ ] :key: Ensure that the interface presents the correct numbers for memory and CPU usage. -### 3. Users check the `active model` +### 2. Users check the `active model` - [ ] :key: Verify that the app correctly displays the state of the loading model (e.g., loading, ready, error). - [ ] :key: Confirm that the app allows users to switch between models if multiple are available. - [ ] Check that the app provides feedback or instructions if the model fails to load. +- [ ] Verify the troubleshooting assistant correctly capture hardware / log info #1784 ## C. Thread ### 1. Users can chat with Jan, the default assistant -- [ ] Verify that the input box for messages is present and functional. -- [ ] :key: Check if typing a message and hitting `Send` results in the message appearing in the chat window. -- [ ] :key: Confirm that Jan, the default assistant, replies to user inputs. +- [ ] :key: Verify sending a message enables users to receive responses from model. - [ ] :key: Ensure that the conversation thread is maintained without any loss of data upon sending multiple messages. +- [ ] ‌Users should be able to edit msg and the assistant will re-generate the answer based on the edited version of the message. - [ ] Test for the ability to send different types of messages (e.g., text, emojis, code blocks). -- [ ] :key: Validate the scroll functionality in the chat window for lengthy conversations. -- [ ] Check if the user can copy the response. -- [ ] Check if the user can delete responses. -- [ ] :key: Check the `clear message` button works. -- [ ] :key: Check the `delete entire chat` works. -- [ ] Check if deleting all the chat retains the system prompt. - [ ] Check the output format of the AI (code blocks, JSON, markdown, ...). +- [ ] :key: Validate the scroll functionality in the chat window for lengthy conversations. +- [ ] Check if the user can copy / delete the response. +- [ ] :key: Check the `clear message` / `delete entire chat` button works. +- [ ] Check if deleting all the chat retains the system prompt. - [ ] :key: Validate that there is appropriate error handling and messaging if the assistant fails to respond. - [ ] Test assistant's ability to maintain context over multiple exchanges. -- [ ] :key: Check the `create new chat` button works correctly +- [ ] :key: Check the `create new chat` button, and new conversation will have an automatically generated thread title based on users msg. - [ ] Confirm that by changing `models` mid-thread the app can still handle it. - [ ] Check the `regenerate` button renews the response (single / multiple times). - [ ] Check the `Instructions` update correctly after the user updates it midway (mid-thread). ### 2. Users can customize chat settings like model parameters via both the GUI & thread.json -- [ ] :key: Confirm that the Threads settings options are accessible. - [ ] Test the functionality to adjust model parameters (e.g., Temperature, Top K, Top P) from the GUI and verify they are reflected in the chat behavior. - [ ] :key: Ensure that changes can be saved and persisted between sessions. - [ ] Validate that users can access and modify the thread.json file. - [ ] :key: Check that changes made in thread.json are correctly applied to the chat session upon reload or restart. - [ ] Check the maximum and minimum limits of the adjustable parameters and how they affect the assistant's responses. -- [ ] :key: Validate user permissions for those who can change settings and persist them. - [ ] :key: Ensure that users switch between threads with different models, the app can handle it. ### 3. Model dropdown + - [ ] :key: Model list should highlight recommended based on user RAM - [ ] Model size should display (for both installed and imported models) ### 4. Users can click on a history thread -- [ ] Test the ability to click on any thread in the history panel. -- [ ] :key: Verify that clicking a thread brings up the past conversation in the main chat window. -- [ ] :key: Ensure that the selected thread is highlighted or otherwise indicated in the history panel. + - [ ] Confirm that the chat window displays the entire conversation from the selected history thread without any missing messages. - [ ] :key: Check the performance and accuracy of the history feature when dealing with a large number of threads. - [ ] Validate that historical threads reflect the exact state of the chat at that time, including settings. - [ ] :key: Verify the ability to delete or clean old threads. -- [ ] :key: Confirm that changing the title of the thread updates correctly. +- [ ] Confirm that changing the title of the thread updates correctly. ### 5. Users can config instructions for the assistant. -- [ ] Ensure there is a clear interface to input or change instructions for the assistant. + - [ ] Test if the instructions set by the user are being followed by the assistant in subsequent conversations. - [ ] :key: Validate that changes to instructions are updated in real time and do not require a restart of the application or session. -- [ ] :key: Confirm that the assistant's behavior changes in accordance with the new instructions provided. - [ ] :key: Check for the ability to reset instructions to default or clear them completely. -- [ ] :key: Test the feature that allows users to save custom sets of instructions for different scenarios. -- [ ] Validate that instructions can be saved with descriptive names for easy retrieval. -- [ ] :key: Check if the assistant can handle conflicting instructions and how it resolves them. -- [ ] Ensure that instruction configurations are documented for user reference. - [ ] :key: RAG - Users can import documents and the system should process queries about the uploaded file, providing accurate and appropriate responses in the conversation thread. - ## D. Hub ### 1. Users can discover recommended models (Jan ships with a few preconfigured model.json files) -- [ ] :key: Verify that recommended models are displayed prominently on the main page. - [ ] :key: Ensure that each model's recommendations are consistent with the user’s activity and preferences. - [ ] Test the functionality of any filters that refine model recommendations. @@ -123,7 +100,6 @@ - [ ] Display the best model for their RAM at the top. - [ ] :key: Ensure that models are labeled with RAM requirements and compatibility. -- [ ] :warning: Test that the platform provides alternative recommendations for models not suitable due to RAM limitations. - [ ] :key: Check the download model functionality and validate if the cancel download feature works correctly. ### 3. Users can download models via a HuggingFace URL (coming soon) @@ -132,24 +108,24 @@ - [ ] :key: Check the progress bar reflects the right process. - [ ] Validate the error handling for invalid or inaccessible URLs. -### 4. Users can add a new model to the Hub +### 4. Users can import new models to the Hub -- [ ] :key: Have clear instructions so users can do their own. +- [ ] :key: Ensure import successfully via drag / drop or upload GGUF. +- [ ] :key: Verify Move model binary file / Keep Original Files & Symlink option are working +- [ ] :warning: Ensure it raises clear errors for users to fix the problem while adding a new model. +- [ ] Users can add more info to the imported model / edit name - [ ] :key: Ensure the new model updates after restarting the app. -- [ ] :warning:Ensure it raises clear errors for users to fix the problem while adding a new model. ### 5. Users can use the model as they want -- [ ] :key: Check `start` button response exactly what it does. -- [ ] :key: Check `stop` button response exactly what it does. -- [ ] :key: Check `delete` button response exactly what it does. +- [ ] :key: Check `start` / `stop` / `delete` button response exactly what it does. - [ ] Check if starting another model stops the other model entirely. -- [ ] Check the `Explore models` navigate correctly to the model panel. +- [x] :rocket: Check the `Explore models` navigate correctly to the model panel. - [ ] :key: Check when deleting a model it will delete all the files on the user's computer. - [ ] :warning:The recommended tags should present right for the user's hardware. -- [ ] Assess that the descriptions of models are accurate and informative. ### 6. Users can Integrate With a Remote Server + - [ ] :key: Import openAI GPT model https://jan.ai/guides/using-models/integrate-with-remote-server/ and the model displayed in Hub / Thread dropdown - [ ] Users can use the remote model properly @@ -166,61 +142,54 @@ - [ ] :key: Test the 'Start' action for a model to ensure it initiates and the system resource usage reflects this change. - [ ] :key: Verify the 'Stop' action for a model to confirm it ceases operation and frees up the system resources accordingly. -- [ ] :key: Check the functionality that allows starting a model based on available system resources. -- [ ] :key: Validate that the system prevents starting a new model if it exceeds safe resource utilization thresholds. -- [ ] Ensure that the system provides warnings or recommendations when resource utilization is high before starting new models. -- [ ] Test the ease of accessing model settings from the system monitor for resource management. - [ ] Confirm that any changes in model status (start/stop) are logged or reported to the user for transparency. ## F. Settings -### 1. Users can set color themes and dark/ light modes +### 1. Appearance -- [ ] Verify that the theme setting is easily accessible in the `Appearance` tab. -- [ ] :key: Check that the theme change is reflected immediately upon selection. - [ ] :key: Test the `Light`, `Dark`, and `System` theme settings to ensure they are functioning as expected. - [ ] Confirm that the application saves the theme preference and persists it across sessions. - [ ] Validate that all elements of the UI are compatible with the theme changes and maintain legibility and contrast. -### 2. Users change the extensions [TBU] +### 2. Extensions [TBU] - [ ] Confirm that the `Extensions` tab lists all available plugins. -- [ ] :key: Test the toggle switch for each plugin to ensure it enables or disables the plugin correctly. -- [ ] Verify that plugin changes take effect without needing to restart the application unless specified. -- [ ] :key: Check that the plugin's status (`Installed the latest version`) updates accurately after any changes. -- [ ] Validate the `Manual Installation` process by selecting and installing a plugin file. -- [ ] Test for proper error handling and user feedback when a plugin installation fails. +- [x] :key: Test the toggle switch for each plugin to ensure it enables or disables the plugin correctly. +- [x] Verify that plugin changes take effect without needing to restart the application unless specified. +- [x] :key: Check that the plugin's status (`Installed the latest version`) updates accurately after any changes. +- [x] Validate the `Manual Installation` process by selecting and installing a plugin file. +- [x] Test for proper error handling and user feedback when a plugin installation fails. -### 3. Users change the advanced settings +### 3. Users can add custom plugins via manual installation [TBU] + +- [x] Verify that the `Manual Installation` option is clearly visible and accessible in the `Extensions` section. +- [x] Test the functionality of the `Select` button within the `Manual Installation` area. +- [x] :warning: Check that the file picker dialog allows for the correct plugin file types (e.g., .tgz). +- [x] :key: Validate that the selected plugin file installs correctly and the plugin becomes functional. +- [x] Ensure that there is a progress indicator or confirmation message once the installation is complete. +- [x] Confirm that if the installation is interrupted or fails, the user is given a clear error message. +- [x] :key: Test that the application prevents the installation of incompatible or corrupt plugin files. +- [x] :key: Check that the user can uninstall or disable custom plugins as easily as pre-installed ones. +- [x] Verify that the application's performance remains stable after the installation of custom plugins. + +### 4. Advanced settings - [ ] :key: Test the `Experimental Mode` toggle to confirm it enables or disables experimental features as intended. - [ ] :key: Check the functionality of `Open App Directory` to ensure it opens the correct folder in the system file explorer. -- [ ] Validate that changes in advanced settings are applied immediately or provide appropriate instructions if a restart is needed. -- [ ] Test the application's stability when experimental features are enabled. - -### 4. Users can add custom plugins via manual installation [TBU] - -- [ ] Verify that the `Manual Installation` option is clearly visible and accessible in the `Extensions` section. -- [ ] Test the functionality of the `Select` button within the `Manual Installation` area. -- [ ] :warning: Check that the file picker dialog allows for the correct plugin file types (e.g., .tgz). -- [ ] :key: Validate that the selected plugin file installs correctly and the plugin becomes functional. -- [ ] Ensure that there is a progress indicator or confirmation message once the installation is complete. -- [ ] Confirm that if the installation is interrupted or fails, the user is given a clear error message. -- [ ] :key: Test that the application prevents the installation of incompatible or corrupt plugin files. -- [ ] :key: Check that the user can uninstall or disable custom plugins as easily as pre-installed ones. -- [ ] Verify that the application's performance remains stable after the installation of custom plugins. - -### 5. Advanced Settings -- [ ] Attemp to test downloading model from hub using **HTTP Proxy** [guideline](https://github.com/janhq/jan/pull/1562) - [ ] Users can move **Jan data folder** +- [ ] Validate that changes in advanced settings are applied immediately or provide appropriate instructions if a restart is needed. +- [ ] Attemp to test downloading model from hub using **HTTP Proxy** [guideline](https://github.com/janhq/jan/pull/1562) +- [ ] Logs that are older than 7 days or exceed 1MB in size will be automatically cleared upon starting the application. - [ ] Users can click on Reset button to **factory reset** app settings to its original state & delete all usage data. ## G. Local API server ### 1. Local Server Usage with Server Options + - [ ] :key: Explore API Reference: Swagger API for sending/receiving requests - - [ ] Use default server option - - [ ] Configure and use custom server options + - [ ] Use default server option + - [ ] Configure and use custom server options - [ ] Test starting/stopping the local API server with different Model/Model settings - [ ] Server logs captured with correct Server Options provided - [ ] Verify functionality of Open logs/Clear feature diff --git a/docs/docs/wall-of-love.md b/docs/docs/wall-of-love.md index f196c90e9..2dda05770 100644 --- a/docs/docs/wall-of-love.md +++ b/docs/docs/wall-of-love.md @@ -1,3 +1,110 @@ --- title: Wall of Love ❤️ ---- \ No newline at end of file +slug: /wall-of-love +description: Check out what our amazing users are saying about Jan! +keywords: + [ + Jan, + Rethink the Computer, + local AI, + privacy focus, + free and open source, + private and offline, + conversational AI, + no-subscription fee, + large language models, + wall of love, + ] +--- + +## Twitter + +Check out our amazing users and what they are saying about Jan! + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +Please share your love for Jan on Twitter and tag us [@janframework](https://twitter.com/janframework)! We would love to hear from you! + +## YouTube + +Watch these amazing videos to see how Jan is being used and loved by the community! + +### Run Any Chatbot FREE Locally on Your Computer + +
+ +
+ +

+ +### Jan AI: Run Open Source LLM 100% Local with OpenAI endpoints + +
+ +
+ +

+ +### Setup Tutorial on Jan.ai. JAN AI: Run open source LLM on local Windows PC. 100% offline LLM and AI. + +
+ +
+ +

+ +### Jan.ai: Like Offline ChatGPT on Your Computer 💡 + +
+ +
+ +

+ +### Jan: Bring AI to your Desktop With 100% Offline AI + +
+ +
+ +

+ +### AI on Your Local PC: Install JanAI (ChatGPT alternative) for Enhanced Privacy + +
+ +
+ +

+ +### Install Jan to Run LLM Offline and Local First + +
+ +
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 42ed55529..7b74337fb 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -1,36 +1,36 @@ // @ts-check // Note: type annotations allow type checking and IDEs autocompletion +require('dotenv').config() -require("dotenv").config(); - -const darkCodeTheme = require("prism-react-renderer/themes/dracula"); +const darkCodeTheme = require('prism-react-renderer/themes/dracula') +const path = require('path') /** @type {import('@docusaurus/types').Config} */ const config = { - title: "Jan", - tagline: "Run your own AI", - favicon: "img/favicon.ico", + title: 'Jan | Rethink the Computer', + tagline: 'Run your own AI', + favicon: 'img/favicon.ico', // Set the production url of your site here - url: "https://jan.ai", + url: 'https://jan.ai', // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' - baseUrl: "/", + baseUrl: '/', // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. - organizationName: "janhq", // Usually your GitHub org/user name. - projectName: "jan", // Usually your repo name. + organizationName: 'janhq', // Usually your GitHub org/user name. + projectName: 'jan', // Usually your repo name. - onBrokenLinks: "warn", - onBrokenMarkdownLinks: "warn", + onBrokenLinks: 'warn', + onBrokenMarkdownLinks: 'warn', trailingSlash: true, // Even if you don't use internalization, you can use this field to set useful // metadata like html lang. For example, if your site is Chinese, you may want // to replace "en" with "zh-Hans". i18n: { - defaultLocale: "en", - locales: ["en"], + defaultLocale: 'en', + locales: ['en'], }, markdown: { @@ -41,75 +41,462 @@ const config = { // Plugins we added plugins: [ - "docusaurus-plugin-sass", + 'docusaurus-plugin-sass', async function myPlugin(context, options) { return { - name: "docusaurus-tailwindcss", + name: 'docusaurus-tailwindcss', configurePostCss(postcssOptions) { // Appends TailwindCSS and AutoPrefixer. - postcssOptions.plugins.push(require("tailwindcss")); - postcssOptions.plugins.push(require("autoprefixer")); - return postcssOptions; + postcssOptions.plugins.push(require('tailwindcss')) + postcssOptions.plugins.push(require('autoprefixer')) + return postcssOptions }, - }; + } }, [ - "posthog-docusaurus", + 'posthog-docusaurus', { - apiKey: process.env.POSTHOG_PROJECT_API_KEY || "XXX", - appUrl: process.env.POSTHOG_APP_URL || "XXX", // optional + apiKey: process.env.POSTHOG_PROJECT_API_KEY || 'XXX', + appUrl: process.env.POSTHOG_APP_URL || 'XXX', // optional enableInDevelopment: false, // optional }, ], [ - "@docusaurus/plugin-client-redirects", + '@docusaurus/plugin-client-redirects', { redirects: [ { - from: "/troubleshooting/failed-to-fetch", - to: "/troubleshooting/somethings-amiss", + from: '/troubleshooting/failed-to-fetch', + to: '/troubleshooting/', }, { - from: "/guides/troubleshooting/gpu-not-used/", - to: "/troubleshooting/gpu-not-used", + from: '/guides/troubleshooting/gpu-not-used/', + to: '/troubleshooting/', + }, + { + from: '/guides/troubleshooting/', + to: '/troubleshooting/', + }, + { + from: '/troubleshooting/stuck-on-broken-build/', + to: '/troubleshooting/', + }, + { + from: '/troubleshooting/somethings-amiss/', + to: '/troubleshooting/', + }, + { + from: '/troubleshooting/how-to-get-error-logs/', + to: '/troubleshooting/', + }, + { + from: '/troubleshooting/permission-denied/', + to: '/troubleshooting/', + }, + { + from: '/troubleshooting/unexpected-token/', + to: '/troubleshooting/', + }, + { + from: '/troubleshooting/undefined-issue/', + to: '/troubleshooting/', + }, + { + from: '/install/', + to: '/guides/install/', + }, + { + from: '/guides/using-models/', + to: '/guides/models/', + }, + { + from: '/guides/using-extensions/', + to: '/extensions/', + }, + { + from: '/integrations/tensorrt', + to: '/guides/providers/tensorrt-llm', + }, + { + from: '/install/mac/', + to: '/guides/install/mac/', + }, + { + from: '/guides/using-models/integrate-with-remote-server/', + to: '/guides/engines/remote-server/', + }, + { + from: '/guides/chatting/manage-history/', + to: '/guides/threads/', + }, + { + from: '/guides/using-server/', + to: '/guides/local-api/', + }, + { + from: '/guides/using-models/customize-engine-settings/', + to: '/guides/engines/llamacpp/', + }, + { + from: '/guides/integrations/openrouter/', + to: '/integrations/openrouter/', + }, + { + from: '/docs/integrations/', + to: '/integrations/', + }, + { + from: '/docs/product/chat/', + to: '/developer/framework/product/chat/', + }, + { + from: '/install/windows/', + to: '/guides/install/windows/', + }, + { + from: '/api/overview/', + to: '/api-reference/', + }, + { + from: '/install/linux/', + to: '/guides/install/linux/', + }, + { + from: '/install/from-source/', + to: '/guides/install/#install-server-side', + }, + { + from: '/troubleshooting/gpu-not-used/', + to: '/troubleshooting/#troubleshooting-nvidia-gpu', + }, + { + from: '/guides/using-server/server/', + to: '/guides/local-api/#step-2-start-and-use-the-built-in-api-server', + }, + { + from: '/docs/integrations/openrouter/', + to: '/integrations/openrouter/', + }, + { + from: '/docs/integrations/ollama/', + to: '/guides/engines/ollama/', + }, + { + from: '/guides/using-models/install-from-hub/', + to: '/guides/models/', + }, + { + from: '/guides/integrations/continue/', + to: '/integrations/continue/', + }, + { + from: '/docs/engineering/assistants/', + to: '/developer/framework/engineering/assistants/', + }, + { + from: '/guides/install/hardware/', + to: '/guides/hardware/', + }, + { + from: '/docs/engineering/files/', + to: '/developer/framework/engineering/files/', + }, + { + from: '/features/acceleration/', + to: '/guides/advanced/#enable-the-gpu-acceleration', + }, + { + from: '/docs/extension-guides/', + to: '/extensions/', + }, + { + from: '/specs/settings/', + to: '/developer/framework/product/settings/', + }, + { + from: '/guides/using-models/import-models-using-absolute-filepath/', + to: '/guides/models/', + }, + { + from: '/install/docker/', + to: '/guides/install/server/', + }, + { + from: '/guides/using-models/import-manually/', + to: '/guides/models/', + }, + { + from: '/v1/models', + to: '/guides/models/', + }, + { + from: '/docs/team/contributor-program/', + to: '/team/contributor-program/', + }, + { + from: '/guides/installation/hardware/', + to: '/guides/hardware/', + }, + { + from: '/guides/chatting/start-thread/', + to: '/guides/threads/', + }, + { + from: '/api/files/', + to: '/developer/framework/engineering/files/#file-api', + }, + { + from: '/specs/threads/', + to: '/developer/framework/engineering/threads/', + }, + { + from: '/guides/using-models/customize-models/', + to: '/guides/models/', + }, + { + from: '/docs/modules/models/', + to: '/guides/models/', + }, + { + from: '/developer/build-extension/package-your-assistant/', + to: '/developer/extension/package-your-extension/', + }, + { + from: '/getting-started/install/linux/', + to: '/guides/install/linux/', + }, + { + from: '/features/extensions', + to: '/extensions/', + }, + { + from: '/specs/chats/', + to: '/developer/framework/engineering/chats/', + }, + { + from: '/specs/engine/', + to: '/developer/framework/engineering/engine/', + }, + { + from: '/docs/extension-capabilities/', + to: '/extensions/', + }, + { + from: '/docs/get-started/use-local-server/', + to: '/guides/local-api/', + }, + { + from: '/guides/how-jan-works/', + to: '/guides/', + }, + { + from: '/guides/windows/', + to: '/guides/install/windows/', + }, + { + from: '/specs/', + to: '/developer/framework/', + }, + { + from: '/docs/get-started/build-extension/', + to: '/developer/extension/', + }, + { + from: '/specs/files/', + to: '/developer/framework/engineering/files/', + }, + { + from: '/guides/using-models/package-models/', + to: '/guides/models/', + }, + { + from: '/install/overview/', + to: '/guides/install/', + }, + { + from: '/docs/get-started/extension-anatomy/', + to: '/developer/extension/extension-anatomy/', + }, + { + from: '/docs/get-started/', + to: '/guides/', + }, + { + from: '/guides/mac/', + to: '/guides/install/mac/', + }, + { + from: '/specs/fine-tuning/', + to: '/developer/framework/engineering/fine-tuning/', + }, + { + from: '/guides/server/', + to: '/guides/local-api/', + }, + { + from: '/specs/file-based/', + to: '/developer/file-based/', + }, + { + from: '/developers/', + to: '/developer/', + }, + { + from: '/api/', + to: '/api-reference/', + }, + { + from: '/products/desktop', + to: '/desktop/', + }, + { + from: '/developers/plugins/azure-openai', + to: '/guides/engines/openai/', + }, + { + from: '/getting-started/install/mac', + to: '/guides/install/mac/', + }, + { + from: '/guides/fine-tuning/what-models-can-be-fine-tuned', + to: '/developer/framework/engineering/fine-tuning/', + }, + { + from: '/guides/linux/', + to: '/guides/install/linux/', + }, + { + from: '/docs/specs/threads', + to: '/developer/framework/engineering/threads/', + }, + { + from: '/docs/api-reference/models/list', + to: '/api-reference#tag/models/get/models', + }, + { + from: '/docs/api-reference/threads', + to: '/api-reference/#tag/chat/post/chat/completions', + }, + { + from: '/getting-started/troubleshooting', + to: '/troubleshooting/', + }, + { + from: '/getting-started/install/windows', + to: '/guides/install/windows/', + }, + { + from: '/docs/api-reference/messages', + to: '/api-reference#tag/messages/get/threads/{thread_id}/messages', + }, + { + from: '/docs/modules/chats', + to: '/developer/framework/engineering/chats/', + }, + { + from: '/docs/specs/chats', + to: '/developer/framework/engineering/chats/', + }, + { + from: '/docs/api-reference/assistants', + to: '/api-reference/#tag/assistants/get/assistants', + }, + { + from: '/docs/modules/files', + to: '/developer/framework/engineering/files/', + }, + { + from: '/features/ai-models', + to: '/guides/models/', + }, + { + from: '/docs/specs/models', + to: '/developer/framework/engineering/models/', + }, + { + from: '/docs/models/overview', + to: '/developer/framework/engineering/models/', + }, + { + from: '/docs/api-reference/models', + to: '/api-reference#tag/models/get/models', + }, + { + from: '/docs/guides/fine-tuning', + to: '/developer/framework/engineering/fine-tuning/', + }, + { + from: '/docs/specs/files', + to: '/developer/framework/engineering/files/', + }, + { + from: '/docs/modules/threads', + to: '/developer/framework/engineering/threads/', + }, + { + from: '/hardware/examples/3090x1-@dan-jan', + to: '/guides/hardware/', + }, + { + from: '/chat', + to: '/guides/threads/', + }, + { + from: '/docs/modules/assistants', + to: '/developer/assistant/', }, ], }, ], + + //To input custom Plugin + path.resolve(__dirname, 'plugins', 'changelog-plugin'), + [ + '@scalar/docusaurus', + { + label: '', + route: '/api-reference', + configuration: { + spec: { + url: 'https://raw.githubusercontent.com/janhq/jan/dev/docs/openapi/jan.json', + }, + }, + }, + ], ], // The classic preset will relay each option entry to the respective sub plugin/theme. presets: [ [ - "@docusaurus/preset-classic", + '@docusaurus/preset-classic', { // Will be passed to @docusaurus/plugin-content-docs (false to disable) docs: { - routeBasePath: "/", - sidebarPath: require.resolve("./sidebars.js"), - editUrl: "https://github.com/janhq/jan/tree/main/docs", + routeBasePath: '/', + sidebarPath: require.resolve('./sidebars.js'), + editUrl: 'https://github.com/janhq/jan/tree/dev/docs', showLastUpdateAuthor: true, showLastUpdateTime: true, }, // Will be passed to @docusaurus/plugin-content-sitemap (false to disable) sitemap: { - changefreq: "daily", + changefreq: 'daily', priority: 1.0, - ignorePatterns: ["/tags/**"], - filename: "sitemap.xml", + ignorePatterns: ['/tags/**'], + filename: 'sitemap.xml', }, // Will be passed to @docusaurus/plugin-content-blog (false to disable) blog: { - blogSidebarTitle: "All Posts", - blogSidebarCount: "ALL", + blogSidebarTitle: 'All Posts', + blogSidebarCount: 'ALL', }, // Will be passed to @docusaurus/theme-classic. theme: { - customCss: require.resolve("./src/styles/main.scss"), + customCss: require.resolve('./src/styles/main.scss'), }, // GTM is always inactive in development and only active in production to avoid polluting the analytics statistics. googleTagManager: { - containerId: process.env.GTM_ID || "XXX", + containerId: process.env.GTM_ID || 'XXX', }, // Will be passed to @docusaurus/plugin-content-pages (false to disable) // pages: {}, @@ -117,17 +504,17 @@ const config = { ], // Redoc preset [ - "redocusaurus", + 'redocusaurus', { specs: [ { - spec: "openapi/jan.yaml", // can be local file, url, or parsed json object - route: "/api-reference/", // path where to render docs + spec: 'openapi/jan.yaml', // can be local file, url, or parsed json object + route: '/api-reference-1.0/', // path where to render docs }, ], theme: { - primaryColor: "#1a73e8", - primaryColorDark: "#1a73e8", + primaryColor: '#1a73e8', + primaryColorDark: '#1a73e8', options: { requiredPropsFirst: true, noAutoAuth: true, @@ -140,10 +527,10 @@ const config = { // Docs: https://docusaurus.io/docs/api/themes/configuration themeConfig: { - image: "img/og-image.png", + image: 'img/og-image.png', // Only for react live liveCodeBlock: { - playgroundPosition: "bottom", + playgroundPosition: 'bottom', }, docs: { sidebar: { @@ -153,89 +540,81 @@ const config = { }, // Algolia Search Configuration algolia: { - appId: process.env.ALGOLIA_APP_ID || "XXX", - apiKey: process.env.ALGOLIA_API_KEY || "XXX", - indexName: "jan_docs", + appId: process.env.ALGOLIA_APP_ID || 'XXX', + apiKey: process.env.ALGOLIA_API_KEY || 'XXX', + indexName: 'jan_docs', contextualSearch: true, insights: true, }, // SEO Docusarus metadata: [ { - name: "description", + name: 'description', + content: `Jan turns your computer into an AI machine by running LLMs locally on your computer. It's a privacy-focus, local-first, open-source solution.`, + }, + { + name: 'keywords', content: - "Jan runs 100% offline on your computer, utilizes open-source AI models, prioritizes privacy, and is highly customizable.", + 'Jan, Rethink the Computer, local AI, privacy focus, free and open source, private and offline, conversational AI, no-subscription fee, large language models', + }, + { name: 'robots', content: 'index, follow' }, + { + property: 'og:title', + content: 'Jan | Rethink the Computer', }, { - name: "keywords", - content: - "Jan AI, Jan, ChatGPT alternative, local AI, private AI, conversational AI, no-subscription fee, large language model ", - }, - { name: "robots", content: "index, follow" }, - { - property: "og:title", - content: "Jan | Open-source ChatGPT Alternative", + property: 'og:description', + content: `Jan turns your computer into an AI machine by running LLMs locally on your computer. It's a privacy-focus, local-first, open-source solution.`, }, { - property: "og:description", - content: - "Jan runs 100% offline on your computer, utilizes open-source AI models, prioritizes privacy, and is highly customizable.", + property: 'og:image', + content: 'https://jan.ai/img/og-image.png', + }, + { property: 'og:type', content: 'website' }, + { property: 'twitter:card', content: 'summary_large_image' }, + { property: 'twitter:site', content: '@janframework' }, + { + property: 'twitter:title', + content: 'Jan | Rethink the Computer', }, { - property: "og:image", - content: "https://jan.ai/img/og-image.png", - }, - { property: "og:type", content: "website" }, - { property: "twitter:card", content: "summary_large_image" }, - { property: "twitter:site", content: "@janframework" }, - { - property: "twitter:title", - content: "Jan | Open-source ChatGPT Alternative", + property: 'twitter:description', + content: `Jan turns your computer into an AI machine by running LLMs locally on your computer. It's a privacy-focus, local-first, open-source solution.`, }, { - property: "twitter:description", - content: - "Jan runs 100% offline on your computer, utilizes open-source AI models, prioritizes privacy, and is highly customizable.", - }, - { - property: "twitter:image", - content: "https://jan.ai/img/og-image.png", + property: 'twitter:image', + content: 'https://jan.ai/img/og-image.png', }, ], headTags: [ // Declare a preconnect tag { - tagName: "link", + tagName: 'link', attributes: { - rel: "preconnect", - href: "https://jan.ai/", + rel: 'preconnect', + href: 'https://jan.ai/', }, }, // Declare some json-ld structured data { - tagName: "script", + tagName: 'script', attributes: { - type: "application/ld+json", + type: 'application/ld+json', }, innerHTML: JSON.stringify({ - "@context": "https://schema.org/", - "@type": "localAI", - name: "Jan", - description: - "Jan runs 100% offline on your computer, utilizes open-source AI models, prioritizes privacy, and is highly customizable.", - keywords: - "Jan AI, Jan, ChatGPT alternative, local AI, private AI, conversational AI, no-subscription fee, large language model ", - applicationCategory: "BusinessApplication", - operatingSystem: "Multiple", - url: "https://jan.ai/", + '@context': 'https://schema.org/', + '@type': 'Organization', + name: 'Jan', + url: 'https://jan.ai/', + logo: 'https://jan.ai/img/og-image.png', }), }, ], navbar: { - title: "Jan", + title: 'Jan', logo: { - alt: "Jan Logo", - src: "img/logo.svg", + alt: 'Jan Logo', + src: 'img/logo.svg', }, items: [ // Navbar Left @@ -246,76 +625,87 @@ const config = { // label: "About", // }, { - type: "dropdown", - label: "About", - position: "left", + type: 'dropdown', + label: 'About', + position: 'left', items: [ { - type: "doc", - label: "What is Jan?", - docId: "about/about", + type: 'doc', + label: 'What is Jan?', + docId: 'about/about', }, { - type: "doc", - label: "Who we are", - docId: "team/team", + type: 'doc', + label: 'Who we are', + docId: 'team/team', }, { - type: "doc", - label: "Wall of love", - docId: "wall-of-love", + type: 'doc', + label: 'Wall of love', + docId: 'wall-of-love', }, ], }, { - type: "docSidebar", - sidebarId: "productSidebar", - positionL: "left", - label: "Product", + type: 'docSidebar', + sidebarId: 'productSidebar', + positionL: 'left', + label: 'Product', }, { - type: "docSidebar", - sidebarId: "ecosystemSidebar", - position: "left", - label: "Ecosystem", + type: 'docSidebar', + sidebarId: 'ecosystemSidebar', + position: 'left', + label: 'Ecosystem', + }, + { + to: 'download', + position: 'left', + label: 'Download', }, // { // type: "docSidebar", // sidebarId: "pricingSidebar", - // positionL: "left", + // positionl: "left", // label: "Pricing", // }, // Navbar right { - type: "dropdown", - label: "Docs", - position: "right", + type: 'dropdown', + label: 'Docs', + to: 'docs', + position: 'right', items: [ { - type: "docSidebar", - sidebarId: "guidesSidebar", - label: "User Guide", + type: 'docSidebar', + sidebarId: 'guidesSidebar', + label: 'Guides', }, { - type: "docSidebar", - sidebarId: "developerSidebar", - label: "Developer", + type: 'docSidebar', + sidebarId: 'developerSidebar', + label: 'Developer', }, { - to: "/api-reference", - label: "API Reference", + to: '/api-reference', + label: 'API Reference', }, { - type: "docSidebar", - sidebarId: "docsSidebar", - label: "Framework", + type: 'docSidebar', + sidebarId: 'releasesSidebar', + label: 'Changelog', }, + // { + // type: "docSidebar", + // sidebarId: "docsSidebar", + // label: "Framework", + // }, ], }, { - to: "blog", - label: "Blog", - position: "right", + to: 'blog', + label: 'Blog', + position: 'right', }, ], }, @@ -323,21 +713,22 @@ const config = { theme: darkCodeTheme, darkTheme: darkCodeTheme, additionalLanguages: [ - "python", - "powershell", - "bash", - "json", - "javascript", - "jsx", + 'python', + 'powershell', + 'bash', + 'json', + 'javascript', + 'jsx', ], }, colorMode: { - defaultMode: "light", + defaultMode: 'light', disableSwitch: false, respectPrefersColorScheme: false, }, }, - themes: ["@docusaurus/theme-live-codeblock", "@docusaurus/theme-mermaid"], -}; -module.exports = config; + themes: ['@docusaurus/theme-live-codeblock', '@docusaurus/theme-mermaid'], +} + +module.exports = config diff --git a/docs/openapi/jan.json b/docs/openapi/jan.json new file mode 100644 index 000000000..5cca59813 --- /dev/null +++ b/docs/openapi/jan.json @@ -0,0 +1,2486 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "API Reference", + "description": "# Introduction\nJan API is compatible with the [OpenAI API](https://platform.openai.com/docs/api-reference).\n", + "version": "0.1.8", + "contact": { + "name": "Jan Discord", + "url": "https://discord.gg/7EcEz7MrvA" + }, + "license": { + "name": "AGPLv3", + "url": "https://github.com/janhq/nitro/blob/main/LICENSE" + } + }, + "servers": [ + { + "url": "http://localhost:1337/v1" + } + ], + "tags": [ + { + "name": "Models", + "description": "List and describe the various models available in the API." + }, + { + "name": "Chat", + "description": "Given a list of messages comprising a conversation, the model will return a response.\n" + }, + { + "name": "Messages", + "description": "Messages capture a conversation's content. This can include the content from LLM responses and other metadata from [chat completions](/specs/chats).\n" + }, + { + "name": "Threads" + }, + { + "name": "Assistants", + "description": "Configures and utilizes different AI assistants for varied tasks" + } + ], + "x-tagGroups": [ + { + "name": "Endpoints", + "tags": [ + "Models", + "Chat" + ] + }, + { + "name": "Chat", + "tags": [ + "Assistants", + "Messages", + "Threads" + ] + } + ], + "paths": { + "/chat/completions": { + "post": { + "operationId": "createChatCompletion", + "tags": [ + "Chat" + ], + "summary": "Create chat completion\n", + "description": "Creates a model response for the given chat conversation. Equivalent to OpenAI's create chat completion. \n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatCompletionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatCompletionResponse" + } + } + } + } + } + } + }, + "/models": { + "get": { + "operationId": "listModels", + "tags": [ + "Models" + ], + "summary": "List models", + "description": "Lists the currently available models, and provides basic information about each one such as the owner and availability. Equivalent to OpenAI's list model. \n", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListModelsResponse" + } + } + } + } + } + } + }, + "/models/download/{model_id}": { + "get": { + "operationId": "downloadModel", + "tags": [ + "Models" + ], + "summary": "Download a specific model.", + "description": "Download a model.\n", + "parameters": [ + { + "in": "path", + "name": "model_id", + "required": true, + "schema": { + "type": "string", + "example": "mistral-ins-7b-q4" + }, + "description": "The ID of the model to use for this request.\n" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DownloadModelResponse" + } + } + } + } + } + } + }, + "/models/{model_id}": { + "get": { + "operationId": "retrieveModel", + "tags": [ + "Models" + ], + "summary": "Retrieve model", + "description": "Get a model instance, providing basic information about the model such as the owner and permissioning. Equivalent to OpenAI's retrieve model. \n", + "parameters": [ + { + "in": "path", + "name": "model_id", + "required": true, + "schema": { + "type": "string", + "example": "mistral-ins-7b-q4" + }, + "description": "The ID of the model to use for this request.\n" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetModelResponse" + } + } + } + } + } + }, + "delete": { + "operationId": "deleteModel", + "tags": [ + "Models" + ], + "summary": "Delete model", + "description": "Delete a model. Equivalent to OpenAI's delete model. \n", + "parameters": [ + { + "in": "path", + "name": "model_id", + "required": true, + "schema": { + "type": "string", + "example": "mistral-ins-7b-q4" + }, + "description": "The model id to delete\n" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteModelResponse" + } + } + } + } + } + } + }, + "/threads": { + "post": { + "operationId": "createThread", + "tags": [ + "Threads" + ], + "summary": "Create thread", + "description": "Create a thread. Equivalent to OpenAI's create thread. \n", + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateThreadObject" + } + } + } + }, + "responses": { + "200": { + "description": "Thread created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateThreadResponse" + } + } + } + } + } + }, + "get": { + "operationId": "listThreads", + "tags": [ + "Threads" + ], + "summary": "List threads", + "description": "Retrieves a list of all threads available in the system.\n", + "responses": { + "200": { + "description": "List of threads retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ThreadObject" + }, + "example": [ + { + "id": "thread_abc123", + "object": "thread", + "created_at": 1699014083, + "assistants": [ + "assistant-001" + ], + "metadata": {}, + "messages": [] + }, + { + "id": "thread_abc456", + "object": "thread", + "created_at": 1699014083, + "assistants": [ + "assistant-002", + "assistant-003" + ], + "metadata": {} + } + ] + } + } + } + } + } + } + }, + "/threads/{thread_id}": { + "get": { + "operationId": "getThread", + "tags": [ + "Threads" + ], + "summary": "Retrieve thread", + "description": "Retrieves detailed information about a specific thread using its thread_id. Equivalent to OpenAI's retrieve thread. \n", + "parameters": [ + { + "in": "path", + "name": "thread_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "The ID of the thread to retrieve.\n" + } + ], + "responses": { + "200": { + "description": "Thread details retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetThreadResponse" + } + } + } + } + } + }, + "patch": { + "operationId": "modifyThread", + "tags": [ + "Threads" + ], + "summary": "Modify thread", + "description": "Modifies a thread. Equivalent to OpenAI's modify thread. \n", + "parameters": [ + { + "in": "path", + "name": "thread_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "The ID of the thread to be modified.\n" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Set the title of the thread", + "items": { + "$ref": "#/components/schemas/ThreadMessageObject" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Thread modified successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModifyThreadResponse" + } + } + } + } + } + }, + "delete": { + "operationId": "deleteThread", + "tags": [ + "Threads" + ], + "summary": "Delete thread", + "description": "Delete a thread. Equivalent to OpenAI's delete thread. \n", + "parameters": [ + { + "in": "path", + "name": "thread_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "The ID of the thread to be deleted.\n" + } + ], + "responses": { + "200": { + "description": "Thread deleted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteThreadResponse" + } + } + } + } + } + } + }, + "/assistants": { + "get": { + "operationId": "listAssistants", + "tags": [ + "Assistants" + ], + "summary": "List assistants", + "description": "Return a list of assistants. Equivalent to OpenAI's list assistants. \n", + "responses": { + "200": { + "description": "List of assistants retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "object": { + "type": "string" + }, + "version": { + "type": "integer" + }, + "created_at": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "avatar": { + "type": "string", + "format": "uri" + }, + "models": { + "type": "array", + "items": { + "type": "object", + "properties": { + "model_id": { + "type": "string" + } + } + } + }, + "instructions": { + "type": "string" + }, + "events": { + "type": "object", + "properties": { + "in": { + "type": "array", + "items": {} + }, + "out": { + "type": "array", + "items": {} + } + } + }, + "metadata": { + "type": "object" + }, + "x-codeSamples": { + "type": "object", + "properties": { + "cURL": { + "type": "object", + "properties": { + "lang": { + "type": "string", + "example": "cURL" + }, + "source": { + "type": "string", + "example": "curl http://localhost:1337/v1/assistants \\\n -H \"Content-Type: application/json\"\n" + } + } + }, + "JavaScript": { + "type": "object", + "properties": { + "lang": { + "type": "string", + "example": "JavaScript" + }, + "source": { + "type": "string", + "example": "fetch('http://localhost:1337/v1/assistants', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n})\n" + } + } + }, + "Node.js": { + "type": "object", + "properties": { + "lang": { + "type": "string", + "example": "Node.js" + }, + "source": { + "type": "string", + "example": "const fetch = require('node-fetch');\n\nfetch('http://localhost:1337/v1/assistants', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n})\n" + } + } + }, + "Python": { + "type": "object", + "properties": { + "lang": { + "type": "string", + "example": "Python" + }, + "source": { + "type": "string", + "example": "import requests\n\nurl = 'http://localhost:1337/v1/assistants'\nheaders = {'Content-Type': 'application/json'}\n\nresponse = requests.get(url, headers=headers)\n" + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "/assistants/{assistant_id}": { + "get": { + "operationId": "getAssistant", + "tags": [ + "Assistants" + ], + "summary": "Retrieve assistant", + "description": "Retrieves an assistant. Equivalent to OpenAI's retrieve assistants. \n", + "parameters": [ + { + "in": "path", + "name": "assistant_id", + "required": true, + "schema": { + "type": "string", + "example": "jan" + }, + "description": "The ID of the assistant to retrieve.\n" + } + ], + "responses": { + "200": { + "description": "string", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RetrieveAssistantResponse" + } + } + } + } + } + } + }, + "/threads/{thread_id}/messages": { + "get": { + "operationId": "listMessages", + "tags": [ + "Messages" + ], + "summary": "List messages", + "description": "Retrieves all messages from the given thread. Equivalent to OpenAI's list messages. \n", + "parameters": [ + { + "in": "path", + "name": "thread_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "The ID of the thread from which to retrieve messages.\n" + } + ], + "responses": { + "200": { + "description": "List of messages retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMessagesResponse" + } + } + } + } + } + }, + "post": { + "operationId": "createMessage", + "tags": [ + "Messages" + ], + "summary": "Create message", + "description": "Create a message. Equivalent to OpenAI's list messages. \n", + "parameters": [ + { + "in": "path", + "name": "thread_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "The ID of the thread to which the message will be posted.\n" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role of the sender, either 'user' or 'assistant'.\n", + "example": "user", + "enum": [ + "user", + "assistant" + ] + }, + "content": { + "type": "string", + "description": "Text content of the message.\n", + "example": "How does AI work? Explain it in simple terms." + } + }, + "required": [ + "role", + "content" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Message created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageResponse" + } + } + } + } + } + } + }, + "/threads/{thread_id}/messages/{message_id}": { + "get": { + "operationId": "retrieveMessage", + "tags": [ + "Messages" + ], + "summary": "Retrieve message", + "description": "Retrieve a specific message from a thread using its thread_id and message_id. Equivalent to OpenAI's retrieve messages. \n", + "parameters": [ + { + "in": "path", + "name": "thread_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "The ID of the thread containing the message.\n" + }, + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string" + }, + "description": "The ID of the message to retrieve.\n" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetMessageResponse" + } + } + } + } + } + } + } + }, + "x-webhooks": { + "ModelObject": { + "post": { + "summary": "The model object", + "description": "Describe a model offering that can be used with the API. Equivalent to OpenAI's model object. \n", + "operationId": "ModelObject", + "tags": [ + "Models" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelObject" + } + } + } + } + } + }, + "AssistantObject": { + "post": { + "summary": "The assistant object", + "description": "Build assistants that can call models and use tools to perform tasks. Equivalent to OpenAI's assistants object. \n", + "operationId": "AssistantObjects", + "tags": [ + "Assistants" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssistantObject" + } + } + } + } + } + }, + "MessageObject": { + "post": { + "summary": "The message object", + "description": "Information about a message in the thread. Equivalent to OpenAI's message object. \n", + "operationId": "MessageObject", + "tags": [ + "Messages" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": null + } + } + } + } + } + }, + "ThreadObject": { + "post": { + "summary": "The thread object", + "description": "Represents a thread that contains messages. Equivalent to OpenAI's thread object. ", + "operationId": "ThreadObject", + "tags": [ + "Threads" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": null + } + } + } + } + } + } + }, + "components": { + "schemas": { + "ThreadObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the thread, defaults to foldername.\n", + "example": "thread_...." + }, + "object": { + "type": "string", + "description": "Type of the object, defaults to thread.\n", + "example": "thread" + }, + "title": { + "type": "string", + "description": "A brief summary or description of the thread, defaults to an empty string.\n", + "example": "funny physics joke" + }, + "assistants": { + "type": "array", + "description": "", + "items": { + "properties": { + "assistant_id": { + "type": "string", + "description": "The identifier of assistant, defaults to \"jan\"\n", + "example": "jan" + }, + "model": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "", + "example": "..." + }, + "settings": { + "type": "object", + "description": "Defaults to and overrides assistant.json's \"settings\" (and if none, then model.json \"settings\")\n" + }, + "parameters": { + "type": "object", + "description": "Defaults to and overrides assistant.json's \"parameters\" (and if none, then model.json \"parameters\")\n" + } + } + } + } + } + }, + "created": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the thread, defaults to file creation time.\n", + "example": 1231231 + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the thread, defaults to an empty object.\n", + "example": {} + } + } + }, + "GetThreadResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the thread.", + "example": "thread_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object", + "example": "thread" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the thread.", + "example": 1699014083 + }, + "assistants": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of assistants involved in the thread.", + "example": [ + "assistant-001" + ] + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the thread.", + "example": {} + }, + "messages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of messages within the thread.", + "example": [] + } + } + }, + "CreateThreadResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the newly created thread.", + "example": "thread_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a thread.", + "example": "thread" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the thread.", + "example": 1699014083 + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the newly created thread.", + "example": {} + } + } + }, + "CreateThreadObject": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Type of the object, indicating it's a thread.", + "example": "thread" + }, + "title": { + "type": "string", + "description": "A brief summary or description of the thread, defaults to an empty string.\n", + "example": "funny physics joke" + }, + "assistants": { + "type": "array", + "description": "assistant involved in the thread", + "items": { + "properties": { + "assistant_id": { + "type": "string", + "description": "The identifier of assistant, defaults to \"jan\"\n", + "example": "jan" + }, + "assistant_name": { + "type": "string", + "description": "The name of assistant, defaults to \"Jan\"\n", + "example": "Jan" + }, + "instructions": { + "type": "string", + "description": "The instruction of assistant, defaults to \"Be my grammar corrector\"\n" + }, + "model": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Model id", + "example": "mistral-ins-7b-q4" + }, + "settings": { + "type": "object", + "description": "Defaults to and overrides assistant.json's \"settings\" (and if none, then model.json \"settings\")\n" + }, + "parameters": { + "type": "object", + "description": "Defaults to and overrides assistant.json's \"parameters\" (and if none, then model.json \"parameters\")\n" + }, + "engine": { + "type": "string", + "description": "Engine id", + "example": "nitro" + } + } + } + } + } + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the thread, defaults to an empty object.\n" + } + } + }, + "ThreadMessageObject": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "\"Role of the sender, either 'user' or 'assistant'.\"\n", + "enum": [ + "user", + "assistant" + ] + }, + "content": { + "type": "string", + "description": "\"Text content of the message.\"\n" + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "\"Array of file IDs associated with the message, if any.\"\n" + } + } + }, + "ModifyThreadResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "\"The identifier of the modified thread.\"\n", + "example": "thread_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a thread.", + "example": "thread" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the thread.", + "example": 1699014083 + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the modified thread.", + "example": {} + } + } + }, + "DeleteThreadResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the deleted thread.", + "example": "thread_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating the thread has been deleted.", + "example": "thread.deleted" + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the thread was successfully deleted.", + "example": true + } + } + }, + "ListModelsResponse": { + "type": "object", + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Model" + } + } + }, + "required": [ + "object", + "data" + ] + }, + "Model": { + "type": "object", + "properties": { + "source_url": { + "type": "string", + "format": "uri", + "description": "URL to the source of the model.", + "example": "https://huggingface.co/janhq/trinity-v1.2-GGUF/resolve/main/trinity-v1.2.Q4_K_M.gguf" + }, + "id": { + "type": "string", + "description": "Unique identifier used in chat-completions model_name, matches folder name.", + "example": "trinity-v1.2-7b" + }, + "object": { + "type": "string", + "example": "model" + }, + "name": { + "type": "string", + "description": "Name of the model.", + "example": "Trinity-v1.2 7B Q4" + }, + "version": { + "type": "string", + "default": "1.0", + "description": "The version number of the model." + }, + "description": { + "type": "string", + "description": "Description of the model.", + "example": "Trinity is an experimental model merge using the Slerp method. Recommended for daily assistance purposes." + }, + "format": { + "type": "string", + "description": "State format of the model, distinct from the engine.", + "example": "gguf" + }, + "settings": { + "type": "object", + "properties": { + "ctx_len": { + "type": "integer", + "description": "Context length.", + "example": 4096 + }, + "prompt_template": { + "type": "string", + "example": "<|im_start|>system\n{system_message}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant" + } + }, + "additionalProperties": false + }, + "parameters": { + "type": "object", + "properties": { + "temperature": { + "example": 0.7 + }, + "top_p": { + "example": 0.95 + }, + "stream": { + "example": true + }, + "max_tokens": { + "example": 4096 + }, + "stop": { + "example": [] + }, + "frequency_penalty": { + "example": 0 + }, + "presence_penalty": { + "example": 0 + } + }, + "additionalProperties": false + }, + "metadata": { + "type": "object", + "properties": { + "author": { + "type": "string", + "example": "Jan" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "7B", + "Merged", + "Featured" + ] + }, + "size": { + "type": "integer", + "example": 4370000000 + }, + "cover": { + "type": "string", + "format": "uri", + "example": "https://raw.githubusercontent.com/janhq/jan/main/models/trinity-v1.2-7b/cover.png" + } + }, + "additionalProperties": false + }, + "engine": { + "example": "nitro" + } + } + }, + "ModelObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the model.\n", + "example": "trinity-v1.2-7b" + }, + "object": { + "type": "string", + "description": "The type of the object, indicating it's a model.\n", + "default": "model" + }, + "created": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the model.\n", + "example": 1253935178 + }, + "owned_by": { + "type": "string", + "description": "The entity that owns the model.\n", + "example": "_" + } + } + }, + "GetModelResponse": { + "type": "object", + "properties": { + "source_url": { + "type": "string", + "format": "uri", + "description": "URL to the source of the model.", + "example": "https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/resolve/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf" + }, + "id": { + "type": "string", + "description": "Unique identifier used in chat-completions model_name, matches folder name.", + "example": "mistral-ins-7b-q4" + }, + "object": { + "type": "string", + "example": "model" + }, + "name": { + "type": "string", + "description": "Name of the model.", + "example": "Mistral Instruct 7B Q4" + }, + "version": { + "type": "string", + "default": "1.0", + "description": "The version number of the model." + }, + "description": { + "type": "string", + "description": "Description of the model.", + "example": "Trinity is an experimental model merge using the Slerp method. Recommended for daily assistance purposes." + }, + "format": { + "type": "string", + "description": "State format of the model, distinct from the engine.", + "example": "gguf" + }, + "settings": { + "type": "object", + "properties": { + "ctx_len": { + "type": "integer", + "description": "Context length.", + "example": 4096 + }, + "prompt_template": { + "type": "string", + "example": "[INST] {prompt} [/INST]" + } + }, + "additionalProperties": false + }, + "parameters": { + "type": "object", + "properties": { + "temperature": { + "example": 0.7 + }, + "top_p": { + "example": 0.95 + }, + "stream": { + "example": true + }, + "max_tokens": { + "example": 4096 + }, + "stop": { + "example": [] + }, + "frequency_penalty": { + "example": 0 + }, + "presence_penalty": { + "example": 0 + } + }, + "additionalProperties": false + }, + "metadata": { + "type": "object", + "properties": { + "author": { + "type": "string", + "example": "MistralAI" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "7B", + "Featured", + "Foundation Model" + ] + }, + "size": { + "example": 4370000000, + "type": "integer" + }, + "cover": { + "example": "https://raw.githubusercontent.com/janhq/jan/main/models/mistral-ins-7b-q4/cover.png", + "type": "string" + } + }, + "additionalProperties": false + }, + "engine": { + "example": "nitro" + } + } + }, + "DeleteModelResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the model that was deleted.", + "example": "mistral-ins-7b-q4" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a model.", + "default": "model" + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the model was successfully deleted.", + "example": true + } + } + }, + "StartModelResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the model that was started.", + "example": "model-zephyr-7B" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a model.", + "default": "model" + }, + "state": { + "type": "string", + "description": "The current state of the model after the start operation.", + "example": "running" + } + }, + "required": [ + "id", + "object", + "state" + ] + }, + "StopModelResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the model that was started.", + "example": "model-zephyr-7B" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a model.", + "default": "model" + }, + "state": { + "type": "string", + "description": "The current state of the model after the start operation.", + "example": "stopped" + } + }, + "required": [ + "id", + "object", + "state" + ] + }, + "DownloadModelResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Message indicates Jan starting download corresponding model.", + "example": "Starting download mistral-ins-7b-q4" + } + } + }, + "MessageObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Sequential or UUID identifier of the message.\n", + "example": 0 + }, + "object": { + "type": "string", + "description": "Type of the object, defaults to 'thread.message'.\n", + "example": "thread.message" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the message.\n" + }, + "thread_id": { + "type": "string", + "description": "Identifier of the thread to which this message belongs. Defaults to parent thread.\n", + "example": "thread_asdf" + }, + "assistant_id": { + "type": "string", + "description": "Identifier of the assistant involved in the message. Defaults to parent thread.\n", + "example": "jan" + }, + "role": { + "type": "string", + "enum": [ + "user", + "assistant" + ], + "description": "Role of the sender, either 'user' or 'assistant'.\n" + }, + "content": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of content, e.g., 'text'.\n" + }, + "text": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Text content of the message.\n", + "example": "Hi!?" + }, + "annotations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Annotations for the text content, if any.\n", + "example": [] + } + } + } + } + } + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the message, defaults to an empty object.\n", + "example": {} + } + } + }, + "GetMessageResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the message.", + "example": "msg_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a thread message.", + "default": "thread.message" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the message.", + "example": 1699017614 + }, + "thread_id": { + "type": "string", + "description": "Identifier of the thread to which this message belongs.", + "example": "thread_abc123" + }, + "role": { + "type": "string", + "description": "Role of the sender, either 'user' or 'assistant'.", + "example": "user" + }, + "content": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of content, e.g., 'text'.", + "example": "text" + }, + "text": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Text content of the message.", + "example": "How does AI work? Explain it in simple terms." + }, + "annotations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Annotations for the text content, if any.", + "example": [] + } + } + } + } + } + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of file IDs associated with the message, if any.", + "example": [] + }, + "assistant_id": { + "type": "string", + "description": "Identifier of the assistant involved in the message, if applicable.", + "example": null + }, + "run_id": { + "type": "string", + "description": "Run ID associated with the message, if applicable.", + "example": null + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the message.", + "example": {} + } + } + }, + "CreateMessageResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the created message.", + "example": "msg_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a thread message.", + "example": "thread.message" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the message.", + "example": 1699017614 + }, + "thread_id": { + "type": "string", + "description": "Identifier of the thread to which this message belongs.", + "example": "thread_abc123" + }, + "role": { + "type": "string", + "description": "Role of the sender, either 'user' or 'assistant'.", + "example": "user" + }, + "content": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of content, e.g., 'text'.", + "example": "text" + }, + "text": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Text content of the message.", + "example": "How does AI work? Explain it in simple terms." + }, + "annotations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Annotations for the text content, if any.", + "example": [] + } + } + } + } + } + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of file IDs associated with the message, if any.", + "example": [] + }, + "assistant_id": { + "type": "string", + "description": "Identifier of the assistant involved in the message, if applicable.", + "example": null + }, + "run_id": { + "type": "string", + "description": "Run ID associated with the message, if applicable.", + "example": null + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the message.", + "example": {} + } + } + }, + "ListMessagesResponse": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Type of the object, indicating it's a list.", + "default": "list" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListMessageObject" + } + }, + "first_id": { + "type": "string", + "description": "Identifier of the first message in the list.", + "example": "msg_abc123" + }, + "last_id": { + "type": "string", + "description": "Identifier of the last message in the list.", + "example": "msg_abc456" + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether there are more messages to retrieve.", + "example": false + } + } + }, + "ListMessageObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the message.", + "example": "msg_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a thread message.", + "example": "thread.message" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the message.", + "example": 1699017614 + }, + "thread_id": { + "type": "string", + "description": "Identifier of the thread to which this message belongs.", + "example": "thread_abc123" + }, + "role": { + "type": "string", + "description": "Role of the sender, either 'user' or 'assistant'.", + "example": "user" + }, + "content": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of content, e.g., 'text'." + }, + "text": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Text content of the message.", + "example": "How does AI work? Explain it in simple terms." + }, + "annotations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Annotations for the text content, if any." + } + } + } + } + } + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of file IDs associated with the message, if any.", + "example": [] + }, + "assistant_id": { + "type": "string", + "description": "Identifier of the assistant involved in the message, if applicable.", + "example": null + }, + "run_id": { + "type": "string", + "description": "Run ID associated with the message, if applicable.", + "example": null + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the message.", + "example": {} + } + } + }, + "MessageFileObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the file.", + "example": "file-abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's a thread message file.", + "example": "thread.message.file" + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the file.", + "example": 1699061776 + }, + "message_id": { + "type": "string", + "description": "Identifier of the message to which this file is associated.", + "example": "msg_abc123" + } + } + }, + "ListMessageFilesResponse": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Type of the object, indicating it's a list.", + "default": "list" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageFileObject" + } + } + } + }, + "ChatObject": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "description": "Contains input data or prompts for the model to process.\n", + "items": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "example": [ + { + "content": "Hello there :wave:", + "role": "assistant" + }, + { + "content": "Can you write a long story", + "role": "user" + } + ] + }, + "stream": { + "type": "boolean", + "default": true, + "description": "Enables continuous output generation, allowing for streaming of model responses." + }, + "model": { + "type": "string", + "example": "gpt-3.5-turbo", + "description": "Specifies the model being used for inference or processing tasks." + }, + "max_tokens": { + "type": "number", + "default": 2048, + "description": "The maximum number of tokens the model will generate in a single response." + }, + "stop": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Defines specific tokens or phrases at which the model will stop generating further output.", + "example": [ + "hello" + ] + }, + "frequency_penalty": { + "type": "number", + "default": 0, + "description": "Adjusts the likelihood of the model repeating words or phrases in its output." + }, + "presence_penalty": { + "type": "number", + "default": 0, + "description": "Influences the generation of new and varied concepts in the model's output." + }, + "temperature": { + "type": "number", + "default": 0.7, + "description": "Controls the randomness of the model's output." + }, + "top_p": { + "type": "number", + "default": 0.95, + "description": "Set probability threshold for more relevant outputs." + }, + "cache_prompt": { + "type": "boolean", + "default": true, + "description": "Optimize performance in repeated or similar requests." + } + } + }, + "ChatCompletionRequest": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "description": "Contains input data or prompts for the model to process.\n", + "items": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "example": [ + { + "content": "You are a helpful assistant.", + "role": "system" + }, + { + "content": "Hello!", + "role": "user" + } + ] + }, + "model": { + "type": "string", + "example": "tinyllama-1.1b", + "description": "Specifies the model being used for inference or processing tasks.\n" + }, + "stream": { + "type": "boolean", + "default": true, + "description": "Enables continuous output generation, allowing for streaming of model responses.\n" + }, + "max_tokens": { + "type": "number", + "default": 2048, + "description": "The maximum number of tokens the model will generate in a single response.\n" + }, + "stop": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Defines specific tokens or phrases at which the model will stop generating further output.\n", + "example": [ + "hello" + ] + }, + "frequency_penalty": { + "type": "number", + "default": 0, + "description": "Adjusts the likelihood of the model repeating words or phrases in its output.\n" + }, + "presence_penalty": { + "type": "number", + "default": 0, + "description": "Influences the generation of new and varied concepts in the model's output.\n" + }, + "temperature": { + "type": "number", + "default": 0.7, + "description": "Controls the randomness of the model's output.\n" + }, + "top_p": { + "type": "number", + "default": 0.95, + "description": "Set probability threshold for more relevant outputs.\n" + } + } + }, + "ChatCompletionResponse": { + "type": "object", + "description": "Description of the response structure", + "properties": { + "choices": { + "type": "array", + "description": "Array of choice objects", + "items": { + "type": "object", + "properties": { + "finish_reason": { + "type": "string", + "nullable": true, + "example": null, + "description": "Reason for finishing the response, if applicable" + }, + "index": { + "type": "integer", + "example": 0, + "description": "Index of the choice" + }, + "message": { + "type": "object", + "properties": { + "content": { + "type": "string", + "example": "Hello user. What can I help you with?", + "description": "Content of the message" + }, + "role": { + "type": "string", + "example": "assistant", + "description": "Role of the sender" + } + } + } + } + } + }, + "created": { + "type": "integer", + "example": 1700193928, + "description": "Timestamp of when the response was created" + }, + "id": { + "type": "string", + "example": "ebwd2niJvJB1Q2Whyvkz", + "description": "Unique identifier of the response" + }, + "model": { + "type": "string", + "nullable": true, + "example": "_", + "description": "Model used for generating the response" + }, + "object": { + "type": "string", + "example": "chat.completion", + "description": "Type of the response object" + }, + "system_fingerprint": { + "type": "string", + "nullable": true, + "example": "_", + "description": "System fingerprint" + }, + "usage": { + "type": "object", + "description": "Information about the usage of tokens", + "properties": { + "completion_tokens": { + "type": "integer", + "example": 500, + "description": "Number of tokens used for completion" + }, + "prompt_tokens": { + "type": "integer", + "example": 33, + "description": "Number of tokens used in the prompt" + }, + "total_tokens": { + "type": "integer", + "example": 533, + "description": "Total number of tokens used" + } + } + } + } + }, + "AssistantObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the assistant.", + "example": "asst_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's an assistant.", + "default": "assistant" + }, + "version": { + "type": "integer", + "description": "Version number of the assistant.", + "example": 1 + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the assistant.", + "example": 1698984975 + }, + "name": { + "type": "string", + "description": "Name of the assistant.", + "example": "Math Tutor" + }, + "description": { + "type": "string", + "description": "Description of the assistant. Can be null.", + "example": null + }, + "avatar": { + "type": "string", + "description": "URL of the assistant's avatar. Jan-specific property.", + "example": "https://pic.png" + }, + "models": { + "type": "array", + "description": "List of models associated with the assistant. Jan-specific property.", + "items": { + "type": "object", + "properties": { + "model_id": { + "type": "string", + "example": "model_0" + } + } + } + }, + "instructions": { + "type": "string", + "description": "A system prompt for the assistant.", + "example": "Be concise" + }, + "events": { + "type": "object", + "description": "Event subscription settings for the assistant.", + "properties": { + "in": { + "type": "array", + "items": { + "type": "string" + } + }, + "out": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the assistant." + } + } + }, + "ListAssistantsResponse": { + "type": "object" + }, + "CreateAssistantResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the assistant.", + "example": "asst_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's an assistant.", + "default": "assistant" + }, + "version": { + "type": "integer", + "description": "Version number of the assistant.", + "example": 1 + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the assistant.", + "example": 1698984975 + }, + "name": { + "type": "string", + "description": "Name of the assistant.", + "example": "Math Tutor" + }, + "description": { + "type": "string", + "description": "Description of the assistant. Can be null.", + "example": null + }, + "avatar": { + "type": "string", + "description": "URL of the assistant's avatar. Jan-specific property.", + "example": "https://pic.png" + }, + "models": { + "type": "array", + "description": "List of models associated with the assistant. Jan-specific property.", + "items": { + "type": "object", + "properties": { + "model_id": { + "type": "string", + "example": "model_0" + } + } + } + }, + "instructions": { + "type": "string", + "description": "A system prompt for the assistant.", + "example": "Be concise" + }, + "events": { + "type": "object", + "description": "Event subscription settings for the assistant.", + "properties": { + "in": { + "type": "array", + "items": { + "type": "string" + } + }, + "out": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the assistant." + } + } + }, + "RetrieveAssistantResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the assistant.", + "example": "asst_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's an assistant.", + "default": "assistant" + }, + "version": { + "type": "integer", + "description": "Version number of the assistant.", + "example": 1 + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the assistant.", + "example": 1698984975 + }, + "name": { + "type": "string", + "description": "Name of the assistant.", + "example": "Math Tutor" + }, + "description": { + "type": "string", + "description": "Description of the assistant. Can be null.", + "example": null + }, + "avatar": { + "type": "string", + "description": "URL of the assistant's avatar. Jan-specific property.", + "example": "https://pic.png" + }, + "models": { + "type": "array", + "description": "List of models associated with the assistant. Jan-specific property.", + "items": { + "type": "object", + "properties": { + "model_id": { + "type": "string", + "example": "model_0" + } + } + } + }, + "instructions": { + "type": "string", + "description": "A system prompt for the assistant.", + "example": "Be concise" + }, + "events": { + "type": "object", + "description": "Event subscription settings for the assistant.", + "properties": { + "in": { + "type": "array", + "items": { + "type": "string" + } + }, + "out": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the assistant." + } + } + }, + "ModifyAssistantObject": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the assistant.", + "example": "asst_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's an assistant.", + "default": "assistant" + }, + "version": { + "type": "integer", + "description": "Version number of the assistant.", + "example": 1 + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the assistant.", + "example": 1698984975 + }, + "name": { + "type": "string", + "description": "Name of the assistant.", + "example": "Math Tutor" + }, + "description": { + "type": "string", + "description": "Description of the assistant. Can be null.", + "example": null + }, + "avatar": { + "type": "string", + "description": "URL of the assistant's avatar. Jan-specific property.", + "example": "https://pic.png" + }, + "models": { + "type": "array", + "description": "List of models associated with the assistant. Jan-specific property.", + "items": { + "type": "object", + "properties": { + "model_id": { + "type": "string", + "example": "model_0" + } + } + } + }, + "instructions": { + "type": "string", + "description": "A system prompt for the assistant.", + "example": "Be concise" + }, + "events": { + "type": "object", + "description": "Event subscription settings for the assistant.", + "properties": { + "in": { + "type": "array", + "items": { + "type": "string" + } + }, + "out": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the assistant." + } + } + }, + "ModifyAssistantResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the assistant.", + "example": "asst_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating it's an assistant.", + "default": "assistant" + }, + "version": { + "type": "integer", + "description": "Version number of the assistant.", + "example": 1 + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp representing the creation time of the assistant.", + "example": 1698984975 + }, + "name": { + "type": "string", + "description": "Name of the assistant.", + "example": "Physics Tutor" + }, + "description": { + "type": "string", + "description": "Description of the assistant. Can be null.", + "example": null + }, + "avatar": { + "type": "string", + "description": "URL of the assistant's avatar. Jan-specific property.", + "example": "https://pic.png" + }, + "models": { + "type": "array", + "description": "List of models associated with the assistant. Jan-specific property.", + "items": { + "type": "object", + "properties": { + "model_id": { + "type": "string", + "example": "model_0" + } + } + } + }, + "instructions": { + "type": "string", + "description": "A system prompt for the assistant.", + "example": "Be concise!" + }, + "events": { + "type": "object", + "description": "Event subscription settings for the assistant.", + "properties": { + "in": { + "type": "array", + "items": { + "type": "string" + } + }, + "out": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "metadata": { + "type": "object", + "description": "Metadata associated with the assistant." + } + } + }, + "DeleteAssistantResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the deleted assistant.", + "example": "asst_abc123" + }, + "object": { + "type": "string", + "description": "Type of the object, indicating the assistant has been deleted.", + "example": "assistant.deleted" + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the assistant was successfully deleted.", + "example": true + } + } + } + } + } +} \ No newline at end of file diff --git a/docs/openapi/jan.yaml b/docs/openapi/jan.yaml index 864c80fdf..f45db7d2d 100644 --- a/docs/openapi/jan.yaml +++ b/docs/openapi/jan.yaml @@ -93,6 +93,108 @@ paths: "temperature": 0.7, "top_p": 0.95 }' + - lang: JavaScript + source: |- + const data = { + messages: [ + { + content: 'You are a helpful assistant.', + role: 'system' + }, + { + content: 'Hello!', + role: 'user' + } + ], + model: 'tinyllama-1.1b', + stream: true, + max_tokens: 2048, + stop: ['hello'], + frequency_penalty: 0, + presence_penalty: 0, + temperature: 0.7, + top_p: 0.95 + }; + + fetch('http://localhost:1337/v1/chat/completions', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json' + }, + body: JSON.stringify(data) + }) + .then(response => response.json()) + .then(data => console.log(data)); + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + const data = { + messages: [ + { + content: 'You are a helpful assistant.', + role: 'system' + }, + { + content: 'Hello!', + role: 'user' + } + ], + model: 'tinyllama-1.1b', + stream: true, + max_tokens: 2048, + stop: ['hello'], + frequency_penalty: 0, + presence_penalty: 0, + temperature: 0.7, + top_p: 0.95 + }; + + fetch('http://localhost:1337/v1/chat/completions', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json' + }, + body: JSON.stringify(data) + }) + .then(response => response.json()) + .then(data => console.log(data)); + - lang: Python + source: >- + import requests + + import json + + + data = { + "messages": [ + { + "content": "You are a helpful assistant.", + "role": "system" + }, + { + "content": "Hello!", + "role": "user" + } + ], + "model": "tinyllama-1.1b", + "stream": true, + "max_tokens": 2048, + "stop": [ + "hello" + ], + "frequency_penalty": 0, + "presence_penalty": 0, + "temperature": 0.7, + "top_p": 0.95 + } + + + response = requests.post('http://localhost:1337/v1/chat/completions', json=data) + + print(response.json()) /models: get: operationId: listModels @@ -113,10 +215,38 @@ paths: $ref: specs/models.yaml#/components/schemas/ListModelsResponse x-codeSamples: - lang: cURL - source: | + source: |- curl -X 'GET' \ 'http://localhost:1337/v1/models' \ -H 'accept: application/json' + - lang: JavaScript + source: |- + const response = await fetch('http://localhost:1337/v1/models', { + method: 'GET', + headers: {Accept: 'application/json'} + }); + const data = await response.json(); + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + const url = 'http://localhost:1337/v1/models'; + const options = { + method: 'GET', + headers: { Accept: 'application/json' } + }; + + fetch(url, options) + .then(res => res.json()) + .then(json => console.log(json)); + - lang: Python + source: |- + import requests + + url = 'http://localhost:1337/v1/models' + headers = {'Accept': 'application/json'} + response = requests.get(url, headers=headers) + data = response.json() "/models/download/{model_id}": get: operationId: downloadModel @@ -143,10 +273,38 @@ paths: $ref: specs/models.yaml#/components/schemas/DownloadModelResponse x-codeSamples: - lang: cURL - source: | - curl -X 'GET' \ - 'http://localhost:1337/v1/models/download/{model_id}' \ + source: |- + curl -X 'GET' \ + 'http://localhost:1337/v1/models/download/{model_id}' \ -H 'accept: application/json' + - lang: JavaScript + source: >- + const response = await + fetch('http://localhost:1337/v1/models/download/{model_id}', { + method: 'GET', + headers: {accept: 'application/json'} + }); + + + const data = await response.json(); + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + fetch('http://localhost:1337/v1/models/download/{model_id}', { + method: 'GET', + headers: {accept: 'application/json'} + }) + .then(res => res.json()) + .then(data => console.log(data)); + - lang: Python + source: >- + import requests + + + response = requests.get('http://localhost:1337/v1/models/download/{model_id}', headers={'accept': 'application/json'}) + + data = response.json() "/models/{model_id}": get: operationId: retrieveModel @@ -176,10 +334,45 @@ paths: $ref: specs/models.yaml#/components/schemas/GetModelResponse x-codeSamples: - lang: cURL - source: | - curl -X 'GET' \ - 'http://localhost:1337/v1/models/{model_id}' \ + source: |- + curl -X 'GET' \ + 'http://localhost:1337/v1/models/{model_id}' \ -H 'accept: application/json' + - lang: JavaScript + source: |- + const fetch = require('node-fetch'); + + const modelId = 'mistral-ins-7b-q4'; + + fetch(`http://localhost:1337/v1/models/${modelId}`, { + method: 'GET', + headers: {'accept': 'application/json'} + }) + .then(res => res.json()) + .then(json => console.log(json)); + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + const modelId = 'mistral-ins-7b-q4'; + + fetch(`http://localhost:1337/v1/models/${modelId}`, { + method: 'GET', + headers: {'accept': 'application/json'} + }) + .then(res => res.json()) + .then(json => console.log(json)); + - lang: Python + source: >- + import requests + + + model_id = 'mistral-ins-7b-q4' + + + response = requests.get(f'http://localhost:1337/v1/models/{model_id}', headers={'accept': 'application/json'}) + + print(response.json()) delete: operationId: deleteModel tags: @@ -207,10 +400,43 @@ paths: $ref: specs/models.yaml#/components/schemas/DeleteModelResponse x-codeSamples: - lang: cURL - source: | + source: |- curl -X 'DELETE' \ 'http://localhost:1337/v1/models/{model_id}' \ -H 'accept: application/json' + - lang: JavaScript + source: |- + const fetch = require('node-fetch'); + + const modelId = 'mistral-ins-7b-q4'; + + fetch(`http://localhost:1337/v1/models/${modelId}`, { + method: 'DELETE', + headers: { 'accept': 'application/json' } + }) + .then(res => res.json()) + .then(json => console.log(json)); + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + const modelId = 'mistral-ins-7b-q4'; + + fetch(`http://localhost:1337/v1/models/${modelId}`, { + method: 'DELETE', + headers: { 'accept': 'application/json' } + }) + .then(res => res.json()) + .then(json => console.log(json)); + - lang: Python + source: >- + import requests + + + model_id = 'mistral-ins-7b-q4' + + + response = requests.delete(f'http://localhost:1337/v1/models/{model_id}', headers={'accept': 'application/json'}) /threads: post: operationId: createThread @@ -237,8 +463,8 @@ paths: x-codeSamples: - lang: cURL source: | - curl -X POST http://localhost:1337/v1/threads \ - -H "Content-Type: application/json" \ + curl -X POST http://localhost:1337/v1/threads \ + -H "Content-Type: application/json" \ -d '{ "messages": [{ "role": "user", @@ -249,6 +475,73 @@ paths: "content": "How does AI work? Explain it in simple terms." }] }' + - lang: JavaScript + source: |- + const fetch = require('node-fetch'); + + fetch('http://localhost:1337/v1/threads', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + messages: [ + { + role: 'user', + content: 'Hello, what is AI?', + file_ids: ['file-abc123'] + }, + { + role: 'user', + content: 'How does AI work? Explain it in simple terms.' + } + ] + }) + }); + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + fetch('http://localhost:1337/v1/threads', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + messages: [ + { + role: 'user', + content: 'Hello, what is AI?', + file_ids: ['file-abc123'] + }, + { + role: 'user', + content: 'How does AI work? Explain it in simple terms.' + } + ] + }) + }); + - lang: Python + source: |- + import requests + + url = 'http://localhost:1337/v1/threads' + payload = { + 'messages': [ + { + 'role': 'user', + 'content': 'Hello, what is AI?', + 'file_ids': ['file-abc123'] + }, + { + 'role': 'user', + 'content': 'How does AI work? Explain it in simple terms.' + } + ] + } + + response = requests.post(url, json=payload) + print(response.text) get: operationId: listThreads tags: @@ -282,9 +575,36 @@ paths: metadata: {} x-codeSamples: - lang: cURL - source: | - curl http://localhost:1337/v1/threads \ - -H "Content-Type: application/json" \ + source: |- + curl http://localhost:1337/v1/threads \ + -H "Content-Type: application/json" + - lang: JavaScript + source: |- + const fetch = require('node-fetch'); + + fetch('http://localhost:1337/v1/threads', { + method: 'GET', + headers: {'Content-Type': 'application/json'} + }).then(res => res.json()) + .then(json => console.log(json)); + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + fetch('http://localhost:1337/v1/threads', { + method: 'GET', + headers: {'Content-Type': 'application/json'} + }).then(res => res.json()) + .then(json => console.log(json)); + - lang: Python + source: |- + import requests + + url = 'http://localhost:1337/v1/threads' + headers = {'Content-Type': 'application/json'} + + response = requests.get(url, headers=headers) + print(response.json()) "/threads/{thread_id}": get: operationId: getThread @@ -442,9 +762,35 @@ paths: metadata: {} x-codeSamples: - lang: cURL - source: | + source: |- curl http://localhost:1337/v1/assistants \ - -H "Content-Type: application/json" \ + -H "Content-Type: application/json" + - lang: JavaScript + source: |- + fetch('http://localhost:1337/v1/assistants', { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }) + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + fetch('http://localhost:1337/v1/assistants', { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }) + - lang: Python + source: |- + import requests + + url = 'http://localhost:1337/v1/assistants' + headers = {'Content-Type': 'application/json'} + + response = requests.get(url, headers=headers) "/assistants/{assistant_id}": get: operationId: getAssistant @@ -473,9 +819,42 @@ paths: $ref: specs/assistants.yaml#/components/schemas/RetrieveAssistantResponse x-codeSamples: - lang: cURL - source: | + source: |- curl http://localhost:1337/v1/assistants/{assistant_id} \ - -H "Content-Type: application/json" \ + -H "Content-Type: application/json" + - lang: JavaScript + source: |- + const fetch = require('node-fetch'); + + let assistantId = 'abc123'; + + fetch(`http://localhost:1337/v1/assistants/${assistantId}`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }) + - lang: Node.js + source: |- + const fetch = require('node-fetch'); + + let assistantId = 'abc123'; + + fetch(`http://localhost:1337/v1/assistants/${assistantId}`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }) + - lang: Python + source: >- + import requests + + + assistant_id = 'abc123' + + + response = requests.get(f'http://localhost:1337/v1/assistants/{assistant_id}', headers={'Content-Type': 'application/json'}) "/threads/{thread_id}/messages": get: operationId: listMessages diff --git a/docs/package.json b/docs/package.json index 2764786ba..9c8d805dc 100644 --- a/docs/package.json +++ b/docs/package.json @@ -18,6 +18,7 @@ "@docsearch/react": "3", "@docusaurus/core": "^3.0.0", "@docusaurus/plugin-client-redirects": "^3.0.0", + "@docusaurus/plugin-content-blog": "^3.0.0", "@docusaurus/plugin-content-docs": "^3.0.0", "@docusaurus/preset-classic": "^3.0.0", "@docusaurus/theme-live-codeblock": "^3.0.0", @@ -26,6 +27,7 @@ "@heroicons/react": "^2.0.18", "@mdx-js/react": "^3.0.0", "@redocly/cli": "^1.4.1", + "@scalar/docusaurus": "^0.1.3", "autoprefixer": "^10.4.16", "axios": "^1.5.1", "clsx": "^1.2.1", @@ -36,9 +38,12 @@ "postcss": "^8.4.30", "posthog-docusaurus": "^2.0.0", "prism-react-renderer": "^1.3.5", + "lucide-react": "^0.291.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-hook-form": "^7.47.0", "react-icons": "^4.11.0", + "react-tweet": "^3.2.0", "redocusaurus": "^2.0.0", "sass": "^1.69.3", "tailwind-merge": "^2.1.0", @@ -46,7 +51,7 @@ }, "devDependencies": { "@docusaurus/module-type-aliases": "^3.0.0", - "dotenv": "^16.3.1", + "dotenv": "^16.4.5", "tailwindcss-animate": "^1.0.7" }, "browserslist": { diff --git a/docs/plugins/changelog-plugin/fetchData.js b/docs/plugins/changelog-plugin/fetchData.js new file mode 100644 index 000000000..7c3620a53 --- /dev/null +++ b/docs/plugins/changelog-plugin/fetchData.js @@ -0,0 +1,136 @@ +const fs = require('fs'); +const path = require('path'); +const fetch = require('node-fetch'); + +async function fetchData(siteConfig, forceRefresh = false) { + const owner = siteConfig.organizationName; + const repo = siteConfig.projectName; + const apiUrl = `https://api.github.com/repos/${owner}/${repo}/releases`; + + const outputDirectory = path.join(__dirname, '../../docs/releases/changelog'); + + if (!fs.existsSync(outputDirectory)) { + fs.mkdirSync(outputDirectory); + } + + let counter = 1; + const cacheFilePath = path.join(outputDirectory, 'cache.json'); + + let cachedData = {}; + if (fs.existsSync(cacheFilePath) && !forceRefresh) { + cachedData = JSON.parse(fs.readFileSync(cacheFilePath, 'utf-8')); + } + + // Function to retrieve issue details from GitHub API + async function getIssueDetails(issueNumber) { + const issueApiUrl = `https://api.github.com/repos/${owner}/${repo}/issues/${issueNumber}`; + const response = await fetch(issueApiUrl, { + method: 'GET', + headers: { + 'Accept': 'application/vnd.github.v3+json', + }, + }); + + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + + return response.json(); + } + + // Fetch releases from GitHub API or load from cache + let releases = []; + try { + if (cachedData.releases && !forceRefresh) { + console.log('Loading releases from cache...'); + releases = cachedData.releases; + } else { + console.log('Fetching releases from GitHub API...'); + const response = await fetch(apiUrl, { + method: 'GET', + headers: { + 'Accept': 'application/vnd.github+json', + }, + }); + + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + + releases = await response.json(); + // Cache the fetched releases + cachedData.releases = releases; + fs.writeFileSync(cacheFilePath, JSON.stringify(cachedData, null, 2), 'utf-8'); + console.log(`Fetched releases saved to cache: ${cacheFilePath}`); + } + } catch (error) { + console.error('Error fetching GitHub releases:', error.message); + return; + } + + // Check if there are new releases + const newReleases = releases.filter(release => { + const version = release.tag_name; + const existingChangelogPath = path.join(outputDirectory, `changelog-${version}.mdx`); + return !fs.existsSync(existingChangelogPath); + }); + + // If there are new releases, update existing changelog files' sidebar positions + if (newReleases.length > 0) { + console.log(`Updating sidebar positions for ${newReleases.length} new releases...`); + const existingChangelogFiles = fs.readdirSync(outputDirectory) + .filter(file => file.startsWith('changelog-')); + + existingChangelogFiles.forEach((filename, index) => { + const version = filename.substring(10, filename.length - 4); + const existingChangelogPath = path.join(outputDirectory, filename); + const content = fs.readFileSync(existingChangelogPath, 'utf-8'); + const sidebarPositionMatch = content.match(/sidebar_position: (\d+)/); + let sidebarPosition = index + 1; + + if (sidebarPositionMatch) { + sidebarPosition = parseInt(sidebarPositionMatch[1]); + } + + const updatedContent = content.replace(/sidebar_position: (\d+)/, `sidebar_position: ${sidebarPosition}`); + fs.writeFileSync(existingChangelogPath, updatedContent, 'utf-8'); + console.log(`Sidebar position updated for changelog-${version}`); + }); + } + + // Process the GitHub releases data here + for (const release of releases) { + const version = release.tag_name; + + // Check if the changelog file already exists for the current version + const existingChangelogPath = path.join(outputDirectory, `changelog-${version}.mdx`); + if (fs.existsSync(existingChangelogPath)) { + console.log(`Changelog for version ${version} already exists. Skipping...`); + continue; + } + + const releaseUrl = release.html_url; + const issueNumberMatch = release.body.match(/#(\d+)/); + const issueNumber = issueNumberMatch ? parseInt(issueNumberMatch[1], 10) : null; + + let issueLink = ''; + if (issueNumber) { + const issueDetails = await getIssueDetails(issueNumber); + issueLink = ` [Issue #${issueNumber}: ${issueDetails.title}](${issueDetails.html_url})`; + } + + const changes = release.body; + + let markdownContent = `---\nsidebar_position: ${counter}\nslug: /changelog/changelog-${version}\n---\n# ${version}\n\nFor more details, [GitHub Issues](${releaseUrl})\n\nHighlighted Issue: ${issueLink}\n\n${changes}\n`; + + // Write to a separate markdown file for each version + const outputFilePath = path.join(outputDirectory, `changelog-${version}.mdx`); + fs.writeFileSync(outputFilePath, markdownContent, 'utf-8'); + + console.log(`Changelog for version ${version} has been exported to: ${outputFilePath}`); + + counter++; + } +} + +module.exports = fetchData; diff --git a/docs/plugins/changelog-plugin/index.js b/docs/plugins/changelog-plugin/index.js new file mode 100644 index 000000000..574b582e5 --- /dev/null +++ b/docs/plugins/changelog-plugin/index.js @@ -0,0 +1,30 @@ +const fetchData = require('./fetchData'); + +module.exports = function (context, options) { + const { siteConfig, isBuild } = context; + + // Fetch GitHub releases and generate markdown files + fetchData(siteConfig) + .then(() => { + console.log('Changelog data fetched successfully.'); + }) + .catch((error) => { + console.error('Error fetching GitHub releases:', error.message); + }); + + // Hook into Docusaurus lifecycle events + return { + name: 'changelog-plugin', + async onPreBuild() { + if (isBuild) { + // Fetch GitHub releases and generate markdown files during the build + // await fetchData(siteConfig); + } + }, + + async onPostBuild() { + // If you need additional actions after the build, you can include them here. + await fetchData(siteConfig, true); + }, + }; +}; diff --git a/docs/sidebars.js b/docs/sidebars.js index 2f9254983..f9775c645 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -20,6 +20,7 @@ const sidebars = { link: { type: "doc", id: "about/about" }, items: [ //"about/roadmap", + // temporary unpublish "about/vision", "community/community", ], }, @@ -44,7 +45,6 @@ const sidebars = { items: [ "how-we-work/engineering/ci-cd", "how-we-work/engineering/qa", - "how-we-work/engineering/acknowledgements", ], }, "how-we-work/product-design/product-design", @@ -52,6 +52,14 @@ const sidebars = { "how-we-work/website-docs/website-docs", ], }, + "acknowledgements", + { + type: "category", + label: "FAQ", + link: { type: "doc", id: "about/faq" }, + items: + [], + }, ], productSidebar: [ { @@ -152,9 +160,262 @@ const sidebars = { ], guidesSidebar: [ { - type: "autogenerated", - dirName: "guides", + type: "category", + label: "Get Started", + collapsible: false, + className: "head_Menu", + items: [ + "guides/get-started/overview", + "guides/get-started/quickstart", + + { + type: "category", + label: "Hardware Setup", + className: "head_SubMenu", + link: { + type: 'doc', + id: "guides/get-started/hardware-setup", + }, + items: [ + "guides/get-started/settingup-gpu", + ] + }, + { + type: "category", + label: "Installation", + className: "head_SubMenu", + link: { + type: 'doc', + id: "guides/installation/README", + }, + items: [ + "guides/installation/docker", + "guides/installation/linux", + "guides/installation/mac", + "guides/installation/windows" + ] + }, + ] }, + { + type: "category", + label: "User Guides", + collapsible: false, + className: "head_Menu", + items: [ + "guides/user-guides/overview-guides", + "guides/user-guides/jan-data-folder", + "guides/user-guides/manage-models", + "guides/user-guides/manage-assistants", + "guides/user-guides/manage-threads", + "guides/user-guides/local-server", + "guides/user-guides/advanced-settings" + ] + }, + { + type: "category", + label: "Inference Engines", + collapsible: false, + className: "head_Menu", + items: [ + "guides/inference/overview-inference", + { + type: "category", + label: "Local Engines", + className: "head_SubMenu", + link: { + type: 'doc', + id: "guides/local-providers/README", + }, + items: [ + "guides/local-providers/llamacpp", + "guides/local-providers/lmstudio", + "guides/local-providers/ollama", + "guides/local-providers/tensorrt", + ] + }, + { + type: "category", + label: "Remote Engines", + className: "head_SubMenu", + link: { + type: 'doc', + id: "guides/remote-providers/README", + }, + items: [ + "guides/remote-providers/claude", + "guides/remote-providers/groq", + "guides/remote-providers/mistral", + "guides/remote-providers/openai", + "guides/remote-providers/remote-server-integration" + ] + }, + ] + }, + { + type: "category", + label: "Extensions", + collapsible: false, + className: "head_Menu", + items: [ + "guides/extensions/extensions", + ] + }, + { + type: "category", + label: "Integrations", + collapsible: false, + className: "head_Menu", + items: [ + // "guides/integrations/overview-integration", + { + type: "category", + label: "Integrations", + className: "head_SubMenu", + link: { + type: 'doc', + id: "guides/integrations/README", + }, + items: [ + "guides/integrations/crewai", + "guides/integrations/discord", + "guides/integrations/interpreter", + "guides/integrations/raycast", + "guides/integrations/router", + "guides/integrations/unsloth", + "guides/integrations/vscode" + ] + }, + ] + }, + { + type: "category", + label: "Troubleshooting", + collapsible: false, + className: "head_Menu", + items: [ + "guides/troubleshooting", + ] + }, + // { + // type: "category", + // label: "Advanced Features", + // collapsible: false, + // className: "head_Menu", + // items: [ + // { + // type: "category", + // label: "Advanced Settings", + // className: "head_SubMenu", + // link: { + // type: 'doc', + // id: "guides/advanced-settings/advanced-settings", + // }, + // items: [ + // "guides/advanced-settings/http-proxy", + // ] + // }, + // { + // type: "category", + // label: "Advanced Model Setup", + // className: "head_SubMenu", + // link: { + // type: 'doc', + // id: "guides/models/README", + // }, + // items: [ + // "guides/models/customize-engine", + // "guides/models/import-models", + // "guides/models/integrate-remote", + // ] + // }, + // { + // type: "category", + // label: "Inference Providers", + // className: "head_SubMenu", + // link: { + // type: 'doc', + // id: "guides/providers/README", + // }, + // items: [ + // "guides/providers/llama-cpp", + // "guides/providers/tensorrt-llm", + // ] + // }, + // { + // type: "category", + // label: "Extensions", + // className: "head_SubMenu", + // link: { + // type: 'doc', + // id: "guides/extensions/README", + // }, + // items: [ + // "guides/extensions/import-ext", + // "guides/extensions/setup-ext", + // ] + // }, + // { + // type: "category", + // label: "Integrations", + // className: "head_SubMenu", + // link: { + // type: 'doc', + // id: "guides/integration/README", + // }, + // items: [ + // "guides/integration/azure", + // "guides/integration/discord", + // "guides/integration/groq", + // "guides/integration/lmstudio", + // "guides/integration/mistral", + // "guides/integration/ollama", + // "guides/integration/openinterpreter", + // "guides/integration/openrouter", + // "guides/integration/raycast", + // "guides/integration/vscode", + // ] + // }, + // ] + // }, + // { + // type: "category", + // label: "Troubleshooting", + // collapsible: false, + // className: "head_Menu", + // items: [ + // { + // type: "category", + // label: "Error Codes", + // className: "head_SubMenu", + // link: { + // type: 'doc', + // id: "guides/error-codes/README", + // }, + // items: [ + // "guides/error-codes/how-to-get-error-logs", + // "guides/error-codes/permission-denied", + // "guides/error-codes/something-amiss", + // "guides/error-codes/undefined-issue", + // "guides/error-codes/unexpected-token", + // ] + // }, + // { + // type: "category", + // label: "Common Error", + // className: "head_SubMenu", + // link: { + // type: 'doc', + // id: "guides/common-error/README", + // }, + // items: [ + // "guides/common-error/broken-build", + // "guides/common-error/not-using-gpu", + // ] + // }, + // "guides/faq" + // ] + // }, ], developerSidebar: [ { @@ -162,12 +423,12 @@ const sidebars = { dirName: "developer", }, ], - docsSidebar: [ + releasesSidebar: [ { type: "autogenerated", - dirName: "docs", + dirName: "releases", }, - ], + ] }; module.exports = sidebars; diff --git a/docs/src/components/HomepagePrimaryFeatures/index.js b/docs/src/components/HomepagePrimaryFeatures/index.js new file mode 100644 index 000000000..40e715f10 --- /dev/null +++ b/docs/src/components/HomepagePrimaryFeatures/index.js @@ -0,0 +1,34 @@ +export default function HomepagePrimaryFeatures() { + return ( +
+
+
+
+
+

Installation

+

Install Jan across multiple platforms.

+
+ +
+ {"Card +
+
+
+
+

API Reference

+

Interact with our API locally.

+
+ +
+ {"Card +
+
+
+
+
+ ); +} diff --git a/docs/src/components/HomepageSecondaryFeatures/index.js b/docs/src/components/HomepageSecondaryFeatures/index.js new file mode 100644 index 000000000..c48e50cb2 --- /dev/null +++ b/docs/src/components/HomepageSecondaryFeatures/index.js @@ -0,0 +1,54 @@ +import React from 'react' + +export default function HomepageSecondaryFeatures() { + return ( +
+
+
+ + + +
+
+
+ ) +} + +function FeatureCard({ imgSrc, title, description, href }) { + return ( +
+
+
+ {'Feature +
+
+

{title}

+

{description}

+
+
+ +
+ ) +} diff --git a/docs/src/components/HomepageTerinaryFeatures/index.js b/docs/src/components/HomepageTerinaryFeatures/index.js new file mode 100644 index 000000000..bd4588e96 --- /dev/null +++ b/docs/src/components/HomepageTerinaryFeatures/index.js @@ -0,0 +1,114 @@ +export default function HomepageTerinaryFeatures() { + return ( +
+
+
+
+
+ {"Icon"} +
Get Started
+
+
+

Easily kick off your journey with Jan by installing your AI locally.

+ +
+
+
+
+ {"Icon"} +
User Guides
+
+
+

Explore our comprehensive guide on configuring and using the Jan application.

+ +
+
+
+
+ {"Icon"} +
Inference
+
+
+

Learn how to build and integrate Jan with local and remote inference providers.

+ +
+
+
+
+ {"Icon"} +
Troubleshooting
+
+
+

Find solutions to common issues and including error codes.

+ +
+
+
+
+
+ ); +} \ No newline at end of file diff --git a/docs/src/containers/Banner/index.js b/docs/src/containers/Banner/index.js index 07622c63d..3538ab7a9 100644 --- a/docs/src/containers/Banner/index.js +++ b/docs/src/containers/Banner/index.js @@ -1,32 +1,43 @@ -import React from "react"; +import React from 'react' -import { useAppStars } from "@site/src/hooks/useAppStars"; -import { useAppRelease } from "@site/src/hooks/useAppRelease"; +import { useAppStars } from '@site/src/hooks/useAppStars' +import { useAppRelease } from '@site/src/hooks/useAppRelease' -import { AiOutlineGithub, AiOutlineTwitter } from "react-icons/ai"; -import { BiLogoDiscordAlt } from "react-icons/bi"; +import { AiOutlineGithub, AiOutlineTwitter } from 'react-icons/ai' +import { BiLogoDiscordAlt } from 'react-icons/bi' +import { FaLinkedin } from 'react-icons/fa' const socials = [ { icon: , - href: "https://twitter.com/janframework", + href: 'https://twitter.com/janframework', }, { icon: , - href: "https://discord.com/invite/FTk2MvZwJH", + href: 'https://discord.com/invite/FTk2MvZwJH', }, { icon: , - href: "https://github.com/janhq/jan", + href: 'https://github.com/janhq/jan', }, -]; + { + icon: , + href: 'https://www.linkedin.com/company/janframework/', + }, +] export default function AnnoncementBanner() { - const { stargazers } = useAppStars(); - const { release } = useAppRelease(); + const { stargazers } = useAppStars() + const { release } = useAppRelease() return ( -
+
{social.icon} - ); + ) })}
- ); + ) } diff --git a/docs/src/containers/DownloadApp/index.js b/docs/src/containers/DownloadApp/index.js index d1b586698..e3e5b6d42 100644 --- a/docs/src/containers/DownloadApp/index.js +++ b/docs/src/containers/DownloadApp/index.js @@ -1,135 +1,161 @@ -import React, { useState, useEffect } from "react"; -import axios from "axios"; -import { FaWindows, FaApple, FaLinux } from "react-icons/fa"; -import { twMerge } from "tailwind-merge"; +import React, { useState, useEffect } from 'react' +import axios from 'axios' +import { FaWindows, FaApple, FaLinux } from 'react-icons/fa' +import { twMerge } from 'tailwind-merge' +import { DownloadIcon } from 'lucide-react' const systemsTemplate = [ { - name: "Mac M1, M2, M3", + name: 'Mac M1, M2, M3', + label: 'Apple Silicon', logo: FaApple, - fileFormat: "{appname}-mac-arm64-{tag}.dmg", - comingSoon: false, + fileFormat: '{appname}-mac-arm64-{tag}.dmg', }, { - name: "Mac (Intel)", + name: 'Mac (Intel)', + label: 'Apple Intel', logo: FaApple, - fileFormat: "{appname}-mac-x64-{tag}.dmg", - comingSoon: false, + fileFormat: '{appname}-mac-x64-{tag}.dmg', }, { - name: "Windows", + name: 'Windows', + label: 'Standard (64-bit)', logo: FaWindows, - fileFormat: "{appname}-win-x64-{tag}.exe", + fileFormat: '{appname}-win-x64-{tag}.exe', }, { - name: "Linux (AppImage)", + name: 'Linux (AppImage)', + label: 'AppImage', logo: FaLinux, - fileFormat: "{appname}-linux-x86_64-{tag}.AppImage", + fileFormat: '{appname}-linux-x86_64-{tag}.AppImage', }, { - name: "Linux (deb)", + name: 'Linux (deb)', + label: 'Deb', logo: FaLinux, - fileFormat: "{appname}-linux-amd64-{tag}.deb", + fileFormat: '{appname}-linux-amd64-{tag}.deb', }, -]; +] + +const groupTemnplate = [ + { label: 'MacOS', name: 'mac', logo: FaApple }, + { label: 'Windows', name: 'windows', logo: FaWindows }, + { label: 'Linux', name: 'linux', logo: FaLinux }, +] export default function DownloadApp() { - const [systems, setSystems] = useState(systemsTemplate); + const [systems, setSystems] = useState(systemsTemplate) const getLatestReleaseInfo = async (repoOwner, repoName) => { - const url = `https://api.github.com/repos/${repoOwner}/${repoName}/releases/latest`; + const url = `https://api.github.com/repos/${repoOwner}/${repoName}/releases/latest` try { - const response = await axios.get(url); - return response.data; + const response = await axios.get(url) + return response.data } catch (error) { - console.error(error); - return null; + console.error(error) + return null } - }; + } const extractAppName = (fileName) => { // Extract appname using a regex that matches the provided file formats - const regex = /^(.*?)-(?:mac|win|linux)-(?:arm64|x64|amd64|x86_64)-.*$/; - const match = fileName.match(regex); - return match ? match[1] : null; - }; + const regex = /^(.*?)-(?:mac|win|linux)-(?:arm64|x64|amd64|x86_64)-.*$/ + const match = fileName.match(regex) + return match ? match[1] : null + } useEffect(() => { const updateDownloadLinks = async () => { try { - const releaseInfo = await getLatestReleaseInfo("janhq", "jan"); + const releaseInfo = await getLatestReleaseInfo('janhq', 'jan') // Extract appname from the first asset name - const firstAssetName = releaseInfo.assets[0].name; - const appname = extractAppName(firstAssetName); + const firstAssetName = releaseInfo.assets[0].name + const appname = extractAppName(firstAssetName) if (!appname) { console.error( - "Failed to extract appname from file name:", + 'Failed to extract appname from file name:', firstAssetName - ); + ) - return; + return } // Remove 'v' at the start of the tag_name - const tag = releaseInfo.tag_name.startsWith("v") + const tag = releaseInfo.tag_name.startsWith('v') ? releaseInfo.tag_name.substring(1) - : releaseInfo.tag_name; + : releaseInfo.tag_name const updatedSystems = systems.map((system) => { const downloadUrl = system.fileFormat - .replace("{appname}", appname) - .replace("{tag}", tag); + .replace('{appname}', appname) + .replace('{tag}', tag) return { ...system, href: `https://github.com/janhq/jan/releases/download/${releaseInfo.tag_name}/${downloadUrl}`, - }; - }); + } + }) - setSystems(updatedSystems); + setSystems(updatedSystems) } catch (error) { - console.error("Failed to update download links:", error); + console.error('Failed to update download links:', error) } - }; + } - updateDownloadLinks(); - }, []); + updateDownloadLinks() + }, []) + + const renderDownloadLink = (group) => { + return ( + <> + {systems + .filter((x) => x.name.toLowerCase().includes(group)) + .map((system, i) => ( + + ))} + + ) + } return ( -
-
- - Download for PC - -
- 🚧 - Warning: - - Jan is in the process of being built. Expect bugs! - -
-
-
- {systems.map((system, i) => ( - - - {system.name} - {system.comingSoon && ( - - Coming Soon - - )} - - ))} +
+
+ {groupTemnplate.map((item, i) => { + return ( +
+
+
+
+ +
+
{item.label}
+
+
+ {renderDownloadLink(item.name)} +
+
+
+ ) + })}
- ); + ) } diff --git a/docs/src/containers/Elements/dropdown.js b/docs/src/containers/Elements/dropdown.js index 91115c811..00176fdf2 100644 --- a/docs/src/containers/Elements/dropdown.js +++ b/docs/src/containers/Elements/dropdown.js @@ -1,134 +1,134 @@ -import React, { useState, useEffect } from "react"; -import { Fragment } from "react"; -import { Menu, Transition } from "@headlessui/react"; -import { ChevronDownIcon } from "@heroicons/react/20/solid"; -import axios from "axios"; -import { FaWindows, FaApple, FaLinux } from "react-icons/fa"; +import React, { useState, useEffect } from 'react' +import { Fragment } from 'react' +import { Menu, Transition } from '@headlessui/react' +import { ChevronDownIcon } from '@heroicons/react/20/solid' +import axios from 'axios' +import { FaWindows, FaApple, FaLinux } from 'react-icons/fa' const systemsTemplate = [ { - name: "Download for Mac (M1/M2/M3)", + name: 'Download for Mac (M1/M2/M3)', logo: FaApple, - fileFormat: "{appname}-mac-arm64-{tag}.dmg", + fileFormat: '{appname}-mac-arm64-{tag}.dmg', }, { - name: "Download for Mac (Intel)", + name: 'Download for Mac (Intel)', logo: FaApple, - fileFormat: "{appname}-mac-x64-{tag}.dmg", + fileFormat: '{appname}-mac-x64-{tag}.dmg', }, { - name: "Download for Windows", + name: 'Download for Windows', logo: FaWindows, - fileFormat: "{appname}-win-x64-{tag}.exe", + fileFormat: '{appname}-win-x64-{tag}.exe', }, { - name: "Download for Linux (AppImage)", + name: 'Download for Linux (AppImage)', logo: FaLinux, - fileFormat: "{appname}-linux-x86_64-{tag}.AppImage", + fileFormat: '{appname}-linux-x86_64-{tag}.AppImage', }, { - name: "Download for Linux (deb)", + name: 'Download for Linux (deb)', logo: FaLinux, - fileFormat: "{appname}-linux-amd64-{tag}.deb", - } -]; + fileFormat: '{appname}-linux-amd64-{tag}.deb', + }, +] function classNames(...classes) { - return classes.filter(Boolean).join(" "); + return classes.filter(Boolean).join(' ') } export default function Dropdown() { - const [systems, setSystems] = useState(systemsTemplate); - const [defaultSystem, setDefaultSystem] = useState(systems[0]); + const [systems, setSystems] = useState(systemsTemplate) + const [defaultSystem, setDefaultSystem] = useState(systems[0]) const getLatestReleaseInfo = async (repoOwner, repoName) => { - const url = `https://api.github.com/repos/${repoOwner}/${repoName}/releases/latest`; + const url = `https://api.github.com/repos/${repoOwner}/${repoName}/releases/latest` try { - const response = await axios.get(url); - return response.data; + const response = await axios.get(url) + return response.data } catch (error) { - console.error(error); - return null; + console.error(error) + return null } - }; + } const extractAppName = (fileName) => { // Extract appname using a regex that matches the provided file formats - const regex = /^(.*?)-(?:mac|win|linux)-(?:arm64|x64|x86_64|amd64)-.*$/; - const match = fileName.match(regex); - return match ? match[1] : null; - }; + const regex = /^(.*?)-(?:mac|win|linux)-(?:arm64|x64|x86_64|amd64)-.*$/ + const match = fileName.match(regex) + return match ? match[1] : null + } const changeDefaultSystem = async (systems) => { - const userAgent = navigator.userAgent; + const userAgent = navigator.userAgent - if (userAgent.includes("Windows")) { + if (userAgent.includes('Windows')) { // windows user - setDefaultSystem(systems[2]); - } else if (userAgent.includes("Linux")) { + setDefaultSystem(systems[2]) + } else if (userAgent.includes('Linux')) { // linux user - setDefaultSystem(systems[3]); - } else if (userAgent.includes("Mac OS")) { - setDefaultSystem(systems[0]); + setDefaultSystem(systems[3]) + } else if (userAgent.includes('Mac OS')) { + setDefaultSystem(systems[0]) } else { - setDefaultSystem(systems[1]); + setDefaultSystem(systems[1]) } - }; + } useEffect(() => { const updateDownloadLinks = async () => { try { - const releaseInfo = await getLatestReleaseInfo("janhq", "jan"); + const releaseInfo = await getLatestReleaseInfo('janhq', 'jan') // Extract appname from the first asset name - const firstAssetName = releaseInfo.assets[0].name; - const appname = extractAppName(firstAssetName); + const firstAssetName = releaseInfo.assets[0].name + const appname = extractAppName(firstAssetName) if (!appname) { console.error( - "Failed to extract appname from file name:", + 'Failed to extract appname from file name:', firstAssetName - ); - changeDefaultSystem(systems); - return; + ) + changeDefaultSystem(systems) + return } // Remove 'v' at the start of the tag_name - const tag = releaseInfo.tag_name.startsWith("v") + const tag = releaseInfo.tag_name.startsWith('v') ? releaseInfo.tag_name.substring(1) - : releaseInfo.tag_name; + : releaseInfo.tag_name const updatedSystems = systems.map((system) => { const downloadUrl = system.fileFormat - .replace("{appname}", appname) - .replace("{tag}", tag); + .replace('{appname}', appname) + .replace('{tag}', tag) return { ...system, href: `https://github.com/janhq/jan/releases/download/${releaseInfo.tag_name}/${downloadUrl}`, - }; - }); + } + }) - setSystems(updatedSystems); - changeDefaultSystem(updatedSystems); + setSystems(updatedSystems) + changeDefaultSystem(updatedSystems) } catch (error) { - console.error("Failed to update download links:", error); + console.error('Failed to update download links:', error) } - }; + } - updateDownloadLinks(); - }, []); + updateDownloadLinks() + }, []) return (
{defaultSystem.name} - + Open OS options @@ -141,7 +141,7 @@ export default function Dropdown() { leaveFrom="transform opacity-100 scale-100" leaveTo="transform opacity-0 scale-95" > - +
{systems.map((system) => ( {({ active }) => ( - + {system.name} @@ -171,5 +171,5 @@ export default function Dropdown() {
- ); + ) } diff --git a/docs/src/containers/Footer/index.js b/docs/src/containers/Footer/index.js index 7cd648149..a33caa2c8 100644 --- a/docs/src/containers/Footer/index.js +++ b/docs/src/containers/Footer/index.js @@ -1,130 +1,213 @@ -import React from "react"; +import React, { useState } from 'react' -import { AiOutlineGithub, AiOutlineTwitter } from "react-icons/ai"; -import { BiLogoDiscordAlt, BiLogoLinkedin } from "react-icons/bi"; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext' +import { AiOutlineGithub, AiOutlineTwitter } from 'react-icons/ai' +import { BiLogoDiscordAlt, BiLogoLinkedin } from 'react-icons/bi' +import { useForm } from 'react-hook-form' const socials = [ { - icon: , - href: "https://twitter.com/janframework", + icon: ( + + ), + href: 'https://twitter.com/janframework', }, { - icon: , - href: "https://discord.com/invite/FTk2MvZwJH", + icon: ( + + ), + href: 'https://discord.com/invite/FTk2MvZwJH', }, { - icon: , - href: "https://github.com/janhq/jan", + icon: ( + + ), + href: 'https://github.com/janhq/jan', }, { - icon: , - href: "https://www.linkedin.com/company/janframework/", - } -]; + icon: ( + + ), + href: 'https://www.linkedin.com/company/janframework/', + }, +] const menus = [ { - name: "For Developers", + name: 'Product', child: [ { - menu: "Documentation", - path: "/developer", + menu: 'Download', + path: '/download', }, { - menu: "Hardware", - path: "/hardware", + menu: 'Documentation', + path: '/developer', }, { - menu: "API Reference", - path: "/api-reference", - }, - { - menu: "Changelog", - path: "https://github.com/janhq/jan/releases", + menu: 'Changelog', + path: 'https://github.com/janhq/jan/releases', external: true, }, ], }, { - name: "Community", + name: 'For Developers', child: [ { - menu: "Github", - path: "https://github.com/janhq/jan", - external: true, + menu: 'Guides', + path: '/guides', }, { - menu: "Discord", - path: "https://discord.gg/FTk2MvZwJH", - external: true, + menu: 'Developer', + path: '/developer', }, { - menu: "Twitter", - path: "https://twitter.com/janframework", - external: true, + menu: 'API Reference', + path: '/api-reference', }, - { - menu: "LinkedIn", - path: "https://www.linkedin.com/company/janframework/", - external: true, - } ], }, { - name: "Company", + name: 'Community', child: [ { - menu: "About", - path: "/about", + menu: 'Github', + path: 'https://github.com/janhq/jan', + external: true, }, { - menu: "Blog", - path: "/blog", + menu: 'Discord', + path: 'https://discord.gg/FTk2MvZwJH', + external: true, }, { - menu: "Careers", - path: "https://janai.bamboohr.com/careers", + menu: 'Twitter', + path: 'https://twitter.com/janframework', + external: true, + }, + { + menu: 'LinkedIn', + path: 'https://www.linkedin.com/company/janframework/', external: true, }, ], }, -]; + { + name: 'Company', + child: [ + { + menu: 'About', + path: '/about', + }, + { + menu: 'Blog', + path: '/blog', + }, + { + menu: 'Careers', + path: 'https://janai.bamboohr.com/careers', + external: true, + }, + { + menu: 'Newsletter', + path: '/community#newsletter', + }, + ], + }, +] -const getCurrentYear = new Date().getFullYear(); +const getCurrentYear = new Date().getFullYear() export default function Footer() { + const { register, handleSubmit, reset } = useForm({ + defaultValues: { + email: '', + }, + }) + + const { + siteConfig: { customFields }, + } = useDocusaurusContext() + + const [formMessage, setFormMessage] = useState('') + + const onSubmit = (data) => { + const { email } = data + const options = { + method: 'POST', + + body: JSON.stringify({ + updateEnabled: false, + email, + listIds: [13], + }), + } + + if (email) { + fetch('https://brevo.jan.ai/', options) + .then((response) => response.json()) + .then((response) => { + if (response.id) { + setFormMessage('You have successfully joined our newsletter') + } else { + setFormMessage(response.message) + } + reset() + setTimeout(() => { + setFormMessage('') + }, 5000) + }) + .catch((err) => console.error(err)) + } + } + return ( -