mirror of
https://github.com/open-webui/open-webui.git
synced 2025-04-14 14:59:12 +02:00
feat: merge with dev
This commit is contained in:
commit
e3eef58310
14
CHANGELOG.md
14
CHANGELOG.md
@ -5,7 +5,19 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.5.19] - 2024-03-04
|
||||
## [0.5.20] - 2025-03-05
|
||||
|
||||
### Added
|
||||
|
||||
- **⚡ Toggle Code Execution On/Off**: You can now enable or disable code execution, providing more control over security, ensuring a safer and more customizable experience.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **📜 Pinyin Keyboard Enter Key Now Works Properly**: Resolved an issue where the Enter key for Pinyin keyboards was not functioning as expected, ensuring seamless input for Chinese users.
|
||||
- **🖼️ Web Manifest Loading Issue Fixed**: Addressed inconsistencies with 'site.webmanifest', guaranteeing proper loading and representation of the app across different browsers and devices.
|
||||
- **📦 Non-Root Container Issue Resolved**: Fixed a critical issue where the UI failed to load correctly in non-root containers, ensuring reliable deployment in various environments.
|
||||
|
||||
## [0.5.19] - 2025-03-04
|
||||
|
||||
### Added
|
||||
|
||||
|
@ -593,7 +593,10 @@ for file_path in (FRONTEND_BUILD_DIR / "static").glob("**/*"):
|
||||
(FRONTEND_BUILD_DIR / "static")
|
||||
)
|
||||
target_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
shutil.copyfile(file_path, target_path)
|
||||
try:
|
||||
shutil.copyfile(file_path, target_path)
|
||||
except Exception as e:
|
||||
logging.error(f"An error occurred: {e}")
|
||||
|
||||
frontend_favicon = FRONTEND_BUILD_DIR / "static" / "favicon.png"
|
||||
|
||||
@ -1377,6 +1380,11 @@ Responses from models: {{responses}}"""
|
||||
# Code Interpreter
|
||||
####################################
|
||||
|
||||
ENABLE_CODE_EXECUTION = PersistentConfig(
|
||||
"ENABLE_CODE_EXECUTION",
|
||||
"code_execution.enable",
|
||||
os.environ.get("ENABLE_CODE_EXECUTION", "True").lower() == "true",
|
||||
)
|
||||
|
||||
CODE_EXECUTION_ENGINE = PersistentConfig(
|
||||
"CODE_EXECUTION_ENGINE",
|
||||
@ -1553,7 +1561,9 @@ ELASTICSEARCH_USERNAME = os.environ.get("ELASTICSEARCH_USERNAME", None)
|
||||
ELASTICSEARCH_PASSWORD = os.environ.get("ELASTICSEARCH_PASSWORD", None)
|
||||
ELASTICSEARCH_CLOUD_ID = os.environ.get("ELASTICSEARCH_CLOUD_ID", None)
|
||||
SSL_ASSERT_FINGERPRINT = os.environ.get("SSL_ASSERT_FINGERPRINT", None)
|
||||
ELASTICSEARCH_INDEX_PREFIX = os.environ.get("ELASTICSEARCH_INDEX_PREFIX", "open_webui_collections")
|
||||
ELASTICSEARCH_INDEX_PREFIX = os.environ.get(
|
||||
"ELASTICSEARCH_INDEX_PREFIX", "open_webui_collections"
|
||||
)
|
||||
# Pgvector
|
||||
PGVECTOR_DB_URL = os.environ.get("PGVECTOR_DB_URL", DATABASE_URL)
|
||||
if VECTOR_DB == "pgvector" and not PGVECTOR_DB_URL.startswith("postgres"):
|
||||
|
@ -105,6 +105,7 @@ from open_webui.config import (
|
||||
# Direct Connections
|
||||
ENABLE_DIRECT_CONNECTIONS,
|
||||
# Code Execution
|
||||
ENABLE_CODE_EXECUTION,
|
||||
CODE_EXECUTION_ENGINE,
|
||||
CODE_EXECUTION_JUPYTER_URL,
|
||||
CODE_EXECUTION_JUPYTER_AUTH,
|
||||
@ -662,6 +663,7 @@ app.state.EMBEDDING_FUNCTION = get_embedding_function(
|
||||
#
|
||||
########################################
|
||||
|
||||
app.state.config.ENABLE_CODE_EXECUTION = ENABLE_CODE_EXECUTION
|
||||
app.state.config.CODE_EXECUTION_ENGINE = CODE_EXECUTION_ENGINE
|
||||
app.state.config.CODE_EXECUTION_JUPYTER_URL = CODE_EXECUTION_JUPYTER_URL
|
||||
app.state.config.CODE_EXECUTION_JUPYTER_AUTH = CODE_EXECUTION_JUPYTER_AUTH
|
||||
@ -1175,6 +1177,7 @@ async def get_app_config(request: Request):
|
||||
"enable_direct_connections": app.state.config.ENABLE_DIRECT_CONNECTIONS,
|
||||
"enable_channels": app.state.config.ENABLE_CHANNELS,
|
||||
"enable_web_search": app.state.config.ENABLE_RAG_WEB_SEARCH,
|
||||
"enable_code_execution": app.state.config.ENABLE_CODE_EXECUTION,
|
||||
"enable_code_interpreter": app.state.config.ENABLE_CODE_INTERPRETER,
|
||||
"enable_image_generation": app.state.config.ENABLE_IMAGE_GENERATION,
|
||||
"enable_autocomplete_generation": app.state.config.ENABLE_AUTOCOMPLETE_GENERATION,
|
||||
|
@ -1,30 +1,28 @@
|
||||
from elasticsearch import Elasticsearch, BadRequestError
|
||||
from typing import Optional
|
||||
import ssl
|
||||
from elasticsearch.helpers import bulk,scan
|
||||
from elasticsearch.helpers import bulk, scan
|
||||
from open_webui.retrieval.vector.main import VectorItem, SearchResult, GetResult
|
||||
from open_webui.config import (
|
||||
ELASTICSEARCH_URL,
|
||||
ELASTICSEARCH_CA_CERTS,
|
||||
ELASTICSEARCH_CA_CERTS,
|
||||
ELASTICSEARCH_API_KEY,
|
||||
ELASTICSEARCH_USERNAME,
|
||||
ELASTICSEARCH_PASSWORD,
|
||||
ELASTICSEARCH_PASSWORD,
|
||||
ELASTICSEARCH_CLOUD_ID,
|
||||
ELASTICSEARCH_INDEX_PREFIX,
|
||||
SSL_ASSERT_FINGERPRINT,
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
class ElasticsearchClient:
|
||||
"""
|
||||
Important:
|
||||
in order to reduce the number of indexes and since the embedding vector length is fixed, we avoid creating
|
||||
an index for each file but store it as a text field, while seperating to different index
|
||||
in order to reduce the number of indexes and since the embedding vector length is fixed, we avoid creating
|
||||
an index for each file but store it as a text field, while seperating to different index
|
||||
baesd on the embedding length.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self.index_prefix = ELASTICSEARCH_INDEX_PREFIX
|
||||
self.client = Elasticsearch(
|
||||
@ -32,15 +30,19 @@ class ElasticsearchClient:
|
||||
ca_certs=ELASTICSEARCH_CA_CERTS,
|
||||
api_key=ELASTICSEARCH_API_KEY,
|
||||
cloud_id=ELASTICSEARCH_CLOUD_ID,
|
||||
basic_auth=(ELASTICSEARCH_USERNAME,ELASTICSEARCH_PASSWORD) if ELASTICSEARCH_USERNAME and ELASTICSEARCH_PASSWORD else None,
|
||||
ssl_assert_fingerprint=SSL_ASSERT_FINGERPRINT
|
||||
|
||||
basic_auth=(
|
||||
(ELASTICSEARCH_USERNAME, ELASTICSEARCH_PASSWORD)
|
||||
if ELASTICSEARCH_USERNAME and ELASTICSEARCH_PASSWORD
|
||||
else None
|
||||
),
|
||||
ssl_assert_fingerprint=SSL_ASSERT_FINGERPRINT,
|
||||
)
|
||||
#Status: works
|
||||
def _get_index_name(self,dimension:int)->str:
|
||||
|
||||
# Status: works
|
||||
def _get_index_name(self, dimension: int) -> str:
|
||||
return f"{self.index_prefix}_d{str(dimension)}"
|
||||
|
||||
#Status: works
|
||||
|
||||
# Status: works
|
||||
def _scan_result_to_get_result(self, result) -> GetResult:
|
||||
if not result:
|
||||
return None
|
||||
@ -55,7 +57,7 @@ class ElasticsearchClient:
|
||||
|
||||
return GetResult(ids=[ids], documents=[documents], metadatas=[metadatas])
|
||||
|
||||
#Status: works
|
||||
# Status: works
|
||||
def _result_to_get_result(self, result) -> GetResult:
|
||||
if not result["hits"]["hits"]:
|
||||
return None
|
||||
@ -70,7 +72,7 @@ class ElasticsearchClient:
|
||||
|
||||
return GetResult(ids=[ids], documents=[documents], metadatas=[metadatas])
|
||||
|
||||
#Status: works
|
||||
# Status: works
|
||||
def _result_to_search_result(self, result) -> SearchResult:
|
||||
ids = []
|
||||
distances = []
|
||||
@ -84,19 +86,21 @@ class ElasticsearchClient:
|
||||
metadatas.append(hit["_source"].get("metadata"))
|
||||
|
||||
return SearchResult(
|
||||
ids=[ids], distances=[distances], documents=[documents], metadatas=[metadatas]
|
||||
ids=[ids],
|
||||
distances=[distances],
|
||||
documents=[documents],
|
||||
metadatas=[metadatas],
|
||||
)
|
||||
#Status: works
|
||||
|
||||
# Status: works
|
||||
def _create_index(self, dimension: int):
|
||||
body = {
|
||||
"mappings": {
|
||||
"dynamic_templates": [
|
||||
{
|
||||
"strings": {
|
||||
"match_mapping_type": "string",
|
||||
"mapping": {
|
||||
"type": "keyword"
|
||||
}
|
||||
"strings": {
|
||||
"match_mapping_type": "string",
|
||||
"mapping": {"type": "keyword"},
|
||||
}
|
||||
}
|
||||
],
|
||||
@ -111,68 +115,52 @@ class ElasticsearchClient:
|
||||
},
|
||||
"text": {"type": "text"},
|
||||
"metadata": {"type": "object"},
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
self.client.indices.create(index=self._get_index_name(dimension), body=body)
|
||||
#Status: works
|
||||
|
||||
# Status: works
|
||||
|
||||
def _create_batches(self, items: list[VectorItem], batch_size=100):
|
||||
for i in range(0, len(items), batch_size):
|
||||
yield items[i : min(i + batch_size,len(items))]
|
||||
yield items[i : min(i + batch_size, len(items))]
|
||||
|
||||
#Status: works
|
||||
def has_collection(self,collection_name) -> bool:
|
||||
# Status: works
|
||||
def has_collection(self, collection_name) -> bool:
|
||||
query_body = {"query": {"bool": {"filter": []}}}
|
||||
query_body["query"]["bool"]["filter"].append({"term": {"collection": collection_name}})
|
||||
query_body["query"]["bool"]["filter"].append(
|
||||
{"term": {"collection": collection_name}}
|
||||
)
|
||||
|
||||
try:
|
||||
result = self.client.count(
|
||||
index=f"{self.index_prefix}*",
|
||||
body=query_body
|
||||
)
|
||||
|
||||
return result.body["count"]>0
|
||||
result = self.client.count(index=f"{self.index_prefix}*", body=query_body)
|
||||
|
||||
return result.body["count"] > 0
|
||||
except Exception as e:
|
||||
return None
|
||||
|
||||
|
||||
|
||||
def delete_collection(self, collection_name: str):
|
||||
query = {
|
||||
"query": {
|
||||
"term": {"collection": collection_name}
|
||||
}
|
||||
}
|
||||
query = {"query": {"term": {"collection": collection_name}}}
|
||||
self.client.delete_by_query(index=f"{self.index_prefix}*", body=query)
|
||||
#Status: works
|
||||
|
||||
# Status: works
|
||||
def search(
|
||||
self, collection_name: str, vectors: list[list[float]], limit: int
|
||||
) -> Optional[SearchResult]:
|
||||
query = {
|
||||
"size": limit,
|
||||
"_source": [
|
||||
"text",
|
||||
"metadata"
|
||||
],
|
||||
"_source": ["text", "metadata"],
|
||||
"query": {
|
||||
"script_score": {
|
||||
"query": {
|
||||
"bool": {
|
||||
"filter": [
|
||||
{
|
||||
"term": {
|
||||
"collection": collection_name
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
"bool": {"filter": [{"term": {"collection": collection_name}}]}
|
||||
},
|
||||
"script": {
|
||||
"source": "cosineSimilarity(params.vector, 'vector') + 1.0",
|
||||
"params": {
|
||||
"vector": vectors[0]
|
||||
}, # Assuming single query vector
|
||||
}, # Assuming single query vector
|
||||
},
|
||||
}
|
||||
},
|
||||
@ -183,7 +171,8 @@ class ElasticsearchClient:
|
||||
)
|
||||
|
||||
return self._result_to_search_result(result)
|
||||
#Status: only tested halfwat
|
||||
|
||||
# Status: only tested halfwat
|
||||
def query(
|
||||
self, collection_name: str, filter: dict, limit: Optional[int] = None
|
||||
) -> Optional[GetResult]:
|
||||
@ -197,7 +186,9 @@ class ElasticsearchClient:
|
||||
|
||||
for field, value in filter.items():
|
||||
query_body["query"]["bool"]["filter"].append({"term": {field: value}})
|
||||
query_body["query"]["bool"]["filter"].append({"term": {"collection": collection_name}})
|
||||
query_body["query"]["bool"]["filter"].append(
|
||||
{"term": {"collection": collection_name}}
|
||||
)
|
||||
size = limit if limit else 10
|
||||
|
||||
try:
|
||||
@ -206,59 +197,53 @@ class ElasticsearchClient:
|
||||
body=query_body,
|
||||
size=size,
|
||||
)
|
||||
|
||||
|
||||
return self._result_to_get_result(result)
|
||||
|
||||
except Exception as e:
|
||||
return None
|
||||
#Status: works
|
||||
def _has_index(self,dimension:int):
|
||||
return self.client.indices.exists(index=self._get_index_name(dimension=dimension))
|
||||
|
||||
# Status: works
|
||||
def _has_index(self, dimension: int):
|
||||
return self.client.indices.exists(
|
||||
index=self._get_index_name(dimension=dimension)
|
||||
)
|
||||
|
||||
def get_or_create_index(self, dimension: int):
|
||||
if not self._has_index(dimension=dimension):
|
||||
self._create_index(dimension=dimension)
|
||||
#Status: works
|
||||
|
||||
# Status: works
|
||||
def get(self, collection_name: str) -> Optional[GetResult]:
|
||||
# Get all the items in the collection.
|
||||
query = {
|
||||
"query": {
|
||||
"bool": {
|
||||
"filter": [
|
||||
{
|
||||
"term": {
|
||||
"collection": collection_name
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}, "_source": ["text", "metadata"]}
|
||||
"query": {"bool": {"filter": [{"term": {"collection": collection_name}}]}},
|
||||
"_source": ["text", "metadata"],
|
||||
}
|
||||
results = list(scan(self.client, index=f"{self.index_prefix}*", query=query))
|
||||
|
||||
|
||||
return self._scan_result_to_get_result(results)
|
||||
|
||||
#Status: works
|
||||
# Status: works
|
||||
def insert(self, collection_name: str, items: list[VectorItem]):
|
||||
if not self._has_index(dimension=len(items[0]["vector"])):
|
||||
self._create_index(dimension=len(items[0]["vector"]))
|
||||
|
||||
|
||||
for batch in self._create_batches(items):
|
||||
actions = [
|
||||
{
|
||||
"_index":self._get_index_name(dimension=len(items[0]["vector"])),
|
||||
"_id": item["id"],
|
||||
"_source": {
|
||||
"collection": collection_name,
|
||||
"vector": item["vector"],
|
||||
"text": item["text"],
|
||||
"metadata": item["metadata"],
|
||||
},
|
||||
}
|
||||
{
|
||||
"_index": self._get_index_name(dimension=len(items[0]["vector"])),
|
||||
"_id": item["id"],
|
||||
"_source": {
|
||||
"collection": collection_name,
|
||||
"vector": item["vector"],
|
||||
"text": item["text"],
|
||||
"metadata": item["metadata"],
|
||||
},
|
||||
}
|
||||
for item in batch
|
||||
]
|
||||
bulk(self.client,actions)
|
||||
bulk(self.client, actions)
|
||||
|
||||
# Upsert documents using the update API with doc_as_upsert=True.
|
||||
def upsert(self, collection_name: str, items: list[VectorItem]):
|
||||
@ -280,8 +265,7 @@ class ElasticsearchClient:
|
||||
}
|
||||
for item in batch
|
||||
]
|
||||
bulk(self.client,actions)
|
||||
|
||||
bulk(self.client, actions)
|
||||
|
||||
# Delete specific documents from a collection by filtering on both collection and document IDs.
|
||||
def delete(
|
||||
@ -292,21 +276,16 @@ class ElasticsearchClient:
|
||||
):
|
||||
|
||||
query = {
|
||||
"query": {
|
||||
"bool": {
|
||||
"filter": [
|
||||
{"term": {"collection": collection_name}}
|
||||
]
|
||||
}
|
||||
}
|
||||
"query": {"bool": {"filter": [{"term": {"collection": collection_name}}]}}
|
||||
}
|
||||
#logic based on chromaDB
|
||||
# logic based on chromaDB
|
||||
if ids:
|
||||
query["query"]["bool"]["filter"].append({"terms": {"_id": ids}})
|
||||
elif filter:
|
||||
for field, value in filter.items():
|
||||
query["query"]["bool"]["filter"].append({"term": {f"metadata.{field}": value}})
|
||||
|
||||
query["query"]["bool"]["filter"].append(
|
||||
{"term": {f"metadata.{field}": value}}
|
||||
)
|
||||
|
||||
self.client.delete_by_query(index=f"{self.index_prefix}*", body=query)
|
||||
|
||||
|
@ -70,6 +70,7 @@ async def set_direct_connections_config(
|
||||
# CodeInterpreterConfig
|
||||
############################
|
||||
class CodeInterpreterConfigForm(BaseModel):
|
||||
ENABLE_CODE_EXECUTION: bool
|
||||
CODE_EXECUTION_ENGINE: str
|
||||
CODE_EXECUTION_JUPYTER_URL: Optional[str]
|
||||
CODE_EXECUTION_JUPYTER_AUTH: Optional[str]
|
||||
@ -89,6 +90,7 @@ class CodeInterpreterConfigForm(BaseModel):
|
||||
@router.get("/code_execution", response_model=CodeInterpreterConfigForm)
|
||||
async def get_code_execution_config(request: Request, user=Depends(get_admin_user)):
|
||||
return {
|
||||
"ENABLE_CODE_EXECUTION": request.app.state.config.ENABLE_CODE_EXECUTION,
|
||||
"CODE_EXECUTION_ENGINE": request.app.state.config.CODE_EXECUTION_ENGINE,
|
||||
"CODE_EXECUTION_JUPYTER_URL": request.app.state.config.CODE_EXECUTION_JUPYTER_URL,
|
||||
"CODE_EXECUTION_JUPYTER_AUTH": request.app.state.config.CODE_EXECUTION_JUPYTER_AUTH,
|
||||
@ -111,6 +113,8 @@ async def set_code_execution_config(
|
||||
request: Request, form_data: CodeInterpreterConfigForm, user=Depends(get_admin_user)
|
||||
):
|
||||
|
||||
request.app.state.config.ENABLE_CODE_EXECUTION = form_data.ENABLE_CODE_EXECUTION
|
||||
|
||||
request.app.state.config.CODE_EXECUTION_ENGINE = form_data.CODE_EXECUTION_ENGINE
|
||||
request.app.state.config.CODE_EXECUTION_JUPYTER_URL = (
|
||||
form_data.CODE_EXECUTION_JUPYTER_URL
|
||||
@ -153,6 +157,7 @@ async def set_code_execution_config(
|
||||
)
|
||||
|
||||
return {
|
||||
"ENABLE_CODE_EXECUTION": request.app.state.config.ENABLE_CODE_EXECUTION,
|
||||
"CODE_EXECUTION_ENGINE": request.app.state.config.CODE_EXECUTION_ENGINE,
|
||||
"CODE_EXECUTION_JUPYTER_URL": request.app.state.config.CODE_EXECUTION_JUPYTER_URL,
|
||||
"CODE_EXECUTION_JUPYTER_AUTH": request.app.state.config.CODE_EXECUTION_JUPYTER_AUTH,
|
||||
|
@ -1,21 +1,21 @@
|
||||
{
|
||||
"name": "Open WebUI",
|
||||
"short_name": "WebUI",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/static/web-app-manifest-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/static/web-app-manifest-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
"name": "Open WebUI",
|
||||
"short_name": "WebUI",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/static/web-app-manifest-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/static/web-app-manifest-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
@ -72,7 +72,7 @@ def get_license_data(app, key):
|
||||
if key:
|
||||
try:
|
||||
res = requests.post(
|
||||
"https://api.openwebui.com/api/v1/license",
|
||||
"https://api.openwebui.com/api/v1/license/",
|
||||
json={"key": key, "version": "1"},
|
||||
timeout=5,
|
||||
)
|
||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "open-webui",
|
||||
"version": "0.5.19",
|
||||
"version": "0.5.20",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "open-webui",
|
||||
"version": "0.5.19",
|
||||
"version": "0.5.20",
|
||||
"dependencies": {
|
||||
"@azure/msal-browser": "^4.5.0",
|
||||
"@codemirror/lang-javascript": "^6.2.2",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "open-webui",
|
||||
"version": "0.5.19",
|
||||
"version": "0.5.20",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "npm run pyodide:fetch && vite dev --host",
|
||||
|
@ -45,6 +45,16 @@
|
||||
|
||||
<hr class=" border-gray-100 dark:border-gray-850 my-2" />
|
||||
|
||||
<div class="mb-2.5">
|
||||
<div class=" flex w-full justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Enable Code Execution')}
|
||||
</div>
|
||||
|
||||
<Switch bind:state={config.ENABLE_CODE_EXECUTION} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-2.5">
|
||||
<div class="flex w-full justify-between">
|
||||
<div class=" self-center text-xs font-medium">{$i18n.t('Code Execution Engine')}</div>
|
||||
|
@ -1937,7 +1937,7 @@
|
||||
|
||||
<PaneGroup direction="horizontal" class="w-full h-full">
|
||||
<Pane defaultSize={50} class="h-full flex w-full relative">
|
||||
{#if $banners.length > 0 && !history.currentId && !$chatId && selectedModels.length <= 1}
|
||||
{#if !history.currentId && !$chatId && selectedModels.length <= 1 && ($banners.length > 0 || ($config?.license_metadata?.type ?? null) === 'trial' || (($config?.license_metadata?.seats ?? null) !== null && $config?.user_count > $config?.license_metadata?.seats))}
|
||||
<div class="absolute top-12 left-0 right-0 w-full z-30">
|
||||
<div class=" flex flex-col gap-1 w-full">
|
||||
{#if ($config?.license_metadata?.type ?? null) === 'trial'}
|
||||
|
@ -85,6 +85,8 @@
|
||||
let loaded = false;
|
||||
let recording = false;
|
||||
|
||||
let isComposing = false;
|
||||
|
||||
let chatInputContainerElement;
|
||||
let chatInputElement;
|
||||
|
||||
@ -707,6 +709,8 @@
|
||||
console.log(res);
|
||||
return res;
|
||||
}}
|
||||
oncompositionstart={() => (isComposing = true)}
|
||||
oncompositionend={() => (isComposing = false)}
|
||||
on:keydown={async (e) => {
|
||||
e = e.detail.event;
|
||||
|
||||
@ -806,6 +810,10 @@
|
||||
navigator.msMaxTouchPoints > 0
|
||||
)
|
||||
) {
|
||||
if (isComposing) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Uses keyCode '13' for Enter key for chinese/japanese keyboards.
|
||||
//
|
||||
// Depending on the user's settings, it will send the message
|
||||
@ -882,6 +890,8 @@
|
||||
class="scrollbar-hidden bg-transparent dark:text-gray-100 outline-hidden w-full pt-3 px-1 resize-none"
|
||||
placeholder={placeholder ? placeholder : $i18n.t('Send a Message')}
|
||||
bind:value={prompt}
|
||||
on:compositionstart={() => (isComposing = true)}
|
||||
on:compositionend={() => (isComposing = false)}
|
||||
on:keydown={async (e) => {
|
||||
const isCtrlPressed = e.ctrlKey || e.metaKey; // metaKey is for Cmd key on Mac
|
||||
|
||||
@ -983,6 +993,10 @@
|
||||
navigator.msMaxTouchPoints > 0
|
||||
)
|
||||
) {
|
||||
if (isComposing) {
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('keypress', e);
|
||||
// Prevent Enter key from creating a new line
|
||||
const isCtrlPressed = e.ctrlKey || e.metaKey;
|
||||
|
@ -439,7 +439,7 @@
|
||||
</div>
|
||||
</button>
|
||||
|
||||
{#if lang.toLowerCase() === 'python' || lang.toLowerCase() === 'py' || (lang === '' && checkPythonCode(code))}
|
||||
{#if ($config?.features?.enable_code_execution ?? true) && (lang.toLowerCase() === 'python' || lang.toLowerCase() === 'py' || (lang === '' && checkPythonCode(code)))}
|
||||
{#if executing}
|
||||
<div class="run-code-button bg-none border-none p-1 cursor-not-allowed">Running</div>
|
||||
{:else if run}
|
||||
|
@ -27,6 +27,9 @@
|
||||
|
||||
import { PASTED_TEXT_CHARACTER_LIMIT } from '$lib/constants';
|
||||
|
||||
export let oncompositionstart = (e) => {};
|
||||
export let oncompositionend = (e) => {};
|
||||
|
||||
// create a lowlight instance with all languages loaded
|
||||
const lowlight = createLowlight(all);
|
||||
|
||||
@ -226,6 +229,14 @@
|
||||
editorProps: {
|
||||
attributes: { id },
|
||||
handleDOMEvents: {
|
||||
compositionstart: (view, event) => {
|
||||
oncompositionstart(event);
|
||||
return false;
|
||||
},
|
||||
compositionend: (view, event) => {
|
||||
oncompositionend(event);
|
||||
return false;
|
||||
},
|
||||
focus: (view, event) => {
|
||||
eventDispatch('focus', { event });
|
||||
return false;
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "تمكين مشاركة المجتمع",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Модел за вграждане е настроен на \"{{embedding_model}}\"",
|
||||
"Enable API Key": "Активиране на API ключ",
|
||||
"Enable autocomplete generation for chat messages": "Активиране на автоматично довършване за съобщения в чата",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Активиране на интерпретатор на код",
|
||||
"Enable Community Sharing": "Разрешаване на споделяне в общност",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Активиране на заключване на паметта (mlock), за да се предотврати изваждането на данните на модела от RAM. Тази опция заключва работния набор от страници на модела в RAM, гарантирайки, че няма да бъдат изхвърлени на диска. Това може да помогне за поддържане на производителността, като се избягват грешки в страниците и се осигурява бърз достъп до данните.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ইমেজ ইমেবডিং মডেল সেট করা হয়েছে - \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "সম্প্রদায় শেয়ারকরণ সক্ষম করুন",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model d'incrustació configurat a \"{{embedding_model}}\"",
|
||||
"Enable API Key": "Activar la Clau API",
|
||||
"Enable autocomplete generation for chat messages": "Activar la generació automàtica per als missatges del xat",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Activar l'intèrpret de codi",
|
||||
"Enable Community Sharing": "Activar l'ús compartit amb la comunitat",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Activar el bloqueig de memòria (mlock) per evitar que les dades del model s'intercanviïn fora de la memòria RAM. Aquesta opció bloqueja el conjunt de pàgines de treball del model a la memòria RAM, assegurant-se que no s'intercanviaran al disc. Això pot ajudar a mantenir el rendiment evitant errors de pàgina i garantint un accés ràpid a les dades.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model vkládání nastaven na \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Povolit sdílení komunity",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding model sat til \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Aktiver deling til Community",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding-Modell auf \"{{embedding_model}}\" gesetzt",
|
||||
"Enable API Key": "API-Schlüssel aktivieren",
|
||||
"Enable autocomplete generation for chat messages": "Automatische Vervollständigung für Chat-Nachrichten aktivieren",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Community-Freigabe aktivieren",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Aktiviere Memory Locking (mlock), um zu verhindern, dass Modelldaten aus dem RAM ausgelagert werden. Diese Option sperrt die Arbeitsseiten des Modells im RAM, um sicherzustellen, dass sie nicht auf die Festplatte ausgelagert werden. Dies kann die Leistung verbessern, indem Page Faults vermieden und ein schneller Datenzugriff sichergestellt werden.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Το μοντέλο ενσωμάτωσης έχει οριστεί σε \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Ενεργοποίηση Κοινοτικής Κοινής Χρήσης",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Ενεργοποίηση Κλείδωσης Μνήμης (mlock) για την αποτροπή της ανταλλαγής δεδομένων του μοντέλου από τη μνήμη RAM. Αυτή η επιλογή κλειδώνει το σύνολο εργασίας των σελίδων του μοντέλου στη μνήμη RAM, διασφαλίζοντας ότι δεν θα ανταλλαχθούν στο δίσκο. Αυτό μπορεί να βοηθήσει στη διατήρηση της απόδοσης αποφεύγοντας σφάλματα σελίδων και διασφαλίζοντας γρήγορη πρόσβαση στα δεδομένα.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding configurado a \"{{embedding_model}}\"",
|
||||
"Enable API Key": "Habilitar clave de API",
|
||||
"Enable autocomplete generation for chat messages": "Habilitar generación de autocompletado para mensajes de chat",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Habilitar el uso compartido de la comunidad",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Habilitar bloqueo de memoria (mlock) para evitar que los datos del modelo se intercambien fuera de la RAM. Esta opción bloquea el conjunto de páginas de trabajo del modelo en la RAM, asegurando que no se intercambiarán fuera del disco. Esto puede ayudar a mantener el rendimiento evitando fallos de página y asegurando un acceso rápido a los datos.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding eredua \"{{embedding_model}}\"-ra ezarri da",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Gaitu Komunitatearen Partekatzea",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Gaitu Memoria Blokeatzea (mlock) ereduaren datuak RAM memoriatik kanpo ez trukatzeko. Aukera honek ereduaren lan-orri multzoa RAMean blokatzen du, diskora ez direla trukatuko ziurtatuz. Honek errendimendua mantentzen lagun dezake, orri-hutsegiteak saihestuz eta datuen sarbide azkarra bermatuz.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "مدل پیدائش را به \"{{embedding_model}}\" تنظیم کنید",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "فعالسازی اشتراک انجمن",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "\"{{embedding_model}}\" valittu upotusmalliksi",
|
||||
"Enable API Key": "Ota API -avain käyttöön",
|
||||
"Enable autocomplete generation for chat messages": "Ota automaattinen täydennys käyttöön keskusteluviesteissä",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Ota ohjelmatulkki käyttöön",
|
||||
"Enable Community Sharing": "Ota yhteisön jakaminen käyttöön",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Ota Memory Locking (mlock) käyttöön estääksesi mallidatan vaihtamisen pois RAM-muistista. Tämä lukitsee mallin työsivut RAM-muistiin, varmistaen että niitä ei vaihdeta levylle. Tämä voi parantaa suorituskykyä välttämällä sivuvikoja ja varmistamalla nopean tietojen käytön.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modèle d'encodage défini sur « {{embedding_model}} »",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Activer le partage communautaire",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modèle d'embedding défini sur « {{embedding_model}} »",
|
||||
"Enable API Key": "Activer la clé API",
|
||||
"Enable autocomplete generation for chat messages": "Activer la génération des suggestions pour les messages",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Activer le partage communautaire",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Activer le verrouillage de la mémoire (mlock) pour empêcher les données du modèle d'être échangées de la RAM. Cette option verrouille l'ensemble de pages de travail du modèle en RAM, garantissant qu'elles ne seront pas échangées vers le disque. Cela peut aider à maintenir les performances en évitant les défauts de page et en assurant un accès rapide aux données.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "מודל ההטמעה הוגדר ל-\"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "הפיכת שיתוף קהילה לזמין",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "एम्बेडिंग मॉडल को \"{{embedding_model}}\" पर सेट किया गया",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "समुदाय साझाकरण सक्षम करें",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding model postavljen na \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Omogući zajedničko korištenje zajednice",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Beágyazási modell beállítva: \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Közösségi megosztás engedélyezése",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model penyematan diatur ke \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Aktifkan Berbagi Komunitas",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Múnla leabaithe socraithe go \"{{embedding_model}}\"",
|
||||
"Enable API Key": "Cumasaigh Eochair API",
|
||||
"Enable autocomplete generation for chat messages": "Cumasaigh giniúint uathchríochnaithe le haghaidh teachtaireachtaí comhrá",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Cumasaigh Ateangaire Cóid",
|
||||
"Enable Community Sharing": "Cumasaigh Comhroinnt Pobail",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Cumasaigh Glasáil Cuimhne (mlock) chun sonraí samhaltaithe a chosc ó RAM. Glasálann an rogha seo sraith oibre leathanaigh an mhúnla isteach i RAM, ag cinntiú nach ndéanfar iad a mhalartú go diosca. Is féidir leis seo cabhrú le feidhmíocht a choinneáil trí lochtanna leathanaigh a sheachaint agus rochtain tapa ar shonraí a chinntiú.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modello di embedding impostato su \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Abilita la condivisione della community",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "埋め込みモデルを\"{{embedding_model}}\"に設定しました",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "コミュニティ共有を有効にする",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ჩაშენებული მოდელი დაყენებულია მნიშვნელობაზე \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "საზოგადოების გაზიარების ჩართვა",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "임베딩 모델을 \"{{embedding_model}}\"로 설정함",
|
||||
"Enable API Key": "API 키 활성화",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "커뮤니티 공유 활성화",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding modelis nustatytas kaip\"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Leisti dalinimąsi su bendruomene",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model Benamkan ditetapkan kepada \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Benarkan Perkongsian Komuniti",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Innbyggingsmodell angitt til \"{{embedding_model}}\"",
|
||||
"Enable API Key": "Aktiver ",
|
||||
"Enable autocomplete generation for chat messages": "Aktiver automatisk utfylling av chatmeldinger",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Aktiver kodetolker",
|
||||
"Enable Community Sharing": "Aktiver deling i fellesskap",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Aktiver Memory Locking (mlock) for å forhindre at modelldata byttes ut av RAM. Dette alternativet låser modellens arbeidssett med sider i RAM-minnet, slik at de ikke byttes ut til disk. Dette kan bidra til å opprettholde ytelsen ved å unngå sidefeil og sikre rask datatilgang.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding model ingesteld op \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Delen via de community inschakelen",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Schakel Memory Locking (mlock) in om te voorkomen dat modelgegevens uit het RAM worden verwisseld. Deze optie vergrendelt de werkset pagina's van het model in het RAM, zodat ze niet naar de schijf worden uitgewisseld. Dit kan helpen om de prestaties op peil te houden door paginafouten te voorkomen en snelle gegevenstoegang te garanderen.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ਐਮਬੈੱਡਿੰਗ ਮਾਡਲ ਨੂੰ \"{{embedding_model}}\" 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "ਕਮਿਊਨਿਟੀ ਸ਼ੇਅਰਿੰਗ ਨੂੰ ਸਮਰੱਥ ਕਰੋ",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model osadzania ustawiony na '{{embedding_model}}'",
|
||||
"Enable API Key": "Włącz klucz API",
|
||||
"Enable autocomplete generation for chat messages": "Włącz generowanie autouzupełniania dla wiadomości czatu",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Włącz interpreter kodu",
|
||||
"Enable Community Sharing": "Włączanie udostępniania społecznościowego",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Włącz blokowanie pamięci (mlock), aby zapobiec swappingowi danych modelu z RAM. Ta opcja blokuje zbiór stron roboczych modelu w RAM, co gwarantuje, że nie będą one wymieniane na dysk. Może to pomóc w utrzymaniu wydajności poprzez unikanie błędów strony i zapewnienie szybkiego dostępu do danych.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelo de embedding definido para \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Ativar Compartilhamento com a Comunidade",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Habilite o bloqueio de memória (mlock) para evitar que os dados do modelo sejam transferidos da RAM para a área de troca (swap). Essa opção bloqueia o conjunto de páginas em uso pelo modelo na RAM, garantindo que elas não sejam transferidas para o disco. Isso pode ajudar a manter o desempenho, evitando falhas de página e garantindo acesso rápido aos dados.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding definido como \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Active a Partilha da Comunidade",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelul de încapsulare setat la \"{{embedding_model}}\"",
|
||||
"Enable API Key": "Activează cheia API",
|
||||
"Enable autocomplete generation for chat messages": "Activează generarea automată pentru mesajele de chat",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Activează interpretul de cod",
|
||||
"Enable Community Sharing": "Activează Partajarea Comunitară",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Модель встраивания установлена в \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "Включить генерацию автозаполнения для сообщений чата",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Включить совместное использование",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Включите блокировку памяти (mlock), чтобы предотвратить выгрузку данных модели из ОЗУ. Эта опция блокирует рабочий набор страниц модели в оперативной памяти, гарантируя, что они не будут выгружены на диск. Это может помочь поддерживать производительность, избегая ошибок страниц и обеспечивая быстрый доступ к данным.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model vkladania nastavený na \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Povoliť zdieľanie komunity",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Модел уградње подешен на \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Омогући дељење заједнице",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Inbäddningsmodell inställd på \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Aktivera community-delning",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ตั้งค่าโมเดลการฝังเป็น \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "เปิดใช้งานการแชร์ในชุมชน",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Gömme modeli \"{{embedding_model}}\" olarak ayarlandı",
|
||||
"Enable API Key": "API Anahtarını Etkinleştir",
|
||||
"Enable autocomplete generation for chat messages": "Sohbet mesajları için otomatik tamamlama üretimini etkinleştir",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Topluluk Paylaşımını Etkinleştir",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Встановлена модель вбудовування \"{{embedding_model}}\"",
|
||||
"Enable API Key": "Увімкнути ключ API",
|
||||
"Enable autocomplete generation for chat messages": "Увімкнути генерацію автозаповнення для повідомлень чату",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "Увімкнути інтерпретатор коду",
|
||||
"Enable Community Sharing": "Увімкнути спільний доступ",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Увімкнути блокування пам'яті (mlock), щоб запобігти виведенню даних моделі з оперативної пам'яті. Цей параметр блокує робочий набір сторінок моделі в оперативній пам'яті, гарантуючи, що вони не будуть виведені на диск. Це може допомогти підтримувати продуктивність, уникати помилок сторінок та забезпечувати швидкий доступ до даних.",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ایمبیڈنگ ماڈل \"{{embedding_model}}\" پر سیٹ کیا گیا ہے",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "کمیونٹی شیئرنگ فعال کریں",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Mô hình embedding đã được thiết lập thành \"{{embedding_model}}\"",
|
||||
"Enable API Key": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "",
|
||||
"Enable Community Sharing": "Cho phép Chia sẻ Cộng đồng",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "语义向量模型设置为 \"{{embedding_model}}\"",
|
||||
"Enable API Key": "启用 API 密钥",
|
||||
"Enable autocomplete generation for chat messages": "启用聊天消息的输入框内容猜测补全",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "启用代码解释器",
|
||||
"Enable Community Sharing": "启用分享至社区",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "启用内存锁定(mlock)以防止模型数据被交换出RAM。此选项将模型的工作集页面锁定在RAM中,确保它们不会被交换到磁盘。这可以通过避免页面错误和确保快速数据访问来帮助维持性能。",
|
||||
|
@ -359,6 +359,7 @@
|
||||
"Embedding model set to \"{{embedding_model}}\"": "嵌入模型已設定為 \"{{embedding_model}}\"",
|
||||
"Enable API Key": "啟用 API 金鑰",
|
||||
"Enable autocomplete generation for chat messages": "啟用聊天訊息的自動完成生成",
|
||||
"Enable Code Execution": "",
|
||||
"Enable Code Interpreter": "啟用程式碼解釋器",
|
||||
"Enable Community Sharing": "啟用社群分享",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "啟用記憶體鎖定(mlock)以防止模型資料被換出 RAM。此選項會將模型的工作頁面集鎖定在 RAM 中,確保它們不會被換出到磁碟。這可以透過避免頁面錯誤和確保快速資料存取來維持效能。",
|
||||
@ -450,7 +451,7 @@
|
||||
"Example: mail": "範例:mail",
|
||||
"Example: ou=users,dc=foo,dc=example": "範例:ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "範例:sAMAccountName 或 uid 或 userPrincipalName",
|
||||
"Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "",
|
||||
"Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "您的授權名額已超過上限。請聯絡支援以增加授權名額。",
|
||||
"Exclude": "排除",
|
||||
"Execute code for analysis": "執行程式碼以進行分析",
|
||||
"Expand": "展開",
|
||||
@ -1158,7 +1159,7 @@
|
||||
"Write your model template content here": "在此撰寫您的模型範本内容",
|
||||
"Yesterday": "昨天",
|
||||
"You": "您",
|
||||
"You are currently using a trial license. Please contact support to upgrade your license.": "",
|
||||
"You are currently using a trial license. Please contact support to upgrade your license.": "您目前使用的是試用授權。請聯絡支援以升級您的授權。",
|
||||
"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "您一次最多只能與 {{maxCount}} 個檔案進行對話。",
|
||||
"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "您可以透過下方的「管理」按鈕新增記憶,將您與大型語言模型的互動個人化,讓它們更有幫助並更符合您的需求。",
|
||||
"You cannot upload an empty file.": "您無法上傳空檔案",
|
||||
|
Loading…
x
Reference in New Issue
Block a user