A brain is an instance of an assistant that will interact with the user and execute action, respond to the user.
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique identifier of a brain |
| name | string | The name given to that brain (can be updated by the user) |
| engine | Engine | - |
| modules | [key: string]: BrainModule | |
| persona | Persona | - |
| promptInit | PromptInit | - |
| flow | string | undefined | |
| subscription | BrainSubscription | undefined | |
| speechOverrides | [key: string]: string | undefined | |
| imageBrain | string | conflicting with picture historically used to store the pfp in the right way |
| organisationId | string | Id of the organisation the brain is part of |
| role | string | undefined | |
| defaultLanguage | string | undefined | What is the default language used when a user starts a conversation with it |
| description | string | undefined | Simple description of what the brain is (only for the user, it's not used by the AI) |
| template | string | undefined | ??? duplicate with isTemplate seems useless as we have a ‘models’ table (need to rename this table) |
| color | string | undefined | ??? historically, an agent was linked to a color to reflect its type -> no longer used today |
| picture | string | undefined | conflicting with imageBrain historically used to store image in base 64 |
| createdAt | Date | undefined | (currently a string), shouldn't be a Date ? |
| isActivated | boolean | undefined | simple boolean indicating if the brain is activated (could be used or not) |
| knowledgeBaseId | string[] | list of id referencing the knowledge-base linked to the brain. It could reference any knowledge-bases that are public (authorizedAgents: []) or that authorizes this brain access to. |
| isTemplate | boolean | undefined | conflicting with template ??? seems useless as we have a ‘models’ table (need to rename this table) |
| deleted | boolean | undefined | (should be renamed isDeleted) why shouldn't we simply delete it → because we safe delete |
| tools | BrainTool[] | undefined | |
| knowledgeBases | BrainKnowledgeBase[] | undefined |
Data required to connect to an AI model a make request to it. Currently the supported engines are in the EngineType enum.
| Attribute | Type | Description |
|---|---|---|
| type | EngineType | |
| configuration | object | No details for now |
A persona is a text describing who the brain is (the persona is then inserted in the promptInit via the keyword: {{PERSONA}}).
Currently the persona is only store in a default value (not correlated to the language of the text, nor the language selected by the user). Should discuss if we need to support several languages…
| Attribute | Type | Description |
|---|---|---|
| [language-code] | string | |
| default | string |
The promptInit is the text sent to the IA before the actual prompt starting a conversation.
Currently the persona is only store in a default value (not correlated to the language of the text, nor the language selected by the user). Should discuss if we need to support several languages…
| Attribute | Type | Description |
|---|---|---|
| [language-code] | string | |
| default | string |
| Attribute | Type | Description |
| textInteractions | Interaction | |
| voiceInteractions | Interaction | |
| canGoBeyondIncluded | boolean | |
| startDate | Date | undefined | |
| endDate | Date | undefined |
| Attribute | Type | Description |
| included | number | |
| additional | Additional |
| Attribute | Type | Description |
|---|---|---|
| price | string | |
| amountForPrice | string | |
| currency | string |
| Attribute | Type | Description |
|---|---|---|
| type | string | |
| name | string | |
| configuration | Record<string, any> | |
| restricted | boolean | undefined |
| Attribute | Type | Description |
|---|---|---|
| _id | string | |
| name | string | |
| type | string | |
| orgId | string | |
| description | string | |
| configuration | Record<string, unknown> | undefined | |
| manifest | Record<string, unknown> | undefined | |
| restricted | boolean | undefined |
Not necessary from what I see
| Attribute | Type | Description |
|---|---|---|
| id | string | |
| name | string | |
| privacy | string | ‘private’ or ‘public’ |
| organisationId | string | |
| authorizedAgents | string[] |
An agent (also reference as app) is one of the visual representation of a brain. An agent can be configured as a avatar, can get a voice…
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique identifier of the agent |
| brainId | string | Referencing the brain id it belongs to |
| name | string | The name of the agent (given and updated by the user) |
| authSecret | string | used for avatar (web socket) |
| streamingEnabled | boolean | used to avoid instance overlap |
| voiceProvider | string | undefined | should be an object containing the configuration associated to the provider (containing a type enum) |
| voiceProviderApiKey | string | undefined | should be inside the voiceProvider |
| voiceProviderOrganization | string | undefined | should be inside the voiceProvider (replace organization with organisation) |
| voiceId | string | Why is the voiceId required while the rest is optional? id of the synthetized voice used (male, female…) |
| voiceModelId | string | Why is the voiceId required while the rest is optional? id of the voice model picked in the list of available models (from the provider) |
| voice | Record<string, string | number> | ??? |
| lipsync | LipsyncConfiguration | undefined | |
| status | AgentStatus | conflicting with instances.status ? |
| persona | Persona | undefined | Really? Should we need to redefined a persona here? |
| promptInit | PromptInit | undefined | Really? Should we need to redefined a persona here? |
| probe | Probe | undefined | |
| appConfiguration | Appconfiguration | undefined | |
| disableFillers | boolean | Should the agent insert some filler phrases when processing (doesn't need to be undefined) |
| instances | AppInstance | |
| favoriteOutfit | Record<string, unknown> | undefined | Need to be reworked (confusing) → historically used by blue prints to change the outfit of an application avatar -> raw but parse by unreal |
| Attribute | Type | Description |
|---|---|---|
| provider | string / LipsyncProvider | Should be an enum ( |
| apiKey | string | undefined | Can be undefined? |
| endpoint | string | undefined | Can be undefined? |
| … | [key: string]: unknown | Need to be defined |
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique identifier for the probe |
| date | Date | |
| … | unknown |
What is that thing?
| Attribute | Type | Description |
|---|---|---|
| date | Date | |
| … | unknown |
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique identifier for the instance |
| name | string | Friendly name for that instance |
| createdAt | Date | Currently a string (should be updated to a Date ?) |
| status | AgentStatus |
An engine type can be : (should be CAPITALIZED)
Could be one of the following provider:
An agent can be waiting for a query or processing one: