Update App workflow

This commit is contained in:
hahuyhoang411 2023-11-03 09:22:58 +07:00
parent 13f55298bf
commit 3bd80fecf0
2 changed files with 68 additions and 2 deletions

View File

@ -20,7 +20,7 @@ The architecture of the Jan.ai application is designed to provide a seamless exp
- The BackEnd serves as the brain of the application. It processes the information, performs computations, and manages the main logic of the system.
:::info
For easy to understand, this is like an [OS (Operating System)](https://en.wikipedia.org/wiki/Operating_system) in the computer.
This is like an [OS (Operating System)](https://en.wikipedia.org/wiki/Operating_system) in the computer.
:::
**FrontEnd:**
@ -93,4 +93,70 @@ These are modular components or extensions designed to enhance the application's
1. Input is provided by the user or an external source.
2. This input is broadcasted as an event into the **Broadcast event**.
3. The **BackEnd** processes the event. Depending on the event, it might interact with one or several Plugins.
4. Once processed, **Broadcast result** can be sent out asynchronously through multiple notifications via Notify action.
4. Once processed, **Broadcast result** can be sent out asynchronously through multiple notifications via Notify action.
## Jan workflow
![Workflow](img/arch-flow.drawio.png)
### Overview
The architecture of the Jan.ai desktop application is structured into four primary modules: "Prompt Template," "Language Model," "Output Parser," and "Apps." Let's break down each module and understand its components.
### Prompt Template
This is where predefined templates are stored. It sets the format and structure for user interactions. It contains:
- **Character's definition:**
Definitions of various characters or entities that may be interacted with or invoked during user requests (e.g., name, personality, and communication style).
- **Model's definition:**
Definitions related to the different language models (e.g., objectives, capabilities, and constraints)
- **Examples:**
Sample inputs and outputs for guidance. If given good examples, LLM could enable basic reasoning or planning skills.
- **Input:**
The actual user query or request that is being processed.
### Large Language Model
This processes the input provided.
- **Local models:**
These are the downloaded models that reside within the system. They can process requests without the need to connect to external resources.
- **OpenAI:**
This will connect you with OpenAI API, allowing the application to utilize powerful models like GPT-3.5 and GPT-4.
:::info
To use OpenAI models, you must have an OpenAI account and secret key. You can get your [OpenAI key](https://platform.openai.com/account/api-keys) here.
:::
- **Custom Agents:**
These are user-defined or third-party models that can be integrated into the Jan.ai system for specific tasks.
### Output Parser
Language models produce textual content. However, often, there's a need for more organized data instead of plain text. This is achieved using output parsers.
- **Parser:**
This component ensures that the output conforms to the desired structure and format, removing unwanted information or errors.
### Apps
This represents applications or extensions that can be integrated with Jan.
- **Characters:** Characters or entities that can be utilized within the applications.
- **Models:** Different Large Language Models, Large Multimodal Models, and Stable Diffusion models that the apps might use.
- **RAG:** Represents a "Retrieval Augmented Generation" functionality, which helps in fetching relevant data and generating responses based on it.

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB