2023-09-07 23:28:06 +02:00
< div class = "vectors_settings" >
< div class = "inline-drawer" >
< div class = "inline-drawer-toggle inline-drawer-header" >
< b > Vector Storage< / b >
< div class = "inline-drawer-icon fa-solid fa-circle-chevron-down down" > < / div >
< / div >
< div class = "inline-drawer-content" >
2023-11-29 23:01:59 +01:00
< div class = "flex-container flexFlowColumn" >
< label for = "vectors_source" >
Vectorization Source
2023-09-09 20:26:04 +02:00
< / label >
2023-11-29 23:01:59 +01:00
< select id = "vectors_source" class = "text_pole" >
2024-04-18 23:07:12 +02:00
< option value = "cohere" > Cohere< / option >
2024-01-24 14:16:55 +01:00
< option value = "extras" > Extras< / option >
2024-05-28 21:54:50 +02:00
< option value = "palm" > Google MakerSuite< / option >
< option value = "llamacpp" > llama.cpp< / option >
2024-04-18 23:07:12 +02:00
< option value = "transformers" > Local (Transformers)< / option >
2023-12-15 23:37:39 +01:00
< option value = "mistral" > MistralAI< / option >
2024-03-12 20:10:25 +01:00
< option value = "nomicai" > NomicAI< / option >
2024-05-28 21:57:07 +02:00
< option value = "ollama" > Ollama< / option >
< option value = "openai" > OpenAI< / option >
2024-04-18 23:07:12 +02:00
< option value = "togetherai" > TogetherAI< / option >
2024-03-01 23:52:49 +01:00
< / select >
< / div >
2024-05-28 21:54:50 +02:00
< div class = "flex-container flexFlowColumn" id = "ollama_vectorsModel" >
< label for = "vectors_ollama_model" >
Vectorization Model
< / label >
< input id = "vectors_ollama_model" class = "text_pole" type = "text" placeholder = "Model tag, e.g. llama3" / >
< label for = "vectors_ollama_keep" class = "checkbox_label" title = "When checked, the model will not be unloaded after use." >
< input id = "vectors_ollama_keep" type = "checkbox" / >
< span > Keep model in memory< / span >
< / label >
< i >
Hint: Download models and set the URL in the API connection settings.
< / i >
< / div >
< div class = "flex-container flexFlowColumn" id = "llamacpp_vectorsModel" >
< span >
The server MUST be started with the < code > --embedding< / code > flag to use this feature!
< / span >
< i >
Hint: Set the URL in the API connection settings.
< / i >
< / div >
2024-03-12 20:41:30 +01:00
< div class = "flex-container flexFlowColumn" id = "openai_vectorsModel" >
< label for = "vectors_openai_model" >
Vectorization Model
< / label >
< select id = "vectors_openai_model" class = "text_pole" >
< option value = "text-embedding-ada-002" > text-embedding-ada-002< / option >
< option value = "text-embedding-3-small" > text-embedding-3-small< / option >
< option value = "text-embedding-3-large" > text-embedding-3-large< / option >
< / select >
< / div >
2024-04-18 23:07:12 +02:00
< div class = "flex-container flexFlowColumn" id = "cohere_vectorsModel" >
< label for = "vectors_cohere_model" >
Vectorization Model
< / label >
< select id = "vectors_cohere_model" class = "text_pole" >
< option value = "embed-english-v3.0" > embed-english-v3.0< / option >
< option value = "embed-multilingual-v3.0" > embed-multilingual-v3.0< / option >
< option value = "embed-english-light-v3.0" > embed-english-light-v3.0< / option >
< option value = "embed-multilingual-light-v3.0" > embed-multilingual-light-v3.0< / option >
< option value = "embed-english-v2.0" > embed-english-v2.0< / option >
< option value = "embed-english-light-v2.0" > embed-english-light-v2.0< / option >
< option value = "embed-multilingual-v2.0" > embed-multilingual-v2.0< / option >
< / select >
< / div >
2024-03-02 22:16:18 +01:00
< div class = "flex-container flexFlowColumn" id = "together_vectorsModel" >
< label for = "vectors_togetherai_model" >
2024-03-01 23:52:49 +01:00
Vectorization Model
< / label >
2024-03-02 22:16:18 +01:00
< select id = "vectors_togetherai_model" class = "text_pole" >
2024-03-01 23:52:49 +01:00
< option value = "togethercomputer/m2-bert-80M-32k-retrieval" > M2-BERT-Retrieval-32k< / option >
< option value = "togethercomputer/m2-bert-80M-8k-retrieval" > M2-BERT-Retrieval-8k< / option >
< option value = "togethercomputer/m2-bert-80M-2k-retrieval" > M2-BERT-Retrieval-2K< / option >
< option value = "WhereIsAI/UAE-Large-V1" > UAE-Large-V1< / option >
< option value = "BAAI/bge-large-en-v1.5" > BAAI-Bge-Large-1p5< / option >
< option value = "BAAI/bge-base-en-v1.5" > BAAI-Bge-Base-1p5< / option >
< option value = "sentence-transformers/msmarco-bert-base-dot-v5" > Sentence-BERT< / option >
< option value = "bert-base-uncased" > Bert Base Uncased< / option >
2023-11-29 23:01:59 +01:00
< / select >
< / div >
2024-03-12 20:41:30 +01:00
< small id = "vectors_modelWarning" >
< i class = "fa-solid fa-exclamation-triangle" > < / i >
< span data-i18n = "Vectors Model Warning" >
It is recommended to purge vectors when changing the model mid-chat. Otherwise, it will lead to sub-par results.
< / span >
< / small >
2024-03-12 20:10:25 +01:00
< div class = "flex-container flexFlowColumn" id = "nomicai_apiKey" >
< label for = "api_key_nomicai" >
< span > NomicAI API Key< / span >
< / label >
< div class = "flex-container" >
< input id = "api_key_nomicai" name = "api_key_nomicai" class = "text_pole flex1 wide100p" maxlength = "500" size = "35" type = "text" autocomplete = "off" >
< div title = "Clear your API key" class = "menu_button fa-solid fa-circle-xmark clear-api-key" data-key = "api_key_nomicai" >
< / div >
< / div >
< div data-for = "api_key_nomicai" class = "neutral_warning" data-i18n = "For privacy reasons, your API key will be hidden after you reload the page." >
For privacy reasons, your API key will be hidden after you reload the page.
< / div >
< / div >
2023-11-29 23:01:59 +01:00
2024-05-23 16:28:43 +02:00
< div class = "flex-container marginTopBot5" >
< div class = "flex-container flex1 flexFlowColumn" title = "How many last messages will be matched for relevance." >
< label for = "vectors_query" >
< span > Query messages< / span >
< / label >
< input type = "number" id = "vectors_query" class = "text_pole widthUnset" min = "1" max = "99" / >
< / div >
< div class = "flex-container flex1 flexFlowColumn" title = "Cut-off score for relevance. Helps to filter out irrelevant data." >
< label for = "vectors_query" >
< span > Score threshold< / span >
< / label >
< input type = "number" id = "vectors_score_threshold" class = "text_pole widthUnset" min = "0" max = "1" step = "0.05" / >
< / div >
2023-11-29 23:01:59 +01:00
< / div >
2024-04-10 00:13:27 +02:00
< div class = "flex-container" >
< label class = "checkbox_label expander" for = "vectors_include_wi" title = "Query results can activate World Info entries." >
< input id = "vectors_include_wi" type = "checkbox" class = "checkbox" >
Include in World Info Scanning
< / label >
2024-04-16 21:31:51 +02:00
< / div >
2023-12-11 21:47:26 +01:00
2023-11-29 23:01:59 +01:00
< hr >
2024-04-23 02:09:52 +02:00
< h4 >
World Info settings
< / h4 >
< label class = "checkbox_label" for = "vectors_enabled_world_info" title = "Enable activation of World Info entries based on vector similarity." >
< input id = "vectors_enabled_world_info" type = "checkbox" class = "checkbox" >
Enabled for World Info
< / label >
< div id = "vectors_world_info_settings" class = "marginTopBot5" >
< div class = "flex-container" >
< label for = "vectors_enabled_for_all" class = "checkbox_label" >
< input id = "vectors_enabled_for_all" type = "checkbox" / >
< span > Enabled for all entries< / span >
< / label >
< ul class = "margin0" >
< li >
< small > Checked: all entries except ❌ status can be activated.< / small >
< / li >
< li >
< small > Unchecked: only entries with 🔗 status can be activated.< / small >
< / li >
< / ul >
< / div >
< div class = "flex-container" >
< div class = "flex1" >
<!-- Vacant for future use -->
< / div >
< div class = "flex1" title = "Maximum number of entries to be activated" >
< label for = "vectors_max_entries" >
< small > Max Entries< / small >
< / label >
< input id = "vectors_max_entries" type = "number" class = "text_pole widthUnset" min = "1" max = "9999" / >
< / div >
< div class = "flex1" >
<!-- Vacant for future use -->
< / div >
< / div >
< / div >
2023-11-29 23:01:59 +01:00
< h4 >
File vectorization settings
< / h4 >
< label class = "checkbox_label" for = "vectors_enabled_files" >
< input id = "vectors_enabled_files" type = "checkbox" class = "checkbox" >
Enabled for files
< / label >
2024-04-17 01:09:22 +02:00
< div id = "vectors_files_settings" class = "marginTopBot5" >
2024-04-21 02:24:01 +02:00
< label class = "checkbox_label" for = "vectors_translate_files" title = "This can help with retrieval accuracy if using embedding models that are trained on English data. Uses the selected API from Chat Translation extension settings." >
< input id = "vectors_translate_files" type = "checkbox" class = "checkbox" >
< span data-i18n = "Translate files into English before processing" >
Translate files into English before processing
< / span >
< i class = "fa-solid fa-flask" title = "Experimental feature" > < / i >
< / label >
2024-04-17 01:09:22 +02:00
< div class = "flex justifyCenter" title = "These settings apply to files attached directly to messages." >
< span > Message attachments< / span >
< / div >
2023-09-09 20:26:04 +02:00
< div class = "flex-container" >
2023-11-29 23:01:59 +01:00
< div class = "flex1" title = "Only files past this size will be vectorized." >
< label for = "vectors_size_threshold" >
< small > Size threshold (KB)< / small >
2023-09-09 20:26:04 +02:00
< / label >
2024-06-06 20:45:47 +02:00
< input id = "vectors_size_threshold" type = "number" class = "text_pole" min = "1" max = "99999" / >
2023-09-09 20:26:04 +02:00
< / div >
2023-11-29 23:01:59 +01:00
< div class = "flex1" title = "Chunk size for file splitting." >
< label for = "vectors_chunk_size" >
< small > Chunk size (chars)< / small >
2023-09-09 20:26:04 +02:00
< / label >
2024-06-06 20:45:47 +02:00
< input id = "vectors_chunk_size" type = "number" class = "text_pole" min = "1" max = "99999" / >
< / div >
< div class = "flex1" title = "The overlap between adjacent chunks in % from chunk size. The overlap text is trimmed to sentence boundaries. 0 = disabled." >
< label for = "vectors_overlap_percent" >
< small > Chunk overlap (%)< / small >
< / label >
< input id = "vectors_overlap_percent" type = "number" class = "text_pole" min = "0" max = "99" step = "1" / >
2023-09-09 20:26:04 +02:00
< / div >
2023-11-29 23:01:59 +01:00
< div class = "flex1" title = "How many chunks to retrieve when querying." >
< label for = "vectors_chunk_count" >
< small > Retrieve chunks< / small >
2023-09-09 20:26:04 +02:00
< / label >
2024-06-06 20:45:47 +02:00
< input id = "vectors_chunk_count" type = "number" class = "text_pole" min = "1" max = "99999" / >
2023-09-09 20:26:04 +02:00
< / div >
< / div >
2024-04-17 01:09:22 +02:00
< div class = "flex justifyCenter" title = "These settings apply to files stored in the Data Bank." >
< span > Data Bank files< / span >
< / div >
< div class = "flex-container" >
< div class = "flex1" title = "Only files past this size will be vectorized." >
< label for = "vectors_size_threshold_db" >
< small > Size threshold (KB)< / small >
< / label >
2024-06-06 20:45:47 +02:00
< input id = "vectors_size_threshold_db" type = "number" class = "text_pole" min = "1" max = "99999" / >
2024-04-17 01:09:22 +02:00
< / div >
< div class = "flex1" title = "Chunk size for file splitting." >
< label for = "vectors_chunk_size_db" >
< small > Chunk size (chars)< / small >
< / label >
2024-06-06 20:45:47 +02:00
< input id = "vectors_chunk_size_db" type = "number" class = "text_pole" min = "1" max = "99999" / >
< / div >
< div class = "flex1" title = "The overlap between adjacent chunks in % from chunk size. The overlap text is trimmed to sentence boundaries. 0 = disabled." >
< label for = "vectors_overlap_percent_db" >
< small > Chunk overlap (%)< / small >
< / label >
< input id = "vectors_overlap_percent_db" type = "number" class = "text_pole" min = "0" max = "99" step = "1" / >
2024-04-17 01:09:22 +02:00
< / div >
< div class = "flex1" title = "How many chunks to retrieve when querying." >
< label for = "vectors_chunk_count_db" >
< small > Retrieve chunks< / small >
< / label >
2024-06-06 20:45:47 +02:00
< input id = "vectors_chunk_count_db" type = "number" class = "text_pole" min = "1" max = "99999" / >
2024-04-17 01:09:22 +02:00
< / div >
< / div >
< div class = "flex-container flexFlowColumn" >
< label for = "vectors_file_template_db" >
< span > Injection Template< / span >
< / label >
< textarea id = "vectors_file_template_db" class = "margin0 text_pole textarea_compact" rows = "3" placeholder = "Use {{text}} macro to specify the position of retrieved text." > < / textarea >
< label for = "vectors_file_position_db" > Injection Position< / label >
< div class = "radio_group" >
< label >
< input type = "radio" name = "vectors_file_position_db" value = "2" / >
< span > Before Main Prompt / Story String< / span >
< / label >
<!-- Keep these as 0 and 1 to interface with the setExtensionPrompt function -->
< label >
< input type = "radio" name = "vectors_file_position_db" value = "0" / >
< span > After Main Prompt / Story String< / span >
< / label >
< label for = "vectors_file_depth_db" title = "How many messages before the current end of the chat." data-i18n = "[title]How many messages before the current end of the chat." >
< input type = "radio" name = "vectors_file_position_db" value = "1" / >
< span > In-chat @ Depth< / span >
< input id = "vectors_file_depth_db" class = "text_pole widthUnset" type = "number" min = "0" max = "999" / >
< span > as< / span >
< select id = "vectors_file_depth_role_db" class = "text_pole widthNatural" >
< option value = "0" > System< / option >
< option value = "1" > User< / option >
< option value = "2" > Assistant< / option >
< / select >
< / label >
< / div >
< / div >
2024-04-18 23:16:23 +02:00
< div class = "flex-container" >
< div id = "vectors_files_vectorize_all" class = "menu_button menu_button_icon" title = "Vectorize all files in the Data Bank and current chat." >
Vectorize All
< / div >
< div id = "vectors_files_purge" class = "menu_button menu_button_icon" title = "Purge all file vectors in the Data Bank and current chat." >
Purge Vectors
< / div >
< / div >
2023-09-09 20:26:04 +02:00
< / div >
2023-11-29 23:01:59 +01:00
< hr >
< h4 >
Chat vectorization settings
< / h4 >
< label class = "checkbox_label" for = "vectors_enabled_chats" >
< input id = "vectors_enabled_chats" type = "checkbox" class = "checkbox" >
Enabled for chat messages
< / label >
2024-04-16 22:57:50 +02:00
< hr >
2023-11-29 23:01:59 +01:00
< div id = "vectors_chats_settings" >
2023-12-31 03:00:04 +01:00
< div id = "vectors_advanced_settings" >
2023-11-29 23:01:59 +01:00
< label for = "vectors_template" >
2024-04-17 01:09:22 +02:00
Injection Template
2023-11-29 23:01:59 +01:00
< / label >
2024-04-17 01:09:22 +02:00
< textarea id = "vectors_template" class = "text_pole textarea_compact" rows = "3" placeholder = "Use {{text}} macro to specify the position of retrieved text." > < / textarea >
2023-11-29 23:01:59 +01:00
< label for = "vectors_position" > Injection Position< / label >
< div class = "radio_group" >
< label >
< input type = "radio" name = "vectors_position" value = "2" / >
Before Main Prompt / Story String
< / label >
<!-- Keep these as 0 and 1 to interface with the setExtensionPrompt function -->
< label >
< input type = "radio" name = "vectors_position" value = "0" / >
After Main Prompt / Story String
< / label >
2024-01-22 14:56:12 +01:00
< label for = "vectors_depth" title = "How many messages before the current end of the chat." data-i18n = "[title]How many messages before the current end of the chat." >
2023-11-29 23:01:59 +01:00
< input type = "radio" name = "vectors_position" value = "1" / >
In-chat @ Depth < input id = "vectors_depth" class = "text_pole widthUnset" type = "number" min = "0" max = "999" / >
< / label >
< / div >
< div class = "flex-container" >
2023-12-31 03:00:04 +01:00
< div class = "flex1" title = "Can increase the retrieval quality for the cost of processing. 0 = disabled." >
< label for = "vectors_message_chunk_size" >
< small > Chunk size (chars)< / small >
< / label >
< input id = "vectors_message_chunk_size" type = "number" class = "text_pole widthUnset" min = "0" max = "9999" / >
< / div >
2023-11-29 23:01:59 +01:00
< div class = "flex1" title = "Prevents last N messages from being placed out of order." >
< label for = "vectors_protect" >
< small > Retain#< / small >
< / label >
2023-12-31 03:00:04 +01:00
< input type = "number" id = "vectors_protect" class = "text_pole widthUnset" min = "1" max = "9999" / >
2023-11-29 23:01:59 +01:00
< / div >
< div class = "flex1" title = "How many past messages to insert as memories." >
< label for = "vectors_insert" >
< small > Insert#< / small >
< / label >
2023-12-31 03:00:04 +01:00
< input type = "number" id = "vectors_insert" class = "text_pole widthUnset" min = "1" max = "9999" / >
2023-11-29 23:01:59 +01:00
< / div >
< / div >
2024-04-18 21:32:01 +02:00
< hr class = "m-b-1" >
< div class = "flex-container flexFlowColumn" >
< div class = "flex-container alignitemscenter justifyCenter" >
< i class = "fa-solid fa-flask" title = "Summarization for vectors is an experimental feature that may improve vectors or may worsen them. Use at your own discretion." > < / i >
< span > Vector Summarization< / span >
< / div >
< label class = "checkbox_label expander" for = "vectors_summarize" title = "Summarize chat messages before generating embeddings." >
< input id = "vectors_summarize" type = "checkbox" class = "checkbox" >
Summarize chat messages for vector generation
< / label >
< i class = "failure" > Warning: This will slow down vector generation drastically, as all messages have to be summarized first.< / i >
< label class = "checkbox_label expander" for = "vectors_summarize_user" title = "Summarize sent chat messages before generating embeddings." >
< input id = "vectors_summarize_user" type = "checkbox" class = "checkbox" >
Summarize chat messages when sending
< / label >
< i class = "failure" > Warning: This might cause your sent messages to take a bit to process and slow down response time.< / i >
< label for = "vectors_summary_source" > Summarize with:< / label >
< select id = "vectors_summary_source" class = "text_pole" >
< option value = "main" > Main API< / option >
< option value = "extras" > Extras API< / option >
< / select >
< label for = "vectors_summary_prompt" > Summary Prompt:< / label >
< small > Only used when Main API is selected.< / small >
< textarea id = "vectors_summary_prompt" class = "text_pole textarea_compact" rows = "6" placeholder = "This prompt will be sent to AI to request the summary generation." > < / textarea >
< / div >
2023-11-29 23:01:59 +01:00
< / div >
2023-09-08 14:25:10 +02:00
< small >
2023-11-29 23:01:59 +01:00
Old messages are vectorized gradually as you chat.
To process all previous messages, click the button below.
2023-09-08 14:25:10 +02:00
< / small >
2023-12-31 03:00:04 +01:00
< div class = "flex-container" >
< div id = "vectors_vectorize_all" class = "menu_button menu_button_icon" >
Vectorize All
< / div >
< div id = "vectors_purge" class = "menu_button menu_button_icon" >
Purge Vectors
< / div >
< div id = "vectors_view_stats" class = "menu_button menu_button_icon" >
View Stats
< / div >
2023-11-29 23:01:59 +01:00
< / div >
< div id = "vectorize_progress" style = "display: none;" >
< small >
Processed < span id = "vectorize_progress_percent" > 0< / span > % of messages.
ETA: < span id = "vectorize_progress_eta" > ...< / span > seconds.
< / small >
< / div >
2023-09-08 14:25:10 +02:00
< / div >
2023-09-07 23:28:06 +02:00
< / div >
< / div >
< / div >