This commit is contained in:
SZegotaM 2025-12-08 17:36:02 +01:00 committed by GitHub
commit 354d2a8a2b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
63 changed files with 567 additions and 448 deletions

View file

@ -813,7 +813,7 @@ def load_oauth_providers():
f"⚠️ OAuth providers configured ({provider_list}) but OPENID_PROVIDER_URL not set - logout will not work!"
)
log.warning(
f"Set OPENID_PROVIDER_URL to your OAuth provider's OpenID Connect discovery endpoint to fix logout functionality."
"Set OPENID_PROVIDER_URL to your OAuth provider's OpenID Connect discovery endpoint to fix logout functionality."
)
@ -831,9 +831,9 @@ try:
if item.is_file() or item.is_symlink():
try:
item.unlink()
except Exception as e:
except Exception:
pass
except Exception as e:
except Exception:
pass
for file_path in (FRONTEND_BUILD_DIR / "static").glob("**/*"):
@ -3109,6 +3109,12 @@ JINA_API_KEY = PersistentConfig(
os.getenv("JINA_API_KEY", ""),
)
JINA_SEARCH_API_URL = PersistentConfig(
"JINA_SEARCH_API_URL",
"rag.web.search.jina_search_api_url",
os.getenv("JINA_SEARCH_API_URL", "https://s.jina.ai/"),
)
SEARCHAPI_API_KEY = PersistentConfig(
"SEARCHAPI_API_KEY",
"rag.web.search.searchapi_api_key",

View file

@ -1,526 +1,489 @@
import asyncio
import inspect
import json
import logging
import mimetypes
import os
import shutil
import re
import sys
import time
import random
import re
from uuid import uuid4
from contextlib import asynccontextmanager
from urllib.parse import urlencode, parse_qs, urlparse
from pydantic import BaseModel
from sqlalchemy import text
from urllib.parse import parse_qs, urlencode, urlparse
from typing import Optional
from aiocache import cached
import aiohttp
import anyio.to_thread
import requests
from redis import Redis
from fastapi import (
Depends,
FastAPI,
File,
Form,
HTTPException,
Request,
UploadFile,
status,
applications,
BackgroundTasks,
status,
)
from fastapi.openapi.docs import get_swagger_ui_html
from fastapi.middleware.cors import CORSMiddleware
from fastapi.openapi.docs import get_swagger_ui_html
from fastapi.responses import FileResponse, JSONResponse, RedirectResponse
from fastapi.staticfiles import StaticFiles
from starlette_compress import CompressMiddleware
from pydantic import BaseModel
from sqlalchemy import text
from starlette.datastructures import Headers
from starlette.exceptions import HTTPException as StarletteHTTPException
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.middleware.sessions import SessionMiddleware
from starlette.responses import Response, StreamingResponse
from starlette.datastructures import Headers
from starlette.responses import Response
from starlette_compress import CompressMiddleware
from starsessions import (
SessionAutoloadMiddleware,
)
from starsessions import (
SessionMiddleware as StarSessionsMiddleware,
SessionAutoloadMiddleware,
)
from starsessions.stores.redis import RedisStore
from open_webui.utils import logger
from open_webui.utils.audit import AuditLevel, AuditLoggingMiddleware
from open_webui.utils.logger import start_logger
from open_webui.socket.main import (
MODELS,
app as socket_app,
periodic_usage_pool_cleanup,
get_event_emitter,
get_models_in_use,
)
from open_webui.routers import (
audio,
images,
ollama,
openai,
retrieval,
pipelines,
tasks,
auths,
channels,
chats,
notes,
folders,
configs,
groups,
files,
functions,
memories,
models,
knowledge,
prompts,
evaluations,
tools,
users,
utils,
scim,
)
from open_webui.routers.retrieval import (
get_embedding_function,
get_reranking_function,
get_ef,
get_rf,
)
from open_webui.internal.db import Session, engine
from open_webui.models.functions import Functions
from open_webui.models.models import Models
from open_webui.models.users import UserModel, Users
from open_webui.models.chats import Chats
from open_webui.config import (
# Ollama
ENABLE_OLLAMA_API,
OLLAMA_BASE_URLS,
OLLAMA_API_CONFIGS,
# OpenAI
ENABLE_OPENAI_API,
OPENAI_API_BASE_URLS,
OPENAI_API_KEYS,
OPENAI_API_CONFIGS,
# Direct Connections
ENABLE_DIRECT_CONNECTIONS,
# Model list
ENABLE_BASE_MODELS_CACHE,
# Thread pool size for FastAPI/AnyIO
THREAD_POOL_SIZE,
# Tool Server Configs
TOOL_SERVER_CONNECTIONS,
# Code Execution
ENABLE_CODE_EXECUTION,
CODE_EXECUTION_ENGINE,
CODE_EXECUTION_JUPYTER_URL,
CODE_EXECUTION_JUPYTER_AUTH,
CODE_EXECUTION_JUPYTER_AUTH_TOKEN,
CODE_EXECUTION_JUPYTER_AUTH_PASSWORD,
CODE_EXECUTION_JUPYTER_TIMEOUT,
ENABLE_CODE_INTERPRETER,
CODE_INTERPRETER_ENGINE,
CODE_INTERPRETER_PROMPT_TEMPLATE,
CODE_INTERPRETER_JUPYTER_URL,
CODE_INTERPRETER_JUPYTER_AUTH,
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
CODE_INTERPRETER_JUPYTER_AUTH_PASSWORD,
CODE_INTERPRETER_JUPYTER_TIMEOUT,
ADMIN_EMAIL,
API_KEYS_ALLOWED_ENDPOINTS,
AUDIO_STT_AZURE_API_KEY,
AUDIO_STT_AZURE_BASE_URL,
AUDIO_STT_AZURE_LOCALES,
AUDIO_STT_AZURE_MAX_SPEAKERS,
AUDIO_STT_AZURE_REGION,
# Audio
AUDIO_STT_ENGINE,
AUDIO_STT_MISTRAL_API_BASE_URL,
AUDIO_STT_MISTRAL_API_KEY,
AUDIO_STT_MISTRAL_USE_CHAT_COMPLETIONS,
AUDIO_STT_MODEL,
AUDIO_STT_OPENAI_API_BASE_URL,
AUDIO_STT_OPENAI_API_KEY,
AUDIO_STT_SUPPORTED_CONTENT_TYPES,
AUDIO_TTS_API_KEY,
AUDIO_TTS_AZURE_SPEECH_BASE_URL,
AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMAT,
AUDIO_TTS_AZURE_SPEECH_REGION,
AUDIO_TTS_ENGINE,
AUDIO_TTS_MODEL,
AUDIO_TTS_OPENAI_API_BASE_URL,
AUDIO_TTS_OPENAI_API_KEY,
AUDIO_TTS_OPENAI_PARAMS,
AUDIO_TTS_SPLIT_ON,
AUDIO_TTS_VOICE,
AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH,
AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE,
# Image
AUTOMATIC1111_API_AUTH,
AUTOMATIC1111_BASE_URL,
AUTOMATIC1111_PARAMS,
COMFYUI_BASE_URL,
COMFYUI_API_KEY,
COMFYUI_WORKFLOW,
COMFYUI_WORKFLOW_NODES,
ENABLE_IMAGE_GENERATION,
ENABLE_IMAGE_PROMPT_GENERATION,
IMAGE_GENERATION_ENGINE,
IMAGE_GENERATION_MODEL,
IMAGE_SIZE,
IMAGE_STEPS,
IMAGES_OPENAI_API_BASE_URL,
IMAGES_OPENAI_API_VERSION,
IMAGES_OPENAI_API_KEY,
IMAGES_OPENAI_API_PARAMS,
IMAGES_GEMINI_API_BASE_URL,
IMAGES_GEMINI_API_KEY,
IMAGES_GEMINI_ENDPOINT_METHOD,
ENABLE_IMAGE_EDIT,
IMAGE_EDIT_ENGINE,
IMAGE_EDIT_MODEL,
IMAGE_EDIT_SIZE,
IMAGES_EDIT_OPENAI_API_BASE_URL,
IMAGES_EDIT_OPENAI_API_KEY,
IMAGES_EDIT_OPENAI_API_VERSION,
IMAGES_EDIT_GEMINI_API_BASE_URL,
IMAGES_EDIT_GEMINI_API_KEY,
IMAGES_EDIT_COMFYUI_BASE_URL,
IMAGES_EDIT_COMFYUI_API_KEY,
IMAGES_EDIT_COMFYUI_WORKFLOW,
IMAGES_EDIT_COMFYUI_WORKFLOW_NODES,
# Audio
AUDIO_STT_ENGINE,
AUDIO_STT_MODEL,
AUDIO_STT_SUPPORTED_CONTENT_TYPES,
AUDIO_STT_OPENAI_API_BASE_URL,
AUDIO_STT_OPENAI_API_KEY,
AUDIO_STT_AZURE_API_KEY,
AUDIO_STT_AZURE_REGION,
AUDIO_STT_AZURE_LOCALES,
AUDIO_STT_AZURE_BASE_URL,
AUDIO_STT_AZURE_MAX_SPEAKERS,
AUDIO_STT_MISTRAL_API_KEY,
AUDIO_STT_MISTRAL_API_BASE_URL,
AUDIO_STT_MISTRAL_USE_CHAT_COMPLETIONS,
AUDIO_TTS_ENGINE,
AUDIO_TTS_MODEL,
AUDIO_TTS_VOICE,
AUDIO_TTS_OPENAI_API_BASE_URL,
AUDIO_TTS_OPENAI_API_KEY,
AUDIO_TTS_OPENAI_PARAMS,
AUDIO_TTS_API_KEY,
AUDIO_TTS_SPLIT_ON,
AUDIO_TTS_AZURE_SPEECH_REGION,
AUDIO_TTS_AZURE_SPEECH_BASE_URL,
AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMAT,
PLAYWRIGHT_WS_URL,
PLAYWRIGHT_TIMEOUT,
FIRECRAWL_API_BASE_URL,
FIRECRAWL_API_KEY,
WEB_LOADER_ENGINE,
WEB_LOADER_CONCURRENT_REQUESTS,
WHISPER_MODEL,
WHISPER_VAD_FILTER,
WHISPER_LANGUAGE,
DEEPGRAM_API_KEY,
WHISPER_MODEL_AUTO_UPDATE,
WHISPER_MODEL_DIR,
# Retrieval
RAG_TEMPLATE,
DEFAULT_RAG_TEMPLATE,
RAG_FULL_CONTEXT,
BING_SEARCH_V7_ENDPOINT,
BING_SEARCH_V7_SUBSCRIPTION_KEY,
BOCHA_SEARCH_API_KEY,
BRAVE_SEARCH_API_KEY,
BYPASS_ADMIN_ACCESS_CONTROL,
BYPASS_EMBEDDING_AND_RETRIEVAL,
RAG_EMBEDDING_MODEL,
RAG_EMBEDDING_MODEL_AUTO_UPDATE,
RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE,
RAG_RERANKING_ENGINE,
RAG_RERANKING_MODEL,
RAG_EXTERNAL_RERANKER_URL,
RAG_EXTERNAL_RERANKER_API_KEY,
RAG_RERANKING_MODEL_AUTO_UPDATE,
RAG_RERANKING_MODEL_TRUST_REMOTE_CODE,
RAG_EMBEDDING_ENGINE,
RAG_EMBEDDING_BATCH_SIZE,
ENABLE_ASYNC_EMBEDDING,
RAG_TOP_K,
RAG_TOP_K_RERANKER,
RAG_RELEVANCE_THRESHOLD,
RAG_HYBRID_BM25_WEIGHT,
RAG_ALLOWED_FILE_EXTENSIONS,
RAG_FILE_MAX_COUNT,
RAG_FILE_MAX_SIZE,
FILE_IMAGE_COMPRESSION_WIDTH,
FILE_IMAGE_COMPRESSION_HEIGHT,
RAG_OPENAI_API_BASE_URL,
RAG_OPENAI_API_KEY,
RAG_AZURE_OPENAI_BASE_URL,
RAG_AZURE_OPENAI_API_KEY,
RAG_AZURE_OPENAI_API_VERSION,
RAG_OLLAMA_BASE_URL,
RAG_OLLAMA_API_KEY,
BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL,
BYPASS_WEB_SEARCH_WEB_LOADER,
CACHE_DIR,
CHUNK_OVERLAP,
CHUNK_SIZE,
CODE_EXECUTION_ENGINE,
CODE_EXECUTION_JUPYTER_AUTH,
CODE_EXECUTION_JUPYTER_AUTH_PASSWORD,
CODE_EXECUTION_JUPYTER_AUTH_TOKEN,
CODE_EXECUTION_JUPYTER_TIMEOUT,
CODE_EXECUTION_JUPYTER_URL,
CODE_INTERPRETER_ENGINE,
CODE_INTERPRETER_JUPYTER_AUTH,
CODE_INTERPRETER_JUPYTER_AUTH_PASSWORD,
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
CODE_INTERPRETER_JUPYTER_TIMEOUT,
CODE_INTERPRETER_JUPYTER_URL,
CODE_INTERPRETER_PROMPT_TEMPLATE,
COMFYUI_API_KEY,
COMFYUI_BASE_URL,
COMFYUI_WORKFLOW,
COMFYUI_WORKFLOW_NODES,
CONTENT_EXTRACTION_ENGINE,
DATALAB_MARKER_API_KEY,
DATALAB_MARKER_API_BASE_URL,
CORS_ALLOW_ORIGIN,
DATALAB_MARKER_ADDITIONAL_CONFIG,
DATALAB_MARKER_SKIP_CACHE,
DATALAB_MARKER_FORCE_OCR,
DATALAB_MARKER_PAGINATE,
DATALAB_MARKER_STRIP_EXISTING_OCR,
DATALAB_MARKER_API_BASE_URL,
DATALAB_MARKER_API_KEY,
DATALAB_MARKER_DISABLE_IMAGE_EXTRACTION,
DATALAB_MARKER_FORCE_OCR,
DATALAB_MARKER_FORMAT_LINES,
DATALAB_MARKER_OUTPUT_FORMAT,
MINERU_API_MODE,
MINERU_API_URL,
MINERU_API_KEY,
MINERU_PARAMS,
DATALAB_MARKER_PAGINATE,
DATALAB_MARKER_SKIP_CACHE,
DATALAB_MARKER_STRIP_EXISTING_OCR,
DATALAB_MARKER_USE_LLM,
EXTERNAL_DOCUMENT_LOADER_URL,
EXTERNAL_DOCUMENT_LOADER_API_KEY,
TIKA_SERVER_URL,
DOCLING_SERVER_URL,
DEEPGRAM_API_KEY,
DEFAULT_GROUP_ID,
DEFAULT_LOCALE,
DEFAULT_MODELS,
DEFAULT_PINNED_MODELS,
DEFAULT_PROMPT_SUGGESTIONS,
DEFAULT_USER_ROLE,
DOCLING_API_KEY,
DOCLING_PARAMS,
DOCLING_SERVER_URL,
DOCUMENT_INTELLIGENCE_ENDPOINT,
DOCUMENT_INTELLIGENCE_KEY,
DOCUMENT_INTELLIGENCE_MODEL,
MISTRAL_OCR_API_BASE_URL,
MISTRAL_OCR_API_KEY,
RAG_TEXT_SPLITTER,
TIKTOKEN_ENCODING_NAME,
PDF_EXTRACT_IMAGES,
YOUTUBE_LOADER_LANGUAGE,
YOUTUBE_LOADER_PROXY_URL,
# Admin
ENABLE_ADMIN_CHAT_ACCESS,
ENABLE_ADMIN_EXPORT,
ENABLE_API_KEYS,
ENABLE_API_KEYS_ENDPOINT_RESTRICTIONS,
ENABLE_ASYNC_EMBEDDING,
ENABLE_AUTOCOMPLETE_GENERATION,
# Model list
ENABLE_BASE_MODELS_CACHE,
ENABLE_CHANNELS,
# Code Execution
ENABLE_CODE_EXECUTION,
ENABLE_CODE_INTERPRETER,
ENABLE_COMMUNITY_SHARING,
# Direct Connections
ENABLE_DIRECT_CONNECTIONS,
ENABLE_EVALUATION_ARENA_MODELS,
ENABLE_FOLDERS,
ENABLE_FOLLOW_UP_GENERATION,
ENABLE_GOOGLE_DRIVE_INTEGRATION,
ENABLE_IMAGE_EDIT,
ENABLE_IMAGE_GENERATION,
ENABLE_IMAGE_PROMPT_GENERATION,
# WebUI (LDAP)
ENABLE_LDAP,
ENABLE_LDAP_GROUP_CREATION,
# LDAP Group Management
ENABLE_LDAP_GROUP_MANAGEMENT,
ENABLE_LOGIN_FORM,
ENABLE_MESSAGE_RATING,
ENABLE_NOTES,
# WebUI (OAuth)
ENABLE_OAUTH_ROLE_MANAGEMENT,
# Ollama
ENABLE_OLLAMA_API,
ENABLE_ONEDRIVE_BUSINESS,
ENABLE_ONEDRIVE_INTEGRATION,
ENABLE_ONEDRIVE_PERSONAL,
# OpenAI
ENABLE_OPENAI_API,
ENABLE_RAG_HYBRID_SEARCH,
ENABLE_RAG_HYBRID_SEARCH_ENRICHED_TEXTS,
ENABLE_RETRIEVAL_QUERY_GENERATION,
ENABLE_SEARCH_QUERY_GENERATION,
ENABLE_SIGNUP,
ENABLE_TAGS_GENERATION,
ENABLE_TITLE_GENERATION,
ENABLE_USER_WEBHOOKS,
ENABLE_WEB_LOADER_SSL_VERIFICATION,
# Retrieval (Web Search)
ENABLE_WEB_SEARCH,
WEB_SEARCH_ENGINE,
BYPASS_WEB_SEARCH_EMBEDDING_AND_RETRIEVAL,
BYPASS_WEB_SEARCH_WEB_LOADER,
WEB_SEARCH_RESULT_COUNT,
WEB_SEARCH_CONCURRENT_REQUESTS,
WEB_SEARCH_TRUST_ENV,
WEB_SEARCH_DOMAIN_FILTER_LIST,
OLLAMA_CLOUD_WEB_SEARCH_API_KEY,
# Misc
ENV,
EVALUATION_ARENA_MODELS,
EXA_API_KEY,
EXTERNAL_DOCUMENT_LOADER_API_KEY,
EXTERNAL_DOCUMENT_LOADER_URL,
EXTERNAL_WEB_LOADER_API_KEY,
EXTERNAL_WEB_LOADER_URL,
EXTERNAL_WEB_SEARCH_API_KEY,
EXTERNAL_WEB_SEARCH_URL,
FILE_IMAGE_COMPRESSION_HEIGHT,
FILE_IMAGE_COMPRESSION_WIDTH,
FIRECRAWL_API_BASE_URL,
FIRECRAWL_API_KEY,
FOLLOW_UP_GENERATION_PROMPT_TEMPLATE,
FRONTEND_BUILD_DIR,
GOOGLE_DRIVE_API_KEY,
GOOGLE_DRIVE_CLIENT_ID,
GOOGLE_PSE_API_KEY,
GOOGLE_PSE_ENGINE_ID,
IMAGE_EDIT_ENGINE,
IMAGE_EDIT_MODEL,
IMAGE_EDIT_SIZE,
IMAGE_GENERATION_ENGINE,
IMAGE_GENERATION_MODEL,
IMAGE_PROMPT_GENERATION_PROMPT_TEMPLATE,
IMAGE_SIZE,
IMAGE_STEPS,
IMAGES_EDIT_COMFYUI_API_KEY,
IMAGES_EDIT_COMFYUI_BASE_URL,
IMAGES_EDIT_COMFYUI_WORKFLOW,
IMAGES_EDIT_COMFYUI_WORKFLOW_NODES,
IMAGES_EDIT_GEMINI_API_BASE_URL,
IMAGES_EDIT_GEMINI_API_KEY,
IMAGES_EDIT_OPENAI_API_BASE_URL,
IMAGES_EDIT_OPENAI_API_KEY,
IMAGES_EDIT_OPENAI_API_VERSION,
IMAGES_GEMINI_API_BASE_URL,
IMAGES_GEMINI_API_KEY,
IMAGES_GEMINI_ENDPOINT_METHOD,
IMAGES_OPENAI_API_BASE_URL,
IMAGES_OPENAI_API_KEY,
IMAGES_OPENAI_API_PARAMS,
IMAGES_OPENAI_API_VERSION,
JINA_API_KEY,
JINA_SEARCH_API_URL,
JWT_EXPIRES_IN,
KAGI_SEARCH_API_KEY,
LDAP_APP_DN,
LDAP_APP_PASSWORD,
LDAP_ATTRIBUTE_FOR_GROUPS,
LDAP_ATTRIBUTE_FOR_MAIL,
LDAP_ATTRIBUTE_FOR_USERNAME,
LDAP_CA_CERT_FILE,
LDAP_CIPHERS,
LDAP_SEARCH_BASE,
LDAP_SEARCH_FILTERS,
LDAP_SERVER_HOST,
LDAP_SERVER_LABEL,
LDAP_SERVER_PORT,
LDAP_USE_TLS,
LDAP_VALIDATE_CERT,
MINERU_API_KEY,
MINERU_API_MODE,
MINERU_API_URL,
MINERU_PARAMS,
MISTRAL_OCR_API_BASE_URL,
MISTRAL_OCR_API_KEY,
MODEL_ORDER_LIST,
MOJEEK_SEARCH_API_KEY,
OAUTH_ADMIN_ROLES,
OAUTH_ALLOWED_ROLES,
OAUTH_EMAIL_CLAIM,
OAUTH_PICTURE_CLAIM,
OAUTH_PROVIDERS,
OAUTH_ROLES_CLAIM,
OAUTH_USERNAME_CLAIM,
OLLAMA_API_CONFIGS,
OLLAMA_BASE_URLS,
OLLAMA_CLOUD_WEB_SEARCH_API_KEY,
ONEDRIVE_CLIENT_ID_BUSINESS,
ONEDRIVE_CLIENT_ID_PERSONAL,
ONEDRIVE_SHAREPOINT_TENANT_ID,
ONEDRIVE_SHAREPOINT_URL,
OPENAI_API_BASE_URLS,
OPENAI_API_CONFIGS,
OPENAI_API_KEYS,
PDF_EXTRACT_IMAGES,
PENDING_USER_OVERLAY_CONTENT,
PENDING_USER_OVERLAY_TITLE,
PERPLEXITY_API_KEY,
PERPLEXITY_MODEL,
PERPLEXITY_SEARCH_API_URL,
PERPLEXITY_SEARCH_CONTEXT_USAGE,
PLAYWRIGHT_TIMEOUT,
PLAYWRIGHT_WS_URL,
QUERY_GENERATION_PROMPT_TEMPLATE,
RAG_ALLOWED_FILE_EXTENSIONS,
RAG_AZURE_OPENAI_API_KEY,
RAG_AZURE_OPENAI_API_VERSION,
RAG_AZURE_OPENAI_BASE_URL,
RAG_EMBEDDING_BATCH_SIZE,
RAG_EMBEDDING_ENGINE,
RAG_EMBEDDING_MODEL,
RAG_EXTERNAL_RERANKER_API_KEY,
RAG_EXTERNAL_RERANKER_URL,
RAG_FILE_MAX_COUNT,
RAG_FILE_MAX_SIZE,
RAG_FULL_CONTEXT,
RAG_HYBRID_BM25_WEIGHT,
RAG_OLLAMA_API_KEY,
RAG_OLLAMA_BASE_URL,
RAG_OPENAI_API_BASE_URL,
RAG_OPENAI_API_KEY,
RAG_RELEVANCE_THRESHOLD,
RAG_RERANKING_ENGINE,
RAG_RERANKING_MODEL,
RAG_TEMPLATE,
RAG_TEXT_SPLITTER,
RAG_TOP_K,
RAG_TOP_K_RERANKER,
RESPONSE_WATERMARK,
SEARCHAPI_API_KEY,
SEARCHAPI_ENGINE,
SEARXNG_QUERY_URL,
SERPAPI_API_KEY,
SERPAPI_ENGINE,
SEARXNG_QUERY_URL,
YACY_QUERY_URL,
YACY_USERNAME,
YACY_PASSWORD,
SERPER_API_KEY,
SERPLY_API_KEY,
SERPSTACK_API_KEY,
SERPSTACK_HTTPS,
TAVILY_API_KEY,
TAVILY_EXTRACT_DEPTH,
BING_SEARCH_V7_ENDPOINT,
BING_SEARCH_V7_SUBSCRIPTION_KEY,
BRAVE_SEARCH_API_KEY,
EXA_API_KEY,
PERPLEXITY_API_KEY,
PERPLEXITY_MODEL,
PERPLEXITY_SEARCH_CONTEXT_USAGE,
PERPLEXITY_SEARCH_API_URL,
SHOW_ADMIN_DETAILS,
SOUGOU_API_SID,
SOUGOU_API_SK,
KAGI_SEARCH_API_KEY,
MOJEEK_SEARCH_API_KEY,
BOCHA_SEARCH_API_KEY,
GOOGLE_PSE_API_KEY,
GOOGLE_PSE_ENGINE_ID,
GOOGLE_DRIVE_CLIENT_ID,
GOOGLE_DRIVE_API_KEY,
ENABLE_ONEDRIVE_INTEGRATION,
ONEDRIVE_CLIENT_ID_PERSONAL,
ONEDRIVE_CLIENT_ID_BUSINESS,
ONEDRIVE_SHAREPOINT_URL,
ONEDRIVE_SHAREPOINT_TENANT_ID,
ENABLE_ONEDRIVE_PERSONAL,
ENABLE_ONEDRIVE_BUSINESS,
ENABLE_RAG_HYBRID_SEARCH,
ENABLE_RAG_HYBRID_SEARCH_ENRICHED_TEXTS,
ENABLE_RAG_LOCAL_WEB_FETCH,
ENABLE_WEB_LOADER_SSL_VERIFICATION,
ENABLE_GOOGLE_DRIVE_INTEGRATION,
UPLOAD_DIR,
EXTERNAL_WEB_SEARCH_URL,
EXTERNAL_WEB_SEARCH_API_KEY,
EXTERNAL_WEB_LOADER_URL,
EXTERNAL_WEB_LOADER_API_KEY,
# WebUI
WEBUI_AUTH,
WEBUI_NAME,
WEBUI_BANNERS,
WEBHOOK_URL,
ADMIN_EMAIL,
SHOW_ADMIN_DETAILS,
JWT_EXPIRES_IN,
ENABLE_SIGNUP,
ENABLE_LOGIN_FORM,
ENABLE_API_KEYS,
ENABLE_API_KEYS_ENDPOINT_RESTRICTIONS,
API_KEYS_ALLOWED_ENDPOINTS,
ENABLE_FOLDERS,
ENABLE_CHANNELS,
ENABLE_NOTES,
ENABLE_COMMUNITY_SHARING,
ENABLE_MESSAGE_RATING,
ENABLE_USER_WEBHOOKS,
ENABLE_EVALUATION_ARENA_MODELS,
BYPASS_ADMIN_ACCESS_CONTROL,
USER_PERMISSIONS,
DEFAULT_USER_ROLE,
DEFAULT_GROUP_ID,
PENDING_USER_OVERLAY_CONTENT,
PENDING_USER_OVERLAY_TITLE,
DEFAULT_PROMPT_SUGGESTIONS,
DEFAULT_MODELS,
DEFAULT_PINNED_MODELS,
DEFAULT_ARENA_MODEL,
MODEL_ORDER_LIST,
EVALUATION_ARENA_MODELS,
# WebUI (OAuth)
ENABLE_OAUTH_ROLE_MANAGEMENT,
OAUTH_ROLES_CLAIM,
OAUTH_EMAIL_CLAIM,
OAUTH_PICTURE_CLAIM,
OAUTH_USERNAME_CLAIM,
OAUTH_ALLOWED_ROLES,
OAUTH_ADMIN_ROLES,
# WebUI (LDAP)
ENABLE_LDAP,
LDAP_SERVER_LABEL,
LDAP_SERVER_HOST,
LDAP_SERVER_PORT,
LDAP_ATTRIBUTE_FOR_MAIL,
LDAP_ATTRIBUTE_FOR_USERNAME,
LDAP_SEARCH_FILTERS,
LDAP_SEARCH_BASE,
LDAP_APP_DN,
LDAP_APP_PASSWORD,
LDAP_USE_TLS,
LDAP_CA_CERT_FILE,
LDAP_VALIDATE_CERT,
LDAP_CIPHERS,
# LDAP Group Management
ENABLE_LDAP_GROUP_MANAGEMENT,
ENABLE_LDAP_GROUP_CREATION,
LDAP_ATTRIBUTE_FOR_GROUPS,
# Misc
ENV,
CACHE_DIR,
STATIC_DIR,
FRONTEND_BUILD_DIR,
CORS_ALLOW_ORIGIN,
DEFAULT_LOCALE,
OAUTH_PROVIDERS,
WEBUI_URL,
RESPONSE_WATERMARK,
# Admin
ENABLE_ADMIN_CHAT_ACCESS,
BYPASS_ADMIN_ACCESS_CONTROL,
ENABLE_ADMIN_EXPORT,
TAGS_GENERATION_PROMPT_TEMPLATE,
# Tasks
TASK_MODEL,
TASK_MODEL_EXTERNAL,
ENABLE_TAGS_GENERATION,
ENABLE_TITLE_GENERATION,
ENABLE_FOLLOW_UP_GENERATION,
ENABLE_SEARCH_QUERY_GENERATION,
ENABLE_RETRIEVAL_QUERY_GENERATION,
ENABLE_AUTOCOMPLETE_GENERATION,
TAVILY_API_KEY,
TAVILY_EXTRACT_DEPTH,
# Thread pool size for FastAPI/AnyIO
THREAD_POOL_SIZE,
TIKA_SERVER_URL,
TIKTOKEN_ENCODING_NAME,
TITLE_GENERATION_PROMPT_TEMPLATE,
FOLLOW_UP_GENERATION_PROMPT_TEMPLATE,
TAGS_GENERATION_PROMPT_TEMPLATE,
IMAGE_PROMPT_GENERATION_PROMPT_TEMPLATE,
# Tool Server Configs
TOOL_SERVER_CONNECTIONS,
TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE,
USER_PERMISSIONS,
VOICE_MODE_PROMPT_TEMPLATE,
QUERY_GENERATION_PROMPT_TEMPLATE,
AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE,
AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH,
WEB_LOADER_CONCURRENT_REQUESTS,
WEB_LOADER_ENGINE,
WEB_SEARCH_CONCURRENT_REQUESTS,
WEB_SEARCH_DOMAIN_FILTER_LIST,
WEB_SEARCH_ENGINE,
WEB_SEARCH_RESULT_COUNT,
WEB_SEARCH_TRUST_ENV,
WEBHOOK_URL,
# WebUI
WEBUI_AUTH,
WEBUI_BANNERS,
WEBUI_NAME,
WEBUI_URL,
WHISPER_MODEL,
WHISPER_VAD_FILTER,
YACY_PASSWORD,
YACY_QUERY_URL,
YACY_USERNAME,
YOUTUBE_LOADER_LANGUAGE,
YOUTUBE_LOADER_PROXY_URL,
AppConfig,
reset_config,
)
from open_webui.constants import ERROR_MESSAGES
from open_webui.env import (
LICENSE_KEY,
AIOHTTP_CLIENT_SESSION_SSL,
AUDIT_EXCLUDED_PATHS,
AUDIT_LOG_LEVEL,
BYPASS_MODEL_ACCESS_CONTROL,
CHANGELOG,
REDIS_URL,
DEPLOYMENT_ID,
ENABLE_COMPRESSION_MIDDLEWARE,
ENABLE_OTEL,
# SCIM
ENABLE_SCIM,
ENABLE_SIGNUP_PASSWORD_CONFIRMATION,
ENABLE_STAR_SESSIONS_MIDDLEWARE,
ENABLE_VERSION_UPDATE_CHECK,
ENABLE_WEBSOCKET_SUPPORT,
EXTERNAL_PWA_MANIFEST_URL,
GLOBAL_LOG_LEVEL,
INSTANCE_ID,
LICENSE_KEY,
MAX_BODY_LOG_SIZE,
REDIS_CLUSTER,
REDIS_KEY_PREFIX,
REDIS_SENTINEL_HOSTS,
REDIS_SENTINEL_PORT,
GLOBAL_LOG_LEVEL,
MAX_BODY_LOG_SIZE,
REDIS_URL,
RESET_CONFIG_ON_START,
SAFE_MODE,
SCIM_TOKEN,
SRC_LOG_LEVELS,
VERSION,
DEPLOYMENT_ID,
INSTANCE_ID,
WEBUI_AUTH_SIGNOUT_REDIRECT_URL,
WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
WEBUI_AUTH_TRUSTED_NAME_HEADER,
WEBUI_BUILD_HASH,
WEBUI_SECRET_KEY,
WEBUI_SESSION_COOKIE_SAME_SITE,
WEBUI_SESSION_COOKIE_SECURE,
ENABLE_SIGNUP_PASSWORD_CONFIRMATION,
WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
WEBUI_AUTH_TRUSTED_NAME_HEADER,
WEBUI_AUTH_SIGNOUT_REDIRECT_URL,
# SCIM
ENABLE_SCIM,
SCIM_TOKEN,
ENABLE_COMPRESSION_MIDDLEWARE,
ENABLE_WEBSOCKET_SUPPORT,
BYPASS_MODEL_ACCESS_CONTROL,
RESET_CONFIG_ON_START,
ENABLE_VERSION_UPDATE_CHECK,
ENABLE_OTEL,
EXTERNAL_PWA_MANIFEST_URL,
AIOHTTP_CLIENT_SESSION_SSL,
ENABLE_STAR_SESSIONS_MIDDLEWARE,
)
from open_webui.utils.models import (
get_all_models,
get_all_base_models,
check_model_access,
get_filtered_models,
from open_webui.internal.db import Session, engine
from open_webui.models.chats import Chats
from open_webui.models.functions import Functions
from open_webui.models.models import Models
from open_webui.models.users import Users
from open_webui.routers import (
audio,
auths,
channels,
chats,
configs,
evaluations,
files,
folders,
functions,
groups,
images,
knowledge,
memories,
models,
notes,
ollama,
openai,
pipelines,
prompts,
retrieval,
scim,
tasks,
tools,
users,
utils,
)
from open_webui.routers.retrieval import (
get_ef,
get_embedding_function,
get_reranking_function,
get_rf,
)
from open_webui.socket.main import (
MODELS,
get_event_emitter,
get_models_in_use,
periodic_usage_pool_cleanup,
)
from open_webui.socket.main import (
app as socket_app,
)
from open_webui.tasks import (
create_task,
list_task_ids_by_item_id,
list_tasks,
redis_task_command_listener,
stop_task,
) # Import from tasks.py
from open_webui.utils import logger
from open_webui.utils.audit import AuditLevel, AuditLoggingMiddleware
from open_webui.utils.auth import (
decode_token,
get_admin_user,
get_http_authorization_cred,
get_license_data,
get_verified_user,
)
from open_webui.utils.chat import (
chat_action as chat_action_handler,
)
from open_webui.utils.chat import (
chat_completed as chat_completed_handler,
)
from open_webui.utils.chat import (
generate_chat_completion as chat_completion_handler,
chat_completed as chat_completed_handler,
chat_action as chat_action_handler,
)
from open_webui.utils.embeddings import generate_embeddings
from open_webui.utils.logger import start_logger
from open_webui.utils.middleware import process_chat_payload, process_chat_response
from open_webui.utils.access_control import has_access
from open_webui.utils.auth import (
get_license_data,
get_http_authorization_cred,
decode_token,
get_admin_user,
get_verified_user,
from open_webui.utils.models import (
check_model_access,
get_all_base_models,
get_all_models,
get_filtered_models,
)
from open_webui.utils.oauth import (
OAuthClientInformationFull,
OAuthClientManager,
OAuthManager,
decrypt_data,
encrypt_data,
get_oauth_client_info_with_dynamic_client_registration,
)
from open_webui.utils.plugin import install_tool_and_function_dependencies
from open_webui.utils.oauth import (
get_oauth_client_info_with_dynamic_client_registration,
encrypt_data,
decrypt_data,
OAuthManager,
OAuthClientManager,
OAuthClientInformationFull,
)
from open_webui.utils.redis import get_redis_connection, get_sentinels_from_env
from open_webui.utils.security_headers import SecurityHeadersMiddleware
from open_webui.utils.redis import get_redis_connection
from open_webui.tasks import (
redis_task_command_listener,
list_task_ids_by_item_id,
create_task,
stop_task,
list_tasks,
) # Import from tasks.py
from open_webui.utils.redis import get_sentinels_from_env
from open_webui.constants import ERROR_MESSAGES
if SAFE_MODE:
print("SAFE MODE ENABLED")
@ -953,6 +916,7 @@ app.state.config.SEARCHAPI_ENGINE = SEARCHAPI_ENGINE
app.state.config.SERPAPI_API_KEY = SERPAPI_API_KEY
app.state.config.SERPAPI_ENGINE = SERPAPI_ENGINE
app.state.config.JINA_API_KEY = JINA_API_KEY
app.state.config.JINA_SEARCH_API_URL = JINA_SEARCH_API_URL
app.state.config.BING_SEARCH_V7_ENDPOINT = BING_SEARCH_V7_ENDPOINT
app.state.config.BING_SEARCH_V7_SUBSCRIPTION_KEY = BING_SEARCH_V7_SUBSCRIPTION_KEY
app.state.config.EXA_API_KEY = EXA_API_KEY
@ -1653,7 +1617,7 @@ async def chat_completion(
{"type": "chat:tasks:cancel"},
)
)
except Exception as e:
except Exception:
pass
finally:
raise # re-raise to ensure proper task cancellation handling
@ -1988,7 +1952,7 @@ async def get_app_version():
async def get_app_latest_release_version(user=Depends(get_verified_user)):
if not ENABLE_VERSION_UPDATE_CHECK:
log.debug(
f"Version update check is disabled, returning current version as latest version"
"Version update check is disabled, returning current version as latest version"
)
return {"current": VERSION, "latest": VERSION}
try:
@ -2076,7 +2040,7 @@ try:
log.info("Using Redis for session")
else:
raise ValueError("No Redis URL provided")
except Exception as e:
except Exception:
app.add_middleware(
SessionMiddleware,
secret_key=WEBUI_SECRET_KEY,

View file

@ -1,15 +1,20 @@
import logging
import requests
from open_webui.retrieval.web.main import SearchResult
from open_webui.env import SRC_LOG_LEVELS
from open_webui.retrieval.web.main import SearchResult
from yarl import URL
log = logging.getLogger(__name__)
log.setLevel(SRC_LOG_LEVELS["RAG"])
def search_jina(api_key: str, query: str, count: int) -> list[SearchResult]:
def search_jina(
api_key: str,
query: str,
count: int,
api_url: str = "https://s.jina.ai/",
) -> list[SearchResult]:
"""
Search using Jina's Search API and return the results as a list of SearchResult objects.
Args:
@ -19,7 +24,12 @@ def search_jina(api_key: str, query: str, count: int) -> list[SearchResult]:
Returns:
list[SearchResult]: A list of search results
"""
jina_search_endpoint = "https://s.jina.ai/"
# Handle PersistentConfig object
if hasattr(api_key, "__str__"):
api_key = str(api_key)
if hasattr(api_url, "__str__"):
api_url = str(api_url)
headers = {
"Accept": "application/json",
@ -30,7 +40,7 @@ def search_jina(api_key: str, query: str, count: int) -> list[SearchResult]:
payload = {"q": query, "count": count if count <= 10 else 10}
url = str(URL(jina_search_endpoint))
url = str(URL(api_url))
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
data = response.json()

View file

@ -526,6 +526,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)):
"SERPAPI_API_KEY": request.app.state.config.SERPAPI_API_KEY,
"SERPAPI_ENGINE": request.app.state.config.SERPAPI_ENGINE,
"JINA_API_KEY": request.app.state.config.JINA_API_KEY,
"JINA_SEARCH_API_URL": request.app.state.config.JINA_SEARCH_API_URL,
"BING_SEARCH_V7_ENDPOINT": request.app.state.config.BING_SEARCH_V7_ENDPOINT,
"BING_SEARCH_V7_SUBSCRIPTION_KEY": request.app.state.config.BING_SEARCH_V7_SUBSCRIPTION_KEY,
"EXA_API_KEY": request.app.state.config.EXA_API_KEY,
@ -584,6 +585,7 @@ class WebConfig(BaseModel):
SERPAPI_API_KEY: Optional[str] = None
SERPAPI_ENGINE: Optional[str] = None
JINA_API_KEY: Optional[str] = None
JINA_SEARCH_API_URL: Optional[str] = None
BING_SEARCH_V7_ENDPOINT: Optional[str] = None
BING_SEARCH_V7_SUBSCRIPTION_KEY: Optional[str] = None
EXA_API_KEY: Optional[str] = None
@ -1051,6 +1053,7 @@ async def update_rag_config(
request.app.state.config.SERPAPI_API_KEY = form_data.web.SERPAPI_API_KEY
request.app.state.config.SERPAPI_ENGINE = form_data.web.SERPAPI_ENGINE
request.app.state.config.JINA_API_KEY = form_data.web.JINA_API_KEY
request.app.state.config.JINA_SEARCH_API_URL = form_data.web.JINA_SEARCH_API_URL
request.app.state.config.BING_SEARCH_V7_ENDPOINT = (
form_data.web.BING_SEARCH_V7_ENDPOINT
)
@ -1196,6 +1199,7 @@ async def update_rag_config(
"SERPAPI_API_KEY": request.app.state.config.SERPAPI_API_KEY,
"SERPAPI_ENGINE": request.app.state.config.SERPAPI_ENGINE,
"JINA_API_KEY": request.app.state.config.JINA_API_KEY,
"JINA_SEARCH_API_URL": request.app.state.config.JINA_SEARCH_API_URL,
"BING_SEARCH_V7_ENDPOINT": request.app.state.config.BING_SEARCH_V7_ENDPOINT,
"BING_SEARCH_V7_SUBSCRIPTION_KEY": request.app.state.config.BING_SEARCH_V7_SUBSCRIPTION_KEY,
"EXA_API_KEY": request.app.state.config.EXA_API_KEY,
@ -1459,7 +1463,6 @@ def process_file(
if file:
try:
collection_name = form_data.collection_name
if collection_name is None:
@ -1972,6 +1975,7 @@ def search_web(
request.app.state.config.JINA_API_KEY,
query,
request.app.state.config.WEB_SEARCH_RESULT_COUNT,
request.app.state.config.JINA_SEARCH_API_URL,
)
elif engine == "bing":
return search_bing(
@ -2058,7 +2062,6 @@ def search_web(
async def process_web_search(
request: Request, form_data: SearchForm, user=Depends(get_verified_user)
):
urls = []
result_items = []

View file

@ -448,19 +448,39 @@
</div>
</div>
</div>
{:else if webConfig.WEB_SEARCH_ENGINE === 'jina'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
{$i18n.t('Jina API Key')}
</div>
{:else if webConfig.WEB_SEARCH_ENGINE === 'jina'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
{$i18n.t('Jina Search API URL')}
</div>
<SensitiveInput
placeholder={$i18n.t('Enter Jina API Key')}
bind:value={webConfig.JINA_API_KEY}
/>
<div class="flex w-full">
<div class="flex-1">
<input
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-hidden"
type="text"
placeholder={$i18n.t('Enter Jina Search API URL')}
bind:value={webConfig.JINA_SEARCH_API_URL}
autocomplete="off"
/>
</div>
</div>
</div>
</div>
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
{$i18n.t('Jina API Key')}
</div>
<SensitiveInput
placeholder={$i18n.t('Enter Jina API Key')}
bind:value={webConfig.JINA_API_KEY}
/>
</div>
</div>
{:else if webConfig.WEB_SEARCH_ENGINE === 'bing'}
<div class="mb-2.5 flex w-full flex-col">
<div>

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "(e.g. 512x512) أدخل حجم الصورة ",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "يناير",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "انضم إلى Discord للحصول على المساعدة.",
"JSON": "JSON",
"JSON Preview": "معاينة JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "(e.g. 512x512) أدخل حجم الصورة ",
"Enter Jina API Key": "أدخل مفتاح API لـ Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "أدخل كلمة مرور Jupyter",
"Enter Jupyter Token": "أدخل رمز Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "يناير",
"Jina API Key": "مفتاح API لـ Jina",
"Jina Search API URL": "",
"join our Discord for help.": "انضم إلى Discord للحصول على المساعدة.",
"JSON": "JSON",
"JSON Preview": "معاينة JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Въведете размер на изображението (напр. 512x512)",
"Enter Jina API Key": "Въведете API ключ за Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Въведете парола за Jupyter",
"Enter Jupyter Token": "Въведете токен за Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Януари",
"Jina API Key": "API ключ за Jina",
"Jina Search API URL": "",
"join our Discord for help.": "свържете се с нашия Discord за помощ.",
"JSON": "JSON",
"JSON Preview": "JSON Преглед",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "ছবির মাপ লিখুন (যেমন 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "জানুয়ারী",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "সাহায্যের জন্য আমাদের Discord-এ যুক্ত হোন",
"JSON": "JSON",
"JSON Preview": "JSON প্রিভিউ",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "པར་གྱི་ཆེ་ཆུང་འཇུག་པ། (དཔེར་ན། 512x512)",
"Enter Jina API Key": "Jina API ལྡེ་མིག་འཇུག་པ།",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Jupyter གསང་གྲངས་འཇུག་པ།",
"Enter Jupyter Token": "Jupyter Token འཇུག་པ།",
@ -932,6 +933,7 @@
"Italic": "",
"January": "ཟླ་བ་དང་པོ།",
"Jina API Key": "Jina API ལྡེ་མིག",
"Jina Search API URL": "",
"join our Discord for help.": "རོགས་རམ་ཆེད་དུ་ང་ཚོའི་ Discord ལ་མཉམ་ཞུགས་བྱེད་པ།",
"JSON": "JSON",
"JSON Preview": "JSON སྔོན་ལྟ།",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Unesite veličinu slike (npr. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Januar",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "pridružite se našem Discordu za pomoć.",
"JSON": "JSON",
"JSON Preview": "JSON pretpregled",

View file

@ -596,6 +596,7 @@
"Enter ID": "Introdueix l'ID",
"Enter Image Size (e.g. 512x512)": "Introdueix la mida de la imatge (p. ex. 512x512)",
"Enter Jina API Key": "Introdueix la clau API de Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Introdueix la configuració JSON (per exemple, {\"disable_links\": true})",
"Enter Jupyter Password": "Introdueix la contrasenya de Jupyter",
"Enter Jupyter Token": "Introdueix el token de Jupyter",
@ -932,6 +933,7 @@
"Italic": "Cursiva",
"January": "Gener",
"Jina API Key": "Clau API de Jina",
"Jina Search API URL": "",
"join our Discord for help.": "uneix-te al nostre Discord per obtenir ajuda.",
"JSON": "JSON",
"JSON Preview": "Vista prèvia del document JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Pagsulod sa gidak-on sa hulagway (pananglitan 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "Apil sa among Discord alang sa tabang.",
"JSON": "JSON",
"JSON Preview": "",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Zadejte velikost obrázku (např. 512x512)",
"Enter Jina API Key": "Zadejte API klíč pro Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Zadejte JSON konfiguraci (např. {\"disable_links\": true})",
"Enter Jupyter Password": "Zadejte heslo pro Jupyter",
"Enter Jupyter Token": "Zadejte token pro Jupyter",
@ -932,6 +933,7 @@
"Italic": "Kurzíva",
"January": "Leden",
"Jina API Key": "API klíč pro Jina",
"Jina Search API URL": "",
"join our Discord for help.": "připojte se na náš Discord pro pomoc.",
"JSON": "JSON",
"JSON Preview": "Náhled JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "Indtast ID",
"Enter Image Size (e.g. 512x512)": "Indtast billedstørrelse (f.eks. 512x512)",
"Enter Jina API Key": "Indtast Jina API nøgle",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Indtast JSON konfiguration (f.eks., {\"disable_links\": true})",
"Enter Jupyter Password": "Indtast Jupyter password",
"Enter Jupyter Token": "Indtast Jupyter token",
@ -932,6 +933,7 @@
"Italic": "Kursiv",
"January": "Januar",
"Jina API Key": "Jina API-nøgle",
"Jina Search API URL": "",
"join our Discord for help.": "tilslut dig vores Discord for at få hjælp.",
"JSON": "JSON",
"JSON Preview": "JSON-forhåndsvisning",

View file

@ -596,6 +596,7 @@
"Enter ID": "ID eingeben",
"Enter Image Size (e.g. 512x512)": "Geben Sie die Bildgröße ein (z. B. 512x512)",
"Enter Jina API Key": "Geben Sie den Jina-API-Schlüssel ein",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Geben Sie die JSON-Konfiguration ein (z.\u202fB. {\"disable_links\": true})",
"Enter Jupyter Password": "Geben Sie das Jupyter-Passwort ein",
"Enter Jupyter Token": "Geben Sie den Jupyter-Token ein",
@ -932,6 +933,7 @@
"Italic": "Kursiv",
"January": "Januar",
"Jina API Key": "Jina-API-Schlüssel",
"Jina Search API URL": "",
"join our Discord for help.": "Treten Sie unserem Discord bei, um Hilfe zu erhalten.",
"JSON": "JSON",
"JSON Preview": "JSON-Vorschau",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Enter Size of Wow (e.g. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "join our Discord for help.",
"JSON": "JSON",
"JSON Preview": "",

View file

@ -596,6 +596,7 @@
"Enter ID": "Εισάγετε ID",
"Enter Image Size (e.g. 512x512)": "Εισάγετε το Μέγεθος Εικόνας (π.χ. 512x512)",
"Enter Jina API Key": "Εισάγετε το Κλειδί API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Εισάγετε Κωδικό Jupyter",
"Enter Jupyter Token": "Εισάγετε Jupyter Token",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Ιανουάριος",
"Jina API Key": "Κλειδί API Jina",
"Jina Search API URL": "",
"join our Discord for help.": "συμμετέχετε στο Discord μας για βοήθεια.",
"JSON": "JSON",
"JSON Preview": "Προεπισκόπηση JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "",
"JSON": "",
"JSON Preview": "",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "",
"JSON": "",
"JSON Preview": "",

View file

@ -596,6 +596,7 @@
"Enter ID": "Ingresar ID",
"Enter Image Size (e.g. 512x512)": "Ingresar Tamaño de Imagen (p.ej. 512x512)",
"Enter Jina API Key": "Ingresar Clave API de Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Ingresar config JSON (ej., {\"disable_links\": true})",
"Enter Jupyter Password": "Ingresar Contraseña de Jupyter",
"Enter Jupyter Token": "Ingresar Token de Jupyter",
@ -932,6 +933,7 @@
"Italic": "Cursiva",
"January": "Enero",
"Jina API Key": "Clave API de Jina",
"Jina Search API URL": "",
"join our Discord for help.": "unete a nuestro Discord para ayuda.",
"JSON": "JSON",
"JSON Preview": "Prevista del JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "Enter ID",
"Enter Image Size (e.g. 512x512)": "Sisestage pildi suurus (nt 512x512)",
"Enter Jina API Key": "Sisestage Jina API võti",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Enter JSON config (e.g., {\"disable_links\": true})",
"Enter Jupyter Password": "Sisestage Jupyter parool",
"Enter Jupyter Token": "Sisestage Jupyter token",
@ -932,6 +933,7 @@
"Italic": "Kaldkiri",
"January": "Jaanuar",
"Jina API Key": "Jina API võti",
"Jina Search API URL": "",
"join our Discord for help.": "liituge abi saamiseks meie Discordiga.",
"JSON": "JSON",
"JSON Preview": "JSON eelvaade",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Sartu Irudi Tamaina (adib. 512x512)",
"Enter Jina API Key": "Sartu Jina API Gakoa",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Urtarrila",
"Jina API Key": "Jina API Gakoa",
"Jina Search API URL": "",
"join our Discord for help.": "batu gure Discord-era laguntzarako.",
"JSON": "JSON",
"JSON Preview": "JSON Aurrebista",

View file

@ -596,6 +596,7 @@
"Enter ID": "شناسه را وارد کنید",
"Enter Image Size (e.g. 512x512)": "اندازه تصویر را وارد کنید (مثال: 512x512)",
"Enter Jina API Key": "کلید API جینا را وارد کنید",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "پیکربندی JSON را وارد کنید (مثلاً، {\"disable_links\": true})",
"Enter Jupyter Password": "رمز عبور ژوپیتر را وارد کنید",
"Enter Jupyter Token": "توکن ژوپیتر را وارد کنید",
@ -932,6 +933,7 @@
"Italic": "ایتالیک",
"January": "ژانویه",
"Jina API Key": "کلید API جینا",
"Jina Search API URL": "",
"join our Discord for help.": "برای کمک به دیسکورد ما بپیوندید.",
"JSON": "JSON",
"JSON Preview": "پیش نمایش JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "Kirjoita ID",
"Enter Image Size (e.g. 512x512)": "Kirjoita kuvan koko (esim. 512x512)",
"Enter Jina API Key": "Kirjoita Jina API -avain",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Kirjoita JSON asetus (esim. {\"disable_links\": true})",
"Enter Jupyter Password": "Kirjoita Jupyter salasana",
"Enter Jupyter Token": "Kirjoita Juypyter token",
@ -932,6 +933,7 @@
"Italic": "Kursiivi",
"January": "tammikuu",
"Jina API Key": "Jina API -avain",
"Jina Search API URL": "",
"join our Discord for help.": "liity Discordiimme saadaksesi apua.",
"JSON": "JSON",
"JSON Preview": "JSON-esikatselu",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Entrez la taille de l'image (par ex. 512x512)",
"Enter Jina API Key": "Entrez la clé API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Entrez le mot de passe Jupyter",
"Enter Jupyter Token": "Entrez le Token Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Janvier",
"Jina API Key": "Clé API Jina",
"Jina Search API URL": "",
"join our Discord for help.": "Rejoignez notre Discord pour obtenir de l'aide.",
"JSON": "JSON",
"JSON Preview": "Aperçu JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "Entrez l'ID",
"Enter Image Size (e.g. 512x512)": "Entrez la taille de l'image (par ex. 512x512)",
"Enter Jina API Key": "Entrez la clé API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Entrez le mot de passe Jupyter",
"Enter Jupyter Token": "Entrez le Token Jupyter",
@ -932,6 +933,7 @@
"Italic": "Italique",
"January": "Janvier",
"Jina API Key": "Clé API Jina",
"Jina Search API URL": "",
"join our Discord for help.": "Rejoignez notre Discord pour obtenir de l'aide.",
"JSON": "JSON",
"JSON Preview": "Aperçu JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Ingrese o tamaño da imaxen (p.ej. 512x512)",
"Enter Jina API Key": "Ingrese a chave API de Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Ingrese o contrasinal de Jupyter",
"Enter Jupyter Token": "Ingrese o token de Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Xaneiro",
"Jina API Key": "chave API de Jina",
"Jina Search API URL": "",
"join our Discord for help.": "Únase o noso Discord para obter axuda.",
"JSON": "JSON",
"JSON Preview": "Vista previa de JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "הזן גודל תמונה (למשל 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "ינואר",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "הצטרף ל-Discord שלנו לעזרה.",
"JSON": "JSON",
"JSON Preview": "תצוגה מקדימה של JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "छवि का आकार दर्ज करें (उदा. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "जनवरी",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "मदद के लिए हमारे डिस्कोर्ड में शामिल हों।",
"JSON": "ज्ञान प्रकार",
"JSON Preview": "JSON पूर्वावलोकन",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Unesite veličinu slike (npr. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Siječanj",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "pridružite se našem Discordu za pomoć.",
"JSON": "JSON",
"JSON Preview": "JSON pretpregled",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Add meg a kép méretet (pl. 512x512)",
"Enter Jina API Key": "Add meg a Jina API kulcsot",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Add meg a Jupyter jelszavát",
"Enter Jupyter Token": "Add meg a Jupyter tokent",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Január",
"Jina API Key": "Jina API kulcs",
"Jina Search API URL": "",
"join our Discord for help.": "Csatlakozz a Discord szerverünkhöz segítségért.",
"JSON": "JSON",
"JSON Preview": "JSON előnézet",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Masukkan Ukuran Gambar (mis. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Januari",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "bergabunglah dengan Discord kami untuk mendapatkan bantuan.",
"JSON": "JSON",
"JSON Preview": "Pratinjau JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "Cuir isteach aitheantas",
"Enter Image Size (e.g. 512x512)": "Iontráil Méid Íomhá (m.sh. 512x512)",
"Enter Jina API Key": "Cuir isteach Eochair API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Cuir isteach cumraíocht JSON (m.sh., {\"disable_links\": true})",
"Enter Jupyter Password": "Cuir isteach Pasfhocal Jupyter",
"Enter Jupyter Token": "Cuir isteach Jupyter Chomhartha",
@ -932,6 +933,7 @@
"Italic": "Iodálach",
"January": "Eanáir",
"Jina API Key": "Jina API Eochair",
"Jina Search API URL": "",
"join our Discord for help.": "bí inár Discord chun cabhair a fháil.",
"JSON": "JSON",
"JSON Preview": "Réamhamharc JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Inserisci Dimensione Immagine (ad esempio 512x512)",
"Enter Jina API Key": "Inserisci Chiave API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Inserisci Password Jupyter",
"Enter Jupyter Token": "Inserisci Token Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Gennaio",
"Jina API Key": "Chiave API Jina",
"Jina Search API URL": "",
"join our Discord for help.": "unisciti al nostro Discord per ricevere aiuto.",
"JSON": "JSON",
"JSON Preview": "Anteprima JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "IDを入力",
"Enter Image Size (e.g. 512x512)": "画像サイズを入力 (例: 512x512)",
"Enter Jina API Key": "Jina APIキーを入力",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "JSON 設定を入力 (例: {\"disable_links\": true})",
"Enter Jupyter Password": "Jupyterパスワードを入力",
"Enter Jupyter Token": "Jupyterトークンを入力",
@ -932,6 +933,7 @@
"Italic": "斜体",
"January": "1月",
"Jina API Key": "Jina APIキー",
"Jina Search API URL": "",
"join our Discord for help.": "ヘルプについては、Discord に参加してください。",
"JSON": "JSON",
"JSON Preview": "JSON プレビュー",

View file

@ -596,6 +596,7 @@
"Enter ID": "შეიყვანეთ ID",
"Enter Image Size (e.g. 512x512)": "შეიყვანეთ სურათის ზომა (მაგ. 512x512)",
"Enter Jina API Key": "შეიყვანეთ Jina API-ის გასაღები",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "შეიყვანეთ Jupyter-ის პაროლი",
"Enter Jupyter Token": "შეიყვანეთ Jupyter-ის კოდი",
@ -932,6 +933,7 @@
"Italic": "კურსივი",
"January": "იანვარი",
"Jina API Key": "Jina API-ის გასაღები",
"Jina Search API URL": "",
"join our Discord for help.": "დახმარებისთვის შემოდით ჩვენს Discord-ზე.",
"JSON": "JSON",
"JSON Preview": "JSON გადახედვა",

View file

@ -596,6 +596,7 @@
"Enter ID": "Sekcem-d asulay ID",
"Enter Image Size (e.g. 512x512)": "Sekcem tugna Size (amedya 512x512)",
"Enter Jina API Key": "Sekcem tasarut API n Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Sekcem-d tawila JSON (amedya, {\"disable_links\": true})",
"Enter Jupyter Password": "Sekcem-d awal n uɛeddi n Jupyter",
"Enter Jupyter Token": "Sekcem-d ajiṭun n Jupyter",
@ -932,6 +933,7 @@
"Italic": "Uknan",
"January": "Yennayer",
"Jina API Key": "Tasarut API n Jina",
"Jina Search API URL": "",
"join our Discord for help.": "nadi-d ɣef tallalt-nneɣ.",
"JSON": "JSON",
"JSON Preview": "Taskant JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "ID 입력",
"Enter Image Size (e.g. 512x512)": "이미지 크기 입력(예: 512x512)",
"Enter Jina API Key": "Jina API 키 입력",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "JSON 설정 입력 (예: {\"disable_links\": true})",
"Enter Jupyter Password": "Jupyter 비밀번호 입력",
"Enter Jupyter Token": "Jupyter 토큰 입력",
@ -932,6 +933,7 @@
"Italic": "기울임",
"January": "1월",
"Jina API Key": "Jina API 키",
"Jina Search API URL": "",
"join our Discord for help.": "도움말을 보려면 Discord에 가입하세요.",
"JSON": "JSON",
"JSON Preview": "JSON 미리 보기",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Įveskite paveiksliuko dydį (pvz. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Sausis",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "prisijunkite prie mūsų Discord.",
"JSON": "JSON",
"JSON Preview": "JSON peržiūra",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Masukkan Saiz Imej (cth 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Januari",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "sertai Discord kami untuk mendapatkan bantuan.",
"JSON": "JSON",
"JSON Preview": "Pratonton JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Angi bildestørrelse (f.eks. 512x512)",
"Enter Jina API Key": "Angi API-nøkkel for Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Angi passord for Jupyter",
"Enter Jupyter Token": "Angi token for Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "januar",
"Jina API Key": "API-nøkkel for Jina",
"Jina Search API URL": "",
"join our Discord for help.": "bli med i Discord-fellesskapet vårt for å få hjelp.",
"JSON": "JSON",
"JSON Preview": "Forhåndsvisning av JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Voeg afbeelding formaat toe (Bijv. 512x512)",
"Enter Jina API Key": "Voer Jina API-sleutel in",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Voer Jupyter-wachtwoord in",
"Enter Jupyter Token": "Voer Jupyter-token in",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Januari",
"Jina API Key": "Jina API-sleutel",
"Jina Search API URL": "",
"join our Discord for help.": "join onze Discord voor hulp.",
"JSON": "JSON",
"JSON Preview": "JSON-voorbeeld",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "ਚਿੱਤਰ ਆਕਾਰ ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "ਜਨਵਰੀ",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "ਮਦਦ ਲਈ ਸਾਡੇ ਡਿਸਕੋਰਡ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ।",
"JSON": "JSON",
"JSON Preview": "JSON ਪੂਰਵ-ਦਰਸ਼ਨ",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Podaj rozmiar obrazu (np. 512x512)",
"Enter Jina API Key": "Wprowadź klucz API Jiny",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Wprowadź hasło Jupyter",
"Enter Jupyter Token": "Wprowadź token Jupyter",
@ -932,6 +933,7 @@
"Italic": "Pochylenie",
"January": "Styczeń",
"Jina API Key": "Klucz API Jiny",
"Jina Search API URL": "",
"join our Discord for help.": "Dołącz do naszego Discorda, aby uzyskać pomoc.",
"JSON": "JSON",
"JSON Preview": "Podgląd JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "Digite o ID",
"Enter Image Size (e.g. 512x512)": "Digite o Tamanho da Imagem (por exemplo, 512x512)",
"Enter Jina API Key": "Digite a Chave API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Insira a configuração JSON (por exemplo, {\"disable_links\": true})",
"Enter Jupyter Password": "Digite a senha do Jupyter",
"Enter Jupyter Token": "Insira o Token Jupyter",
@ -932,6 +933,7 @@
"Italic": "Itálico",
"January": "Janeiro",
"Jina API Key": "Chave de API Jina",
"Jina Search API URL": "",
"join our Discord for help.": "junte-se ao nosso Discord para ajudar.",
"JSON": "JSON",
"JSON Preview": "Pré-visualização JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Escreva o Tamanho da Imagem (por exemplo, 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Janeiro",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "junte-se ao nosso Discord para obter ajuda.",
"JSON": "JSON",
"JSON Preview": "Pré-visualização JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Introduceți Dimensiunea Imaginii (de ex. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Ianuarie",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "alătură-te Discord-ului nostru pentru ajutor.",
"JSON": "JSON",
"JSON Preview": "Previzualizare JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "Введите ID",
"Enter Image Size (e.g. 512x512)": "Введите размер изображения (например, 512x512)",
"Enter Jina API Key": "Введите ключ API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Введите JSON конфигурацию (напр., {\"disable_links\": true})",
"Enter Jupyter Password": "Введите пароль Jupyter",
"Enter Jupyter Token": "Введите токен Jupyter",
@ -932,6 +933,7 @@
"Italic": "Курсив",
"January": "Январь",
"Jina API Key": "Ключ API для Jina",
"Jina Search API URL": "",
"join our Discord for help.": "присоединяйтесь к нашему Discord для помощи.",
"JSON": "JSON",
"JSON Preview": "Предварительный просмотр JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Zadajte veľkosť obrázka (napr. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Január",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "pripojte sa k nášmu Discordu pre pomoc.",
"JSON": "JSON",
"JSON Preview": "Náhľad JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Унесите величину слике (нпр. 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Јануар",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "придружите се нашем Дискорду за помоћ.",
"JSON": "JSON",
"JSON Preview": "ЈСОН Преглед",

View file

@ -596,6 +596,7 @@
"Enter ID": "Ange ID",
"Enter Image Size (e.g. 512x512)": "Ange bildstorlek (t.ex. 512x512)",
"Enter Jina API Key": "Ange Jina API-nyckel",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "Ange JSON-konfiguration (t.ex. {\"disable_links\": true})",
"Enter Jupyter Password": "Ange Jupyter-lösenord",
"Enter Jupyter Token": "Ange Jupyter-token",
@ -932,6 +933,7 @@
"Italic": "Kursiv",
"January": "januari",
"Jina API Key": "Jina API-nyckel",
"Jina Search API URL": "",
"join our Discord for help.": "gå med i vår Discord för hjälp.",
"JSON": "JSON",
"JSON Preview": "Förhandsversion av JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "ใส่ ID",
"Enter Image Size (e.g. 512x512)": "ใส่ขนาดภาพ (เช่น 512x512)",
"Enter Jina API Key": "ป้อน Jina API Key",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "ป้อนการตั้งค่า JSON (เช่น {\"disable_links\": true})",
"Enter Jupyter Password": "ป้อนรหัสผ่าน Jupyter",
"Enter Jupyter Token": "ป้อน Jupyter Token",
@ -932,6 +933,7 @@
"Italic": "ตัวเอียง",
"January": "มกราคม",
"Jina API Key": "API Key ของ Jina",
"Jina Search API URL": "",
"join our Discord for help.": "เข้าร่วม Discord ของเราเพื่อขอความช่วยเหลือ",
"JSON": "JSON",
"JSON Preview": "ดูตัวอย่าง JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Ýanwar",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "",
"JSON": "",
"JSON Preview": "",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Görüntü Boyutunu Girin (örn. 512x512)",
"Enter Jina API Key": "Jina API Anahtarını Girin",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Ocak",
"Jina API Key": "Jina API Anahtarı",
"Jina Search API URL": "",
"join our Discord for help.": "yardım için Discord'umuza katılın.",
"JSON": "JSON",
"JSON Preview": "JSON Önizlemesi",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "رەسىم چوڭلۇقى كىرگۈزۈڭ (مەسىلەن: 512x512)",
"Enter Jina API Key": "Jina API ئاچقۇچى كىرگۈزۈڭ",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Jupyter پارول كىرگۈزۈڭ",
"Enter Jupyter Token": "Jupyter Token كىرگۈزۈڭ",
@ -932,6 +933,7 @@
"Italic": "",
"January": "يانۋار",
"Jina API Key": "Jina API ئاچقۇچى",
"Jina Search API URL": "",
"join our Discord for help.": "ياردەم ئۈچۈن Discord غا قوشۇلىڭ.",
"JSON": "JSON",
"JSON Preview": "JSON ئالدىن كۆرۈش",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Введіть розмір зображення (напр., 512x512)",
"Enter Jina API Key": "Введіть ключ API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Введіть пароль Jupyter",
"Enter Jupyter Token": "Введіть токен Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Січень",
"Jina API Key": "Ключ API для Jina",
"Jina Search API URL": "",
"join our Discord for help.": "приєднуйтеся до нашого Discord для допомоги.",
"JSON": "JSON",
"JSON Preview": "Перегляд JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "تصویر کا سائز درج کریں (مثال: 512x512)",
"Enter Jina API Key": "",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "",
"Enter Jupyter Token": "",
@ -932,6 +933,7 @@
"Italic": "",
"January": "جنوری",
"Jina API Key": "",
"Jina Search API URL": "",
"join our Discord for help.": "مدد کے لئے ہمارے ڈسکارڈ میں شامل ہوں",
"JSON": "JSON",
"JSON Preview": "JSON پیش منظر",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Расм ҳажмини киритинг (масалан, 512х512)",
"Enter Jina API Key": "Jina АПИ калитини киритинг",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Jupiter паролини киритинг",
"Enter Jupyter Token": "Jupiter токенини киритинг",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Январ",
"Jina API Key": "Жина АПИ калити",
"Jina Search API URL": "",
"join our Discord for help.": "ёрдам учун Дисcордимизга қўшилинг.",
"JSON": "ЖСОН",
"JSON Preview": "ЖСОН кўриб чиқиш",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Rasm hajmini kiriting (masalan, 512x512)",
"Enter Jina API Key": "Jina API kalitini kiriting",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Jupyter parolini kiriting",
"Enter Jupyter Token": "Jupyter tokenini kiriting",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Yanvar",
"Jina API Key": "Jina API kaliti",
"Jina Search API URL": "",
"join our Discord for help.": "yordam uchun Discordimizga qo'shiling.",
"JSON": "JSON",
"JSON Preview": "JSON ko'rib chiqish",

View file

@ -596,6 +596,7 @@
"Enter ID": "",
"Enter Image Size (e.g. 512x512)": "Nhập Kích thước ảnh (vd: 512x512)",
"Enter Jina API Key": "Nhập Khóa API Jina",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "",
"Enter Jupyter Password": "Nhập Mật khẩu Jupyter",
"Enter Jupyter Token": "Nhập Token Jupyter",
@ -932,6 +933,7 @@
"Italic": "",
"January": "Tháng 1",
"Jina API Key": "Khóa API Jina",
"Jina Search API URL": "",
"join our Discord for help.": "tham gia Discord của chúng tôi để được trợ giúp.",
"JSON": "JSON",
"JSON Preview": "Xem trước JSON",

View file

@ -596,6 +596,7 @@
"Enter ID": "输入 ID",
"Enter Image Size (e.g. 512x512)": "输入图像分辨率例如512x512",
"Enter Jina API Key": "输入 Jina 接口密钥",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "输入 JSON 配置(例如:{\"disable_links\": true}",
"Enter Jupyter Password": "输入 Jupyter 密码",
"Enter Jupyter Token": "输入 Jupyter 令牌",
@ -932,6 +933,7 @@
"Italic": "斜体",
"January": "一月",
"Jina API Key": "Jina 接口密钥",
"Jina Search API URL": "",
"join our Discord for help.": "加入我们的 Discord 寻求帮助",
"JSON": "JSON",
"JSON Preview": "JSON 预览",

View file

@ -596,6 +596,7 @@
"Enter ID": "輸入 ID",
"Enter Image Size (e.g. 512x512)": "輸入圖片尺寸例如512x512",
"Enter Jina API Key": "輸入 Jina API 金鑰",
"Enter Jina Search API URL": "",
"Enter JSON config (e.g., {\"disable_links\": true})": "輸入 JSON 設定(例如:{\"disable_links\": true}",
"Enter Jupyter Password": "輸入 Jupyter 密碼",
"Enter Jupyter Token": "輸入 Jupyter Token",
@ -932,6 +933,7 @@
"Italic": "斜體",
"January": "1 月",
"Jina API Key": "Jina API 金鑰",
"Jina Search API URL": "",
"join our Discord for help.": "加入我們的 Discord 以取得協助。",
"JSON": "JSON",
"JSON Preview": "JSON 預覽",