From d7bf98b68aed9e1c07f54c9015339373e01e93ed Mon Sep 17 00:00:00 2001 From: avb-is-me <104213687+avb-is-me@users.noreply.github.com> Date: Tue, 27 Feb 2024 00:43:57 +0000 Subject: [PATCH 01/17] adds code samples for list models --- docs/openapi/jan.yaml | 119 ++++++++++++++++++++++++++---------------- 1 file changed, 74 insertions(+), 45 deletions(-) diff --git a/docs/openapi/jan.yaml b/docs/openapi/jan.yaml index 864c80fdf..e58c6a4f2 100644 --- a/docs/openapi/jan.yaml +++ b/docs/openapi/jan.yaml @@ -1,11 +1,11 @@ ---- openapi: 3.0.0 info: title: API Reference description: > # Introduction - Jan API is compatible with the [OpenAI API](https://platform.openai.com/docs/api-reference). + Jan API is compatible with the [OpenAI + API](https://platform.openai.com/docs/api-reference). version: 0.1.8 contact: name: Jan Discord @@ -20,12 +20,12 @@ tags: 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. + Given a list of messages comprising a conversation, the model will return + a response. - name: Messages description: > - Messages capture a conversation's content. This can include the - content from LLM responses and other metadata from [chat + Messages capture a conversation's content. This can include the content + from LLM responses and other metadata from [chat completions](/specs/chats). - name: Threads - name: Assistants @@ -49,16 +49,16 @@ paths: summary: | Create chat completion description: > - Creates a model response for the given chat conversation. - Equivalent to OpenAI's create chat completion. + Creates a model response for the given chat conversation. Equivalent + to OpenAI's create chat completion. requestBody: content: application/json: schema: $ref: specs/chat.yaml#/components/schemas/ChatCompletionRequest responses: - "200": + '200': description: OK content: application/json: @@ -100,12 +100,12 @@ paths: - 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. + Lists the currently available models, and provides basic information + about each one such as the owner and availability. Equivalent + to OpenAI's list model. responses: - "200": + '200': description: OK content: application/json: @@ -113,11 +113,39 @@ 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' - "/models/download/{model_id}": + - lang: JavaScript + source: |- + const response = await fetch('http://localhost:1337/v1/models', { + method: 'GET', + headers: {Accept: 'application/json'} + }); + const data = await response.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() + - 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)); + /models/download/{model_id}: get: operationId: downloadModel tags: @@ -135,7 +163,7 @@ paths: description: | The ID of the model to use for this request. responses: - "200": + '200': description: OK content: application/json: @@ -147,15 +175,15 @@ paths: curl -X 'GET' \ 'http://localhost:1337/v1/models/download/{model_id}' \ -H 'accept: application/json' - "/models/{model_id}": + /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. parameters: @@ -168,7 +196,7 @@ paths: description: | The ID of the model to use for this request. responses: - "200": + '200': description: OK content: application/json: @@ -199,7 +227,7 @@ paths: description: | The model id to delete responses: - "200": + '200': description: OK content: application/json: @@ -228,7 +256,7 @@ paths: schema: $ref: specs/threads.yaml#/components/schemas/CreateThreadObject responses: - "200": + '200': description: Thread created successfully content: application/json: @@ -257,7 +285,7 @@ paths: description: | Retrieves a list of all threads available in the system. responses: - "200": + '200': description: List of threads retrieved successfully content: application/json: @@ -285,7 +313,7 @@ paths: source: | curl http://localhost:1337/v1/threads \ -H "Content-Type: application/json" \ - "/threads/{thread_id}": + /threads/{thread_id}: get: operationId: getThread tags: @@ -305,7 +333,7 @@ paths: description: | The ID of the thread to retrieve. responses: - "200": + '200': description: Thread details retrieved successfully content: application/json: @@ -345,7 +373,7 @@ paths: items: $ref: specs/threads.yaml#/components/schemas/ThreadMessageObject responses: - "200": + '200': description: Thread modified successfully content: application/json: @@ -384,7 +412,7 @@ paths: description: | The ID of the thread to be deleted. responses: - "200": + '200': description: Thread deleted successfully content: application/json: @@ -405,7 +433,7 @@ paths: "https://platform.openai.com/docs/api-reference/assistants/listAssistants"> Equivalent to OpenAI's list assistants. responses: - "200": + '200': description: List of assistants retrieved successfully content: application/json: @@ -445,7 +473,7 @@ paths: source: | curl http://localhost:1337/v1/assistants \ -H "Content-Type: application/json" \ - "/assistants/{assistant_id}": + /assistants/{assistant_id}: get: operationId: getAssistant tags: @@ -465,18 +493,19 @@ paths: description: | The ID of the assistant to retrieve. responses: - "200": + '200': description: null content: application/json: schema: - $ref: specs/assistants.yaml#/components/schemas/RetrieveAssistantResponse + $ref: >- + specs/assistants.yaml#/components/schemas/RetrieveAssistantResponse x-codeSamples: - lang: cURL source: | curl http://localhost:1337/v1/assistants/{assistant_id} \ -H "Content-Type: application/json" \ - "/threads/{thread_id}/messages": + /threads/{thread_id}/messages: get: operationId: listMessages tags: @@ -495,7 +524,7 @@ paths: description: | The ID of the thread from which to retrieve messages. responses: - "200": + '200': description: List of messages retrieved successfully content: application/json: @@ -547,7 +576,7 @@ paths: - role - content responses: - "200": + '200': description: Message created successfully content: application/json: @@ -562,7 +591,7 @@ paths: "role": "user", "content": "How does AI work? Explain it in simple terms." }' - "/threads/{thread_id}/messages/{message_id}": + /threads/{thread_id}/messages/{message_id}: get: operationId: retrieveMessage tags: @@ -589,7 +618,7 @@ paths: description: | The ID of the message to retrieve. responses: - "200": + '200': description: OK content: application/json: @@ -598,8 +627,8 @@ paths: x-codeSamples: - lang: cURL source: > - curl http://localhost:1337/v1/threads/{thread_id}/messages/{message_id} - \ + curl + http://localhost:1337/v1/threads/{thread_id}/messages/{message_id} \ -H "Content-Type: application/json" x-webhooks: ModelObject: @@ -621,10 +650,9 @@ x-webhooks: post: summary: The assistant object description: > - Build assistants that can call models and use tools to perform - tasks. Equivalent - to OpenAI's assistants object. + Build assistants that can call models and use tools to perform tasks. + + Equivalent to OpenAI's assistants object. operationId: AssistantObjects tags: - Assistants @@ -651,7 +679,8 @@ x-webhooks: ThreadObject: post: summary: The thread object - description: Represents a thread that contains messages. - + Represents a thread that contains messages. Equivalent to OpenAI's thread object. operationId: ThreadObject From 16357178bf24b7a57166600d41ee6c2f6e6fc549 Mon Sep 17 00:00:00 2001 From: avb-is-me <104213687+avb-is-me@users.noreply.github.com> Date: Tue, 27 Feb 2024 07:50:15 +0000 Subject: [PATCH 02/17] add docs for the model/model_id endpoints --- docs/openapi/jan.yaml | 110 +++++++++++++++++++++++++++++------------- 1 file changed, 77 insertions(+), 33 deletions(-) diff --git a/docs/openapi/jan.yaml b/docs/openapi/jan.yaml index e58c6a4f2..e3f1ff3b1 100644 --- a/docs/openapi/jan.yaml +++ b/docs/openapi/jan.yaml @@ -113,38 +113,10 @@ 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: Python - source: |- - import requests - - url = 'http://localhost:1337/v1/models' - headers = {'Accept': 'application/json'} - response = requests.get(url, headers=headers) - data = 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)); /models/download/{model_id}: get: operationId: downloadModel @@ -204,10 +176,47 @@ 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: @@ -235,10 +244,45 @@ 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 From a6dbcf3a1bcf19ed5a2c7b8fb15fcc19bd02d187 Mon Sep 17 00:00:00 2001 From: avb-is-me <104213687+avb-is-me@users.noreply.github.com> Date: Tue, 27 Feb 2024 07:58:22 +0000 Subject: [PATCH 03/17] adds code snippets for download --- docs/openapi/jan.yaml | 66 ++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/docs/openapi/jan.yaml b/docs/openapi/jan.yaml index e58c6a4f2..3c2abcc0f 100644 --- a/docs/openapi/jan.yaml +++ b/docs/openapi/jan.yaml @@ -113,38 +113,10 @@ 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: Python - source: |- - import requests - - url = 'http://localhost:1337/v1/models' - headers = {'Accept': 'application/json'} - response = requests.get(url, headers=headers) - data = 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)); /models/download/{model_id}: get: operationId: downloadModel @@ -171,10 +143,40 @@ 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 From 90a11ea4c4867e6c83afea94ee2f46777f7c8103 Mon Sep 17 00:00:00 2001 From: avb-is-me <104213687+avb-is-me@users.noreply.github.com> Date: Tue, 27 Feb 2024 08:02:23 +0000 Subject: [PATCH 04/17] adds code snippets for chat completeions --- docs/openapi/jan.yaml | 134 +++++++++++++++++++++++++++++++++--------- 1 file changed, 105 insertions(+), 29 deletions(-) diff --git a/docs/openapi/jan.yaml b/docs/openapi/jan.yaml index e58c6a4f2..cf5db102a 100644 --- a/docs/openapi/jan.yaml +++ b/docs/openapi/jan.yaml @@ -93,6 +93,110 @@ 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,38 +217,10 @@ 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: Python - source: |- - import requests - - url = 'http://localhost:1337/v1/models' - headers = {'Accept': 'application/json'} - response = requests.get(url, headers=headers) - data = 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)); /models/download/{model_id}: get: operationId: downloadModel From 32a86bd9136be0ac044c561f341b537e591190da Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 27 Feb 2024 19:21:10 +0900 Subject: [PATCH 05/17] docs: add newsletter --- .../community/{community.md => community.mdx} | 15 +++++++++++++++ docs/src/containers/Footer/index.js | 4 ++++ 2 files changed, 19 insertions(+) rename docs/docs/community/{community.md => community.mdx} (59%) diff --git a/docs/docs/community/community.md b/docs/docs/community/community.mdx similarity index 59% rename from docs/docs/community/community.md rename to docs/docs/community/community.mdx index 24a87daf0..d4866490e 100644 --- a/docs/docs/community/community.md +++ b/docs/docs/community/community.mdx @@ -29,3 +29,18 @@ keywords: ## Careers - [Jobs](https://janai.bamboohr.com/careers) + +## Newsletter + + diff --git a/docs/src/containers/Footer/index.js b/docs/src/containers/Footer/index.js index 7cd648149..3e62f579a 100644 --- a/docs/src/containers/Footer/index.js +++ b/docs/src/containers/Footer/index.js @@ -86,6 +86,10 @@ const menus = [ path: "https://janai.bamboohr.com/careers", external: true, }, + { + menu: "Newsletter", + path: "/community#newsletter", + } ], }, ]; From 65e5921cd155564b15520de0b6cc835816ab7aad Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 27 Feb 2024 23:40:32 +0900 Subject: [PATCH 06/17] docs: update wall of love --- docs/docs/wall-of-love.md | 92 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/docs/docs/wall-of-love.md b/docs/docs/wall-of-love.md index f196c90e9..102102739 100644 --- a/docs/docs/wall-of-love.md +++ b/docs/docs/wall-of-love.md @@ -1,3 +1,93 @@ --- title: Wall of Love ❤️ ---- \ No newline at end of file +--- + +## 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! + +
+

