Commit 60433856 authored by Jun Siang Cheah's avatar Jun Siang Cheah
Browse files

Merge remote-tracking branch 'upstream/dev' into feat/backend-web-search

parents 224a578e 98194d97
# noqa: INP001
import shutil
import subprocess
from sys import stderr
from hatchling.builders.hooks.plugin.interface import BuildHookInterface
class CustomBuildHook(BuildHookInterface):
def initialize(self, version, build_data):
super().initialize(version, build_data)
stderr.write(">>> Building Open Webui frontend\n")
npm = shutil.which("npm")
if npm is None:
raise RuntimeError(
"NodeJS `npm` is required for building Open Webui but it was not found"
)
stderr.write("### npm install\n")
subprocess.run([npm, "install"], check=True) # noqa: S603
stderr.write("\n### npm run build\n")
subprocess.run([npm, "run", "build"], check=True) # noqa: S603
{
"name": "open-webui",
"version": "0.1.125",
"version": "0.2.0.dev1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "open-webui",
"version": "0.1.125",
"version": "0.2.0.dev1",
"dependencies": {
"@pyscript/core": "^0.4.32",
"@sveltejs/adapter-node": "^1.3.1",
......
{
"name": "open-webui",
"version": "0.1.125",
"version": "0.2.0.dev1",
"private": true,
"scripts": {
"dev": "npm run pyodide:fetch && vite dev --host",
......@@ -13,7 +13,7 @@
"lint:types": "npm run check",
"lint:backend": "pylint backend/",
"format": "prettier --plugin-search-dir --write \"**/*.{js,ts,svelte,css,md,html,json}\"",
"format:backend": "black . --exclude \"/venv/\"",
"format:backend": "black . --exclude \".venv/|/venv/\"",
"i18n:parse": "i18next --config i18next-parser.config.ts && prettier --write \"src/lib/i18n/**/*.{js,json}\"",
"cy:open": "cypress open",
"test:frontend": "vitest",
......
[project]
name = "open-webui"
description = "Open WebUI (Formerly Ollama WebUI)"
authors = [
{ name = "Timothy Jaeryang Baek", email = "tim@openwebui.com" }
]
license = { file = "LICENSE" }
dependencies = [
"fastapi==0.111.0",
"uvicorn[standard]==0.22.0",
"pydantic==2.7.1",
"python-multipart==0.0.9",
"Flask==3.0.3",
"Flask-Cors==4.0.1",
"python-socketio==5.11.2",
"python-jose==3.3.0",
"passlib[bcrypt]==1.7.4",
"requests==2.32.2",
"aiohttp==3.9.5",
"peewee==3.17.5",
"peewee-migrate==1.12.2",
"psycopg2-binary==2.9.9",
"PyMySQL==1.1.0",
"bcrypt==4.1.3",
"litellm[proxy]==1.37.20",
"boto3==1.34.110",
"argon2-cffi==23.1.0",
"APScheduler==3.10.4",
"google-generativeai==0.5.4",
"langchain==0.2.0",
"langchain-community==0.2.0",
"langchain-chroma==0.1.1",
"fake-useragent==1.5.1",
"chromadb==0.5.0",
"sentence-transformers==2.7.0",
"pypdf==4.2.0",
"docx2txt==0.8",
"unstructured==0.14.0",
"Markdown==3.6",
"pypandoc==1.13",
"pandas==2.2.2",
"openpyxl==3.1.2",
"pyxlsb==1.0.10",
"xlrd==2.0.1",
"validators==0.28.1",
"opencv-python-headless==4.9.0.80",
"rapidocr-onnxruntime==1.3.22",
"fpdf2==2.7.9",
"rank-bm25==0.2.2",
"faster-whisper==1.0.2",
"PyJWT[crypto]==2.8.0",
"black==24.4.2",
"langfuse==2.33.0",
"youtube-transcript-api==0.6.2",
"pytube==15.0.0",
]
readme = "README.md"
requires-python = ">= 3.11, < 3.12.0a1"
dynamic = ["version"]
classifiers = [
"Development Status :: 4 - Beta",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Topic :: Communications :: Chat",
"Topic :: Multimedia",
]
[project.scripts]
open-webui = "open_webui:app"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.rye]
managed = true
dev-dependencies = []
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.version]
path = "package.json"
pattern = '"version":\s*"(?P<version>[^"]+)"'
[tool.hatch.build.hooks.custom] # keep this for reading hooks from `hatch_build.py`
[tool.hatch.build.targets.wheel]
sources = ["backend"]
exclude = [
".dockerignore",
".gitignore",
".webui_secret_key",
"dev.sh",
"requirements.txt",
"start.sh",
"start_windows.bat",
"webui.db",
"chroma.sqlite3",
]
force-include = { "CHANGELOG.md" = "open_webui/CHANGELOG.md", build = "open_webui/frontend" }
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
-e file:.
aiohttp==3.9.5
# via langchain
# via langchain-community
# via litellm
# via open-webui
aiosignal==1.3.1
# via aiohttp
annotated-types==0.6.0
# via pydantic
anyio==4.3.0
# via httpx
# via openai
# via starlette
# via watchfiles
apscheduler==3.10.4
# via litellm
# via open-webui
argon2-cffi==23.1.0
# via open-webui
argon2-cffi-bindings==21.2.0
# via argon2-cffi
asgiref==3.8.1
# via opentelemetry-instrumentation-asgi
attrs==23.2.0
# via aiohttp
av==11.0.0
# via faster-whisper
backoff==2.2.1
# via langfuse
# via litellm
# via posthog
# via unstructured
bcrypt==4.1.3
# via chromadb
# via open-webui
# via passlib
beautifulsoup4==4.12.3
# via unstructured
bidict==0.23.1
# via python-socketio
black==24.4.2
# via open-webui
blinker==1.8.2
# via flask
boto3==1.34.110
# via open-webui
botocore==1.34.110
# via boto3
# via s3transfer
build==1.2.1
# via chromadb
cachetools==5.3.3
# via google-auth
certifi==2024.2.2
# via httpcore
# via httpx
# via kubernetes
# via requests
# via unstructured-client
cffi==1.16.0
# via argon2-cffi-bindings
# via cryptography
chardet==5.2.0
# via unstructured
charset-normalizer==3.3.2
# via requests
# via unstructured-client
chroma-hnswlib==0.7.3
# via chromadb
chromadb==0.5.0
# via langchain-chroma
# via open-webui
click==8.1.7
# via black
# via flask
# via litellm
# via nltk
# via peewee-migrate
# via rq
# via typer
# via uvicorn
coloredlogs==15.0.1
# via onnxruntime
cryptography==42.0.7
# via litellm
# via pyjwt
ctranslate2==4.2.1
# via faster-whisper
dataclasses-json==0.6.6
# via langchain
# via langchain-community
# via unstructured
# via unstructured-client
deepdiff==7.0.1
# via unstructured-client
defusedxml==0.7.1
# via fpdf2
deprecated==1.2.14
# via opentelemetry-api
# via opentelemetry-exporter-otlp-proto-grpc
distro==1.9.0
# via openai
dnspython==2.6.1
# via email-validator
docx2txt==0.8
# via open-webui
ecdsa==0.19.0
# via python-jose
email-validator==2.1.1
# via fastapi
# via pydantic
emoji==2.11.1
# via unstructured
et-xmlfile==1.1.0
# via openpyxl
fake-useragent==1.5.1
# via open-webui
fastapi==0.111.0
# via chromadb
# via fastapi-sso
# via langchain-chroma
# via litellm
# via open-webui
fastapi-cli==0.0.4
# via fastapi
fastapi-sso==0.10.0
# via litellm
faster-whisper==1.0.2
# via open-webui
filelock==3.14.0
# via huggingface-hub
# via torch
# via transformers
filetype==1.2.0
# via unstructured
flask==3.0.3
# via flask-cors
# via open-webui
flask-cors==4.0.1
# via open-webui
flatbuffers==24.3.25
# via onnxruntime
fonttools==4.51.0
# via fpdf2
fpdf2==2.7.9
# via open-webui
frozenlist==1.4.1
# via aiohttp
# via aiosignal
fsspec==2024.3.1
# via huggingface-hub
# via torch
google-ai-generativelanguage==0.6.4
# via google-generativeai
google-api-core==2.19.0
# via google-ai-generativelanguage
# via google-api-python-client
# via google-generativeai
google-api-python-client==2.129.0
# via google-generativeai
google-auth==2.29.0
# via google-ai-generativelanguage
# via google-api-core
# via google-api-python-client
# via google-auth-httplib2
# via google-generativeai
# via kubernetes
google-auth-httplib2==0.2.0
# via google-api-python-client
google-generativeai==0.5.4
# via open-webui
googleapis-common-protos==1.63.0
# via google-api-core
# via grpcio-status
# via opentelemetry-exporter-otlp-proto-grpc
grpcio==1.63.0
# via chromadb
# via google-api-core
# via grpcio-status
# via opentelemetry-exporter-otlp-proto-grpc
grpcio-status==1.62.2
# via google-api-core
gunicorn==22.0.0
# via litellm
h11==0.14.0
# via httpcore
# via uvicorn
# via wsproto
httpcore==1.0.5
# via httpx
httplib2==0.22.0
# via google-api-python-client
# via google-auth-httplib2
httptools==0.6.1
# via uvicorn
httpx==0.27.0
# via fastapi
# via fastapi-sso
# via langfuse
# via openai
huggingface-hub==0.23.0
# via faster-whisper
# via sentence-transformers
# via tokenizers
# via transformers
humanfriendly==10.0
# via coloredlogs
idna==3.7
# via anyio
# via email-validator
# via httpx
# via langfuse
# via requests
# via unstructured-client
# via yarl
importlib-metadata==7.0.0
# via litellm
# via opentelemetry-api
importlib-resources==6.4.0
# via chromadb
itsdangerous==2.2.0
# via flask
jinja2==3.1.4
# via fastapi
# via flask
# via litellm
# via torch
jmespath==1.0.1
# via boto3
# via botocore
joblib==1.4.2
# via nltk
# via scikit-learn
jsonpatch==1.33
# via langchain-core
jsonpath-python==1.0.6
# via unstructured-client
jsonpointer==2.4
# via jsonpatch
kubernetes==29.0.0
# via chromadb
langchain==0.2.0
# via langchain-community
# via open-webui
langchain-chroma==0.1.1
# via open-webui
langchain-community==0.2.0
# via open-webui
langchain-core==0.2.1
# via langchain
# via langchain-chroma
# via langchain-community
# via langchain-text-splitters
langchain-text-splitters==0.2.0
# via langchain
langdetect==1.0.9
# via unstructured
langfuse==2.33.0
# via open-webui
langsmith==0.1.57
# via langchain
# via langchain-community
# via langchain-core
litellm==1.37.20
# via litellm
# via open-webui
lxml==5.2.2
# via unstructured
markdown==3.6
# via open-webui
markdown-it-py==3.0.0
# via rich
markupsafe==2.1.5
# via jinja2
# via werkzeug
marshmallow==3.21.2
# via dataclasses-json
# via unstructured-client
mdurl==0.1.2
# via markdown-it-py
mmh3==4.1.0
# via chromadb
monotonic==1.6
# via posthog
mpmath==1.3.0
# via sympy
multidict==6.0.5
# via aiohttp
# via yarl
mypy-extensions==1.0.0
# via black
# via typing-inspect
# via unstructured-client
networkx==3.3
# via torch
nltk==3.8.1
# via unstructured
numpy==1.26.4
# via chroma-hnswlib
# via chromadb
# via ctranslate2
# via langchain
# via langchain-chroma
# via langchain-community
# via onnxruntime
# via opencv-python
# via opencv-python-headless
# via pandas
# via rank-bm25
# via rapidocr-onnxruntime
# via scikit-learn
# via scipy
# via sentence-transformers
# via shapely
# via transformers
# via unstructured
oauthlib==3.2.2
# via fastapi-sso
# via kubernetes
# via requests-oauthlib
onnxruntime==1.17.3
# via chromadb
# via faster-whisper
# via rapidocr-onnxruntime
openai==1.28.1
# via litellm
opencv-python==4.9.0.80
# via rapidocr-onnxruntime
opencv-python-headless==4.9.0.80
# via open-webui
openpyxl==3.1.2
# via open-webui
opentelemetry-api==1.24.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
# via opentelemetry-instrumentation
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
# via opentelemetry-sdk
opentelemetry-exporter-otlp-proto-common==1.24.0
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp-proto-grpc==1.24.0
# via chromadb
opentelemetry-instrumentation==0.45b0
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
opentelemetry-instrumentation-asgi==0.45b0
# via opentelemetry-instrumentation-fastapi
opentelemetry-instrumentation-fastapi==0.45b0
# via chromadb
opentelemetry-proto==1.24.0
# via opentelemetry-exporter-otlp-proto-common
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-sdk==1.24.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-semantic-conventions==0.45b0
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
# via opentelemetry-sdk
opentelemetry-util-http==0.45b0
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
ordered-set==4.1.0
# via deepdiff
orjson==3.10.3
# via chromadb
# via fastapi
# via langsmith
# via litellm
overrides==7.7.0
# via chromadb
packaging==23.2
# via black
# via build
# via gunicorn
# via huggingface-hub
# via langchain-core
# via langfuse
# via marshmallow
# via onnxruntime
# via transformers
# via unstructured-client
pandas==2.2.2
# via open-webui
passlib==1.7.4
# via open-webui
# via passlib
pathspec==0.12.1
# via black
peewee==3.17.5
# via open-webui
# via peewee-migrate
peewee-migrate==1.12.2
# via open-webui
pillow==10.3.0
# via fpdf2
# via rapidocr-onnxruntime
# via sentence-transformers
platformdirs==4.2.1
# via black
posthog==3.5.0
# via chromadb
proto-plus==1.23.0
# via google-ai-generativelanguage
# via google-api-core
protobuf==4.25.3
# via google-ai-generativelanguage
# via google-api-core
# via google-generativeai
# via googleapis-common-protos
# via grpcio-status
# via onnxruntime
# via opentelemetry-proto
# via proto-plus
psycopg2-binary==2.9.9
# via open-webui
pyasn1==0.6.0
# via pyasn1-modules
# via python-jose
# via rsa
pyasn1-modules==0.4.0
# via google-auth
pyclipper==1.3.0.post5
# via rapidocr-onnxruntime
pycparser==2.22
# via cffi
pydantic==2.7.1
# via chromadb
# via fastapi
# via fastapi-sso
# via google-generativeai
# via langchain
# via langchain-core
# via langfuse
# via langsmith
# via open-webui
# via openai
pydantic-core==2.18.2
# via pydantic
pygments==2.18.0
# via rich
pyjwt==2.8.0
# via litellm
# via open-webui
# via pyjwt
pymysql==1.1.0
# via open-webui
pypandoc==1.13
# via open-webui
pyparsing==3.1.2
# via httplib2
pypdf==4.2.0
# via open-webui
# via unstructured-client
pypika==0.48.9
# via chromadb
pyproject-hooks==1.1.0
# via build
python-dateutil==2.9.0.post0
# via botocore
# via kubernetes
# via pandas
# via posthog
# via unstructured-client
python-dotenv==1.0.1
# via litellm
# via uvicorn
python-engineio==4.9.0
# via python-socketio
python-iso639==2024.4.27
# via unstructured
python-jose==3.3.0
# via open-webui
python-magic==0.4.27
# via unstructured
python-multipart==0.0.9
# via fastapi
# via litellm
# via open-webui
python-socketio==5.11.2
# via open-webui
pytube==15.0.0
# via open-webui
pytz==2024.1
# via apscheduler
# via pandas
pyxlsb==1.0.10
# via open-webui
pyyaml==6.0.1
# via chromadb
# via ctranslate2
# via huggingface-hub
# via kubernetes
# via langchain
# via langchain-community
# via langchain-core
# via litellm
# via rapidocr-onnxruntime
# via transformers
# via uvicorn
rank-bm25==0.2.2
# via open-webui
rapidfuzz==3.9.0
# via unstructured
rapidocr-onnxruntime==1.3.22
# via open-webui
redis==5.0.4
# via rq
regex==2024.5.10
# via nltk
# via tiktoken
# via transformers
requests==2.32.2
# via chromadb
# via google-api-core
# via huggingface-hub
# via kubernetes
# via langchain
# via langchain-community
# via langsmith
# via litellm
# via open-webui
# via posthog
# via requests-oauthlib
# via tiktoken
# via transformers
# via unstructured
# via unstructured-client
# via youtube-transcript-api
requests-oauthlib==2.0.0
# via kubernetes
rich==13.7.1
# via typer
rq==1.16.2
# via litellm
rsa==4.9
# via google-auth
# via python-jose
s3transfer==0.10.1
# via boto3
safetensors==0.4.3
# via transformers
scikit-learn==1.4.2
# via sentence-transformers
scipy==1.13.0
# via scikit-learn
# via sentence-transformers
sentence-transformers==2.7.0
# via open-webui
shapely==2.0.4
# via rapidocr-onnxruntime
shellingham==1.5.4
# via typer
simple-websocket==1.0.0
# via python-engineio
six==1.16.0
# via apscheduler
# via ecdsa
# via kubernetes
# via langdetect
# via posthog
# via python-dateutil
# via rapidocr-onnxruntime
# via unstructured-client
sniffio==1.3.1
# via anyio
# via httpx
# via openai
soupsieve==2.5
# via beautifulsoup4
sqlalchemy==2.0.30
# via langchain
# via langchain-community
starlette==0.37.2
# via fastapi
sympy==1.12
# via onnxruntime
# via torch
tabulate==0.9.0
# via unstructured
tenacity==8.3.0
# via chromadb
# via langchain
# via langchain-community
# via langchain-core
threadpoolctl==3.5.0
# via scikit-learn
tiktoken==0.6.0
# via litellm
tokenizers==0.15.2
# via chromadb
# via faster-whisper
# via litellm
# via transformers
torch==2.3.0
# via sentence-transformers
tqdm==4.66.4
# via chromadb
# via google-generativeai
# via huggingface-hub
# via nltk
# via openai
# via sentence-transformers
# via transformers
transformers==4.39.3
# via sentence-transformers
typer==0.12.3
# via chromadb
# via fastapi-cli
typing-extensions==4.11.0
# via chromadb
# via fastapi
# via google-generativeai
# via huggingface-hub
# via openai
# via opentelemetry-sdk
# via pydantic
# via pydantic-core
# via sqlalchemy
# via torch
# via typer
# via typing-inspect
# via unstructured
# via unstructured-client
typing-inspect==0.9.0
# via dataclasses-json
# via unstructured-client
tzdata==2024.1
# via pandas
tzlocal==5.2
# via apscheduler
ujson==5.10.0
# via fastapi
unstructured==0.14.0
# via open-webui
unstructured-client==0.22.0
# via unstructured
uritemplate==4.1.1
# via google-api-python-client
urllib3==2.2.1
# via botocore
# via kubernetes
# via requests
# via unstructured-client
uvicorn==0.22.0
# via chromadb
# via fastapi
# via litellm
# via open-webui
# via uvicorn
uvloop==0.19.0
# via uvicorn
validators==0.28.1
# via open-webui
watchfiles==0.21.0
# via uvicorn
websocket-client==1.8.0
# via kubernetes
websockets==12.0
# via uvicorn
werkzeug==3.0.3
# via flask
wrapt==1.16.0
# via deprecated
# via langfuse
# via opentelemetry-instrumentation
# via unstructured
wsproto==1.2.0
# via simple-websocket
xlrd==2.0.1
# via open-webui
yarl==1.9.4
# via aiohttp
youtube-transcript-api==0.6.2
# via open-webui
zipp==3.18.1
# via importlib-metadata
setuptools==69.5.1
# via ctranslate2
# via opentelemetry-instrumentation
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
-e file:.
aiohttp==3.9.5
# via langchain
# via langchain-community
# via litellm
# via open-webui
aiosignal==1.3.1
# via aiohttp
annotated-types==0.6.0
# via pydantic
anyio==4.3.0
# via httpx
# via openai
# via starlette
# via watchfiles
apscheduler==3.10.4
# via litellm
# via open-webui
argon2-cffi==23.1.0
# via open-webui
argon2-cffi-bindings==21.2.0
# via argon2-cffi
asgiref==3.8.1
# via opentelemetry-instrumentation-asgi
attrs==23.2.0
# via aiohttp
av==11.0.0
# via faster-whisper
backoff==2.2.1
# via langfuse
# via litellm
# via posthog
# via unstructured
bcrypt==4.1.3
# via chromadb
# via open-webui
# via passlib
beautifulsoup4==4.12.3
# via unstructured
bidict==0.23.1
# via python-socketio
black==24.4.2
# via open-webui
blinker==1.8.2
# via flask
boto3==1.34.110
# via open-webui
botocore==1.34.110
# via boto3
# via s3transfer
build==1.2.1
# via chromadb
cachetools==5.3.3
# via google-auth
certifi==2024.2.2
# via httpcore
# via httpx
# via kubernetes
# via requests
# via unstructured-client
cffi==1.16.0
# via argon2-cffi-bindings
# via cryptography
chardet==5.2.0
# via unstructured
charset-normalizer==3.3.2
# via requests
# via unstructured-client
chroma-hnswlib==0.7.3
# via chromadb
chromadb==0.5.0
# via langchain-chroma
# via open-webui
click==8.1.7
# via black
# via flask
# via litellm
# via nltk
# via peewee-migrate
# via rq
# via typer
# via uvicorn
coloredlogs==15.0.1
# via onnxruntime
cryptography==42.0.7
# via litellm
# via pyjwt
ctranslate2==4.2.1
# via faster-whisper
dataclasses-json==0.6.6
# via langchain
# via langchain-community
# via unstructured
# via unstructured-client
deepdiff==7.0.1
# via unstructured-client
defusedxml==0.7.1
# via fpdf2
deprecated==1.2.14
# via opentelemetry-api
# via opentelemetry-exporter-otlp-proto-grpc
distro==1.9.0
# via openai
dnspython==2.6.1
# via email-validator
docx2txt==0.8
# via open-webui
ecdsa==0.19.0
# via python-jose
email-validator==2.1.1
# via fastapi
# via pydantic
emoji==2.11.1
# via unstructured
et-xmlfile==1.1.0
# via openpyxl
fake-useragent==1.5.1
# via open-webui
fastapi==0.111.0
# via chromadb
# via fastapi-sso
# via langchain-chroma
# via litellm
# via open-webui
fastapi-cli==0.0.4
# via fastapi
fastapi-sso==0.10.0
# via litellm
faster-whisper==1.0.2
# via open-webui
filelock==3.14.0
# via huggingface-hub
# via torch
# via transformers
filetype==1.2.0
# via unstructured
flask==3.0.3
# via flask-cors
# via open-webui
flask-cors==4.0.1
# via open-webui
flatbuffers==24.3.25
# via onnxruntime
fonttools==4.51.0
# via fpdf2
fpdf2==2.7.9
# via open-webui
frozenlist==1.4.1
# via aiohttp
# via aiosignal
fsspec==2024.3.1
# via huggingface-hub
# via torch
google-ai-generativelanguage==0.6.4
# via google-generativeai
google-api-core==2.19.0
# via google-ai-generativelanguage
# via google-api-python-client
# via google-generativeai
google-api-python-client==2.129.0
# via google-generativeai
google-auth==2.29.0
# via google-ai-generativelanguage
# via google-api-core
# via google-api-python-client
# via google-auth-httplib2
# via google-generativeai
# via kubernetes
google-auth-httplib2==0.2.0
# via google-api-python-client
google-generativeai==0.5.4
# via open-webui
googleapis-common-protos==1.63.0
# via google-api-core
# via grpcio-status
# via opentelemetry-exporter-otlp-proto-grpc
grpcio==1.63.0
# via chromadb
# via google-api-core
# via grpcio-status
# via opentelemetry-exporter-otlp-proto-grpc
grpcio-status==1.62.2
# via google-api-core
gunicorn==22.0.0
# via litellm
h11==0.14.0
# via httpcore
# via uvicorn
# via wsproto
httpcore==1.0.5
# via httpx
httplib2==0.22.0
# via google-api-python-client
# via google-auth-httplib2
httptools==0.6.1
# via uvicorn
httpx==0.27.0
# via fastapi
# via fastapi-sso
# via langfuse
# via openai
huggingface-hub==0.23.0
# via faster-whisper
# via sentence-transformers
# via tokenizers
# via transformers
humanfriendly==10.0
# via coloredlogs
idna==3.7
# via anyio
# via email-validator
# via httpx
# via langfuse
# via requests
# via unstructured-client
# via yarl
importlib-metadata==7.0.0
# via litellm
# via opentelemetry-api
importlib-resources==6.4.0
# via chromadb
itsdangerous==2.2.0
# via flask
jinja2==3.1.4
# via fastapi
# via flask
# via litellm
# via torch
jmespath==1.0.1
# via boto3
# via botocore
joblib==1.4.2
# via nltk
# via scikit-learn
jsonpatch==1.33
# via langchain-core
jsonpath-python==1.0.6
# via unstructured-client
jsonpointer==2.4
# via jsonpatch
kubernetes==29.0.0
# via chromadb
langchain==0.2.0
# via langchain-community
# via open-webui
langchain-chroma==0.1.1
# via open-webui
langchain-community==0.2.0
# via open-webui
langchain-core==0.2.1
# via langchain
# via langchain-chroma
# via langchain-community
# via langchain-text-splitters
langchain-text-splitters==0.2.0
# via langchain
langdetect==1.0.9
# via unstructured
langfuse==2.33.0
# via open-webui
langsmith==0.1.57
# via langchain
# via langchain-community
# via langchain-core
litellm==1.37.20
# via litellm
# via open-webui
lxml==5.2.2
# via unstructured
markdown==3.6
# via open-webui
markdown-it-py==3.0.0
# via rich
markupsafe==2.1.5
# via jinja2
# via werkzeug
marshmallow==3.21.2
# via dataclasses-json
# via unstructured-client
mdurl==0.1.2
# via markdown-it-py
mmh3==4.1.0
# via chromadb
monotonic==1.6
# via posthog
mpmath==1.3.0
# via sympy
multidict==6.0.5
# via aiohttp
# via yarl
mypy-extensions==1.0.0
# via black
# via typing-inspect
# via unstructured-client
networkx==3.3
# via torch
nltk==3.8.1
# via unstructured
numpy==1.26.4
# via chroma-hnswlib
# via chromadb
# via ctranslate2
# via langchain
# via langchain-chroma
# via langchain-community
# via onnxruntime
# via opencv-python
# via opencv-python-headless
# via pandas
# via rank-bm25
# via rapidocr-onnxruntime
# via scikit-learn
# via scipy
# via sentence-transformers
# via shapely
# via transformers
# via unstructured
oauthlib==3.2.2
# via fastapi-sso
# via kubernetes
# via requests-oauthlib
onnxruntime==1.17.3
# via chromadb
# via faster-whisper
# via rapidocr-onnxruntime
openai==1.28.1
# via litellm
opencv-python==4.9.0.80
# via rapidocr-onnxruntime
opencv-python-headless==4.9.0.80
# via open-webui
openpyxl==3.1.2
# via open-webui
opentelemetry-api==1.24.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
# via opentelemetry-instrumentation
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
# via opentelemetry-sdk
opentelemetry-exporter-otlp-proto-common==1.24.0
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp-proto-grpc==1.24.0
# via chromadb
opentelemetry-instrumentation==0.45b0
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
opentelemetry-instrumentation-asgi==0.45b0
# via opentelemetry-instrumentation-fastapi
opentelemetry-instrumentation-fastapi==0.45b0
# via chromadb
opentelemetry-proto==1.24.0
# via opentelemetry-exporter-otlp-proto-common
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-sdk==1.24.0
# via chromadb
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-semantic-conventions==0.45b0
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
# via opentelemetry-sdk
opentelemetry-util-http==0.45b0
# via opentelemetry-instrumentation-asgi
# via opentelemetry-instrumentation-fastapi
ordered-set==4.1.0
# via deepdiff
orjson==3.10.3
# via chromadb
# via fastapi
# via langsmith
# via litellm
overrides==7.7.0
# via chromadb
packaging==23.2
# via black
# via build
# via gunicorn
# via huggingface-hub
# via langchain-core
# via langfuse
# via marshmallow
# via onnxruntime
# via transformers
# via unstructured-client
pandas==2.2.2
# via open-webui
passlib==1.7.4
# via open-webui
# via passlib
pathspec==0.12.1
# via black
peewee==3.17.5
# via open-webui
# via peewee-migrate
peewee-migrate==1.12.2
# via open-webui
pillow==10.3.0
# via fpdf2
# via rapidocr-onnxruntime
# via sentence-transformers
platformdirs==4.2.1
# via black
posthog==3.5.0
# via chromadb
proto-plus==1.23.0
# via google-ai-generativelanguage
# via google-api-core
protobuf==4.25.3
# via google-ai-generativelanguage
# via google-api-core
# via google-generativeai
# via googleapis-common-protos
# via grpcio-status
# via onnxruntime
# via opentelemetry-proto
# via proto-plus
psycopg2-binary==2.9.9
# via open-webui
pyasn1==0.6.0
# via pyasn1-modules
# via python-jose
# via rsa
pyasn1-modules==0.4.0
# via google-auth
pyclipper==1.3.0.post5
# via rapidocr-onnxruntime
pycparser==2.22
# via cffi
pydantic==2.7.1
# via chromadb
# via fastapi
# via fastapi-sso
# via google-generativeai
# via langchain
# via langchain-core
# via langfuse
# via langsmith
# via open-webui
# via openai
pydantic-core==2.18.2
# via pydantic
pygments==2.18.0
# via rich
pyjwt==2.8.0
# via litellm
# via open-webui
# via pyjwt
pymysql==1.1.0
# via open-webui
pypandoc==1.13
# via open-webui
pyparsing==3.1.2
# via httplib2
pypdf==4.2.0
# via open-webui
# via unstructured-client
pypika==0.48.9
# via chromadb
pyproject-hooks==1.1.0
# via build
python-dateutil==2.9.0.post0
# via botocore
# via kubernetes
# via pandas
# via posthog
# via unstructured-client
python-dotenv==1.0.1
# via litellm
# via uvicorn
python-engineio==4.9.0
# via python-socketio
python-iso639==2024.4.27
# via unstructured
python-jose==3.3.0
# via open-webui
python-magic==0.4.27
# via unstructured
python-multipart==0.0.9
# via fastapi
# via litellm
# via open-webui
python-socketio==5.11.2
# via open-webui
pytube==15.0.0
# via open-webui
pytz==2024.1
# via apscheduler
# via pandas
pyxlsb==1.0.10
# via open-webui
pyyaml==6.0.1
# via chromadb
# via ctranslate2
# via huggingface-hub
# via kubernetes
# via langchain
# via langchain-community
# via langchain-core
# via litellm
# via rapidocr-onnxruntime
# via transformers
# via uvicorn
rank-bm25==0.2.2
# via open-webui
rapidfuzz==3.9.0
# via unstructured
rapidocr-onnxruntime==1.3.22
# via open-webui
redis==5.0.4
# via rq
regex==2024.5.10
# via nltk
# via tiktoken
# via transformers
requests==2.32.2
# via chromadb
# via google-api-core
# via huggingface-hub
# via kubernetes
# via langchain
# via langchain-community
# via langsmith
# via litellm
# via open-webui
# via posthog
# via requests-oauthlib
# via tiktoken
# via transformers
# via unstructured
# via unstructured-client
# via youtube-transcript-api
requests-oauthlib==2.0.0
# via kubernetes
rich==13.7.1
# via typer
rq==1.16.2
# via litellm
rsa==4.9
# via google-auth
# via python-jose
s3transfer==0.10.1
# via boto3
safetensors==0.4.3
# via transformers
scikit-learn==1.4.2
# via sentence-transformers
scipy==1.13.0
# via scikit-learn
# via sentence-transformers
sentence-transformers==2.7.0
# via open-webui
shapely==2.0.4
# via rapidocr-onnxruntime
shellingham==1.5.4
# via typer
simple-websocket==1.0.0
# via python-engineio
six==1.16.0
# via apscheduler
# via ecdsa
# via kubernetes
# via langdetect
# via posthog
# via python-dateutil
# via rapidocr-onnxruntime
# via unstructured-client
sniffio==1.3.1
# via anyio
# via httpx
# via openai
soupsieve==2.5
# via beautifulsoup4
sqlalchemy==2.0.30
# via langchain
# via langchain-community
starlette==0.37.2
# via fastapi
sympy==1.12
# via onnxruntime
# via torch
tabulate==0.9.0
# via unstructured
tenacity==8.3.0
# via chromadb
# via langchain
# via langchain-community
# via langchain-core
threadpoolctl==3.5.0
# via scikit-learn
tiktoken==0.6.0
# via litellm
tokenizers==0.15.2
# via chromadb
# via faster-whisper
# via litellm
# via transformers
torch==2.3.0
# via sentence-transformers
tqdm==4.66.4
# via chromadb
# via google-generativeai
# via huggingface-hub
# via nltk
# via openai
# via sentence-transformers
# via transformers
transformers==4.39.3
# via sentence-transformers
typer==0.12.3
# via chromadb
# via fastapi-cli
typing-extensions==4.11.0
# via chromadb
# via fastapi
# via google-generativeai
# via huggingface-hub
# via openai
# via opentelemetry-sdk
# via pydantic
# via pydantic-core
# via sqlalchemy
# via torch
# via typer
# via typing-inspect
# via unstructured
# via unstructured-client
typing-inspect==0.9.0
# via dataclasses-json
# via unstructured-client
tzdata==2024.1
# via pandas
tzlocal==5.2
# via apscheduler
ujson==5.10.0
# via fastapi
unstructured==0.14.0
# via open-webui
unstructured-client==0.22.0
# via unstructured
uritemplate==4.1.1
# via google-api-python-client
urllib3==2.2.1
# via botocore
# via kubernetes
# via requests
# via unstructured-client
uvicorn==0.22.0
# via chromadb
# via fastapi
# via litellm
# via open-webui
# via uvicorn
uvloop==0.19.0
# via uvicorn
validators==0.28.1
# via open-webui
watchfiles==0.21.0
# via uvicorn
websocket-client==1.8.0
# via kubernetes
websockets==12.0
# via uvicorn
werkzeug==3.0.3
# via flask
wrapt==1.16.0
# via deprecated
# via langfuse
# via opentelemetry-instrumentation
# via unstructured
wsproto==1.2.0
# via simple-websocket
xlrd==2.0.1
# via open-webui
yarl==1.9.4
# via aiohttp
youtube-transcript-api==0.6.2
# via open-webui
zipp==3.18.1
# via importlib-metadata
setuptools==69.5.1
# via ctranslate2
# via opentelemetry-instrumentation
import { OLLAMA_API_BASE_URL } from '$lib/constants';
import { promptTemplate } from '$lib/utils';
export const getOllamaConfig = async (token: string = '') => {
let error = null;
const res = await fetch(`${OLLAMA_API_BASE_URL}/config`, {
method: 'GET',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
...(token && { authorization: `Bearer ${token}` })
}
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((err) => {
console.log(err);
if ('detail' in err) {
error = err.detail;
} else {
error = 'Server connection failed';
}
return null;
});
if (error) {
throw error;
}
return res;
};
export const updateOllamaConfig = async (token: string = '', enable_ollama_api: boolean) => {
let error = null;
const res = await fetch(`${OLLAMA_API_BASE_URL}/config/update`, {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
...(token && { authorization: `Bearer ${token}` })
},
body: JSON.stringify({
enable_ollama_api: enable_ollama_api
})
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((err) => {
console.log(err);
if ('detail' in err) {
error = err.detail;
} else {
error = 'Server connection failed';
}
return null;
});
if (error) {
throw error;
}
return res;
};
export const getOllamaUrls = async (token: string = '') => {
let error = null;
......
<script lang="ts">
import { v4 as uuidv4 } from 'uuid';
import { toast } from 'svelte-sonner';
import { getContext, onMount, tick } from 'svelte';
import { goto } from '$app/navigation';
import { page } from '$app/stores';
import {
chatId,
chats,
config,
modelfiles,
models,
settings,
showSidebar,
tags as _tags,
WEBUI_NAME
} from '$lib/stores';
import { convertMessagesToHistory, copyToClipboard, splitStream } from '$lib/utils';
import { cancelOllamaRequest, generateChatCompletion } from '$lib/apis/ollama';
import {
addTagById,
createNewChat,
deleteTagById,
getAllChatTags,
getChatById,
getChatList,
getTagsById,
updateChatById
} from '$lib/apis/chats';
import {
generateOpenAIChatCompletion,
generateSearchQuery,
generateTitle
} from '$lib/apis/openai';
import MessageInput from '$lib/components/chat/MessageInput.svelte';
import Messages from '$lib/components/chat/Messages.svelte';
import Navbar from '$lib/components/layout/Navbar.svelte';
import {
LITELLM_API_BASE_URL,
OLLAMA_API_BASE_URL,
OPENAI_API_BASE_URL,
WEBUI_BASE_URL
} from '$lib/constants';
import { createOpenAITextStream } from '$lib/apis/streaming';
import { queryMemory } from '$lib/apis/memories';
import type { Writable } from 'svelte/store';
import type { i18n as i18nType } from 'i18next';
import { runWebSearch } from '$lib/apis/rag';
const i18n: Writable<i18nType> = getContext('i18n');
export let chatIdProp = '';
let loaded = false;
let stopResponseFlag = false;
let autoScroll = true;
let processing = '';
let messagesContainerElement: HTMLDivElement;
let currentRequestId = null;
let showModelSelector = true;
let selectedModels = [''];
let atSelectedModel = '';
let useWebSearch = false;
let selectedModelfile = null;
$: selectedModelfile =
selectedModels.length === 1 &&
$modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0]).length > 0
? $modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0])[0]
: null;
let selectedModelfiles = {};
$: selectedModelfiles = selectedModels.reduce((a, tagName, i, arr) => {
const modelfile =
$modelfiles.filter((modelfile) => modelfile.tagName === tagName)?.at(0) ?? undefined;
return {
...a,
...(modelfile && { [tagName]: modelfile })
};
}, {});
let chat = null;
let tags = [];
let title = '';
let prompt = '';
let files = [];
let messages = [];
let history = {
messages: {},
currentId: null
};
$: if (history.currentId !== null) {
let _messages = [];
let currentMessage = history.messages[history.currentId];
while (currentMessage !== null) {
_messages.unshift({ ...currentMessage });
currentMessage =
currentMessage.parentId !== null ? history.messages[currentMessage.parentId] : null;
}
messages = _messages;
} else {
messages = [];
}
$: if (chatIdProp) {
(async () => {
if (await loadChat()) {
await tick();
loaded = true;
window.setTimeout(() => scrollToBottom(), 0);
const chatInput = document.getElementById('chat-textarea');
chatInput?.focus();
} else {
await goto('/');
}
})();
}
onMount(async () => {
if (!$chatId) {
await initNewChat();
} else {
if (!($settings.saveChatHistory ?? true)) {
await goto('/');
}
}
});
//////////////////////////
// Web functions
//////////////////////////
const initNewChat = async () => {
if (currentRequestId !== null) {
await cancelOllamaRequest(localStorage.token, currentRequestId);
currentRequestId = null;
}
window.history.replaceState(history.state, '', `/`);
await chatId.set('');
autoScroll = true;
title = '';
messages = [];
history = {
messages: {},
currentId: null
};
if ($page.url.searchParams.get('models')) {
selectedModels = $page.url.searchParams.get('models')?.split(',');
} else if ($settings?.models) {
selectedModels = $settings?.models;
} else if ($config?.default_models) {
selectedModels = $config?.default_models.split(',');
} else {
selectedModels = [''];
}
if ($page.url.searchParams.get('q')) {
prompt = $page.url.searchParams.get('q') ?? '';
if (prompt) {
await tick();
submitPrompt(prompt);
}
}
selectedModels = selectedModels.map((modelId) =>
$models.map((m) => m.id).includes(modelId) ? modelId : ''
);
let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}');
settings.set({
..._settings
});
const chatInput = document.getElementById('chat-textarea');
setTimeout(() => chatInput?.focus(), 0);
};
const loadChat = async () => {
chatId.set(chatIdProp);
chat = await getChatById(localStorage.token, $chatId).catch(async (error) => {
await goto('/');
return null;
});
if (chat) {
tags = await getTags();
const chatContent = chat.chat;
if (chatContent) {
console.log(chatContent);
selectedModels =
(chatContent?.models ?? undefined) !== undefined
? chatContent.models
: [chatContent.models ?? ''];
history =
(chatContent?.history ?? undefined) !== undefined
? chatContent.history
: convertMessagesToHistory(chatContent.messages);
title = chatContent.title;
let _settings = JSON.parse(localStorage.getItem('settings') ?? '{}');
await settings.set({
..._settings,
system: chatContent.system ?? _settings.system,
options: chatContent.options ?? _settings.options
});
autoScroll = true;
await tick();
if (messages.length > 0) {
history.messages[messages.at(-1).id].done = true;
}
await tick();
return true;
} else {
return null;
}
}
};
const scrollToBottom = async () => {
await tick();
if (messagesContainerElement) {
messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
}
};
//////////////////////////
// Ollama functions
//////////////////////////
const submitPrompt = async (userPrompt, _user = null) => {
console.log('submitPrompt', $chatId);
selectedModels = selectedModels.map((modelId) =>
$models.map((m) => m.id).includes(modelId) ? modelId : ''
);
if (selectedModels.includes('')) {
toast.error($i18n.t('Model not selected'));
} else if (messages.length != 0 && messages.at(-1).done != true) {
// Response not done
console.log('wait');
} else if (
files.length > 0 &&
files.filter((file) => file.upload_status === false).length > 0
) {
// Upload not done
toast.error(
$i18n.t(
`Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.`
)
);
} else {
// Reset chat message textarea height
document.getElementById('chat-textarea').style.height = '';
// Create user message
let userMessageId = uuidv4();
let userMessage = {
id: userMessageId,
parentId: messages.length !== 0 ? messages.at(-1).id : null,
childrenIds: [],
role: 'user',
user: _user ?? undefined,
content: userPrompt,
files: files.length > 0 ? files : undefined,
timestamp: Math.floor(Date.now() / 1000), // Unix epoch
models: selectedModels.filter((m, mIdx) => selectedModels.indexOf(m) === mIdx)
};
// Add message to history and Set currentId to messageId
history.messages[userMessageId] = userMessage;
history.currentId = userMessageId;
// Append messageId to childrenIds of parent message
if (messages.length !== 0) {
history.messages[messages.at(-1).id].childrenIds.push(userMessageId);
}
// Wait until history/message have been updated
await tick();
// Create new chat if only one message in messages
if (messages.length == 1) {
if ($settings.saveChatHistory ?? true) {
chat = await createNewChat(localStorage.token, {
id: $chatId,
title: $i18n.t('New Chat'),
models: selectedModels,
system: $settings.system ?? undefined,
options: {
...($settings.options ?? {})
},
messages: messages,
history: history,
tags: [],
timestamp: Date.now()
});
await chats.set(await getChatList(localStorage.token));
await chatId.set(chat.id);
} else {
await chatId.set('local');
}
await tick();
}
// Reset chat input textarea
prompt = '';
files = [];
// Send prompt
await sendPrompt(userPrompt, userMessageId);
}
};
const sendPrompt = async (prompt, parentId, modelId = null) => {
const _chatId = JSON.parse(JSON.stringify($chatId));
await Promise.all(
(modelId ? [modelId] : atSelectedModel !== '' ? [atSelectedModel.id] : selectedModels).map(
async (modelId) => {
console.log('modelId', modelId);
const model = $models.filter((m) => m.id === modelId).at(0);
if (model) {
// Create response message
let responseMessageId = uuidv4();
let responseMessage = {
parentId: parentId,
id: responseMessageId,
childrenIds: [],
role: 'assistant',
content: '',
model: model.id,
userContext: null,
timestamp: Math.floor(Date.now() / 1000) // Unix epoch
};
// Add message to history and Set currentId to messageId
history.messages[responseMessageId] = responseMessage;
history.currentId = responseMessageId;
// Append messageId to childrenIds of parent message
if (parentId !== null) {
history.messages[parentId].childrenIds = [
...history.messages[parentId].childrenIds,
responseMessageId
];
}
await tick();
let userContext = null;
if ($settings?.memory ?? false) {
if (userContext === null) {
const res = await queryMemory(localStorage.token, prompt).catch((error) => {
toast.error(error);
return null;
});
if (res) {
if (res.documents[0].length > 0) {
userContext = res.documents.reduce((acc, doc, index) => {
const createdAtTimestamp = res.metadatas[index][0].created_at;
const createdAtDate = new Date(createdAtTimestamp * 1000)
.toISOString()
.split('T')[0];
acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
return acc;
}, []);
}
console.log(userContext);
}
}
}
responseMessage.userContext = userContext;
if (useWebSearch) {
await runWebSearchForPrompt(model.id, parentId, responseMessageId);
}
if (model?.external) {
await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
} else if (model) {
await sendPromptOllama(model, prompt, responseMessageId, _chatId);
}
} else {
toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
}
}
)
);
await chats.set(await getChatList(localStorage.token));
};
const runWebSearchForPrompt = async (model: string, parentId: string, responseId: string) => {
const responseMessage = history.messages[responseId];
responseMessage.progress = $i18n.t('Generating search query');
messages = messages;
const searchQuery = await generateChatSearchQuery(model, parentId);
if (!searchQuery) {
toast.warning($i18n.t('No search query generated'));
responseMessage.progress = undefined;
messages = messages;
return;
}
responseMessage.progress = $i18n.t("Searching the web for '{{searchQuery}}'", { searchQuery });
messages = messages;
const searchDocument = await runWebSearch(localStorage.token, searchQuery);
if (searchDocument === undefined) {
toast.warning($i18n.t('No search results found'));
responseMessage.progress = undefined;
messages = messages;
return;
}
if (!responseMessage.files) {
responseMessage.files = [];
}
responseMessage.files.push({
collection_name: searchDocument.collection_name,
name: searchQuery,
type: 'websearch',
upload_status: true,
error: '',
urls: searchDocument.filenames
});
responseMessage.progress = undefined;
messages = messages;
};
const sendPromptOllama = async (model, userPrompt, responseMessageId, _chatId) => {
model = model.id;
const responseMessage = history.messages[responseMessageId];
// Wait until history/message have been updated
await tick();
// Scroll down
scrollToBottom();
const messagesBody = [
$settings.system || (responseMessage?.userContext ?? null)
? {
role: 'system',
content: `${$settings?.system ?? ''}${
responseMessage?.userContext ?? null
? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}`
: ''
}`
}
: undefined,
...messages
]
.filter((message) => message?.content?.trim())
.map((message, idx, arr) => {
// Prepare the base message object
const baseMessage = {
role: message.role,
content: arr.length - 2 !== idx ? message.content : message?.raContent ?? message.content
};
// Extract and format image URLs if any exist
const imageUrls = message.files
?.filter((file) => file.type === 'image')
.map((file) => file.url.slice(file.url.indexOf(',') + 1));
// Add images array only if it contains elements
if (imageUrls && imageUrls.length > 0 && message.role === 'user') {
baseMessage.images = imageUrls;
}
return baseMessage;
});
let lastImageIndex = -1;
// Find the index of the last object with images
messagesBody.forEach((item, index) => {
if (item.images) {
lastImageIndex = index;
}
});
// Remove images from all but the last one
messagesBody.forEach((item, index) => {
if (index !== lastImageIndex) {
delete item.images;
}
});
const docs = messages
.filter((message) => message?.files ?? null)
.map((message) =>
message.files.filter((item) => ['doc', 'collection', 'websearch'].includes(item.type))
)
.flat(1);
const [res, controller] = await generateChatCompletion(localStorage.token, {
model: model,
messages: messagesBody,
options: {
...($settings.options ?? {}),
stop:
$settings?.options?.stop ?? undefined
? $settings.options.stop.map((str) =>
decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
)
: undefined
},
format: $settings.requestFormat ?? undefined,
keep_alive: $settings.keepAlive ?? undefined,
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
});
if (res && res.ok) {
console.log('controller', controller);
const reader = res.body
.pipeThrough(new TextDecoderStream())
.pipeThrough(splitStream('\n'))
.getReader();
while (true) {
const { value, done } = await reader.read();
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
if (stopResponseFlag) {
controller.abort('User: Stop Response');
await cancelOllamaRequest(localStorage.token, currentRequestId);
}
currentRequestId = null;
break;
}
try {
let lines = value.split('\n');
for (const line of lines) {
if (line !== '') {
console.log(line);
let data = JSON.parse(line);
if ('citations' in data) {
responseMessage.citations = data.citations;
continue;
}
if ('detail' in data) {
throw data;
}
if ('id' in data) {
console.log(data);
currentRequestId = data.id;
} else {
if (data.done == false) {
if (responseMessage.content == '' && data.message.content == '\n') {
continue;
} else {
responseMessage.content += data.message.content;
messages = messages;
}
} else {
responseMessage.done = true;
if (responseMessage.content == '') {
responseMessage.error = true;
responseMessage.content =
'Oops! No text generated from Ollama, Please try again.';
}
responseMessage.context = data.context ?? null;
responseMessage.info = {
total_duration: data.total_duration,
load_duration: data.load_duration,
sample_count: data.sample_count,
sample_duration: data.sample_duration,
prompt_eval_count: data.prompt_eval_count,
prompt_eval_duration: data.prompt_eval_duration,
eval_count: data.eval_count,
eval_duration: data.eval_duration
};
messages = messages;
if ($settings.notificationEnabled && !document.hasFocus()) {
const notification = new Notification(
selectedModelfile
? `${
selectedModelfile.title.charAt(0).toUpperCase() +
selectedModelfile.title.slice(1)
}`
: `${model}`,
{
body: responseMessage.content,
icon: selectedModelfile?.imageUrl ?? `${WEBUI_BASE_URL}/static/favicon.png`
}
);
}
if ($settings.responseAutoCopy) {
copyToClipboard(responseMessage.content);
}
if ($settings.responseAutoPlayback) {
await tick();
document.getElementById(`speak-button-${responseMessage.id}`)?.click();
}
}
}
}
}
} catch (error) {
console.log(error);
if ('detail' in error) {
toast.error(error.detail);
}
break;
}
if (autoScroll) {
scrollToBottom();
}
}
if ($chatId == _chatId) {
if ($settings.saveChatHistory ?? true) {
chat = await updateChatById(localStorage.token, _chatId, {
messages: messages,
history: history
});
await chats.set(await getChatList(localStorage.token));
}
}
} else {
if (res !== null) {
const error = await res.json();
console.log(error);
if ('detail' in error) {
toast.error(error.detail);
responseMessage.content = error.detail;
} else {
toast.error(error.error);
responseMessage.content = error.error;
}
} else {
toast.error(
$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, { provider: 'Ollama' })
);
responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
provider: 'Ollama'
});
}
responseMessage.error = true;
responseMessage.content = $i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
provider: 'Ollama'
});
responseMessage.done = true;
messages = messages;
}
stopResponseFlag = false;
await tick();
if (autoScroll) {
scrollToBottom();
}
if (messages.length == 2 && messages.at(1).content !== '') {
window.history.replaceState(history.state, '', `/c/${_chatId}`);
const _title = await generateChatTitle(userPrompt);
await setChatTitle(_chatId, _title);
}
};
const sendPromptOpenAI = async (model, userPrompt, responseMessageId, _chatId) => {
const responseMessage = history.messages[responseMessageId];
const docs = messages
.filter((message) => message?.files ?? null)
.map((message) =>
message.files.filter((item) => ['doc', 'collection', 'websearch'].includes(item.type))
)
.flat(1);
console.log(docs);
scrollToBottom();
try {
const [res, controller] = await generateOpenAIChatCompletion(
localStorage.token,
{
model: model.id,
stream: true,
messages: [
$settings.system || (responseMessage?.userContext ?? null)
? {
role: 'system',
content: `${$settings?.system ?? ''}${
responseMessage?.userContext ?? null
? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}`
: ''
}`
}
: undefined,
...messages
]
.filter((message) => message?.content?.trim())
.map((message, idx, arr) => ({
role: message.role,
...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&
message.role === 'user'
? {
content: [
{
type: 'text',
text:
arr.length - 1 !== idx
? message.content
: message?.raContent ?? message.content
},
...message.files
.filter((file) => file.type === 'image')
.map((file) => ({
type: 'image_url',
image_url: {
url: file.url
}
}))
]
}
: {
content:
arr.length - 1 !== idx
? message.content
: message?.raContent ?? message.content
})
})),
seed: $settings?.options?.seed ?? undefined,
stop:
$settings?.options?.stop ?? undefined
? $settings.options.stop.map((str) =>
decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
)
: undefined,
temperature: $settings?.options?.temperature ?? undefined,
top_p: $settings?.options?.top_p ?? undefined,
num_ctx: $settings?.options?.num_ctx ?? undefined,
frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
max_tokens: $settings?.options?.num_predict ?? undefined,
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
},
model?.source?.toLowerCase() === 'litellm'
? `${LITELLM_API_BASE_URL}/v1`
: `${OPENAI_API_BASE_URL}`
);
// Wait until history/message have been updated
await tick();
scrollToBottom();
if (res && res.ok && res.body) {
const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
for await (const update of textStream) {
const { value, done, citations, error } = update;
if (error) {
await handleOpenAIError(error, null, model, responseMessage);
break;
}
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
if (stopResponseFlag) {
controller.abort('User: Stop Response');
}
break;
}
if (citations) {
responseMessage.citations = citations;
continue;
}
if (responseMessage.content == '' && value == '\n') {
continue;
} else {
responseMessage.content += value;
messages = messages;
}
if ($settings.notificationEnabled && !document.hasFocus()) {
const notification = new Notification(`OpenAI ${model}`, {
body: responseMessage.content,
icon: `${WEBUI_BASE_URL}/static/favicon.png`
});
}
if ($settings.responseAutoCopy) {
copyToClipboard(responseMessage.content);
}
if ($settings.responseAutoPlayback) {
await tick();
document.getElementById(`speak-button-${responseMessage.id}`)?.click();
}
if (autoScroll) {
scrollToBottom();
}
}
if ($chatId == _chatId) {
if ($settings.saveChatHistory ?? true) {
chat = await updateChatById(localStorage.token, _chatId, {
messages: messages,
history: history
});
await chats.set(await getChatList(localStorage.token));
}
}
} else {
await handleOpenAIError(null, res, model, responseMessage);
}
} catch (error) {
await handleOpenAIError(error, null, model, responseMessage);
}
messages = messages;
stopResponseFlag = false;
await tick();
if (autoScroll) {
scrollToBottom();
}
if (messages.length == 2) {
window.history.replaceState(history.state, '', `/c/${_chatId}`);
const _title = await generateChatTitle(userPrompt);
await setChatTitle(_chatId, _title);
}
};
const handleOpenAIError = async (error, res: Response | null, model, responseMessage) => {
let errorMessage = '';
let innerError;
if (error) {
innerError = error;
} else if (res !== null) {
innerError = await res.json();
}
console.error(innerError);
if ('detail' in innerError) {
toast.error(innerError.detail);
errorMessage = innerError.detail;
} else if ('error' in innerError) {
if ('message' in innerError.error) {
toast.error(innerError.error.message);
errorMessage = innerError.error.message;
} else {
toast.error(innerError.error);
errorMessage = innerError.error;
}
} else if ('message' in innerError) {
toast.error(innerError.message);
errorMessage = innerError.message;
}
responseMessage.error = true;
responseMessage.content =
$i18n.t(`Uh-oh! There was an issue connecting to {{provider}}.`, {
provider: model.name ?? model.id
}) +
'\n' +
errorMessage;
responseMessage.done = true;
messages = messages;
};
const stopResponse = () => {
stopResponseFlag = true;
console.log('stopResponse');
};
const regenerateResponse = async (message) => {
console.log('regenerateResponse');
if (messages.length != 0) {
let userMessage = history.messages[message.parentId];
let userPrompt = userMessage.content;
if ((userMessage?.models ?? [...selectedModels]).length == 1) {
await sendPrompt(userPrompt, userMessage.id);
} else {
await sendPrompt(userPrompt, userMessage.id, message.model);
}
}
};
const continueGeneration = async () => {
console.log('continueGeneration');
const _chatId = JSON.parse(JSON.stringify($chatId));
if (messages.length != 0 && messages.at(-1).done == true) {
const responseMessage = history.messages[history.currentId];
responseMessage.done = false;
await tick();
const model = $models.filter((m) => m.id === responseMessage.model).at(0);
if (model) {
if (model?.external) {
await sendPromptOpenAI(
model,
history.messages[responseMessage.parentId].content,
responseMessage.id,
_chatId
);
} else
await sendPromptOllama(
model,
history.messages[responseMessage.parentId].content,
responseMessage.id,
_chatId
);
}
} else {
toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
}
};
const generateChatTitle = async (userPrompt) => {
if ($settings?.title?.auto ?? true) {
const model = $models.find((model) => model.id === selectedModels[0]);
const titleModelId =
model?.external ?? false
? $settings?.title?.modelExternal ?? selectedModels[0]
: $settings?.title?.model ?? selectedModels[0];
const titleModel = $models.find((model) => model.id === titleModelId);
console.log(titleModel);
const title = await generateTitle(
localStorage.token,
$settings?.title?.prompt ??
$i18n.t(
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':"
) + ' {{prompt}}',
titleModelId,
userPrompt,
titleModel?.external ?? false
? titleModel?.source?.toLowerCase() === 'litellm'
? `${LITELLM_API_BASE_URL}/v1`
: `${OPENAI_API_BASE_URL}`
: `${OLLAMA_API_BASE_URL}/v1`
);
return title;
} else {
return `${userPrompt}`;
}
};
const generateChatSearchQuery = async (modelId: string, messageId: string) => {
const model = $models.find((model) => model.id === modelId);
const taskModelId =
model?.external ?? false
? $settings?.title?.modelExternal ?? modelId
: $settings?.title?.model ?? modelId;
const taskModel = $models.find((model) => model.id === taskModelId);
const userMessage = history.messages[messageId];
const userPrompt = userMessage.content;
const previousMessages = messages
.filter((message) => message.role === 'user')
.map((message) => message.content);
return await generateSearchQuery(
localStorage.token,
taskModelId,
previousMessages,
userPrompt,
taskModel?.external ?? false
? taskModel?.source?.toLowerCase() === 'litellm'
? `${LITELLM_API_BASE_URL}/v1`
: `${OPENAI_API_BASE_URL}`
: `${OLLAMA_API_BASE_URL}/v1`
);
};
const setChatTitle = async (_chatId, _title) => {
if (_chatId === $chatId) {
title = _title;
}
if ($settings.saveChatHistory ?? true) {
chat = await updateChatById(localStorage.token, _chatId, { title: _title });
await chats.set(await getChatList(localStorage.token));
}
};
const getTags = async () => {
return await getTagsById(localStorage.token, $chatId).catch(async (error) => {
return [];
});
};
const addTag = async (tagName) => {
const res = await addTagById(localStorage.token, $chatId, tagName);
tags = await getTags();
chat = await updateChatById(localStorage.token, $chatId, {
tags: tags
});
_tags.set(await getAllChatTags(localStorage.token));
};
const deleteTag = async (tagName) => {
const res = await deleteTagById(localStorage.token, $chatId, tagName);
tags = await getTags();
chat = await updateChatById(localStorage.token, $chatId, {
tags: tags
});
_tags.set(await getAllChatTags(localStorage.token));
};
</script>
<svelte:head>
<title>
{title
? `${title.length > 30 ? `${title.slice(0, 30)}...` : title} | ${$WEBUI_NAME}`
: `${$WEBUI_NAME}`}
</title>
</svelte:head>
{#if !chatIdProp || (loaded && chatIdProp)}
<div
class="min-h-screen max-h-screen {$showSidebar
? 'md:max-w-[calc(100%-260px)]'
: ''} w-full max-w-full flex flex-col"
>
<Navbar
{title}
bind:selectedModels
bind:showModelSelector
shareEnabled={messages.length > 0}
{chat}
{initNewChat}
/>
<div class="flex flex-col flex-auto">
<div
class=" pb-2.5 flex flex-col justify-between w-full flex-auto overflow-auto h-0 max-w-full"
id="messages-container"
bind:this={messagesContainerElement}
on:scroll={(e) => {
autoScroll =
messagesContainerElement.scrollHeight - messagesContainerElement.scrollTop <=
messagesContainerElement.clientHeight + 5;
}}
>
<div class=" h-full w-full flex flex-col {chatIdProp ? 'py-4' : 'pt-2 pb-4'}">
<Messages
chatId={$chatId}
{selectedModels}
{selectedModelfiles}
{processing}
bind:history
bind:messages
bind:autoScroll
bind:prompt
bottomPadding={files.length > 0}
suggestionPrompts={chatIdProp
? []
: selectedModelfile?.suggestionPrompts ?? $config.default_prompt_suggestions}
{sendPrompt}
{continueGeneration}
{regenerateResponse}
/>
</div>
</div>
</div>
</div>
<MessageInput
bind:files
bind:prompt
bind:autoScroll
bind:selectedModel={atSelectedModel}
bind:useWebSearch
{messages}
{submitPrompt}
{stopResponse}
webSearchAvailable={$config.websearch ?? false}
/>
{/if}
......@@ -101,7 +101,7 @@
try {
const micropip = pyodide.pyimport('micropip');
await micropip.set_index_urls('https://pypi.org/pypi/{package_name}/json');
// await micropip.set_index_urls('https://pypi.org/pypi/{package_name}/json');
let packages = [
code.includes('requests') ? 'requests' : null,
......
......@@ -490,7 +490,7 @@
<div class=" mt-2 mb-1 flex justify-end space-x-1.5 text-sm font-medium">
<button
id="close-edit-message-button"
class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
on:click={() => {
cancelEditMessage();
}}
......@@ -500,7 +500,7 @@
<button
id="save-edit-message-button"
class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
on:click={() => {
editMessageConfirmHandler();
}}
......
......@@ -201,7 +201,7 @@
<div class=" mt-2 mb-1 flex justify-end space-x-1.5 text-sm font-medium">
<button
id="close-edit-message-button"
class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
on:click={() => {
cancelEditMessage();
}}
......@@ -211,7 +211,7 @@
<button
id="save-edit-message-button"
class="px-4 py-2 bg-white hover:bg-gray-100 text-gray-800 transition rounded-3xl"
class=" px-4 py-2 bg-gray-900 hover:bg-gray-850 text-gray-100 transition rounded-3xl"
on:click={() => {
editMessageConfirmHandler();
}}
......
......@@ -3,7 +3,13 @@
import { createEventDispatcher, onMount, getContext } from 'svelte';
const dispatch = createEventDispatcher();
import { getOllamaUrls, getOllamaVersion, updateOllamaUrls } from '$lib/apis/ollama';
import {
getOllamaConfig,
getOllamaUrls,
getOllamaVersion,
updateOllamaConfig,
updateOllamaUrls
} from '$lib/apis/ollama';
import {
getOpenAIConfig,
getOpenAIKeys,
......@@ -26,6 +32,7 @@
let OPENAI_API_BASE_URLS = [''];
let ENABLE_OPENAI_API = false;
let ENABLE_OLLAMA_API = false;
const updateOpenAIHandler = async () => {
OPENAI_API_BASE_URLS = await updateOpenAIUrls(localStorage.token, OPENAI_API_BASE_URLS);
......@@ -50,10 +57,13 @@
onMount(async () => {
if ($user.role === 'admin') {
OLLAMA_BASE_URLS = await getOllamaUrls(localStorage.token);
const ollamaConfig = await getOllamaConfig(localStorage.token);
const openaiConfig = await getOpenAIConfig(localStorage.token);
const config = await getOpenAIConfig(localStorage.token);
ENABLE_OPENAI_API = config.ENABLE_OPENAI_API;
ENABLE_OPENAI_API = openaiConfig.ENABLE_OPENAI_API;
ENABLE_OLLAMA_API = ollamaConfig.ENABLE_OLLAMA_API;
OLLAMA_BASE_URLS = await getOllamaUrls(localStorage.token);
OPENAI_API_BASE_URLS = await getOpenAIUrls(localStorage.token);
OPENAI_API_KEYS = await getOpenAIKeys(localStorage.token);
......@@ -161,95 +171,108 @@
<hr class=" dark:border-gray-700" />
<div>
<div class=" mb-2.5 text-sm font-medium">{$i18n.t('Ollama Base URL')}</div>
<div class="flex w-full gap-1.5">
<div class="flex-1 flex flex-col gap-2">
{#each OLLAMA_BASE_URLS as url, idx}
<div class="flex gap-1.5">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Enter URL (e.g. http://localhost:11434)')}
bind:value={url}
/>
<div class="pr-1.5 space-y-2">
<div class="flex justify-between items-center text-sm">
<div class=" font-medium">{$i18n.t('Ollama API')}</div>
<div class="mt-1">
<Switch
bind:state={ENABLE_OLLAMA_API}
on:change={async () => {
updateOllamaConfig(localStorage.token, ENABLE_OLLAMA_API);
}}
/>
</div>
</div>
{#if ENABLE_OLLAMA_API}
<div class="flex w-full gap-1.5">
<div class="flex-1 flex flex-col gap-2">
{#each OLLAMA_BASE_URLS as url, idx}
<div class="flex gap-1.5">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Enter URL (e.g. http://localhost:11434)')}
bind:value={url}
/>
<div class="self-center flex items-center">
{#if idx === 0}
<button
class="px-1"
on:click={() => {
OLLAMA_BASE_URLS = [...OLLAMA_BASE_URLS, ''];
}}
type="button"
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
<div class="self-center flex items-center">
{#if idx === 0}
<button
class="px-1"
on:click={() => {
OLLAMA_BASE_URLS = [...OLLAMA_BASE_URLS, ''];
}}
type="button"
>
<path
d="M8.75 3.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5v-3.5Z"
/>
</svg>
</button>
{:else}
<button
class="px-1"
on:click={() => {
OLLAMA_BASE_URLS = OLLAMA_BASE_URLS.filter((url, urlIdx) => idx !== urlIdx);
}}
type="button"
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M8.75 3.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5v-3.5Z"
/>
</svg>
</button>
{:else}
<button
class="px-1"
on:click={() => {
OLLAMA_BASE_URLS = OLLAMA_BASE_URLS.filter((url, urlIdx) => idx !== urlIdx);
}}
type="button"
>
<path d="M3.75 7.25a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5h-8.5Z" />
</svg>
</button>
{/if}
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path d="M3.75 7.25a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5h-8.5Z" />
</svg>
</button>
{/if}
</div>
</div>
</div>
{/each}
</div>
{/each}
</div>
<div class="">
<button
class="p-2.5 bg-gray-200 hover:bg-gray-300 dark:bg-gray-850 dark:hover:bg-gray-800 rounded-lg transition"
on:click={() => {
updateOllamaUrlsHandler();
}}
type="button"
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
<div class="flex">
<button
class="self-center p-2 bg-gray-200 hover:bg-gray-300 dark:bg-gray-900 dark:hover:bg-gray-850 rounded-lg transition"
on:click={() => {
updateOllamaUrlsHandler();
}}
type="button"
>
<path
fill-rule="evenodd"
d="M15.312 11.424a5.5 5.5 0 01-9.201 2.466l-.312-.311h2.433a.75.75 0 000-1.5H3.989a.75.75 0 00-.75.75v4.242a.75.75 0 001.5 0v-2.43l.31.31a7 7 0 0011.712-3.138.75.75 0 00-1.449-.39zm1.23-3.723a.75.75 0 00.219-.53V2.929a.75.75 0 00-1.5 0V5.36l-.31-.31A7 7 0 003.239 8.188a.75.75 0 101.448.389A5.5 5.5 0 0113.89 6.11l.311.31h-2.432a.75.75 0 000 1.5h4.243a.75.75 0 00.53-.219z"
clip-rule="evenodd"
/>
</svg>
</button>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M15.312 11.424a5.5 5.5 0 01-9.201 2.466l-.312-.311h2.433a.75.75 0 000-1.5H3.989a.75.75 0 00-.75.75v4.242a.75.75 0 001.5 0v-2.43l.31.31a7 7 0 0011.712-3.138.75.75 0 00-1.449-.39zm1.23-3.723a.75.75 0 00.219-.53V2.929a.75.75 0 00-1.5 0V5.36l-.31-.31A7 7 0 003.239 8.188a.75.75 0 101.448.389A5.5 5.5 0 0113.89 6.11l.311.31h-2.432a.75.75 0 000 1.5h4.243a.75.75 0 00.53-.219z"
clip-rule="evenodd"
/>
</svg>
</button>
</div>
</div>
</div>
<div class="mt-2 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('Trouble accessing Ollama?')}
<a
class=" text-gray-300 font-medium underline"
href="https://github.com/open-webui/open-webui#troubleshooting"
target="_blank"
>
{$i18n.t('Click here for help.')}
</a>
</div>
<div class="mt-2 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('Trouble accessing Ollama?')}
<a
class=" text-gray-300 font-medium underline"
href="https://github.com/open-webui/open-webui#troubleshooting"
target="_blank"
>
{$i18n.t('Click here for help.')}
</a>
</div>
{/if}
</div>
</div>
......
......@@ -54,7 +54,7 @@
class=" flex flex-col w-full sm:flex-row sm:justify-center sm:space-x-6 h-[28rem] max-h-screen outline outline-1 rounded-xl outline-gray-100 dark:outline-gray-800 mb-4 mt-1"
>
{#if memories.length > 0}
<div class="text-left text-sm w-full mb-4 max-h-[22rem] overflow-y-scroll">
<div class="text-left text-sm w-full mb-4 overflow-y-scroll">
<div class="relative overflow-x-auto">
<table class="w-full text-sm text-left text-gray-600 dark:text-gray-400 table-auto">
<thead
......
......@@ -19,5 +19,5 @@
showImagePreview = true;
}}
>
<img src={_src} {alt} class=" max-h-96 rounded-lg" draggable="false" />
<img src={_src} {alt} class=" max-h-96 rounded-lg" draggable="false" data-cy="image" />
</button>
{
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "",
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' أو '-1' لا توجد انتهاء",
"(Beta)": "(تجريبي)",
"(e.g. `sh webui.sh --api`)": "( `sh webui.sh --api`مثال)",
"(latest)": "(الأخير)",
"{{modelName}} is thinking...": "{{modelName}} ...يفكر",
"{{user}}'s Chats": "{{user}}' الدردشات",
"{{user}}'s Chats": "دردشات {{user}}",
"{{webUIName}} Backend Required": "{{webUIName}} مطلوب",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"a user": "المستخدم",
"a user": "مستخدم",
"About": "عن",
"Account": "الحساب",
"Accurate information": "معلومات دقيقة",
"Add": "",
"Add a model": "أضافة موديل",
"Add a model tag name": "ضع تاق للأسم الموديل",
"Add": "أضف",
"Add a model": "أضف موديل",
"Add a model tag name": "ضع علامة للأسم الموديل",
"Add a short description about what this modelfile does": "أضف وصفًا قصيرًا حول ما يفعله ملف الموديل هذا",
"Add a short title for this prompt": "أضف عنوانًا قصيرًا لبداء المحادثة",
"Add a tag": "أضافة تاق",
"Add custom prompt": "أضافة مطالبة مخصصه",
"Add Docs": "إضافة المستندات",
"Add Files": "إضافة ملفات",
"Add Memory": "",
"Add Memory": "إضافة ذكرايات",
"Add message": "اضافة رسالة",
"Add Model": "اضافة موديل",
"Add Tags": "اضافة تاق",
......@@ -39,11 +39,11 @@
"Already have an account?": "هل تملك حساب ؟",
"an assistant": "مساعد",
"and": "و",
"and create a new shared link.": "",
"and create a new shared link.": "و أنشئ رابط مشترك جديد.",
"API Base URL": "API الرابط الرئيسي",
"API Key": "API مفتاح",
"API Key created.": "API تم أنشاء المفتاح",
"API keys": "API المفاتيح",
"API keys": "مفاتيح واجهة برمجة التطبيقات",
"API RPM": "API RPM",
"April": "أبريل",
"Archive": "الأرشيف",
......@@ -64,13 +64,13 @@
"before": "قبل",
"Being lazy": "كون كسول",
"Builder Mode": "بناء الموديل",
"Bypass SSL verification for Websites": "",
"Bypass SSL verification for Websites": "تجاوز التحقق من SSL للموقع",
"Cancel": "اللغاء",
"Categories": "التصنيفات",
"Change Password": "تغير الباسورد",
"Chat": "المحادثة",
"Chat Bubble UI": "",
"Chat direction": "",
"Chat Bubble UI": "UI الدردشة",
"Chat direction": "اتجاه المحادثة",
"Chat History": "تاريخ المحادثة",
"Chat History is off for this browser.": "سجل الدردشة معطل لهذا المتصفح",
"Chats": "المحادثات",
......@@ -164,7 +164,7 @@
"Edit Doc": "تعديل الملف",
"Edit User": "تعديل المستخدم",
"Email": "البريد",
"Embedding Model": "",
"Embedding Model": "نموذج التضمين",
"Embedding Model Engine": "تضمين محرك النموذج",
"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
"Enable Chat History": "تمكين سجل الدردشة",
......@@ -172,8 +172,8 @@
"Enabled": "تفعيل",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "تأكد من أن ملف CSV الخاص بك يتضمن 4 أعمدة بهذا الترتيب: Name, Email, Password, Role.",
"Enter {{role}} message here": "أدخل رسالة {{role}} هنا",
"Enter a detail about yourself for your LLMs to recall": "",
"Enter Chunk Overlap": "أدخل Chunk المتداخل",
"Enter a detail about yourself for your LLMs to recall": "ادخل معلومات عنك تريد أن يتذكرها الموديل",
"Enter Chunk Overlap": "أدخل الChunk Overlap",
"Enter Chunk Size": "أدخل Chunk الحجم",
"Enter Image Size (e.g. 512x512)": "(e.g. 512x512) أدخل حجم الصورة ",
"Enter language codes": "أدخل كود اللغة",
......@@ -186,9 +186,9 @@
"Enter Number of Steps (e.g. 50)": "(e.g. 50) أدخل عدد الخطوات",
"Enter Score": "أدخل النتيجة",
"Enter stop sequence": "أدخل تسلسل التوقف",
"Enter Top K": "Enter Top K",
"Enter Top K": "أدخل Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter URL (e.g. http://localhost:11434)": "URL (e.g. http://localhost:11434)",
"Enter Your Email": "أدخل البريد الاكتروني",
"Enter Your Full Name": "أدخل الاسم كامل",
"Enter Your Password": "ادخل كلمة المرور",
......@@ -217,7 +217,7 @@
"Generating search query": "",
"Generation Info": "معلومات الجيل",
"Good Response": "استجابة جيدة",
"h:mm a": "",
"h:mm a": "الساعة:الدقائق صباحا/مساء",
"has no conversations.": "ليس لديه محادثات.",
"Hello, {{name}}": " {{name}} مرحبا",
"Help": "مساعدة",
......@@ -251,29 +251,29 @@
"Light": "فاتح",
"Listening...": "جاري الاستماع",
"LLMs can make mistakes. Verify important information.": "يمكن أن تصدر بعض الأخطاء. لذلك يجب التحقق من المعلومات المهمة",
"LTR": "",
"LTR": "من جهة اليسار إلى اليمين",
"Made by OpenWebUI Community": "OpenWebUI تم إنشاؤه بواسطة مجتمع ",
"Make sure to enclose them with": "تأكد من إرفاقها",
"Manage LiteLLM Models": "LiteLLM إدارة نماذج ",
"Manage Models": "إدارة النماذج",
"Manage Ollama Models": "Ollama إدارة موديلات ",
"March": "",
"March": "مارس",
"Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "يمكن تنزيل 3 نماذج كحد أقصى في وقت واحد. الرجاء معاودة المحاولة في وقت لاحق.",
"May": "",
"May": "مايو",
"Memories accessible by LLMs will be shown here.": "",
"Memory": "",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
"Memory": "الذاكرة",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "لن تتم مشاركة الرسائل التي ترسلها بعد إنشاء الرابط الخاص بك. سيتمكن المستخدمون الذين لديهم عنوان URL من عرض الدردشة المشتركة",
"Minimum Score": "الحد الأدنى من النقاط",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
"Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"Model '{{modelName}}' has been successfully downloaded.": "موديل '{{modelName}}'تم تحميله بنجاح",
"Model '{{modelTag}}' is already in queue for downloading.": "موديل '{{modelTag}}' جاري تحميلة الرجاء الانتظار",
"Model {{modelId}} not found": "موديل {{modelId}} لم يوجد",
"Model {{modelName}} already exists.": "موجود {{modelName}} موديل ",
"Model '{{modelName}}' has been successfully downloaded.": "تم تحميل النموذج '{{modelName}}' بنجاح",
"Model '{{modelTag}}' is already in queue for downloading.": "النموذج '{{modelTag}}' موجود بالفعل في قائمة الانتظار للتحميل",
"Model {{modelId}} not found": "لم يتم العثور على النموذج {{modelId}}.",
"Model {{modelName}} already exists.": "موجود {{modelName}} موديل بالفعل",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "تم اكتشاف مسار نظام الملفات النموذجي. الاسم المختصر للنموذج مطلوب للتحديث، ولا يمكن الاستمرار.",
"Model Name": "أسم الموديل",
"Model not selected": "لم تختار موديل",
......@@ -306,7 +306,7 @@
"Okay, Let's Go!": "حسنا دعنا نذهب!",
"OLED Dark": "OLED داكن",
"Ollama": "Ollama",
"Ollama Base URL": "Ollama الرابط الافتراضي",
"Ollama API": "",
"Ollama Version": "Ollama الاصدار",
"On": "تشغيل",
"Only": "فقط",
......@@ -332,7 +332,7 @@
"PDF Extract Images (OCR)": "PDF أستخرج الصور (OCR)",
"pending": "قيد الانتظار",
"Permission denied when accessing microphone: {{error}}": "{{error}} تم رفض الإذن عند الوصول إلى الميكروفون ",
"Personalization": "",
"Personalization": "التخصيص",
"Plain text (.txt)": "نص عادي (.txt)",
"Playground": "مكان التجربة",
"Positive attitude": "موقف ايجابي",
......@@ -362,7 +362,7 @@
"Repeat Last N": "N كرر آخر",
"Repeat Penalty": "كرر المخالفة",
"Request Mode": "وضع الطلب",
"Reranking Model": "",
"Reranking Model": "إعادة تقييم النموذج",
"Reranking model disabled": "تم تعطيل نموذج إعادة الترتيب",
"Reranking model set to \"{{reranking_model}}\"": "تم ضبط نموذج إعادة الترتيب على \"{{reranking_model}}\"",
"Reset Vector Storage": "إعادة تعيين تخزين المتجهات",
......@@ -370,7 +370,7 @@
"Role": "منصب",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "",
"RTL": "من اليمين إلى اليسار",
"Save": "حفظ",
"Save & Create": "حفظ وإنشاء",
"Save & Update": "حفظ وتحديث",
......@@ -391,17 +391,17 @@
"Select a model": "أختار الموديل",
"Select an Ollama instance": "أختار سيرفر ",
"Select model": " أختار موديل",
"Send": "",
"Send": "تم",
"Send a Message": "يُرجى إدخال طلبك هنا",
"Send message": "يُرجى إدخال طلبك هنا.",
"September": "سبتمبر",
"Server connection verified": "تم التحقق من اتصال الخادم",
"Set as default": "الافتراضي",
"Set Default Model": "تفعيد الموديل الافتراضي",
"Set embedding model (e.g. {{model}})": "",
"Set embedding model (e.g. {{model}})": "ضبط نموذج المتجهات (على سبيل المثال: {{model}})",
"Set Image Size": "حجم الصورة",
"Set Model": "ضبط النموذج",
"Set reranking model (e.g. {{model}})": "",
"Set reranking model (e.g. {{model}})": "ضبط نموذج إعادة الترتيب (على سبيل المثال: {{model}})",
"Set Steps": "ضبط الخطوات",
"Set Task Model": "",
"Set Voice": "ضبط الصوت",
......@@ -486,8 +486,8 @@
"Version": "إصدار",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "تحذير: إذا قمت بتحديث أو تغيير نموذج التضمين الخاص بك، فستحتاج إلى إعادة استيراد كافة المستندات.",
"Web": "Web",
"Web Loader Settings": "",
"Web Params": "",
"Web Loader Settings": "Web تحميل اعدادات",
"Web Params": "Web تحميل اعدادات",
"Web Search Disabled": "",
"Web Search Enabled": "",
"Webhook URL": "Webhook الرابط",
......@@ -497,15 +497,15 @@
"What’s New in": "ما هو الجديد",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "عند إيقاف تشغيل السجل، لن تظهر الدردشات الجديدة على هذا المتصفح في سجلك على أي من أجهزتك.",
"Whisper (Local)": "Whisper (Local)",
"Workspace": "",
"Workspace": "مساحة العمل",
"Write a prompt suggestion (e.g. Who are you?)": "اكتب اقتراحًا سريعًا (على سبيل المثال، من أنت؟)",
"Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية]",
"Yesterday": "أمس",
"You": "",
"You": "انت",
"You have no archived conversations.": "لا تملك محادثات محفوظه",
"You have shared this chat": "تم مشاركة هذه المحادثة",
"You're a helpful assistant.": "مساعدك المفيد هنا",
"You're now logged in.": "لقد قمت الآن بتسجيل الدخول.",
"Youtube": "Youtube",
"Youtube Loader Settings": ""
"Youtube Loader Settings": "Youtube تحميل اعدادات"
}
......@@ -4,14 +4,14 @@
"(e.g. `sh webui.sh --api`)": "(например `sh webui.sh --api`)",
"(latest)": "(последна)",
"{{modelName}} is thinking...": "{{modelName}} мисли ...",
"{{user}}'s Chats": "",
"{{user}}'s Chats": "{{user}}'s чатове",
"{{webUIName}} Backend Required": "{{webUIName}} Изисква се Бекенд",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"a user": "потребител",
"About": "Относно",
"Account": "Акаунт",
"Accurate information": "",
"Add": "",
"Accurate information": "Точни информация",
"Add": "Добавяне",
"Add a model": "Добавяне на модел",
"Add a model tag name": "Добавяне на име на таг за модел",
"Add a short description about what this modelfile does": "Добавяне на кратко описание за това какво прави този модфайл",
......@@ -20,18 +20,18 @@
"Add custom prompt": "Добавяне на собствен промпт",
"Add Docs": "Добавяне на Документи",
"Add Files": "Добавяне на Файлове",
"Add Memory": "",
"Add Memory": "Добавяне на Памет",
"Add message": "Добавяне на съобщение",
"Add Model": "",
"Add Model": "Добавяне на Модел",
"Add Tags": "добавяне на тагове",
"Add User": "",
"Add User": "Добавяне на потребител",
"Adjusting these settings will apply changes universally to all users.": "При промяна на тези настройки промените се прилагат за всички потребители.",
"admin": "админ",
"Admin Panel": "Панел на Администратор",
"Admin Settings": "Настройки на Администратор",
"Advanced Parameters": "Разширени Параметри",
"all": "всички",
"All Documents": "",
"All Documents": "Всички Документи",
"All Users": "Всички Потребители",
"Allow": "Позволи",
"Allow Chat Deletion": "Позволи Изтриване на Чат",
......@@ -39,38 +39,38 @@
"Already have an account?": "Вече имате акаунт? ",
"an assistant": "асистент",
"and": "и",
"and create a new shared link.": "",
"and create a new shared link.": "и създай нов общ линк.",
"API Base URL": "API Базов URL",
"API Key": "API Ключ",
"API Key created.": "",
"API keys": "",
"API Key created.": "API Ключ създаден.",
"API keys": "API Ключове",
"API RPM": "API RPM",
"April": "",
"Archive": "",
"Archived Chats": "",
"April": "Април",
"Archive": "Архивирани Чатове",
"Archived Chats": "Архивирани Чатове",
"are allowed - Activate this command by typing": "са разрешени - Активирайте тази команда чрез въвеждане",
"Are you sure?": "Сигурни ли сте?",
"Attach file": "Прикачване на файл",
"Attention to detail": "",
"Attention to detail": "Внимание към детайлите",
"Audio": "Аудио",
"August": "",
"August": "Август",
"Auto-playback response": "Аувтоматично възпроизвеждане на Отговора",
"Auto-send input after 3 sec.": "Аувтоматично изпращане на входа след 3 сек.",
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Базов URL",
"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 Базов URL е задължителен.",
"available!": "наличен!",
"Back": "Назад",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Bad Response": "Невалиден отговор от API",
"before": "преди",
"Being lazy": "Да бъдеш мързелив",
"Builder Mode": "Режим на Създаване",
"Bypass SSL verification for Websites": "",
"Bypass SSL verification for Websites": "Изключване на SSL проверката за сайтове",
"Cancel": "Отказ",
"Categories": "Категории",
"Change Password": "Промяна на Парола",
"Chat": "Чат",
"Chat Bubble UI": "",
"Chat direction": "",
"Chat Bubble UI": "UI за чат бублон",
"Chat direction": "Направление на чата",
"Chat History": "Чат История",
"Chat History is off for this browser.": "Чат История е изключен за този браузър.",
"Chats": "Чатове",
......@@ -83,65 +83,65 @@
"Chunk Size": "Chunk Size",
"Citation": "Цитат",
"Click here for help.": "Натиснете тук за помощ.",
"Click here to": "",
"Click here to": "Натиснете тук за",
"Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.",
"Click here to select": "Натиснете тук, за да изберете",
"Click here to select a csv file.": "",
"Click here to select a csv file.": "Натиснете тук, за да изберете csv файл.",
"Click here to select documents.": "Натиснете тук, за да изберете документи.",
"click here.": "натиснете тук.",
"Click on the user role button to change a user's role.": "Натиснете върху бутона за промяна на ролята на потребителя.",
"Close": "Затвори",
"Collection": "Колекция",
"ComfyUI": "",
"ComfyUI Base URL": "",
"ComfyUI Base URL is required.": "",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI Base URL",
"ComfyUI Base URL is required.": "ComfyUI Base URL е задължително.",
"Command": "Команда",
"Confirm Password": "Потвърди Парола",
"Connections": "Връзки",
"Content": "Съдържание",
"Context Length": "Дължина на Контекста",
"Continue Response": "",
"Continue Response": "Продължи отговора",
"Conversation Mode": "Режим на Чат",
"Copied shared chat URL to clipboard!": "",
"Copy": "",
"Copied shared chat URL to clipboard!": "Копирана е връзката за чат!",
"Copy": "Копирай",
"Copy last code block": "Копиране на последен код блок",
"Copy last response": "Копиране на последен отговор",
"Copy Link": "",
"Copy Link": "Копиране на връзка",
"Copying to clipboard was successful!": "Копирането в клипборда беше успешно!",
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Създайте кратка фраза от 3-5 думи като заглавие за следващото запитване, като стриктно спазвате ограничението от 3-5 думи и избягвате използването на думата 'заглавие':",
"Create a modelfile": "Създаване на модфайл",
"Create Account": "Създаване на Акаунт",
"Create new key": "",
"Create new secret key": "",
"Create new key": "Създаване на нов ключ",
"Create new secret key": "Създаване на нов секретен ключ",
"Created at": "Създадено на",
"Created At": "",
"Created At": "Създадено на",
"Current Model": "Текущ модел",
"Current Password": "Текуща Парола",
"Custom": "Персонализиран",
"Customize Ollama models for a specific purpose": "Персонализиране на Ollama моделите за конкретна цел",
"Dark": "Тъмен",
"Dashboard": "",
"Dashboard": "Панел",
"Database": "База данни",
"December": "",
"December": "Декември",
"Default": "По подразбиране",
"Default (Automatic1111)": "По подразбиране (Automatic1111)",
"Default (SentenceTransformers)": "",
"Default (SentenceTransformers)": "По подразбиране (SentenceTransformers)",
"Default (Web API)": "По подразбиране (Web API)",
"Default model updated": "Моделът по подразбиране е обновен",
"Default Prompt Suggestions": "Промпт Предложения по подразбиране",
"Default User Role": "Роля на потребителя по подразбиране",
"delete": "изтриване",
"Delete": "",
"Delete": "Изтриване",
"Delete a model": "Изтриване на модел",
"Delete chat": "Изтриване на чат",
"Delete Chat": "",
"Delete Chat": "Изтриване на Чат",
"Delete Chats": "Изтриване на Чатове",
"delete this link": "",
"Delete User": "",
"delete this link": "Изтриване на този линк",
"Delete User": "Изтриване на потребител",
"Deleted {{deleteModelTag}}": "Изтрито {{deleteModelTag}}",
"Deleted {{tagName}}": "",
"Deleted {{tagName}}": "Изтрито {{tagName}}",
"Description": "Описание",
"Didn't fully follow instructions": "",
"Didn't fully follow instructions": "Не следва инструкциите",
"Disabled": "Деактивиран",
"Discover a modelfile": "Откриване на модфайл",
"Discover a prompt": "Откриване на промпт",
......@@ -154,29 +154,29 @@
"does not make any external connections, and your data stays securely on your locally hosted server.": "няма външни връзки, и вашите данни остават сигурни на локално назначен сървър.",
"Don't Allow": "Не Позволявай",
"Don't have an account?": "Нямате акаунт?",
"Don't like the style": "",
"Download": "",
"Download canceled": "",
"Don't like the style": "Не харесваш стила?",
"Download": "Изтегляне отменено",
"Download canceled": "Изтегляне отменено",
"Download Database": "Сваляне на база данни",
"Drop any files here to add to the conversation": "Пускане на файлове тук, за да ги добавите в чата",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр. '30с','10м'. Валидни единици са 'с', 'м', 'ч'.",
"Edit": "",
"Edit": "Редактиране",
"Edit Doc": "Редактиране на документ",
"Edit User": "Редактиране на потребител",
"Email": "Имейл",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Embedding Model": "Модел за вграждане",
"Embedding Model Engine": "Модел за вграждане",
"Embedding model set to \"{{embedding_model}}\"": "Модел за вграждане е настроен на \"{{embedding_model}}\"",
"Enable Chat History": "Вклюване на Чат История",
"Enable New Sign Ups": "Вклюване на Нови Потребители",
"Enabled": "Включено",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Уверете се, че вашият CSV файл включва 4 колони в следния ред: Име, Имейл, Парола, Роля.",
"Enter {{role}} message here": "Въведете съобщение за {{role}} тук",
"Enter a detail about yourself for your LLMs to recall": "",
"Enter a detail about yourself for your LLMs to recall": "Въведете подробности за себе си, за да се herinnerат вашите LLMs",
"Enter Chunk Overlap": "Въведете Chunk Overlap",
"Enter Chunk Size": "Въведете Chunk Size",
"Enter Image Size (e.g. 512x512)": "Въведете размер на изображението (напр. 512x512)",
"Enter language codes": "",
"Enter language codes": "Въведете кодове на езика",
"Enter LiteLLM API Base URL (litellm_params.api_base)": "Въведете LiteLLM API Base URL (litellm_params.api_base)",
"Enter LiteLLM API Key (litellm_params.api_key)": "Въведете LiteLLM API Key (litellm_params.api_key)",
"Enter LiteLLM API RPM (litellm_params.rpm)": "Въведете LiteLLM API RPM (litellm_params.rpm)",
......@@ -184,47 +184,47 @@
"Enter Max Tokens (litellm_params.max_tokens)": "Въведете Max Tokens (litellm_params.max_tokens)",
"Enter model tag (e.g. {{modelTag}})": "Въведете таг на модел (напр. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "Въведете брой стъпки (напр. 50)",
"Enter Score": "",
"Enter Score": "Въведете оценка",
"Enter stop sequence": "Въведете стоп последователност",
"Enter Top K": "Въведете Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Въведете URL (напр. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter URL (e.g. http://localhost:11434)": "Въведете URL (напр. http://localhost:11434)",
"Enter Your Email": "Въведете имейл",
"Enter Your Full Name": "Въведете вашето пълно име",
"Enter Your Password": "Въведете вашата парола",
"Enter Your Role": "",
"Enter Your Role": "Въведете вашата роля",
"Experimental": "Експериментално",
"Export All Chats (All Users)": "Експортване на всички чатове (За всички потребители)",
"Export Chats": "Експортване на чатове",
"Export Documents Mapping": "Експортване на документен мапинг",
"Export Modelfiles": "Експортване на модфайлове",
"Export Prompts": "Експортване на промптове",
"Failed to create API Key.": "",
"Failed to create API Key.": "Неуспешно създаване на API ключ.",
"Failed to read clipboard contents": "Грешка при четене на съдържанието от клипборда",
"February": "",
"Feel free to add specific details": "",
"February": "Февруари",
"Feel free to add specific details": "Feel free to add specific details",
"File Mode": "Файл Мод",
"File not found.": "Файл не е намерен.",
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Потвърждаване на отпечатък: Не може да се използва инициализационна буква като аватар. Потребителят се връща към стандартна аватарка.",
"Fluidly stream large external response chunks": "Плавно предаване на големи части от външен отговор",
"Focus chat input": "Фокусиране на чат вход",
"Followed instructions perfectly": "",
"Followed instructions perfectly": "Следвайте инструкциите перфектно",
"Format your variables using square brackets like this:": "Форматирайте вашите променливи, като използвате квадратни скоби, както следва:",
"From (Base Model)": "От (Базов модел)",
"Full Screen Mode": "На Цял екран",
"General": "Основни",
"General Settings": "Основни Настройки",
"Generating search query": "",
"Generation Info": "",
"Good Response": "",
"h:mm a": "",
"has no conversations.": "",
"Generation Info": "Информация за Генерация",
"Good Response": "Добра отговор",
"h:mm a": "h:mm a",
"has no conversations.": "няма разговори.",
"Hello, {{name}}": "Здравей, {{name}}",
"Help": "",
"Help": "Помощ",
"Hide": "Скрий",
"Hide Additional Params": "Скрий допълнителни параметри",
"How can I help you today?": "Как мога да ви помогна днес?",
"Hybrid Search": "",
"Hybrid Search": "Hybrid Search",
"Image Generation (Experimental)": "Генерация на изображения (Експериментално)",
"Image Generation Engine": "Двигател за генериране на изображения",
"Image Settings": "Настройки на изображения",
......@@ -236,45 +236,45 @@
"Include `--api` flag when running stable-diffusion-webui": "Включете флага `--api`, когато стартирате stable-diffusion-webui",
"Input commands": "Въведете команди",
"Interface": "Интерфейс",
"Invalid Tag": "",
"January": "",
"Invalid Tag": "Невалиден тег",
"January": "Януари",
"join our Discord for help.": "свържете се с нашия Discord за помощ.",
"JSON": "JSON",
"July": "",
"June": "",
"July": "Июл",
"June": "Июн",
"JWT Expiration": "JWT Expiration",
"JWT Token": "JWT Token",
"Keep Alive": "Keep Alive",
"Keyboard shortcuts": "Клавиши за бърз достъп",
"Language": "Език",
"Last Active": "",
"Last Active": "Последни активни",
"Light": "Светъл",
"Listening...": "Слушам...",
"LLMs can make mistakes. Verify important information.": "LLMs могат да правят грешки. Проверете важните данни.",
"LTR": "",
"LTR": "LTR",
"Made by OpenWebUI Community": "Направено от OpenWebUI общността",
"Make sure to enclose them with": "Уверете се, че са заключени с",
"Manage LiteLLM Models": "Управление на LiteLLM Моделите",
"Manage Models": "Управление на Моделите",
"Manage Ollama Models": "Управление на Ollama Моделите",
"March": "",
"March": "Март",
"Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 модели могат да бъдат сваляни едновременно. Моля, опитайте отново по-късно.",
"May": "",
"Memories accessible by LLMs will be shown here.": "",
"Memory": "",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
"Minimum Score": "",
"May": "Май",
"Memories accessible by LLMs will be shown here.": "Мемории достъпни от LLMs ще бъдат показани тук.",
"Memory": "Мемория",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Съобщенията, които изпращате след създаването на връзката, няма да бъдат споделяни. Потребителите с URL адреса ще могат да видят споделения чат.",
"Minimum Score": "Минимална оценка",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
"Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"Model '{{modelName}}' has been successfully downloaded.": "Моделът '{{modelName}}' беше успешно свален.",
"Model '{{modelTag}}' is already in queue for downloading.": "Моделът '{{modelTag}}' е вече в очакване за сваляне.",
"Model {{modelId}} not found": "Моделът {{modelId}} не е намерен",
"Model {{modelName}} already exists.": "Моделът {{modelName}} вече съществува.",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Открит е път до файловата система на модела. За актуализацията се изисква съкратено име на модела, не може да продължи.",
"Model Name": "Име на модел",
"Model not selected": "Не е избран модел",
"Model Tag Name": "Име на таг на модел",
......@@ -285,28 +285,28 @@
"Modelfile Content": "Съдържание на модфайл",
"Modelfiles": "Модфайлове",
"Models": "Модели",
"More": "",
"More": "Повече",
"Name": "Име",
"Name Tag": "Име Таг",
"Name your modelfile": "Име на модфайла",
"New Chat": "Нов чат",
"New Password": "Нова парола",
"No results found": "",
"No results found": "Няма намерени резултати",
"No search query generated": "",
"No search results found": "",
"No source available": "Няма наличен източник",
"Not factually correct": "",
"Not factually correct": "Не е фактологически правилно",
"Not sure what to add?": "Не сте сигурни, какво да добавите?",
"Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Забележка: Ако зададете минимален резултат, търсенето ще върне само документи с резултат, по-голям или равен на минималния резултат.",
"Notifications": "Десктоп Известия",
"November": "",
"October": "",
"November": "Ноември",
"October": "Октомври",
"Off": "Изкл.",
"Okay, Let's Go!": "ОК, Нека започваме!",
"OLED Dark": "",
"Ollama": "",
"Ollama Base URL": "Ollama Базов URL",
"OLED Dark": "OLED тъмно",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama Version": "Ollama Версия",
"On": "Вкл.",
"Only": "Само",
......@@ -318,59 +318,59 @@
"Open AI": "Open AI",
"Open AI (Dall-E)": "Open AI (Dall-E)",
"Open new chat": "Отвори нов чат",
"OpenAI": "",
"OpenAI": "OpenAI",
"OpenAI API": "OpenAI API",
"OpenAI API Config": "",
"OpenAI API Config": "OpenAI API Config",
"OpenAI API Key is required.": "OpenAI API ключ е задължителен.",
"OpenAI URL/Key required.": "",
"OpenAI URL/Key required.": "OpenAI URL/Key е задължителен.",
"or": "или",
"Other": "",
"Overview": "",
"Other": "Other",
"Overview": "Обзор",
"Parameters": "Параметри",
"Password": "Парола",
"PDF document (.pdf)": "",
"PDF document (.pdf)": "PDF документ (.pdf)",
"PDF Extract Images (OCR)": "PDF Extract Images (OCR)",
"pending": "в очакване",
"Permission denied when accessing microphone: {{error}}": "Permission denied when accessing microphone: {{error}}",
"Personalization": "",
"Plain text (.txt)": "",
"Personalization": "Персонализация",
"Plain text (.txt)": "Plain text (.txt)",
"Playground": "Плейграунд",
"Positive attitude": "",
"Previous 30 days": "",
"Previous 7 days": "",
"Profile Image": "",
"Prompt": "",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
"Positive attitude": "Позитивна ативност",
"Previous 30 days": "Предыдущите 30 дни",
"Previous 7 days": "Предыдущите 7 дни",
"Profile Image": "Профилна снимка",
"Prompt": "Промпт",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Промпт (напр. Обмисли ме забавна факт за Римската империя)",
"Prompt Content": "Съдържание на промпта",
"Prompt suggestions": "Промпт предложения",
"Prompts": "Промптове",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull \"{{searchValue}}\" from Ollama.com": "Извади \"{{searchValue}}\" от Ollama.com",
"Pull a model from Ollama.com": "Издърпайте модел от Ollama.com",
"Pull Progress": "Прогрес на издърпването",
"Query Params": "Query Параметри",
"RAG Template": "RAG Шаблон",
"Raw Format": "Raw Формат",
"Read Aloud": "",
"Read Aloud": "Прочети на Голос",
"Record voice": "Записване на глас",
"Redirecting you to OpenWebUI Community": "Пренасочване към OpenWebUI общността",
"Refused when it shouldn't have": "",
"Regenerate": "",
"Refused when it shouldn't have": "Отказано, когато не трябва да бъде",
"Regenerate": "Регенериране",
"Release Notes": "Бележки по изданието",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Remove": "Изтриване",
"Remove Model": "Изтриване на модела",
"Rename": "Преименуване",
"Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty",
"Request Mode": "Request Mode",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reranking Model": "Reranking Model",
"Reranking model disabled": "Reranking model disabled",
"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
"Reset Vector Storage": "Ресет Vector Storage",
"Response AutoCopy to Clipboard": "Аувтоматично копиране на отговор в клипборда",
"Role": "Роля",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "",
"RTL": "RTL",
"Save": "Запис",
"Save & Create": "Запис & Създаване",
"Save & Update": "Запис & Актуализиране",
......@@ -379,7 +379,7 @@
"Scan complete!": "Сканиране завършено!",
"Scan for documents from {{path}}": "Сканиране за документи в {{path}}",
"Search": "Търси",
"Search a model": "",
"Search a model": "Търси модел",
"Search Documents": "Търси Документи",
"Search Prompts": "Търси Промптове",
"Search Results": "",
......@@ -391,35 +391,35 @@
"Select a model": "Изберете модел",
"Select an Ollama instance": "Изберете Ollama инстанция",
"Select model": "Изберете модел",
"Send": "",
"Send": "Изпрати",
"Send a Message": "Изпращане на Съобщение",
"Send message": "Изпращане на съобщение",
"September": "",
"September": "Септември",
"Server connection verified": "Server connection verified",
"Set as default": "Задай по подразбиране",
"Set Default Model": "Задай Модел По Подразбиране",
"Set embedding model (e.g. {{model}})": "",
"Set embedding model (e.g. {{model}})": "Задай embedding model (e.g. {{model}})",
"Set Image Size": "Задай Размер на Изображението",
"Set Model": "Задай Модел",
"Set reranking model (e.g. {{model}})": "",
"Set reranking model (e.g. {{model}})": "Задай reranking model (e.g. {{model}})",
"Set Steps": "Задай Стъпки",
"Set Task Model": "",
"Set Voice": "Задай Глас",
"Settings": "Настройки",
"Settings saved successfully!": "Настройките са запазени успешно!",
"Share": "",
"Share Chat": "",
"Share": "Подели",
"Share Chat": "Подели Чат",
"Share to OpenWebUI Community": "Споделите с OpenWebUI Общността",
"short-summary": "short-summary",
"Show": "Покажи",
"Show Additional Params": "Покажи допълнителни параметри",
"Show shortcuts": "Покажи",
"Showcased creativity": "",
"Showcased creativity": "Показана креативност",
"sidebar": "sidebar",
"Sign in": "Вписване",
"Sign Out": "Изход",
"Sign up": "Регистрация",
"Signing in": "",
"Signing in": "Вписване",
"Source": "Източник",
"Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
"Speech-to-Text Engine": "Speech-to-Text Engine",
......@@ -427,37 +427,37 @@
"Stop Sequence": "Stop Sequence",
"STT Settings": "STT Настройки",
"Submit": "Изпращане",
"Subtitle (e.g. about the Roman Empire)": "",
"Subtitle (e.g. about the Roman Empire)": "Подтитул (напр. за Римска империя)",
"Success": "Успех",
"Successfully updated.": "Успешно обновено.",
"Suggested": "",
"Suggested": "Препоръчано",
"Sync All": "Синхронизиране на всички",
"System": "Система",
"System Prompt": "Системен Промпт",
"Tags": "Тагове",
"Tell us more:": "",
"Tell us more:": "Повече информация:",
"Temperature": "Температура",
"Template": "Шаблон",
"Text Completion": "Text Completion",
"Text-to-Speech Engine": "Text-to-Speech Engine",
"Tfs Z": "Tfs Z",
"Thanks for your feedback!": "",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
"Thanks for your feedback!": "Благодарим ви за вашия отзив!",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "The score should be a value between 0.0 (0%) and 1.0 (100%).",
"Theme": "Тема",
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Това гарантира, че ценните ви разговори се запазват сигурно във вашата бекенд база данни. Благодарим ви!",
"This setting does not sync across browsers or devices.": "Тази настройка не се синхронизира между браузъри или устройства.",
"Thorough explanation": "",
"Thorough explanation": "Това е подробно описание.",
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Съвет: Актуализирайте няколко слота за променливи последователно, като натискате клавиша Tab в чат входа след всяка подмяна.",
"Title": "Заглавие",
"Title (e.g. Tell me a fun fact)": "",
"Title (e.g. Tell me a fun fact)": "Заглавие (напр. Моля, кажете ми нещо забавно)",
"Title Auto-Generation": "Автоматично Генериране на Заглавие",
"Title cannot be an empty string.": "",
"Title cannot be an empty string.": "Заглавието не може да бъде празно.",
"Title Generation Prompt": "Промпт за Генериране на Заглавие",
"to": "в",
"To access the available model names for downloading,": "За да получите достъп до наличните имена на модели за изтегляне,",
"To access the GGUF models available for downloading,": "За да получите достъп до GGUF моделите, налични за изтегляне,",
"to chat input.": "към чат входа.",
"Today": "",
"Today": "днес",
"Toggle settings": "Toggle settings",
"Toggle sidebar": "Toggle sidebar",
"Top K": "Top K",
......@@ -467,7 +467,7 @@
"Type Hugging Face Resolve (Download) URL": "Въведете Hugging Face Resolve (Download) URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст",
"Update and Copy Link": "",
"Update and Copy Link": "Обнови и копирай връзка",
"Update password": "Обновяване на парола",
"Upload a GGUF model": "Качване на GGUF модел",
"Upload files": "Качване на файлове",
......@@ -475,7 +475,7 @@
"URL Mode": "URL Mode",
"Use '#' in the prompt input to load and select your documents.": "Използвайте '#' във промпта за да заредите и изберете вашите документи.",
"Use Gravatar": "Използвайте Gravatar",
"Use Initials": "",
"Use Initials": "Използвайте Инициали",
"user": "потребител",
"User Permissions": "Права на потребителя",
"Users": "Потребители",
......@@ -484,28 +484,28 @@
"variable": "променлива",
"variable to have them replaced with clipboard content.": "променливи да се заменят съдържанието от клипборд.",
"Version": "Версия",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Ако актуализирате или промените вашия модел за вграждане, трябва да повторите импортирането на всички документи.",
"Web": "Уеб",
"Web Loader Settings": "",
"Web Params": "",
"Web Loader Settings": "Настройки за зареждане на уеб",
"Web Params": "Параметри за уеб",
"Web Search Disabled": "",
"Web Search Enabled": "",
"Webhook URL": "",
"Webhook URL": "Уебхук URL",
"WebUI Add-ons": "WebUI Добавки",
"WebUI Settings": "WebUI Настройки",
"WebUI will make requests to": "WebUI ще направи заявки към",
"What’s New in": "Какво е новото в",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Когато историята е изключена, нови чатове в този браузър ще не се показват в историята на никои от вашия профил.",
"Whisper (Local)": "Whisper (Локален)",
"Workspace": "",
"Workspace": "Работно пространство",
"Write a prompt suggestion (e.g. Who are you?)": "Напиши предложение за промпт (напр. Кой сте вие?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Напиши описание в 50 знака, което описва [тема или ключова дума].",
"Yesterday": "",
"You": "",
"You have no archived conversations.": "",
"You have shared this chat": "",
"Yesterday": "вчера",
"You": "вие",
"You have no archived conversations.": "Нямате архивирани разговори.",
"You have shared this chat": "Вие сте споделели този чат",
"You're a helpful assistant.": "Вие сте полезен асистент.",
"You're now logged in.": "Сега, вие влязохте в системата.",
"Youtube": "",
"Youtube Loader Settings": ""
"Youtube": "Youtube",
"Youtube Loader Settings": "Youtube Loader Settings"
}
......@@ -4,14 +4,14 @@
"(e.g. `sh webui.sh --api`)": "(যেমন `sh webui.sh --api`)",
"(latest)": "(সর্বশেষ)",
"{{modelName}} is thinking...": "{{modelName}} চিন্তা করছে...",
"{{user}}'s Chats": "",
"{{user}}'s Chats": "{{user}}র চ্যাটস",
"{{webUIName}} Backend Required": "{{webUIName}} ব্যাকএন্ড আবশ্যক",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"a user": "একজন ব্যাবহারকারী",
"About": "সম্পর্কে",
"Account": "একাউন্ট",
"Accurate information": "",
"Add": "",
"Accurate information": "সঠিক তথ্য",
"Add": "যোগ করুন",
"Add a model": "একটি মডেল যোগ করুন",
"Add a model tag name": "একটি মডেল ট্যাগ যোগ করুন",
"Add a short description about what this modelfile does": "এই মডেলফাইলটির সম্পর্কে সংক্ষিপ্ত বিবরণ যোগ করুন",
......@@ -20,18 +20,18 @@
"Add custom prompt": "একটি কাস্টম প্রম্পট যোগ করুন",
"Add Docs": "ডকুমেন্ট যোগ করুন",
"Add Files": "ফাইল যোগ করুন",
"Add Memory": "",
"Add Memory": "মেমোরি যোগ করুন",
"Add message": "মেসেজ যোগ করুন",
"Add Model": "",
"Add Model": "মডেল যোগ করুন",
"Add Tags": "ট্যাগ যোগ করুন",
"Add User": "",
"Add User": "ইউজার যোগ করুন",
"Adjusting these settings will apply changes universally to all users.": "এই সেটিংগুলো পরিবর্তন করলে তা সব ইউজারের উপরেই প্রয়োগ করা হবে",
"admin": "এডমিন",
"Admin Panel": "এডমিন প্যানেল",
"Admin Settings": "এডমিন সেটিংস",
"Advanced Parameters": "এডভান্সড প্যারামিটার্স",
"all": "সব",
"All Documents": "",
"All Documents": "সব ডকুমেন্ট",
"All Users": "সব ইউজার",
"Allow": "অনুমোদন",
"Allow Chat Deletion": "চ্যাট ডিলিট করতে দিন",
......@@ -39,38 +39,38 @@
"Already have an account?": "আগে থেকেই একাউন্ট আছে?",
"an assistant": "একটা এসিস্ট্যান্ট",
"and": "এবং",
"and create a new shared link.": "",
"and create a new shared link.": "এবং একটি নতুন শেয়ারে লিংক তৈরি করুন.",
"API Base URL": "এপিআই বেজ ইউআরএল",
"API Key": "এপিআই কোড",
"API Key created.": "",
"API keys": "",
"API Key created.": "একটি এপিআই কোড তৈরি করা হয়েছে.",
"API keys": "এপিআই কোডস",
"API RPM": "এপিআই আরপিএম",
"April": "",
"Archive": "",
"April": "আপ্রিল",
"Archive": "আর্কাইভ",
"Archived Chats": "চ্যাট ইতিহাস সংরক্ষণাগার",
"are allowed - Activate this command by typing": "অনুমোদিত - কমান্ডটি চালু করার জন্য লিখুন",
"Are you sure?": "আপনি নিশ্চিত?",
"Attach file": "ফাইল যুক্ত করুন",
"Attention to detail": "বিস্তারিত বিশেষতা",
"Audio": "অডিও",
"August": "",
"August": "আগস্ট",
"Auto-playback response": "রেসপন্স অটো-প্লেব্যাক",
"Auto-send input after 3 sec.": "৩ সেকেন্ড পর ইনপুট সংয়ক্রিয়ভাবে পাঠান",
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 বেজ ইউআরএল",
"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111 বেজ ইউআরএল আবশ্যক",
"available!": "উপলব্ধ!",
"Back": "পেছনে",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Bad Response": "খারাপ প্রতিক্রিয়া",
"before": "পূর্ববর্তী",
"Being lazy": "অলস হওয়া",
"Builder Mode": "বিল্ডার মোড",
"Bypass SSL verification for Websites": "",
"Bypass SSL verification for Websites": "ওয়েবসাইটের জন্য SSL যাচাই বাতিল করুন",
"Cancel": "বাতিল",
"Categories": "ক্যাটাগরিসমূহ",
"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
"Chat": "চ্যাট",
"Chat Bubble UI": "",
"Chat direction": "",
"Chat Bubble UI": "চ্যাট বাবল UI",
"Chat direction": "চ্যাট দিকনির্দেশ",
"Chat History": "চ্যাট হিস্টোরি",
"Chat History is off for this browser.": "এই ব্রাউজারের জন্য চ্যাট হিস্টোরি বন্ধ আছে",
"Chats": "চ্যাটসমূহ",
......@@ -83,65 +83,65 @@
"Chunk Size": "চাঙ্ক সাইজ",
"Citation": "উদ্ধৃতি",
"Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন",
"Click here to": "",
"Click here to": "এখানে ক্লিক করুন",
"Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন",
"Click here to select": "নির্বাচন করার জন্য এখানে ক্লিক করুন",
"Click here to select a csv file.": "",
"Click here to select a csv file.": "একটি csv ফাইল নির্বাচন করার জন্য এখানে ক্লিক করুন",
"Click here to select documents.": "ডকুমেন্টগুলো নির্বাচন করার জন্য এখানে ক্লিক করুন",
"click here.": "এখানে ক্লিক করুন",
"Click on the user role button to change a user's role.": "ইউজারের পদবি পরিবর্তন করার জন্য ইউজারের পদবি বাটনে ক্লিক করুন",
"Close": "বন্ধ",
"Collection": "সংগ্রহ",
"ComfyUI": "",
"ComfyUI Base URL": "",
"ComfyUI Base URL is required.": "",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI Base URL",
"ComfyUI Base URL is required.": "ComfyUI Base URL আবশ্যক।",
"Command": "কমান্ড",
"Confirm Password": "পাসওয়ার্ড নিশ্চিত করুন",
"Connections": "কানেকশনগুলো",
"Content": "বিষয়বস্তু",
"Context Length": "কনটেক্সটের দৈর্ঘ্য",
"Continue Response": "",
"Continue Response": "যাচাই করুন",
"Conversation Mode": "কথোপকথন মোড",
"Copied shared chat URL to clipboard!": "",
"Copy": "",
"Copied shared chat URL to clipboard!": "শেয়ারকৃত কথা-ব্যবহারের URL ক্লিপবোর্ডে কপি করা হয়েছে!",
"Copy": "অনুলিপি",
"Copy last code block": "সর্বশেষ কোড ব্লক কপি করুন",
"Copy last response": "সর্বশেষ রেসপন্স কপি করুন",
"Copy Link": "",
"Copy Link": "লিংক কপি করুন",
"Copying to clipboard was successful!": "ক্লিপবোর্ডে কপি করা সফল হয়েছে",
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "'title' শব্দটি ব্যবহার না করে নিম্মোক্ত অনুসন্ধানের জন্য সংক্ষেপে সর্বোচ্চ ৩-৫ শব্দের একটি হেডার তৈরি করুন",
"Create a modelfile": "একটি মডেলফাইল তৈরি করুন",
"Create Account": "একাউন্ট তৈরি করুন",
"Create new key": "",
"Create new secret key": "",
"Create new key": "একটি নতুন কী তৈরি করুন",
"Create new secret key": "একটি নতুন সিক্রেট কী তৈরি করুন",
"Created at": "নির্মানকাল",
"Created At": "",
"Created At": "নির্মানকাল",
"Current Model": "বর্তমান মডেল",
"Current Password": "বর্তমান পাসওয়ার্ড",
"Custom": "কাস্টম",
"Customize Ollama models for a specific purpose": "নির্দিষ্ট উদ্দেশ্যে Ollama মডেল পরিবর্তন করুন",
"Dark": "ডার্ক",
"Dashboard": "",
"Dashboard": "ড্যাশবোর্ড",
"Database": "ডেটাবেজ",
"December": "",
"December": "ডেসেম্বর",
"Default": "ডিফল্ট",
"Default (Automatic1111)": "ডিফল্ট (Automatic1111)",
"Default (SentenceTransformers)": "",
"Default (SentenceTransformers)": "ডিফল্ট (SentenceTransformers)",
"Default (Web API)": "ডিফল্ট (Web API)",
"Default model updated": "ডিফল্ট মডেল আপডেট হয়েছে",
"Default Prompt Suggestions": "ডিফল্ট প্রম্পট সাজেশন",
"Default User Role": "ইউজারের ডিফল্ট পদবি",
"delete": "মুছে ফেলুন",
"Delete": "",
"Delete": "মুছে ফেলুন",
"Delete a model": "একটি মডেল মুছে ফেলুন",
"Delete chat": "চ্যাট মুছে ফেলুন",
"Delete Chat": "",
"Delete Chat": "চ্যাট মুছে ফেলুন",
"Delete Chats": "চ্যাটগুলো মুছে ফেলুন",
"delete this link": "",
"Delete User": "",
"delete this link": "এই লিংক মুছে ফেলুন",
"Delete User": "ইউজার মুছে ফেলুন",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} মুছে ফেলা হয়েছে",
"Deleted {{tagName}}": "",
"Deleted {{tagName}}": "{{tagName}} মুছে ফেলা হয়েছে",
"Description": "বিবরণ",
"Didn't fully follow instructions": "",
"Didn't fully follow instructions": "ইনস্ট্রাকশন সম্পূর্ণ অনুসরণ করা হয়নি",
"Disabled": "অক্ষম",
"Discover a modelfile": "একটি মডেলফাইল খুঁজে বের করুন",
"Discover a prompt": "একটি প্রম্পট খুঁজে বের করুন",
......@@ -154,29 +154,29 @@
"does not make any external connections, and your data stays securely on your locally hosted server.": "কোন এক্সটার্নাল কানেকশন তৈরি করে না, এবং আপনার ডেটা আর লোকালি হোস্টেড সার্ভারেই নিরাপদে থাকে।",
"Don't Allow": "অনুমোদন দেবেন না",
"Don't have an account?": "একাউন্ট নেই?",
"Don't like the style": "",
"Download": "",
"Download canceled": "",
"Don't like the style": "স্টাইল পছন্দ করেন না",
"Download": "ডাউনলোড",
"Download canceled": "ডাউনলোড বাতিল করা হয়েছে",
"Download Database": "ডেটাবেজ ডাউনলোড করুন",
"Drop any files here to add to the conversation": "আলোচনায় যুক্ত করার জন্য যে কোন ফাইল এখানে ড্রপ করুন",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "যেমন '30s','10m'. সময়ের অনুমোদিত অনুমোদিত এককগুলি হচ্ছে 's', 'm', 'h'.",
"Edit": "",
"Edit": "এডিট করুন",
"Edit Doc": "ডকুমেন্ট এডিট করুন",
"Edit User": "ইউজার এডিট করুন",
"Email": "ইমেইল",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Embedding Model": "ইমেজ ইমেবডিং মডেল",
"Embedding Model Engine": "ইমেজ ইমেবডিং মডেল ইঞ্জিন",
"Embedding model set to \"{{embedding_model}}\"": "ইমেজ ইমেবডিং মডেল সেট করা হয়েছে - \"{{embedding_model}}\"",
"Enable Chat History": "চ্যাট হিস্টোরি চালু করুন",
"Enable New Sign Ups": "নতুন সাইনআপ চালু করুন",
"Enabled": "চালু করা হয়েছে",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "আপনার সিএসভি ফাইলটিতে এই ক্রমে 4 টি কলাম অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন: নাম, ইমেল, পাসওয়ার্ড, ভূমিকা।.",
"Enter {{role}} message here": "{{role}} মেসেজ এখানে লিখুন",
"Enter a detail about yourself for your LLMs to recall": "",
"Enter a detail about yourself for your LLMs to recall": "আপনার এলএলএমগুলি স্মরণ করার জন্য নিজের সম্পর্কে একটি বিশদ লিখুন",
"Enter Chunk Overlap": "চাঙ্ক ওভারল্যাপ লিখুন",
"Enter Chunk Size": "চাংক সাইজ লিখুন",
"Enter Image Size (e.g. 512x512)": "ছবির মাপ লিখুন (যেমন 512x512)",
"Enter language codes": "",
"Enter language codes": "ল্যাঙ্গুয়েজ কোড লিখুন",
"Enter LiteLLM API Base URL (litellm_params.api_base)": "LiteLLM এপিআই বেজ ইউআরএল লিখুন (litellm_params.api_base)",
"Enter LiteLLM API Key (litellm_params.api_key)": "LiteLLM এপিআই কোড লিখুন (litellm_params.api_key)",
"Enter LiteLLM API RPM (litellm_params.rpm)": "LiteLLM এপিআই RPM দিন (litellm_params.rpm)",
......@@ -184,47 +184,47 @@
"Enter Max Tokens (litellm_params.max_tokens)": "সর্বোচ্চ টোকেন সংখ্যা দিন (litellm_params.max_tokens)",
"Enter model tag (e.g. {{modelTag}})": "মডেল ট্যাগ লিখুন (e.g. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "ধাপের সংখ্যা দিন (যেমন: 50)",
"Enter Score": "",
"Enter Score": "স্কোর দিন",
"Enter stop sequence": "স্টপ সিকোয়েন্স লিখুন",
"Enter Top K": "Top K লিখুন",
"Enter URL (e.g. http://127.0.0.1:7860/)": "ইউআরএল দিন (যেমন http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter URL (e.g. http://localhost:11434)": "ইউআরএল দিন (যেমন http://localhost:11434)",
"Enter Your Email": "আপনার ইমেইল লিখুন",
"Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন",
"Enter Your Password": "আপনার পাসওয়ার্ড লিখুন",
"Enter Your Role": "",
"Enter Your Role": "আপনার রোল লিখুন",
"Experimental": "পরিক্ষামূলক",
"Export All Chats (All Users)": "সব চ্যাট এক্সপোর্ট করুন (সব ইউজারের)",
"Export Chats": "চ্যাটগুলো এক্সপোর্ট করুন",
"Export Documents Mapping": "ডকুমেন্টসমূহ ম্যাপিং এক্সপোর্ট করুন",
"Export Modelfiles": "মডেলফাইলগুলো এক্সপোর্ট করুন",
"Export Prompts": "প্রম্পটগুলো একপোর্ট করুন",
"Failed to create API Key.": "",
"Failed to create API Key.": "API Key তৈরি করা যায়নি।",
"Failed to read clipboard contents": "ক্লিপবোর্ডের বিষয়বস্তু পড়া সম্ভব হয়নি",
"February": "",
"Feel free to add specific details": "",
"February": "ফেব্রুয়ারি",
"Feel free to add specific details": "নির্দিষ্ট বিবরণ যোগ করতে বিনা দ্বিধায়",
"File Mode": "ফাইল মোড",
"File not found.": "ফাইল পাওয়া যায়নি",
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "ফিঙ্গারপ্রিন্ট স্পুফিং ধরা পড়েছে: অ্যাভাটার হিসেবে নামের আদ্যক্ষর ব্যবহার করা যাচ্ছে না। ডিফল্ট প্রোফাইল পিকচারে ফিরিয়ে নেয়া হচ্ছে।",
"Fluidly stream large external response chunks": "বড় এক্সটার্নাল রেসপন্স চাঙ্কগুলো মসৃণভাবে প্রবাহিত করুন",
"Focus chat input": "চ্যাট ইনপুট ফোকাস করুন",
"Followed instructions perfectly": "",
"Followed instructions perfectly": "নির্দেশাবলী নিখুঁতভাবে অনুসরণ করা হয়েছে",
"Format your variables using square brackets like this:": "আপনার ভেরিয়বলগুলো এভাবে স্কয়ার ব্রাকেটের মাধ্যমে সাজান",
"From (Base Model)": "উৎস (বেজ মডেল)",
"Full Screen Mode": "ফুলস্ক্রিন মোড",
"General": "সাধারণ",
"General Settings": "সাধারণ সেটিংসমূহ",
"Generating search query": "",
"Generation Info": "",
"Good Response": "",
"h:mm a": "",
"has no conversations.": "",
"Generation Info": "জেনারেশন ইনফো",
"Good Response": "ভালো সাড়া",
"h:mm a": "h:mm a",
"has no conversations.": "কোন কনভার্সেশন আছে না।",
"Hello, {{name}}": "হ্যালো, {{name}}",
"Help": "",
"Help": "সহায়তা",
"Hide": "লুকান",
"Hide Additional Params": "অতিরিক্ত প্যারামিটাগুলো লুকান",
"How can I help you today?": "আপনাকে আজ কিভাবে সাহায্য করতে পারি?",
"Hybrid Search": "",
"Hybrid Search": "হাইব্রিড অনুসন্ধান",
"Image Generation (Experimental)": "ইমেজ জেনারেশন (পরিক্ষামূলক)",
"Image Generation Engine": "ইমেজ জেনারেশন ইঞ্জিন",
"Image Settings": "ছবির সেটিংসমূহ",
......@@ -236,40 +236,40 @@
"Include `--api` flag when running stable-diffusion-webui": "stable-diffusion-webui চালু করার সময় `--api` ফ্ল্যাগ সংযুক্ত করুন",
"Input commands": "ইনপুট কমান্ডস",
"Interface": "ইন্টারফেস",
"Invalid Tag": "",
"January": "",
"Invalid Tag": "অবৈধ ট্যাগ",
"January": "জানুয়ারী",
"join our Discord for help.": "সাহায্যের জন্য আমাদের Discord-এ যুক্ত হোন",
"JSON": "JSON",
"July": "",
"June": "",
"July": "জুলাই",
"June": "জুন",
"JWT Expiration": "JWT-র মেয়াদ",
"JWT Token": "JWT টোকেন",
"Keep Alive": "সচল রাখুন",
"Keyboard shortcuts": "কিবোর্ড শর্টকাটসমূহ",
"Language": "ভাষা",
"Last Active": "",
"Last Active": "সর্বশেষ সক্রিয়",
"Light": "লাইট",
"Listening...": "শুনছে...",
"LLMs can make mistakes. Verify important information.": "LLM ভুল করতে পারে। গুরুত্বপূর্ণ তথ্য যাচাই করে নিন।",
"LTR": "",
"LTR": "LTR",
"Made by OpenWebUI Community": "OpenWebUI কমিউনিটিকর্তৃক নির্মিত",
"Make sure to enclose them with": "এটা দিয়ে বন্ধনী দিতে ভুলবেন না",
"Manage LiteLLM Models": "LiteLLM মডেল ব্যবস্থাপনা করুন",
"Manage Models": "মডেলসমূহ ব্যবস্থাপনা করুন",
"Manage Ollama Models": "Ollama মডেলসূহ ব্যবস্থাপনা করুন",
"March": "",
"March": "মার্চ",
"Max Tokens": "সর্বোচ্চ টোকন",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "একসঙ্গে সর্বোচ্চ তিনটি মডেল ডাউনলোড করা যায়। দয়া করে পরে আবার চেষ্টা করুন।",
"May": "",
"Memories accessible by LLMs will be shown here.": "",
"Memory": "",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
"Minimum Score": "",
"May": "মে",
"Memories accessible by LLMs will be shown here.": "LLMs দ্বারা অ্যাক্সেসযোগ্য মেমোরিগুলি এখানে দেখানো হবে।",
"Memory": "মেমোরি",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "আপনার লিঙ্ক তৈরি করার পরে আপনার পাঠানো বার্তাগুলি শেয়ার করা হবে না। ইউআরএল ব্যবহারকারীরা শেয়ার করা চ্যাট দেখতে পারবেন।",
"Minimum Score": "Minimum Score",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
"Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' মডেল সফলভাবে ডাউনলোড হয়েছে।",
"Model '{{modelTag}}' is already in queue for downloading.": "{{modelTag}} ডাউনলোডের জন্য আগে থেকেই অপেক্ষমান আছে।",
"Model {{modelId}} not found": "{{modelId}} মডেল পাওয়া যায়নি",
......@@ -285,28 +285,28 @@
"Modelfile Content": "মডেলফাইল কনটেন্ট",
"Modelfiles": "মডেলফাইলসমূহ",
"Models": "মডেলসমূহ",
"More": "",
"More": "আরো",
"Name": "নাম",
"Name Tag": "নামের ট্যাগ",
"Name your modelfile": "আপনার মডেলফাইলের নাম দিন",
"New Chat": "নতুন চ্যাট",
"New Password": "নতুন পাসওয়ার্ড",
"No results found": "",
"No results found": "কোন ফলাফল পাওয়া যায়নি",
"No search query generated": "",
"No search results found": "",
"No source available": "কোন উৎস পাওয়া যায়নি",
"Not factually correct": "",
"Not factually correct": "তথ্যগত দিক থেকে সঠিক নয়",
"Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?",
"Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "দ্রষ্টব্য: আপনি যদি ন্যূনতম স্কোর সেট করেন তবে অনুসন্ধানটি কেবলমাত্র ন্যূনতম স্কোরের চেয়ে বেশি বা সমান স্কোর সহ নথিগুলি ফেরত দেবে।",
"Notifications": "নোটিফিকেশনসমূহ",
"November": "",
"October": "",
"November": "নভেম্বর",
"October": "অক্টোবর",
"Off": "বন্ধ",
"Okay, Let's Go!": "ঠিক আছে, চলুন যাই!",
"OLED Dark": "",
"Ollama": "",
"Ollama Base URL": "Ollama বেজ ইউআরএল",
"OLED Dark": "OLED ডার্ক",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama Version": "Ollama ভার্সন",
"On": "চালু",
"Only": "শুধুমাত্র",
......@@ -318,59 +318,59 @@
"Open AI": "Open AI",
"Open AI (Dall-E)": "Open AI (Dall-E)",
"Open new chat": "নতুন চ্যাট খুলুন",
"OpenAI": "",
"OpenAI": "OpenAI",
"OpenAI API": "OpenAI এপিআই",
"OpenAI API Config": "",
"OpenAI API Config": "OpenAI এপিআই কনফিগ",
"OpenAI API Key is required.": "OpenAI API কোড আবশ্যক",
"OpenAI URL/Key required.": "",
"OpenAI URL/Key required.": "OpenAI URL/Key আবশ্যক",
"or": "অথবা",
"Other": "",
"Overview": "",
"Other": "অন্যান্য",
"Overview": "বিবরণ",
"Parameters": "প্যারামিটারসমূহ",
"Password": "পাসওয়ার্ড",
"PDF document (.pdf)": "",
"PDF document (.pdf)": "PDF ডকুমেন্ট (.pdf)",
"PDF Extract Images (OCR)": "পিডিএফ এর ছবি থেকে লেখা বের করুন (OCR)",
"pending": "অপেক্ষমান",
"Permission denied when accessing microphone: {{error}}": "মাইক্রোফোন ব্যবহারের অনুমতি পাওয়া যায়নি: {{error}}",
"Personalization": "",
"Plain text (.txt)": "",
"Personalization": "ডিজিটাল বাংলা",
"Plain text (.txt)": "প্লায়েন টেক্সট (.txt)",
"Playground": "খেলাঘর",
"Positive attitude": "",
"Previous 30 days": "",
"Previous 7 days": "",
"Profile Image": "",
"Prompt": "",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
"Positive attitude": "পজিটিভ আক্রমণ",
"Previous 30 days": "পূর্ব ৩০ দিন",
"Previous 7 days": "পূর্ব ৭ দিন",
"Profile Image": "প্রোফাইল ইমেজ",
"Prompt": "প্রম্প্ট",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "প্রম্প্ট (উদাহরণস্বরূপ, আমি রোমান ইমপার্টের সম্পর্কে একটি উপস্থিতি জানতে বল)",
"Prompt Content": "প্রম্পট কন্টেন্ট",
"Prompt suggestions": "প্রম্পট সাজেশনসমূহ",
"Prompts": "প্রম্পটসমূহ",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com থেকে \"{{searchValue}}\" টানুন",
"Pull a model from Ollama.com": "Ollama.com থেকে একটি টেনে আনুন আনুন",
"Pull Progress": "Pull চলমান",
"Query Params": "Query প্যারামিটারসমূহ",
"RAG Template": "RAG টেম্পলেট",
"Raw Format": "Raw ফরম্যাট",
"Read Aloud": "",
"Read Aloud": "পড়াশোনা করুন",
"Record voice": "ভয়েস রেকর্ড করুন",
"Redirecting you to OpenWebUI Community": "আপনাকে OpenWebUI কমিউনিটিতে পাঠানো হচ্ছে",
"Refused when it shouldn't have": "",
"Regenerate": "",
"Refused when it shouldn't have": "যদি উপযুক্ত নয়, তবে রেজিগেনেট করা হচ্ছে",
"Regenerate": "রেজিগেনেট করুন",
"Release Notes": "রিলিজ নোটসমূহ",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Remove": "রিমুভ করুন",
"Remove Model": "মডেল রিমুভ করুন",
"Rename": "রেনেম",
"Repeat Last N": "রিপিট Last N",
"Repeat Penalty": "রিপিট প্যানাল্টি",
"Request Mode": "রিকোয়েস্ট মোড",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reranking Model": "রির্যাক্টিং মডেল",
"Reranking model disabled": "রির্যাক্টিং মডেল নিষ্ক্রিয় করা",
"Reranking model set to \"{{reranking_model}}\"": "রির ্যাঙ্কিং মডেল \"{{reranking_model}}\" -এ সেট করা আছে",
"Reset Vector Storage": "ভেক্টর স্টোরেজ রিসেট করুন",
"Response AutoCopy to Clipboard": "রেসপন্সগুলো স্বয়ংক্রিভাবে ক্লিপবোর্ডে কপি হবে",
"Role": "পদবি",
"Rosé Pine": "রোজ পাইন",
"Rosé Pine Dawn": "ভোরের রোজ পাইন",
"RTL": "",
"RTL": "RTL",
"Save": "সংরক্ষণ",
"Save & Create": "সংরক্ষণ এবং তৈরি করুন",
"Save & Update": "সংরক্ষণ এবং আপডেট করুন",
......@@ -379,7 +379,7 @@
"Scan complete!": "স্ক্যান সম্পন্ন হয়েছে!",
"Scan for documents from {{path}}": "ডকুমেন্টসমূহের জন্য {{path}} স্ক্যান করুন",
"Search": "অনুসন্ধান",
"Search a model": "",
"Search a model": "মডেল অনুসন্ধান করুন",
"Search Documents": "ডকুমেন্টসমূহ অনুসন্ধান করুন",
"Search Prompts": "প্রম্পটসমূহ অনুসন্ধান করুন",
"Search Results": "",
......@@ -391,35 +391,35 @@
"Select a model": "একটি মডেল নির্বাচন করুন",
"Select an Ollama instance": "একটি Ollama ইন্সট্যান্স নির্বাচন করুন",
"Select model": "মডেল নির্বাচন করুন",
"Send": "",
"Send": "পাঠান",
"Send a Message": "একটি মেসেজ পাঠান",
"Send message": "মেসেজ পাঠান",
"September": "",
"September": "সেপ্টেম্বর",
"Server connection verified": "সার্ভার কানেকশন যাচাই করা হয়েছে",
"Set as default": "ডিফল্ট হিসেবে নির্ধারণ করুন",
"Set Default Model": "ডিফল্ট মডেল নির্ধারণ করুন",
"Set embedding model (e.g. {{model}})": "",
"Set embedding model (e.g. {{model}})": "ইমেম্বিং মডেল নির্ধারণ করুন (উদাহরণ {{model}})",
"Set Image Size": "ছবির সাইজ নির্ধারণ করুন",
"Set Model": "মডেল নির্ধারণ করুন",
"Set reranking model (e.g. {{model}})": "",
"Set reranking model (e.g. {{model}})": "রি-র্যাংকিং মডেল নির্ধারণ করুন (উদাহরণ {{model}})",
"Set Steps": "পরবর্তী ধাপসমূহ",
"Set Task Model": "",
"Set Voice": "কন্ঠস্বর নির্ধারণ করুন",
"Settings": "সেটিংসমূহ",
"Settings saved successfully!": "সেটিংগুলো সফলভাবে সংরক্ষিত হয়েছে",
"Share": "",
"Share Chat": "",
"Share": "শেয়ার করুন",
"Share Chat": "চ্যাট শেয়ার করুন",
"Share to OpenWebUI Community": "OpenWebUI কমিউনিটিতে শেয়ার করুন",
"short-summary": "সংক্ষিপ্ত বিবরণ",
"Show": "দেখান",
"Show Additional Params": "অতিরিক্ত প্যারামিটারগুলো দেখান",
"Show shortcuts": "শর্টকাটগুলো দেখান",
"Showcased creativity": "",
"Showcased creativity": "সৃজনশীলতা প্রদর্শন",
"sidebar": "সাইডবার",
"Sign in": "সাইন ইন",
"Sign Out": "সাইন আউট",
"Sign up": "সাইন আপ",
"Signing in": "",
"Signing in": "সাইন ইন",
"Source": "উৎস",
"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
......@@ -427,37 +427,37 @@
"Stop Sequence": "সিকোয়েন্স থামান",
"STT Settings": "STT সেটিংস",
"Submit": "সাবমিট",
"Subtitle (e.g. about the Roman Empire)": "",
"Subtitle (e.g. about the Roman Empire)": "সাবটাইটল (রোমান ইম্পার্টের সম্পর্কে)",
"Success": "সফল",
"Successfully updated.": "সফলভাবে আপডেট হয়েছে",
"Suggested": "",
"Suggested": "প্রস্তাবিত",
"Sync All": "সব সিংক্রোনাইজ করুন",
"System": "সিস্টেম",
"System Prompt": "সিস্টেম প্রম্পট",
"Tags": "ট্যাগসমূহ",
"Tell us more:": "",
"Tell us more:": "আরও বলুন:",
"Temperature": "তাপমাত্রা",
"Template": "টেম্পলেট",
"Text Completion": "লেখা সম্পন্নকরণ",
"Text-to-Speech Engine": "টেক্সট-টু-স্পিচ ইঞ্জিন",
"Tfs Z": "Tfs Z",
"Thanks for your feedback!": "",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
"Thanks for your feedback!": "আপনার মতামত ধন্যবাদ!",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "স্কোর একটি 0.0 (0%) এবং 1.0 (100%) এর মধ্যে একটি মান হওয়া উচিত।",
"Theme": "থিম",
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "এটা নিশ্চিত করে যে, আপনার গুরুত্বপূর্ণ আলোচনা নিরাপদে আপনার ব্যাকএন্ড ডেটাবেজে সংরক্ষিত আছে। ধন্যবাদ!",
"This setting does not sync across browsers or devices.": "এই সেটিং অন্যন্য ব্রাউজার বা ডিভাইসের সাথে সিঙ্ক্রোনাইজ নয় না।",
"Thorough explanation": "",
"Thorough explanation": "পুঙ্খানুপুঙ্খ ব্যাখ্যা",
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "পরামর্শ: একাধিক ভেরিয়েবল স্লট একের পর এক রিপ্লেস করার জন্য চ্যাট ইনপুটে কিবোর্ডের Tab বাটন ব্যবহার করুন।",
"Title": "শিরোনাম",
"Title (e.g. Tell me a fun fact)": "",
"Title (e.g. Tell me a fun fact)": "শিরোনাম (একটি উপস্থিতি বিবরণ জানান)",
"Title Auto-Generation": "স্বয়ংক্রিয় শিরোনামগঠন",
"Title cannot be an empty string.": "",
"Title cannot be an empty string.": "শিরোনাম অবশ্যই একটি পাশাপাশি শব্দ হতে হবে।",
"Title Generation Prompt": "শিরোনামগঠন প্রম্পট",
"to": "প্রতি",
"To access the available model names for downloading,": "ডাউনলোডের জন্য এভেইলএবল মডেলের নামগুলো এক্সেস করতে,",
"To access the GGUF models available for downloading,": "ডাউলোডের জন্য এভেইলএবল GGUF মডেলগুলো এক্সেস করতে,",
"to chat input.": "চ্যাট ইনপুটে",
"Today": "",
"Today": "আজ",
"Toggle settings": "সেটিংস টোগল",
"Toggle sidebar": "সাইডবার টোগল",
"Top K": "Top K",
......@@ -467,7 +467,7 @@
"Type Hugging Face Resolve (Download) URL": "Hugging Face থেকে ডাউনলোড করার ইউআরএল টাইপ করুন",
"Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো",
"Update and Copy Link": "",
"Update and Copy Link": "আপডেট এবং লিংক কপি করুন",
"Update password": "পাসওয়ার্ড আপডেট করুন",
"Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন",
"Upload files": "ফাইলগুলো আপলোড করুন",
......@@ -484,28 +484,28 @@
"variable": "ভেরিয়েবল",
"variable to have them replaced with clipboard content.": "ক্লিপবোর্ডের কন্টেন্ট দিয়ে যেই ভেরিয়েবল রিপ্লেস করা যাবে।",
"Version": "ভার্সন",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "সতর্কীকরণ: আপনি যদি আপনার এম্বেডিং মডেল আপডেট বা পরিবর্তন করেন, তাহলে আপনাকে সমস্ত নথি পুনরায় আমদানি করতে হবে।.",
"Web": "ওয়েব",
"Web Loader Settings": "",
"Web Params": "",
"Web Loader Settings": "ওয়েব লোডার সেটিংস",
"Web Params": "ওয়েব প্যারামিটারসমূহ",
"Web Search Disabled": "",
"Web Search Enabled": "",
"Webhook URL": "",
"Webhook URL": "ওয়েবহুক URL",
"WebUI Add-ons": "WebUI এড-অনসমূহ",
"WebUI Settings": "WebUI সেটিংসমূহ",
"WebUI will make requests to": "WebUI যেখানে রিকোয়েস্ট পাঠাবে",
"What’s New in": "এতে নতুন কী",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "যদি হিস্টোরি বন্ধ থাকে তাহলে এই ব্রাউজারের নতুন চ্যাটগুলো আপনার কোন ডিভাইসের হিস্টোরিতেই দেখা যাবে না।",
"Whisper (Local)": "Whisper (লোকাল)",
"Workspace": "",
"Workspace": "ওয়ার্কস্পেস",
"Write a prompt suggestion (e.g. Who are you?)": "একটি প্রম্পট সাজেশন লিখুন (যেমন Who are you?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "৫০ শব্দের মধ্যে [topic or keyword] এর একটি সারসংক্ষেপ লিখুন।",
"Yesterday": "",
"You": "",
"You have no archived conversations.": "",
"You have shared this chat": "",
"Yesterday": "আগামী",
"You": "আপনি",
"You have no archived conversations.": "আপনার কোনও আর্কাইভ করা কথোপকথন নেই।",
"You have shared this chat": "আপনি এই চ্যাটটি শেয়ার করেছেন",
"You're a helpful assistant.": "আপনি একজন উপকারী এসিস্ট্যান্ট",
"You're now logged in.": "আপনি এখন লগইন করা অবস্থায় আছেন",
"Youtube": "",
"Youtube Loader Settings": ""
"Youtube": "YouTube",
"Youtube Loader Settings": "YouTube লোডার সেটিংস"
}
......@@ -4,14 +4,14 @@
"(e.g. `sh webui.sh --api`)": "(p. ex. `sh webui.sh --api`)",
"(latest)": "(últim)",
"{{modelName}} is thinking...": "{{modelName}} està pensant...",
"{{user}}'s Chats": "",
"{{user}}'s Chats": "{{user}}'s Chats",
"{{webUIName}} Backend Required": "Es requereix Backend de {{webUIName}}",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"a user": "un usuari",
"About": "Sobre",
"Account": "Compte",
"Accurate information": "",
"Add": "",
"Accurate information": "Informació precisa",
"Add": "Afegir",
"Add a model": "Afegeix un model",
"Add a model tag name": "Afegeix un nom d'etiqueta de model",
"Add a short description about what this modelfile does": "Afegeix una descripció curta del que fa aquest arxiu de model",
......@@ -20,18 +20,18 @@
"Add custom prompt": "Afegir un prompt personalitzat",
"Add Docs": "Afegeix Documents",
"Add Files": "Afegeix Arxius",
"Add Memory": "",
"Add Memory": "Afegir Memòria",
"Add message": "Afegeix missatge",
"Add Model": "",
"Add Model": "Afegir Model",
"Add Tags": "afegeix etiquetes",
"Add User": "",
"Add User": "Afegir Usuari",
"Adjusting these settings will apply changes universally to all users.": "Ajustar aquests paràmetres aplicarà canvis de manera universal a tots els usuaris.",
"admin": "administrador",
"Admin Panel": "Panell d'Administració",
"Admin Settings": "Configuració d'Administració",
"Advanced Parameters": "Paràmetres Avançats",
"all": "tots",
"All Documents": "",
"All Documents": "Tots els Documents",
"All Users": "Tots els Usuaris",
"Allow": "Permet",
"Allow Chat Deletion": "Permet la Supressió del Xat",
......@@ -39,38 +39,38 @@
"Already have an account?": "Ja tens un compte?",
"an assistant": "un assistent",
"and": "i",
"and create a new shared link.": "",
"and create a new shared link.": "i crear un nou enllaç compartit.",
"API Base URL": "URL Base de l'API",
"API Key": "Clau de l'API",
"API Key created.": "",
"API keys": "",
"API Key created.": "Clau de l'API creada.",
"API keys": "Claus de l'API",
"API RPM": "RPM de l'API",
"April": "",
"Archive": "",
"April": "Abril",
"Archive": "Arxiu",
"Archived Chats": "Arxiu d'historial de xat",
"are allowed - Activate this command by typing": "estan permesos - Activa aquesta comanda escrivint",
"Are you sure?": "Estàs segur?",
"Attach file": "Adjuntar arxiu",
"Attention to detail": "Detall atent",
"Audio": "Àudio",
"August": "",
"August": "Agost",
"Auto-playback response": "Resposta de reproducció automàtica",
"Auto-send input after 3 sec.": "Enviar entrada automàticament després de 3 segons",
"AUTOMATIC1111 Base URL": "URL Base AUTOMATIC1111",
"AUTOMATIC1111 Base URL is required.": "Es requereix l'URL Base AUTOMATIC1111.",
"available!": "disponible!",
"Back": "Enrere",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Bad Response": "Resposta Erroni",
"before": "abans",
"Being lazy": "Ser l'estupidez",
"Builder Mode": "Mode Constructor",
"Bypass SSL verification for Websites": "",
"Bypass SSL verification for Websites": "Desactivar la verificació SSL per a l'accés a l'Internet",
"Cancel": "Cancel·la",
"Categories": "Categories",
"Change Password": "Canvia la Contrasenya",
"Chat": "Xat",
"Chat Bubble UI": "",
"Chat direction": "",
"Chat Bubble UI": "Chat Bubble UI",
"Chat direction": "Direcció del Xat",
"Chat History": "Històric del Xat",
"Chat History is off for this browser.": "L'historial de xat està desactivat per a aquest navegador.",
"Chats": "Xats",
......@@ -83,65 +83,65 @@
"Chunk Size": "Mida del Bloc",
"Citation": "Citació",
"Click here for help.": "Fes clic aquí per ajuda.",
"Click here to": "",
"Click here to": "Fes clic aquí per",
"Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.",
"Click here to select": "Fes clic aquí per seleccionar",
"Click here to select a csv file.": "",
"Click here to select a csv file.": "Fes clic aquí per seleccionar un fitxer csv.",
"Click here to select documents.": "Fes clic aquí per seleccionar documents.",
"click here.": "fes clic aquí.",
"Click on the user role button to change a user's role.": "Fes clic al botó de rol d'usuari per canviar el rol d'un usuari.",
"Close": "Tanca",
"Collection": "Col·lecció",
"ComfyUI": "",
"ComfyUI Base URL": "",
"ComfyUI Base URL is required.": "",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "URL base de ComfyUI",
"ComfyUI Base URL is required.": "URL base de ComfyUI és obligatòria.",
"Command": "Comanda",
"Confirm Password": "Confirma la Contrasenya",
"Connections": "Connexions",
"Content": "Contingut",
"Context Length": "Longitud del Context",
"Continue Response": "",
"Continue Response": "Continua la Resposta",
"Conversation Mode": "Mode de Conversa",
"Copied shared chat URL to clipboard!": "",
"Copy": "",
"Copied shared chat URL to clipboard!": "S'ha copiat l'URL compartida al porta-retalls!",
"Copy": "Copiar",
"Copy last code block": "Copia l'últim bloc de codi",
"Copy last response": "Copia l'última resposta",
"Copy Link": "",
"Copy Link": "Copiar l'enllaç",
"Copying to clipboard was successful!": "La còpia al porta-retalls ha estat exitosa!",
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa de 3-5 paraules com a capçalera per a la següent consulta, seguint estrictament el límit de 3-5 paraules i evitant l'ús de la paraula 'títol':",
"Create a modelfile": "Crea un fitxer de model",
"Create Account": "Crea un Compte",
"Create new key": "",
"Create new secret key": "",
"Create new key": "Crea una nova clau",
"Create new secret key": "Crea una nova clau secreta",
"Created at": "Creat el",
"Created At": "",
"Created At": "Creat el",
"Current Model": "Model Actual",
"Current Password": "Contrasenya Actual",
"Custom": "Personalitzat",
"Customize Ollama models for a specific purpose": "Personalitza els models Ollama per a un propòsit específic",
"Dark": "Fosc",
"Dashboard": "",
"Dashboard": "Tauler",
"Database": "Base de Dades",
"December": "",
"December": "Desembre",
"Default": "Per defecte",
"Default (Automatic1111)": "Per defecte (Automatic1111)",
"Default (SentenceTransformers)": "",
"Default (SentenceTransformers)": "Per defecte (SentenceTransformers)",
"Default (Web API)": "Per defecte (Web API)",
"Default model updated": "Model per defecte actualitzat",
"Default Prompt Suggestions": "Suggeriments de Prompt Per Defecte",
"Default User Role": "Rol d'Usuari Per Defecte",
"delete": "esborra",
"Delete": "",
"Delete": "Esborra",
"Delete a model": "Esborra un model",
"Delete chat": "Esborra xat",
"Delete Chat": "",
"Delete Chat": "Esborra Xat",
"Delete Chats": "Esborra Xats",
"delete this link": "",
"Delete User": "",
"delete this link": "Esborra aquest enllaç",
"Delete User": "Esborra Usuari",
"Deleted {{deleteModelTag}}": "Esborrat {{deleteModelTag}}",
"Deleted {{tagName}}": "",
"Deleted {{tagName}}": "Esborrat {{tagName}}",
"Description": "Descripció",
"Didn't fully follow instructions": "",
"Didn't fully follow instructions": "No s'ha completat els instruccions",
"Disabled": "Desactivat",
"Discover a modelfile": "Descobreix un fitxer de model",
"Discover a prompt": "Descobreix un prompt",
......@@ -154,29 +154,29 @@
"does not make any external connections, and your data stays securely on your locally hosted server.": "no realitza connexions externes, i les teves dades romanen segures al teu servidor allotjat localment.",
"Don't Allow": "No Permetre",
"Don't have an account?": "No tens un compte?",
"Don't like the style": "",
"Download": "",
"Download canceled": "",
"Don't like the style": "No t'agrada l'estil?",
"Download": "Descarregar",
"Download canceled": "Descàrrega cancel·lada",
"Download Database": "Descarrega Base de Dades",
"Drop any files here to add to the conversation": "Deixa qualsevol arxiu aquí per afegir-lo a la conversa",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s','10m'. Les unitats de temps vàlides són 's', 'm', 'h'.",
"Edit": "",
"Edit": "Editar",
"Edit Doc": "Edita Document",
"Edit User": "Edita Usuari",
"Email": "Correu electrònic",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Embedding Model": "Model d'embutiment",
"Embedding Model Engine": "Motor de model d'embutiment",
"Embedding model set to \"{{embedding_model}}\"": "Model d'embutiment configurat a \"{{embedding_model}}\"",
"Enable Chat History": "Activa Historial de Xat",
"Enable New Sign Ups": "Permet Noves Inscripcions",
"Enabled": "Activat",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assegura't que el fitxer CSV inclou 4 columnes en aquest ordre: Nom, Correu Electrònic, Contrasenya, Rol.",
"Enter {{role}} message here": "Introdueix aquí el missatge de {{role}}",
"Enter a detail about yourself for your LLMs to recall": "",
"Enter a detail about yourself for your LLMs to recall": "Introdueix un detall sobre tu per que els LLMs puguin recordar-te",
"Enter Chunk Overlap": "Introdueix el Solapament de Blocs",
"Enter Chunk Size": "Introdueix la Mida del Bloc",
"Enter Image Size (e.g. 512x512)": "Introdueix la Mida de la Imatge (p. ex. 512x512)",
"Enter language codes": "",
"Enter language codes": "Introdueix els codis de llenguatge",
"Enter LiteLLM API Base URL (litellm_params.api_base)": "Introdueix l'URL Base de LiteLLM API (litellm_params.api_base)",
"Enter LiteLLM API Key (litellm_params.api_key)": "Introdueix la Clau de LiteLLM API (litellm_params.api_key)",
"Enter LiteLLM API RPM (litellm_params.rpm)": "Introdueix RPM de LiteLLM API (litellm_params.rpm)",
......@@ -184,47 +184,47 @@
"Enter Max Tokens (litellm_params.max_tokens)": "Introdueix el Màxim de Tokens (litellm_params.max_tokens)",
"Enter model tag (e.g. {{modelTag}})": "Introdueix l'etiqueta del model (p. ex. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "Introdueix el Nombre de Passos (p. ex. 50)",
"Enter Score": "",
"Enter Score": "Introdueix el Puntuació",
"Enter stop sequence": "Introdueix la seqüència de parada",
"Enter Top K": "Introdueix Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix l'URL (p. ex. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter URL (e.g. http://localhost:11434)": "Introdueix l'URL (p. ex. http://localhost:11434)",
"Enter Your Email": "Introdueix el Teu Correu Electrònic",
"Enter Your Full Name": "Introdueix el Teu Nom Complet",
"Enter Your Password": "Introdueix la Teva Contrasenya",
"Enter Your Role": "",
"Enter Your Role": "Introdueix el Teu Ròl",
"Experimental": "Experimental",
"Export All Chats (All Users)": "Exporta Tots els Xats (Tots els Usuaris)",
"Export Chats": "Exporta Xats",
"Export Documents Mapping": "Exporta el Mapatge de Documents",
"Export Modelfiles": "Exporta Fitxers de Model",
"Export Prompts": "Exporta Prompts",
"Failed to create API Key.": "",
"Failed to create API Key.": "No s'ha pogut crear la clau d'API.",
"Failed to read clipboard contents": "No s'ha pogut llegir el contingut del porta-retalls",
"February": "",
"Feel free to add specific details": "",
"February": "Febrer",
"Feel free to add specific details": "Siusplau, afegeix detalls específics",
"File Mode": "Mode Arxiu",
"File not found.": "Arxiu no trobat.",
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "S'ha detectat la suplantació d'identitat d'empremtes digitals: no es poden utilitzar les inicials com a avatar. Per defecte a la imatge de perfil predeterminada.",
"Fluidly stream large external response chunks": "Transmita con fluidez grandes fragmentos de respuesta externa",
"Focus chat input": "Enfoca l'entrada del xat",
"Followed instructions perfectly": "",
"Followed instructions perfectly": "Siguiu les instruccions perfeicte",
"Format your variables using square brackets like this:": "Formata les teves variables utilitzant claudàtors així:",
"From (Base Model)": "Des de (Model Base)",
"Full Screen Mode": "Mode de Pantalla Completa",
"General": "General",
"General Settings": "Configuració General",
"Generating search query": "",
"Generation Info": "",
"Good Response": "",
"h:mm a": "",
"has no conversations.": "",
"Generation Info": "Informació de Generació",
"Good Response": "Resposta bona",
"h:mm a": "h:mm a",
"has no conversations.": "no té converses.",
"Hello, {{name}}": "Hola, {{name}}",
"Help": "",
"Help": "Ajuda",
"Hide": "Amaga",
"Hide Additional Params": "Amaga Paràmetres Addicionals",
"How can I help you today?": "Com et puc ajudar avui?",
"Hybrid Search": "",
"Hybrid Search": "Cerca Hibrida",
"Image Generation (Experimental)": "Generació d'Imatges (Experimental)",
"Image Generation Engine": "Motor de Generació d'Imatges",
"Image Settings": "Configuració d'Imatges",
......@@ -236,45 +236,45 @@
"Include `--api` flag when running stable-diffusion-webui": "Inclou la bandera `--api` quan executis stable-diffusion-webui",
"Input commands": "Entra ordres",
"Interface": "Interfície",
"Invalid Tag": "",
"January": "",
"Invalid Tag": "Etiqueta Inválida",
"January": "Gener",
"join our Discord for help.": "uneix-te al nostre Discord per ajuda.",
"JSON": "JSON",
"July": "",
"June": "",
"July": "Juliol",
"June": "Juny",
"JWT Expiration": "Expiració de JWT",
"JWT Token": "Token JWT",
"Keep Alive": "Mantén Actiu",
"Keyboard shortcuts": "Dreceres de Teclat",
"Language": "Idioma",
"Last Active": "",
"Last Active": "Últim Actiu",
"Light": "Clar",
"Listening...": "Escoltant...",
"LLMs can make mistakes. Verify important information.": "Els LLMs poden cometre errors. Verifica la informació important.",
"LTR": "",
"LTR": "LTR",
"Made by OpenWebUI Community": "Creat per la Comunitat OpenWebUI",
"Make sure to enclose them with": "Assegura't d'envoltar-los amb",
"Manage LiteLLM Models": "Gestiona Models LiteLLM",
"Manage Models": "Gestiona Models",
"Manage Ollama Models": "Gestiona Models Ollama",
"March": "",
"March": "Març",
"Max Tokens": "Màxim de Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es poden descarregar un màxim de 3 models simultàniament. Si us plau, prova-ho més tard.",
"May": "",
"Memories accessible by LLMs will be shown here.": "",
"Memory": "",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
"Minimum Score": "",
"May": "Maig",
"Memories accessible by LLMs will be shown here.": "Els memòries accessible per a LLMs es mostraran aquí.",
"Memory": "Memòria",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Els missatges que envieu després de crear el vostre enllaç no es compartiran. Els usuaris amb l'URL podran veure el xat compartit.",
"Minimum Score": "Puntuació mínima",
"Mirostat": "Mirostat",
"Mirostat Eta": "Eta de Mirostat",
"Mirostat Tau": "Tau de Mirostat",
"MMMM DD, YYYY": "DD de MMMM, YYYY",
"MMMM DD, YYYY HH:mm": "",
"MMMM DD, YYYY HH:mm": "DD de MMMM, YYYY HH:mm",
"Model '{{modelName}}' has been successfully downloaded.": "El model '{{modelName}}' s'ha descarregat amb èxit.",
"Model '{{modelTag}}' is already in queue for downloading.": "El model '{{modelTag}}' ja està en cua per ser descarregat.",
"Model {{modelId}} not found": "Model {{modelId}} no trobat",
"Model {{modelName}} already exists.": "El model {{modelName}} ja existeix.",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "S'ha detectat el camí del sistema de fitxers del model. És necessari un nom curt del model per a actualitzar, no es pot continuar.",
"Model Name": "Nom del Model",
"Model not selected": "Model no seleccionat",
"Model Tag Name": "Nom de l'Etiqueta del Model",
......@@ -285,28 +285,28 @@
"Modelfile Content": "Contingut del Fitxer de Model",
"Modelfiles": "Fitxers de Model",
"Models": "Models",
"More": "",
"More": "Més",
"Name": "Nom",
"Name Tag": "Etiqueta de Nom",
"Name your modelfile": "Nomena el teu fitxer de model",
"New Chat": "Xat Nou",
"New Password": "Nova Contrasenya",
"No results found": "",
"No results found": "No s'han trobat resultats",
"No search query generated": "",
"No search results found": "",
"No source available": "Sense font disponible",
"Not factually correct": "",
"Not factually correct": "No està clarament correcte",
"Not sure what to add?": "No estàs segur del que afegir?",
"Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Si establiscs una puntuació mínima, la cerca només retornarà documents amb una puntuació major o igual a la puntuació mínima.",
"Notifications": "Notificacions d'Escriptori",
"November": "",
"October": "",
"November": "Novembre",
"October": "Octubre",
"Off": "Desactivat",
"Okay, Let's Go!": "D'acord, Anem!",
"OLED Dark": "",
"Ollama": "",
"Ollama Base URL": "URL Base d'Ollama",
"OLED Dark": "OLED Fosc",
"Ollama": "Ollama",
"Ollama API": "",
"Ollama Version": "Versió d'Ollama",
"On": "Activat",
"Only": "Només",
......@@ -318,59 +318,59 @@
"Open AI": "Open AI",
"Open AI (Dall-E)": "Open AI (Dall-E)",
"Open new chat": "Obre un nou xat",
"OpenAI": "",
"OpenAI": "OpenAI",
"OpenAI API": "API d'OpenAI",
"OpenAI API Config": "",
"OpenAI API Config": "Configuració de l'API d'OpenAI",
"OpenAI API Key is required.": "Es requereix la Clau API d'OpenAI.",
"OpenAI URL/Key required.": "",
"OpenAI URL/Key required.": "URL/Clau d'OpenAI requerides.",
"or": "o",
"Other": "",
"Overview": "",
"Other": "Altres",
"Overview": "Visió general",
"Parameters": "Paràmetres",
"Password": "Contrasenya",
"PDF document (.pdf)": "",
"PDF document (.pdf)": "Document PDF (.pdf)",
"PDF Extract Images (OCR)": "Extreu Imatges de PDF (OCR)",
"pending": "pendent",
"Permission denied when accessing microphone: {{error}}": "Permís denegat en accedir al micròfon: {{error}}",
"Personalization": "",
"Plain text (.txt)": "",
"Personalization": "Personalització",
"Plain text (.txt)": "Text pla (.txt)",
"Playground": "Zona de Jocs",
"Positive attitude": "",
"Previous 30 days": "",
"Previous 7 days": "",
"Profile Image": "",
"Prompt": "",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
"Positive attitude": "Attitudin positiva",
"Previous 30 days": "30 dies anteriors",
"Previous 7 days": "7 dies anteriors",
"Profile Image": "Imatge de perfil",
"Prompt": "Prompt",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (p.ex. diu-me un fàcte divertit sobre l'Imperi Roman)",
"Prompt Content": "Contingut del Prompt",
"Prompt suggestions": "Suggeriments de Prompt",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull \"{{searchValue}}\" from Ollama.com": "Treu \"{{searchValue}}\" de Ollama.com",
"Pull a model from Ollama.com": "Treu un model d'Ollama.com",
"Pull Progress": "Progrés de Tracció",
"Query Params": "Paràmetres de Consulta",
"RAG Template": "Plantilla RAG",
"Raw Format": "Format Brut",
"Read Aloud": "",
"Read Aloud": "Llegiu al voltant",
"Record voice": "Enregistra veu",
"Redirecting you to OpenWebUI Community": "Redirigint-te a la Comunitat OpenWebUI",
"Refused when it shouldn't have": "",
"Regenerate": "",
"Refused when it shouldn't have": "Refusat quan no hauria d'haver-ho",
"Regenerate": "Regenerar",
"Release Notes": "Notes de la Versió",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Remove": "Elimina",
"Remove Model": "Elimina Model",
"Rename": "Canvia el nom",
"Repeat Last N": "Repeteix Últim N",
"Repeat Penalty": "Penalització de Repetició",
"Request Mode": "Mode de Sol·licitud",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reranking Model": "Model de Reranking desactivat",
"Reranking model disabled": "Model de Reranking desactivat",
"Reranking model set to \"{{reranking_model}}\"": "Model de Reranking establert a \"{{reranking_model}}\"",
"Reset Vector Storage": "Reinicia l'Emmagatzematge de Vectors",
"Response AutoCopy to Clipboard": "Resposta AutoCopiar al Portapapers",
"Role": "Rol",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Albada Rosé Pine",
"RTL": "",
"RTL": "RTL",
"Save": "Guarda",
"Save & Create": "Guarda i Crea",
"Save & Update": "Guarda i Actualitza",
......@@ -379,7 +379,7 @@
"Scan complete!": "Escaneig completat!",
"Scan for documents from {{path}}": "Escaneja documents des de {{path}}",
"Search": "Cerca",
"Search a model": "",
"Search a model": "Cerca un model",
"Search Documents": "Cerca Documents",
"Search Prompts": "Cerca Prompts",
"Search Results": "",
......@@ -391,35 +391,35 @@
"Select a model": "Selecciona un model",
"Select an Ollama instance": "Selecciona una instància d'Ollama",
"Select model": "Selecciona un model",
"Send": "",
"Send": "Envia",
"Send a Message": "Envia un Missatge",
"Send message": "Envia missatge",
"September": "",
"September": "Setembre",
"Server connection verified": "Connexió al servidor verificada",
"Set as default": "Estableix com a predeterminat",
"Set Default Model": "Estableix Model Predeterminat",
"Set embedding model (e.g. {{model}})": "",
"Set embedding model (e.g. {{model}})": "Estableix el model d'emboscada (p.ex. {{model}})",
"Set Image Size": "Estableix Mida de la Imatge",
"Set Model": "Estableix Model",
"Set reranking model (e.g. {{model}})": "",
"Set reranking model (e.g. {{model}})": "Estableix el model de reranking (p.ex. {{model}})",
"Set Steps": "Estableix Passos",
"Set Task Model": "",
"Set Voice": "Estableix Veu",
"Settings": "Configuracions",
"Settings saved successfully!": "Configuracions guardades amb èxit!",
"Share": "",
"Share Chat": "",
"Share": "Compartir",
"Share Chat": "Compartir el Chat",
"Share to OpenWebUI Community": "Comparteix amb la Comunitat OpenWebUI",
"short-summary": "resum curt",
"Show": "Mostra",
"Show Additional Params": "Mostra Paràmetres Addicionals",
"Show shortcuts": "Mostra dreceres",
"Showcased creativity": "",
"Showcased creativity": "Mostra la creativitat",
"sidebar": "barra lateral",
"Sign in": "Inicia sessió",
"Sign Out": "Tanca sessió",
"Sign up": "Registra't",
"Signing in": "",
"Signing in": "Iniciant sessió",
"Source": "Font",
"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
"Speech-to-Text Engine": "Motor de Veu a Text",
......@@ -427,37 +427,37 @@
"Stop Sequence": "Atura Seqüència",
"STT Settings": "Configuracions STT",
"Submit": "Envia",
"Subtitle (e.g. about the Roman Empire)": "",
"Subtitle (e.g. about the Roman Empire)": "Subtítol (per exemple, sobre l'Imperi Romà)",
"Success": "Èxit",
"Successfully updated.": "Actualitzat amb èxit.",
"Suggested": "",
"Suggested": "Suggerit",
"Sync All": "Sincronitza Tot",
"System": "Sistema",
"System Prompt": "Prompt del Sistema",
"Tags": "Etiquetes",
"Tell us more:": "",
"Tell us more:": "Dóna'ns més informació:",
"Temperature": "Temperatura",
"Template": "Plantilla",
"Text Completion": "Completació de Text",
"Text-to-Speech Engine": "Motor de Text a Veu",
"Tfs Z": "Tfs Z",
"Thanks for your feedback!": "",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
"Thanks for your feedback!": "Gràcies pel teu comentari!",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "El puntuatge ha de ser un valor entre 0.0 (0%) i 1.0 (100%).",
"Theme": "Tema",
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Això assegura que les teves converses valuoses queden segurament guardades a la teva base de dades backend. Gràcies!",
"This setting does not sync across browsers or devices.": "Aquesta configuració no es sincronitza entre navegadors ni dispositius.",
"Thorough explanation": "",
"Thorough explanation": "Explacació exhaustiva",
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Consell: Actualitza diversos espais de variables consecutivament prement la tecla de tabulació en l'entrada del xat després de cada reemplaçament.",
"Title": "Títol",
"Title (e.g. Tell me a fun fact)": "",
"Title (e.g. Tell me a fun fact)": "Títol (p. ex. diu-me un fet divertit)",
"Title Auto-Generation": "Auto-Generació de Títol",
"Title cannot be an empty string.": "",
"Title cannot be an empty string.": "El títol no pot ser una cadena buida.",
"Title Generation Prompt": "Prompt de Generació de Títol",
"to": "a",
"To access the available model names for downloading,": "Per accedir als noms dels models disponibles per descarregar,",
"To access the GGUF models available for downloading,": "Per accedir als models GGUF disponibles per descarregar,",
"to chat input.": "a l'entrada del xat.",
"Today": "",
"Today": "Avui",
"Toggle settings": "Commuta configuracions",
"Toggle sidebar": "Commuta barra lateral",
"Top K": "Top K",
......@@ -467,7 +467,7 @@
"Type Hugging Face Resolve (Download) URL": "Escriu URL de Resolució (Descàrrega) de Hugging Face",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uf! Hi va haver un problema connectant-se a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipus d'Arxiu Desconegut '{{file_type}}', però acceptant i tractant com a text pla",
"Update and Copy Link": "",
"Update and Copy Link": "Actualitza i Copia enllaç",
"Update password": "Actualitza contrasenya",
"Upload a GGUF model": "Puja un model GGUF",
"Upload files": "Puja arxius",
......@@ -475,7 +475,7 @@
"URL Mode": "Mode URL",
"Use '#' in the prompt input to load and select your documents.": "Utilitza '#' a l'entrada del prompt per carregar i seleccionar els teus documents.",
"Use Gravatar": "Utilitza Gravatar",
"Use Initials": "",
"Use Initials": "Utilitza Inicials",
"user": "usuari",
"User Permissions": "Permisos d'Usuari",
"Users": "Usuaris",
......@@ -484,28 +484,28 @@
"variable": "variable",
"variable to have them replaced with clipboard content.": "variable per tenir-les reemplaçades amb el contingut del porta-retalls.",
"Version": "Versió",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avís: Si actualitzeu o canvieu el model d'incrustació, haureu de tornar a importar tots els documents.",
"Web": "Web",
"Web Loader Settings": "",
"Web Params": "",
"Web Loader Settings": "Configuració del carregador web",
"Web Params": "Paràmetres web",
"Web Search Disabled": "",
"Web Search Enabled": "",
"Webhook URL": "",
"Webhook URL": "URL del webhook",
"WebUI Add-ons": "Complements de WebUI",
"WebUI Settings": "Configuració de WebUI",
"WebUI will make requests to": "WebUI farà peticions a",
"What’s New in": "Què hi ha de Nou en",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Quan l'historial està desactivat, els nous xats en aquest navegador no apareixeran en el teu historial en cap dels teus dispositius.",
"Whisper (Local)": "Whisper (Local)",
"Workspace": "",
"Workspace": "Treball",
"Write a prompt suggestion (e.g. Who are you?)": "Escriu una suggerència de prompt (p. ex. Qui ets tu?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].",
"Yesterday": "",
"You": "",
"You have no archived conversations.": "",
"You have shared this chat": "",
"Yesterday": "Ayer",
"You": "Tu",
"You have no archived conversations.": "No tens converses arxivades.",
"You have shared this chat": "Has compartit aquest xat",
"You're a helpful assistant.": "Ets un assistent útil.",
"You're now logged in.": "Ara estàs connectat.",
"Youtube": "",
"Youtube Loader Settings": ""
"Youtube": "Youtube",
"Youtube Loader Settings": "Configuració del carregador de Youtube"
}
{
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' o '-1' para walay expiration.",
"(Beta)": "(Beta)",
"(e.g. `sh webui.sh --api`)": "(pananglitan `sh webui.sh --api`)",
"(latest)": "",
"{{modelName}} is thinking...": "{{modelName}} hunahunaa...",
"{{user}}'s Chats": "",
"{{webUIName}} Backend Required": "Backend {{webUIName}} gikinahanglan",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"a user": "usa ka user",
"About": "Mahitungod sa",
"Account": "Account",
"Accurate information": "",
"Add": "",
"Add a model": "Pagdugang ug template",
"Add a model tag name": "Pagdugang usa ka ngalan sa tag alang sa template",
"Add a short description about what this modelfile does": "Pagdugang usa ka mubo nga paghulagway kung unsa ang gibuhat sa kini nga template file",
"Add a short title for this prompt": "Pagdugang og usa ka mubo nga titulo alang niini nga prompt",
"Add a tag": "Pagdugang og tag",
"Add custom prompt": "Pagdugang og custom prompt",
"Add Docs": "Pagdugang og mga dokumento",
"Add Files": "Idugang ang mga file",
"Add Memory": "",
"Add message": "Pagdugang og mensahe",
"Add Model": "",
"Add Tags": "idugang ang mga tag",
"Add User": "",
"Adjusting these settings will apply changes universally to all users.": "Ang pag-adjust niini nga mga setting magamit ang mga pagbag-o sa tanan nga tiggamit.",
"admin": "Administrator",
"Admin Panel": "Admin Panel",
"Admin Settings": "Mga setting sa administratibo",
"Advanced Parameters": "advanced settings",
"all": "tanan",
"All Documents": "",
"All Users": "Ang tanan nga mga tiggamit",
"Allow": "Sa pagtugot",
"Allow Chat Deletion": "Tugoti nga mapapas ang mga chat",
"alphanumeric characters and hyphens": "alphanumeric nga mga karakter ug hyphen",
"Already have an account?": "Naa na kay account ?",
"an assistant": "usa ka katabang",
"and": "Ug",
"and create a new shared link.": "",
"API Base URL": "API Base URL",
"API Key": "yawe sa API",
"API Key created.": "",
"API keys": "",
"API RPM": "RPM API",
"April": "",
"Archive": "",
"Archived Chats": "pagrekord sa chat",
"are allowed - Activate this command by typing": "gitugotan - I-enable kini nga sugo pinaagi sa pag-type",
"Are you sure?": "Sigurado ka ?",
"Attach file": "Ilakip ang usa ka file",
"Attention to detail": "Pagtagad sa mga detalye",
"Audio": "Audio",
"August": "",
"Auto-playback response": "Autoplay nga tubag",
"Auto-send input after 3 sec.": "Awtomatikong ipadala ang entry pagkahuman sa 3 segundos.",
"AUTOMATIC1111 Base URL": "Base URL AUTOMATIC1111",
"AUTOMATIC1111 Base URL is required.": "Ang AUTOMATIC1111 base URL gikinahanglan.",
"available!": "magamit!",
"Back": "Balik",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Mode sa Magtutukod",
"Bypass SSL verification for Websites": "",
"Cancel": "Pagkanselar",
"Categories": "Mga kategoriya",
"Change Password": "Usba ang password",
"Chat": "Panaghisgot",
"Chat Bubble UI": "",
"Chat direction": "",
"Chat History": "Kasaysayan sa chat",
"Chat History is off for this browser.": "Ang kasaysayan sa chat gi-disable alang niini nga browser.",
"Chats": "Mga panaghisgot",
"Check Again": "Susiha pag-usab",
"Check for updates": "Susiha ang mga update",
"Checking for updates...": "Pagsusi alang sa mga update...",
"Choose a model before saving...": "Pagpili og template sa dili pa i-save...",
"Chunk Overlap": "Block overlap",
"Chunk Params": "Mga Setting sa Block",
"Chunk Size": "Gidak-on sa block",
"Citation": "Mga kinutlo",
"Click here for help.": "I-klik dinhi alang sa tabang.",
"Click here to": "",
"Click here to check other modelfiles.": "Pag-klik dinhi aron susihon ang ubang mga file sa template.",
"Click here to select": "I-klik dinhi aron makapili",
"Click here to select a csv file.": "",
"Click here to select documents.": "Pag-klik dinhi aron mapili ang mga dokumento.",
"click here.": "I-klik dinhi.",
"Click on the user role button to change a user's role.": "I-klik ang User Role button aron usbon ang role sa user.",
"Close": "Suod nga",
"Collection": "Koleksyon",
"ComfyUI": "",
"ComfyUI Base URL": "",
"ComfyUI Base URL is required.": "",
"Command": "Pag-order",
"Confirm Password": "Kumpirma ang password",
"Connections": "Mga koneksyon",
"Content": "Kontento",
"Context Length": "Ang gitas-on sa konteksto",
"Continue Response": "",
"Conversation Mode": "Talk mode",
"Copied shared chat URL to clipboard!": "",
"Copy": "",
"Copy last code block": "Kopyaha ang katapusang bloke sa code",
"Copy last response": "Kopyaha ang kataposang tubag",
"Copy Link": "",
"Copying to clipboard was successful!": "Ang pagkopya sa clipboard malampuson!",
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Paghimo og mugbo nga 3-5 ka pulong nga sentence isip usa ka ulohan alang sa mosunod nga pangutana, hugot nga pagsunod sa 3-5 ka pulong nga limitasyon ug paglikay sa paggamit sa pulong nga 'titulo':",
"Create a modelfile": "Paghimo ug template file",
"Create Account": "Paghimo og account",
"Create new key": "",
"Create new secret key": "",
"Created at": "Gihimo ang",
"Created At": "",
"Current Model": "Kasamtangang modelo",
"Current Password": "Kasamtangang Password",
"Custom": "Custom",
"Customize Ollama models for a specific purpose": "Ipasibo ang mga template sa Ollama alang sa usa ka piho nga katuyoan",
"Dark": "Ngitngit",
"Dashboard": "",
"Database": "Database",
"December": "",
"Default": "Pinaagi sa default",
"Default (Automatic1111)": "Default (Awtomatiko1111)",
"Default (SentenceTransformers)": "",
"Default (Web API)": "Default (Web API)",
"Default model updated": "Gi-update nga default template",
"Default Prompt Suggestions": "Default nga prompt nga mga sugyot",
"Default User Role": "Default nga Papel sa Gumagamit",
"delete": "DELETE",
"Delete": "",
"Delete a model": "Pagtangtang sa usa ka template",
"Delete chat": "Pagtangtang sa panaghisgot",
"Delete Chat": "",
"Delete Chats": "Pagtangtang sa mga chat",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gipapas",
"Deleted {{tagName}}": "",
"Description": "Deskripsyon",
"Didn't fully follow instructions": "",
"Disabled": "Nabaldado",
"Discover a modelfile": "Pagdiskobre ug template file",
"Discover a prompt": "Pagkaplag usa ka prompt",
"Discover, download, and explore custom prompts": "Pagdiskubre, pag-download ug pagsuhid sa mga naandan nga pag-aghat",
"Discover, download, and explore model presets": "Pagdiskobre, pag-download, ug pagsuhid sa mga preset sa template",
"Display the username instead of You in the Chat": "Ipakita ang username imbes nga 'Ikaw' sa Panaghisgutan",
"Document": "Dokumento",
"Document Settings": "Mga Setting sa Dokumento",
"Documents": "Mga dokumento",
"does not make any external connections, and your data stays securely on your locally hosted server.": "wala maghimo ug eksternal nga koneksyon, ug ang imong data nagpabiling luwas sa imong lokal nga host server.",
"Don't Allow": "Dili tugotan",
"Don't have an account?": "Wala kay account ?",
"Don't like the style": "",
"Download": "",
"Download canceled": "",
"Download Database": "I-download ang database",
"Drop any files here to add to the conversation": "Ihulog ang bisan unsang file dinhi aron idugang kini sa panag-istoryahanay",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ",
"Edit": "",
"Edit Doc": "I-edit ang dokumento",
"Edit User": "I-edit ang tiggamit",
"Email": "E-mail",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "I-enable ang kasaysayan sa chat",
"Enable New Sign Ups": "I-enable ang bag-ong mga rehistro",
"Enabled": "Gipaandar",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
"Enter {{role}} message here": "Pagsulod sa mensahe {{role}} dinhi",
"Enter a detail about yourself for your LLMs to recall": "",
"Enter Chunk Overlap": "Pagsulod sa block overlap",
"Enter Chunk Size": "Isulod ang block size",
"Enter Image Size (e.g. 512x512)": "Pagsulod sa gidak-on sa hulagway (pananglitan 512x512)",
"Enter language codes": "",
"Enter LiteLLM API Base URL (litellm_params.api_base)": "Pagsulod sa LiteLLM API base URL (litelm_params.api_base)",
"Enter LiteLLM API Key (litellm_params.api_key)": "Isulod ang LiteLLM API key (litelm_params.api_key)",
"Enter LiteLLM API RPM (litellm_params.rpm)": "Isulod ang LiteLLM API RPM (litelm_params.rpm)",
"Enter LiteLLM Model (litellm_params.model)": "Pagsulod sa LiteLLM nga modelo (litelm_params.model)",
"Enter Max Tokens (litellm_params.max_tokens)": "Pagsulod sa max nga gidaghanon sa mga token (litelm_params.max_tokens)",
"Enter model tag (e.g. {{modelTag}})": "Pagsulod sa template tag (e.g. {{modelTag}})",
"Enter Number of Steps (e.g. 50)": "Pagsulod sa gidaghanon sa mga lakang (e.g. 50)",
"Enter Score": "",
"Enter stop sequence": "Pagsulod sa katapusan nga han-ay",
"Enter Top K": "Pagsulod sa Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Pagsulod sa URL (e.g. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Pagsulod sa imong e-mail address",
"Enter Your Full Name": "Ibutang ang imong tibuok nga ngalan",
"Enter Your Password": "Ibutang ang imong password",
"Enter Your Role": "",
"Experimental": "Eksperimento",
"Export All Chats (All Users)": "I-export ang tanan nga mga chat (Tanan nga tiggamit)",
"Export Chats": "I-export ang mga chat",
"Export Documents Mapping": "I-export ang pagmapa sa dokumento",
"Export Modelfiles": "I-export ang mga file sa modelo",
"Export Prompts": "Export prompts",
"Failed to create API Key.": "",
"Failed to read clipboard contents": "Napakyas sa pagbasa sa sulod sa clipboard",
"February": "",
"Feel free to add specific details": "",
"File Mode": "File mode",
"File not found.": "Wala makit-an ang file.",
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "",
"Fluidly stream large external response chunks": "Hapsay nga paghatud sa daghang mga tipik sa eksternal nga mga tubag",
"Focus chat input": "Pag-focus sa entry sa diskusyon",
"Followed instructions perfectly": "",
"Format your variables using square brackets like this:": "I-format ang imong mga variable gamit ang square brackets sama niini:",
"From (Base Model)": "Gikan sa (Basic nga modelo)",
"Full Screen Mode": "Full screen mode",
"General": "Heneral",
"General Settings": "kinatibuk-ang mga setting",
"Generating search query": "",
"Generation Info": "",
"Good Response": "",
"h:mm a": "",
"has no conversations.": "",
"Hello, {{name}}": "Maayong buntag, {{name}}",
"Help": "",
"Hide": "Tagoa",
"Hide Additional Params": "Tagoa ang dugang nga mga setting",
"How can I help you today?": "Unsaon nako pagtabang kanimo karon?",
"Hybrid Search": "",
"Image Generation (Experimental)": "Pagmugna og hulagway (Eksperimento)",
"Image Generation Engine": "Makina sa paghimo og imahe",
"Image Settings": "Mga Setting sa Imahen",
"Images": "Mga hulagway",
"Import Chats": "Import nga mga chat",
"Import Documents Mapping": "Import nga pagmapa sa dokumento",
"Import Modelfiles": "Import nga mga file sa modelo",
"Import Prompts": "Import prompt",
"Include `--api` flag when running stable-diffusion-webui": "Iapil ang `--api` nga bandila kung nagdagan nga stable-diffusion-webui",
"Input commands": "Pagsulod sa input commands",
"Interface": "Interface",
"Invalid Tag": "",
"January": "",
"join our Discord for help.": "Apil sa among Discord alang sa tabang.",
"JSON": "JSON",
"July": "",
"June": "",
"JWT Expiration": "Pag-expire sa JWT",
"JWT Token": "JWT token",
"Keep Alive": "Padayon nga aktibo",
"Keyboard shortcuts": "Mga shortcut sa keyboard",
"Language": "Pinulongan",
"Last Active": "",
"Light": "Kahayag",
"Listening...": "Paminaw...",
"LLMs can make mistakes. Verify important information.": "Ang mga LLM mahimong masayop. ",
"LTR": "",
"Made by OpenWebUI Community": "Gihimo sa komunidad sa OpenWebUI",
"Make sure to enclose them with": "Siguruha nga palibutan sila",
"Manage LiteLLM Models": "Pagdumala sa mga modelo sa LiteLLM",
"Manage Models": "Pagdumala sa mga templates",
"Manage Ollama Models": "Pagdumala sa mga modelo sa Ollama",
"March": "",
"Max Tokens": "Maximum nga mga token",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Ang labing taas nga 3 nga mga disenyo mahimong ma-download nga dungan. ",
"May": "",
"Memories accessible by LLMs will be shown here.": "",
"Memory": "",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
"Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "",
"Model '{{modelName}}' has been successfully downloaded.": "Ang modelo'{{modelName}}' malampuson nga na-download.",
"Model '{{modelTag}}' is already in queue for downloading.": "Ang modelo'{{modelTag}}' naa na sa pila para ma-download.",
"Model {{modelId}} not found": "Modelo {{modelId}} wala makit-an",
"Model {{modelName}} already exists.": "Ang modelo {{modelName}} Anaa na.",
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "",
"Model Name": "Ngalan sa Modelo",
"Model not selected": "Wala gipili ang modelo",
"Model Tag Name": "Ngalan sa tag sa modelo",
"Model Whitelisting": "Whitelist sa modelo",
"Model(s) Whitelisted": "Gi-whitelist nga (mga) modelo",
"Modelfile": "File sa template",
"Modelfile Advanced Settings": "Advanced nga template file setting",
"Modelfile Content": "Mga sulod sa template file",
"Modelfiles": "Mga file sa modelo",
"Models": "Mga modelo",
"More": "",
"Name": "Ngalan",
"Name Tag": "Tag sa ngalan",
"Name your modelfile": "Ngalan ang imong template file",
"New Chat": "Bag-ong diskusyon",
"New Password": "Bag-ong Password",
"No results found": "",
"No search query generated": "",
"No search results found": "",
"No source available": "Walay tinubdan nga anaa",
"Not factually correct": "",
"Not sure what to add?": "Dili sigurado kung unsa ang idugang?",
"Not sure what to write? Switch to": "Dili sigurado kung unsa ang isulat? ",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Notifications": "Mga pahibalo sa desktop",
"November": "",
"October": "",
"Off": "Napuo",
"Okay, Let's Go!": "Okay, lakaw na!",
"OLED Dark": "",
"Ollama": "",
"Ollama API": "",
"Ollama Version": "Ollama nga bersyon",
"On": "Gipaandar",
"Only": "Lamang",
"Only alphanumeric characters and hyphens are allowed in the command string.": "Ang alphanumeric nga mga karakter ug hyphen lang ang gitugotan sa command string.",
"Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "Oops! ",
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Oops! ",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Oops! ",
"Open": "Bukas",
"Open AI": "Buksan ang AI",
"Open AI (Dall-E)": "Buksan ang AI (Dall-E)",
"Open new chat": "Ablihi ang bag-ong diskusyon",
"OpenAI": "",
"OpenAI API": "OpenAI API",
"OpenAI API Config": "",
"OpenAI API Key is required.": "Ang yawe sa OpenAI API gikinahanglan.",
"OpenAI URL/Key required.": "",
"or": "O",
"Other": "",
"Overview": "",
"Parameters": "Mga setting",
"Password": "Password",
"PDF document (.pdf)": "",
"PDF Extract Images (OCR)": "PDF Image Extraction (OCR)",
"pending": "gipugngan",
"Permission denied when accessing microphone: {{error}}": "Gidili ang pagtugot sa dihang nag-access sa mikropono: {{error}}",
"Personalization": "",
"Plain text (.txt)": "",
"Playground": "Dulaanan",
"Positive attitude": "",
"Previous 30 days": "",
"Previous 7 days": "",
"Profile Image": "",
"Prompt": "",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
"Prompt Content": "Ang sulod sa prompt",
"Prompt suggestions": "Maabtik nga mga Sugyot",
"Prompts": "Mga aghat",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Pagkuha ug template gikan sa Ollama.com",
"Pull Progress": "Pag-uswag sa pag-download",
"Query Params": "Mga parameter sa pangutana",
"RAG Template": "RAG nga modelo",
"Raw Format": "Hilaw nga pormat",
"Read Aloud": "",
"Record voice": "Irekord ang tingog",
"Redirecting you to OpenWebUI Community": "Gi-redirect ka sa komunidad sa OpenWebUI",
"Refused when it shouldn't have": "",
"Regenerate": "",
"Release Notes": "Release Notes",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Balika ang katapusang N",
"Repeat Penalty": "Balika ang silot",
"Request Mode": "Query mode",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "I-reset ang pagtipig sa vector",
"Response AutoCopy to Clipboard": "Awtomatikong kopya sa tubag sa clipboard",
"Role": "Papel",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Aube Pine Rosé",
"RTL": "",
"Save": "Tipigi",
"Save & Create": "I-save ug Paghimo",
"Save & Update": "I-save ug I-update",
"Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Ang pag-save sa mga chat log direkta sa imong browser storage dili na suportado. ",
"Scan": "Aron ma-scan",
"Scan complete!": "Nakompleto ang pag-scan!",
"Scan for documents from {{path}}": "I-scan ang mga dokumento gikan sa {{path}}",
"Search": "Pagpanukiduki",
"Search a model": "",
"Search Documents": "Pangitaa ang mga dokumento",
"Search Prompts": "Pangitaa ang mga prompt",
"Search Results": "",
"Searching the web for '{{searchQuery}}'": "",
"See readme.md for instructions": "Tan-awa ang readme.md alang sa mga panudlo",
"See what's new": "Tan-awa unsay bag-o",
"Seed": "Binhi",
"Select a mode": "Pagpili og mode",
"Select a model": "Pagpili og modelo",
"Select an Ollama instance": "Pagpili usa ka pananglitan sa Ollama",
"Select model": "Pagpili og modelo",
"Send": "",
"Send a Message": "Magpadala ug mensahe",
"Send message": "Magpadala ug mensahe",
"September": "",
"Server connection verified": "Gipamatud-an nga koneksyon sa server",
"Set as default": "Define pinaagi sa default",
"Set Default Model": "Ibutang ang default template",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Ibutang ang gidak-on sa hulagway",
"Set Model": "I-configure ang template",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Ipasabot ang mga lakang",
"Set Task Model": "",
"Set Voice": "Ibutang ang tingog",
"Settings": "Mga setting",
"Settings saved successfully!": "Malampuson nga na-save ang mga setting!",
"Share": "",
"Share Chat": "",
"Share to OpenWebUI Community": "Ipakigbahin sa komunidad sa OpenWebUI",
"short-summary": "mubo nga summary",
"Show": "Pagpakita",
"Show Additional Params": "Ipakita ang dugang nga mga setting",
"Show shortcuts": "Ipakita ang mga shortcut",
"Showcased creativity": "",
"sidebar": "lateral bar",
"Sign in": "Para maka log in",
"Sign Out": "Pag-sign out",
"Sign up": "Pagrehistro",
"Signing in": "",
"Source": "Tinubdan",
"Speech recognition error: {{error}}": "Sayop sa pag-ila sa tingog: {{error}}",
"Speech-to-Text Engine": "Engine sa pag-ila sa tingog",
"SpeechRecognition API is not supported in this browser.": "Ang SpeechRecognition API wala gisuportahan niini nga browser.",
"Stop Sequence": "Pagkasunod-sunod sa pagsira",
"STT Settings": "Mga setting sa STT",
"Submit": "Isumite",
"Subtitle (e.g. about the Roman Empire)": "",
"Success": "Kalampusan",
"Successfully updated.": "Malampuson nga na-update.",
"Suggested": "",
"Sync All": "I-synchronize ang tanan",
"System": "Sistema",
"System Prompt": "Madasig nga Sistema",
"Tags": "Mga tag",
"Tell us more:": "",
"Temperature": "Temperatura",
"Template": "Modelo",
"Text Completion": "Pagkompleto sa teksto",
"Text-to-Speech Engine": "Text-to-speech nga makina",
"Tfs Z": "Tfs Z",
"Thanks for your feedback!": "",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
"Theme": "Tema",
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Kini nagsiguro nga ang imong bililhon nga mga panag-istoryahanay luwas nga natipig sa imong backend database. ",
"This setting does not sync across browsers or devices.": "Kini nga setting wala mag-sync tali sa mga browser o device.",
"Thorough explanation": "",
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "Sugyot: Pag-update sa daghang variable nga lokasyon nga sunud-sunod pinaagi sa pagpindot sa tab key sa chat entry pagkahuman sa matag puli.",
"Title": "Titulo",
"Title (e.g. Tell me a fun fact)": "",
"Title Auto-Generation": "Awtomatikong paghimo sa titulo",
"Title cannot be an empty string.": "",
"Title Generation Prompt": "Madasig nga henerasyon sa titulo",
"to": "adunay",
"To access the available model names for downloading,": "Aron ma-access ang mga ngalan sa modelo nga ma-download,",
"To access the GGUF models available for downloading,": "Aron ma-access ang mga modelo sa GGUF nga magamit alang sa pag-download,",
"to chat input.": "sa entrada sa iring.",
"Today": "",
"Toggle settings": "I-toggle ang mga setting",
"Toggle sidebar": "I-toggle ang sidebar",
"Top K": "Top K",
"Top P": "Ibabaw nga P",
"Trouble accessing Ollama?": "Adunay mga problema sa pag-access sa Ollama?",
"TTS Settings": "Mga Setting sa TTS",
"Type Hugging Face Resolve (Download) URL": "Pagsulod sa resolusyon (pag-download) URL Hugging Face",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Wala mailhi nga tipo sa file '{{file_type}}', apan gidawat ug gitratar ingon yano nga teksto",
"Update and Copy Link": "",
"Update password": "I-update ang password",
"Upload a GGUF model": "Pag-upload ug modelo sa GGUF",
"Upload files": "Pag-upload og mga file",
"Upload Progress": "Pag-uswag sa Pag-upload",
"URL Mode": "URL mode",
"Use '#' in the prompt input to load and select your documents.": "Gamita ang '#' sa dali nga pagsulod aron makarga ug mapili ang imong mga dokumento.",
"Use Gravatar": "Paggamit sa Gravatar",
"Use Initials": "",
"user": "tiggamit",
"User Permissions": "Mga permiso sa tiggamit",
"Users": "Mga tiggamit",
"Utilize": "Sa paggamit",
"Valid time units:": "Balido nga mga yunit sa oras:",
"variable": "variable",
"variable to have them replaced with clipboard content.": "variable aron pulihan kini sa mga sulud sa clipboard.",
"Version": "Bersyon",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Loader Settings": "",
"Web Params": "",
"Web Search Disabled": "",
"Web Search Enabled": "",
"Webhook URL": "",
"WebUI Add-ons": "Mga add-on sa WebUI",
"WebUI Settings": "Mga Setting sa WebUI",
"WebUI will make requests to": "Ang WebUI maghimo mga hangyo sa",
"What’s New in": "Unsay bag-o sa",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Kung ang kasaysayan gipalong, ang mga bag-ong chat sa kini nga browser dili makita sa imong kasaysayan sa bisan unsang mga aparato.",
"Whisper (Local)": "Whisper (Lokal)",
"Workspace": "",
"Write a prompt suggestion (e.g. Who are you?)": "Pagsulat og gisugyot nga prompt (eg. Kinsa ka?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Pagsulat og 50 ka pulong nga summary nga nagsumaryo [topic o keyword].",
"Yesterday": "",
"You": "",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Usa ka ka mapuslanon nga katabang",
"You're now logged in.": "Konektado ka na karon.",
"Youtube": "",
"Youtube Loader Settings": ""
}
......@@ -4,14 +4,14 @@
"(e.g. `sh webui.sh --api`)": "(z.B. `sh webui.sh --api`)",
"(latest)": "(neueste)",
"{{modelName}} is thinking...": "{{modelName}} denkt nach...",
"{{user}}'s Chats": "",
"{{user}}'s Chats": "{{user}}s Chats",
"{{webUIName}} Backend Required": "{{webUIName}}-Backend erforderlich",
"A task model is used when performing tasks such as generating titles for chats and web search queries": "",
"a user": "ein Benutzer",
"About": "Über",
"Account": "Account",
"Accurate information": "Genaue Information",
"Add": "",
"Add": "Hinzufügen",
"Add a model": "Füge ein Modell hinzu",
"Add a model tag name": "Benenne deinen Modell-Tag",
"Add a short description about what this modelfile does": "Füge eine kurze Beschreibung hinzu, was dieses Modelfile kann",
......@@ -20,7 +20,7 @@
"Add custom prompt": "Eigenen Prompt hinzufügen",
"Add Docs": "Dokumente hinzufügen",
"Add Files": "Dateien hinzufügen",
"Add Memory": "",
"Add Memory": "Speicher hinzufügen",
"Add message": "Nachricht eingeben",
"Add Model": "Modell hinzufügen",
"Add Tags": "Tags hinzufügen",
......@@ -69,8 +69,8 @@
"Categories": "Kategorien",
"Change Password": "Passwort ändern",
"Chat": "Chat",
"Chat Bubble UI": "",
"Chat direction": "",
"Chat Bubble UI": "Chat Bubble UI",
"Chat direction": "Chat Richtung",
"Chat History": "Chat Verlauf",
"Chat History is off for this browser.": "Chat Verlauf ist für diesen Browser ausgeschaltet.",
"Chats": "Chats",
......@@ -92,8 +92,8 @@
"Click on the user role button to change a user's role.": "Klicke auf die Benutzerrollenschaltfläche, um die Rolle eines Benutzers zu ändern.",
"Close": "Schließe",
"Collection": "Kollektion",
"ComfyUI": "",
"ComfyUI Base URL": "",
"ComfyUI": "ComfyUI",
"ComfyUI Base URL": "ComfyUI Base URL",
"ComfyUI Base URL is required.": "ComfyUI Base URL wird benötigt.",
"Command": "Befehl",
"Confirm Password": "Passwort bestätigen",
......@@ -164,19 +164,19 @@
"Edit Doc": "Dokument bearbeiten",
"Edit User": "Benutzer bearbeiten",
"Email": "E-Mail",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Embedding Model": "Embedding-Modell",
"Embedding Model Engine": "Embedding-Modell-Engine",
"Embedding model set to \"{{embedding_model}}\"": "Embedding-Modell auf \"{{embedding_model}}\" gesetzt",
"Enable Chat History": "Chat-Verlauf aktivieren",
"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
"Enabled": "Aktiviert",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Stellen Sie sicher, dass Ihre CSV-Datei 4 Spalten in dieser Reihenfolge enthält: Name, E-Mail, Passwort, Rolle.",
"Enter {{role}} message here": "Gib die {{role}} Nachricht hier ein",
"Enter a detail about yourself for your LLMs to recall": "",
"Enter a detail about yourself for your LLMs to recall": "Geben Sie einen Detail über sich selbst ein, um für Ihre LLMs zu erinnern",
"Enter Chunk Overlap": "Gib den Chunk Overlap ein",
"Enter Chunk Size": "Gib die Chunk Size ein",
"Enter Image Size (e.g. 512x512)": "Gib die Bildgröße ein (z.B. 512x512)",
"Enter language codes": "",
"Enter language codes": "Geben Sie die Sprachcodes ein",
"Enter LiteLLM API Base URL (litellm_params.api_base)": "Gib die LiteLLM API BASE URL ein (litellm_params.api_base)",
"Enter LiteLLM API Key (litellm_params.api_key)": "Gib den LiteLLM API Key ein (litellm_params.api_key)",
"Enter LiteLLM API RPM (litellm_params.rpm)": "Gib die LiteLLM API RPM ein (litellm_params.rpm)",
......@@ -217,7 +217,7 @@
"Generating search query": "",
"Generation Info": "Generierungsinformationen",
"Good Response": "Gute Antwort",
"h:mm a": "",
"h:mm a": "h:mm a",
"has no conversations.": "hat keine Unterhaltungen.",
"Hello, {{name}}": "Hallo, {{name}}",
"Help": "Hilfe",
......@@ -251,7 +251,7 @@
"Light": "Hell",
"Listening...": "Hören...",
"LLMs can make mistakes. Verify important information.": "LLMs können Fehler machen. Überprüfe wichtige Informationen.",
"LTR": "",
"LTR": "LTR",
"Made by OpenWebUI Community": "Von der OpenWebUI-Community",
"Make sure to enclose them with": "Formatiere deine Variablen mit:",
"Manage LiteLLM Models": "LiteLLM-Modelle verwalten",
......@@ -261,9 +261,9 @@
"Max Tokens": "Maximale Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es können maximal 3 Modelle gleichzeitig heruntergeladen werden. Bitte versuche es später erneut.",
"May": "Mai",
"Memories accessible by LLMs will be shown here.": "",
"Memory": "",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "",
"Memories accessible by LLMs will be shown here.": "Memories, die von LLMs zugänglich sind, werden hier angezeigt.",
"Memory": "Memory",
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Nachdem Sie Ihren Link erstellt haben, werden Ihre Nachrichten nicht geteilt. Benutzer mit dem Link können den geteilten Chat sehen.",
"Minimum Score": "Mindestscore",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
......@@ -294,11 +294,11 @@
"No results found": "Keine Ergebnisse gefunden",
"No search query generated": "",
"No search results found": "",
"No source available": "",
"No source available": "Keine Quelle verfügbar.",
"Not factually correct": "Nicht sachlich korrekt.",
"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
"Not sure what to write? Switch to": "Nicht sicher, was du schreiben sollst? Wechsel zu",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Hinweis: Wenn du einen Mindestscore festlegst, wird die Suche nur Dokumente zurückgeben, deren Score größer oder gleich dem Mindestscore ist.",
"Notifications": "Desktop-Benachrichtigungen",
"November": "November",
"October": "Oktober",
......@@ -306,7 +306,7 @@
"Okay, Let's Go!": "Okay, los geht's!",
"OLED Dark": "OLED Dunkel",
"Ollama": "Ollama",
"Ollama Base URL": "Ollama Basis URL",
"Ollama API": "",
"Ollama Version": "Ollama-Version",
"On": "Ein",
"Only": "Nur",
......@@ -332,7 +332,7 @@
"PDF Extract Images (OCR)": "Text von Bildern aus PDFs extrahieren (OCR)",
"pending": "ausstehend",
"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
"Personalization": "",
"Personalization": "Personalisierung",
"Plain text (.txt)": "Nur Text (.txt)",
"Playground": "Testumgebung",
"Positive attitude": "Positive Einstellung",
......@@ -364,13 +364,13 @@
"Request Mode": "Request-Modus",
"Reranking Model": "Reranking Modell",
"Reranking model disabled": "Rranking Modell deaktiviert",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reranking model set to \"{{reranking_model}}\"": "Reranking Modell auf \"{{reranking_model}}\" gesetzt",
"Reset Vector Storage": "Vektorspeicher zurücksetzen",
"Response AutoCopy to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
"Role": "Rolle",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
"RTL": "",
"RTL": "RTL",
"Save": "Speichern",
"Save & Create": "Speichern und erstellen",
"Save & Update": "Speichern und aktualisieren",
......@@ -391,17 +391,17 @@
"Select a model": "Ein Modell auswählen",
"Select an Ollama instance": "Eine Ollama Instanz auswählen",
"Select model": "Modell auswählen",
"Send": "",
"Send": "Senden",
"Send a Message": "Eine Nachricht senden",
"Send message": "Nachricht senden",
"September": "September",
"Server connection verified": "Serververbindung überprüft",
"Set as default": "Als Standard festlegen",
"Set Default Model": "Standardmodell festlegen",
"Set embedding model (e.g. {{model}})": "",
"Set embedding model (e.g. {{model}})": "Eingabemodell festlegen (z.B. {{model}})",
"Set Image Size": "Bildgröße festlegen",
"Set Model": "Modell festlegen",
"Set reranking model (e.g. {{model}})": "",
"Set reranking model (e.g. {{model}})": "Rerankingmodell festlegen (z.B. {{model}})",
"Set Steps": "Schritte festlegen",
"Set Task Model": "",
"Set Voice": "Stimme festlegen",
......@@ -486,7 +486,7 @@
"Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
"Web": "Web",
"Web Loader Settings": "",
"Web Loader Settings": "Web Loader Einstellungen",
"Web Params": "Web Parameter",
"Web Search Disabled": "",
"Web Search Enabled": "",
......@@ -497,15 +497,15 @@
"What’s New in": "Was gibt's Neues in",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "Wenn die Historie ausgeschaltet ist, werden neue Chats nicht in deiner Historie auf deine Geräte angezeigt.",
"Whisper (Local)": "Whisper (Lokal)",
"Workspace": "",
"Workspace": "Arbeitsbereich",
"Write a prompt suggestion (e.g. Who are you?)": "Gebe einen Prompt-Vorschlag ein (z.B. Wer bist du?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
"Yesterday": "Gestern",
"You": "",
"You": "Du",
"You have no archived conversations.": "Du hast keine archivierten Unterhaltungen.",
"You have shared this chat": "Du hast diesen Chat",
"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
"You're now logged in.": "Du bist nun eingeloggt.",
"Youtube": "YouTube",
"Youtube Loader Settings": ""
"Youtube Loader Settings": "YouTube-Ladeeinstellungen"
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment