Merge branch 'open-webui:main' into searxng

This commit is contained in:
Que Nguyen
2024-06-17 14:28:02 +07:00
committed by GitHub
69 changed files with 1120 additions and 222 deletions
+54 -2
View File
@@ -11,8 +11,6 @@ on:
env: env:
REGISTRY: ghcr.io REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
FULL_IMAGE_NAME: ghcr.io/${{ github.repository }}
jobs: jobs:
build-main-image: build-main-image:
@@ -28,6 +26,15 @@ jobs:
- linux/arm64 - linux/arm64
steps: steps:
# GitHub Packages requires the entire repository name to be in lowercase
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
- name: Set repository and image name to lowercase
run: |
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
env:
IMAGE_NAME: '${{ github.repository }}'
- name: Prepare - name: Prepare
run: | run: |
platform=${{ matrix.platform }} platform=${{ matrix.platform }}
@@ -116,6 +123,15 @@ jobs:
- linux/arm64 - linux/arm64
steps: steps:
# GitHub Packages requires the entire repository name to be in lowercase
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
- name: Set repository and image name to lowercase
run: |
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
env:
IMAGE_NAME: '${{ github.repository }}'
- name: Prepare - name: Prepare
run: | run: |
platform=${{ matrix.platform }} platform=${{ matrix.platform }}
@@ -207,6 +223,15 @@ jobs:
- linux/arm64 - linux/arm64
steps: steps:
# GitHub Packages requires the entire repository name to be in lowercase
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
- name: Set repository and image name to lowercase
run: |
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
env:
IMAGE_NAME: '${{ github.repository }}'
- name: Prepare - name: Prepare
run: | run: |
platform=${{ matrix.platform }} platform=${{ matrix.platform }}
@@ -289,6 +314,15 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [ build-main-image ] needs: [ build-main-image ]
steps: steps:
# GitHub Packages requires the entire repository name to be in lowercase
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
- name: Set repository and image name to lowercase
run: |
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
env:
IMAGE_NAME: '${{ github.repository }}'
- name: Download digests - name: Download digests
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
@@ -335,6 +369,15 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [ build-cuda-image ] needs: [ build-cuda-image ]
steps: steps:
# GitHub Packages requires the entire repository name to be in lowercase
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
- name: Set repository and image name to lowercase
run: |
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
env:
IMAGE_NAME: '${{ github.repository }}'
- name: Download digests - name: Download digests
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
@@ -382,6 +425,15 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [ build-ollama-image ] needs: [ build-ollama-image ]
steps: steps:
# GitHub Packages requires the entire repository name to be in lowercase
# although the repository owner has a lowercase username, this prevents some people from running actions after forking
- name: Set repository and image name to lowercase
run: |
echo "IMAGE_NAME=${IMAGE_NAME,,}" >>${GITHUB_ENV}
echo "FULL_IMAGE_NAME=ghcr.io/${IMAGE_NAME,,}" >>${GITHUB_ENV}
env:
IMAGE_NAME: '${{ github.repository }}'
- name: Download digests - name: Download digests
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
+24
View File
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.3.5] - 2024-06-16
### Added
- **📞 Enhanced Voice Call**: Text-to-speech (TTS) callback now operates in real-time for each sentence, reducing latency by not waiting for full completion.
- **👆 Tap to Interrupt**: During a call, you can now stop the assistant from speaking by simply tapping, instead of using voice. This resolves the issue of the speaker's voice being mistakenly registered as input.
- **😊 Emoji Call**: Toggle this feature on from the Settings > Interface, allowing LLMs to express emotions using emojis during voice calls for a more dynamic interaction.
- **🖱️ Quick Archive/Delete**: Use the Shift key + mouseover on the chat list to swiftly archive or delete items.
- **📝 Markdown Support in Model Descriptions**: You can now format model descriptions with markdown, enabling bold text, links, etc.
- **🧠 Editable Memories**: Adds the capability to modify memories.
- **📋 Admin Panel Sorting**: Introduces the ability to sort users/chats within the admin panel.
- **🌑 Dark Mode for Quick Selectors**: Dark mode now available for chat quick selectors (prompts, models, documents).
- **🔧 Advanced Parameters**: Adds 'num_keep' and 'num_batch' to advanced parameters for customization.
- **📅 Dynamic System Prompts**: New variables '{{CURRENT_DATETIME}}', '{{CURRENT_TIME}}', '{{USER_LOCATION}}' added for system prompts. Ensure '{{USER_LOCATION}}' is toggled on from Settings > Interface.
- **🌐 Tavily Web Search**: Includes Tavily as a web search provider option.
- **🖊️ Federated Auth Usernames**: Ability to set user names for federated authentication.
- **🔗 Auto Clean URLs**: When adding connection URLs, trailing slashes are now automatically removed.
- **🌐 Enhanced Translations**: Improved Chinese and Swedish translations.
### Fixed
- **⏳ AIOHTTP_CLIENT_TIMEOUT**: Introduced a new environment variable 'AIOHTTP_CLIENT_TIMEOUT' for requests to Ollama lasting longer than 5 minutes. Default is 300 seconds; set to blank ('') for no timeout.
- **❌ Message Delete Freeze**: Resolved an issue where message deletion would sometimes cause the web UI to freeze.
## [0.3.4] - 2024-06-12 ## [0.3.4] - 2024-06-12
### Fixed ### Fixed
+1 -1
View File
@@ -160,7 +160,7 @@ Check our Migration Guide available in our [Open WebUI Documentation](https://do
If you want to try out the latest bleeding-edge features and are okay with occasional instability, you can use the `:dev` tag like this: If you want to try out the latest bleeding-edge features and are okay with occasional instability, you can use the `:dev` tag like this:
```bash ```bash
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:dev docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --add-host=host.docker.internal:host-gateway --restart always ghcr.io/open-webui/open-webui:dev
``` ```
## What's Next? 🌟 ## What's Next? 🌟
+20
View File
@@ -37,6 +37,10 @@ from config import (
ENABLE_IMAGE_GENERATION, ENABLE_IMAGE_GENERATION,
AUTOMATIC1111_BASE_URL, AUTOMATIC1111_BASE_URL,
COMFYUI_BASE_URL, COMFYUI_BASE_URL,
COMFYUI_CFG_SCALE,
COMFYUI_SAMPLER,
COMFYUI_SCHEDULER,
COMFYUI_SD3,
IMAGES_OPENAI_API_BASE_URL, IMAGES_OPENAI_API_BASE_URL,
IMAGES_OPENAI_API_KEY, IMAGES_OPENAI_API_KEY,
IMAGE_GENERATION_MODEL, IMAGE_GENERATION_MODEL,
@@ -78,6 +82,10 @@ app.state.config.COMFYUI_BASE_URL = COMFYUI_BASE_URL
app.state.config.IMAGE_SIZE = IMAGE_SIZE app.state.config.IMAGE_SIZE = IMAGE_SIZE
app.state.config.IMAGE_STEPS = IMAGE_STEPS app.state.config.IMAGE_STEPS = IMAGE_STEPS
app.state.config.COMFYUI_CFG_SCALE = COMFYUI_CFG_SCALE
app.state.config.COMFYUI_SAMPLER = COMFYUI_SAMPLER
app.state.config.COMFYUI_SCHEDULER = COMFYUI_SCHEDULER
app.state.config.COMFYUI_SD3 = COMFYUI_SD3
@app.get("/config") @app.get("/config")
@@ -457,6 +465,18 @@ def generate_image(
if form_data.negative_prompt is not None: if form_data.negative_prompt is not None:
data["negative_prompt"] = form_data.negative_prompt data["negative_prompt"] = form_data.negative_prompt
if app.state.config.COMFYUI_CFG_SCALE:
data["cfg_scale"] = app.state.config.COMFYUI_CFG_SCALE
if app.state.config.COMFYUI_SAMPLER is not None:
data["sampler"] = app.state.config.COMFYUI_SAMPLER
if app.state.config.COMFYUI_SCHEDULER is not None:
data["scheduler"] = app.state.config.COMFYUI_SCHEDULER
if app.state.config.COMFYUI_SD3 is not None:
data["sd3"] = app.state.config.COMFYUI_SD3
data = ImageGenerationPayload(**data) data = ImageGenerationPayload(**data)
res = comfyui_generate_image( res = comfyui_generate_image(
+16
View File
@@ -190,6 +190,10 @@ class ImageGenerationPayload(BaseModel):
width: int width: int
height: int height: int
n: int = 1 n: int = 1
cfg_scale: Optional[float] = None
sampler: Optional[str] = None
scheduler: Optional[str] = None
sd3: Optional[bool] = None
def comfyui_generate_image( def comfyui_generate_image(
@@ -199,6 +203,18 @@ def comfyui_generate_image(
comfyui_prompt = json.loads(COMFYUI_DEFAULT_PROMPT) comfyui_prompt = json.loads(COMFYUI_DEFAULT_PROMPT)
if payload.cfg_scale:
comfyui_prompt["3"]["inputs"]["cfg"] = payload.cfg_scale
if payload.sampler:
comfyui_prompt["3"]["inputs"]["sampler"] = payload.sampler
if payload.scheduler:
comfyui_prompt["3"]["inputs"]["scheduler"] = payload.scheduler
if payload.sd3:
comfyui_prompt["5"]["class_type"] = "EmptySD3LatentImage"
comfyui_prompt["4"]["inputs"]["ckpt_name"] = model comfyui_prompt["4"]["inputs"]["ckpt_name"] = model
comfyui_prompt["5"]["inputs"]["batch_size"] = payload.n comfyui_prompt["5"]["inputs"]["batch_size"] = payload.n
comfyui_prompt["5"]["inputs"]["width"] = payload.width comfyui_prompt["5"]["inputs"]["width"] = payload.width
+1 -2
View File
@@ -850,8 +850,7 @@ async def generate_chat_completion(
url = app.state.config.OLLAMA_BASE_URLS[url_idx] url = app.state.config.OLLAMA_BASE_URLS[url_idx]
log.info(f"url: {url}") log.info(f"url: {url}")
log.debug(payload)
print(payload)
return await post_streaming_url(f"{url}/api/chat", json.dumps(payload)) return await post_streaming_url(f"{url}/api/chat", json.dumps(payload))
+1 -3
View File
@@ -430,13 +430,11 @@ async def generate_chat_completion(
# Convert the modified body back to JSON # Convert the modified body back to JSON
payload = json.dumps(payload) payload = json.dumps(payload)
print(payload) log.debug(payload)
url = app.state.config.OPENAI_API_BASE_URLS[idx] url = app.state.config.OPENAI_API_BASE_URLS[idx]
key = app.state.config.OPENAI_API_KEYS[idx] key = app.state.config.OPENAI_API_KEYS[idx]
print(payload)
headers = {} headers = {}
headers["Authorization"] = f"Bearer {key}" headers["Authorization"] = f"Bearer {key}"
headers["Content-Type"] = "application/json" headers["Content-Type"] = "application/json"
@@ -0,0 +1,48 @@
"""Peewee migrations -- 002_add_local_sharing.py.
Some examples (model - class or model name)::
> Model = migrator.orm['table_name'] # Return model in current state by name
> Model = migrator.ModelClass # Return model in current state by name
> migrator.sql(sql) # Run custom SQL
> migrator.run(func, *args, **kwargs) # Run python function with the given args
> migrator.create_model(Model) # Create a model (could be used as decorator)
> migrator.remove_model(model, cascade=True) # Remove a model
> migrator.add_fields(model, **fields) # Add fields to a model
> migrator.change_fields(model, **fields) # Change fields
> migrator.remove_fields(model, *field_names, cascade=True)
> migrator.rename_field(model, old_field_name, new_field_name)
> migrator.rename_table(model, new_table_name)
> migrator.add_index(model, *col_names, unique=False)
> migrator.add_not_null(model, *field_names)
> migrator.add_default(model, field_name, default)
> migrator.add_constraint(model, name, sql)
> migrator.drop_index(model, *col_names)
> migrator.drop_not_null(model, *field_names)
> migrator.drop_constraints(model, *constraints)
"""
from contextlib import suppress
import peewee as pw
from peewee_migrate import Migrator
with suppress(ImportError):
import playhouse.postgres_ext as pw_pext
def migrate(migrator: Migrator, database: pw.Database, *, fake=False):
"""Write your migrations here."""
# Adding fields info to the 'user' table
migrator.add_fields("user", info=pw.TextField(null=True))
def rollback(migrator: Migrator, database: pw.Database, *, fake=False):
"""Write your rollback migrations here."""
# Remove the settings field
migrator.remove_fields("user", "info")
+2
View File
@@ -25,6 +25,7 @@ from config import (
USER_PERMISSIONS, USER_PERMISSIONS,
WEBHOOK_URL, WEBHOOK_URL,
WEBUI_AUTH_TRUSTED_EMAIL_HEADER, WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
WEBUI_AUTH_TRUSTED_NAME_HEADER,
JWT_EXPIRES_IN, JWT_EXPIRES_IN,
WEBUI_BANNERS, WEBUI_BANNERS,
ENABLE_COMMUNITY_SHARING, ENABLE_COMMUNITY_SHARING,
@@ -40,6 +41,7 @@ app.state.config = AppConfig()
app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP
app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
app.state.AUTH_TRUSTED_NAME_HEADER = WEBUI_AUTH_TRUSTED_NAME_HEADER
app.state.config.SHOW_ADMIN_DETAILS = SHOW_ADMIN_DETAILS app.state.config.SHOW_ADMIN_DETAILS = SHOW_ADMIN_DETAILS
+2
View File
@@ -26,6 +26,7 @@ class User(Model):
api_key = CharField(null=True, unique=True) api_key = CharField(null=True, unique=True)
settings = JSONField(null=True) settings = JSONField(null=True)
info = JSONField(null=True)
class Meta: class Meta:
database = DB database = DB
@@ -50,6 +51,7 @@ class UserModel(BaseModel):
api_key: Optional[str] = None api_key: Optional[str] = None
settings: Optional[UserSettings] = None settings: Optional[UserSettings] = None
info: Optional[dict] = None
#################### ####################
+11 -2
View File
@@ -33,7 +33,11 @@ from utils.utils import (
from utils.misc import parse_duration, validate_email_format from utils.misc import parse_duration, validate_email_format
from utils.webhook import post_webhook from utils.webhook import post_webhook
from constants import ERROR_MESSAGES, WEBHOOK_MESSAGES from constants import ERROR_MESSAGES, WEBHOOK_MESSAGES
from config import WEBUI_AUTH, WEBUI_AUTH_TRUSTED_EMAIL_HEADER from config import (
WEBUI_AUTH,
WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
WEBUI_AUTH_TRUSTED_NAME_HEADER,
)
router = APIRouter() router = APIRouter()
@@ -110,11 +114,16 @@ async def signin(request: Request, form_data: SigninForm):
raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_TRUSTED_HEADER) raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_TRUSTED_HEADER)
trusted_email = request.headers[WEBUI_AUTH_TRUSTED_EMAIL_HEADER].lower() trusted_email = request.headers[WEBUI_AUTH_TRUSTED_EMAIL_HEADER].lower()
trusted_name = trusted_email
if WEBUI_AUTH_TRUSTED_NAME_HEADER:
trusted_name = request.headers.get(
WEBUI_AUTH_TRUSTED_NAME_HEADER, trusted_email
)
if not Users.get_user_by_email(trusted_email.lower()): if not Users.get_user_by_email(trusted_email.lower()):
await signup( await signup(
request, request,
SignupForm( SignupForm(
email=trusted_email, password=str(uuid.uuid4()), name=trusted_email email=trusted_email, password=str(uuid.uuid4()), name=trusted_name
), ),
) )
user = Auths.authenticate_user_by_trusted_header(trusted_email) user = Auths.authenticate_user_by_trusted_header(trusted_email)
+46
View File
@@ -115,6 +115,52 @@ async def update_user_settings_by_session_user(
) )
############################
# GetUserInfoBySessionUser
############################
@router.get("/user/info", response_model=Optional[dict])
async def get_user_info_by_session_user(user=Depends(get_verified_user)):
user = Users.get_user_by_id(user.id)
if user:
return user.info
else:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=ERROR_MESSAGES.USER_NOT_FOUND,
)
############################
# UpdateUserInfoBySessionUser
############################
@router.post("/user/info/update", response_model=Optional[dict])
async def update_user_settings_by_session_user(
form_data: dict, user=Depends(get_verified_user)
):
user = Users.get_user_by_id(user.id)
if user:
if user.info is None:
user.info = {}
user = Users.update_user_by_id(user.id, {"info": {**user.info, **form_data}})
if user:
return user.info
else:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=ERROR_MESSAGES.USER_NOT_FOUND,
)
else:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=ERROR_MESSAGES.USER_NOT_FOUND,
)
############################ ############################
# GetUserById # GetUserById
############################ ############################
+33 -1
View File
@@ -294,6 +294,7 @@ WEBUI_AUTH = os.environ.get("WEBUI_AUTH", "True").lower() == "true"
WEBUI_AUTH_TRUSTED_EMAIL_HEADER = os.environ.get( WEBUI_AUTH_TRUSTED_EMAIL_HEADER = os.environ.get(
"WEBUI_AUTH_TRUSTED_EMAIL_HEADER", None "WEBUI_AUTH_TRUSTED_EMAIL_HEADER", None
) )
WEBUI_AUTH_TRUSTED_NAME_HEADER = os.environ.get("WEBUI_AUTH_TRUSTED_NAME_HEADER", None)
JWT_EXPIRES_IN = PersistentConfig( JWT_EXPIRES_IN = PersistentConfig(
"JWT_EXPIRES_IN", "auth.jwt_expiry", os.environ.get("JWT_EXPIRES_IN", "-1") "JWT_EXPIRES_IN", "auth.jwt_expiry", os.environ.get("JWT_EXPIRES_IN", "-1")
) )
@@ -425,7 +426,14 @@ OLLAMA_API_BASE_URL = os.environ.get(
) )
OLLAMA_BASE_URL = os.environ.get("OLLAMA_BASE_URL", "") OLLAMA_BASE_URL = os.environ.get("OLLAMA_BASE_URL", "")
AIOHTTP_CLIENT_TIMEOUT = int(os.environ.get("AIOHTTP_CLIENT_TIMEOUT", "300")) AIOHTTP_CLIENT_TIMEOUT = os.environ.get("AIOHTTP_CLIENT_TIMEOUT", "300")
if AIOHTTP_CLIENT_TIMEOUT == "":
AIOHTTP_CLIENT_TIMEOUT = None
else:
AIOHTTP_CLIENT_TIMEOUT = int(AIOHTTP_CLIENT_TIMEOUT)
K8S_FLAG = os.environ.get("K8S_FLAG", "") K8S_FLAG = os.environ.get("K8S_FLAG", "")
USE_OLLAMA_DOCKER = os.environ.get("USE_OLLAMA_DOCKER", "false") USE_OLLAMA_DOCKER = os.environ.get("USE_OLLAMA_DOCKER", "false")
@@ -1009,6 +1017,30 @@ COMFYUI_BASE_URL = PersistentConfig(
os.getenv("COMFYUI_BASE_URL", ""), os.getenv("COMFYUI_BASE_URL", ""),
) )
COMFYUI_CFG_SCALE = PersistentConfig(
"COMFYUI_CFG_SCALE",
"image_generation.comfyui.cfg_scale",
os.getenv("COMFYUI_CFG_SCALE", ""),
)
COMFYUI_SAMPLER = PersistentConfig(
"COMFYUI_SAMPLER",
"image_generation.comfyui.sampler",
os.getenv("COMFYUI_SAMPLER", ""),
)
COMFYUI_SCHEDULER = PersistentConfig(
"COMFYUI_SCHEDULER",
"image_generation.comfyui.scheduler",
os.getenv("COMFYUI_SCHEDULER", ""),
)
COMFYUI_SD3 = PersistentConfig(
"COMFYUI_SD3",
"image_generation.comfyui.sd3",
os.environ.get("COMFYUI_SD3", "").lower() == "true",
)
IMAGES_OPENAI_API_BASE_URL = PersistentConfig( IMAGES_OPENAI_API_BASE_URL = PersistentConfig(
"IMAGES_OPENAI_API_BASE_URL", "IMAGES_OPENAI_API_BASE_URL",
"image_generation.openai.api_base_url", "image_generation.openai.api_base_url",
+15 -5
View File
@@ -764,7 +764,12 @@ async def generate_title(form_data: dict, user=Depends(get_verified_user)):
template = app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE template = app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE
content = title_generation_template( content = title_generation_template(
template, form_data["prompt"], user.model_dump() template,
form_data["prompt"],
{
"name": user.name,
"location": user.info.get("location") if user.info else None,
},
) )
payload = { payload = {
@@ -776,7 +781,7 @@ async def generate_title(form_data: dict, user=Depends(get_verified_user)):
"title": True, "title": True,
} }
print(payload) log.debug(payload)
try: try:
payload = filter_pipeline(payload, user) payload = filter_pipeline(payload, user)
@@ -830,7 +835,7 @@ async def generate_search_query(form_data: dict, user=Depends(get_verified_user)
template = app.state.config.SEARCH_QUERY_GENERATION_PROMPT_TEMPLATE template = app.state.config.SEARCH_QUERY_GENERATION_PROMPT_TEMPLATE
content = search_query_generation_template( content = search_query_generation_template(
template, form_data["prompt"], user.model_dump() template, form_data["prompt"], {"name": user.name}
) )
payload = { payload = {
@@ -893,7 +898,12 @@ Message: """{{prompt}}"""
''' '''
content = title_generation_template( content = title_generation_template(
template, form_data["prompt"], user.model_dump() template,
form_data["prompt"],
{
"name": user.name,
"location": user.info.get("location") if user.info else None,
},
) )
payload = { payload = {
@@ -905,7 +915,7 @@ Message: """{{prompt}}"""
"task": True, "task": True,
} }
print(payload) log.debug(payload)
try: try:
payload = filter_pipeline(payload, user) payload = filter_pipeline(payload, user)
+11 -7
View File
@@ -6,24 +6,28 @@ from typing import Optional
def prompt_template( def prompt_template(
template: str, user_name: str = None, current_location: str = None template: str, user_name: str = None, user_location: str = None
) -> str: ) -> str:
# Get the current date # Get the current date
current_date = datetime.now() current_date = datetime.now()
# Format the date to YYYY-MM-DD # Format the date to YYYY-MM-DD
formatted_date = current_date.strftime("%Y-%m-%d") formatted_date = current_date.strftime("%Y-%m-%d")
formatted_time = current_date.strftime("%I:%M:%S %p")
# Replace {{CURRENT_DATE}} in the template with the formatted date
template = template.replace("{{CURRENT_DATE}}", formatted_date) template = template.replace("{{CURRENT_DATE}}", formatted_date)
template = template.replace("{{CURRENT_TIME}}", formatted_time)
template = template.replace(
"{{CURRENT_DATETIME}}", f"{formatted_date} {formatted_time}"
)
if user_name: if user_name:
# Replace {{USER_NAME}} in the template with the user's name # Replace {{USER_NAME}} in the template with the user's name
template = template.replace("{{USER_NAME}}", user_name) template = template.replace("{{USER_NAME}}", user_name)
if current_location: if user_location:
# Replace {{CURRENT_LOCATION}} in the template with the current location # Replace {{USER_LOCATION}} in the template with the current location
template = template.replace("{{CURRENT_LOCATION}}", current_location) template = template.replace("{{USER_LOCATION}}", user_location)
return template return template
@@ -61,7 +65,7 @@ def title_generation_template(
template = prompt_template( template = prompt_template(
template, template,
**( **(
{"user_name": user.get("name"), "current_location": user.get("location")} {"user_name": user.get("name"), "user_location": user.get("location")}
if user if user
else {} else {}
), ),
@@ -104,7 +108,7 @@ def search_query_generation_template(
template = prompt_template( template = prompt_template(
template, template,
**( **(
{"user_name": user.get("name"), "current_location": user.get("location")} {"user_name": user.get("name"), "user_location": user.get("location")}
if user if user
else {} else {}
), ),
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "open-webui", "name": "open-webui",
"version": "0.3.4", "version": "0.3.5",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "open-webui", "name": "open-webui",
"version": "0.3.4", "version": "0.3.5",
"dependencies": { "dependencies": {
"@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-javascript": "^6.2.2",
"@codemirror/lang-python": "^6.1.6", "@codemirror/lang-python": "^6.1.6",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "open-webui", "name": "open-webui",
"version": "0.3.4", "version": "0.3.5",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "npm run pyodide:fetch && vite dev --host", "dev": "npm run pyodide:fetch && vite dev --host",
+70
View File
@@ -1,4 +1,5 @@
import { WEBUI_API_BASE_URL } from '$lib/constants'; import { WEBUI_API_BASE_URL } from '$lib/constants';
import { getUserPosition } from '$lib/utils';
export const getUserPermissions = async (token: string) => { export const getUserPermissions = async (token: string) => {
let error = null; let error = null;
@@ -198,6 +199,75 @@ export const getUserById = async (token: string, userId: string) => {
return res; return res;
}; };
export const getUserInfo = async (token: string) => {
let error = null;
const res = await fetch(`${WEBUI_API_BASE_URL}/users/user/info`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`
}
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((err) => {
console.log(err);
error = err.detail;
return null;
});
if (error) {
throw error;
}
return res;
};
export const updateUserInfo = async (token: string, info: object) => {
let error = null;
const res = await fetch(`${WEBUI_API_BASE_URL}/users/user/info/update`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`
},
body: JSON.stringify({
...info
})
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((err) => {
console.log(err);
error = err.detail;
return null;
});
if (error) {
throw error;
}
return res;
};
export const getAndUpdateUserLocation = async (token: string) => {
const location = await getUserPosition().catch((err) => {
throw err;
});
if (location) {
await updateUserInfo(token, { location: location });
return location;
} else {
throw new Error('Failed to get user location');
}
};
export const deleteUserById = async (token: string, userId: string) => { export const deleteUserById = async (token: string, userId: string) => {
let error = null; let error = null;
@@ -44,6 +44,8 @@
let ENABLE_OLLAMA_API = null; let ENABLE_OLLAMA_API = null;
const verifyOpenAIHandler = async (idx) => { const verifyOpenAIHandler = async (idx) => {
OPENAI_API_BASE_URLS = OPENAI_API_BASE_URLS.map((url) => url.replace(/\/$/, ''));
OPENAI_API_BASE_URLS = await updateOpenAIUrls(localStorage.token, OPENAI_API_BASE_URLS); OPENAI_API_BASE_URLS = await updateOpenAIUrls(localStorage.token, OPENAI_API_BASE_URLS);
OPENAI_API_KEYS = await updateOpenAIKeys(localStorage.token, OPENAI_API_KEYS); OPENAI_API_KEYS = await updateOpenAIKeys(localStorage.token, OPENAI_API_KEYS);
@@ -63,6 +65,10 @@
}; };
const verifyOllamaHandler = async (idx) => { const verifyOllamaHandler = async (idx) => {
OLLAMA_BASE_URLS = OLLAMA_BASE_URLS.filter((url) => url !== '').map((url) =>
url.replace(/\/$/, '')
);
OLLAMA_BASE_URLS = await updateOllamaUrls(localStorage.token, OLLAMA_BASE_URLS); OLLAMA_BASE_URLS = await updateOllamaUrls(localStorage.token, OLLAMA_BASE_URLS);
const res = await getOllamaVersion(localStorage.token, idx).catch((error) => { const res = await getOllamaVersion(localStorage.token, idx).catch((error) => {
@@ -78,6 +84,8 @@
}; };
const updateOpenAIHandler = async () => { const updateOpenAIHandler = async () => {
OPENAI_API_BASE_URLS = OPENAI_API_BASE_URLS.map((url) => url.replace(/\/$/, ''));
// Check if API KEYS length is same than API URLS length // Check if API KEYS length is same than API URLS length
if (OPENAI_API_KEYS.length !== OPENAI_API_BASE_URLS.length) { if (OPENAI_API_KEYS.length !== OPENAI_API_BASE_URLS.length) {
// if there are more keys than urls, remove the extra keys // if there are more keys than urls, remove the extra keys
@@ -100,7 +108,10 @@
}; };
const updateOllamaUrlsHandler = async () => { const updateOllamaUrlsHandler = async () => {
OLLAMA_BASE_URLS = OLLAMA_BASE_URLS.filter((url) => url !== ''); OLLAMA_BASE_URLS = OLLAMA_BASE_URLS.filter((url) => url !== '').map((url) =>
url.replace(/\/$/, '')
);
console.log(OLLAMA_BASE_URLS); console.log(OLLAMA_BASE_URLS);
if (OLLAMA_BASE_URLS.length === 0) { if (OLLAMA_BASE_URLS.length === 0) {
+59 -5
View File
@@ -31,6 +31,17 @@
} }
})(); })();
} }
let sortKey = 'updated_at'; // default sort key
let sortOrder = 'desc'; // default sort order
function setSortKey(key) {
if (sortKey === key) {
sortOrder = sortOrder === 'asc' ? 'desc' : 'asc';
} else {
sortKey = key;
sortOrder = 'asc';
}
}
</script> </script>
<Modal size="lg" bind:show> <Modal size="lg" bind:show>
@@ -69,18 +80,56 @@
class="text-xs text-gray-700 uppercase bg-transparent dark:text-gray-200 border-b-2 dark:border-gray-800" class="text-xs text-gray-700 uppercase bg-transparent dark:text-gray-200 border-b-2 dark:border-gray-800"
> >
<tr> <tr>
<th scope="col" class="px-3 py-2"> {$i18n.t('Name')} </th> <th
<th scope="col" class="px-3 py-2 hidden md:flex"> {$i18n.t('Created at')} </th> scope="col"
class="px-3 py-2 cursor-pointer select-none"
on:click={() => setSortKey('title')}
>
{$i18n.t('Title')}
{#if sortKey === 'title'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th
scope="col"
class="px-3 py-2 cursor-pointer select-none"
on:click={() => setSortKey('created_at')}
>
{$i18n.t('Created at')}
{#if sortKey === 'created_at'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th
scope="col"
class="px-3 py-2 hidden md:flex cursor-pointer select-none"
on:click={() => setSortKey('updated_at')}
>
{$i18n.t('Updated at')}
{#if sortKey === 'updated_at'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th scope="col" class="px-3 py-2 text-right" /> <th scope="col" class="px-3 py-2 text-right" />
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{#each chats as chat, idx} {#each chats.sort((a, b) => {
if (a[sortKey] < b[sortKey]) return sortOrder === 'asc' ? -1 : 1;
if (a[sortKey] > b[sortKey]) return sortOrder === 'asc' ? 1 : -1;
return 0;
}) as chat, idx}
<tr <tr
class="bg-transparent {idx !== chats.length - 1 && class="bg-transparent {idx !== chats.length - 1 &&
'border-b'} dark:bg-gray-900 dark:border-gray-850 text-xs" 'border-b'} dark:bg-gray-900 dark:border-gray-850 text-xs"
> >
<td class="px-3 py-1 w-2/3"> <td class="px-3 py-1">
<a href="/s/{chat.id}" target="_blank"> <a href="/s/{chat.id}" target="_blank">
<div class=" underline line-clamp-1"> <div class=" underline line-clamp-1">
{chat.title} {chat.title}
@@ -88,11 +137,16 @@
</a> </a>
</td> </td>
<td class=" px-3 py-1 hidden md:flex h-[2.5rem]"> <td class=" px-3 py-1 h-[2.5rem]">
<div class="my-auto"> <div class="my-auto">
{dayjs(chat.created_at * 1000).format($i18n.t('MMMM DD, YYYY HH:mm'))} {dayjs(chat.created_at * 1000).format($i18n.t('MMMM DD, YYYY HH:mm'))}
</div> </div>
</td> </td>
<td class=" px-3 py-1 hidden md:flex h-[2.5rem]">
<div class="my-auto">
{dayjs(chat.updated_at * 1000).format($i18n.t('MMMM DD, YYYY HH:mm'))}
</div>
</td>
<td class="px-3 py-1 text-right"> <td class="px-3 py-1 text-right">
<div class="flex justify-end w-full"> <div class="flex justify-end w-full">
+16 -3
View File
@@ -31,6 +31,7 @@
convertMessagesToHistory, convertMessagesToHistory,
copyToClipboard, copyToClipboard,
extractSentencesForAudio, extractSentencesForAudio,
getUserPosition,
promptTemplate, promptTemplate,
splitStream splitStream
} from '$lib/utils'; } from '$lib/utils';
@@ -50,7 +51,7 @@
import { runWebSearch } from '$lib/apis/rag'; import { runWebSearch } from '$lib/apis/rag';
import { createOpenAITextStream } from '$lib/apis/streaming'; import { createOpenAITextStream } from '$lib/apis/streaming';
import { queryMemory } from '$lib/apis/memories'; import { queryMemory } from '$lib/apis/memories';
import { getUserSettings } from '$lib/apis/users'; import { getAndUpdateUserLocation, getUserSettings } from '$lib/apis/users';
import { chatCompleted, generateTitle, generateSearchQuery } from '$lib/apis'; import { chatCompleted, generateTitle, generateSearchQuery } from '$lib/apis';
import Banner from '../common/Banner.svelte'; import Banner from '../common/Banner.svelte';
@@ -533,7 +534,13 @@
$settings.system || (responseMessage?.userContext ?? null) $settings.system || (responseMessage?.userContext ?? null)
? { ? {
role: 'system', role: 'system',
content: `${promptTemplate($settings?.system ?? '', $user.name)}${ content: `${promptTemplate(
$settings?.system ?? '',
$user.name,
$settings?.userLocation
? await getAndUpdateUserLocation(localStorage.token)
: undefined
)}${
responseMessage?.userContext ?? null responseMessage?.userContext ?? null
? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}` ? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}`
: '' : ''
@@ -871,7 +878,13 @@
$settings.system || (responseMessage?.userContext ?? null) $settings.system || (responseMessage?.userContext ?? null)
? { ? {
role: 'system', role: 'system',
content: `${promptTemplate($settings?.system ?? '', $user.name)}${ content: `${promptTemplate(
$settings?.system ?? '',
$user.name,
$settings?.userLocation
? await getAndUpdateUserLocation(localStorage.token)
: undefined
)}${
responseMessage?.userContext ?? null responseMessage?.userContext ?? null
? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}` ? `\n\nUser Context:\n${(responseMessage?.userContext ?? []).join('\n')}`
: '' : ''
@@ -31,6 +31,7 @@
let loading = false; let loading = false;
let confirmed = false; let confirmed = false;
let interrupted = false; let interrupted = false;
let assistantSpeaking = false;
let emoji = null; let emoji = null;
@@ -268,6 +269,15 @@
return; return;
} }
if (assistantSpeaking) {
// Mute the audio if the assistant is speaking
analyser.maxDecibels = 0;
analyser.minDecibels = -1;
} else {
analyser.minDecibels = MIN_DECIBELS;
analyser.maxDecibels = -30;
}
analyser.getByteTimeDomainData(timeDomainData); analyser.getByteTimeDomainData(timeDomainData);
analyser.getByteFrequencyData(domainData); analyser.getByteFrequencyData(domainData);
@@ -379,6 +389,7 @@
}; };
const stopAllAudio = async () => { const stopAllAudio = async () => {
assistantSpeaking = false;
interrupted = true; interrupted = true;
if (chatStreaming) { if (chatStreaming) {
@@ -485,6 +496,7 @@
} }
} else if (finishedMessages[id] && messages[id] && messages[id].length === 0) { } else if (finishedMessages[id] && messages[id] && messages[id].length === 0) {
// If the message is finished and there are no more messages to process, break the loop // If the message is finished and there are no more messages to process, break the loop
assistantSpeaking = false;
break; break;
} else { } else {
// No messages to process, sleep for a bit // No messages to process, sleep for a bit
@@ -511,6 +523,7 @@
} }
audioAbortController = new AbortController(); audioAbortController = new AbortController();
assistantSpeaking = true;
// Start monitoring and playing audio for the message ID // Start monitoring and playing audio for the message ID
monitorAndPlayAudio(id, audioAbortController.signal); monitorAndPlayAudio(id, audioAbortController.signal);
} }
@@ -545,9 +558,9 @@
const chatFinishHandler = async (e) => { const chatFinishHandler = async (e) => {
const { id, content } = e.detail; const { id, content } = e.detail;
// "content" here is the entire message from the assistant // "content" here is the entire message from the assistant
finishedMessages[id] = true;
chatStreaming = false; chatStreaming = false;
finishedMessages[id] = true;
}; };
eventTarget.addEventListener('chat:start', chatStartHandler); eventTarget.addEventListener('chat:start', chatStartHandler);
@@ -577,7 +590,15 @@
> >
<div class="max-w-lg w-full h-screen max-h-[100dvh] flex flex-col justify-between p-3 md:p-6"> <div class="max-w-lg w-full h-screen max-h-[100dvh] flex flex-col justify-between p-3 md:p-6">
{#if camera} {#if camera}
<div class="flex justify-center items-center w-full h-20 min-h-20"> <button
type="button"
class="flex justify-center items-center w-full h-20 min-h-20"
on:click={() => {
if (assistantSpeaking) {
stopAllAudio();
}
}}
>
{#if emoji} {#if emoji}
<div <div
class=" transition-all rounded-full" class=" transition-all rounded-full"
@@ -591,7 +612,7 @@
> >
{emoji} {emoji}
</div> </div>
{:else if loading} {:else if loading || assistantSpeaking}
<svg <svg
class="size-12 text-gray-900 dark:text-gray-400" class="size-12 text-gray-900 dark:text-gray-400"
viewBox="0 0 24 24" viewBox="0 0 24 24"
@@ -640,72 +661,81 @@
/> />
{/if} {/if}
<!-- navbar --> <!-- navbar -->
</div> </button>
{/if} {/if}
<div class="flex justify-center items-center flex-1 h-full w-full max-h-full"> <div class="flex justify-center items-center flex-1 h-full w-full max-h-full">
{#if !camera} {#if !camera}
{#if emoji} <button
<div type="button"
class=" transition-all rounded-full" on:click={() => {
style="font-size:{rmsLevel * 100 > 4 if (assistantSpeaking) {
? '13' stopAllAudio();
: rmsLevel * 100 > 2 }
? '12' }}
: rmsLevel * 100 > 1 >
? '11.5' {#if emoji}
: '11'}rem;width:100%;text-align:center;" <div
> class=" transition-all rounded-full"
{emoji} style="font-size:{rmsLevel * 100 > 4
</div> ? '13'
{:else if loading} : rmsLevel * 100 > 2
<svg ? '12'
class="size-44 text-gray-900 dark:text-gray-400" : rmsLevel * 100 > 1
viewBox="0 0 24 24" ? '11.5'
fill="currentColor" : '11'}rem;width:100%;text-align:center;"
xmlns="http://www.w3.org/2000/svg" >
><style> {emoji}
.spinner_qM83 { </div>
animation: spinner_8HQG 1.05s infinite; {:else if loading || assistantSpeaking}
} <svg
.spinner_oXPr { class="size-44 text-gray-900 dark:text-gray-400"
animation-delay: 0.1s; viewBox="0 0 24 24"
} fill="currentColor"
.spinner_ZTLf { xmlns="http://www.w3.org/2000/svg"
animation-delay: 0.2s; ><style>
} .spinner_qM83 {
@keyframes spinner_8HQG { animation: spinner_8HQG 1.05s infinite;
0%,
57.14% {
animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);
transform: translate(0);
} }
28.57% { .spinner_oXPr {
animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33); animation-delay: 0.1s;
transform: translateY(-6px);
} }
100% { .spinner_ZTLf {
transform: translate(0); animation-delay: 0.2s;
} }
} @keyframes spinner_8HQG {
</style><circle class="spinner_qM83" cx="4" cy="12" r="3" /><circle 0%,
class="spinner_qM83 spinner_oXPr" 57.14% {
cx="12" animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);
cy="12" transform: translate(0);
r="3" }
/><circle class="spinner_qM83 spinner_ZTLf" cx="20" cy="12" r="3" /></svg 28.57% {
> animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);
{:else} transform: translateY(-6px);
<div }
class=" {rmsLevel * 100 > 4 100% {
? ' size-52' transform: translate(0);
: rmsLevel * 100 > 2 }
? 'size-48' }
: rmsLevel * 100 > 1 </style><circle class="spinner_qM83" cx="4" cy="12" r="3" /><circle
? 'size-[11.5rem]' class="spinner_qM83 spinner_oXPr"
: 'size-44'} transition-all bg-black dark:bg-white rounded-full" cx="12"
/> cy="12"
{/if} r="3"
/><circle class="spinner_qM83 spinner_ZTLf" cx="20" cy="12" r="3" /></svg
>
{:else}
<div
class=" {rmsLevel * 100 > 4
? ' size-52'
: rmsLevel * 100 > 2
? 'size-48'
: rmsLevel * 100 > 1
? 'size-[11.5rem]'
: 'size-44'} transition-all bg-black dark:bg-white rounded-full"
/>
{/if}
</button>
{:else} {:else}
<div <div
class="relative flex video-container w-full max-h-full pt-2 pb-4 md:py-6 px-2 h-full" class="relative flex video-container w-full max-h-full pt-2 pb-4 md:py-6 px-2 h-full"
@@ -805,10 +835,19 @@
</div> </div>
<div> <div>
<button type="button"> <button
type="button"
on:click={() => {
if (assistantSpeaking) {
stopAllAudio();
}
}}
>
<div class=" line-clamp-1 text-sm font-medium"> <div class=" line-clamp-1 text-sm font-medium">
{#if loading} {#if loading}
{$i18n.t('Thinking...')} {$i18n.t('Thinking...')}
{:else if assistantSpeaking}
{$i18n.t('Tap to interrupt')}
{:else} {:else}
{$i18n.t('Listening...')} {$i18n.t('Listening...')}
{/if} {/if}
@@ -102,17 +102,19 @@
{#if filteredItems.length > 0 || prompt.split(' ')?.at(0)?.substring(1).startsWith('http')} {#if filteredItems.length > 0 || prompt.split(' ')?.at(0)?.substring(1).startsWith('http')}
<div class="pl-1 pr-12 mb-3 text-left w-full absolute bottom-0 left-0 right-0"> <div class="pl-1 pr-12 mb-3 text-left w-full absolute bottom-0 left-0 right-0">
<div class="flex w-full px-2"> <div class="flex w-full dark:border dark:border-gray-850 rounded-lg">
<div class=" bg-gray-100 dark:bg-gray-700 w-10 rounded-l-xl text-center"> <div class=" bg-gray-50 dark:bg-gray-850 w-10 rounded-l-lg text-center">
<div class=" text-lg font-semibold mt-2">#</div> <div class=" text-lg font-semibold mt-2">#</div>
</div> </div>
<div class="max-h-60 flex flex-col w-full rounded-r-xl bg-white"> <div
<div class="m-1 overflow-y-auto p-1 rounded-r-xl space-y-0.5"> class="max-h-60 flex flex-col w-full rounded-r-xl bg-white dark:bg-gray-900 dark:text-gray-100"
>
<div class="m-1 overflow-y-auto p-1 rounded-r-xl space-y-0.5 scrollbar-hidden">
{#each filteredItems as doc, docIdx} {#each filteredItems as doc, docIdx}
<button <button
class=" px-3 py-1.5 rounded-xl w-full text-left {docIdx === selectedIdx class=" px-3 py-1.5 rounded-xl w-full text-left {docIdx === selectedIdx
? ' bg-gray-100 selected-command-option-button' ? ' bg-gray-50 dark:bg-gray-850 dark:text-gray-100 selected-command-option-button'
: ''}" : ''}"
type="button" type="button"
on:click={() => { on:click={() => {
@@ -126,17 +128,19 @@
on:focus={() => {}} on:focus={() => {}}
> >
{#if doc.type === 'collection'} {#if doc.type === 'collection'}
<div class=" font-medium text-black line-clamp-1"> <div class=" font-medium text-black dark:text-gray-100 line-clamp-1">
{doc?.title ?? `#${doc.name}`} {doc?.title ?? `#${doc.name}`}
</div> </div>
<div class=" text-xs text-gray-600 line-clamp-1">{$i18n.t('Collection')}</div> <div class=" text-xs text-gray-600 dark:text-gray-100 line-clamp-1">
{$i18n.t('Collection')}
</div>
{:else} {:else}
<div class=" font-medium text-black line-clamp-1"> <div class=" font-medium text-black dark:text-gray-100 line-clamp-1">
#{doc.name} ({doc.filename}) #{doc.name} ({doc.filename})
</div> </div>
<div class=" text-xs text-gray-600 line-clamp-1"> <div class=" text-xs text-gray-600 dark:text-gray-100 line-clamp-1">
{doc.title} {doc.title}
</div> </div>
{/if} {/if}
@@ -134,17 +134,19 @@
{#if prompt.charAt(0) === '@'} {#if prompt.charAt(0) === '@'}
{#if filteredModels.length > 0} {#if filteredModels.length > 0}
<div class="pl-1 pr-12 mb-3 text-left w-full absolute bottom-0 left-0 right-0"> <div class="pl-1 pr-12 mb-3 text-left w-full absolute bottom-0 left-0 right-0">
<div class="flex w-full px-2"> <div class="flex w-full dark:border dark:border-gray-850 rounded-lg">
<div class=" bg-gray-100 dark:bg-gray-700 w-10 rounded-l-xl text-center"> <div class=" bg-gray-50 dark:bg-gray-850 w-10 rounded-l-lg text-center">
<div class=" text-lg font-semibold mt-2">@</div> <div class=" text-lg font-semibold mt-2">@</div>
</div> </div>
<div class="max-h-60 flex flex-col w-full rounded-r-xl bg-white"> <div
<div class="m-1 overflow-y-auto p-1 rounded-r-xl space-y-0.5"> class="max-h-60 flex flex-col w-full rounded-r-lg bg-white dark:bg-gray-900 dark:text-gray-100"
>
<div class="m-1 overflow-y-auto p-1 rounded-r-lg space-y-0.5 scrollbar-hidden">
{#each filteredModels as model, modelIdx} {#each filteredModels as model, modelIdx}
<button <button
class=" px-3 py-1.5 rounded-xl w-full text-left {modelIdx === selectedIdx class=" px-3 py-1.5 rounded-xl w-full text-left {modelIdx === selectedIdx
? ' bg-gray-100 selected-command-option-button' ? ' bg-gray-50 dark:bg-gray-850 selected-command-option-button'
: ''}" : ''}"
type="button" type="button"
on:click={() => { on:click={() => {
@@ -155,7 +157,7 @@
}} }}
on:focus={() => {}} on:focus={() => {}}
> >
<div class=" font-medium text-black line-clamp-1"> <div class=" font-medium text-black dark:text-gray-100 line-clamp-1">
{model.name} {model.name}
</div> </div>
@@ -89,17 +89,19 @@
{#if filteredPromptCommands.length > 0} {#if filteredPromptCommands.length > 0}
<div class="pl-1 pr-12 mb-3 text-left w-full absolute bottom-0 left-0 right-0"> <div class="pl-1 pr-12 mb-3 text-left w-full absolute bottom-0 left-0 right-0">
<div class="flex w-full px-2"> <div class="flex w-full dark:border dark:border-gray-850 rounded-lg">
<div class=" bg-gray-100 dark:bg-gray-700 w-10 rounded-l-xl text-center"> <div class=" bg-gray-50 dark:bg-gray-850 w-10 rounded-l-lg text-center">
<div class=" text-lg font-semibold mt-2">/</div> <div class=" text-lg font-semibold mt-2">/</div>
</div> </div>
<div class="max-h-60 flex flex-col w-full rounded-r-xl bg-white"> <div
<div class="m-1 overflow-y-auto p-1 rounded-r-xl space-y-0.5"> class="max-h-60 flex flex-col w-full rounded-r-lg bg-white dark:bg-gray-900 dark:text-gray-100"
>
<div class="m-1 overflow-y-auto p-1 rounded-r-lg space-y-0.5 scrollbar-hidden">
{#each filteredPromptCommands as command, commandIdx} {#each filteredPromptCommands as command, commandIdx}
<button <button
class=" px-3 py-1.5 rounded-xl w-full text-left {commandIdx === selectedCommandIdx class=" px-3 py-1.5 rounded-xl w-full text-left {commandIdx === selectedCommandIdx
? ' bg-gray-100 selected-command-option-button' ? ' bg-gray-50 dark:bg-gray-850 selected-command-option-button'
: ''}" : ''}"
type="button" type="button"
on:click={() => { on:click={() => {
@@ -110,11 +112,11 @@
}} }}
on:focus={() => {}} on:focus={() => {}}
> >
<div class=" font-medium text-black"> <div class=" font-medium text-black dark:text-gray-100">
{command.command} {command.command}
</div> </div>
<div class=" text-xs text-gray-600"> <div class=" text-xs text-gray-600 dark:text-gray-100">
{command.title} {command.title}
</div> </div>
</button> </button>
@@ -122,7 +124,7 @@
</div> </div>
<div <div
class=" px-2 pb-1 text-xs text-gray-600 bg-white rounded-br-xl flex items-center space-x-1" class=" px-2 pb-1 text-xs text-gray-600 dark:text-gray-100 bg-white dark:bg-gray-900 rounded-br-xl flex items-center space-x-1"
> >
<div> <div>
<svg <svg
+36 -23
View File
@@ -202,38 +202,51 @@
}, 100); }, 100);
}; };
const messageDeleteHandler = async (messageId) => { const deleteMessageHandler = async (messageId) => {
const messageToDelete = history.messages[messageId]; const messageToDelete = history.messages[messageId];
const messageParentId = messageToDelete.parentId;
const messageChildrenIds = messageToDelete.childrenIds ?? []; const parentMessageId = messageToDelete.parentId;
const hasSibling = messageChildrenIds.some( const childMessageIds = messageToDelete.childrenIds ?? [];
const hasDescendantMessages = childMessageIds.some(
(childId) => history.messages[childId]?.childrenIds?.length > 0 (childId) => history.messages[childId]?.childrenIds?.length > 0
); );
messageChildrenIds.forEach((childId) => {
const child = history.messages[childId]; history.currentId = parentMessageId;
if (child && child.childrenIds) { await tick();
if (child.childrenIds.length === 0 && !hasSibling) {
// if last prompt/response pair // Remove the message itself from the parent message's children array
history.messages[messageParentId].childrenIds = []; history.messages[parentMessageId].childrenIds = history.messages[
history.currentId = messageParentId; parentMessageId
].childrenIds.filter((id) => id !== messageId);
await tick();
childMessageIds.forEach((childId) => {
const childMessage = history.messages[childId];
if (childMessage && childMessage.childrenIds) {
if (childMessage.childrenIds.length === 0 && !hasDescendantMessages) {
// If there are no other responses/prompts
history.messages[parentMessageId].childrenIds = [];
} else { } else {
child.childrenIds.forEach((grandChildId) => { childMessage.childrenIds.forEach((grandChildId) => {
if (history.messages[grandChildId]) { if (history.messages[grandChildId]) {
history.messages[grandChildId].parentId = messageParentId; history.messages[grandChildId].parentId = parentMessageId;
history.messages[messageParentId].childrenIds.push(grandChildId); history.messages[parentMessageId].childrenIds.push(grandChildId);
} }
}); });
} }
} }
// remove response
history.messages[messageParentId].childrenIds = history.messages[ // Remove child message id from the parent message's children array
messageParentId history.messages[parentMessageId].childrenIds = history.messages[
parentMessageId
].childrenIds.filter((id) => id !== childId); ].childrenIds.filter((id) => id !== childId);
}); });
// remove prompt
history.messages[messageParentId].childrenIds = history.messages[ await tick();
messageParentId
].childrenIds.filter((id) => id !== messageId);
await updateChatById(localStorage.token, chatId, { await updateChatById(localStorage.token, chatId, {
messages: messages, messages: messages,
history: history history: history
@@ -292,7 +305,7 @@
> >
{#if message.role === 'user'} {#if message.role === 'user'}
<UserMessage <UserMessage
on:delete={() => messageDeleteHandler(message.id)} on:delete={() => deleteMessageHandler(message.id)}
{user} {user}
{readOnly} {readOnly}
{message} {message}
@@ -308,7 +321,7 @@
copyToClipboard={copyToClipboardWithToast} copyToClipboard={copyToClipboardWithToast}
/> />
{:else if $mobile || (history.messages[message.parentId]?.models?.length ?? 1) === 1} {:else if $mobile || (history.messages[message.parentId]?.models?.length ?? 1) === 1}
{#key message.id} {#key message.id && history.currentId}
<ResponseMessage <ResponseMessage
{message} {message}
siblings={history.messages[message.parentId]?.childrenIds ?? []} siblings={history.messages[message.parentId]?.childrenIds ?? []}
@@ -940,68 +940,68 @@
> >
</button> </button>
</Tooltip> </Tooltip>
{/if}
{#if isLastMessage && !readOnly} {#if isLastMessage}
<Tooltip content={$i18n.t('Continue Response')} placement="bottom"> <Tooltip content={$i18n.t('Continue Response')} placement="bottom">
<button <button
type="button" type="button"
class="{isLastMessage class="{isLastMessage
? 'visible' ? 'visible'
: 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition regenerate-response-button" : 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition regenerate-response-button"
on:click={() => { on:click={() => {
continueGeneration(); continueGeneration();
}} }}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2.3"
stroke="currentColor"
class="w-4 h-4"
> >
<path <svg
stroke-linecap="round" xmlns="http://www.w3.org/2000/svg"
stroke-linejoin="round" fill="none"
d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" viewBox="0 0 24 24"
/> stroke-width="2.3"
<path stroke="currentColor"
stroke-linecap="round" class="w-4 h-4"
stroke-linejoin="round" >
d="M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z" <path
/> stroke-linecap="round"
</svg> stroke-linejoin="round"
</button> d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
</Tooltip> />
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"
/>
</svg>
</button>
</Tooltip>
<Tooltip content={$i18n.t('Regenerate')} placement="bottom"> <Tooltip content={$i18n.t('Regenerate')} placement="bottom">
<button <button
type="button" type="button"
class="{isLastMessage class="{isLastMessage
? 'visible' ? 'visible'
: 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition regenerate-response-button" : 'invisible group-hover:visible'} p-1.5 hover:bg-black/5 dark:hover:bg-white/5 rounded-lg dark:hover:text-white hover:text-black transition regenerate-response-button"
on:click={() => { on:click={() => {
showRateComment = false; showRateComment = false;
regenerateResponse(message); regenerateResponse(message);
}} }}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2.3"
stroke="currentColor"
class="w-4 h-4"
> >
<path <svg
stroke-linecap="round" xmlns="http://www.w3.org/2000/svg"
stroke-linejoin="round" fill="none"
d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99" viewBox="0 0 24 24"
/> stroke-width="2.3"
</svg> stroke="currentColor"
</button> class="w-4 h-4"
</Tooltip> >
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"
/>
</svg>
</button>
</Tooltip>
{/if}
{/if} {/if}
{/if} {/if}
</div> </div>
@@ -5,6 +5,8 @@
import { createEventDispatcher, onMount, getContext } from 'svelte'; import { createEventDispatcher, onMount, getContext } from 'svelte';
import { toast } from 'svelte-sonner'; import { toast } from 'svelte-sonner';
import Tooltip from '$lib/components/common/Tooltip.svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte';
import { updateUserInfo } from '$lib/apis/users';
import { getUserPosition } from '$lib/utils';
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
const i18n = getContext('i18n'); const i18n = getContext('i18n');
@@ -16,6 +18,7 @@
let responseAutoCopy = false; let responseAutoCopy = false;
let widescreenMode = false; let widescreenMode = false;
let splitLargeChunks = false; let splitLargeChunks = false;
let userLocation = false;
// Interface // Interface
let defaultModelId = ''; let defaultModelId = '';
@@ -51,6 +54,26 @@
saveSettings({ showEmojiInCall: showEmojiInCall }); saveSettings({ showEmojiInCall: showEmojiInCall });
}; };
const toggleUserLocation = async () => {
userLocation = !userLocation;
if (userLocation) {
const position = await getUserPosition().catch((error) => {
toast.error(error.message);
return null;
});
if (position) {
await updateUserInfo(localStorage.token, { location: position });
toast.success('User location successfully retrieved.');
} else {
userLocation = false;
}
}
saveSettings({ userLocation });
};
const toggleTitleAutoGenerate = async () => { const toggleTitleAutoGenerate = async () => {
titleAutoGenerate = !titleAutoGenerate; titleAutoGenerate = !titleAutoGenerate;
saveSettings({ saveSettings({
@@ -106,6 +129,7 @@
widescreenMode = $settings.widescreenMode ?? false; widescreenMode = $settings.widescreenMode ?? false;
splitLargeChunks = $settings.splitLargeChunks ?? false; splitLargeChunks = $settings.splitLargeChunks ?? false;
chatDirection = $settings.chatDirection ?? 'LTR'; chatDirection = $settings.chatDirection ?? 'LTR';
userLocation = $settings.userLocation ?? false;
defaultModelId = ($settings?.models ?? ['']).at(0); defaultModelId = ($settings?.models ?? ['']).at(0);
}); });
@@ -142,6 +166,26 @@
</div> </div>
</div> </div>
<div>
<div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Widescreen Mode')}</div>
<button
class="p-1 px-3 text-xs flex rounded transition"
on:click={() => {
togglewidescreenMode();
}}
type="button"
>
{#if widescreenMode === true}
<span class="ml-2 self-center">{$i18n.t('On')}</span>
{:else}
<span class="ml-2 self-center">{$i18n.t('Off')}</span>
{/if}
</button>
</div>
</div>
<div> <div>
<div class=" py-0.5 flex w-full justify-between"> <div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Title Auto-Generation')}</div> <div class=" self-center text-xs font-medium">{$i18n.t('Title Auto-Generation')}</div>
@@ -186,16 +230,16 @@
<div> <div>
<div class=" py-0.5 flex w-full justify-between"> <div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Widescreen Mode')}</div> <div class=" self-center text-xs font-medium">{$i18n.t('Allow User Location')}</div>
<button <button
class="p-1 px-3 text-xs flex rounded transition" class="p-1 px-3 text-xs flex rounded transition"
on:click={() => { on:click={() => {
togglewidescreenMode(); toggleUserLocation();
}} }}
type="button" type="button"
> >
{#if widescreenMode === true} {#if userLocation === true}
<span class="ml-2 self-center">{$i18n.t('On')}</span> <span class="ml-2 self-center">{$i18n.t('On')}</span>
{:else} {:else}
<span class="ml-2 self-center">{$i18n.t('Off')}</span> <span class="ml-2 self-center">{$i18n.t('Off')}</span>
+25 -5
View File
@@ -120,18 +120,31 @@
} }
}; };
document.addEventListener('keydown', onKeyDown); const onFocus = () => {};
document.addEventListener('keyup', onKeyUp);
const onBlur = () => {
shiftKey = false;
selectedChatId = null;
};
window.addEventListener('keydown', onKeyDown);
window.addEventListener('keyup', onKeyUp);
window.addEventListener('touchstart', onTouchStart); window.addEventListener('touchstart', onTouchStart);
window.addEventListener('touchend', onTouchEnd); window.addEventListener('touchend', onTouchEnd);
window.addEventListener('focus', onFocus);
window.addEventListener('blur', onBlur);
return () => { return () => {
window.removeEventListener('keydown', onKeyDown); window.removeEventListener('keydown', onKeyDown);
window.removeEventListener('keyup', onKeyUp); window.removeEventListener('keyup', onKeyUp);
window.removeEventListener('touchstart', onTouchStart); window.removeEventListener('touchstart', onTouchStart);
window.removeEventListener('touchend', onTouchEnd); window.removeEventListener('touchend', onTouchEnd);
window.removeEventListener('focus', onFocus);
window.removeEventListener('blur', onBlur);
}; };
}); });
@@ -464,9 +477,16 @@
on:select={() => { on:select={() => {
selectedChatId = chat.id; selectedChatId = chat.id;
}} }}
on:delete={() => { on:unselect={() => {
deleteChat = chat; selectedChatId = null;
showDeleteConfirm = true; }}
on:delete={(e) => {
if ((e?.detail ?? '') === 'shift') {
deleteChatHandler(chat.id);
} else {
deleteChat = chat;
showDeleteConfirm = true;
}
}} }}
/> />
{/each} {/each}
@@ -201,7 +201,7 @@
<button <button
class=" self-center dark:hover:text-white transition" class=" self-center dark:hover:text-white transition"
on:click={() => { on:click={() => {
deleteChat(chat.id); dispatch('delete', 'shift');
}} }}
type="button" type="button"
> >
@@ -231,7 +231,7 @@
dispatch('delete'); dispatch('delete');
}} }}
onClose={() => { onClose={() => {
selected = false; dispatch('unselect');
}} }}
> >
<button <button
@@ -42,6 +42,7 @@
"Allow": "يسمح", "Allow": "يسمح",
"Allow Chat Deletion": "يستطيع حذف المحادثات", "Allow Chat Deletion": "يستطيع حذف المحادثات",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "الأحرف الأبجدية الرقمية والواصلات", "alphanumeric characters and hyphens": "الأحرف الأبجدية الرقمية والواصلات",
"Already have an account?": "هل تملك حساب ؟", "Already have an account?": "هل تملك حساب ؟",
"an assistant": "مساعد", "an assistant": "مساعد",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. الوحدات الزمنية الصالحة هي 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. الوحدات الزمنية الصالحة هي 's', 'm', 'h'.",
"Edit": "تعديل", "Edit": "تعديل",
"Edit Doc": "تعديل الملف", "Edit Doc": "تعديل الملف",
"Edit Memory": "",
"Edit User": "تعديل المستخدم", "Edit User": "تعديل المستخدم",
"Email": "البريد", "Email": "البريد",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "اللغة", "Language": "اللغة",
"Last Active": "آخر نشاط", "Last Active": "آخر نشاط",
"Last Modified": "",
"Light": "فاتح", "Light": "فاتح",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "يمكن أن تصدر بعض الأخطاء. لذلك يجب التحقق من المعلومات المهمة", "LLMs can make mistakes. Verify important information.": "يمكن أن تصدر بعض الأخطاء. لذلك يجب التحقق من المعلومات المهمة",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "تم تحميل النموذج '{{modelName}}' بنجاح", "Model '{{modelName}}' has been successfully downloaded.": "تم تحميل النموذج '{{modelName}}' بنجاح",
"Model '{{modelTag}}' is already in queue for downloading.": "النموذج '{{modelTag}}' موجود بالفعل في قائمة الانتظار للتحميل", "Model '{{modelTag}}' is already in queue for downloading.": "النموذج '{{modelTag}}' موجود بالفعل في قائمة الانتظار للتحميل",
"Model {{modelId}} not found": "لم يتم العثور على النموذج {{modelId}}.", "Model {{modelId}} not found": "لم يتم العثور على النموذج {{modelId}}.",
@@ -495,6 +499,7 @@
"System": "النظام", "System": "النظام",
"System Prompt": "محادثة النظام", "System Prompt": "محادثة النظام",
"Tags": "الوسوم", "Tags": "الوسوم",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "أخبرنا المزيد:", "Tell us more:": "أخبرنا المزيد:",
"Temperature": "درجة حرارة", "Temperature": "درجة حرارة",
@@ -538,8 +543,10 @@
"Type Hugging Face Resolve (Download) URL": "اكتب عنوان URL لحل مشكلة الوجه (تنزيل).", "Type Hugging Face Resolve (Download) URL": "اكتب عنوان URL لحل مشكلة الوجه (تنزيل).",
"Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}خطاء أوه! حدثت مشكلة في الاتصال بـ ", "Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}خطاء أوه! حدثت مشكلة في الاتصال بـ ",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع ملف غير معروف '{{file_type}}', ولكن القبول والتعامل كنص عادي ", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع ملف غير معروف '{{file_type}}', ولكن القبول والتعامل كنص عادي ",
"Update": "",
"Update and Copy Link": "تحديث ونسخ الرابط", "Update and Copy Link": "تحديث ونسخ الرابط",
"Update password": "تحديث كلمة المرور", "Update password": "تحديث كلمة المرور",
"Updated at": "",
"Upload a GGUF model": "GGUF رفع موديل نوع", "Upload a GGUF model": "GGUF رفع موديل نوع",
"Upload Files": "تحميل الملفات", "Upload Files": "تحميل الملفات",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Позволи", "Allow": "Позволи",
"Allow Chat Deletion": "Позволи Изтриване на Чат", "Allow Chat Deletion": "Позволи Изтриване на Чат",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "алфанумерични знаци и тире", "alphanumeric characters and hyphens": "алфанумерични знаци и тире",
"Already have an account?": "Вече имате акаунт? ", "Already have an account?": "Вече имате акаунт? ",
"an assistant": "асистент", "an assistant": "асистент",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр. '30с','10м'. Валидни единици са 'с', 'м', 'ч'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр. '30с','10м'. Валидни единици са 'с', 'м', 'ч'.",
"Edit": "Редактиране", "Edit": "Редактиране",
"Edit Doc": "Редактиране на документ", "Edit Doc": "Редактиране на документ",
"Edit Memory": "",
"Edit User": "Редактиране на потребител", "Edit User": "Редактиране на потребител",
"Email": "Имейл", "Email": "Имейл",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Език", "Language": "Език",
"Last Active": "Последни активни", "Last Active": "Последни активни",
"Last Modified": "",
"Light": "Светъл", "Light": "Светъл",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs могат да правят грешки. Проверете важните данни.", "LLMs can make mistakes. Verify important information.": "LLMs могат да правят грешки. Проверете важните данни.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Моделът '{{modelName}}' беше успешно свален.", "Model '{{modelName}}' has been successfully downloaded.": "Моделът '{{modelName}}' беше успешно свален.",
"Model '{{modelTag}}' is already in queue for downloading.": "Моделът '{{modelTag}}' е вече в очакване за сваляне.", "Model '{{modelTag}}' is already in queue for downloading.": "Моделът '{{modelTag}}' е вече в очакване за сваляне.",
"Model {{modelId}} not found": "Моделът {{modelId}} не е намерен", "Model {{modelId}} not found": "Моделът {{modelId}} не е намерен",
@@ -491,6 +495,7 @@
"System": "Система", "System": "Система",
"System Prompt": "Системен Промпт", "System Prompt": "Системен Промпт",
"Tags": "Тагове", "Tags": "Тагове",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Повече информация:", "Tell us more:": "Повече информация:",
"Temperature": "Температура", "Temperature": "Температура",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Въведете Hugging Face Resolve (Download) URL", "Type Hugging Face Resolve (Download) URL": "Въведете Hugging Face Resolve (Download) URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст",
"Update": "",
"Update and Copy Link": "Обнови и копирай връзка", "Update and Copy Link": "Обнови и копирай връзка",
"Update password": "Обновяване на парола", "Update password": "Обновяване на парола",
"Updated at": "",
"Upload a GGUF model": "Качване на GGUF модел", "Upload a GGUF model": "Качване на GGUF модел",
"Upload Files": "Качване на файлове", "Upload Files": "Качване на файлове",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "অনুমোদন", "Allow": "অনুমোদন",
"Allow Chat Deletion": "চ্যাট ডিলিট করতে দিন", "Allow Chat Deletion": "চ্যাট ডিলিট করতে দিন",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "ইংরেজি অক্ষর, সংখ্যা এবং হাইফেন", "alphanumeric characters and hyphens": "ইংরেজি অক্ষর, সংখ্যা এবং হাইফেন",
"Already have an account?": "আগে থেকেই একাউন্ট আছে?", "Already have an account?": "আগে থেকেই একাউন্ট আছে?",
"an assistant": "একটা এসিস্ট্যান্ট", "an assistant": "একটা এসিস্ট্যান্ট",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "যেমন '30s','10m'. সময়ের অনুমোদিত অনুমোদিত এককগুলি হচ্ছে 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "যেমন '30s','10m'. সময়ের অনুমোদিত অনুমোদিত এককগুলি হচ্ছে 's', 'm', 'h'.",
"Edit": "এডিট করুন", "Edit": "এডিট করুন",
"Edit Doc": "ডকুমেন্ট এডিট করুন", "Edit Doc": "ডকুমেন্ট এডিট করুন",
"Edit Memory": "",
"Edit User": "ইউজার এডিট করুন", "Edit User": "ইউজার এডিট করুন",
"Email": "ইমেইল", "Email": "ইমেইল",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "ভাষা", "Language": "ভাষা",
"Last Active": "সর্বশেষ সক্রিয়", "Last Active": "সর্বশেষ সক্রিয়",
"Last Modified": "",
"Light": "লাইট", "Light": "লাইট",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLM ভুল করতে পারে। গুরুত্বপূর্ণ তথ্য যাচাই করে নিন।", "LLMs can make mistakes. Verify important information.": "LLM ভুল করতে পারে। গুরুত্বপূর্ণ তথ্য যাচাই করে নিন।",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' মডেল সফলভাবে ডাউনলোড হয়েছে।", "Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' মডেল সফলভাবে ডাউনলোড হয়েছে।",
"Model '{{modelTag}}' is already in queue for downloading.": "{{modelTag}} ডাউনলোডের জন্য আগে থেকেই অপেক্ষমান আছে।", "Model '{{modelTag}}' is already in queue for downloading.": "{{modelTag}} ডাউনলোডের জন্য আগে থেকেই অপেক্ষমান আছে।",
"Model {{modelId}} not found": "{{modelId}} মডেল পাওয়া যায়নি", "Model {{modelId}} not found": "{{modelId}} মডেল পাওয়া যায়নি",
@@ -491,6 +495,7 @@
"System": "সিস্টেম", "System": "সিস্টেম",
"System Prompt": "সিস্টেম প্রম্পট", "System Prompt": "সিস্টেম প্রম্পট",
"Tags": "ট্যাগসমূহ", "Tags": "ট্যাগসমূহ",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "আরও বলুন:", "Tell us more:": "আরও বলুন:",
"Temperature": "তাপমাত্রা", "Temperature": "তাপমাত্রা",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Hugging Face থেকে ডাউনলোড করার ইউআরএল টাইপ করুন", "Type Hugging Face Resolve (Download) URL": "Hugging Face থেকে ডাউনলোড করার ইউআরএল টাইপ করুন",
"Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।", "Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো",
"Update": "",
"Update and Copy Link": "আপডেট এবং লিংক কপি করুন", "Update and Copy Link": "আপডেট এবং লিংক কপি করুন",
"Update password": "পাসওয়ার্ড আপডেট করুন", "Update password": "পাসওয়ার্ড আপডেট করুন",
"Updated at": "",
"Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন", "Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন",
"Upload Files": "ফাইল আপলোড করুন", "Upload Files": "ফাইল আপলোড করুন",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Permet", "Allow": "Permet",
"Allow Chat Deletion": "Permet la Supressió del Xat", "Allow Chat Deletion": "Permet la Supressió del Xat",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "caràcters alfanumèrics i guions", "alphanumeric characters and hyphens": "caràcters alfanumèrics i guions",
"Already have an account?": "Ja tens un compte?", "Already have an account?": "Ja tens un compte?",
"an assistant": "un assistent", "an assistant": "un assistent",
@@ -178,6 +179,7 @@
"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'.", "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": "Editar", "Edit": "Editar",
"Edit Doc": "Edita Document", "Edit Doc": "Edita Document",
"Edit Memory": "",
"Edit User": "Edita Usuari", "Edit User": "Edita Usuari",
"Email": "Correu electrònic", "Email": "Correu electrònic",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Idioma", "Language": "Idioma",
"Last Active": "Últim Actiu", "Last Active": "Últim Actiu",
"Last Modified": "",
"Light": "Clar", "Light": "Clar",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Els LLMs poden cometre errors. Verifica la informació important.", "LLMs can make mistakes. Verify important information.": "Els LLMs poden cometre errors. Verifica la informació important.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Tau de Mirostat", "Mirostat Tau": "Tau de Mirostat",
"MMMM DD, YYYY": "DD de MMMM, YYYY", "MMMM DD, YYYY": "DD de MMMM, YYYY",
"MMMM DD, YYYY HH:mm": "DD de MMMM, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "DD de MMMM, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "El model '{{modelName}}' s'ha descarregat amb èxit.", "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 '{{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 {{modelId}} not found": "Model {{modelId}} no trobat",
@@ -492,6 +496,7 @@
"System": "Sistema", "System": "Sistema",
"System Prompt": "Prompt del Sistema", "System Prompt": "Prompt del Sistema",
"Tags": "Etiquetes", "Tags": "Etiquetes",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Dóna'ns més informació:", "Tell us more:": "Dóna'ns més informació:",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Escriu URL de Resolució (Descàrrega) de Hugging Face", "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}}.", "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", "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": "",
"Update and Copy Link": "Actualitza i Copia enllaç", "Update and Copy Link": "Actualitza i Copia enllaç",
"Update password": "Actualitza contrasenya", "Update password": "Actualitza contrasenya",
"Updated at": "",
"Upload a GGUF model": "Puja un model GGUF", "Upload a GGUF model": "Puja un model GGUF",
"Upload Files": "Pujar fitxers", "Upload Files": "Pujar fitxers",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Sa pagtugot", "Allow": "Sa pagtugot",
"Allow Chat Deletion": "Tugoti nga mapapas ang mga chat", "Allow Chat Deletion": "Tugoti nga mapapas ang mga chat",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "alphanumeric nga mga karakter ug hyphen", "alphanumeric characters and hyphens": "alphanumeric nga mga karakter ug hyphen",
"Already have an account?": "Naa na kay account ?", "Already have an account?": "Naa na kay account ?",
"an assistant": "usa ka katabang", "an assistant": "usa ka katabang",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ",
"Edit": "", "Edit": "",
"Edit Doc": "I-edit ang dokumento", "Edit Doc": "I-edit ang dokumento",
"Edit Memory": "",
"Edit User": "I-edit ang tiggamit", "Edit User": "I-edit ang tiggamit",
"Email": "E-mail", "Email": "E-mail",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Pinulongan", "Language": "Pinulongan",
"Last Active": "", "Last Active": "",
"Last Modified": "",
"Light": "Kahayag", "Light": "Kahayag",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Ang mga LLM mahimong masayop. ", "LLMs can make mistakes. Verify important information.": "Ang mga LLM mahimong masayop. ",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "", "MMMM DD, YYYY HH:mm": "",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Ang modelo'{{modelName}}' malampuson nga na-download.", "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 '{{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 {{modelId}} not found": "Modelo {{modelId}} wala makit-an",
@@ -491,6 +495,7 @@
"System": "Sistema", "System": "Sistema",
"System Prompt": "Madasig nga Sistema", "System Prompt": "Madasig nga Sistema",
"Tags": "Mga tag", "Tags": "Mga tag",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "", "Tell us more:": "",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Pagsulod sa resolusyon (pag-download) URL Hugging Face", "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}}.", "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", "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": "",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update password": "I-update ang password", "Update password": "I-update ang password",
"Updated at": "",
"Upload a GGUF model": "Pag-upload ug modelo sa GGUF", "Upload a GGUF model": "Pag-upload ug modelo sa GGUF",
"Upload Files": "", "Upload Files": "",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Erlauben", "Allow": "Erlauben",
"Allow Chat Deletion": "Chat Löschung erlauben", "Allow Chat Deletion": "Chat Löschung erlauben",
"Allow non-local voices": "Nicht-lokale Stimmen erlauben", "Allow non-local voices": "Nicht-lokale Stimmen erlauben",
"Allow User Location": "",
"alphanumeric characters and hyphens": "alphanumerische Zeichen und Bindestriche", "alphanumeric characters and hyphens": "alphanumerische Zeichen und Bindestriche",
"Already have an account?": "Hast du vielleicht schon ein Account?", "Already have an account?": "Hast du vielleicht schon ein Account?",
"an assistant": "ein Assistent", "an assistant": "ein Assistent",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z.B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z.B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.",
"Edit": "Bearbeiten", "Edit": "Bearbeiten",
"Edit Doc": "Dokument bearbeiten", "Edit Doc": "Dokument bearbeiten",
"Edit Memory": "",
"Edit User": "Benutzer bearbeiten", "Edit User": "Benutzer bearbeiten",
"Email": "E-Mail", "Email": "E-Mail",
"Embedding Batch Size": "Embedding Batch Größe", "Embedding Batch Size": "Embedding Batch Größe",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Sprache", "Language": "Sprache",
"Last Active": "Zuletzt aktiv", "Last Active": "Zuletzt aktiv",
"Last Modified": "",
"Light": "Hell", "Light": "Hell",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs können Fehler machen. Überprüfe wichtige Informationen.", "LLMs can make mistakes. Verify important information.": "LLMs können Fehler machen. Überprüfe wichtige Informationen.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD MMMM YYYY", "MMMM DD, YYYY": "DD MMMM YYYY",
"MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm", "MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Modell '{{modelName}}' wurde erfolgreich heruntergeladen.", "Model '{{modelName}}' has been successfully downloaded.": "Modell '{{modelName}}' wurde erfolgreich heruntergeladen.",
"Model '{{modelTag}}' is already in queue for downloading.": "Modell '{{modelTag}}' befindet sich bereits in der Warteschlange zum Herunterladen.", "Model '{{modelTag}}' is already in queue for downloading.": "Modell '{{modelTag}}' befindet sich bereits in der Warteschlange zum Herunterladen.",
"Model {{modelId}} not found": "Modell {{modelId}} nicht gefunden", "Model {{modelId}} not found": "Modell {{modelId}} nicht gefunden",
@@ -491,6 +495,7 @@
"System": "System", "System": "System",
"System Prompt": "System-Prompt", "System Prompt": "System-Prompt",
"Tags": "Tags", "Tags": "Tags",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Erzähl uns mehr", "Tell us more:": "Erzähl uns mehr",
"Temperature": "Temperatur", "Temperature": "Temperatur",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Gib die Hugging Face Resolve (Download) URL ein", "Type Hugging Face Resolve (Download) URL": "Gib die Hugging Face Resolve (Download) URL ein",
"Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.",
"Update": "",
"Update and Copy Link": "Erneuern und kopieren", "Update and Copy Link": "Erneuern und kopieren",
"Update password": "Passwort aktualisieren", "Update password": "Passwort aktualisieren",
"Updated at": "",
"Upload a GGUF model": "GGUF Model hochladen", "Upload a GGUF model": "GGUF Model hochladen",
"Upload Files": "Dateien hochladen", "Upload Files": "Dateien hochladen",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Allow", "Allow": "Allow",
"Allow Chat Deletion": "Allow Delete Chats", "Allow Chat Deletion": "Allow Delete Chats",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "so alpha, many hyphen", "alphanumeric characters and hyphens": "so alpha, many hyphen",
"Already have an account?": "Such account exists?", "Already have an account?": "Such account exists?",
"an assistant": "such assistant", "an assistant": "such assistant",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. Much time units are 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. Much time units are 's', 'm', 'h'.",
"Edit": "", "Edit": "",
"Edit Doc": "Edit Doge", "Edit Doc": "Edit Doge",
"Edit Memory": "",
"Edit User": "Edit Wowser", "Edit User": "Edit Wowser",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Doge Speak", "Language": "Doge Speak",
"Last Active": "", "Last Active": "",
"Last Modified": "",
"Light": "Light", "Light": "Light",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs can make borks. Verify important info.", "LLMs can make mistakes. Verify important information.": "LLMs can make borks. Verify important info.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "", "MMMM DD, YYYY HH:mm": "",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' has been successfully downloaded.", "Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' has been successfully downloaded.",
"Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' is already in queue for downloading.", "Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' is already in queue for downloading.",
"Model {{modelId}} not found": "Model {{modelId}} not found", "Model {{modelId}} not found": "Model {{modelId}} not found",
@@ -491,6 +495,7 @@
"System": "System very system", "System": "System very system",
"System Prompt": "System Prompt much prompt", "System Prompt": "System Prompt much prompt",
"Tags": "Tags very tags", "Tags": "Tags very tags",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "", "Tell us more:": "",
"Temperature": "Temperature very temp", "Temperature": "Temperature very temp",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Type Hugging Face Resolve (Download) URL much download", "Type Hugging Face Resolve (Download) URL": "Type Hugging Face Resolve (Download) URL much download",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! There was an issue connecting to {{provider}}. Much uh-oh!", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! There was an issue connecting to {{provider}}. Much uh-oh!",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unknown File Type '{{file_type}}', but accepting and treating as plain text very unknown", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unknown File Type '{{file_type}}', but accepting and treating as plain text very unknown",
"Update": "",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update password": "Update password much change", "Update password": "Update password much change",
"Updated at": "",
"Upload a GGUF model": "Upload a GGUF model very upload", "Upload a GGUF model": "Upload a GGUF model very upload",
"Upload Files": "", "Upload Files": "",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "", "Allow": "",
"Allow Chat Deletion": "", "Allow Chat Deletion": "",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "", "alphanumeric characters and hyphens": "",
"Already have an account?": "", "Already have an account?": "",
"an assistant": "", "an assistant": "",
@@ -309,6 +310,7 @@
"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:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "", "Model '{{modelName}}' has been successfully downloaded.": "",
"Model '{{modelTag}}' is already in queue for downloading.": "", "Model '{{modelTag}}' is already in queue for downloading.": "",
"Model {{modelId}} not found": "", "Model {{modelId}} not found": "",
@@ -493,6 +495,7 @@
"System": "", "System": "",
"System Prompt": "", "System Prompt": "",
"Tags": "", "Tags": "",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "", "Tell us more:": "",
"Temperature": "", "Temperature": "",
@@ -536,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "", "Type Hugging Face Resolve (Download) URL": "",
"Uh-oh! There was an issue connecting to {{provider}}.": "", "Uh-oh! There was an issue connecting to {{provider}}.": "",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
"Update": "",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update password": "", "Update password": "",
"Updated at": "",
"Upload a GGUF model": "", "Upload a GGUF model": "",
"Upload Files": "", "Upload Files": "",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "", "Allow": "",
"Allow Chat Deletion": "", "Allow Chat Deletion": "",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "", "alphanumeric characters and hyphens": "",
"Already have an account?": "", "Already have an account?": "",
"an assistant": "", "an assistant": "",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "",
"Edit": "", "Edit": "",
"Edit Doc": "", "Edit Doc": "",
"Edit Memory": "",
"Edit User": "", "Edit User": "",
"Email": "", "Email": "",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "", "Language": "",
"Last Active": "", "Last Active": "",
"Last Modified": "",
"Light": "", "Light": "",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "", "LLMs can make mistakes. Verify important information.": "",
@@ -307,6 +310,7 @@
"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:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "", "Model '{{modelName}}' has been successfully downloaded.": "",
"Model '{{modelTag}}' is already in queue for downloading.": "", "Model '{{modelTag}}' is already in queue for downloading.": "",
"Model {{modelId}} not found": "", "Model {{modelId}} not found": "",
@@ -491,6 +495,7 @@
"System": "", "System": "",
"System Prompt": "", "System Prompt": "",
"Tags": "", "Tags": "",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "", "Tell us more:": "",
"Temperature": "", "Temperature": "",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "", "Type Hugging Face Resolve (Download) URL": "",
"Uh-oh! There was an issue connecting to {{provider}}.": "", "Uh-oh! There was an issue connecting to {{provider}}.": "",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
"Update": "",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update password": "", "Update password": "",
"Updated at": "",
"Upload a GGUF model": "", "Upload a GGUF model": "",
"Upload Files": "", "Upload Files": "",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Permitir", "Allow": "Permitir",
"Allow Chat Deletion": "Permitir Borrar Chats", "Allow Chat Deletion": "Permitir Borrar Chats",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "caracteres alfanuméricos y guiones", "alphanumeric characters and hyphens": "caracteres alfanuméricos y guiones",
"Already have an account?": "¿Ya tienes una cuenta?", "Already have an account?": "¿Ya tienes una cuenta?",
"an assistant": "un asistente", "an assistant": "un asistente",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p.ej. '30s','10m'. Unidades válidas de tiempo son 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p.ej. '30s','10m'. Unidades válidas de tiempo son 's', 'm', 'h'.",
"Edit": "Editar", "Edit": "Editar",
"Edit Doc": "Editar Documento", "Edit Doc": "Editar Documento",
"Edit Memory": "",
"Edit User": "Editar Usuario", "Edit User": "Editar Usuario",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Lenguaje", "Language": "Lenguaje",
"Last Active": "Última Actividad", "Last Active": "Última Actividad",
"Last Modified": "",
"Light": "Claro", "Light": "Claro",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Los LLM pueden cometer errores. Verifica la información importante.", "LLMs can make mistakes. Verify important information.": "Los LLM pueden cometer errores. Verifica la información importante.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "El modelo '{{modelName}}' se ha descargado correctamente.", "Model '{{modelName}}' has been successfully downloaded.": "El modelo '{{modelName}}' se ha descargado correctamente.",
"Model '{{modelTag}}' is already in queue for downloading.": "El modelo '{{modelTag}}' ya está en cola para descargar.", "Model '{{modelTag}}' is already in queue for downloading.": "El modelo '{{modelTag}}' ya está en cola para descargar.",
"Model {{modelId}} not found": "El modelo {{modelId}} no fue encontrado", "Model {{modelId}} not found": "El modelo {{modelId}} no fue encontrado",
@@ -492,6 +496,7 @@
"System": "Sistema", "System": "Sistema",
"System Prompt": "Prompt del sistema", "System Prompt": "Prompt del sistema",
"Tags": "Etiquetas", "Tags": "Etiquetas",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Dinos más:", "Tell us more:": "Dinos más:",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Escriba la URL (Descarga) de Hugging Face Resolve", "Type Hugging Face Resolve (Download) URL": "Escriba la URL (Descarga) de Hugging Face Resolve",
"Uh-oh! There was an issue connecting to {{provider}}.": "¡Uh oh! Hubo un problema al conectarse a {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "¡Uh oh! Hubo un problema al conectarse a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de archivo desconocido '{{file_type}}', pero se acepta y se trata como texto sin formato", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de archivo desconocido '{{file_type}}', pero se acepta y se trata como texto sin formato",
"Update": "",
"Update and Copy Link": "Actualizar y copiar enlace", "Update and Copy Link": "Actualizar y copiar enlace",
"Update password": "Actualizar contraseña", "Update password": "Actualizar contraseña",
"Updated at": "",
"Upload a GGUF model": "Subir un modelo GGUF", "Upload a GGUF model": "Subir un modelo GGUF",
"Upload Files": "Subir archivos", "Upload Files": "Subir archivos",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "اجازه دادن", "Allow": "اجازه دادن",
"Allow Chat Deletion": "اجازه حذف گپ", "Allow Chat Deletion": "اجازه حذف گپ",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "حروف الفبایی و خط فاصله", "alphanumeric characters and hyphens": "حروف الفبایی و خط فاصله",
"Already have an account?": "از قبل حساب کاربری دارید؟", "Already have an account?": "از قبل حساب کاربری دارید؟",
"an assistant": "یک دستیار", "an assistant": "یک دستیار",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "به طور مثال '30s','10m'. واحد\u200cهای زمانی معتبر 's', 'm', 'h' هستند.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "به طور مثال '30s','10m'. واحد\u200cهای زمانی معتبر 's', 'm', 'h' هستند.",
"Edit": "ویرایش", "Edit": "ویرایش",
"Edit Doc": "ویرایش سند", "Edit Doc": "ویرایش سند",
"Edit Memory": "",
"Edit User": "ویرایش کاربر", "Edit User": "ویرایش کاربر",
"Email": "ایمیل", "Email": "ایمیل",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "زبان", "Language": "زبان",
"Last Active": "آخرین فعال", "Last Active": "آخرین فعال",
"Last Modified": "",
"Light": "روشن", "Light": "روشن",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "مدل\u200cهای زبانی بزرگ می\u200cتوانند اشتباه کنند. اطلاعات مهم را راستی\u200cآزمایی کنید.", "LLMs can make mistakes. Verify important information.": "مدل\u200cهای زبانی بزرگ می\u200cتوانند اشتباه کنند. اطلاعات مهم را راستی\u200cآزمایی کنید.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "مدل '{{modelName}}' با موفقیت دانلود شد.", "Model '{{modelName}}' has been successfully downloaded.": "مدل '{{modelName}}' با موفقیت دانلود شد.",
"Model '{{modelTag}}' is already in queue for downloading.": "مدل '{{modelTag}}' در حال حاضر در صف برای دانلود است.", "Model '{{modelTag}}' is already in queue for downloading.": "مدل '{{modelTag}}' در حال حاضر در صف برای دانلود است.",
"Model {{modelId}} not found": "مدل {{modelId}} یافت نشد", "Model {{modelId}} not found": "مدل {{modelId}} یافت نشد",
@@ -491,6 +495,7 @@
"System": "سیستم", "System": "سیستم",
"System Prompt": "پرامپت سیستم", "System Prompt": "پرامپت سیستم",
"Tags": "تگ\u200cها", "Tags": "تگ\u200cها",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "بیشتر بگویید:", "Tell us more:": "بیشتر بگویید:",
"Temperature": "دما", "Temperature": "دما",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "مقدار URL دانلود (Resolve) Hugging Face را وارد کنید", "Type Hugging Face Resolve (Download) URL": "مقدار URL دانلود (Resolve) Hugging Face را وارد کنید",
"Uh-oh! There was an issue connecting to {{provider}}.": "اوه اوه! مشکلی در اتصال به {{provider}} وجود داشت.", "Uh-oh! There was an issue connecting to {{provider}}.": "اوه اوه! مشکلی در اتصال به {{provider}} وجود داشت.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع فایل '{{file_type}}' ناشناخته است، به عنوان یک فایل متنی ساده با آن برخورد می شود.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع فایل '{{file_type}}' ناشناخته است، به عنوان یک فایل متنی ساده با آن برخورد می شود.",
"Update": "",
"Update and Copy Link": "به روزرسانی و کپی لینک", "Update and Copy Link": "به روزرسانی و کپی لینک",
"Update password": "به روزرسانی رمزعبور", "Update password": "به روزرسانی رمزعبور",
"Updated at": "",
"Upload a GGUF model": "آپلود یک مدل GGUF", "Upload a GGUF model": "آپلود یک مدل GGUF",
"Upload Files": "بارگذاری پروندهها", "Upload Files": "بارگذاری پروندهها",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Salli", "Allow": "Salli",
"Allow Chat Deletion": "Salli keskustelujen poisto", "Allow Chat Deletion": "Salli keskustelujen poisto",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "kirjaimia, numeroita ja väliviivoja", "alphanumeric characters and hyphens": "kirjaimia, numeroita ja väliviivoja",
"Already have an account?": "Onko sinulla jo tili?", "Already have an account?": "Onko sinulla jo tili?",
"an assistant": "avustaja", "an assistant": "avustaja",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "esim. '30s', '10m'. Kelpoiset aikayksiköt ovat 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "esim. '30s', '10m'. Kelpoiset aikayksiköt ovat 's', 'm', 'h'.",
"Edit": "Muokkaa", "Edit": "Muokkaa",
"Edit Doc": "Muokkaa asiakirjaa", "Edit Doc": "Muokkaa asiakirjaa",
"Edit Memory": "",
"Edit User": "Muokkaa käyttäjää", "Edit User": "Muokkaa käyttäjää",
"Email": "Sähköposti", "Email": "Sähköposti",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Kieli", "Language": "Kieli",
"Last Active": "Viimeksi aktiivinen", "Last Active": "Viimeksi aktiivinen",
"Last Modified": "",
"Light": "Vaalea", "Light": "Vaalea",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Kielimallit voivat tehdä virheitä. Varmista tärkeät tiedot.", "LLMs can make mistakes. Verify important information.": "Kielimallit voivat tehdä virheitä. Varmista tärkeät tiedot.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD MMMM YYYY", "MMMM DD, YYYY": "DD MMMM YYYY",
"MMMM DD, YYYY HH:mm": "DD MMMM YYYY, HH:mm", "MMMM DD, YYYY HH:mm": "DD MMMM YYYY, HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Malli '{{modelName}}' ladattiin onnistuneesti.", "Model '{{modelName}}' has been successfully downloaded.": "Malli '{{modelName}}' ladattiin onnistuneesti.",
"Model '{{modelTag}}' is already in queue for downloading.": "Malli '{{modelTag}}' on jo jonossa ladattavaksi.", "Model '{{modelTag}}' is already in queue for downloading.": "Malli '{{modelTag}}' on jo jonossa ladattavaksi.",
"Model {{modelId}} not found": "Mallia {{modelId}} ei löytynyt", "Model {{modelId}} not found": "Mallia {{modelId}} ei löytynyt",
@@ -491,6 +495,7 @@
"System": "Järjestelmä", "System": "Järjestelmä",
"System Prompt": "Järjestelmäkehote", "System Prompt": "Järjestelmäkehote",
"Tags": "Tagit", "Tags": "Tagit",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Kerro lisää:", "Tell us more:": "Kerro lisää:",
"Temperature": "Lämpötila", "Temperature": "Lämpötila",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Kirjoita Hugging Face -resolve-osoite", "Type Hugging Face Resolve (Download) URL": "Kirjoita Hugging Face -resolve-osoite",
"Uh-oh! There was an issue connecting to {{provider}}.": "Voi ei! Yhteysongelma {{provider}}:n kanssa.", "Uh-oh! There was an issue connecting to {{provider}}.": "Voi ei! Yhteysongelma {{provider}}:n kanssa.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tuntematon tiedostotyyppi '{{file_type}}', mutta hyväksytään ja käsitellään pelkkänä tekstinä", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tuntematon tiedostotyyppi '{{file_type}}', mutta hyväksytään ja käsitellään pelkkänä tekstinä",
"Update": "",
"Update and Copy Link": "Päivitä ja kopioi linkki", "Update and Copy Link": "Päivitä ja kopioi linkki",
"Update password": "Päivitä salasana", "Update password": "Päivitä salasana",
"Updated at": "",
"Upload a GGUF model": "Lataa GGUF-malli", "Upload a GGUF model": "Lataa GGUF-malli",
"Upload Files": "Lataa tiedostoja", "Upload Files": "Lataa tiedostoja",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Autoriser", "Allow": "Autoriser",
"Allow Chat Deletion": "Autoriser la suppression des discussions", "Allow Chat Deletion": "Autoriser la suppression des discussions",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "caractères alphanumériques et tirets", "alphanumeric characters and hyphens": "caractères alphanumériques et tirets",
"Already have an account?": "Vous avez déjà un compte ?", "Already have an account?": "Vous avez déjà un compte ?",
"an assistant": "un assistant", "an assistant": "un assistant",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s', '10m'. Les unités de temps valides sont 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s', '10m'. Les unités de temps valides sont 's', 'm', 'h'.",
"Edit": "Éditer", "Edit": "Éditer",
"Edit Doc": "Éditer le document", "Edit Doc": "Éditer le document",
"Edit Memory": "",
"Edit User": "Éditer l'utilisateur", "Edit User": "Éditer l'utilisateur",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Langue", "Language": "Langue",
"Last Active": "Dernière activité", "Last Active": "Dernière activité",
"Last Modified": "",
"Light": "Lumière", "Light": "Lumière",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Les LLMs peuvent faire des erreurs. Vérifiez les informations importantes.", "LLMs can make mistakes. Verify important information.": "Les LLMs peuvent faire des erreurs. Vérifiez les informations importantes.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Le modèle '{{modelName}}' a été téléchargé avec succès.", "Model '{{modelName}}' has been successfully downloaded.": "Le modèle '{{modelName}}' a été téléchargé avec succès.",
"Model '{{modelTag}}' is already in queue for downloading.": "Le modèle '{{modelTag}}' est déjà dans la file d'attente pour le téléchargement.", "Model '{{modelTag}}' is already in queue for downloading.": "Le modèle '{{modelTag}}' est déjà dans la file d'attente pour le téléchargement.",
"Model {{modelId}} not found": "Modèle {{modelId}} non trouvé", "Model {{modelId}} not found": "Modèle {{modelId}} non trouvé",
@@ -492,6 +496,7 @@
"System": "Système", "System": "Système",
"System Prompt": "Prompt Système", "System Prompt": "Prompt Système",
"Tags": "Tags", "Tags": "Tags",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Donnez-nous plus:", "Tell us more:": "Donnez-nous plus:",
"Temperature": "Température", "Temperature": "Température",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Entrez l'URL de résolution (téléchargement) Hugging Face", "Type Hugging Face Resolve (Download) URL": "Entrez l'URL de résolution (téléchargement) Hugging Face",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
"Update": "",
"Update and Copy Link": "Mettre à jour et copier le lien", "Update and Copy Link": "Mettre à jour et copier le lien",
"Update password": "Mettre à jour le mot de passe", "Update password": "Mettre à jour le mot de passe",
"Updated at": "",
"Upload a GGUF model": "Téléverser un modèle GGUF", "Upload a GGUF model": "Téléverser un modèle GGUF",
"Upload Files": "Téléverser des fichiers", "Upload Files": "Téléverser des fichiers",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Autoriser", "Allow": "Autoriser",
"Allow Chat Deletion": "Autoriser la suppression du chat", "Allow Chat Deletion": "Autoriser la suppression du chat",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "caractères alphanumériques et tirets", "alphanumeric characters and hyphens": "caractères alphanumériques et tirets",
"Already have an account?": "Vous avez déjà un compte ?", "Already have an account?": "Vous avez déjà un compte ?",
"an assistant": "un assistant", "an assistant": "un assistant",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10m'. Les unités de temps valides sont 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10m'. Les unités de temps valides sont 's', 'm', 'h'.",
"Edit": "Éditer", "Edit": "Éditer",
"Edit Doc": "Éditer le document", "Edit Doc": "Éditer le document",
"Edit Memory": "",
"Edit User": "Éditer l'utilisateur", "Edit User": "Éditer l'utilisateur",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Langue", "Language": "Langue",
"Last Active": "Dernier Activité", "Last Active": "Dernier Activité",
"Last Modified": "",
"Light": "Clair", "Light": "Clair",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Les LLMs peuvent faire des erreurs. Vérifiez les informations importantes.", "LLMs can make mistakes. Verify important information.": "Les LLMs peuvent faire des erreurs. Vérifiez les informations importantes.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Le modèle '{{modelName}}' a été téléchargé avec succès.", "Model '{{modelName}}' has been successfully downloaded.": "Le modèle '{{modelName}}' a été téléchargé avec succès.",
"Model '{{modelTag}}' is already in queue for downloading.": "Le modèle '{{modelTag}}' est déjà dans la file d'attente pour le téléchargement.", "Model '{{modelTag}}' is already in queue for downloading.": "Le modèle '{{modelTag}}' est déjà dans la file d'attente pour le téléchargement.",
"Model {{modelId}} not found": "Modèle {{modelId}} non trouvé", "Model {{modelId}} not found": "Modèle {{modelId}} non trouvé",
@@ -492,6 +496,7 @@
"System": "Système", "System": "Système",
"System Prompt": "Prompt du Système", "System Prompt": "Prompt du Système",
"Tags": "Tags", "Tags": "Tags",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Dites-nous en plus :", "Tell us more:": "Dites-nous en plus :",
"Temperature": "Température", "Temperature": "Température",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Entrez l'URL de Résolution (Téléchargement) Hugging Face", "Type Hugging Face Resolve (Download) URL": "Entrez l'URL de Résolution (Téléchargement) Hugging Face",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de Fichier Inconnu '{{file_type}}', mais accepté et traité comme du texte brut", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de Fichier Inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
"Update": "",
"Update and Copy Link": "Mettre à Jour et Copier le Lien", "Update and Copy Link": "Mettre à Jour et Copier le Lien",
"Update password": "Mettre à Jour le Mot de Passe", "Update password": "Mettre à Jour le Mot de Passe",
"Updated at": "",
"Upload a GGUF model": "Téléverser un modèle GGUF", "Upload a GGUF model": "Téléverser un modèle GGUF",
"Upload Files": "Téléverser des fichiers", "Upload Files": "Téléverser des fichiers",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "אפשר", "Allow": "אפשר",
"Allow Chat Deletion": "אפשר מחיקת צ'אט", "Allow Chat Deletion": "אפשר מחיקת צ'אט",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "תווים אלפאנומריים ומקפים", "alphanumeric characters and hyphens": "תווים אלפאנומריים ומקפים",
"Already have an account?": "כבר יש לך חשבון?", "Already have an account?": "כבר יש לך חשבון?",
"an assistant": "עוזר", "an assistant": "עוזר",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "למשל '30s', '10m'. יחידות זמן חוקיות הן 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "למשל '30s', '10m'. יחידות זמן חוקיות הן 's', 'm', 'h'.",
"Edit": "ערוך", "Edit": "ערוך",
"Edit Doc": "ערוך מסמך", "Edit Doc": "ערוך מסמך",
"Edit Memory": "",
"Edit User": "ערוך משתמש", "Edit User": "ערוך משתמש",
"Email": "דוא\"ל", "Email": "דוא\"ל",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "שפה", "Language": "שפה",
"Last Active": "פעיל לאחרונה", "Last Active": "פעיל לאחרונה",
"Last Modified": "",
"Light": "בהיר", "Light": "בהיר",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "מודלים בשפה טבעית יכולים לטעות. אמת מידע חשוב.", "LLMs can make mistakes. Verify important information.": "מודלים בשפה טבעית יכולים לטעות. אמת מידע חשוב.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD בMMMM, YYYY", "MMMM DD, YYYY": "DD בMMMM, YYYY",
"MMMM DD, YYYY HH:mm": "DD בMMMM, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "DD בMMMM, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "המודל '{{modelName}}' הורד בהצלחה.", "Model '{{modelName}}' has been successfully downloaded.": "המודל '{{modelName}}' הורד בהצלחה.",
"Model '{{modelTag}}' is already in queue for downloading.": "המודל '{{modelTag}}' כבר בתור להורדה.", "Model '{{modelTag}}' is already in queue for downloading.": "המודל '{{modelTag}}' כבר בתור להורדה.",
"Model {{modelId}} not found": "המודל {{modelId}} לא נמצא", "Model {{modelId}} not found": "המודל {{modelId}} לא נמצא",
@@ -492,6 +496,7 @@
"System": "מערכת", "System": "מערכת",
"System Prompt": "תגובת מערכת", "System Prompt": "תגובת מערכת",
"Tags": "תגיות", "Tags": "תגיות",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "תרשמו יותר:", "Tell us more:": "תרשמו יותר:",
"Temperature": "טמפרטורה", "Temperature": "טמפרטורה",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "הקלד כתובת URL של פתרון פנים מחבק (הורד)", "Type Hugging Face Resolve (Download) URL": "הקלד כתובת URL של פתרון פנים מחבק (הורד)",
"Uh-oh! There was an issue connecting to {{provider}}.": "או-הו! אירעה בעיה בהתחברות ל- {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "או-הו! אירעה בעיה בהתחברות ל- {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "סוג קובץ לא ידוע '{{file_type}}', אך מקבל ומתייחס אליו כטקסט רגיל", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "סוג קובץ לא ידוע '{{file_type}}', אך מקבל ומתייחס אליו כטקסט רגיל",
"Update": "",
"Update and Copy Link": "עדכן ושכפל קישור", "Update and Copy Link": "עדכן ושכפל קישור",
"Update password": "עדכן סיסמה", "Update password": "עדכן סיסמה",
"Updated at": "",
"Upload a GGUF model": "העלה מודל GGUF", "Upload a GGUF model": "העלה מודל GGUF",
"Upload Files": "העלאת קבצים", "Upload Files": "העלאת קבצים",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "अनुमति दें", "Allow": "अनुमति दें",
"Allow Chat Deletion": "चैट हटाने की अनुमति दें", "Allow Chat Deletion": "चैट हटाने की अनुमति दें",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "अल्फ़ान्यूमेरिक वर्ण और हाइफ़न", "alphanumeric characters and hyphens": "अल्फ़ान्यूमेरिक वर्ण और हाइफ़न",
"Already have an account?": "क्या आपके पास पहले से एक खाता मौजूद है?", "Already have an account?": "क्या आपके पास पहले से एक खाता मौजूद है?",
"an assistant": "एक सहायक", "an assistant": "एक सहायक",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "जैसे '30s', '10m', मान्य समय इकाइयाँ 's', 'm', 'h' हैं।", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "जैसे '30s', '10m', मान्य समय इकाइयाँ 's', 'm', 'h' हैं।",
"Edit": "संपादित करें", "Edit": "संपादित करें",
"Edit Doc": "दस्तावेज़ संपादित करें", "Edit Doc": "दस्तावेज़ संपादित करें",
"Edit Memory": "",
"Edit User": "यूजर को संपादित करो", "Edit User": "यूजर को संपादित करो",
"Email": "ईमेल", "Email": "ईमेल",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "भाषा", "Language": "भाषा",
"Last Active": "पिछली बार सक्रिय", "Last Active": "पिछली बार सक्रिय",
"Last Modified": "",
"Light": "सुन", "Light": "सुन",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "एलएलएम गलतियाँ कर सकते हैं। महत्वपूर्ण जानकारी सत्यापित करें.", "LLMs can make mistakes. Verify important information.": "एलएलएम गलतियाँ कर सकते हैं। महत्वपूर्ण जानकारी सत्यापित करें.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "मिरोस्तात ताऊ", "Mirostat Tau": "मिरोस्तात ताऊ",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "मॉडल '{{modelName}}' सफलतापूर्वक डाउनलोड हो गया है।", "Model '{{modelName}}' has been successfully downloaded.": "मॉडल '{{modelName}}' सफलतापूर्वक डाउनलोड हो गया है।",
"Model '{{modelTag}}' is already in queue for downloading.": "मॉडल '{{modelTag}}' पहले से ही डाउनलोड करने के लिए कतार में है।", "Model '{{modelTag}}' is already in queue for downloading.": "मॉडल '{{modelTag}}' पहले से ही डाउनलोड करने के लिए कतार में है।",
"Model {{modelId}} not found": "मॉडल {{modelId}} नहीं मिला", "Model {{modelId}} not found": "मॉडल {{modelId}} नहीं मिला",
@@ -491,6 +495,7 @@
"System": "सिस्टम", "System": "सिस्टम",
"System Prompt": "सिस्टम प्रॉम्प्ट", "System Prompt": "सिस्टम प्रॉम्प्ट",
"Tags": "टैग", "Tags": "टैग",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "हमें और अधिक बताएँ:", "Tell us more:": "हमें और अधिक बताएँ:",
"Temperature": "टेंपेरेचर", "Temperature": "टेंपेरेचर",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "हगिंग फेस रिज़ॉल्व (डाउनलोड) यूआरएल टाइप करें", "Type Hugging Face Resolve (Download) URL": "हगिंग फेस रिज़ॉल्व (डाउनलोड) यूआरएल टाइप करें",
"Uh-oh! There was an issue connecting to {{provider}}.": "उह ओह! {{provider}} से कनेक्ट करने में एक समस्या थी।", "Uh-oh! There was an issue connecting to {{provider}}.": "उह ओह! {{provider}} से कनेक्ट करने में एक समस्या थी।",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "अज्ञात फ़ाइल प्रकार '{{file_type}}', लेकिन स्वीकार करना और सादे पाठ के रूप में व्यवहार करना", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "अज्ञात फ़ाइल प्रकार '{{file_type}}', लेकिन स्वीकार करना और सादे पाठ के रूप में व्यवहार करना",
"Update": "",
"Update and Copy Link": "अपडेट करें और लिंक कॉपी करें", "Update and Copy Link": "अपडेट करें और लिंक कॉपी करें",
"Update password": "पासवर्ड अपडेट करें", "Update password": "पासवर्ड अपडेट करें",
"Updated at": "",
"Upload a GGUF model": "GGUF मॉडल अपलोड करें", "Upload a GGUF model": "GGUF मॉडल अपलोड करें",
"Upload Files": "फ़ाइलें अपलोड करें", "Upload Files": "फ़ाइलें अपलोड करें",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Dopusti", "Allow": "Dopusti",
"Allow Chat Deletion": "Dopusti brisanje razgovora", "Allow Chat Deletion": "Dopusti brisanje razgovora",
"Allow non-local voices": "Dopusti nelokalne glasove", "Allow non-local voices": "Dopusti nelokalne glasove",
"Allow User Location": "",
"alphanumeric characters and hyphens": "alfanumerički znakovi i crtice", "alphanumeric characters and hyphens": "alfanumerički znakovi i crtice",
"Already have an account?": "Već imate račun?", "Already have an account?": "Već imate račun?",
"an assistant": "asistent", "an assistant": "asistent",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "npr. '30s','10m'. Važeće vremenske jedinice su 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "npr. '30s','10m'. Važeće vremenske jedinice su 's', 'm', 'h'.",
"Edit": "Uredi", "Edit": "Uredi",
"Edit Doc": "Uredi dokument", "Edit Doc": "Uredi dokument",
"Edit Memory": "",
"Edit User": "Uredi korisnika", "Edit User": "Uredi korisnika",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "Embedding - Veličina batch-a", "Embedding Batch Size": "Embedding - Veličina batch-a",
@@ -283,6 +285,7 @@
"Knowledge": "Znanje", "Knowledge": "Znanje",
"Language": "Jezik", "Language": "Jezik",
"Last Active": "Zadnja aktivnost", "Last Active": "Zadnja aktivnost",
"Last Modified": "",
"Light": "Svijetlo", "Light": "Svijetlo",
"Listening...": "Slušam...", "Listening...": "Slušam...",
"LLMs can make mistakes. Verify important information.": "LLM-ovi mogu pogriješiti. Provjerite važne informacije.", "LLMs can make mistakes. Verify important information.": "LLM-ovi mogu pogriješiti. Provjerite važne informacije.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' je uspješno preuzet.", "Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' je uspješno preuzet.",
"Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' je već u redu za preuzimanje.", "Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' je već u redu za preuzimanje.",
"Model {{modelId}} not found": "Model {{modelId}} nije pronađen", "Model {{modelId}} not found": "Model {{modelId}} nije pronađen",
@@ -492,6 +496,7 @@
"System": "Sustav", "System": "Sustav",
"System Prompt": "Sistemski prompt", "System Prompt": "Sistemski prompt",
"Tags": "Oznake", "Tags": "Oznake",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Recite nam više:", "Tell us more:": "Recite nam više:",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Upišite Hugging Face Resolve (Download) URL", "Type Hugging Face Resolve (Download) URL": "Upišite Hugging Face Resolve (Download) URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Pojavio se problem s povezivanjem na {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Pojavio se problem s povezivanjem na {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nepoznata vrsta datoteke '{{file_type}}', ali prihvaćena i obrađuje se kao običan tekst", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nepoznata vrsta datoteke '{{file_type}}', ali prihvaćena i obrađuje se kao običan tekst",
"Update": "",
"Update and Copy Link": "Ažuriraj i kopiraj vezu", "Update and Copy Link": "Ažuriraj i kopiraj vezu",
"Update password": "Ažuriraj lozinku", "Update password": "Ažuriraj lozinku",
"Updated at": "",
"Upload a GGUF model": "Učitaj GGUF model", "Upload a GGUF model": "Učitaj GGUF model",
"Upload Files": "Prijenos datoteka", "Upload Files": "Prijenos datoteka",
"Upload Pipeline": "Prijenos kanala", "Upload Pipeline": "Prijenos kanala",
@@ -42,6 +42,7 @@
"Allow": "Consenti", "Allow": "Consenti",
"Allow Chat Deletion": "Consenti l'eliminazione della chat", "Allow Chat Deletion": "Consenti l'eliminazione della chat",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "caratteri alfanumerici e trattini", "alphanumeric characters and hyphens": "caratteri alfanumerici e trattini",
"Already have an account?": "Hai già un account?", "Already have an account?": "Hai già un account?",
"an assistant": "un assistente", "an assistant": "un assistente",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ad esempio '30s','10m'. Le unità di tempo valide sono 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ad esempio '30s','10m'. Le unità di tempo valide sono 's', 'm', 'h'.",
"Edit": "Modifica", "Edit": "Modifica",
"Edit Doc": "Modifica documento", "Edit Doc": "Modifica documento",
"Edit Memory": "",
"Edit User": "Modifica utente", "Edit User": "Modifica utente",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Lingua", "Language": "Lingua",
"Last Active": "Ultima attività", "Last Active": "Ultima attività",
"Last Modified": "",
"Light": "Chiaro", "Light": "Chiaro",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Gli LLM possono commettere errori. Verifica le informazioni importanti.", "LLMs can make mistakes. Verify important information.": "Gli LLM possono commettere errori. Verifica le informazioni importanti.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Il modello '{{modelName}}' è stato scaricato con successo.", "Model '{{modelName}}' has been successfully downloaded.": "Il modello '{{modelName}}' è stato scaricato con successo.",
"Model '{{modelTag}}' is already in queue for downloading.": "Il modello '{{modelTag}}' è già in coda per il download.", "Model '{{modelTag}}' is already in queue for downloading.": "Il modello '{{modelTag}}' è già in coda per il download.",
"Model {{modelId}} not found": "Modello {{modelId}} non trovato", "Model {{modelId}} not found": "Modello {{modelId}} non trovato",
@@ -492,6 +496,7 @@
"System": "Sistema", "System": "Sistema",
"System Prompt": "Prompt di sistema", "System Prompt": "Prompt di sistema",
"Tags": "Tag", "Tags": "Tag",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Raccontaci di più:", "Tell us more:": "Raccontaci di più:",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Digita l'URL di Hugging Face Resolve (Download)", "Type Hugging Face Resolve (Download) URL": "Digita l'URL di Hugging Face Resolve (Download)",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Si è verificato un problema durante la connessione a {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Si è verificato un problema durante la connessione a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo di file sconosciuto '{{file_type}}', ma accettato e trattato come testo normale", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo di file sconosciuto '{{file_type}}', ma accettato e trattato come testo normale",
"Update": "",
"Update and Copy Link": "Aggiorna e copia link", "Update and Copy Link": "Aggiorna e copia link",
"Update password": "Aggiorna password", "Update password": "Aggiorna password",
"Updated at": "",
"Upload a GGUF model": "Carica un modello GGUF", "Upload a GGUF model": "Carica un modello GGUF",
"Upload Files": "Carica file", "Upload Files": "Carica file",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "許可", "Allow": "許可",
"Allow Chat Deletion": "チャットの削除を許可", "Allow Chat Deletion": "チャットの削除を許可",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "英数字とハイフン", "alphanumeric characters and hyphens": "英数字とハイフン",
"Already have an account?": "すでにアカウントをお持ちですか?", "Already have an account?": "すでにアカウントをお持ちですか?",
"an assistant": "アシスタント", "an assistant": "アシスタント",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例: '30秒'、'10分'。有効な時間単位は '秒'、'分'、'時間' です。", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例: '30秒'、'10分'。有効な時間単位は '秒'、'分'、'時間' です。",
"Edit": "編集", "Edit": "編集",
"Edit Doc": "ドキュメントを編集", "Edit Doc": "ドキュメントを編集",
"Edit Memory": "",
"Edit User": "ユーザーを編集", "Edit User": "ユーザーを編集",
"Email": "メールアドレス", "Email": "メールアドレス",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "言語", "Language": "言語",
"Last Active": "最終アクティブ", "Last Active": "最終アクティブ",
"Last Modified": "",
"Light": "ライト", "Light": "ライト",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLM は間違いを犯す可能性があります。重要な情報を検証してください。", "LLMs can make mistakes. Verify important information.": "LLM は間違いを犯す可能性があります。重要な情報を検証してください。",
@@ -307,6 +310,7 @@
"Mirostat Tau": "ミロスタット Tau", "Mirostat Tau": "ミロスタット Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "モデル '{{modelName}}' が正常にダウンロードされました。", "Model '{{modelName}}' has been successfully downloaded.": "モデル '{{modelName}}' が正常にダウンロードされました。",
"Model '{{modelTag}}' is already in queue for downloading.": "モデル '{{modelTag}}' はすでにダウンロード待ち行列に入っています。", "Model '{{modelTag}}' is already in queue for downloading.": "モデル '{{modelTag}}' はすでにダウンロード待ち行列に入っています。",
"Model {{modelId}} not found": "モデル {{modelId}} が見つかりません", "Model {{modelId}} not found": "モデル {{modelId}} が見つかりません",
@@ -490,6 +494,7 @@
"System": "システム", "System": "システム",
"System Prompt": "システムプロンプト", "System Prompt": "システムプロンプト",
"Tags": "タグ", "Tags": "タグ",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "もっと話してください:", "Tell us more:": "もっと話してください:",
"Temperature": "温度", "Temperature": "温度",
@@ -533,8 +538,10 @@
"Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (ダウンロード) URL を入力してください", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (ダウンロード) URL を入力してください",
"Uh-oh! There was an issue connecting to {{provider}}.": "おっと! {{provider}} への接続に問題が発生しました。", "Uh-oh! There was an issue connecting to {{provider}}.": "おっと! {{provider}} への接続に問題が発生しました。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "不明なファイルタイプ '{{file_type}}' ですが、プレーンテキストとして受け入れて処理します", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "不明なファイルタイプ '{{file_type}}' ですが、プレーンテキストとして受け入れて処理します",
"Update": "",
"Update and Copy Link": "リンクの更新とコピー", "Update and Copy Link": "リンクの更新とコピー",
"Update password": "パスワードを更新", "Update password": "パスワードを更新",
"Updated at": "",
"Upload a GGUF model": "GGUF モデルをアップロード", "Upload a GGUF model": "GGUF モデルをアップロード",
"Upload Files": "ファイルのアップロード", "Upload Files": "ファイルのアップロード",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "ნების დართვა", "Allow": "ნების დართვა",
"Allow Chat Deletion": "მიმოწერის წაშლის დაშვება", "Allow Chat Deletion": "მიმოწერის წაშლის დაშვება",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "ალფანუმერული სიმბოლოები და დეფისები", "alphanumeric characters and hyphens": "ალფანუმერული სიმბოლოები და დეფისები",
"Already have an account?": "უკვე გაქვს ანგარიში?", "Already have an account?": "უკვე გაქვს ანგარიში?",
"an assistant": "ასისტენტი", "an assistant": "ასისტენტი",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "მაგალითად, '30წ', '10მ'. მოქმედი დროის ერთეულები: 'წ', 'წთ', 'სთ'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "მაგალითად, '30წ', '10მ'. მოქმედი დროის ერთეულები: 'წ', 'წთ', 'სთ'.",
"Edit": "რედაქტირება", "Edit": "რედაქტირება",
"Edit Doc": "დოკუმენტის ედიტირება", "Edit Doc": "დოკუმენტის ედიტირება",
"Edit Memory": "",
"Edit User": "მომხმარებლის ედიტირება", "Edit User": "მომხმარებლის ედიტირება",
"Email": "ელ-ფოსტა", "Email": "ელ-ფოსტა",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "ენა", "Language": "ენა",
"Last Active": "ბოლო აქტიური", "Last Active": "ბოლო აქტიური",
"Last Modified": "",
"Light": "მსუბუქი", "Light": "მსუბუქი",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "შესაძლოა LLM-ებმა შეცდომები დაუშვან. გადაამოწმეთ მნიშვნელოვანი ინფორმაცია.", "LLMs can make mistakes. Verify important information.": "შესაძლოა LLM-ებმა შეცდომები დაუშვან. გადაამოწმეთ მნიშვნელოვანი ინფორმაცია.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "მიროსტატი ტაუ", "Mirostat Tau": "მიროსტატი ტაუ",
"MMMM DD, YYYY": "თვე დღე, წელი", "MMMM DD, YYYY": "თვე დღე, წელი",
"MMMM DD, YYYY HH:mm": "თვე დღე, წელი HH:mm", "MMMM DD, YYYY HH:mm": "თვე დღე, წელი HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "მოდელი „{{modelName}}“ წარმატებით ჩამოიტვირთა.", "Model '{{modelName}}' has been successfully downloaded.": "მოდელი „{{modelName}}“ წარმატებით ჩამოიტვირთა.",
"Model '{{modelTag}}' is already in queue for downloading.": "მოდელი „{{modelTag}}“ უკვე ჩამოტვირთვის რიგშია.", "Model '{{modelTag}}' is already in queue for downloading.": "მოდელი „{{modelTag}}“ უკვე ჩამოტვირთვის რიგშია.",
"Model {{modelId}} not found": "მოდელი {{modelId}} ვერ მოიძებნა", "Model {{modelId}} not found": "მოდელი {{modelId}} ვერ მოიძებნა",
@@ -491,6 +495,7 @@
"System": "სისტემა", "System": "სისტემა",
"System Prompt": "სისტემური მოთხოვნა", "System Prompt": "სისტემური მოთხოვნა",
"Tags": "ტეგები", "Tags": "ტეგები",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "ჩვენთან დავუკავშირდით", "Tell us more:": "ჩვენთან დავუკავშირდით",
"Temperature": "ტემპერატურა", "Temperature": "ტემპერატურა",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "სცადე გადმოწერო Hugging Face Resolve URL", "Type Hugging Face Resolve (Download) URL": "სცადე გადმოწერო Hugging Face Resolve URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}-თან დაკავშირების პრობლემა წარმოიშვა.", "Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}-თან დაკავშირების პრობლემა წარმოიშვა.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "უცნობი ფაილის ტიპი „{{file_type}}“, მაგრამ მიიღება და განიხილება როგორც მარტივი ტექსტი", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "უცნობი ფაილის ტიპი „{{file_type}}“, მაგრამ მიიღება და განიხილება როგორც მარტივი ტექსტი",
"Update": "",
"Update and Copy Link": "განახლება და ბმულის კოპირება", "Update and Copy Link": "განახლება და ბმულის კოპირება",
"Update password": "პაროლის განახლება", "Update password": "პაროლის განახლება",
"Updated at": "",
"Upload a GGUF model": "GGUF მოდელის ატვირთვა", "Upload a GGUF model": "GGUF მოდელის ატვირთვა",
"Upload Files": "ატვირთეთ ფაილები", "Upload Files": "ატვირთეთ ფაილები",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "허용", "Allow": "허용",
"Allow Chat Deletion": "채팅 삭제 허용", "Allow Chat Deletion": "채팅 삭제 허용",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "영문자,숫자 및 하이픈", "alphanumeric characters and hyphens": "영문자,숫자 및 하이픈",
"Already have an account?": "이미 계정이 있으신가요?", "Already have an account?": "이미 계정이 있으신가요?",
"an assistant": "어시스턴트", "an assistant": "어시스턴트",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "예: '30s','10m'. 유효한 시간 단위는 's', 'm', 'h'입니다.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "예: '30s','10m'. 유효한 시간 단위는 's', 'm', 'h'입니다.",
"Edit": "편집", "Edit": "편집",
"Edit Doc": "문서 편집", "Edit Doc": "문서 편집",
"Edit Memory": "",
"Edit User": "사용자 편집", "Edit User": "사용자 편집",
"Email": "이메일", "Email": "이메일",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "언어", "Language": "언어",
"Last Active": "최근 활동", "Last Active": "최근 활동",
"Last Modified": "",
"Light": "밝음", "Light": "밝음",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLM은 실수를 할 수 있습니다. 중요한 정보를 확인하세요.", "LLMs can make mistakes. Verify important information.": "LLM은 실수를 할 수 있습니다. 중요한 정보를 확인하세요.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "모델 '{{modelName}}'이(가) 성공적으로 다운로드되었습니다.", "Model '{{modelName}}' has been successfully downloaded.": "모델 '{{modelName}}'이(가) 성공적으로 다운로드되었습니다.",
"Model '{{modelTag}}' is already in queue for downloading.": "모델 '{{modelTag}}'이(가) 이미 다운로드 대기열에 있습니다.", "Model '{{modelTag}}' is already in queue for downloading.": "모델 '{{modelTag}}'이(가) 이미 다운로드 대기열에 있습니다.",
"Model {{modelId}} not found": "모델 {{modelId}}를 찾을 수 없습니다.", "Model {{modelId}} not found": "모델 {{modelId}}를 찾을 수 없습니다.",
@@ -490,6 +494,7 @@
"System": "시스템", "System": "시스템",
"System Prompt": "시스템 프롬프트", "System Prompt": "시스템 프롬프트",
"Tags": "Tags", "Tags": "Tags",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "더 알려주세요:", "Tell us more:": "더 알려주세요:",
"Temperature": "Temperature", "Temperature": "Temperature",
@@ -533,8 +538,10 @@
"Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (다운로드) URL 입력", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (다운로드) URL 입력",
"Uh-oh! There was an issue connecting to {{provider}}.": "앗! {{provider}}에 연결하는 데 문제가 있었습니다.", "Uh-oh! There was an issue connecting to {{provider}}.": "앗! {{provider}}에 연결하는 데 문제가 있었습니다.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "알 수 없는 파일 유형 '{{file_type}}', 하지만 일반 텍스트로 허용하고 처리합니다.", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "알 수 없는 파일 유형 '{{file_type}}', 하지만 일반 텍스트로 허용하고 처리합니다.",
"Update": "",
"Update and Copy Link": "링크 업데이트 및 복사", "Update and Copy Link": "링크 업데이트 및 복사",
"Update password": "비밀번호 업데이트", "Update password": "비밀번호 업데이트",
"Updated at": "",
"Upload a GGUF model": "GGUF 모델 업로드", "Upload a GGUF model": "GGUF 모델 업로드",
"Upload Files": "파일 업로드", "Upload Files": "파일 업로드",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Leisti", "Allow": "Leisti",
"Allow Chat Deletion": "Leisti pokalbių ištrynimą", "Allow Chat Deletion": "Leisti pokalbių ištrynimą",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "skaičiai, raidės ir brūkšneliai", "alphanumeric characters and hyphens": "skaičiai, raidės ir brūkšneliai",
"Already have an account?": "Ar jau turite paskyrą?", "Already have an account?": "Ar jau turite paskyrą?",
"an assistant": "assistentas", "an assistant": "assistentas",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "pvz. '30s', '10m'. Laiko vienetai yra 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "pvz. '30s', '10m'. Laiko vienetai yra 's', 'm', 'h'.",
"Edit": "Redaguoti", "Edit": "Redaguoti",
"Edit Doc": "Redaguoti dokumentą", "Edit Doc": "Redaguoti dokumentą",
"Edit Memory": "",
"Edit User": "Redaguoti naudotoją", "Edit User": "Redaguoti naudotoją",
"Email": "El. paštas", "Email": "El. paštas",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Kalba", "Language": "Kalba",
"Last Active": "Paskutinį kartą aktyvus", "Last Active": "Paskutinį kartą aktyvus",
"Last Modified": "",
"Light": "Šviesus", "Light": "Šviesus",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "Dideli kalbos modeliai gali klysti. Patikrinkite atsakymų teisingumą.", "LLMs can make mistakes. Verify important information.": "Dideli kalbos modeliai gali klysti. Patikrinkite atsakymų teisingumą.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' modelis sėkmingai atsisiųstas.", "Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' modelis sėkmingai atsisiųstas.",
"Model '{{modelTag}}' is already in queue for downloading.": "Modelis '{{modelTag}}' jau atsisiuntimų eilėje.", "Model '{{modelTag}}' is already in queue for downloading.": "Modelis '{{modelTag}}' jau atsisiuntimų eilėje.",
"Model {{modelId}} not found": "Modelis {{modelId}} nerastas", "Model {{modelId}} not found": "Modelis {{modelId}} nerastas",
@@ -493,6 +497,7 @@
"System": "Sistema", "System": "Sistema",
"System Prompt": "Sistemos užklausa", "System Prompt": "Sistemos užklausa",
"Tags": "Žymos", "Tags": "Žymos",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Papasakokite daugiau", "Tell us more:": "Papasakokite daugiau",
"Temperature": "Temperatūra", "Temperature": "Temperatūra",
@@ -536,8 +541,10 @@
"Type Hugging Face Resolve (Download) URL": "Įveskite Hugging Face Resolve nuorodą", "Type Hugging Face Resolve (Download) URL": "Įveskite Hugging Face Resolve nuorodą",
"Uh-oh! There was an issue connecting to {{provider}}.": "O ne! Prisijungiant prie {{provider}} kilo problema.", "Uh-oh! There was an issue connecting to {{provider}}.": "O ne! Prisijungiant prie {{provider}} kilo problema.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nepažįstamas '{{file_type}}' failo formatas, tačiau jis priimtas ir bus apdorotas kaip grynas tekstas", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nepažįstamas '{{file_type}}' failo formatas, tačiau jis priimtas ir bus apdorotas kaip grynas tekstas",
"Update": "",
"Update and Copy Link": "Atnaujinti ir kopijuoti nuorodą", "Update and Copy Link": "Atnaujinti ir kopijuoti nuorodą",
"Update password": "Atnaujinti slaptažodį", "Update password": "Atnaujinti slaptažodį",
"Updated at": "",
"Upload a GGUF model": "Parsisiųsti GGUF modelį", "Upload a GGUF model": "Parsisiųsti GGUF modelį",
"Upload Files": "", "Upload Files": "",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Tillat", "Allow": "Tillat",
"Allow Chat Deletion": "Tillat sletting av chatter", "Allow Chat Deletion": "Tillat sletting av chatter",
"Allow non-local voices": "Tillat ikke-lokale stemmer", "Allow non-local voices": "Tillat ikke-lokale stemmer",
"Allow User Location": "",
"alphanumeric characters and hyphens": "alfanumeriske tegn og bindestreker", "alphanumeric characters and hyphens": "alfanumeriske tegn og bindestreker",
"Already have an account?": "Har du allerede en konto?", "Already have an account?": "Har du allerede en konto?",
"an assistant": "en assistent", "an assistant": "en assistent",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "f.eks. '30s','10m'. Gyldige tidsenheter er 's', 'm', 't'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "f.eks. '30s','10m'. Gyldige tidsenheter er 's', 'm', 't'.",
"Edit": "Rediger", "Edit": "Rediger",
"Edit Doc": "Rediger dokument", "Edit Doc": "Rediger dokument",
"Edit Memory": "",
"Edit User": "Rediger bruker", "Edit User": "Rediger bruker",
"Email": "E-post", "Email": "E-post",
"Embedding Batch Size": "Batch-størrelse for embedding", "Embedding Batch Size": "Batch-størrelse for embedding",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Språk", "Language": "Språk",
"Last Active": "Sist aktiv", "Last Active": "Sist aktiv",
"Last Modified": "",
"Light": "Lys", "Light": "Lys",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLM-er kan gjøre feil. Verifiser viktig informasjon.", "LLMs can make mistakes. Verify important information.": "LLM-er kan gjøre feil. Verifiser viktig informasjon.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Modellen '{{modelName}}' er lastet ned.", "Model '{{modelName}}' has been successfully downloaded.": "Modellen '{{modelName}}' er lastet ned.",
"Model '{{modelTag}}' is already in queue for downloading.": "Modellen '{{modelTag}}' er allerede i nedlastingskøen.", "Model '{{modelTag}}' is already in queue for downloading.": "Modellen '{{modelTag}}' er allerede i nedlastingskøen.",
"Model {{modelId}} not found": "Modellen {{modelId}} ble ikke funnet", "Model {{modelId}} not found": "Modellen {{modelId}} ble ikke funnet",
@@ -491,6 +495,7 @@
"System": "System", "System": "System",
"System Prompt": "Systemprompt", "System Prompt": "Systemprompt",
"Tags": "Tagger", "Tags": "Tagger",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Fortell oss mer:", "Tell us more:": "Fortell oss mer:",
"Temperature": "Temperatur", "Temperature": "Temperatur",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Skriv inn Hugging Face Resolve (nedlasting) URL", "Type Hugging Face Resolve (Download) URL": "Skriv inn Hugging Face Resolve (nedlasting) URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "Oops! Det oppsto et problem med tilkoblingen til {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Oops! Det oppsto et problem med tilkoblingen til {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Ukjent filtype '{{file_type}}', men aksepteres og behandles som ren tekst", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Ukjent filtype '{{file_type}}', men aksepteres og behandles som ren tekst",
"Update": "",
"Update and Copy Link": "Oppdater og kopier lenke", "Update and Copy Link": "Oppdater og kopier lenke",
"Update password": "Oppdater passord", "Update password": "Oppdater passord",
"Updated at": "",
"Upload a GGUF model": "Last opp en GGUF-modell", "Upload a GGUF model": "Last opp en GGUF-modell",
"Upload Files": "Last opp filer", "Upload Files": "Last opp filer",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Toestaan", "Allow": "Toestaan",
"Allow Chat Deletion": "Sta Chat Verwijdering toe", "Allow Chat Deletion": "Sta Chat Verwijdering toe",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "alfanumerieke karakters en streepjes", "alphanumeric characters and hyphens": "alfanumerieke karakters en streepjes",
"Already have an account?": "Heb je al een account?", "Already have an account?": "Heb je al een account?",
"an assistant": "een assistent", "an assistant": "een assistent",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "bijv. '30s', '10m'. Geldige tijdseenheden zijn 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "bijv. '30s', '10m'. Geldige tijdseenheden zijn 's', 'm', 'h'.",
"Edit": "Wijzig", "Edit": "Wijzig",
"Edit Doc": "Wijzig Doc", "Edit Doc": "Wijzig Doc",
"Edit Memory": "",
"Edit User": "Wijzig Gebruiker", "Edit User": "Wijzig Gebruiker",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Taal", "Language": "Taal",
"Last Active": "Laatst Actief", "Last Active": "Laatst Actief",
"Last Modified": "",
"Light": "Licht", "Light": "Licht",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs kunnen fouten maken. Verifieer belangrijke informatie.", "LLMs can make mistakes. Verify important information.": "LLMs kunnen fouten maken. Verifieer belangrijke informatie.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' is succesvol gedownload.", "Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' is succesvol gedownload.",
"Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' staat al in de wachtrij voor downloaden.", "Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' staat al in de wachtrij voor downloaden.",
"Model {{modelId}} not found": "Model {{modelId}} niet gevonden", "Model {{modelId}} not found": "Model {{modelId}} niet gevonden",
@@ -491,6 +495,7 @@
"System": "Systeem", "System": "Systeem",
"System Prompt": "Systeem Prompt", "System Prompt": "Systeem Prompt",
"Tags": "Tags", "Tags": "Tags",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Vertel ons meer:", "Tell us more:": "Vertel ons meer:",
"Temperature": "Temperatuur", "Temperature": "Temperatuur",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Type Hugging Face Resolve (Download) URL", "Type Hugging Face Resolve (Download) URL": "Type Hugging Face Resolve (Download) URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Er was een probleem met verbinden met {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Er was een probleem met verbinden met {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Onbekend Bestandstype '{{file_type}}', maar accepteren en behandelen als platte tekst", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Onbekend Bestandstype '{{file_type}}', maar accepteren en behandelen als platte tekst",
"Update": "",
"Update and Copy Link": "Update en Kopieer Link", "Update and Copy Link": "Update en Kopieer Link",
"Update password": "Wijzig wachtwoord", "Update password": "Wijzig wachtwoord",
"Updated at": "",
"Upload a GGUF model": "Upload een GGUF model", "Upload a GGUF model": "Upload een GGUF model",
"Upload Files": "Bestanden uploaden", "Upload Files": "Bestanden uploaden",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "ਅਨੁਮਤੀ", "Allow": "ਅਨੁਮਤੀ",
"Allow Chat Deletion": "ਗੱਲਬਾਤ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ", "Allow Chat Deletion": "ਗੱਲਬਾਤ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "ਅਲਫ਼ਾਨਯੂਮੈਰਿਕ ਅੱਖਰ ਅਤੇ ਹਾਈਫਨ", "alphanumeric characters and hyphens": "ਅਲਫ਼ਾਨਯੂਮੈਰਿਕ ਅੱਖਰ ਅਤੇ ਹਾਈਫਨ",
"Already have an account?": "ਪਹਿਲਾਂ ਹੀ ਖਾਤਾ ਹੈ?", "Already have an account?": "ਪਹਿਲਾਂ ਹੀ ਖਾਤਾ ਹੈ?",
"an assistant": "ਇੱਕ ਸਹਾਇਕ", "an assistant": "ਇੱਕ ਸਹਾਇਕ",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ਉਦਾਹਰਣ ਲਈ '30ਸ','10ਮਿ'. ਸਹੀ ਸਮਾਂ ਇਕਾਈਆਂ ਹਨ 'ਸ', 'ਮ', 'ਘੰ'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "ਉਦਾਹਰਣ ਲਈ '30ਸ','10ਮਿ'. ਸਹੀ ਸਮਾਂ ਇਕਾਈਆਂ ਹਨ 'ਸ', 'ਮ', 'ਘੰ'.",
"Edit": "ਸੰਪਾਦਨ ਕਰੋ", "Edit": "ਸੰਪਾਦਨ ਕਰੋ",
"Edit Doc": "ਡਾਕੂਮੈਂਟ ਸੰਪਾਦਨ ਕਰੋ", "Edit Doc": "ਡਾਕੂਮੈਂਟ ਸੰਪਾਦਨ ਕਰੋ",
"Edit Memory": "",
"Edit User": "ਉਪਭੋਗਤਾ ਸੰਪਾਦਨ ਕਰੋ", "Edit User": "ਉਪਭੋਗਤਾ ਸੰਪਾਦਨ ਕਰੋ",
"Email": "ਈਮੇਲ", "Email": "ਈਮੇਲ",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "ਭਾਸ਼ਾ", "Language": "ਭਾਸ਼ਾ",
"Last Active": "ਆਖਰੀ ਸਰਗਰਮ", "Last Active": "ਆਖਰੀ ਸਰਗਰਮ",
"Last Modified": "",
"Light": "ਹਲਕਾ", "Light": "ਹਲਕਾ",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs ਗਲਤੀਆਂ ਕਰ ਸਕਦੇ ਹਨ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।", "LLMs can make mistakes. Verify important information.": "LLMs ਗਲਤੀਆਂ ਕਰ ਸਕਦੇ ਹਨ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।",
@@ -307,6 +310,7 @@
"Mirostat Tau": "ਮਿਰੋਸਟੈਟ ਟਾਉ", "Mirostat Tau": "ਮਿਰੋਸਟੈਟ ਟਾਉ",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "ਮਾਡਲ '{{modelName}}' ਸਫਲਤਾਪੂਰਵਕ ਡਾਊਨਲੋਡ ਕੀਤਾ ਗਿਆ ਹੈ।", "Model '{{modelName}}' has been successfully downloaded.": "ਮਾਡਲ '{{modelName}}' ਸਫਲਤਾਪੂਰਵਕ ਡਾਊਨਲੋਡ ਕੀਤਾ ਗਿਆ ਹੈ।",
"Model '{{modelTag}}' is already in queue for downloading.": "ਮਾਡਲ '{{modelTag}}' ਪਹਿਲਾਂ ਹੀ ਡਾਊਨਲੋਡ ਲਈ ਕਤਾਰ ਵਿੱਚ ਹੈ।", "Model '{{modelTag}}' is already in queue for downloading.": "ਮਾਡਲ '{{modelTag}}' ਪਹਿਲਾਂ ਹੀ ਡਾਊਨਲੋਡ ਲਈ ਕਤਾਰ ਵਿੱਚ ਹੈ।",
"Model {{modelId}} not found": "ਮਾਡਲ {{modelId}} ਨਹੀਂ ਮਿਲਿਆ", "Model {{modelId}} not found": "ਮਾਡਲ {{modelId}} ਨਹੀਂ ਮਿਲਿਆ",
@@ -491,6 +495,7 @@
"System": "ਸਿਸਟਮ", "System": "ਸਿਸਟਮ",
"System Prompt": "ਸਿਸਟਮ ਪ੍ਰੰਪਟ", "System Prompt": "ਸਿਸਟਮ ਪ੍ਰੰਪਟ",
"Tags": "ਟੈਗ", "Tags": "ਟੈਗ",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "ਸਾਨੂੰ ਹੋਰ ਦੱਸੋ:", "Tell us more:": "ਸਾਨੂੰ ਹੋਰ ਦੱਸੋ:",
"Temperature": "ਤਾਪਮਾਨ", "Temperature": "ਤਾਪਮਾਨ",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (ਡਾਊਨਲੋਡ) URL ਟਾਈਪ ਕਰੋ", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (ਡਾਊਨਲੋਡ) URL ਟਾਈਪ ਕਰੋ",
"Uh-oh! There was an issue connecting to {{provider}}.": "ਓਹੋ! {{provider}} ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ।", "Uh-oh! There was an issue connecting to {{provider}}.": "ਓਹੋ! {{provider}} ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ।",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "ਅਣਜਾਣ ਫਾਈਲ ਕਿਸਮ '{{file_type}}', ਪਰ ਸਧਾਰਨ ਪਾਠ ਵਜੋਂ ਸਵੀਕਾਰ ਕਰਦੇ ਹੋਏ", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "ਅਣਜਾਣ ਫਾਈਲ ਕਿਸਮ '{{file_type}}', ਪਰ ਸਧਾਰਨ ਪਾਠ ਵਜੋਂ ਸਵੀਕਾਰ ਕਰਦੇ ਹੋਏ",
"Update": "",
"Update and Copy Link": "ਅੱਪਡੇਟ ਕਰੋ ਅਤੇ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", "Update and Copy Link": "ਅੱਪਡੇਟ ਕਰੋ ਅਤੇ ਲਿੰਕ ਕਾਪੀ ਕਰੋ",
"Update password": "ਪਾਸਵਰਡ ਅੱਪਡੇਟ ਕਰੋ", "Update password": "ਪਾਸਵਰਡ ਅੱਪਡੇਟ ਕਰੋ",
"Updated at": "",
"Upload a GGUF model": "ਇੱਕ GGUF ਮਾਡਲ ਅਪਲੋਡ ਕਰੋ", "Upload a GGUF model": "ਇੱਕ GGUF ਮਾਡਲ ਅਪਲੋਡ ਕਰੋ",
"Upload Files": "ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ", "Upload Files": "ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Pozwól", "Allow": "Pozwól",
"Allow Chat Deletion": "Pozwól na usuwanie czatu", "Allow Chat Deletion": "Pozwól na usuwanie czatu",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "znaki alfanumeryczne i myślniki", "alphanumeric characters and hyphens": "znaki alfanumeryczne i myślniki",
"Already have an account?": "Masz już konto?", "Already have an account?": "Masz już konto?",
"an assistant": "asystent", "an assistant": "asystent",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "np. '30s', '10m'. Poprawne jednostki czasu to 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "np. '30s', '10m'. Poprawne jednostki czasu to 's', 'm', 'h'.",
"Edit": "Edytuj", "Edit": "Edytuj",
"Edit Doc": "Edytuj dokument", "Edit Doc": "Edytuj dokument",
"Edit Memory": "",
"Edit User": "Edytuj użytkownika", "Edit User": "Edytuj użytkownika",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Język", "Language": "Język",
"Last Active": "Ostatnio aktywny", "Last Active": "Ostatnio aktywny",
"Last Modified": "",
"Light": "Jasny", "Light": "Jasny",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMy mogą popełniać błędy. Zweryfikuj ważne informacje.", "LLMs can make mistakes. Verify important information.": "LLMy mogą popełniać błędy. Zweryfikuj ważne informacje.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' został pomyślnie pobrany.", "Model '{{modelName}}' has been successfully downloaded.": "Model '{{modelName}}' został pomyślnie pobrany.",
"Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' jest już w kolejce do pobrania.", "Model '{{modelTag}}' is already in queue for downloading.": "Model '{{modelTag}}' jest już w kolejce do pobrania.",
"Model {{modelId}} not found": "Model {{modelId}} nie został znaleziony", "Model {{modelId}} not found": "Model {{modelId}} nie został znaleziony",
@@ -493,6 +497,7 @@
"System": "System", "System": "System",
"System Prompt": "Prompt systemowy", "System Prompt": "Prompt systemowy",
"Tags": "Tagi", "Tags": "Tagi",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Powiedz nam więcej", "Tell us more:": "Powiedz nam więcej",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -536,8 +541,10 @@
"Type Hugging Face Resolve (Download) URL": "Wprowadź adres URL do pobrania z Hugging Face", "Type Hugging Face Resolve (Download) URL": "Wprowadź adres URL do pobrania z Hugging Face",
"Uh-oh! There was an issue connecting to {{provider}}.": "O nie! Wystąpił problem z połączeniem z {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "O nie! Wystąpił problem z połączeniem z {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nieznany typ pliku '{{file_type}}', ale akceptowany i traktowany jako zwykły tekst", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nieznany typ pliku '{{file_type}}', ale akceptowany i traktowany jako zwykły tekst",
"Update": "",
"Update and Copy Link": "Uaktualnij i skopiuj link", "Update and Copy Link": "Uaktualnij i skopiuj link",
"Update password": "Aktualizacja hasła", "Update password": "Aktualizacja hasła",
"Updated at": "",
"Upload a GGUF model": "Prześlij model GGUF", "Upload a GGUF model": "Prześlij model GGUF",
"Upload Files": "Prześlij pliki", "Upload Files": "Prześlij pliki",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Permitir", "Allow": "Permitir",
"Allow Chat Deletion": "Permitir Exclusão de Bate-papo", "Allow Chat Deletion": "Permitir Exclusão de Bate-papo",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "caracteres alfanuméricos e hífens", "alphanumeric characters and hyphens": "caracteres alfanuméricos e hífens",
"Already have an account?": "Já tem uma conta?", "Already have an account?": "Já tem uma conta?",
"an assistant": "um assistente", "an assistant": "um assistente",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.",
"Edit": "Editar", "Edit": "Editar",
"Edit Doc": "Editar Documento", "Edit Doc": "Editar Documento",
"Edit Memory": "",
"Edit User": "Editar Usuário", "Edit User": "Editar Usuário",
"Email": "E-mail", "Email": "E-mail",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Idioma", "Language": "Idioma",
"Last Active": "Último Ativo", "Last Active": "Último Ativo",
"Last Modified": "",
"Light": "Claro", "Light": "Claro",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs podem cometer erros. Verifique informações importantes.", "LLMs can make mistakes. Verify important information.": "LLMs podem cometer erros. Verifique informações importantes.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD/MM/YYYY", "MMMM DD, YYYY": "DD/MM/YYYY",
"MMMM DD, YYYY HH:mm": "DD/MM/YYYY HH:mm", "MMMM DD, YYYY HH:mm": "DD/MM/YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "O modelo '{{modelName}}' foi baixado com sucesso.", "Model '{{modelName}}' has been successfully downloaded.": "O modelo '{{modelName}}' foi baixado com sucesso.",
"Model '{{modelTag}}' is already in queue for downloading.": "O modelo '{{modelTag}}' já está na fila para download.", "Model '{{modelTag}}' is already in queue for downloading.": "O modelo '{{modelTag}}' já está na fila para download.",
"Model {{modelId}} not found": "Modelo {{modelId}} não encontrado", "Model {{modelId}} not found": "Modelo {{modelId}} não encontrado",
@@ -492,6 +496,7 @@
"System": "Sistema", "System": "Sistema",
"System Prompt": "Prompt do Sistema", "System Prompt": "Prompt do Sistema",
"Tags": "Tags", "Tags": "Tags",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Dê-nos mais:", "Tell us more:": "Dê-nos mais:",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Digite a URL do Hugging Face Resolve (Download)", "Type Hugging Face Resolve (Download) URL": "Digite a URL do Hugging Face Resolve (Download)",
"Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
"Update": "",
"Update and Copy Link": "Atualizar e Copiar Link", "Update and Copy Link": "Atualizar e Copiar Link",
"Update password": "Atualizar senha", "Update password": "Atualizar senha",
"Updated at": "",
"Upload a GGUF model": "Carregar um modelo GGUF", "Upload a GGUF model": "Carregar um modelo GGUF",
"Upload Files": "Carregar arquivos", "Upload Files": "Carregar arquivos",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Permitir", "Allow": "Permitir",
"Allow Chat Deletion": "Permitir Exclusão de Conversa", "Allow Chat Deletion": "Permitir Exclusão de Conversa",
"Allow non-local voices": "Permitir vozes não locais", "Allow non-local voices": "Permitir vozes não locais",
"Allow User Location": "",
"alphanumeric characters and hyphens": "caracteres alfanuméricos e hífens", "alphanumeric characters and hyphens": "caracteres alfanuméricos e hífens",
"Already have an account?": "Já tem uma conta?", "Already have an account?": "Já tem uma conta?",
"an assistant": "um assistente", "an assistant": "um assistente",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.",
"Edit": "Editar", "Edit": "Editar",
"Edit Doc": "Editar Documento", "Edit Doc": "Editar Documento",
"Edit Memory": "",
"Edit User": "Editar Utilizador", "Edit User": "Editar Utilizador",
"Email": "E-mail", "Email": "E-mail",
"Embedding Batch Size": "Tamanho do Lote do Embedding", "Embedding Batch Size": "Tamanho do Lote do Embedding",
@@ -283,6 +285,7 @@
"Knowledge": "Conhecimento", "Knowledge": "Conhecimento",
"Language": "Idioma", "Language": "Idioma",
"Last Active": "Último Ativo", "Last Active": "Último Ativo",
"Last Modified": "",
"Light": "Claro", "Light": "Claro",
"Listening...": "A escutar...", "Listening...": "A escutar...",
"LLMs can make mistakes. Verify important information.": "LLMs podem cometer erros. Verifique informações importantes.", "LLMs can make mistakes. Verify important information.": "LLMs podem cometer erros. Verifique informações importantes.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD/MM/YYYY", "MMMM DD, YYYY": "DD/MM/YYYY",
"MMMM DD, YYYY HH:mm": "DD/MM/YYYY HH:mm", "MMMM DD, YYYY HH:mm": "DD/MM/YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "O modelo '{{modelName}}' foi descarregado com sucesso.", "Model '{{modelName}}' has been successfully downloaded.": "O modelo '{{modelName}}' foi descarregado com sucesso.",
"Model '{{modelTag}}' is already in queue for downloading.": "O modelo '{{modelTag}}' já está na fila para descarregar.", "Model '{{modelTag}}' is already in queue for downloading.": "O modelo '{{modelTag}}' já está na fila para descarregar.",
"Model {{modelId}} not found": "Modelo {{modelId}} não foi encontrado", "Model {{modelId}} not found": "Modelo {{modelId}} não foi encontrado",
@@ -492,6 +496,7 @@
"System": "Sistema", "System": "Sistema",
"System Prompt": "Prompt do Sistema", "System Prompt": "Prompt do Sistema",
"Tags": "Etiquetas", "Tags": "Etiquetas",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Diga-nos mais:", "Tell us more:": "Diga-nos mais:",
"Temperature": "Temperatura", "Temperature": "Temperatura",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Escreva o URL do Hugging Face Resolve (Descarregar)", "Type Hugging Face Resolve (Download) URL": "Escreva o URL do Hugging Face Resolve (Descarregar)",
"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Houve um problema ao conectar a {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Houve um problema ao conectar a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de ficheiro desconhecido '{{file_type}}', mas aceitando e tratando como texto simples", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de ficheiro desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
"Update": "",
"Update and Copy Link": "Atualizar e Copiar Link", "Update and Copy Link": "Atualizar e Copiar Link",
"Update password": "Atualizar senha", "Update password": "Atualizar senha",
"Updated at": "",
"Upload a GGUF model": "Carregar um modelo GGUF", "Upload a GGUF model": "Carregar um modelo GGUF",
"Upload Files": "Carregar ficheiros", "Upload Files": "Carregar ficheiros",
"Upload Pipeline": "Carregar Pipeline", "Upload Pipeline": "Carregar Pipeline",
@@ -42,6 +42,7 @@
"Allow": "Разрешить", "Allow": "Разрешить",
"Allow Chat Deletion": "Дозволять удаление чат", "Allow Chat Deletion": "Дозволять удаление чат",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "буквенно цифровые символы и дефисы", "alphanumeric characters and hyphens": "буквенно цифровые символы и дефисы",
"Already have an account?": "у вас уже есть аккаунт?", "Already have an account?": "у вас уже есть аккаунт?",
"an assistant": "ассистент", "an assistant": "ассистент",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "например, '30с','10м'. Допустимые единицы времени: 'с', 'м', 'ч'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "например, '30с','10м'. Допустимые единицы времени: 'с', 'м', 'ч'.",
"Edit": "Редактировать", "Edit": "Редактировать",
"Edit Doc": "Редактировать документ", "Edit Doc": "Редактировать документ",
"Edit Memory": "",
"Edit User": "Редактировать пользователя", "Edit User": "Редактировать пользователя",
"Email": "Электронная почта", "Email": "Электронная почта",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Язык", "Language": "Язык",
"Last Active": "Последний активный", "Last Active": "Последний активный",
"Last Modified": "",
"Light": "Светлый", "Light": "Светлый",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs могут допускать ошибки. Проверяйте важную информацию.", "LLMs can make mistakes. Verify important information.": "LLMs могут допускать ошибки. Проверяйте важную информацию.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD MMMM YYYY г.", "MMMM DD, YYYY": "DD MMMM YYYY г.",
"MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm", "MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Модель '{{modelName}}' успешно загружена.", "Model '{{modelName}}' has been successfully downloaded.": "Модель '{{modelName}}' успешно загружена.",
"Model '{{modelTag}}' is already in queue for downloading.": "Модель '{{modelTag}}' уже находится в очереди на загрузку.", "Model '{{modelTag}}' is already in queue for downloading.": "Модель '{{modelTag}}' уже находится в очереди на загрузку.",
"Model {{modelId}} not found": "Модель {{modelId}} не найдена", "Model {{modelId}} not found": "Модель {{modelId}} не найдена",
@@ -493,6 +497,7 @@
"System": "Система", "System": "Система",
"System Prompt": "Системный промпт", "System Prompt": "Системный промпт",
"Tags": "Теги", "Tags": "Теги",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Пожалуйста, расскажите нам больше:", "Tell us more:": "Пожалуйста, расскажите нам больше:",
"Temperature": "Температура", "Temperature": "Температура",
@@ -536,8 +541,10 @@
"Type Hugging Face Resolve (Download) URL": "Введите URL-адрес Hugging Face Resolve (загрузки)", "Type Hugging Face Resolve (Download) URL": "Введите URL-адрес Hugging Face Resolve (загрузки)",
"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Неизвестный тип файла '{{file_type}}', но принимается и обрабатывается как обычный текст", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Неизвестный тип файла '{{file_type}}', но принимается и обрабатывается как обычный текст",
"Update": "",
"Update and Copy Link": "Обновить и скопировать ссылку", "Update and Copy Link": "Обновить и скопировать ссылку",
"Update password": "Обновить пароль", "Update password": "Обновить пароль",
"Updated at": "",
"Upload a GGUF model": "Загрузить модель GGUF", "Upload a GGUF model": "Загрузить модель GGUF",
"Upload Files": "Загрузка файлов", "Upload Files": "Загрузка файлов",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Дозволи", "Allow": "Дозволи",
"Allow Chat Deletion": "Дозволи брисање ћаскања", "Allow Chat Deletion": "Дозволи брисање ћаскања",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "алфанумерички знакови и цртице", "alphanumeric characters and hyphens": "алфанумерички знакови и цртице",
"Already have an account?": "Већ имате налог?", "Already have an account?": "Већ имате налог?",
"an assistant": "помоћник", "an assistant": "помоћник",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "нпр. '30s', '10m'. Важеће временске јединице су 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "нпр. '30s', '10m'. Важеће временске јединице су 's', 'm', 'h'.",
"Edit": "Уреди", "Edit": "Уреди",
"Edit Doc": "Уреди документ", "Edit Doc": "Уреди документ",
"Edit Memory": "",
"Edit User": "Уреди корисника", "Edit User": "Уреди корисника",
"Email": "Е-пошта", "Email": "Е-пошта",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Језик", "Language": "Језик",
"Last Active": "Последња активност", "Last Active": "Последња активност",
"Last Modified": "",
"Light": "Светла", "Light": "Светла",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "ВЈМ-ови (LLM-ови) могу правити грешке. Проверите важне податке.", "LLMs can make mistakes. Verify important information.": "ВЈМ-ови (LLM-ови) могу правити грешке. Проверите важне податке.",
@@ -307,6 +310,7 @@
"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:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Модел „{{modelName}}“ је успешно преузет.", "Model '{{modelName}}' has been successfully downloaded.": "Модел „{{modelName}}“ је успешно преузет.",
"Model '{{modelTag}}' is already in queue for downloading.": "Модел „{{modelTag}}“ је већ у реду за преузимање.", "Model '{{modelTag}}' is already in queue for downloading.": "Модел „{{modelTag}}“ је већ у реду за преузимање.",
"Model {{modelId}} not found": "Модел {{modelId}} није пронађен", "Model {{modelId}} not found": "Модел {{modelId}} није пронађен",
@@ -492,6 +496,7 @@
"System": "Систем", "System": "Систем",
"System Prompt": "Системски упит", "System Prompt": "Системски упит",
"Tags": "Ознаке", "Tags": "Ознаке",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Реците нам више:", "Tell us more:": "Реците нам више:",
"Temperature": "Температура", "Temperature": "Температура",
@@ -535,8 +540,10 @@
"Type Hugging Face Resolve (Download) URL": "Унесите Hugging Face Resolve (Download) адресу", "Type Hugging Face Resolve (Download) URL": "Унесите Hugging Face Resolve (Download) адресу",
"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Дошло је до проблема при повезивању са {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Дошло је до проблема при повезивању са {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат тип датотеке '{{file_type}}', али прихваћен и третиран као обичан текст", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат тип датотеке '{{file_type}}', али прихваћен и третиран као обичан текст",
"Update": "",
"Update and Copy Link": "Ажурирај и копирај везу", "Update and Copy Link": "Ажурирај и копирај везу",
"Update password": "Ажурирај лозинку", "Update password": "Ажурирај лозинку",
"Updated at": "",
"Upload a GGUF model": "Отпреми GGUF модел", "Upload a GGUF model": "Отпреми GGUF модел",
"Upload Files": "Отпремање датотека", "Upload Files": "Отпремање датотека",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Tillåt", "Allow": "Tillåt",
"Allow Chat Deletion": "Tillåt chattborttagning", "Allow Chat Deletion": "Tillåt chattborttagning",
"Allow non-local voices": "Tillåt icke-lokala röster", "Allow non-local voices": "Tillåt icke-lokala röster",
"Allow User Location": "",
"alphanumeric characters and hyphens": "alfanumeriska tecken och bindestreck", "alphanumeric characters and hyphens": "alfanumeriska tecken och bindestreck",
"Already have an account?": "Har du redan ett konto?", "Already have an account?": "Har du redan ett konto?",
"an assistant": "en assistent", "an assistant": "en assistent",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "t.ex. '30s', '10m'. Giltiga tidsenheter är 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "t.ex. '30s', '10m'. Giltiga tidsenheter är 's', 'm', 'h'.",
"Edit": "Redigera", "Edit": "Redigera",
"Edit Doc": "Redigera dokument", "Edit Doc": "Redigera dokument",
"Edit Memory": "",
"Edit User": "Redigera användare", "Edit User": "Redigera användare",
"Email": "E-post", "Email": "E-post",
"Embedding Batch Size": "Batchstorlek för inbäddning", "Embedding Batch Size": "Batchstorlek för inbäddning",
@@ -283,6 +285,7 @@
"Knowledge": "Kunskap", "Knowledge": "Kunskap",
"Language": "Språk", "Language": "Språk",
"Last Active": "Senast aktiv", "Last Active": "Senast aktiv",
"Last Modified": "",
"Light": "Ljus", "Light": "Ljus",
"Listening...": "Lyssnar...", "Listening...": "Lyssnar...",
"LLMs can make mistakes. Verify important information.": "LLM:er kan göra misstag. Granska viktig information.", "LLMs can make mistakes. Verify important information.": "LLM:er kan göra misstag. Granska viktig information.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Modellen '{{modelName}}' har laddats ner framgångsrikt.", "Model '{{modelName}}' has been successfully downloaded.": "Modellen '{{modelName}}' har laddats ner framgångsrikt.",
"Model '{{modelTag}}' is already in queue for downloading.": "Modellen '{{modelTag}}' är redan i kö för nedladdning.", "Model '{{modelTag}}' is already in queue for downloading.": "Modellen '{{modelTag}}' är redan i kö för nedladdning.",
"Model {{modelId}} not found": "Modell {{modelId}} hittades inte", "Model {{modelId}} not found": "Modell {{modelId}} hittades inte",
@@ -491,6 +495,7 @@
"System": "System", "System": "System",
"System Prompt": "Systeminstruktion", "System Prompt": "Systeminstruktion",
"Tags": "Taggar", "Tags": "Taggar",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Berätta mer:", "Tell us more:": "Berätta mer:",
"Temperature": "Temperatur", "Temperature": "Temperatur",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Skriv Hugging Face Resolve (nedladdning) URL", "Type Hugging Face Resolve (Download) URL": "Skriv Hugging Face Resolve (nedladdning) URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "Oj då! Det uppstod ett problem med anslutningen till {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Oj då! Det uppstod ett problem med anslutningen till {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Okänd filtyp '{{file_type}}', men accepterar och behandlar som vanlig text", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Okänd filtyp '{{file_type}}', men accepterar och behandlar som vanlig text",
"Update": "",
"Update and Copy Link": "Uppdatera och kopiera länk", "Update and Copy Link": "Uppdatera och kopiera länk",
"Update password": "Uppdatera lösenord", "Update password": "Uppdatera lösenord",
"Updated at": "",
"Upload a GGUF model": "Ladda upp en GGUF-modell", "Upload a GGUF model": "Ladda upp en GGUF-modell",
"Upload Files": "Ladda upp filer", "Upload Files": "Ladda upp filer",
"Upload Pipeline": "Ladda upp rörledning", "Upload Pipeline": "Ladda upp rörledning",
@@ -42,6 +42,7 @@
"Allow": "", "Allow": "",
"Allow Chat Deletion": "", "Allow Chat Deletion": "",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "", "alphanumeric characters and hyphens": "",
"Already have an account?": "", "Already have an account?": "",
"an assistant": "", "an assistant": "",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "",
"Edit": "", "Edit": "",
"Edit Doc": "", "Edit Doc": "",
"Edit Memory": "",
"Edit User": "", "Edit User": "",
"Email": "", "Email": "",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "", "Language": "",
"Last Active": "", "Last Active": "",
"Last Modified": "",
"Light": "", "Light": "",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "", "LLMs can make mistakes. Verify important information.": "",
@@ -307,6 +310,7 @@
"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:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "", "Model '{{modelName}}' has been successfully downloaded.": "",
"Model '{{modelTag}}' is already in queue for downloading.": "", "Model '{{modelTag}}' is already in queue for downloading.": "",
"Model {{modelId}} not found": "", "Model {{modelId}} not found": "",
@@ -491,6 +495,7 @@
"System": "", "System": "",
"System Prompt": "", "System Prompt": "",
"Tags": "", "Tags": "",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "", "Tell us more:": "",
"Temperature": "", "Temperature": "",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "", "Type Hugging Face Resolve (Download) URL": "",
"Uh-oh! There was an issue connecting to {{provider}}.": "", "Uh-oh! There was an issue connecting to {{provider}}.": "",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
"Update": "",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update password": "", "Update password": "",
"Updated at": "",
"Upload a GGUF model": "", "Upload a GGUF model": "",
"Upload Files": "", "Upload Files": "",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "İzin ver", "Allow": "İzin ver",
"Allow Chat Deletion": "Sohbet Silmeye İzin Ver", "Allow Chat Deletion": "Sohbet Silmeye İzin Ver",
"Allow non-local voices": "Yerel olmayan seslere izin verin", "Allow non-local voices": "Yerel olmayan seslere izin verin",
"Allow User Location": "",
"alphanumeric characters and hyphens": "alfanumerik karakterler ve tireler", "alphanumeric characters and hyphens": "alfanumerik karakterler ve tireler",
"Already have an account?": "Zaten bir hesabınız mı var?", "Already have an account?": "Zaten bir hesabınız mı var?",
"an assistant": "bir asistan", "an assistant": "bir asistan",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "örn. '30s', '10m'. Geçerli zaman birimleri 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "örn. '30s', '10m'. Geçerli zaman birimleri 's', 'm', 'h'.",
"Edit": "Düzenle", "Edit": "Düzenle",
"Edit Doc": "Belgeyi Düzenle", "Edit Doc": "Belgeyi Düzenle",
"Edit Memory": "",
"Edit User": "Kullanıcıyı Düzenle", "Edit User": "Kullanıcıyı Düzenle",
"Email": "E-posta", "Email": "E-posta",
"Embedding Batch Size": "Gömme Yığın Boyutu", "Embedding Batch Size": "Gömme Yığın Boyutu",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Dil", "Language": "Dil",
"Last Active": "Son Aktivite", "Last Active": "Son Aktivite",
"Last Modified": "",
"Light": "Açık", "Light": "Açık",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLM'ler hata yapabilir. Önemli bilgileri doğrulayın.", "LLMs can make mistakes. Verify important information.": "LLM'ler hata yapabilir. Önemli bilgileri doğrulayın.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "DD MMMM YYYY", "MMMM DD, YYYY": "DD MMMM YYYY",
"MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm", "MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' başarıyla indirildi.", "Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' başarıyla indirildi.",
"Model '{{modelTag}}' is already in queue for downloading.": "'{{modelTag}}' zaten indirme sırasında.", "Model '{{modelTag}}' is already in queue for downloading.": "'{{modelTag}}' zaten indirme sırasında.",
"Model {{modelId}} not found": "{{modelId}} bulunamadı", "Model {{modelId}} not found": "{{modelId}} bulunamadı",
@@ -491,6 +495,7 @@
"System": "Sistem", "System": "Sistem",
"System Prompt": "Sistem Promptu", "System Prompt": "Sistem Promptu",
"Tags": "Etiketler", "Tags": "Etiketler",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Bize daha fazlasını anlat:", "Tell us more:": "Bize daha fazlasını anlat:",
"Temperature": "Temperature", "Temperature": "Temperature",
@@ -534,8 +539,10 @@
"Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (Download) URL'sini Yazın", "Type Hugging Face Resolve (Download) URL": "Hugging Face Resolve (Download) URL'sini Yazın",
"Uh-oh! There was an issue connecting to {{provider}}.": "Ah! {{provider}}'a bağlanırken bir sorun oluştu.", "Uh-oh! There was an issue connecting to {{provider}}.": "Ah! {{provider}}'a bağlanırken bir sorun oluştu.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Bilinmeyen Dosya Türü '{{file_type}}', ancak düz metin olarak kabul ediliyor ve işleniyor", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Bilinmeyen Dosya Türü '{{file_type}}', ancak düz metin olarak kabul ediliyor ve işleniyor",
"Update": "",
"Update and Copy Link": "Güncelle ve Bağlantıyı Kopyala", "Update and Copy Link": "Güncelle ve Bağlantıyı Kopyala",
"Update password": "Parolayı Güncelle", "Update password": "Parolayı Güncelle",
"Updated at": "",
"Upload a GGUF model": "Bir GGUF modeli yükle", "Upload a GGUF model": "Bir GGUF modeli yükle",
"Upload Files": "Dosyaları Yükle", "Upload Files": "Dosyaları Yükle",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "Дозволити", "Allow": "Дозволити",
"Allow Chat Deletion": "Дозволити видалення чату", "Allow Chat Deletion": "Дозволити видалення чату",
"Allow non-local voices": "Дозволити не локальні голоси", "Allow non-local voices": "Дозволити не локальні голоси",
"Allow User Location": "",
"alphanumeric characters and hyphens": "алфавітно-цифрові символи та дефіси", "alphanumeric characters and hyphens": "алфавітно-цифрові символи та дефіси",
"Already have an account?": "Вже є обліковий запис?", "Already have an account?": "Вже є обліковий запис?",
"an assistant": "асистента", "an assistant": "асистента",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр., '30s','10m'. Дійсні одиниці часу: 'с', 'хв', 'г'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "напр., '30s','10m'. Дійсні одиниці часу: 'с', 'хв', 'г'.",
"Edit": "Редагувати", "Edit": "Редагувати",
"Edit Doc": "Редагувати документ", "Edit Doc": "Редагувати документ",
"Edit Memory": "",
"Edit User": "Редагувати користувача", "Edit User": "Редагувати користувача",
"Email": "Електронна пошта", "Email": "Електронна пошта",
"Embedding Batch Size": "Розмір пакету під час вбудовування", "Embedding Batch Size": "Розмір пакету під час вбудовування",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "Мова", "Language": "Мова",
"Last Active": "Остання активність", "Last Active": "Остання активність",
"Last Modified": "",
"Light": "Світла", "Light": "Світла",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLMs можуть помилятися. Перевірте важливу інформацію.", "LLMs can make mistakes. Verify important information.": "LLMs можуть помилятися. Перевірте важливу інформацію.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Модель '{{modelName}}' успішно завантажено.", "Model '{{modelName}}' has been successfully downloaded.": "Модель '{{modelName}}' успішно завантажено.",
"Model '{{modelTag}}' is already in queue for downloading.": "Модель '{{modelTag}}' вже знаходиться в черзі на завантаження.", "Model '{{modelTag}}' is already in queue for downloading.": "Модель '{{modelTag}}' вже знаходиться в черзі на завантаження.",
"Model {{modelId}} not found": "Модель {{modelId}} не знайдено", "Model {{modelId}} not found": "Модель {{modelId}} не знайдено",
@@ -493,6 +497,7 @@
"System": "Система", "System": "Система",
"System Prompt": "Системний промт", "System Prompt": "Системний промт",
"Tags": "Теги", "Tags": "Теги",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Розкажи нам більше:", "Tell us more:": "Розкажи нам більше:",
"Temperature": "Температура", "Temperature": "Температура",
@@ -536,8 +541,10 @@
"Type Hugging Face Resolve (Download) URL": "Введіть URL ресурсу Hugging Face Resolve (завантаження)", "Type Hugging Face Resolve (Download) URL": "Введіть URL ресурсу Hugging Face Resolve (завантаження)",
"Uh-oh! There was an issue connecting to {{provider}}.": "Ой! Виникла проблема при підключенні до {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Ой! Виникла проблема при підключенні до {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Невідомий тип файлу '{{file_type}}', але приймається та обробляється як звичайний текст", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Невідомий тип файлу '{{file_type}}', але приймається та обробляється як звичайний текст",
"Update": "",
"Update and Copy Link": "Оновлення та копіювання посилання", "Update and Copy Link": "Оновлення та копіювання посилання",
"Update password": "Оновити пароль", "Update password": "Оновити пароль",
"Updated at": "",
"Upload a GGUF model": "Завантажити GGUF модель", "Upload a GGUF model": "Завантажити GGUF модель",
"Upload Files": "Завантажити файли", "Upload Files": "Завантажити файли",
"Upload Pipeline": "Завантаження Pipeline", "Upload Pipeline": "Завантаження Pipeline",
@@ -42,6 +42,7 @@
"Allow": "Cho phép", "Allow": "Cho phép",
"Allow Chat Deletion": "Cho phép Xóa nội dung chat", "Allow Chat Deletion": "Cho phép Xóa nội dung chat",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "ký tự số và gạch nối", "alphanumeric characters and hyphens": "ký tự số và gạch nối",
"Already have an account?": "Bạn đã có tài khoản?", "Already have an account?": "Bạn đã có tài khoản?",
"an assistant": "trợ lý", "an assistant": "trợ lý",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "vd: '30s','10m'. Đơn vị thời gian hợp lệ là 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "vd: '30s','10m'. Đơn vị thời gian hợp lệ là 's', 'm', 'h'.",
"Edit": "Chỉnh sửa", "Edit": "Chỉnh sửa",
"Edit Doc": "Thay đổi tài liệu", "Edit Doc": "Thay đổi tài liệu",
"Edit Memory": "",
"Edit User": "Thay đổi thông tin người sử dụng", "Edit User": "Thay đổi thông tin người sử dụng",
"Email": "Email", "Email": "Email",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "Kiến thức", "Knowledge": "Kiến thức",
"Language": "Ngôn ngữ", "Language": "Ngôn ngữ",
"Last Active": "Truy cập gần nhất", "Last Active": "Truy cập gần nhất",
"Last Modified": "",
"Light": "Sáng", "Light": "Sáng",
"Listening...": "Đang nghe...", "Listening...": "Đang nghe...",
"LLMs can make mistakes. Verify important information.": "Hệ thống có thể tạo ra nội dung không chính xác hoặc sai. Hãy kiểm chứng kỹ lưỡng thông tin trước khi tiếp nhận và sử dụng.", "LLMs can make mistakes. Verify important information.": "Hệ thống có thể tạo ra nội dung không chính xác hoặc sai. Hãy kiểm chứng kỹ lưỡng thông tin trước khi tiếp nhận và sử dụng.",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "Mô hình '{{modelName}}' đã được tải xuống thành công.", "Model '{{modelName}}' has been successfully downloaded.": "Mô hình '{{modelName}}' đã được tải xuống thành công.",
"Model '{{modelTag}}' is already in queue for downloading.": "Mô hình '{{modelTag}}' đã có trong hàng đợi để tải xuống.", "Model '{{modelTag}}' is already in queue for downloading.": "Mô hình '{{modelTag}}' đã có trong hàng đợi để tải xuống.",
"Model {{modelId}} not found": "Không tìm thấy Mô hình {{modelId}}", "Model {{modelId}} not found": "Không tìm thấy Mô hình {{modelId}}",
@@ -490,6 +494,7 @@
"System": "Hệ thống", "System": "Hệ thống",
"System Prompt": "Prompt Hệ thống (System Prompt)", "System Prompt": "Prompt Hệ thống (System Prompt)",
"Tags": "Thẻ", "Tags": "Thẻ",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "Hãy cho chúng tôi hiểu thêm về chất lượng của câu trả lời:", "Tell us more:": "Hãy cho chúng tôi hiểu thêm về chất lượng của câu trả lời:",
"Temperature": "Mức độ sáng tạo", "Temperature": "Mức độ sáng tạo",
@@ -533,8 +538,10 @@
"Type Hugging Face Resolve (Download) URL": "Nhập URL Hugging Face Resolve (Tải xuống)", "Type Hugging Face Resolve (Download) URL": "Nhập URL Hugging Face Resolve (Tải xuống)",
"Uh-oh! There was an issue connecting to {{provider}}.": "Ồ! Đã xảy ra sự cố khi kết nối với {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Ồ! Đã xảy ra sự cố khi kết nối với {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Loại Tệp Không xác định '{{file_type}}', nhưng đang chấp nhận và xử lý như văn bản thô", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Loại Tệp Không xác định '{{file_type}}', nhưng đang chấp nhận và xử lý như văn bản thô",
"Update": "",
"Update and Copy Link": "Cập nhật và sao chép link", "Update and Copy Link": "Cập nhật và sao chép link",
"Update password": "Cập nhật mật khẩu", "Update password": "Cập nhật mật khẩu",
"Updated at": "",
"Upload a GGUF model": "Tải lên mô hình GGUF", "Upload a GGUF model": "Tải lên mô hình GGUF",
"Upload Files": "Tải tệp lên máy chủ", "Upload Files": "Tải tệp lên máy chủ",
"Upload Pipeline": "", "Upload Pipeline": "",
@@ -42,6 +42,7 @@
"Allow": "允许", "Allow": "允许",
"Allow Chat Deletion": "允许删除聊天记录", "Allow Chat Deletion": "允许删除聊天记录",
"Allow non-local voices": "允许调用非本地音色", "Allow non-local voices": "允许调用非本地音色",
"Allow User Location": "",
"alphanumeric characters and hyphens": "字母数字字符和连字符", "alphanumeric characters and hyphens": "字母数字字符和连字符",
"Already have an account?": "已经拥有账号了?", "Already have an account?": "已经拥有账号了?",
"an assistant": "助手", "an assistant": "助手",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是秒:'s',分:'m',时:'h'。",
"Edit": "编辑", "Edit": "编辑",
"Edit Doc": "编辑文档", "Edit Doc": "编辑文档",
"Edit Memory": "",
"Edit User": "编辑用户", "Edit User": "编辑用户",
"Email": "电子邮箱", "Email": "电子邮箱",
"Embedding Batch Size": "嵌入层批处理大小 (Embedding Batch Size)", "Embedding Batch Size": "嵌入层批处理大小 (Embedding Batch Size)",
@@ -283,6 +285,7 @@
"Knowledge": "知识库", "Knowledge": "知识库",
"Language": "语言", "Language": "语言",
"Last Active": "最后在线时间", "Last Active": "最后在线时间",
"Last Modified": "",
"Light": "浅色", "Light": "浅色",
"Listening...": "正在倾听...", "Listening...": "正在倾听...",
"LLMs can make mistakes. Verify important information.": "大语言模型可能会生成误导性错误信息,请对关键信息加以验证。", "LLMs can make mistakes. Verify important information.": "大语言模型可能会生成误导性错误信息,请对关键信息加以验证。",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "YYYY年 MM月 DD日", "MMMM DD, YYYY": "YYYY年 MM月 DD日",
"MMMM DD, YYYY HH:mm": "YYYY年 MM月 DD日 HH:mm", "MMMM DD, YYYY HH:mm": "YYYY年 MM月 DD日 HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "模型'{{modelName}}'已成功下载。", "Model '{{modelName}}' has been successfully downloaded.": "模型'{{modelName}}'已成功下载。",
"Model '{{modelTag}}' is already in queue for downloading.": "模型'{{modelTag}}'已在下载队列中。", "Model '{{modelTag}}' is already in queue for downloading.": "模型'{{modelTag}}'已在下载队列中。",
"Model {{modelId}} not found": "未找到模型 {{modelId}}", "Model {{modelId}} not found": "未找到模型 {{modelId}}",
@@ -490,6 +494,7 @@
"System": "系统", "System": "系统",
"System Prompt": "系统提示词", "System Prompt": "系统提示词",
"Tags": "标签", "Tags": "标签",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "请告诉我们更多细节", "Tell us more:": "请告诉我们更多细节",
"Temperature": "温度 (Temperature)", "Temperature": "温度 (Temperature)",
@@ -533,8 +538,10 @@
"Type Hugging Face Resolve (Download) URL": "输入 Hugging Face 解析(下载)URL", "Type Hugging Face Resolve (Download) URL": "输入 Hugging Face 解析(下载)URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "糟糕!连接到 {{provider}} 时出现问题。", "Uh-oh! There was an issue connecting to {{provider}}.": "糟糕!连接到 {{provider}} 时出现问题。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理",
"Update": "",
"Update and Copy Link": "更新和复制链接", "Update and Copy Link": "更新和复制链接",
"Update password": "更新密码", "Update password": "更新密码",
"Updated at": "",
"Upload a GGUF model": "上传一个 GGUF 模型", "Upload a GGUF model": "上传一个 GGUF 模型",
"Upload Files": "上传文件", "Upload Files": "上传文件",
"Upload Pipeline": "上传 Pipeline", "Upload Pipeline": "上传 Pipeline",
@@ -42,6 +42,7 @@
"Allow": "允許", "Allow": "允許",
"Allow Chat Deletion": "允許刪除聊天紀錄", "Allow Chat Deletion": "允許刪除聊天紀錄",
"Allow non-local voices": "", "Allow non-local voices": "",
"Allow User Location": "",
"alphanumeric characters and hyphens": "英文字母、數字(0~9)和連字符(-)", "alphanumeric characters and hyphens": "英文字母、數字(0~9)和連字符(-)",
"Already have an account?": "已經有帳號了嗎?", "Already have an account?": "已經有帳號了嗎?",
"an assistant": "助手", "an assistant": "助手",
@@ -178,6 +179,7 @@
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s', '10m'。有效的時間單位為 's', 'm', 'h'。", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s', '10m'。有效的時間單位為 's', 'm', 'h'。",
"Edit": "編輯", "Edit": "編輯",
"Edit Doc": "編輯文件", "Edit Doc": "編輯文件",
"Edit Memory": "",
"Edit User": "編輯使用者", "Edit User": "編輯使用者",
"Email": "電子郵件", "Email": "電子郵件",
"Embedding Batch Size": "", "Embedding Batch Size": "",
@@ -283,6 +285,7 @@
"Knowledge": "", "Knowledge": "",
"Language": "語言", "Language": "語言",
"Last Active": "最後活動", "Last Active": "最後活動",
"Last Modified": "",
"Light": "亮色", "Light": "亮色",
"Listening...": "", "Listening...": "",
"LLMs can make mistakes. Verify important information.": "LLM 可能會產生錯誤。請驗證重要資訊。", "LLMs can make mistakes. Verify important information.": "LLM 可能會產生錯誤。請驗證重要資訊。",
@@ -307,6 +310,7 @@
"Mirostat Tau": "Mirostat Tau", "Mirostat Tau": "Mirostat Tau",
"MMMM DD, YYYY": "MMMM DD, YYYY", "MMMM DD, YYYY": "MMMM DD, YYYY",
"MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm", "MMMM DD, YYYY HH:mm": "MMMM DD, YYYY HH:mm",
"MMMM DD, YYYY hh:mm:ss A": "",
"Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' 模型已成功下載。", "Model '{{modelName}}' has been successfully downloaded.": "'{{modelName}}' 模型已成功下載。",
"Model '{{modelTag}}' is already in queue for downloading.": "'{{modelTag}}' 模型已經在下載佇列中。", "Model '{{modelTag}}' is already in queue for downloading.": "'{{modelTag}}' 模型已經在下載佇列中。",
"Model {{modelId}} not found": "找不到 {{modelId}} 模型", "Model {{modelId}} not found": "找不到 {{modelId}} 模型",
@@ -490,6 +494,7 @@
"System": "系統", "System": "系統",
"System Prompt": "系統提示詞", "System Prompt": "系統提示詞",
"Tags": "標籤", "Tags": "標籤",
"Tap to interrupt": "",
"Tavily API Key": "", "Tavily API Key": "",
"Tell us more:": "告訴我們更多:", "Tell us more:": "告訴我們更多:",
"Temperature": "溫度", "Temperature": "溫度",
@@ -533,8 +538,10 @@
"Type Hugging Face Resolve (Download) URL": "輸入 Hugging Face 解析後的(下載)URL", "Type Hugging Face Resolve (Download) URL": "輸入 Hugging Face 解析後的(下載)URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。", "Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字",
"Update": "",
"Update and Copy Link": "更新並複製連結", "Update and Copy Link": "更新並複製連結",
"Update password": "更新密碼", "Update password": "更新密碼",
"Updated at": "",
"Upload a GGUF model": "上傳一個 GGUF 模型", "Upload a GGUF model": "上傳一個 GGUF 模型",
"Upload Files": "上傳文件", "Upload Files": "上傳文件",
"Upload Pipeline": "", "Upload Pipeline": "",
+41 -4
View File
@@ -302,6 +302,29 @@ export const getImportOrigin = (_chats) => {
return 'webui'; return 'webui';
}; };
export const getUserPosition = async (raw = false) => {
// Get the user's location using the Geolocation API
const position = await new Promise((resolve, reject) => {
navigator.geolocation.getCurrentPosition(resolve, reject);
}).catch((error) => {
console.error('Error getting user location:', error);
throw error;
});
if (!position) {
return 'Location not available';
}
// Extract the latitude and longitude from the position
const { latitude, longitude } = position.coords;
if (raw) {
return { latitude, longitude };
} else {
return `${latitude.toFixed(3)}, ${longitude.toFixed(3)} (lat, long)`;
}
};
const convertOpenAIMessages = (convo) => { const convertOpenAIMessages = (convo) => {
// Parse OpenAI chat messages and create chat dictionary for creating new chats // Parse OpenAI chat messages and create chat dictionary for creating new chats
const mapping = convo['mapping']; const mapping = convo['mapping'];
@@ -474,7 +497,7 @@ export const blobToFile = (blob, fileName) => {
export const promptTemplate = ( export const promptTemplate = (
template: string, template: string,
user_name?: string, user_name?: string,
current_location?: string user_location?: string
): string => { ): string => {
// Get the current date // Get the current date
const currentDate = new Date(); const currentDate = new Date();
@@ -487,17 +510,31 @@ export const promptTemplate = (
'-' + '-' +
String(currentDate.getDate()).padStart(2, '0'); String(currentDate.getDate()).padStart(2, '0');
// Format the time to HH:MM:SS AM/PM
const currentTime = currentDate.toLocaleTimeString('en-US', {
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
hour12: true
});
// Replace {{CURRENT_DATETIME}} in the template with the formatted datetime
template = template.replace('{{CURRENT_DATETIME}}', `${formattedDate} ${currentTime}`);
// Replace {{CURRENT_DATE}} in the template with the formatted date // Replace {{CURRENT_DATE}} in the template with the formatted date
template = template.replace('{{CURRENT_DATE}}', formattedDate); template = template.replace('{{CURRENT_DATE}}', formattedDate);
// Replace {{CURRENT_TIME}} in the template with the formatted time
template = template.replace('{{CURRENT_TIME}}', currentTime);
if (user_name) { if (user_name) {
// Replace {{USER_NAME}} in the template with the user's name // Replace {{USER_NAME}} in the template with the user's name
template = template.replace('{{USER_NAME}}', user_name); template = template.replace('{{USER_NAME}}', user_name);
} }
if (current_location) { if (user_location) {
// Replace {{CURRENT_LOCATION}} in the template with the current location // Replace {{USER_LOCATION}} in the template with the current location
template = template.replace('{{CURRENT_LOCATION}}', current_location); template = template.replace('{{USER_LOCATION}}', user_location);
} }
return template; return template;
+76 -6
View File
@@ -77,6 +77,17 @@
} }
loaded = true; loaded = true;
}); });
let sortKey = 'created_at'; // default sort key
let sortOrder = 'asc'; // default sort order
function setSortKey(key) {
if (sortKey === key) {
sortOrder = sortOrder === 'asc' ? 'desc' : 'asc';
} else {
sortKey = key;
sortOrder = 'asc';
}
}
</script> </script>
<ConfirmDialog <ConfirmDialog
@@ -148,12 +159,66 @@
<table class="w-full text-sm text-left text-gray-500 dark:text-gray-400 table-auto max-w-full"> <table class="w-full text-sm text-left text-gray-500 dark:text-gray-400 table-auto max-w-full">
<thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-850 dark:text-gray-400"> <thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-850 dark:text-gray-400">
<tr> <tr>
<th scope="col" class="px-3 py-2"> {$i18n.t('Role')} </th> <th
<th scope="col" class="px-3 py-2"> {$i18n.t('Name')} </th> scope="col"
<th scope="col" class="px-3 py-2"> {$i18n.t('Email')} </th> class="px-3 py-2 cursor-pointer select-none"
<th scope="col" class="px-3 py-2"> {$i18n.t('Last Active')} </th> on:click={() => setSortKey('role')}
>
<th scope="col" class="px-3 py-2"> {$i18n.t('Created at')} </th> {$i18n.t('Role')}
{#if sortKey === 'role'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th
scope="col"
class="px-3 py-2 cursor-pointer select-none"
on:click={() => setSortKey('name')}
>
{$i18n.t('Name')}
{#if sortKey === 'name'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th
scope="col"
class="px-3 py-2 cursor-pointer select-none"
on:click={() => setSortKey('email')}
>
{$i18n.t('Email')}
{#if sortKey === 'email'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th
scope="col"
class="px-3 py-2 cursor-pointer select-none"
on:click={() => setSortKey('last_active_at')}
>
{$i18n.t('Last Active')}
{#if sortKey === 'last_active_at'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th
scope="col"
class="px-3 py-2 cursor-pointer select-none"
on:click={() => setSortKey('created_at')}
>
{$i18n.t('Created at')}
{#if sortKey === 'created_at'}
{sortOrder === 'asc' ? '▲' : '▼'}
{:else}
<span class="invisible">▲</span>
{/if}
</th>
<th scope="col" class="px-3 py-2 text-right" /> <th scope="col" class="px-3 py-2 text-right" />
</tr> </tr>
@@ -169,6 +234,11 @@
return name.includes(query); return name.includes(query);
} }
}) })
.sort((a, b) => {
if (a[sortKey] < b[sortKey]) return sortOrder === 'asc' ? -1 : 1;
if (a[sortKey] > b[sortKey]) return sortOrder === 'asc' ? 1 : -1;
return 0;
})
.slice((page - 1) * 20, page * 20) as user} .slice((page - 1) * 20, page * 20) as user}
<tr class="bg-white border-b dark:bg-gray-900 dark:border-gray-850 text-xs"> <tr class="bg-white border-b dark:bg-gray-900 dark:border-gray-850 text-xs">
<td class="px-3 py-2 min-w-[7rem] w-28"> <td class="px-3 py-2 min-w-[7rem] w-28">