I can confirm https://t.co/Hvrfp0iaf9 is awesome 👌

— Cristian (@cristianmoreno) February 13, 2024
+
+ +
+

downloaded this a few weeks ago. amazed by the speed and quality

— siddharth (@siddharthd01) February 13, 2024
+
+ +
+

Anyone else out there running LLMs on steam deck? @janframework bringing nerd dreams to life! pic.twitter.com/7XpnBmc8MN

— crossdefault (@crossdefault) January 26, 2024
+
+ +
+

If you are like me, always wanting your own ChatGPT and have sufficient coding knowledge, you would watch open sourced @janframework by @0xSage like a "my-own-ai" hawk

Still under development, the architecture is really futuristic. The desktop app for Windows, Mac, Linux are… pic.twitter.com/0HrNquhBsL

— Umesh = EG = Educated Guess - NGI doing AI (@trading_indian) January 11, 2024
+
+ +
+

came across @janframework yesterday and it's my fav native Apple Silicon LLM app yet. Love that I can switch to GPT 4 API and offline LLM models seamlessly. Looks promising! https://t.co/gyOX9gHbKQ

— Keith Hawkins (@kph_practice) January 9, 2024
+
+ +
+

i just ran some ai models locally on my laptop using @janhq_ and can't believe how easy and cool it is. so, now i can have the same experience as with ChatGPT, but offline and without any data concerns

— Sergey Kaplich (@sergey_kaplich) January 4, 2024
+
+ +
+

https://t.co/scBqJ3kIzj Great way to try open source all models, like Mixtral8x7b offline. Love to see

— Chubby♨️ (@kimmonismus) January 4, 2024
+
+ +## 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 + +
+ +
From 0bb29fc93ffaf9a532c776eab46af353f4641837 Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Tue, 27 Feb 2024 23:47:31 +0900 Subject: [PATCH 07/17] docs: change text --- docs/docs/wall-of-love.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/docs/wall-of-love.md b/docs/docs/wall-of-love.md index 102102739..76548ef7a 100644 --- a/docs/docs/wall-of-love.md +++ b/docs/docs/wall-of-love.md @@ -4,7 +4,7 @@ title: 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! +Check out our amazing users and what they are saying about Jan!

I can confirm https://t.co/Hvrfp0iaf9 is awesome 👌

— Cristian (@cristianmoreno) February 13, 2024
@@ -34,6 +34,8 @@ Check out our amazing users and what they are saying about Jan! Please share you

https://t.co/scBqJ3kIzj Great way to try open source all models, like Mixtral8x7b offline. Love to see

— Chubby♨️ (@kimmonismus) January 4, 2024
+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! From 17c92d8dc670d683daec705a9f69598c06a15e4f Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Wed, 28 Feb 2024 00:03:45 +0900 Subject: [PATCH 08/17] fix: change docker command --- docs/docs/guides/02-installation/05-docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/guides/02-installation/05-docker.md b/docs/docs/guides/02-installation/05-docker.md index 5973e9771..1cdc829df 100644 --- a/docs/docs/guides/02-installation/05-docker.md +++ b/docs/docs/guides/02-installation/05-docker.md @@ -108,7 +108,7 @@ sudo sh ./get-docker.sh --dry-run ```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 From 43d2fc11bd3209e91628bfd9b13579c2ba61022d Mon Sep 17 00:00:00 2001 From: hieu-jan <150573299+hieu-jan@users.noreply.github.com> Date: Wed, 28 Feb 2024 12:13:06 +0900 Subject: [PATCH 09/17] feat: lazy loading --- docs/docs/wall-of-love.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/docs/wall-of-love.md b/docs/docs/wall-of-love.md index 76548ef7a..f6bfe79d8 100644 --- a/docs/docs/wall-of-love.md +++ b/docs/docs/wall-of-love.md @@ -7,31 +7,31 @@ title: Wall of Love ❤️ Check out our amazing users and what they are saying about Jan!
-

I can confirm https://t.co/Hvrfp0iaf9 is awesome 👌

— Cristian (@cristianmoreno) February 13, 2024
+

I can confirm https://t.co/Hvrfp0iaf9 is awesome 👌

— Cristian (@cristianmoreno) February 13, 2024
-

downloaded this a few weeks ago. amazed by the speed and quality

— siddharth (@siddharthd01) February 13, 2024
+

downloaded this a few weeks ago. amazed by the speed and quality

— siddharth (@siddharthd01) February 13, 2024
-

Anyone else out there running LLMs on steam deck? @janframework bringing nerd dreams to life! pic.twitter.com/7XpnBmc8MN

— crossdefault (@crossdefault) January 26, 2024
+

Anyone else out there running LLMs on steam deck? @janframework bringing nerd dreams to life! pic.twitter.com/7XpnBmc8MN

— crossdefault (@crossdefault) January 26, 2024
-

If you are like me, always wanting your own ChatGPT and have sufficient coding knowledge, you would watch open sourced @janframework by @0xSage like a "my-own-ai" hawk

Still under development, the architecture is really futuristic. The desktop app for Windows, Mac, Linux are… pic.twitter.com/0HrNquhBsL

— Umesh = EG = Educated Guess - NGI doing AI (@trading_indian) January 11, 2024
+

If you are like me, always wanting your own ChatGPT and have sufficient coding knowledge, you would watch open sourced @janframework by @0xSage like a "my-own-ai" hawk

Still under development, the architecture is really futuristic. The desktop app for Windows, Mac, Linux are… pic.twitter.com/0HrNquhBsL

— Umesh = EG = Educated Guess - NGI doing AI (@trading_indian) January 11, 2024
-

came across @janframework yesterday and it's my fav native Apple Silicon LLM app yet. Love that I can switch to GPT 4 API and offline LLM models seamlessly. Looks promising! https://t.co/gyOX9gHbKQ

— Keith Hawkins (@kph_practice) January 9, 2024
+

came across @janframework yesterday and it's my fav native Apple Silicon LLM app yet. Love that I can switch to GPT 4 API and offline LLM models seamlessly. Looks promising! https://t.co/gyOX9gHbKQ

— Keith Hawkins (@kph_practice) January 9, 2024
-

i just ran some ai models locally on my laptop using @janhq_ and can't believe how easy and cool it is. so, now i can have the same experience as with ChatGPT, but offline and without any data concerns

— Sergey Kaplich (@sergey_kaplich) January 4, 2024
+

i just ran some ai models locally on my laptop using @janhq_ and can't believe how easy and cool it is. so, now i can have the same experience as with ChatGPT, but offline and without any data concerns

— Sergey Kaplich (@sergey_kaplich) January 4, 2024
-

https://t.co/scBqJ3kIzj Great way to try open source all models, like Mixtral8x7b offline. Love to see

— Chubby♨️ (@kimmonismus) January 4, 2024
+

https://t.co/scBqJ3kIzj Great way to try open source all models, like Mixtral8x7b offline. Love to see

— Chubby♨️ (@kimmonismus) January 4, 2024
Please share your love for Jan on Twitter and tag us [@janframework](https://twitter.com/janframework)! We would love to hear from you! From 42675891a611156978eede82179058dcbca0f65a Mon Sep 17 00:00:00 2001 From: Louis Date: Wed, 28 Feb 2024 11:25:30 +0700 Subject: [PATCH 10/17] chore: bump nitro 0.3.14 (#2183) --- extensions/inference-nitro-extension/bin/version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/inference-nitro-extension/bin/version.txt b/extensions/inference-nitro-extension/bin/version.txt index e4737652c..0b69c00c5 100644 --- a/extensions/inference-nitro-extension/bin/version.txt +++ b/extensions/inference-nitro-extension/bin/version.txt @@ -1 +1 @@ -0.3.13 +0.3.14 From f10b7021e94775c523f2b8f60cf8c300f34a5015 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+0xSage@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:41:46 +0800 Subject: [PATCH 11/17] docs: Update 08-antivirus-compatibility-testing.md --- .../08-antivirus-compatibility-testing.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/docs/guides/02-installation/08-antivirus-compatibility-testing.md b/docs/docs/guides/02-installation/08-antivirus-compatibility-testing.md index 6dd82138b..159e89975 100644 --- a/docs/docs/guides/02-installation/08-antivirus-compatibility-testing.md +++ b/docs/docs/guides/02-installation/08-antivirus-compatibility-testing.md @@ -1,7 +1,7 @@ --- -title: Antivirus Compatibility Testing +title: Antivirus Testing slug: /guides/install/antivirus-compatibility-testing -description: Antivirus compatibility testing documentation for the Jan App v0.4.4 release. +description: Antivirus compatibility testing documentation keywords: [ Jan AI, @@ -16,18 +16,16 @@ keywords: ] --- -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. +As a part of our release process, we run antivirus compatibility tests for Jan v0.4.4 and onwards. This documentation includes a matrix that correlates the Jan App version with the tested antivirus versions. -## Tested Antivirus Versions +## Antivirus Software Tested -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: +The following summarizes ongoing testing targets: -| Antivirus | Version | Result | +| Antivirus | Version | Target 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. +To report issues, false positives, or to request additional testing, please email devops@jan.ai From 499aa4a98e6ee056632ad27fc09f46a4389e980a Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+0xSage@users.noreply.github.com> Date: Wed, 28 Feb 2024 14:00:03 +0800 Subject: [PATCH 12/17] docs: Update 01-integrate-continue.mdx --- .../07-integrations/01-integrate-continue.mdx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/docs/guides/07-integrations/01-integrate-continue.mdx b/docs/docs/guides/07-integrations/01-integrate-continue.mdx index 1fa0397e2..1cef6ec46 100644 --- a/docs/docs/guides/07-integrations/01-integrate-continue.mdx +++ b/docs/docs/guides/07-integrations/01-integrate-continue.mdx @@ -85,26 +85,28 @@ Edit the `config.json` file and include the following configuration. ``` - 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 `model` is the ID of the running model. You can check for the respective ID in System Monitor. - Ensure that the `apiBase` is `http://localhost:1337/v1`. - Ensure that the `apiKey` is `EMPTY`. -### 4. Ensure the Using Model Is Activated in Jan +### 4. Double Check the Model is Running -Navigate to `Settings` > `Models`. Activate the model that you want to use in Jan by clicking the **three dots (⋮)** and **start model**. +Open up the `System Monitor` to check that your model is currently running. + +If there are not active models, go to `Settings` > `My Models`. Click on 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 +### 5. Use Continue in VS Code #### Asking questions about the code -- Highlight a code snippet and press `Command + Shift + M` to open the **Left Panel**. +- Highlight a code snippet and press `Command + M` to open the Continue Extension in VSCode. - 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 +#### Editing the code directly - Highlight a code snippet and press `Command + Shift + L` and input your edit request, for example, `Write comments for this code`. From 43ae50243c3376cef09af0ee16d5095d696b8952 Mon Sep 17 00:00:00 2001 From: Service Account Date: Wed, 28 Feb 2024 06:14:41 +0000 Subject: [PATCH 13/17] janhq/jan: Update README.md with nightly build artifact URL --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4d07ad55c..bc5918cb9 100644 --- a/README.md +++ b/README.md @@ -76,31 +76,31 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute Experimental (Nightly Build) - + jan.exe - + Intel - + M1/M2 - + jan.deb - + jan.AppImage From 8b9cd7a8b4320c24431ffaf59c5836d11b04f7a3 Mon Sep 17 00:00:00 2001 From: Van Pham <64197333+Van-QA@users.noreply.github.com> Date: Wed, 28 Feb 2024 15:25:18 +0700 Subject: [PATCH 14/17] adding new feature for v0.4.7 --- docs/docs/template/QA_script.md | 132 ++++++++++++-------------------- 1 file changed, 49 insertions(+), 83 deletions(-) diff --git a/docs/docs/template/QA_script.md b/docs/docs/template/QA_script.md index bba667bcd..9c7eeaf18 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,78 +10,64 @@ ### 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 @@ -89,25 +75,16 @@ - [ ] 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. @@ -115,7 +92,6 @@ ### 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 +99,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,22 +107,21 @@ - [ ] :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 @@ -166,53 +140,45 @@ - [ ] :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 From 44d9f5b7b91105a45764bd7da8a4ed86ff313ce1 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Thu, 29 Feb 2024 12:13:37 +0700 Subject: [PATCH 15/17] fix: minor ui missing secondary background (#2198) --- uikit/src/main.scss | 65 +++------------------------------------------ 1 file changed, 3 insertions(+), 62 deletions(-) diff --git a/uikit/src/main.scss b/uikit/src/main.scss index f3294e12e..e31b53c68 100644 --- a/uikit/src/main.scss +++ b/uikit/src/main.scss @@ -42,69 +42,10 @@ --danger: 346.8 77.2% 49.8%; --danger-foreground: 355.7 100% 97.3%; + --secondary: 60 4.8% 95.9%; + --secondary-foreground: 24 9.8% 10%; + --border: 20 5.9% 90%; --input: 20 5.9% 90%; --ring: 20 14.3% 4.1%; - - .primary-blue { - --primary: 221 83% 53%; - --primary-foreground: 210 40% 98%; - - --secondary: 60 4.8% 95.9%; - --secondary-foreground: 24 9.8% 10%; - } - - .primary-green { - --primary: 142.1 76.2% 36.3%; - --primary-foreground: 355.7 100% 97.3%; - - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - } - - .primary-purple { - --primary: 262.1 83.3% 57.8%; - --primary-foreground: 210 20% 98%; - - --secondary: 220 14.3% 95.9%; - --secondary-foreground: 220.9 39.3% 11%; - } -} - -.dark { - --background: 20 14.3% 4.1%; - --foreground: 60 9.1% 97.8%; - - --muted: 12 6.5% 15.1%; - --muted-foreground: 24 5.4% 63.9%; - - --danger: 346.8 77.2% 49.8%; - --danger-foreground: 355.7 100% 97.3%; - - --border: 12 6.5% 15.1%; - --input: 12 6.5% 15.1%; - --ring: 35.5 91.7% 32.9%; - - .primary-blue { - --primary: 221 83% 53%; - --primary-foreground: 222.2 47.4% 11.2%; - - --secondary: 12 6.5% 15.1%; - --secondary-foreground: 60 9.1% 97.8%; - } - - .primary-green { - --primary: 142.1 70.6% 45.3%; - --primary-foreground: 144.9 80.4% 10%; - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; - } - - .primary-purple { - --primary: 263.4 70% 50.4%; - --primary-foreground: 210 20% 98%; - - --secondary: 215 27.9% 16.9%; - --secondary-foreground: 210 20% 98%; - } } From 5c185d2740a8baa91cc732f0822b9ca31b2b95e6 Mon Sep 17 00:00:00 2001 From: NamH Date: Thu, 29 Feb 2024 14:35:05 +0700 Subject: [PATCH 16/17] fix: download model error does not reset state in model hub (#2199) Signed-off-by: James Co-authored-by: James --- core/src/node/api/processors/download.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/core/src/node/api/processors/download.ts b/core/src/node/api/processors/download.ts index bff6f47f0..4ddeff160 100644 --- a/core/src/node/api/processors/download.ts +++ b/core/src/node/api/processors/download.ts @@ -42,6 +42,24 @@ export class Downloader implements Processor { // 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, + }, + downloadState: 'downloading', + } + DownloadManager.instance.downloadProgressMap[modelId] = initialDownloadState + progress(rq, {}) .on('progress', (state: any) => { const downloadState: DownloadState = { From 8e12e3a4a3bb9cb07dede6bef348fd4d49e83444 Mon Sep 17 00:00:00 2001 From: Service Account Date: Fri, 1 Mar 2024 01:24:03 +0000 Subject: [PATCH 17/17] janhq/jan: Update README.md with nightly build artifact URL --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index bc5918cb9..035126faa 100644 --- a/README.md +++ b/README.md @@ -76,31 +76,31 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute Experimental (Nightly Build) - + jan.exe - + Intel - + M1/M2 - + jan.deb - + jan.AppImage