Merge branch 'dev' into feat/backend-web-search

This commit is contained in:
Timothy Jaeryang Baek 2024-05-06 16:26:44 -07:00 committed by GitHub
commit 635951b55c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
56 changed files with 2166 additions and 1071 deletions

View File

@ -20,7 +20,16 @@ jobs:
- name: Build and run Compose Stack
run: |
docker compose up --detach --build
docker compose --file docker-compose.yaml --file docker-compose.api.yaml up --detach --build
- name: Wait for Ollama to be up
timeout-minutes: 5
run: |
until curl --output /dev/null --silent --fail http://localhost:11434; do
printf '.'
sleep 1
done
echo "Service is up!"
- name: Preload Ollama model
run: |

View File

@ -80,6 +80,7 @@ from config import (
RAG_EMBEDDING_MODEL_AUTO_UPDATE,
RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE,
ENABLE_RAG_HYBRID_SEARCH,
ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION,
RAG_RERANKING_MODEL,
PDF_EXTRACT_IMAGES,
RAG_RERANKING_MODEL_AUTO_UPDATE,
@ -91,7 +92,7 @@ from config import (
CHUNK_SIZE,
CHUNK_OVERLAP,
RAG_TEMPLATE,
ENABLE_LOCAL_WEB_FETCH,
ENABLE_RAG_LOCAL_WEB_FETCH,
)
from constants import ERROR_MESSAGES
@ -105,6 +106,9 @@ app.state.TOP_K = RAG_TOP_K
app.state.RELEVANCE_THRESHOLD = RAG_RELEVANCE_THRESHOLD
app.state.ENABLE_RAG_HYBRID_SEARCH = ENABLE_RAG_HYBRID_SEARCH
app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = (
ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION
)
app.state.CHUNK_SIZE = CHUNK_SIZE
app.state.CHUNK_OVERLAP = CHUNK_OVERLAP
@ -114,6 +118,7 @@ app.state.RAG_EMBEDDING_MODEL = RAG_EMBEDDING_MODEL
app.state.RAG_RERANKING_MODEL = RAG_RERANKING_MODEL
app.state.RAG_TEMPLATE = RAG_TEMPLATE
app.state.OPENAI_API_BASE_URL = RAG_OPENAI_API_BASE_URL
app.state.OPENAI_API_KEY = RAG_OPENAI_API_KEY
@ -313,6 +318,7 @@ async def get_rag_config(user=Depends(get_admin_user)):
"chunk_size": app.state.CHUNK_SIZE,
"chunk_overlap": app.state.CHUNK_OVERLAP,
},
"web_loader_ssl_verification": app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION,
}
@ -322,15 +328,34 @@ class ChunkParamUpdateForm(BaseModel):
class ConfigUpdateForm(BaseModel):
pdf_extract_images: bool
chunk: ChunkParamUpdateForm
pdf_extract_images: Optional[bool] = None
chunk: Optional[ChunkParamUpdateForm] = None
web_loader_ssl_verification: Optional[bool] = None
@app.post("/config/update")
async def update_rag_config(form_data: ConfigUpdateForm, user=Depends(get_admin_user)):
app.state.PDF_EXTRACT_IMAGES = form_data.pdf_extract_images
app.state.CHUNK_SIZE = form_data.chunk.chunk_size
app.state.CHUNK_OVERLAP = form_data.chunk.chunk_overlap
app.state.PDF_EXTRACT_IMAGES = (
form_data.pdf_extract_images
if form_data.pdf_extract_images != None
else app.state.PDF_EXTRACT_IMAGES
)
app.state.CHUNK_SIZE = (
form_data.chunk.chunk_size if form_data.chunk != None else app.state.CHUNK_SIZE
)
app.state.CHUNK_OVERLAP = (
form_data.chunk.chunk_overlap
if form_data.chunk != None
else app.state.CHUNK_OVERLAP
)
app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = (
form_data.web_loader_ssl_verification
if form_data.web_loader_ssl_verification != None
else app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION
)
return {
"status": True,
@ -339,6 +364,7 @@ async def update_rag_config(form_data: ConfigUpdateForm, user=Depends(get_admin_
"chunk_size": app.state.CHUNK_SIZE,
"chunk_overlap": app.state.CHUNK_OVERLAP,
},
"web_loader_ssl_verification": app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION,
}
@ -490,7 +516,9 @@ def store_youtube_video(form_data: UrlForm, user=Depends(get_current_user)):
def store_web(form_data: UrlForm, user=Depends(get_current_user)):
# "https://www.gutenberg.org/files/1727/1727-h/1727-h.htm"
try:
loader = get_web_loader(form_data.url)
loader = get_web_loader(
form_data.url, verify_ssl=app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION
)
data = loader.load()
collection_name = form_data.collection_name
@ -510,12 +538,11 @@ def store_web(form_data: UrlForm, user=Depends(get_current_user)):
detail=ERROR_MESSAGES.DEFAULT(e),
)
def get_web_loader(url: Union[str, Sequence[str]]):
def get_web_loader(url: Union[str, Sequence[str]], verify_ssl: bool = True):
# Check if the URL is valid
if not validate_url(url):
raise ValueError(ERROR_MESSAGES.INVALID_URL)
return WebBaseLoader(url)
return WebBaseLoader(url, verify_ssl=verify_ssl)
def validate_url(url: Union[str, Sequence[str]]):

View File

@ -287,14 +287,14 @@ def rag_messages(
for doc in docs:
context = None
collection = doc.get("collection_name")
if collection:
collection = [collection]
else:
collection = doc.get("collection_names", [])
collection_names = (
doc["collection_names"]
if doc["type"] == "collection"
else [doc["collection_name"]]
)
collection = set(collection).difference(extracted_collections)
if not collection:
collection_names = set(collection_names).difference(extracted_collections)
if not collection_names:
log.debug(f"skipping {doc} as it has already been extracted")
continue
@ -304,11 +304,7 @@ def rag_messages(
else:
if hybrid_search:
context = query_collection_with_hybrid_search(
collection_names=(
doc["collection_names"]
if doc["type"] == "collection"
else [doc["collection_name"]]
),
collection_names=collection_names,
query=query,
embedding_function=embedding_function,
k=k,
@ -317,11 +313,7 @@ def rag_messages(
)
else:
context = query_collection(
collection_names=(
doc["collection_names"]
if doc["type"] == "collection"
else [doc["collection_name"]]
),
collection_names=collection_names,
query=query,
embedding_function=embedding_function,
k=k,
@ -331,18 +323,31 @@ def rag_messages(
context = None
if context:
relevant_contexts.append(context)
relevant_contexts.append({**context, "source": doc})
extracted_collections.extend(collection)
extracted_collections.extend(collection_names)
context_string = ""
citations = []
for context in relevant_contexts:
try:
if "documents" in context:
items = [item for item in context["documents"][0] if item is not None]
context_string += "\n\n".join(items)
context_string += "\n\n".join(
[text for text in context["documents"][0] if text is not None]
)
if "metadatas" in context:
citations.append(
{
"source": context["source"],
"document": context["documents"][0],
"metadata": context["metadatas"][0],
}
)
except Exception as e:
log.exception(e)
context_string = context_string.strip()
ra_content = rag_template(
@ -371,7 +376,7 @@ def rag_messages(
messages[last_user_message_idx] = new_user_message
return messages
return messages, citations
def get_model_path(model: str, update_model: bool = False):

View File

@ -18,6 +18,18 @@ from secrets import token_bytes
from constants import ERROR_MESSAGES
####################################
# Load .env file
####################################
try:
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv("../.env"))
except ImportError:
print("dotenv not installed, skipping...")
####################################
# LOGGING
####################################
@ -59,16 +71,6 @@ for source in log_sources:
log.setLevel(SRC_LOG_LEVELS["CONFIG"])
####################################
# Load .env file
####################################
try:
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv("../.env"))
except ImportError:
log.warning("dotenv not installed, skipping...")
WEBUI_NAME = os.environ.get("WEBUI_NAME", "Open WebUI")
if WEBUI_NAME != "Open WebUI":
@ -454,6 +456,11 @@ ENABLE_RAG_HYBRID_SEARCH = (
os.environ.get("ENABLE_RAG_HYBRID_SEARCH", "").lower() == "true"
)
ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = (
os.environ.get("ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION", "True").lower() == "true"
)
RAG_EMBEDDING_ENGINE = os.environ.get("RAG_EMBEDDING_ENGINE", "")
PDF_EXTRACT_IMAGES = os.environ.get("PDF_EXTRACT_IMAGES", "False").lower() == "true"
@ -531,7 +538,9 @@ RAG_TEMPLATE = os.environ.get("RAG_TEMPLATE", DEFAULT_RAG_TEMPLATE)
RAG_OPENAI_API_BASE_URL = os.getenv("RAG_OPENAI_API_BASE_URL", OPENAI_API_BASE_URL)
RAG_OPENAI_API_KEY = os.getenv("RAG_OPENAI_API_KEY", OPENAI_API_KEY)
ENABLE_LOCAL_WEB_FETCH = os.getenv("ENABLE_LOCAL_WEB_FETCH", "False").lower() == "true"
ENABLE_RAG_LOCAL_WEB_FETCH = (
os.getenv("ENABLE_RAG_LOCAL_WEB_FETCH", "False").lower() == "true"
)
SEARXNG_QUERY_URL = os.getenv("SEARXNG_QUERY_URL", "")
GOOGLE_PSE_API_KEY = os.getenv("GOOGLE_PSE_API_KEY", "")

View File

@ -15,7 +15,7 @@ from fastapi.middleware.wsgi import WSGIMiddleware
from fastapi.middleware.cors import CORSMiddleware
from starlette.exceptions import HTTPException as StarletteHTTPException
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.responses import StreamingResponse
from apps.ollama.main import app as ollama_app
from apps.openai.main import app as openai_app
@ -102,6 +102,8 @@ origins = ["*"]
class RAGMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
return_citations = False
if request.method == "POST" and (
"/api/chat" in request.url.path or "/chat/completions" in request.url.path
):
@ -114,11 +116,15 @@ class RAGMiddleware(BaseHTTPMiddleware):
# Parse string to JSON
data = json.loads(body_str) if body_str else {}
return_citations = data.get("citations", False)
if "citations" in data:
del data["citations"]
# Example: Add a new key-value pair or modify existing ones
# data["modified"] = True # Example modification
if "docs" in data:
data = {**data}
data["messages"] = rag_messages(
data["messages"], citations = rag_messages(
docs=data["docs"],
messages=data["messages"],
template=rag_app.state.RAG_TEMPLATE,
@ -130,7 +136,9 @@ class RAGMiddleware(BaseHTTPMiddleware):
)
del data["docs"]
log.debug(f"data['messages']: {data['messages']}")
log.debug(
f"data['messages']: {data['messages']}, citations: {citations}"
)
modified_body_bytes = json.dumps(data).encode("utf-8")
@ -148,11 +156,36 @@ class RAGMiddleware(BaseHTTPMiddleware):
]
response = await call_next(request)
if return_citations:
# Inject the citations into the response
if isinstance(response, StreamingResponse):
# If it's a streaming response, inject it as SSE event or NDJSON line
content_type = response.headers.get("Content-Type")
if "text/event-stream" in content_type:
return StreamingResponse(
self.openai_stream_wrapper(response.body_iterator, citations),
)
if "application/x-ndjson" in content_type:
return StreamingResponse(
self.ollama_stream_wrapper(response.body_iterator, citations),
)
return response
async def _receive(self, body: bytes):
return {"type": "http.request", "body": body, "more_body": False}
async def openai_stream_wrapper(self, original_generator, citations):
yield f"data: {json.dumps({'citations': citations})}\n\n"
async for data in original_generator:
yield data
async def ollama_stream_wrapper(self, original_generator, citations):
yield f"{json.dumps({'citations': citations})}\n"
async for data in original_generator:
yield data
app.add_middleware(RAGMiddleware)

View File

@ -82,3 +82,12 @@ select {
.katex-mathml {
display: none;
}
.scrollbar-none:active::-webkit-scrollbar-thumb,
.scrollbar-none:focus::-webkit-scrollbar-thumb,
.scrollbar-none:hover::-webkit-scrollbar-thumb {
visibility: visible;
}
.scrollbar-none::-webkit-scrollbar-thumb {
visibility: hidden;
}

View File

@ -159,7 +159,11 @@ export const generateTitle = async (
body: JSON.stringify({
model: model,
prompt: template,
stream: false
stream: false,
options: {
// Restrict the number of tokens generated to 50
num_predict: 50
}
})
})
.then(async (res) => {

View File

@ -295,7 +295,9 @@ export const generateTitle = async (
content: template
}
],
stream: false
stream: false,
// Restricting the max tokens to 50 to avoid long titles
max_tokens: 50
})
})
.then(async (res) => {

View File

@ -33,8 +33,9 @@ type ChunkConfigForm = {
};
type RAGConfigForm = {
pdf_extract_images: boolean;
chunk: ChunkConfigForm;
pdf_extract_images?: boolean;
chunk?: ChunkConfigForm;
web_loader_ssl_verification?: boolean;
};
export const updateRAGConfig = async (token: string, payload: RAGConfigForm) => {

View File

@ -4,6 +4,8 @@ import type { ParsedEvent } from 'eventsource-parser';
type TextStreamUpdate = {
done: boolean;
value: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
citations?: any;
};
// createOpenAITextStream takes a responseBody with a SSE response,
@ -45,6 +47,11 @@ async function* openAIStreamToIterator(
const parsedData = JSON.parse(data);
console.log(parsedData);
if (parsedData.citations) {
yield { done: false, value: '', citations: parsedData.citations };
continue;
}
yield { done: false, value: parsedData.choices?.[0]?.delta?.content ?? '' };
} catch (e) {
console.error('Error extracting delta from SSE event:', e);
@ -62,6 +69,10 @@ async function* streamLargeDeltasAsRandomChunks(
yield textStreamUpdate;
return;
}
if (textStreamUpdate.citations) {
yield textStreamUpdate;
continue;
}
let content = textStreamUpdate.value;
if (content.length < 5) {
yield { done: false, value: content };

View File

@ -0,0 +1,77 @@
<script lang="ts">
import { getContext, onMount, tick } from 'svelte';
import Modal from '$lib/components/common/Modal.svelte';
const i18n = getContext('i18n');
export let show = false;
export let citation;
let mergedDocuments = [];
$: if (citation) {
mergedDocuments = citation.document?.map((c, i) => {
return {
source: citation.source,
document: c,
metadata: citation.metadata?.[i]
};
});
}
</script>
<Modal size="lg" bind:show>
<div>
<div class=" flex justify-between dark:text-gray-300 px-5 pt-4 pb-2">
<div class=" text-lg font-medium self-center capitalize">
{$i18n.t('Citation')}
</div>
<button
class="self-center"
on:click={() => {
show = false;
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-5 h-5"
>
<path
d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
/>
</svg>
</button>
</div>
<div class="flex flex-col md:flex-row w-full px-6 pb-5 md:space-x-4">
<div
class="flex flex-col w-full dark:text-gray-200 overflow-y-scroll max-h-[22rem] scrollbar-none"
>
{#each mergedDocuments as document, documentIdx}
<div class="flex flex-col w-full">
<div class="text-sm font-medium dark:text-gray-300">
{$i18n.t('Source')}
</div>
<div class="text-sm dark:text-gray-400">
{document.source?.name ?? $i18n.t('No source available')}
</div>
</div>
<div class="flex flex-col w-full">
<div class=" text-sm font-medium dark:text-gray-300">
{$i18n.t('Content')}
</div>
<pre class="text-sm dark:text-gray-400 whitespace-pre-line">
{document.document}
</pre>
</div>
{#if documentIdx !== mergedDocuments.length - 1}
<hr class=" dark:border-gray-850 my-3" />
{/if}
{/each}
</div>
</div>
</div>
</Modal>

View File

@ -32,6 +32,7 @@
import { WEBUI_BASE_URL } from '$lib/constants';
import Tooltip from '$lib/components/common/Tooltip.svelte';
import RateComment from './RateComment.svelte';
import CitationsModal from '$lib/components/chat/Messages/CitationsModal.svelte';
export let modelfiles = [];
export let message;
@ -65,6 +66,9 @@
let showRateComment = false;
let showCitationModal = false;
let selectedCitation = null;
$: tokens = marked.lexer(sanitizeResponseContent(message.content));
const renderer = new marked.Renderer();
@ -324,6 +328,8 @@
});
</script>
<CitationsModal bind:show={showCitationModal} citation={selectedCitation} />
{#key message.id}
<div class=" flex w-full message-{message.id}" id="message-{message.id}">
<ProfileImage
@ -360,7 +366,6 @@
{/each}
</div>
{/if}
<div
class="prose chat-{message.role} w-full max-w-full dark:prose-invert prose-headings:my-0 prose-p:m-0 prose-p:-mb-6 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-img:my-0 prose-ul:-my-4 prose-ol:-my-4 prose-li:-my-3 prose-ul:-mb-6 prose-ol:-mb-8 prose-ol:p-0 prose-li:-mb-4 whitespace-pre-line"
>
@ -441,436 +446,484 @@
{/each}
<!-- {@html marked(message.content.replaceAll('\\', '\\\\'))} -->
{/if}
{#if message.done}
<div
class=" flex justify-start space-x-1 overflow-x-auto buttons text-gray-700 dark:text-gray-500"
>
{#if siblings.length > 1}
<div class="flex self-center min-w-fit">
<button
class="self-center dark:hover:text-white hover:text-black transition"
on:click={() => {
showPreviousMessage(message);
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z"
clip-rule="evenodd"
/>
</svg>
</button>
<div class="text-xs font-bold self-center min-w-fit dark:text-gray-100">
{siblings.indexOf(message.id) + 1} / {siblings.length}
</div>
<button
class="self-center dark:hover:text-white hover:text-black transition"
on:click={() => {
showNextMessage(message);
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
clip-rule="evenodd"
/>
</svg>
</button>
</div>
{/if}
{#if !readOnly}
<Tooltip content={$i18n.t('Edit')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
on:click={() => {
editMessageHandler();
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125"
/>
</svg>
</button>
</Tooltip>
{/if}
<Tooltip content={$i18n.t('Copy')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition copy-response-button"
on:click={() => {
copyToClipboard(message.content);
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184"
/>
</svg>
</button>
</Tooltip>
{#if !readOnly}
<Tooltip content={$i18n.t('Good Response')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded {message?.annotation
?.rating === 1
? 'bg-gray-100 dark:bg-gray-800'
: ''} dark:hover:text-white hover:text-black transition"
on:click={() => {
rateMessage(message.id, 1);
showRateComment = true;
window.setTimeout(() => {
document
.getElementById(`message-feedback-${message.id}`)
?.scrollIntoView();
}, 0);
}}
>
<svg
stroke="currentColor"
fill="none"
stroke-width="2"
viewBox="0 0 24 24"
stroke-linecap="round"
stroke-linejoin="round"
class="w-4 h-4"
xmlns="http://www.w3.org/2000/svg"
><path
d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"
/></svg
>
</button>
</Tooltip>
<Tooltip content={$i18n.t('Bad Response')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded {message?.annotation
?.rating === -1
? 'bg-gray-100 dark:bg-gray-800'
: ''} dark:hover:text-white hover:text-black transition"
on:click={() => {
rateMessage(message.id, -1);
showRateComment = true;
window.setTimeout(() => {
document
.getElementById(`message-feedback-${message.id}`)
?.scrollIntoView();
}, 0);
}}
>
<svg
stroke="currentColor"
fill="none"
stroke-width="2"
viewBox="0 0 24 24"
stroke-linecap="round"
stroke-linejoin="round"
class="w-4 h-4"
xmlns="http://www.w3.org/2000/svg"
><path
d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17"
/></svg
>
</button>
</Tooltip>
{/if}
<Tooltip content={$i18n.t('Read Aloud')} placement="bottom">
<button
id="speak-button-{message.id}"
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
on:click={() => {
if (!loadingSpeech) {
toggleSpeakMessage(message);
}
}}
>
{#if loadingSpeech}
<svg
class=" w-4 h-4"
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
><style>
.spinner_S1WN {
animation: spinner_MGfb 0.8s linear infinite;
animation-delay: -0.8s;
}
.spinner_Km9P {
animation-delay: -0.65s;
}
.spinner_JApP {
animation-delay: -0.5s;
}
@keyframes spinner_MGfb {
93.75%,
100% {
opacity: 0.2;
}
}
</style><circle class="spinner_S1WN" cx="4" cy="12" r="3" /><circle
class="spinner_S1WN spinner_Km9P"
cx="12"
cy="12"
r="3"
/><circle
class="spinner_S1WN spinner_JApP"
cx="20"
cy="12"
r="3"
/></svg
>
{:else if speaking}
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6 4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z"
/>
</svg>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75z"
/>
</svg>
{/if}
</button>
</Tooltip>
{#if $config.images && !readOnly}
<Tooltip content="Generate Image" placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
on:click={() => {
if (!generatingImage) {
generateImage(message);
}
}}
>
{#if generatingImage}
<svg
class=" w-4 h-4"
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
><style>
.spinner_S1WN {
animation: spinner_MGfb 0.8s linear infinite;
animation-delay: -0.8s;
}
.spinner_Km9P {
animation-delay: -0.65s;
}
.spinner_JApP {
animation-delay: -0.5s;
}
@keyframes spinner_MGfb {
93.75%,
100% {
opacity: 0.2;
}
}
</style><circle class="spinner_S1WN" cx="4" cy="12" r="3" /><circle
class="spinner_S1WN spinner_Km9P"
cx="12"
cy="12"
r="3"
/><circle
class="spinner_S1WN spinner_JApP"
cx="20"
cy="12"
r="3"
/></svg
>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"
/>
</svg>
{/if}
</button>
</Tooltip>
{/if}
{#if message.info}
<Tooltip content={$i18n.t('Generation Info')} placement="bottom">
<button
class=" {isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition whitespace-pre-wrap"
on:click={() => {
console.log(message);
}}
id="info-{message.id}"
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
/>
</svg>
</button>
</Tooltip>
{/if}
{#if isLastMessage && !readOnly}
<Tooltip content={$i18n.t('Continue Response')} placement="bottom">
<button
type="button"
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
on:click={() => {
continueGeneration();
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
/>
<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">
<button
type="button"
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
on:click={regenerateResponse}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<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}
</div>
{/if}
{#if showRateComment}
<RateComment
messageId={message.id}
bind:show={showRateComment}
bind:message
on:submit={() => {
updateChatMessages();
}}
/>
{/if}
</div>
{/if}
</div>
</div>
<!-- if (message.citations) {
citations = message.citations.forEach((citation) => {
citation.document.forEach((document, index) => {
const metadata = citation.metadata?.[index];
const source = citation?.source?.name ?? metadata?.source ?? 'N/A';
citations[source] = citations[source] || {
source: citation.source,
document: [],
metadata: []
};
citations[source].document.push(document);
citations[source].metadata.push(metadata);
});
});
} -->
{#if message.citations}
<hr class=" dark:border-gray-800" />
<div class="my-2.5 w-full flex overflow-x-auto gap-2 flex-wrap">
{#each message.citations.reduce((acc, citation) => {
citation.document.forEach((document, index) => {
const metadata = citation.metadata?.[index];
const id = metadata?.source ?? 'N/A';
const existingSource = acc.find((item) => item.id === id);
if (existingSource) {
existingSource.document.push(document);
existingSource.metadata.push(metadata);
} else {
acc.push( { id: id, source: citation?.source, document: [document], metadata: metadata ? [metadata] : [] } );
}
});
return acc;
}, []) as citation, idx}
<div class="flex gap-1 text-xs font-semibold">
<div>
[{idx + 1}]
</div>
<button
class="dark:text-gray-500 underline"
on:click={() => {
showCitationModal = true;
selectedCitation = citation;
}}
>
{citation.source.name}
</button>
</div>
{/each}
</div>
{/if}
{#if message.done}
<div
class=" flex justify-start space-x-1 overflow-x-auto buttons text-gray-700 dark:text-gray-500"
>
{#if siblings.length > 1}
<div class="flex self-center min-w-fit">
<button
class="self-center dark:hover:text-white hover:text-black transition"
on:click={() => {
showPreviousMessage(message);
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z"
clip-rule="evenodd"
/>
</svg>
</button>
<div class="text-xs font-bold self-center min-w-fit dark:text-gray-100">
{siblings.indexOf(message.id) + 1} / {siblings.length}
</div>
<button
class="self-center dark:hover:text-white hover:text-black transition"
on:click={() => {
showNextMessage(message);
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
clip-rule="evenodd"
/>
</svg>
</button>
</div>
{/if}
{#if !readOnly}
<Tooltip content={$i18n.t('Edit')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
on:click={() => {
editMessageHandler();
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125"
/>
</svg>
</button>
</Tooltip>
{/if}
<Tooltip content={$i18n.t('Copy')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition copy-response-button"
on:click={() => {
copyToClipboard(message.content);
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184"
/>
</svg>
</button>
</Tooltip>
{#if !readOnly}
<Tooltip content={$i18n.t('Good Response')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded {message?.annotation?.rating ===
1
? 'bg-gray-100 dark:bg-gray-800'
: ''} dark:hover:text-white hover:text-black transition"
on:click={() => {
rateMessage(message.id, 1);
showRateComment = true;
window.setTimeout(() => {
document.getElementById(`message-feedback-${message.id}`)?.scrollIntoView();
}, 0);
}}
>
<svg
stroke="currentColor"
fill="none"
stroke-width="2"
viewBox="0 0 24 24"
stroke-linecap="round"
stroke-linejoin="round"
class="w-4 h-4"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"
/>
</svg>
</button>
</Tooltip>
<Tooltip content={$i18n.t('Bad Response')} placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded {message?.annotation?.rating ===
-1
? 'bg-gray-100 dark:bg-gray-800'
: ''} dark:hover:text-white hover:text-black transition"
on:click={() => {
rateMessage(message.id, -1);
showRateComment = true;
window.setTimeout(() => {
document.getElementById(`message-feedback-${message.id}`)?.scrollIntoView();
}, 0);
}}
>
<svg
stroke="currentColor"
fill="none"
stroke-width="2"
viewBox="0 0 24 24"
stroke-linecap="round"
stroke-linejoin="round"
class="w-4 h-4"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17"
/>
</svg>
</button>
</Tooltip>
{/if}
<Tooltip content={$i18n.t('Read Aloud')} placement="bottom">
<button
id="speak-button-{message.id}"
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
on:click={() => {
if (!loadingSpeech) {
toggleSpeakMessage(message);
}
}}
>
{#if loadingSpeech}
<svg
class=" w-4 h-4"
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<style>
.spinner_S1WN {
animation: spinner_MGfb 0.8s linear infinite;
animation-delay: -0.8s;
}
.spinner_Km9P {
animation-delay: -0.65s;
}
.spinner_JApP {
animation-delay: -0.5s;
}
@keyframes spinner_MGfb {
93.75%,
100% {
opacity: 0.2;
}
}
</style>
<circle class="spinner_S1WN" cx="4" cy="12" r="3" />
<circle class="spinner_S1WN spinner_Km9P" cx="12" cy="12" r="3" />
<circle class="spinner_S1WN spinner_JApP" cx="20" cy="12" r="3" />
</svg>
{:else if speaking}
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6 4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z"
/>
</svg>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75z"
/>
</svg>
{/if}
</button>
</Tooltip>
{#if $config.images && !readOnly}
<Tooltip content="Generate Image" placement="bottom">
<button
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
on:click={() => {
if (!generatingImage) {
generateImage(message);
}
}}
>
{#if generatingImage}
<svg
class=" w-4 h-4"
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<style>
.spinner_S1WN {
animation: spinner_MGfb 0.8s linear infinite;
animation-delay: -0.8s;
}
.spinner_Km9P {
animation-delay: -0.65s;
}
.spinner_JApP {
animation-delay: -0.5s;
}
@keyframes spinner_MGfb {
93.75%,
100% {
opacity: 0.2;
}
}
</style>
<circle class="spinner_S1WN" cx="4" cy="12" r="3" />
<circle class="spinner_S1WN spinner_Km9P" cx="12" cy="12" r="3" />
<circle class="spinner_S1WN spinner_JApP" cx="20" cy="12" r="3" />
</svg>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"
/>
</svg>
{/if}
</button>
</Tooltip>
{/if}
{#if message.info}
<Tooltip content={$i18n.t('Generation Info')} placement="bottom">
<button
class=" {isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition whitespace-pre-wrap"
on:click={() => {
console.log(message);
}}
id="info-{message.id}"
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
/>
</svg>
</button>
</Tooltip>
{/if}
{#if isLastMessage && !readOnly}
<Tooltip content={$i18n.t('Continue Response')} placement="bottom">
<button
type="button"
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
on:click={() => {
continueGeneration();
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
/>
<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">
<button
type="button"
class="{isLastMessage
? 'visible'
: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
on:click={regenerateResponse}
>
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
stroke-width="2"
stroke="currentColor"
class="w-4 h-4"
>
<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}
</div>
{/if}
{#if showRateComment}
<RateComment
messageId={message.id}
bind:show={showRateComment}
bind:message
on:submit={() => {
updateChatMessages();
}}
/>
{/if}
{/if}
</div>
</div>

View File

@ -82,7 +82,7 @@
</div>
{:else}
<div class=" self-center disabled:text-gray-600 disabled:hover:text-gray-600 mr-2">
<Tooltip content="Remove Model">
<Tooltip content={$i18n.t('Remove Model')}>
<button
{disabled}
on:click={() => {

View File

@ -305,7 +305,7 @@
{:else}
<div>
<div class="block px-3 py-2 text-sm text-gray-700 dark:text-gray-100">
No results found
{$i18n.t('No results found')}
</div>
</div>
{/each}
@ -317,7 +317,7 @@
pullModelHandler();
}}
>
Pull "{searchValue}" from Ollama.com
{$i18n.t(`Pull "{{searchValue}}" from Ollama.com`, { searchValue: searchValue })}
</button>
{/if}

View File

@ -447,7 +447,7 @@
{/if}
</button>
<Tooltip content="Create new key">
<Tooltip content={$i18n.t('Create new key')}>
<button
class=" px-1.5 py-1 dark:hover:bg-gray-850transition rounded-lg"
on:click={() => {
@ -479,7 +479,7 @@
>
<Plus strokeWidth="2" className=" size-3.5" />
Create new secret key</button
{$i18n.t('Create new secret key')}</button
>
{/if}
</div>

View File

@ -164,7 +164,7 @@
<div class="flex gap-1.5">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder="Enter URL (e.g. http://localhost:11434)"
placeholder={$i18n.t('Enter URL (e.g. http://localhost:11434)')}
bind:value={url}
/>

View File

@ -97,9 +97,10 @@
<div class=" text-sm dark:text-gray-300 mb-1">
{#if chat.share_id}
<a href="/s/{chat.share_id}" target="_blank"
>You have shared this chat <span class=" underline">before</span>.</a
>{$i18n.t('You have shared this chat')}
<span class=" underline">{$i18n.t('before')}</span>.</a
>
Click here to
{$i18n.t('Click here to')}
<button
class="underline"
on:click={async () => {
@ -108,11 +109,14 @@
if (res) {
chat = await getChatById(localStorage.token, chatId);
}
}}>delete this link</button
> and create a new shared link.
}}
>{$i18n.t('delete this link')}
</button>
{$i18n.t('and create a new shared link.')}
{:else}
Messages you send after creating your link won't be shared. Users with the URL will be
able to view the shared chat.
{$i18n.t(
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat."
)}
{/if}
</div>

View File

@ -51,7 +51,7 @@
<button
class=" p-5"
on:click={() => {
downloadImage(src, 'Image.png');
downloadImage(src, src.substring(src.lastIndexOf('/') + 1));
}}
>
<svg

View File

@ -0,0 +1,126 @@
<script lang="ts">
import { getDocs } from '$lib/apis/documents';
import {
getRAGConfig,
updateRAGConfig,
getQuerySettings,
scanDocs,
updateQuerySettings,
resetVectorDB,
getEmbeddingConfig,
updateEmbeddingConfig,
getRerankingConfig,
updateRerankingConfig
} from '$lib/apis/rag';
import { documents, models } from '$lib/stores';
import { onMount, getContext } from 'svelte';
import { toast } from 'svelte-sonner';
import Tooltip from '$lib/components/common/Tooltip.svelte';
const i18n = getContext('i18n');
export let saveHandler: Function;
let scanDirLoading = false;
let updateEmbeddingModelLoading = false;
let updateRerankingModelLoading = false;
let showResetConfirm = false;
let chunkSize = 0;
let chunkOverlap = 0;
let pdfExtractImages = true;
const submitHandler = async () => {
const res = await updateRAGConfig(localStorage.token, {
pdf_extract_images: pdfExtractImages,
chunk: {
chunk_overlap: chunkOverlap,
chunk_size: chunkSize
}
});
};
onMount(async () => {
const res = await getRAGConfig(localStorage.token);
if (res) {
pdfExtractImages = res.pdf_extract_images;
chunkSize = res.chunk.chunk_size;
chunkOverlap = res.chunk.chunk_overlap;
}
});
</script>
<form
class="flex flex-col h-full justify-between space-y-3 text-sm"
on:submit|preventDefault={() => {
submitHandler();
saveHandler();
}}
>
<div class=" space-y-3 pr-1.5 overflow-y-scroll h-full max-h-[22rem]">
<div class=" ">
<div class=" text-sm font-medium">{$i18n.t('Chunk Params')}</div>
<div class=" flex">
<div class=" flex w-full justify-between">
<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Chunk Size')}</div>
<div class="self-center p-3">
<input
class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
placeholder={$i18n.t('Enter Chunk Size')}
bind:value={chunkSize}
autocomplete="off"
min="0"
/>
</div>
</div>
<div class="flex w-full">
<div class=" self-center text-xs font-medium min-w-fit">
{$i18n.t('Chunk Overlap')}
</div>
<div class="self-center p-3">
<input
class="w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
placeholder={$i18n.t('Enter Chunk Overlap')}
bind:value={chunkOverlap}
autocomplete="off"
min="0"
/>
</div>
</div>
</div>
<div class="pr-2">
<div class="flex justify-between items-center text-xs">
<div class=" text-xs font-medium">{$i18n.t('PDF Extract Images (OCR)')}</div>
<button
class=" text-xs font-medium text-gray-500"
type="button"
on:click={() => {
pdfExtractImages = !pdfExtractImages;
}}>{pdfExtractImages ? $i18n.t('On') : $i18n.t('Off')}</button
>
</div>
</div>
</div>
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<button
class=" px-4 py-2 bg-emerald-700 hover:bg-emerald-800 text-gray-100 transition rounded-lg"
type="submit"
>
{$i18n.t('Save')}
</button>
</div>
</form>

View File

@ -1,8 +1,6 @@
<script lang="ts">
import { getDocs } from '$lib/apis/documents';
import {
getRAGConfig,
updateRAGConfig,
getQuerySettings,
scanDocs,
updateQuerySettings,
@ -17,8 +15,6 @@
import { onMount, getContext } from 'svelte';
import { toast } from 'svelte-sonner';
import Tooltip from '$lib/components/common/Tooltip.svelte';
const i18n = getContext('i18n');
export let saveHandler: Function;
@ -36,10 +32,6 @@
let OpenAIKey = '';
let OpenAIUrl = '';
let chunkSize = 0;
let chunkOverlap = 0;
let pdfExtractImages = true;
let querySettings = {
template: '',
r: 0.0,
@ -151,14 +143,11 @@
};
const submitHandler = async () => {
const res = await updateRAGConfig(localStorage.token, {
pdf_extract_images: pdfExtractImages,
chunk: {
chunk_overlap: chunkOverlap,
chunk_size: chunkSize
}
});
querySettings = await updateQuerySettings(localStorage.token, querySettings);
embeddingModelUpdateHandler();
if (querySettings.hybrid) {
rerankingModelUpdateHandler();
}
};
const setEmbeddingConfig = async () => {
@ -183,20 +172,10 @@
const toggleHybridSearch = async () => {
querySettings.hybrid = !querySettings.hybrid;
querySettings = await updateQuerySettings(localStorage.token, querySettings);
};
onMount(async () => {
const res = await getRAGConfig(localStorage.token);
if (res) {
pdfExtractImages = res.pdf_extract_images;
chunkSize = res.chunk.chunk_size;
chunkOverlap = res.chunk.chunk_overlap;
}
await setEmbeddingConfig();
await setRerankingConfig();
@ -211,24 +190,54 @@
saveHandler();
}}
>
<div class=" space-y-3 pr-1.5 overflow-y-scroll max-h-[22rem]">
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('General Settings')}</div>
<div class=" space-y-2.5 pr-1.5 overflow-y-scroll max-h-[22rem]">
<div class="flex flex-col gap-0.5">
<div class=" mb-0.5 text-sm font-medium">{$i18n.t('General Settings')}</div>
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Hybrid Search')}</div>
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">
{$i18n.t('Scan for documents from {{path}}', { path: '/data/docs' })}
</div>
<button
class="p-1 px-3 text-xs flex rounded transition"
class=" self-center text-xs p-1 px-3 bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 rounded-lg flex flex-row space-x-1 items-center {scanDirLoading
? ' cursor-not-allowed'
: ''}"
on:click={() => {
toggleHybridSearch();
scanHandler();
console.log('check');
}}
type="button"
disabled={scanDirLoading}
>
{#if querySettings.hybrid === true}
<span class="ml-2 self-center">{$i18n.t('On')}</span>
{:else}
<span class="ml-2 self-center">{$i18n.t('Off')}</span>
<div class="self-center font-medium">{$i18n.t('Scan')}</div>
{#if scanDirLoading}
<div class="ml-3 self-center">
<svg
class=" w-3 h-3"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
><style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style><path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/><path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/></svg
>
</div>
{/if}
</button>
</div>
@ -256,7 +265,7 @@
</div>
{#if embeddingEngine === 'openai'}
<div class="mt-1 flex gap-2">
<div class="my-0.5 flex gap-2">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('API Base URL')}
@ -272,91 +281,65 @@
/>
</div>
{/if}
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Hybrid Search')}</div>
<button
class="p-1 px-3 text-xs flex rounded transition"
on:click={() => {
toggleHybridSearch();
}}
type="button"
>
{#if querySettings.hybrid === 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 class="space-y-2">
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Update Embedding Model')}</div>
<hr class=" dark:border-gray-700 my-1" />
{#if embeddingEngine === 'ollama'}
<div class="flex w-full">
<div class="flex-1 mr-2">
<select
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={embeddingModel}
placeholder={$i18n.t('Select a model')}
required
>
{#if !embeddingModel}
<option value="" disabled selected>{$i18n.t('Select a model')}</option>
{/if}
{#each $models.filter((m) => m.id && !m.external) as model}
<option value={model.name} class="bg-gray-100 dark:bg-gray-700"
>{model.name + ' (' + (model.size / 1024 ** 3).toFixed(1) + ' GB)'}</option
>
{/each}
</select>
</div>
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
embeddingModelUpdateHandler();
}}
disabled={updateEmbeddingModelLoading}
<div class="space-y-2" />
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Embedding Model')}</div>
{#if embeddingEngine === 'ollama'}
<div class="flex w-full">
<div class="flex-1 mr-2">
<select
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
bind:value={embeddingModel}
placeholder={$i18n.t('Select a model')}
required
>
{#if updateEmbeddingModelLoading}
<div class="self-center">
<svg
class=" w-4 h-4"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
><style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style><path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/><path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/></svg
>
</div>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353 4.493-6.74a.75.75 0 0 1 1.04-.207Z"
clip-rule="evenodd"
/>
</svg>
{#if !embeddingModel}
<option value="" disabled selected>{$i18n.t('Select a model')}</option>
{/if}
</button>
{#each $models.filter((m) => m.id && !m.external) as model}
<option value={model.name} class="bg-gray-100 dark:bg-gray-700"
>{model.name + ' (' + (model.size / 1024 ** 3).toFixed(1) + ' GB)'}</option
>
{/each}
</select>
</div>
{:else}
<div class="flex w-full">
<div class="flex-1 mr-2">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Update embedding model (e.g. {{model}})', {
model: embeddingModel.slice(-40)
})}
bind:value={embeddingModel}
/>
</div>
</div>
{:else}
<div class="flex w-full">
<div class="flex-1 mr-2">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Set embedding model (e.g. {{model}})', {
model: embeddingModel.slice(-40)
})}
bind:value={embeddingModel}
/>
</div>
{#if embeddingEngine === ''}
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
@ -406,344 +389,177 @@
</svg>
{/if}
</button>
</div>
{/if}
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t(
'Warning: If you update or change your embedding model, you will need to re-import all documents.'
)}
</div>
<hr class=" dark:border-gray-700 my-3" />
{#if querySettings.hybrid === true}
<div class=" ">
<div class=" mb-2 text-sm font-medium">{$i18n.t('Update Reranking Model')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Update reranking model (e.g. {{model}})', {
model: rerankingModel.slice(-40)
})}
bind:value={rerankingModel}
/>
</div>
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
rerankingModelUpdateHandler();
}}
disabled={updateRerankingModelLoading}
>
{#if updateRerankingModelLoading}
<div class="self-center">
<svg
class=" w-4 h-4"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
><style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style><path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/><path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/></svg
>
</div>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M8.75 2.75a.75.75 0 0 0-1.5 0v5.69L5.03 6.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06 0l3.5-3.5a.75.75 0 0 0-1.06-1.06L8.75 8.44V2.75Z"
/>
<path
d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
/>
</svg>
{/if}
</button>
</div>
</div>
<hr class=" dark:border-gray-700 my-3" />
{/if}
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">
{$i18n.t('Scan for documents from {{path}}', { path: '/data/docs' })}
</div>
<button
class=" self-center text-xs p-1 px-3 bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 rounded-lg flex flex-row space-x-1 items-center {scanDirLoading
? ' cursor-not-allowed'
: ''}"
on:click={() => {
scanHandler();
console.log('check');
}}
type="button"
disabled={scanDirLoading}
>
<div class="self-center font-medium">{$i18n.t('Scan')}</div>
{#if scanDirLoading}
<div class="ml-3 self-center">
<svg
class=" w-3 h-3"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
><style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style><path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/><path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/></svg
>
</div>
{/if}
</button>
</div>
<hr class=" dark:border-gray-700 my-3" />
<div class=" ">
<div class=" text-sm font-medium">{$i18n.t('Chunk Params')}</div>
<div class=" flex">
<div class=" flex w-full justify-between">
<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Chunk Size')}</div>
<div class="self-center p-3">
<input
class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
placeholder={$i18n.t('Enter Chunk Size')}
bind:value={chunkSize}
autocomplete="off"
min="0"
/>
</div>
</div>
<div class="flex w-full">
<div class=" self-center text-xs font-medium min-w-fit">
{$i18n.t('Chunk Overlap')}
</div>
<div class="self-center p-3">
<input
class="w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
placeholder={$i18n.t('Enter Chunk Overlap')}
bind:value={chunkOverlap}
autocomplete="off"
min="0"
/>
</div>
</div>
</div>
<div class="pr-2">
<div class="flex justify-between items-center text-xs">
<div class=" text-xs font-medium">{$i18n.t('PDF Extract Images (OCR)')}</div>
<button
class=" text-xs font-medium text-gray-500"
type="button"
on:click={() => {
pdfExtractImages = !pdfExtractImages;
}}>{pdfExtractImages ? $i18n.t('On') : $i18n.t('Off')}</button
>
</div>
</div>
</div>
<hr class=" dark:border-gray-700 my-3" />
<div class=" ">
<div class=" text-sm font-medium">{$i18n.t('Query Params')}</div>
<div class=" flex">
<div class=" flex w-full justify-between">
<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Top K')}</div>
<div class="self-center p-3">
<input
class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
placeholder={$i18n.t('Enter Top K')}
bind:value={querySettings.k}
autocomplete="off"
min="0"
/>
</div>
</div>
{#if querySettings.hybrid === true}
<div class="flex w-full">
<div class=" self-center text-xs font-medium min-w-fit">
{$i18n.t('Minimum Score')}
</div>
<div class="self-center p-3">
<input
class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
step="0.01"
placeholder={$i18n.t('Enter Score')}
bind:value={querySettings.r}
autocomplete="off"
min="0.0"
title={$i18n.t('The score should be a value between 0.0 (0%) and 1.0 (100%).')}
/>
</div>
</div>
{/if}
</div>
{#if querySettings.hybrid === true}
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t(
'Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.'
)}
</div>
<hr class=" dark:border-gray-700 my-3" />
{/if}
</div>
{/if}
<div>
<div class=" mb-2.5 text-sm font-medium">{$i18n.t('RAG Template')}</div>
<textarea
bind:value={querySettings.template}
class="w-full rounded-lg px-4 py-3 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none resize-none"
rows="4"
/>
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t(
'Warning: If you update or change your embedding model, you will need to re-import all documents.'
)}
</div>
{#if querySettings.hybrid === true}
<div class=" ">
<div class=" mb-2 text-sm font-medium">{$i18n.t('Reranking Model')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2">
<input
class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
placeholder={$i18n.t('Set reranking model (e.g. {{model}})', {
model: 'BAAI/bge-reranker-v2-m3'
})}
bind:value={rerankingModel}
/>
</div>
<button
class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
on:click={() => {
rerankingModelUpdateHandler();
}}
disabled={updateRerankingModelLoading}
>
{#if updateRerankingModelLoading}
<div class="self-center">
<svg
class=" w-4 h-4"
viewBox="0 0 24 24"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
><style>
.spinner_ajPY {
transform-origin: center;
animation: spinner_AtaB 0.75s infinite linear;
}
@keyframes spinner_AtaB {
100% {
transform: rotate(360deg);
}
}
</style><path
d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
opacity=".25"
/><path
d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
class="spinner_ajPY"
/></svg
>
</div>
{:else}
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M8.75 2.75a.75.75 0 0 0-1.5 0v5.69L5.03 6.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06 0l3.5-3.5a.75.75 0 0 0-1.06-1.06L8.75 8.44V2.75Z"
/>
<path
d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
/>
</svg>
{/if}
</button>
</div>
</div>
{/if}
</div>
{#if showResetConfirm}
<div class="flex justify-between rounded-md items-center py-2 px-3.5 w-full transition">
<div class="flex items-center space-x-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path d="M2 3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3Z" />
<path
fill-rule="evenodd"
d="M13 6H3v6a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V6ZM5.72 7.47a.75.75 0 0 1 1.06 0L8 8.69l1.22-1.22a.75.75 0 1 1 1.06 1.06L9.06 9.75l1.22 1.22a.75.75 0 1 1-1.06 1.06L8 10.81l-1.22 1.22a.75.75 0 0 1-1.06-1.06l1.22-1.22-1.22-1.22a.75.75 0 0 1 0-1.06Z"
clip-rule="evenodd"
/>
</svg>
<span>{$i18n.t('Are you sure?')}</span>
</div>
<hr class=" dark:border-gray-700" />
<div class="flex space-x-1.5 items-center">
<button
class="hover:text-white transition"
on:click={() => {
const res = resetVectorDB(localStorage.token).catch((error) => {
toast.error(error);
return null;
});
{#if showResetConfirm}
<div class="flex justify-between rounded-md items-center py-2 px-3.5 w-full transition">
<div class="flex items-center space-x-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path d="M2 3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3Z" />
<path
fill-rule="evenodd"
d="M13 6H3v6a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V6ZM5.72 7.47a.75.75 0 0 1 1.06 0L8 8.69l1.22-1.22a.75.75 0 1 1 1.06 1.06L9.06 9.75l1.22 1.22a.75.75 0 1 1-1.06 1.06L8 10.81l-1.22 1.22a.75.75 0 0 1-1.06-1.06l1.22-1.22-1.22-1.22a.75.75 0 0 1 0-1.06Z"
clip-rule="evenodd"
/>
</svg>
<span>{$i18n.t('Are you sure?')}</span>
</div>
if (res) {
toast.success($i18n.t('Success'));
}
showResetConfirm = false;
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z"
clip-rule="evenodd"
/>
</svg>
</button>
<button
class="hover:text-white transition"
on:click={() => {
showResetConfirm = false;
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
/>
</svg>
</button>
</div>
</div>
{:else}
<div class="flex space-x-1.5 items-center">
<button
class=" flex rounded-md py-2 px-3.5 w-full hover:bg-gray-200 dark:hover:bg-gray-800 transition"
class="hover:text-white transition"
on:click={() => {
showResetConfirm = true;
const res = resetVectorDB(localStorage.token).catch((error) => {
toast.error(error);
return null;
});
if (res) {
toast.success($i18n.t('Success'));
}
showResetConfirm = false;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M3.5 2A1.5 1.5 0 0 0 2 3.5v9A1.5 1.5 0 0 0 3.5 14h9a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 12.5 4H9.621a1.5 1.5 0 0 1-1.06-.44L7.439 2.44A1.5 1.5 0 0 0 6.38 2H3.5Zm6.75 7.75a.75.75 0 0 0 0-1.5h-4.5a.75.75 0 0 0 0 1.5h4.5Z"
clip-rule="evenodd"
/>
</svg>
</div>
<div class=" self-center text-sm font-medium">{$i18n.t('Reset Vector Storage')}</div>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z"
clip-rule="evenodd"
/>
</svg>
</button>
{/if}
<button
class="hover:text-white transition"
on:click={() => {
showResetConfirm = false;
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
/>
</svg>
</button>
</div>
</div>
</div>
{:else}
<button
class=" flex rounded-md py-2 px-3.5 w-full hover:bg-gray-200 dark:hover:bg-gray-800 transition"
on:click={() => {
showResetConfirm = true;
}}
>
<div class=" self-center mr-3">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 16 16"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M3.5 2A1.5 1.5 0 0 0 2 3.5v9A1.5 1.5 0 0 0 3.5 14h9a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 12.5 4H9.621a1.5 1.5 0 0 1-1.06-.44L7.439 2.44A1.5 1.5 0 0 0 6.38 2H3.5Zm6.75 7.75a.75.75 0 0 0 0-1.5h-4.5a.75.75 0 0 0 0 1.5h4.5Z"
clip-rule="evenodd"
/>
</svg>
</div>
<div class=" self-center text-sm font-medium">{$i18n.t('Reset Vector Storage')}</div>
</button>
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<button

View File

@ -0,0 +1,119 @@
<script lang="ts">
import { getDocs } from '$lib/apis/documents';
import {
getRAGConfig,
updateRAGConfig,
getQuerySettings,
scanDocs,
updateQuerySettings,
resetVectorDB,
getEmbeddingConfig,
updateEmbeddingConfig,
getRerankingConfig,
updateRerankingConfig
} from '$lib/apis/rag';
import { documents, models } from '$lib/stores';
import { onMount, getContext } from 'svelte';
import { toast } from 'svelte-sonner';
import Tooltip from '$lib/components/common/Tooltip.svelte';
const i18n = getContext('i18n');
export let saveHandler: Function;
let querySettings = {
template: '',
r: 0.0,
k: 4,
hybrid: false
};
const submitHandler = async () => {
querySettings = await updateQuerySettings(localStorage.token, querySettings);
};
onMount(async () => {
querySettings = await getQuerySettings(localStorage.token);
});
</script>
<form
class="flex flex-col h-full justify-between space-y-3 text-sm"
on:submit|preventDefault={() => {
submitHandler();
saveHandler();
}}
>
<div class=" space-y-3 pr-1.5 overflow-y-scroll max-h-[22rem]">
<div class=" ">
<div class=" text-sm font-medium">{$i18n.t('Query Params')}</div>
<div class=" flex">
<div class=" flex w-full justify-between">
<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Top K')}</div>
<div class="self-center p-3">
<input
class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
placeholder={$i18n.t('Enter Top K')}
bind:value={querySettings.k}
autocomplete="off"
min="0"
/>
</div>
</div>
{#if querySettings.hybrid === true}
<div class="flex w-full">
<div class=" self-center text-xs font-medium min-w-fit">
{$i18n.t('Minimum Score')}
</div>
<div class="self-center p-3">
<input
class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
type="number"
step="0.01"
placeholder={$i18n.t('Enter Score')}
bind:value={querySettings.r}
autocomplete="off"
min="0.0"
title={$i18n.t('The score should be a value between 0.0 (0%) and 1.0 (100%).')}
/>
</div>
</div>
{/if}
</div>
{#if querySettings.hybrid === true}
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t(
'Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.'
)}
</div>
<hr class=" dark:border-gray-700 my-3" />
{/if}
<div>
<div class=" mb-2.5 text-sm font-medium">{$i18n.t('RAG Template')}</div>
<textarea
bind:value={querySettings.template}
class="w-full rounded-lg px-4 py-3 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none resize-none"
rows="4"
/>
</div>
</div>
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<button
class=" px-4 py-2 bg-emerald-700 hover:bg-emerald-800 text-gray-100 transition rounded-lg"
type="submit"
>
{$i18n.t('Save')}
</button>
</div>
</form>

View File

@ -0,0 +1,74 @@
<script lang="ts">
import { getRAGConfig, updateRAGConfig } from '$lib/apis/rag';
import { documents, models } from '$lib/stores';
import { onMount, getContext } from 'svelte';
import { toast } from 'svelte-sonner';
const i18n = getContext('i18n');
export let saveHandler: Function;
let webLoaderSSLVerification = true;
const submitHandler = async () => {
const res = await updateRAGConfig(localStorage.token, {
web_loader_ssl_verification: webLoaderSSLVerification
});
};
onMount(async () => {
const res = await getRAGConfig(localStorage.token);
if (res) {
webLoaderSSLVerification = res.web_loader_ssl_verification;
}
});
</script>
<form
class="flex flex-col h-full justify-between space-y-3 text-sm"
on:submit|preventDefault={() => {
submitHandler();
saveHandler();
}}
>
<div class=" space-y-3 pr-1.5 overflow-y-scroll h-full max-h-[22rem]">
<div>
<div class=" mb-1 text-sm font-medium">
{$i18n.t('Retrieval Augmented Generation Settings')}
</div>
<div>
<div class=" py-0.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
{$i18n.t('Bypass SSL verification for Websites')}
</div>
<button
class="p-1 px-3 text-xs flex rounded transition"
on:click={() => {
webLoaderSSLVerification = !webLoaderSSLVerification;
submitHandler();
}}
type="button"
>
{#if webLoaderSSLVerification === 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="flex justify-end pt-3 text-sm font-medium">
<button
class=" px-4 py-2 bg-emerald-700 hover:bg-emerald-800 text-gray-100 transition rounded-lg"
type="submit"
>
{$i18n.t('Save')}
</button>
</div>
</form>

View File

@ -2,6 +2,10 @@
import { getContext } from 'svelte';
import Modal from '../common/Modal.svelte';
import General from './Settings/General.svelte';
import ChunkParams from './Settings/ChunkParams.svelte';
import QueryParams from './Settings/QueryParams.svelte';
import WebParams from './Settings/WebParams.svelte';
import { toast } from 'svelte-sonner';
const i18n = getContext('i18n');
@ -62,25 +66,115 @@
</div>
<div class=" self-center">{$i18n.t('General')}</div>
</button>
<button
class="px-2.5 py-2.5 min-w-fit rounded-lg flex-1 md:flex-none flex text-right transition {selectedTab ===
'chunk'
? 'bg-gray-200 dark:bg-gray-700'
: ' hover:bg-gray-300 dark:hover:bg-gray-800'}"
on:click={() => {
selectedTab = 'chunk';
}}
>
<div class=" self-center mr-2">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
class="w-4 h-4"
>
<path
fill-rule="evenodd"
d="M5.625 1.5H9a3.75 3.75 0 0 1 3.75 3.75v1.875c0 1.036.84 1.875 1.875 1.875H16.5a3.75 3.75 0 0 1 3.75 3.75v7.875c0 1.035-.84 1.875-1.875 1.875H5.625a1.875 1.875 0 0 1-1.875-1.875V3.375c0-1.036.84-1.875 1.875-1.875ZM12.75 12a.75.75 0 0 0-1.5 0v2.25H9a.75.75 0 0 0 0 1.5h2.25V18a.75.75 0 0 0 1.5 0v-2.25H15a.75.75 0 0 0 0-1.5h-2.25V12Z"
clip-rule="evenodd"
/>
<path
d="M14.25 5.25a5.23 5.23 0 0 0-1.279-3.434 9.768 9.768 0 0 1 6.963 6.963A5.23 5.23 0 0 0 16.5 7.5h-1.875a.375.375 0 0 1-.375-.375V5.25Z"
/>
</svg>
</div>
<div class=" self-center">{$i18n.t('Chunk Params')}</div>
</button>
<button
class="px-2.5 py-2.5 min-w-fit rounded-lg flex-1 md:flex-none flex text-right transition {selectedTab ===
'query'
? 'bg-gray-200 dark:bg-gray-700'
: ' hover:bg-gray-300 dark:hover:bg-gray-800'}"
on:click={() => {
selectedTab = 'query';
}}
>
<div class=" self-center mr-2">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
class="w-4 h-4"
>
<path d="M11.625 16.5a1.875 1.875 0 1 0 0-3.75 1.875 1.875 0 0 0 0 3.75Z" />
<path
fill-rule="evenodd"
d="M5.625 1.5H9a3.75 3.75 0 0 1 3.75 3.75v1.875c0 1.036.84 1.875 1.875 1.875H16.5a3.75 3.75 0 0 1 3.75 3.75v7.875c0 1.035-.84 1.875-1.875 1.875H5.625a1.875 1.875 0 0 1-1.875-1.875V3.375c0-1.036.84-1.875 1.875-1.875Zm6 16.5c.66 0 1.277-.19 1.797-.518l1.048 1.048a.75.75 0 0 0 1.06-1.06l-1.047-1.048A3.375 3.375 0 1 0 11.625 18Z"
clip-rule="evenodd"
/>
<path
d="M14.25 5.25a5.23 5.23 0 0 0-1.279-3.434 9.768 9.768 0 0 1 6.963 6.963A5.23 5.23 0 0 0 16.5 7.5h-1.875a.375.375 0 0 1-.375-.375V5.25Z"
/>
</svg>
</div>
<div class=" self-center">{$i18n.t('Query Params')}</div>
</button>
<button
class="px-2.5 py-2.5 min-w-fit rounded-lg flex-1 md:flex-none flex text-right transition {selectedTab ===
'web'
? 'bg-gray-200 dark:bg-gray-700'
: ' hover:bg-gray-300 dark:hover:bg-gray-800'}"
on:click={() => {
selectedTab = 'web';
}}
>
<div class=" self-center mr-2">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
class="w-4 h-4"
>
<path
d="M21.721 12.752a9.711 9.711 0 0 0-.945-5.003 12.754 12.754 0 0 1-4.339 2.708 18.991 18.991 0 0 1-.214 4.772 17.165 17.165 0 0 0 5.498-2.477ZM14.634 15.55a17.324 17.324 0 0 0 .332-4.647c-.952.227-1.945.347-2.966.347-1.021 0-2.014-.12-2.966-.347a17.515 17.515 0 0 0 .332 4.647 17.385 17.385 0 0 0 5.268 0ZM9.772 17.119a18.963 18.963 0 0 0 4.456 0A17.182 17.182 0 0 1 12 21.724a17.18 17.18 0 0 1-2.228-4.605ZM7.777 15.23a18.87 18.87 0 0 1-.214-4.774 12.753 12.753 0 0 1-4.34-2.708 9.711 9.711 0 0 0-.944 5.004 17.165 17.165 0 0 0 5.498 2.477ZM21.356 14.752a9.765 9.765 0 0 1-7.478 6.817 18.64 18.64 0 0 0 1.988-4.718 18.627 18.627 0 0 0 5.49-2.098ZM2.644 14.752c1.682.971 3.53 1.688 5.49 2.099a18.64 18.64 0 0 0 1.988 4.718 9.765 9.765 0 0 1-7.478-6.816ZM13.878 2.43a9.755 9.755 0 0 1 6.116 3.986 11.267 11.267 0 0 1-3.746 2.504 18.63 18.63 0 0 0-2.37-6.49ZM12 2.276a17.152 17.152 0 0 1 2.805 7.121c-.897.23-1.837.353-2.805.353-.968 0-1.908-.122-2.805-.353A17.151 17.151 0 0 1 12 2.276ZM10.122 2.43a18.629 18.629 0 0 0-2.37 6.49 11.266 11.266 0 0 1-3.746-2.504 9.754 9.754 0 0 1 6.116-3.985Z"
/>
</svg>
</div>
<div class=" self-center">{$i18n.t('Web Params')}</div>
</button>
</div>
<div class="flex-1 md:min-h-[380px]">
{#if selectedTab === 'general'}
<General
saveHandler={() => {
show = false;
toast.success($i18n.t('Settings saved successfully!'));
}}
/>
<!-- <General
{:else if selectedTab === 'chunk'}
<ChunkParams
saveHandler={() => {
show = false;
toast.success($i18n.t('Settings saved successfully!'));
}}
/> -->
<!-- {:else if selectedTab === 'users'}
<Users
/>
{:else if selectedTab === 'query'}
<QueryParams
saveHandler={() => {
show = false;
toast.success($i18n.t('Settings saved successfully!'));
}}
/> -->
/>
{:else if selectedTab === 'web'}
<WebParams
saveHandler={() => {
toast.success($i18n.t('Settings saved successfully!'));
}}
/>
{/if}
</div>
</div>

View File

@ -419,7 +419,7 @@
await chats.set(await getChatList(localStorage.token));
}}
>
all
{$i18n.t('all')}
</button>
{#each $tags as tag}
<button

View File

@ -161,7 +161,9 @@
{/each} -->
</div>
{:else}
<div class="text-left text-sm w-full mb-8">You have no archived conversations.</div>
<div class="text-left text-sm w-full mb-8">
{$i18n.t('You have no archived conversations.')}
</div>
{/if}
</div>
</div>

View File

@ -49,7 +49,7 @@
}}
>
<Share />
<div class="flex items-center">Share</div>
<div class="flex items-center">{$i18n.t('Share')}</div>
</DropdownMenu.Item>
<DropdownMenu.Item
@ -59,7 +59,7 @@
}}
>
<Pencil strokeWidth="2" />
<div class="flex items-center">Rename</div>
<div class="flex items-center">{$i18n.t('Rename')}</div>
</DropdownMenu.Item>
<DropdownMenu.Item
@ -69,7 +69,7 @@
}}
>
<GarbageBin strokeWidth="2" />
<div class="flex items-center">Delete</div>
<div class="flex items-center">{$i18n.t('Delete')}</div>
</DropdownMenu.Item>
<hr class="border-gray-100 dark:border-gray-800 mt-2.5 mb-1.5" />

View File

@ -35,6 +35,7 @@
"Already have an account?": "هل تملك حساب ؟",
"an assistant": "مساعد",
"and": "و",
"and create a new shared link.": "",
"API Base URL": "API الرابط الرئيسي",
"API Key": "API مفتاح",
"API Key created.": "API تم أنشاء المفتاح",
@ -54,8 +55,10 @@
"available!": "متاح",
"Back": "خلف",
"Bad Response": "استجابة خطاء",
"before": "",
"Being lazy": "كون كسول",
"Builder Mode": "بناء الموديل",
"Bypass SSL verification for Websites": "",
"Cancel": "اللغاء",
"Categories": "التصنيفات",
"Change Password": "تغير الباسورد",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk تداخل",
"Chunk Params": "Chunk المتغيرات",
"Chunk Size": "Chunk حجم",
"Citation": "",
"Click here for help.": "أضغط هنا للمساعدة",
"Click here to": "",
"Click here to check other modelfiles.": "انقر هنا للتحقق من ملفات الموديلات الأخرى.",
"Click here to select": "أضغط هنا للاختيار",
"Click here to select a csv file.": "أضغط هنا للاختيار ملف csv",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "قم بإنشاء عبارة موجزة مكونة من 3-5 كلمات كرأس للاستعلام التالي، مع الالتزام الصارم بالحد الأقصى لعدد الكلمات الذي يتراوح بين 3-5 كلمات وتجنب استخدام الكلمة 'عنوان':",
"Create a modelfile": "إنشاء ملف نموذجي",
"Create Account": "إنشاء حساب",
"Create new key": "",
"Create new secret key": "",
"Created at": "أنشئت في",
"Created At": "أنشئت من",
"Current Model": "الموديل المختار",
@ -105,6 +112,7 @@
"Custom": "مخصص",
"Customize Ollama models for a specific purpose": "تخصيص الموديل Ollama لغرض محدد",
"Dark": "مظلم",
"Dashboard": "",
"Database": "قاعدة البيانات",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "الإفتراضي",
@ -120,6 +128,7 @@
"Delete chat": "حذف المحادثه",
"Delete Chat": "حذف المحادثه.",
"Delete Chats": "حذ المحادثات",
"delete this link": "",
"Delete User": "حذف المستخدم",
"Deleted {{deleteModelTag}}": "حذف {{deleteModelTag}}",
"Deleted {{tagName}}": "حذف {{tagName}}",
@ -146,6 +155,7 @@
"Edit Doc": "تعديل الملف",
"Edit User": "تعديل المستخدم",
"Email": "البريد",
"Embedding Model": "",
"Embedding Model Engine": "تضمين محرك النموذج",
"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
"Enable Chat History": "تمكين سجل الدردشة",
@ -167,6 +177,7 @@
"Enter stop sequence": "أدخل تسلسل التوقف",
"Enter Top K": "Enter Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "أدخل البريد الاكتروني",
"Enter Your Full Name": "أدخل الاسم كامل",
"Enter Your Password": "ادخل كلمة المرور",
@ -228,6 +239,7 @@
"Manage Ollama Models": "إدارة موديلات Ollama",
"Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "يمكن تنزيل 3 نماذج كحد أقصى في وقت واحد. الرجاء معاودة المحاولة في وقت لاحق.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "الحد الأدنى من النقاط",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "قم بتسمية ملف النموذج الخاص بك",
"New Chat": "دردشة جديدة",
"New Password": "كلمة المرور الجديدة",
"No results found": "",
"No source available": "",
"Not factually correct": "ليس صحيحا من حيث الواقع",
"Not sure what to add?": "لست متأكدا ما يجب إضافته؟",
"Not sure what to write? Switch to": "لست متأكدا ماذا أكتب؟ التبديل إلى",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "مطلوب عنوان URL/مفتاح OpenAI.",
"or": "أو",
"Other": "آخر",
"Overview": "",
"Parameters": "Parameters",
"Password": "الباسورد",
"PDF document (.pdf)": "PDF ملف (.pdf)",
@ -300,6 +315,7 @@
"Prompt Content": "محتوى عاجل",
"Prompt suggestions": "اقتراحات سريعة",
"Prompts": "حث",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "سحب الموديل من Ollama.com",
"Pull Progress": "سحب التقدم",
"Query Params": "Query Params",
@ -312,13 +328,17 @@
"Regenerate": "تجديد",
"Release Notes": "ملاحظات الإصدار",
"Remove": "إزالة",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "كرر آخر N",
"Repeat Penalty": "كرر المخالفة",
"Request Mode": "وضع الطلب",
"Reranking Model": "",
"Reranking model disabled": "تم تعطيل نموذج إعادة الترتيب",
"Reranking model set to \"{{reranking_model}}\"": "تم ضبط نموذج إعادة الترتيب على \"{{reranking_model}}\"",
"Reset Vector Storage": "إعادة تعيين تخزين المتجهات",
"Response AutoCopy to Clipboard": "النسخ التلقائي للاستجابة إلى الحافظة",
"Retrieval Augmented Generation Settings": "",
"Role": "منصب",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "تم التحقق من اتصال الخادم",
"Set as default": "الافتراضي",
"Set Default Model": "تفعيد الموديل الافتراضي",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "حجم الصورة",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "ضبط الخطوات",
"Set Title Auto-Generation Model": "قم بتعيين نموذج إنشاء العنوان تلقائيًا",
"Set Voice": "ضبط الصوت",
@ -365,6 +387,7 @@
"Sign Out": "تسجيل الخروج",
"Sign up": "تسجيل",
"Signing in": "جاري الدخول",
"Source": "",
"Speech recognition error: {{error}}": "خطأ في التعرف على الكلام: {{error}}",
"Speech-to-Text Engine": "محرك تحويل الكلام إلى نص",
"SpeechRecognition API is not supported in this browser.": "API SpeechRecognition غير مدعومة في هذا المتصفح.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "خطاء أوه! حدثت مشكلة في الاتصال بـ {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع ملف غير معروف '{{file_type}}', ولكن القبول والتعامل كنص عادي ",
"Update and Copy Link": "تحديث ونسخ الرابط",
"Update Embedding Model": "تحديث الموديل التضمين",
"Update embedding model (e.g. {{model}})": "تحديث الموديلات التضمين (e.g. {{model}})",
"Update password": "تحديث كلمة المرور",
"Update Reranking Model": "تحديث الموديل إعادة الترتيب",
"Update reranking model (e.g. {{model}})": "تحديث الموديل إعادة الترتيب (e.g. {{model}})",
"Upload a GGUF model": "رفع موديل نوع GGUF",
"Upload files": "رفع الملفات",
"Upload Progress": "جاري التحميل",
@ -431,6 +450,7 @@
"Version": "إصدار",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "تحذير: إذا قمت بتحديث أو تغيير نموذج التضمين الخاص بك، فستحتاج إلى إعادة استيراد كافة المستندات.",
"Web": "Web",
"Web Params": "",
"Webhook URL": "Webhook الرابط",
"WebUI Add-ons": "WebUI الأضافات",
"WebUI Settings": "WebUI اعدادات",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "اكتب اقتراحًا سريعًا (على سبيل المثال، من أنت؟)",
"Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية].",
"You": "أنت",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "مساعدك المفيد هنا",
"You're now logged in.": "لقد قمت الآن بتسجيل الدخول.",
"Youtube": "Youtube"

View File

@ -35,6 +35,7 @@
"Already have an account?": "Вече имате акаунт? ",
"an assistant": "асистент",
"and": "и",
"and create a new shared link.": "",
"API Base URL": "API Базов URL",
"API Key": "API Ключ",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "наличен!",
"Back": "Назад",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Режим на Създаване",
"Bypass SSL verification for Websites": "",
"Cancel": "Отказ",
"Categories": "Категории",
"Change Password": "Промяна на Парола",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Params",
"Chunk Size": "Chunk Size",
"Citation": "",
"Click here for help.": "Натиснете тук за помощ.",
"Click here to": "",
"Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.",
"Click here to select": "Натиснете тук, за да изберете",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Създайте кратка фраза от 3-5 думи като заглавие за следващото запитване, като стриктно спазвате ограничението от 3-5 думи и избягвате използването на думата 'заглавие':",
"Create a modelfile": "Създаване на модфайл",
"Create Account": "Създаване на Акаунт",
"Create new key": "",
"Create new secret key": "",
"Created at": "Създадено на",
"Created At": "",
"Current Model": "Текущ модел",
@ -105,6 +112,7 @@
"Custom": "Персонализиран",
"Customize Ollama models for a specific purpose": "Персонализиране на Ollama моделите за конкретна цел",
"Dark": "Тъмен",
"Dashboard": "",
"Database": "База данни",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "По подразбиране",
@ -120,6 +128,7 @@
"Delete chat": "Изтриване на чат",
"Delete Chat": "",
"Delete Chats": "Изтриване на Чатове",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Изтрито {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Редактиране на документ",
"Edit User": "Редактиране на потребител",
"Email": "Имейл",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Вклюване на Чат История",
@ -167,6 +177,7 @@
"Enter stop sequence": "Въведете стоп последователност",
"Enter Top K": "Въведете Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Въведете URL (напр. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Въведете имейл",
"Enter Your Full Name": "Въведете вашето пълно име",
"Enter Your Password": "Въведете вашата парола",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Управление на Ollama Моделите",
"Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 модели могат да бъдат сваляни едновременно. Моля, опитайте отново по-късно.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Име на модфайла",
"New Chat": "Нов чат",
"New Password": "Нова парола",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Не сте сигурни, какво да добавите?",
"Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "или",
"Other": "",
"Overview": "",
"Parameters": "Параметри",
"Password": "Парола",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Съдържание на промпта",
"Prompt suggestions": "Промпт предложения",
"Prompts": "Промптове",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Издърпайте модел от Ollama.com",
"Pull Progress": "Прогрес на издърпването",
"Query Params": "Query Параметри",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Бележки по изданието",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty",
"Request Mode": "Request Mode",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Ресет Vector Storage",
"Response AutoCopy to Clipboard": "Аувтоматично копиране на отговор в клипборда",
"Retrieval Augmented Generation Settings": "",
"Role": "Роля",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Server connection verified",
"Set as default": "Задай по подразбиране",
"Set Default Model": "Задай Модел По Подразбиране",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Задай Размер на Изображението",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Задай Стъпки",
"Set Title Auto-Generation Model": "Задай Модел за Автоматично Генериране на Заглавие",
"Set Voice": "Задай Глас",
@ -365,6 +387,7 @@
"Sign Out": "Изход",
"Sign up": "Регистрация",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
"Speech-to-Text Engine": "Speech-to-Text Engine",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Обновяване на парола",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Качване на GGUF модел",
"Upload files": "Качване на файлове",
"Upload Progress": "Прогрес на качването",
@ -431,6 +450,7 @@
"Version": "Версия",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Уеб",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI Добавки",
"WebUI Settings": "WebUI Настройки",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Напиши предложение за промпт (напр. Кой сте вие?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Напиши описание в 50 знака, което описва [тема или ключова дума].",
"You": "Вие",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Вие сте полезен асистент.",
"You're now logged in.": "Сега, вие влязохте в системата.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "আগে থেকেই একাউন্ট আছে?",
"an assistant": "একটা এসিস্ট্যান্ট",
"and": "এবং",
"and create a new shared link.": "",
"API Base URL": "এপিআই বেজ ইউআরএল",
"API Key": "এপিআই কোড",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "উপলব্ধ!",
"Back": "পেছনে",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "বিল্ডার মোড",
"Bypass SSL verification for Websites": "",
"Cancel": "বাতিল",
"Categories": "ক্যাটাগরিসমূহ",
"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
@ -70,7 +73,9 @@
"Chunk Overlap": "চাঙ্ক ওভারল্যাপ",
"Chunk Params": "চাঙ্ক প্যারামিটার্স",
"Chunk Size": "চাঙ্ক সাইজ",
"Citation": "",
"Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন",
"Click here to": "",
"Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন",
"Click here to select": "নির্বাচন করার জন্য এখানে ক্লিক করুন",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "'title' শব্দটি ব্যবহার না করে নিম্মোক্ত অনুসন্ধানের জন্য সংক্ষেপে সর্বোচ্চ ৩-৫ শব্দের একটি হেডার তৈরি করুন",
"Create a modelfile": "একটি মডেলফাইল তৈরি করুন",
"Create Account": "একাউন্ট তৈরি করুন",
"Create new key": "",
"Create new secret key": "",
"Created at": "নির্মানকাল",
"Created At": "",
"Current Model": "বর্তমান মডেল",
@ -105,6 +112,7 @@
"Custom": "কাস্টম",
"Customize Ollama models for a specific purpose": "নির্দিষ্ট উদ্দেশ্যে Ollama মডেল পরিবর্তন করুন",
"Dark": "ডার্ক",
"Dashboard": "",
"Database": "ডেটাবেজ",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "ডিফল্ট",
@ -120,6 +128,7 @@
"Delete chat": "চ্যাট মুছে ফেলুন",
"Delete Chat": "",
"Delete Chats": "চ্যাটগুলো মুছে ফেলুন",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} মুছে ফেলা হয়েছে",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "ডকুমেন্ট এডিট করুন",
"Edit User": "ইউজার এডিট করুন",
"Email": "ইমেইল",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "চ্যাট হিস্টোরি চালু করুন",
@ -167,6 +177,7 @@
"Enter stop sequence": "স্টপ সিকোয়েন্স লিখুন",
"Enter Top K": "Top K লিখুন",
"Enter URL (e.g. http://127.0.0.1:7860/)": "ইউআরএল দিন (যেমন http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "আপনার ইমেইল লিখুন",
"Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন",
"Enter Your Password": "আপনার পাসওয়ার্ড লিখুন",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Ollama মডেলসূহ ব্যবস্থাপনা করুন",
"Max Tokens": "সর্বোচ্চ টোকন",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "একসঙ্গে সর্বোচ্চ তিনটি মডেল ডাউনলোড করা যায়। দয়া করে পরে আবার চেষ্টা করুন।",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "আপনার মডেলফাইলের নাম দিন",
"New Chat": "নতুন চ্যাট",
"New Password": "নতুন পাসওয়ার্ড",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?",
"Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "অথবা",
"Other": "",
"Overview": "",
"Parameters": "প্যারামিটারসমূহ",
"Password": "পাসওয়ার্ড",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "প্রম্পট কন্টেন্ট",
"Prompt suggestions": "প্রম্পট সাজেশনসমূহ",
"Prompts": "প্রম্পটসমূহ",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Ollama.com থেকে একটি টেনে আনুন আনুন",
"Pull Progress": "Pull চলমান",
"Query Params": "Query প্যারামিটারসমূহ",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "রিলিজ নোটসমূহ",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "রিপিট Last N",
"Repeat Penalty": "রিপিট প্যানাল্টি",
"Request Mode": "রিকোয়েস্ট মোড",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "ভেক্টর স্টোরেজ রিসেট করুন",
"Response AutoCopy to Clipboard": "রেসপন্সগুলো স্বয়ংক্রিভাবে ক্লিপবোর্ডে কপি হবে",
"Retrieval Augmented Generation Settings": "",
"Role": "পদবি",
"Rosé Pine": "রোজ পাইন",
"Rosé Pine Dawn": "ভোরের রোজ পাইন",
@ -346,7 +366,9 @@
"Server connection verified": "সার্ভার কানেকশন যাচাই করা হয়েছে",
"Set as default": "ডিফল্ট হিসেবে নির্ধারণ করুন",
"Set Default Model": "ডিফল্ট মডেল নির্ধারণ করুন",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "ছবির সাইজ নির্ধারণ করুন",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "পরবর্তী ধাপসমূহ",
"Set Title Auto-Generation Model": "শিরোনাম অটোজেনারেশন মডেন নির্ধারণ করুন",
"Set Voice": "কন্ঠস্বর নির্ধারণ করুন",
@ -365,6 +387,7 @@
"Sign Out": "সাইন আউট",
"Sign up": "সাইন আপ",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
"SpeechRecognition API is not supported in this browser.": "এই ব্রাউজার স্পিচরিকগনিশন এপিআই সাপোর্ট করে না।",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "পাসওয়ার্ড আপডেট করুন",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন",
"Upload files": "ফাইলগুলো আপলোড করুন",
"Upload Progress": "আপলোড হচ্ছে",
@ -431,6 +450,7 @@
"Version": "ভার্সন",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "ওয়েব",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI এড-অনসমূহ",
"WebUI Settings": "WebUI সেটিংসমূহ",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "একটি প্রম্পট সাজেশন লিখুন (যেমন Who are you?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "৫০ শব্দের মধ্যে [topic or keyword] এর একটি সারসংক্ষেপ লিখুন।",
"You": "আপনি",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "আপনি একজন উপকারী এসিস্ট্যান্ট",
"You're now logged in.": "আপনি এখন লগইন করা অবস্থায় আছেন",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Ja tens un compte?",
"an assistant": "un assistent",
"and": "i",
"and create a new shared link.": "",
"API Base URL": "URL Base de l'API",
"API Key": "Clau de l'API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "disponible!",
"Back": "Enrere",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Mode Constructor",
"Bypass SSL verification for Websites": "",
"Cancel": "Cancel·la",
"Categories": "Categories",
"Change Password": "Canvia la Contrasenya",
@ -70,7 +73,9 @@
"Chunk Overlap": "Solapament de Blocs",
"Chunk Params": "Paràmetres de Blocs",
"Chunk Size": "Mida del Bloc",
"Citation": "",
"Click here for help.": "Fes clic aquí per ajuda.",
"Click here to": "",
"Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.",
"Click here to select": "Fes clic aquí per seleccionar",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa de 3-5 paraules com a capçalera per a la següent consulta, seguint estrictament el límit de 3-5 paraules i evitant l'ús de la paraula 'títol':",
"Create a modelfile": "Crea un fitxer de model",
"Create Account": "Crea un Compte",
"Create new key": "",
"Create new secret key": "",
"Created at": "Creat el",
"Created At": "",
"Current Model": "Model Actual",
@ -105,6 +112,7 @@
"Custom": "Personalitzat",
"Customize Ollama models for a specific purpose": "Personalitza els models Ollama per a un propòsit específic",
"Dark": "Fosc",
"Dashboard": "",
"Database": "Base de Dades",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Per defecte",
@ -120,6 +128,7 @@
"Delete chat": "Esborra xat",
"Delete Chat": "",
"Delete Chats": "Esborra Xats",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Esborrat {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Edita Document",
"Edit User": "Edita Usuari",
"Email": "Correu electrònic",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Activa Historial de Xat",
@ -167,6 +177,7 @@
"Enter stop sequence": "Introdueix la seqüència de parada",
"Enter Top K": "Introdueix Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix l'URL (p. ex. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Introdueix el Teu Correu Electrònic",
"Enter Your Full Name": "Introdueix el Teu Nom Complet",
"Enter Your Password": "Introdueix la Teva Contrasenya",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Gestiona Models Ollama",
"Max Tokens": "Màxim de Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es poden descarregar un màxim de 3 models simultàniament. Si us plau, prova-ho més tard.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Eta de Mirostat",
@ -258,6 +270,8 @@
"Name your modelfile": "Nomena el teu fitxer de model",
"New Chat": "Xat Nou",
"New Password": "Nova Contrasenya",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "No estàs segur del que afegir?",
"Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "o",
"Other": "",
"Overview": "",
"Parameters": "Paràmetres",
"Password": "Contrasenya",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Contingut del Prompt",
"Prompt suggestions": "Suggeriments de Prompt",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Treu un model d'Ollama.com",
"Pull Progress": "Progrés de Tracció",
"Query Params": "Paràmetres de Consulta",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Notes de la Versió",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repeteix Últim N",
"Repeat Penalty": "Penalització de Repetició",
"Request Mode": "Mode de Sol·licitud",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Reinicia l'Emmagatzematge de Vectors",
"Response AutoCopy to Clipboard": "Resposta AutoCopiar al Portapapers",
"Retrieval Augmented Generation Settings": "",
"Role": "Rol",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Albada Rosé Pine",
@ -346,7 +366,9 @@
"Server connection verified": "Connexió al servidor verificada",
"Set as default": "Estableix com a predeterminat",
"Set Default Model": "Estableix Model Predeterminat",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Estableix Mida de la Imatge",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Estableix Passos",
"Set Title Auto-Generation Model": "Estableix Model d'Auto-Generació de Títol",
"Set Voice": "Estableix Veu",
@ -365,6 +387,7 @@
"Sign Out": "Tanca sessió",
"Sign up": "Registra't",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
"Speech-to-Text Engine": "Motor de Veu a Text",
"SpeechRecognition API is not supported in this browser.": "L'API de Reconèixer Veu no és compatible amb aquest navegador.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "Uf! Hi va haver un problema connectant-se a {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipus d'Arxiu Desconegut '{{file_type}}', però acceptant i tractant com a text pla",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Actualitza contrasenya",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Puja un model GGUF",
"Upload files": "Puja arxius",
"Upload Progress": "Progrés de Càrrega",
@ -431,6 +450,7 @@
"Version": "Versió",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Complements de WebUI",
"WebUI Settings": "Configuració de WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Escriu una suggerència de prompt (p. ex. Qui ets tu?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].",
"You": "Tu",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Ets un assistent útil.",
"You're now logged in.": "Ara estàs connectat.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Hast du vielleicht schon ein Account?",
"an assistant": "ein Assistent",
"and": "und",
"and create a new shared link.": "und einen neuen geteilten Link zu erstellen.",
"API Base URL": "API Basis URL",
"API Key": "API Key",
"API Key created.": "API Key erstellt",
@ -54,8 +55,10 @@
"available!": "verfügbar!",
"Back": "Zurück",
"Bad Response": "Schlechte Antwort",
"before": "",
"Being lazy": "Faul sein",
"Builder Mode": "Builder Modus",
"Bypass SSL verification for Websites": "",
"Cancel": "Abbrechen",
"Categories": "Kategorien",
"Change Password": "Passwort ändern",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Parameter",
"Chunk Size": "Chunk Size",
"Citation": "",
"Click here for help.": "Klicke hier für Hilfe.",
"Click here to": "Klicke hier, um",
"Click here to check other modelfiles.": "Klicke hier, um andere Modelfiles zu überprüfen.",
"Click here to select": "Klicke hier um auszuwählen",
"Click here to select a csv file.": "",
@ -93,11 +98,13 @@
"Copy": "Kopieren",
"Copy last code block": "Letzten Codeblock kopieren",
"Copy last response": "Letzte Antwort kopieren",
"Copy Link": "kopiere Link",
"Copy Link": "Link kopieren",
"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Erstelle einen prägnanten Satz mit 3-5 Wörtern als Überschrift für die folgende Abfrage. Halte dich dabei strikt an die 3-5-Wort-Grenze und vermeide die Verwendung des Wortes Titel:",
"Create a modelfile": "Modelfiles erstellen",
"Create Account": "Konto erstellen",
"Create new key": "Neuen Schlüssel erstellen",
"Create new secret key": "Neuen API Schlüssel erstellen",
"Created at": "Erstellt am",
"Created At": "Erstellt am",
"Current Model": "Aktuelles Modell",
@ -105,6 +112,7 @@
"Custom": "Benutzerdefiniert",
"Customize Ollama models for a specific purpose": "Ollama-Modelle für einen bestimmten Zweck anpassen",
"Dark": "Dunkel",
"Dashboard": "",
"Database": "Datenbank",
"DD/MM/YYYY HH:mm": "DD.MM.YYYY HH:mm",
"Default": "Standard",
@ -120,6 +128,7 @@
"Delete chat": "Chat löschen",
"Delete Chat": "Chat löschen",
"Delete Chats": "Chats löschen",
"delete this link": "diesen Link zu löschen",
"Delete User": "Benutzer löschen",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gelöscht",
"Deleted {{tagName}}": "{{tagName}} gelöscht",
@ -146,8 +155,9 @@
"Edit Doc": "Dokument bearbeiten",
"Edit User": "Benutzer bearbeiten",
"Email": "E-Mail",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "Das Embedding Modell wurde auf \"{{embedding_model}}\" gesetzt",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Chat-Verlauf aktivieren",
"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
"Enabled": "Aktiviert",
@ -167,6 +177,7 @@
"Enter stop sequence": "Stop-Sequenz eingeben",
"Enter Top K": "Gib Top K ein",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Gib die URL ein (z.B. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "Gib die URL ein (z.B. http://localhost:11434)",
"Enter Your Email": "Gib deine E-Mail-Adresse ein",
"Enter Your Full Name": "Gib deinen vollständigen Namen ein",
"Enter Your Password": "Gib dein Passwort ein",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Ollama-Modelle verwalten",
"Max Tokens": "Maximale Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es können maximal 3 Modelle gleichzeitig heruntergeladen werden. Bitte versuche es später erneut.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "Fortlaudende Nachrichten in diesem Chat werden nicht automatisch geteilt. Benutzer mit dem Link können den Chat einsehen.",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Benenne dein modelfile",
"New Chat": "Neuer Chat",
"New Password": "Neues Passwort",
"No results found": "Keine Ergebnisse gefunden",
"No source available": "",
"Not factually correct": "Nicht sachlich korrekt.",
"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
"Not sure what to write? Switch to": "Nicht sicher, was Du schreiben sollst? Wechsel zu",
@ -265,7 +279,7 @@
"Notifications": "Desktop-Benachrichtigungen",
"Off": "Aus",
"Okay, Let's Go!": "Okay, los geht's!",
"OLED Dark": "",
"OLED Dark": "OLED Dunkel",
"Ollama": "",
"Ollama Base URL": "Ollama Basis URL",
"Ollama Version": "Ollama-Version",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "OpenAI URL/Key erforderlich.",
"or": "oder",
"Other": "Andere",
"Overview": "Übersicht",
"Parameters": "Parameter",
"Password": "Passwort",
"PDF document (.pdf)": "PDF-Dokument (.pdf)",
@ -293,13 +308,14 @@
"pending": "ausstehend",
"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
"Plain text (.txt)": "Nur Text (.txt)",
"Playground": "Spielplatz",
"Playground": "Testumgebung",
"Positive attitude": "Positive Einstellung",
"Profile Image": "Profilbild",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (z.B. Erzähle mir eine interessante Tatsache über das Römische Reich.",
"Prompt Content": "Prompt-Inhalt",
"Prompt suggestions": "Prompt-Vorschläge",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "\"{{searchValue}}\" von Ollama.com herunterladen",
"Pull a model from Ollama.com": "Ein Modell von Ollama.com abrufen",
"Pull Progress": "Fortschritt abrufen",
"Query Params": "Query Parameter",
@ -312,13 +328,17 @@
"Regenerate": "Neu generieren",
"Release Notes": "Versionshinweise",
"Remove": "Entfernen",
"Remove Model": "Modell entfernen",
"Rename": "Umbenennen",
"Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty",
"Request Mode": "Request-Modus",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Vektorspeicher zurücksetzen",
"Response AutoCopy to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
"Retrieval Augmented Generation Settings": "",
"Role": "Rolle",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -331,7 +351,7 @@
"Scan complete!": "Scan abgeschlossen!",
"Scan for documents from {{path}}": "Dokumente von {{path}} scannen",
"Search": "Suchen",
"Search a model": "Ein Modell suchen",
"Search a model": "Nach einem Modell suchen",
"Search Documents": "Dokumente suchen",
"Search Prompts": "Prompts suchen",
"See readme.md for instructions": "Anleitung in readme.md anzeigen",
@ -346,7 +366,9 @@
"Server connection verified": "Serververbindung überprüft",
"Set as default": "Als Standard festlegen",
"Set Default Model": "Standardmodell festlegen",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Bildgröße festlegen",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Schritte festlegen",
"Set Title Auto-Generation Model": "Modell für automatische Titelgenerierung festlegen",
"Set Voice": "Stimme festlegen",
@ -365,6 +387,7 @@
"Sign Out": "Abmelden",
"Sign up": "Registrieren",
"Signing in": "Anmeldung",
"Source": "",
"Speech recognition error: {{error}}": "Spracherkennungsfehler: {{error}}",
"Speech-to-Text Engine": "Sprache-zu-Text-Engine",
"SpeechRecognition API is not supported in this browser.": "Die Spracherkennungs-API wird in diesem Browser nicht unterstützt.",
@ -409,18 +432,14 @@
"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.",
"Update and Copy Link": "Erneuern und kopieren",
"Update Embedding Model": "Embedding Modell aktualisieren",
"Update embedding model (e.g. {{model}})": "Embedding Modell aktualisieren (z.B. {{model}})",
"Update password": "Passwort aktualisieren",
"Update Reranking Model": "Reranking Model aktualisieren",
"Update reranking model (e.g. {{model}})": "Reranking Model aktualisieren (z.B. {{model}})",
"Upload a GGUF model": "GGUF Model hochladen",
"Upload files": "Dateien hochladen",
"Upload Progress": "Upload Progress",
"URL Mode": "URL Modus",
"Use '#' in the prompt input to load and select your documents.": "Verwende '#' in der Prompt-Eingabe, um deine Dokumente zu laden und auszuwählen.",
"Use Gravatar": "verwende Gravatar ",
"Use Initials": "verwende Initialen",
"Use Gravatar": "Gravatar verwenden",
"Use Initials": "Initialen verwenden",
"user": "Benutzer",
"User Permissions": "Benutzerberechtigungen",
"Users": "Benutzer",
@ -431,6 +450,7 @@
"Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI-Add-Ons",
"WebUI Settings": "WebUI-Einstellungen",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Gebe einen Prompt-Vorschlag ein (z.B. Wer bist du?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
"You": "Du",
"You have no archived conversations.": "Du hast keine archivierten Unterhaltungen.",
"You have shared this chat": "Du hast diesen Chat",
"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
"You're now logged in.": "Du bist nun eingeloggt.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Such account exists?",
"an assistant": "such assistant",
"and": "and",
"and create a new shared link.": "",
"API Base URL": "API Base URL",
"API Key": "API Key",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "available! So excite!",
"Back": "Back",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Builder Mode",
"Bypass SSL verification for Websites": "",
"Cancel": "Cancel",
"Categories": "Categories",
"Change Password": "Change Password",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Params",
"Chunk Size": "Chunk Size",
"Citation": "",
"Click here for help.": "Click for help. Much assist.",
"Click here to": "",
"Click here to check other modelfiles.": "Click to check other modelfiles.",
"Click here to select": "Click to select",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Create short phrase, 3-5 word, as header for query, much strict, avoid 'title':",
"Create a modelfile": "Create modelfile",
"Create Account": "Create Account",
"Create new key": "",
"Create new secret key": "",
"Created at": "Created at",
"Created At": "",
"Current Model": "Current Model",
@ -105,6 +112,7 @@
"Custom": "Custom",
"Customize Ollama models for a specific purpose": "Customize Ollama models for purpose",
"Dark": "Dark",
"Dashboard": "",
"Database": "Database",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Default",
@ -120,6 +128,7 @@
"Delete chat": "Delete chat",
"Delete Chat": "",
"Delete Chats": "Delete Chats",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Deleted {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Edit Doge",
"Edit User": "Edit Wowser",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Activate Chat Story",
@ -167,6 +177,7 @@
"Enter stop sequence": "Enter stop bark",
"Enter Top K": "Enter Top Wow",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Enter URL (e.g. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Enter Your Dogemail",
"Enter Your Full Name": "Enter Your Full Wow",
"Enter Your Password": "Enter Your Barkword",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Manage Ollama Wowdels",
"Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximum of 3 models can be downloaded simultaneously. Please try again later.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Name your modelfile",
"New Chat": "New Bark",
"New Password": "New Barkword",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Not sure what to add?",
"Not sure what to write? Switch to": "Not sure what to write? Switch to",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "or",
"Other": "",
"Overview": "",
"Parameters": "Parametos",
"Password": "Barkword",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Prompt Content",
"Prompt suggestions": "Prompt wowgestions",
"Prompts": "Promptos",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Pull a wowdel from Ollama.com",
"Pull Progress": "Pull Progress",
"Query Params": "Query Bark",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Release Borks",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty",
"Request Mode": "Request Bark",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Reset Vector Storage",
"Response AutoCopy to Clipboard": "Copy Bark Auto Bark",
"Retrieval Augmented Generation Settings": "",
"Role": "Role",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Server connection verified much secure",
"Set as default": "Set as default very default",
"Set Default Model": "Set Default Model much model",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Set Image Size very size",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Set Steps so many steps",
"Set Title Auto-Generation Model": "Set Title Auto-Generation Model very auto-generate",
"Set Voice": "Set Voice so speak",
@ -365,6 +387,7 @@
"Sign Out": "Sign Out much logout",
"Sign up": "Sign up much join",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Speech recognition error: {{error}} so error",
"Speech-to-Text Engine": "Speech-to-Text Engine much speak",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser. Much sad.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Update password much change",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Upload a GGUF model very upload",
"Upload files": "Upload files very upload",
"Upload Progress": "Upload Progress much progress",
@ -431,6 +450,7 @@
"Version": "Version much version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web very web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI Add-ons very add-ons",
"WebUI Settings": "WebUI Settings much settings",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Write a prompt suggestion (e.g. Who are you?) much suggest",
"Write a summary in 50 words that summarizes [topic or keyword].": "Write a summary in 50 words that summarizes [topic or keyword]. Much summarize.",
"You": "You very you",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "You're a helpful assistant. Much helpful.",
"You're now logged in.": "You're now logged in. Much logged.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "",
"an assistant": "",
"and": "",
"and create a new shared link.": "",
"API Base URL": "",
"API Key": "",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "",
"Back": "",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "",
"Bypass SSL verification for Websites": "",
"Cancel": "",
"Categories": "",
"Change Password": "",
@ -70,7 +73,9 @@
"Chunk Overlap": "",
"Chunk Params": "",
"Chunk Size": "",
"Citation": "",
"Click here for help.": "",
"Click here to": "",
"Click here to check other modelfiles.": "",
"Click here to select": "",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
"Create a modelfile": "",
"Create Account": "",
"Create new key": "",
"Create new secret key": "",
"Created at": "",
"Created At": "",
"Current Model": "",
@ -105,6 +112,7 @@
"Custom": "",
"Customize Ollama models for a specific purpose": "",
"Dark": "",
"Dashboard": "",
"Database": "",
"DD/MM/YYYY HH:mm": "",
"Default": "",
@ -120,6 +128,7 @@
"Delete chat": "",
"Delete Chat": "",
"Delete Chats": "",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "",
"Edit User": "",
"Email": "",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "",
@ -167,6 +177,7 @@
"Enter stop sequence": "",
"Enter Top K": "",
"Enter URL (e.g. http://127.0.0.1:7860/)": "",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "",
"Enter Your Full Name": "",
"Enter Your Password": "",
@ -228,6 +239,7 @@
"Manage Ollama Models": "",
"Max Tokens": "",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "",
"Mirostat Eta": "",
@ -258,6 +270,8 @@
"Name your modelfile": "",
"New Chat": "",
"New Password": "",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "",
"Not sure what to write? Switch to": "",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "",
"Other": "",
"Overview": "",
"Parameters": "",
"Password": "",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "",
"Prompt suggestions": "",
"Prompts": "",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "",
"Pull Progress": "",
"Query Params": "",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "",
"Repeat Penalty": "",
"Request Mode": "",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "",
"Response AutoCopy to Clipboard": "",
"Retrieval Augmented Generation Settings": "",
"Role": "",
"Rosé Pine": "",
"Rosé Pine Dawn": "",
@ -346,7 +366,9 @@
"Server connection verified": "",
"Set as default": "",
"Set Default Model": "",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "",
"Set Title Auto-Generation Model": "",
"Set Voice": "",
@ -365,6 +387,7 @@
"Sign Out": "",
"Sign up": "",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "",
"Speech-to-Text Engine": "",
"SpeechRecognition API is not supported in this browser.": "",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "",
"Upload files": "",
"Upload Progress": "",
@ -431,6 +450,7 @@
"Version": "",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "",
"WebUI Settings": "",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "",
"Write a summary in 50 words that summarizes [topic or keyword].": "",
"You": "",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "",
"You're now logged in.": "",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "",
"an assistant": "",
"and": "",
"and create a new shared link.": "",
"API Base URL": "",
"API Key": "",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "",
"Back": "",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "",
"Bypass SSL verification for Websites": "",
"Cancel": "",
"Categories": "",
"Change Password": "",
@ -70,7 +73,9 @@
"Chunk Overlap": "",
"Chunk Params": "",
"Chunk Size": "",
"Citation": "",
"Click here for help.": "",
"Click here to": "",
"Click here to check other modelfiles.": "",
"Click here to select": "",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
"Create a modelfile": "",
"Create Account": "",
"Create new key": "",
"Create new secret key": "",
"Created at": "",
"Created At": "",
"Current Model": "",
@ -105,6 +112,7 @@
"Custom": "",
"Customize Ollama models for a specific purpose": "",
"Dark": "",
"Dashboard": "",
"Database": "",
"DD/MM/YYYY HH:mm": "",
"Default": "",
@ -120,6 +128,7 @@
"Delete chat": "",
"Delete Chat": "",
"Delete Chats": "",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "",
"Edit User": "",
"Email": "",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "",
@ -167,6 +177,7 @@
"Enter stop sequence": "",
"Enter Top K": "",
"Enter URL (e.g. http://127.0.0.1:7860/)": "",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "",
"Enter Your Full Name": "",
"Enter Your Password": "",
@ -228,6 +239,7 @@
"Manage Ollama Models": "",
"Max Tokens": "",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "",
"Mirostat Eta": "",
@ -258,6 +270,8 @@
"Name your modelfile": "",
"New Chat": "",
"New Password": "",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "",
"Not sure what to write? Switch to": "",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "",
"Other": "",
"Overview": "",
"Parameters": "",
"Password": "",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "",
"Prompt suggestions": "",
"Prompts": "",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "",
"Pull Progress": "",
"Query Params": "",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "",
"Repeat Penalty": "",
"Request Mode": "",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "",
"Response AutoCopy to Clipboard": "",
"Retrieval Augmented Generation Settings": "",
"Role": "",
"Rosé Pine": "",
"Rosé Pine Dawn": "",
@ -346,7 +366,9 @@
"Server connection verified": "",
"Set as default": "",
"Set Default Model": "",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "",
"Set Title Auto-Generation Model": "",
"Set Voice": "",
@ -365,6 +387,7 @@
"Sign Out": "",
"Sign up": "",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "",
"Speech-to-Text Engine": "",
"SpeechRecognition API is not supported in this browser.": "",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "",
"Upload files": "",
"Upload Progress": "",
@ -431,6 +450,7 @@
"Version": "",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "",
"WebUI Settings": "",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "",
"Write a summary in 50 words that summarizes [topic or keyword].": "",
"You": "",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "",
"You're now logged in.": "",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "¿Ya tienes una cuenta?",
"an assistant": "un asistente",
"and": "y",
"and create a new shared link.": "",
"API Base URL": "Dirección URL de la API",
"API Key": "Clave de la API ",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "¡disponible!",
"Back": "Volver",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Modo de Constructor",
"Bypass SSL verification for Websites": "",
"Cancel": "Cancelar",
"Categories": "Categorías",
"Change Password": "Cambia la Contraseña",
@ -70,7 +73,9 @@
"Chunk Overlap": "Superposición de fragmentos",
"Chunk Params": "Parámetros de fragmentos",
"Chunk Size": "Tamaño de fragmentos",
"Citation": "",
"Click here for help.": "Presiona aquí para obtener ayuda.",
"Click here to": "",
"Click here to check other modelfiles.": "Presiona aquí para consultar otros modelfiles.",
"Click here to select": "Presiona aquí para seleccionar",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Cree una frase concisa de 3 a 5 palabras como encabezado para la siguiente consulta, respetando estrictamente el límite de 3 a 5 palabras y evitando el uso de la palabra 'título':",
"Create a modelfile": "Crea un modelfile",
"Create Account": "Crear una cuenta",
"Create new key": "",
"Create new secret key": "",
"Created at": "Creado en",
"Created At": "",
"Current Model": "Modelo Actual",
@ -105,6 +112,7 @@
"Custom": "Personalizado",
"Customize Ollama models for a specific purpose": "Personaliza los modelos de Ollama para un propósito específico",
"Dark": "Oscuro",
"Dashboard": "",
"Database": "Base de datos",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Por defecto",
@ -120,6 +128,7 @@
"Delete chat": "Borrar chat",
"Delete Chat": "",
"Delete Chats": "Borrar Chats",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Se borró {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Editar Documento",
"Edit User": "Editar Usuario",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Activa el Historial de Chat",
@ -167,6 +177,7 @@
"Enter stop sequence": "Ingrese la secuencia de parada",
"Enter Top K": "Ingrese el Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Ingrese la URL (p.ej., http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Ingrese su correo electrónico",
"Enter Your Full Name": "Ingrese su nombre completo",
"Enter Your Password": "Ingrese su contraseña",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Administrar Modelos Ollama",
"Max Tokens": "Máximo de Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Se pueden descargar un máximo de 3 modelos simultáneamente. Por favor, inténtelo de nuevo más tarde.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Nombra tu modelfile",
"New Chat": "Nuevo Chat",
"New Password": "Nueva Contraseña",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "¿No sabes qué añadir?",
"Not sure what to write? Switch to": "¿No sabes qué escribir? Cambia a",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "o",
"Other": "",
"Overview": "",
"Parameters": "Parámetros",
"Password": "Contraseña",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Contenido del Prompt",
"Prompt suggestions": "Sugerencias de Prompts",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Obtener un modelo de Ollama.com",
"Pull Progress": "Progreso de extracción",
"Query Params": "Parámetros de consulta",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Notas de la versión",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repetir las últimas N",
"Repeat Penalty": "Penalidad de repetición",
"Request Mode": "Modo de petición",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Restablecer almacenamiento vectorial",
"Response AutoCopy to Clipboard": "Copiar respuesta automáticamente al portapapeles",
"Retrieval Augmented Generation Settings": "",
"Role": "Rol",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Conexión del servidor verificada",
"Set as default": "Establecer por defecto",
"Set Default Model": "Establecer modelo predeterminado",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Establecer tamaño de imagen",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Establecer Pasos",
"Set Title Auto-Generation Model": "Establecer modelo de generación automática de títulos",
"Set Voice": "Establecer la voz",
@ -365,6 +387,7 @@
"Sign Out": "Cerrar sesión",
"Sign up": "Crear una cuenta",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}",
"Speech-to-Text Engine": "Motor de voz a texto",
"SpeechRecognition API is not supported in this browser.": "La API SpeechRecognition no es compatible con este navegador.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Actualizar contraseña",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Subir un modelo GGUF",
"Upload files": "Subir archivos",
"Upload Progress": "Progreso de carga",
@ -431,6 +450,7 @@
"Version": "Versión",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI Add-ons",
"WebUI Settings": "Configuración del WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Escribe una sugerencia para un prompt (por ejemplo, ¿quién eres?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Escribe un resumen en 50 palabras que resuma [tema o palabra clave].",
"You": "Usted",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Eres un asistente útil.",
"You're now logged in.": "Has iniciado sesión.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "از قبل حساب کاربری دارید؟",
"an assistant": "یک دستیار",
"and": "و",
"and create a new shared link.": "",
"API Base URL": "API Base URL",
"API Key": "API Key",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "در دسترس!",
"Back": "بازگشت",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "حالت سازنده",
"Bypass SSL verification for Websites": "",
"Cancel": "لغو",
"Categories": "دسته\u200cبندی\u200cها",
"Change Password": "تغییر رمز عبور",
@ -70,7 +73,9 @@
"Chunk Overlap": "همپوشانی تکه",
"Chunk Params": "پارامترهای تکه",
"Chunk Size": "اندازه تکه",
"Citation": "",
"Click here for help.": "برای کمک اینجا را کلیک کنید.",
"Click here to": "",
"Click here to check other modelfiles.": "برای بررسی سایر فایل\u200cهای مدل اینجا را کلیک کنید.",
"Click here to select": "برای انتخاب اینجا کلیک کنید",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "یک عبارت مختصر و ۳ تا ۵ کلمه ای را به عنوان سرفصل برای پرس و جو زیر ایجاد کنید، به شدت محدودیت ۳-۵ کلمه را رعایت کنید و از استفاده از کلمه 'عنوان' خودداری کنید:",
"Create a modelfile": "ایجاد یک فایل مدل",
"Create Account": "ساخت حساب کاربری",
"Create new key": "",
"Create new secret key": "",
"Created at": "ایجاد شده در",
"Created At": "",
"Current Model": "مدل فعلی",
@ -105,6 +112,7 @@
"Custom": "دلخواه",
"Customize Ollama models for a specific purpose": "مدل های اولاما را برای یک هدف خاص سفارشی کنید",
"Dark": "تیره",
"Dashboard": "",
"Database": "پایگاه داده",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "پیشفرض",
@ -120,6 +128,7 @@
"Delete chat": "حذف گپ",
"Delete Chat": "",
"Delete Chats": "حذف گپ\u200cها",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} پاک شد",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "ویرایش سند",
"Edit User": "ویرایش کاربر",
"Email": "ایمیل",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "تاریخچه چت را فعال کنید",
@ -167,6 +177,7 @@
"Enter stop sequence": "توالی توقف را وارد کنید",
"Enter Top K": "مقدار Top K را وارد کنید",
"Enter URL (e.g. http://127.0.0.1:7860/)": "مقدار URL را وارد کنید (مثال http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "ایمیل خود را وارد کنید",
"Enter Your Full Name": "نام کامل خود را وارد کنید",
"Enter Your Password": "رمز عبور خود را وارد کنید",
@ -228,6 +239,7 @@
"Manage Ollama Models": "مدیریت مدل\u200cهای اولاما",
"Max Tokens": "حداکثر توکن",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "حداکثر 3 مدل را می توان به طور همزمان دانلود کرد. لطفاً بعداً دوباره امتحان کنید.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "فایل مدل را نام\u200cگذاری کنید",
"New Chat": "گپ جدید",
"New Password": "رمز عبور جدید",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "مطمئن نیستید چه چیزی را اضافه کنید؟",
"Not sure what to write? Switch to": "مطمئن نیستید چه بنویسید؟ تغییر به",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "روشن",
"Other": "",
"Overview": "",
"Parameters": "پارامترها",
"Password": "رمز عبور",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "محتویات پرامپت",
"Prompt suggestions": "پیشنهادات پرامپت",
"Prompts": "پرامپت\u200cها",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com",
"Pull Progress": "پیشرفت دریافت",
"Query Params": "پارامترهای پرس و جو",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "یادداشت\u200cهای انتشار",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty",
"Request Mode": "حالت درخواست",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "بازنشانی ذخیره سازی برداری",
"Response AutoCopy to Clipboard": "کپی خودکار پاسخ به کلیپ بورد",
"Retrieval Augmented Generation Settings": "",
"Role": "نقش",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "اتصال سرور تأیید شد",
"Set as default": "تنظیم به عنوان پیشفرض",
"Set Default Model": "تنظیم مدل پیش فرض",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "تنظیم اندازه تصویر",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "تنظیم گام\u200cها",
"Set Title Auto-Generation Model": "تنظیم مدل تولید خودکار عنوان",
"Set Voice": "تنظیم صدا",
@ -365,6 +387,7 @@
"Sign Out": "خروج",
"Sign up": "ثبت نام",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}",
"Speech-to-Text Engine": "موتور گفتار به متن",
"SpeechRecognition API is not supported in this browser.": "API تشخیص گفتار در این مرورگر پشتیبانی نمی شود.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "اوه اوه! مشکلی در اتصال به {{provider}} وجود داشت.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع فایل '{{file_type}}' ناشناخته است، به عنوان یک فایل متنی ساده با آن برخورد می شود.",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "به روزرسانی رمزعبور",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "آپلود یک مدل GGUF",
"Upload files": "بارگذاری فایل\u200cها",
"Upload Progress": "پیشرفت آپلود",
@ -431,6 +450,7 @@
"Version": "نسخه",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "وب",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI افزونه\u200cهای",
"WebUI Settings": "تنظیمات WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "یک پیشنهاد پرامپت بنویسید (مثلاً شما کی هستید؟)",
"Write a summary in 50 words that summarizes [topic or keyword].": "خلاصه ای در 50 کلمه بنویسید که [موضوع یا کلمه کلیدی] را خلاصه کند.",
"You": "شما",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "تو یک دستیار سودمند هستی.",
"You're now logged in.": "شما اکنون وارد شده\u200cاید.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Vous avez déjà un compte ?",
"an assistant": "un assistant",
"and": "et",
"and create a new shared link.": "",
"API Base URL": "URL de base de l'API",
"API Key": "Clé API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "disponible !",
"Back": "Retour",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Mode Constructeur",
"Bypass SSL verification for Websites": "",
"Cancel": "Annuler",
"Categories": "Catégories",
"Change Password": "Changer le mot de passe",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chevauchement de bloc",
"Chunk Params": "Paramètres de bloc",
"Chunk Size": "Taille de bloc",
"Citation": "",
"Click here for help.": "Cliquez ici pour de l'aide.",
"Click here to": "",
"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
"Click here to select": "Cliquez ici pour sélectionner",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3 à 5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3 à 5 mots et en évitant l'utilisation du mot 'titre' :",
"Create a modelfile": "Créer un fichier de modèle",
"Create Account": "Créer un compte",
"Create new key": "",
"Create new secret key": "",
"Created at": "Créé le",
"Created At": "",
"Current Model": "Modèle actuel",
@ -105,6 +112,7 @@
"Custom": "Personnalisé",
"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
"Dark": "Sombre",
"Dashboard": "",
"Database": "Base de données",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Par défaut",
@ -120,6 +128,7 @@
"Delete chat": "Supprimer la discussion",
"Delete Chat": "",
"Delete Chats": "Supprimer les discussions",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Éditer le document",
"Edit User": "Éditer l'utilisateur",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Activer l'historique des discussions",
@ -167,6 +177,7 @@
"Enter stop sequence": "Entrez la séquence de fin",
"Enter Top K": "Entrez Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Entrez votre adresse email",
"Enter Your Full Name": "Entrez votre nom complet",
"Enter Your Password": "Entrez votre mot de passe",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Gérer les modèles Ollama",
"Max Tokens": "Tokens maximaux",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Nommez votre fichier de modèle",
"New Chat": "Nouvelle discussion",
"New Password": "Nouveau mot de passe",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Pas sûr de quoi ajouter ?",
"Not sure what to write? Switch to": "Pas sûr de quoi écrire ? Changez pour",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "ou",
"Other": "",
"Overview": "",
"Parameters": "Paramètres",
"Password": "Mot de passe",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Contenu du prompt",
"Prompt suggestions": "Suggestions de prompt",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
"Pull Progress": "Progression du téléchargement",
"Query Params": "Paramètres de requête",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Notes de version",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Répéter les N derniers",
"Repeat Penalty": "Pénalité de répétition",
"Request Mode": "Mode de requête",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Réinitialiser le stockage vectoriel",
"Response AutoCopy to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
"Retrieval Augmented Generation Settings": "",
"Role": "Rôle",
"Rosé Pine": "Pin Rosé",
"Rosé Pine Dawn": "Aube Pin Rosé",
@ -346,7 +366,9 @@
"Server connection verified": "Connexion au serveur vérifiée",
"Set as default": "Définir par défaut",
"Set Default Model": "Définir le modèle par défaut",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Définir la taille de l'image",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Définir les étapes",
"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
"Set Voice": "Définir la voix",
@ -365,6 +387,7 @@
"Sign Out": "Se déconnecter",
"Sign up": "S'inscrire",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
"Speech-to-Text Engine": "Moteur reconnaissance vocale",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Mettre à jour le mot de passe",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Téléverser un modèle GGUF",
"Upload files": "Téléverser des fichiers",
"Upload Progress": "Progression du Téléversement",
@ -431,6 +450,7 @@
"Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Add-ons WebUI",
"WebUI Settings": "Paramètres WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Rédigez une suggestion de prompt (p. ex. Qui êtes-vous ?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Rédigez un résumé en 50 mots qui résume [sujet ou mot-clé].",
"You": "You",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Vous êtes un assistant utile",
"You're now logged in.": "Vous êtes maintenant connecté.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Vous avez déjà un compte ?",
"an assistant": "un assistant",
"and": "et",
"and create a new shared link.": "",
"API Base URL": "URL de base de l'API",
"API Key": "Clé API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "disponible !",
"Back": "Retour",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Mode Constructeur",
"Bypass SSL verification for Websites": "",
"Cancel": "Annuler",
"Categories": "Catégories",
"Change Password": "Changer le mot de passe",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chevauchement de bloc",
"Chunk Params": "Paramètres de bloc",
"Chunk Size": "Taille de bloc",
"Citation": "",
"Click here for help.": "Cliquez ici pour de l'aide.",
"Click here to": "",
"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
"Click here to select": "Cliquez ici pour sélectionner",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3-5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3-5 mots et en évitant l'utilisation du mot 'titre' :",
"Create a modelfile": "Créer un fichier de modèle",
"Create Account": "Créer un compte",
"Create new key": "",
"Create new secret key": "",
"Created at": "Créé le",
"Created At": "",
"Current Model": "Modèle actuel",
@ -105,6 +112,7 @@
"Custom": "Personnalisé",
"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
"Dark": "Sombre",
"Dashboard": "",
"Database": "Base de données",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Par défaut",
@ -120,6 +128,7 @@
"Delete chat": "Supprimer le chat",
"Delete Chat": "",
"Delete Chats": "Supprimer les chats",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Éditer le document",
"Edit User": "Éditer l'utilisateur",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Activer l'historique du chat",
@ -167,6 +177,7 @@
"Enter stop sequence": "Entrez la séquence de fin",
"Enter Top K": "Entrez Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Entrez votre email",
"Enter Your Full Name": "Entrez votre nom complet",
"Enter Your Password": "Entrez votre mot de passe",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Gérer les modèles Ollama",
"Max Tokens": "Tokens maximaux",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Nommez votre fichier de modèle",
"New Chat": "Nouveau chat",
"New Password": "Nouveau mot de passe",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Vous ne savez pas quoi ajouter ?",
"Not sure what to write? Switch to": "Vous ne savez pas quoi écrire ? Basculer vers",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "ou",
"Other": "",
"Overview": "",
"Parameters": "Paramètres",
"Password": "Mot de passe",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Contenu du prompt",
"Prompt suggestions": "Suggestions de prompt",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
"Pull Progress": "Progression du tirage",
"Query Params": "Paramètres de requête",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Notes de version",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Répéter les derniers N",
"Repeat Penalty": "Pénalité de répétition",
"Request Mode": "Mode de demande",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Réinitialiser le stockage de vecteur",
"Response AutoCopy to Clipboard": "Copie automatique de la réponse dans le presse-papiers",
"Retrieval Augmented Generation Settings": "",
"Role": "Rôle",
"Rosé Pine": "Pin Rosé",
"Rosé Pine Dawn": "Aube Pin Rosé",
@ -346,7 +366,9 @@
"Server connection verified": "Connexion au serveur vérifiée",
"Set as default": "Définir par défaut",
"Set Default Model": "Définir le modèle par défaut",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Définir la taille de l'image",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Définir les étapes",
"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
"Set Voice": "Définir la voix",
@ -365,6 +387,7 @@
"Sign Out": "Se déconnecter",
"Sign up": "S'inscrire",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
"Speech-to-Text Engine": "Moteur de reconnaissance vocale",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Mettre à jour le mot de passe",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Téléverser un modèle GGUF",
"Upload files": "Téléverser des fichiers",
"Upload Progress": "Progression du Téléversement",
@ -431,6 +450,7 @@
"Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Add-ons WebUI",
"WebUI Settings": "Paramètres WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Écrivez un prompt (e.x. Qui est-tu ?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Ecrivez un résumé en 50 mots [sujet ou mot-clé]",
"You": "You",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Vous êtes un assistant utile",
"You're now logged in.": "Vous êtes maintenant connecté.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Hai già un account?",
"an assistant": "un assistente",
"and": "e",
"and create a new shared link.": "",
"API Base URL": "URL base API",
"API Key": "Chiave API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "disponibile!",
"Back": "Indietro",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Modalità costruttore",
"Bypass SSL verification for Websites": "",
"Cancel": "Annulla",
"Categories": "Categorie",
"Change Password": "Cambia password",
@ -70,7 +73,9 @@
"Chunk Overlap": "Sovrapposizione chunk",
"Chunk Params": "Parametri chunk",
"Chunk Size": "Dimensione chunk",
"Citation": "",
"Click here for help.": "Clicca qui per aiuto.",
"Click here to": "",
"Click here to check other modelfiles.": "Clicca qui per controllare altri file modello.",
"Click here to select": "Clicca qui per selezionare",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa di 3-5 parole come intestazione per la seguente query, aderendo rigorosamente al limite di 3-5 parole ed evitando l'uso della parola 'titolo':",
"Create a modelfile": "Crea un file modello",
"Create Account": "Crea account",
"Create new key": "",
"Create new secret key": "",
"Created at": "Creato il",
"Created At": "",
"Current Model": "Modello corrente",
@ -105,6 +112,7 @@
"Custom": "Personalizzato",
"Customize Ollama models for a specific purpose": "Personalizza i modelli Ollama per uno scopo specifico",
"Dark": "Scuro",
"Dashboard": "",
"Database": "Database",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Predefinito",
@ -120,6 +128,7 @@
"Delete chat": "Elimina chat",
"Delete Chat": "",
"Delete Chats": "Elimina chat",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Eliminato {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Modifica documento",
"Edit User": "Modifica utente",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Abilita cronologia chat",
@ -167,6 +177,7 @@
"Enter stop sequence": "Inserisci la sequenza di arresto",
"Enter Top K": "Inserisci Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Inserisci URL (ad esempio http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Inserisci la tua email",
"Enter Your Full Name": "Inserisci il tuo nome completo",
"Enter Your Password": "Inserisci la tua password",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Gestisci modelli Ollama",
"Max Tokens": "Max token",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "È possibile scaricare un massimo di 3 modelli contemporaneamente. Riprova più tardi.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Assegna un nome al tuo file modello",
"New Chat": "Nuova chat",
"New Password": "Nuova password",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Non sei sicuro di cosa aggiungere?",
"Not sure what to write? Switch to": "Non sei sicuro di cosa scrivere? Passa a",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "o",
"Other": "",
"Overview": "",
"Parameters": "Parametri",
"Password": "Password",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Contenuto del prompt",
"Prompt suggestions": "Suggerimenti prompt",
"Prompts": "Prompt",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Estrai un modello da Ollama.com",
"Pull Progress": "Avanzamento estrazione",
"Query Params": "Parametri query",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Note di rilascio",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Ripeti ultimi N",
"Repeat Penalty": "Penalità di ripetizione",
"Request Mode": "Modalità richiesta",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Reimposta archivio vettoriale",
"Response AutoCopy to Clipboard": "Copia automatica della risposta negli appunti",
"Retrieval Augmented Generation Settings": "",
"Role": "Ruolo",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Connessione al server verificata",
"Set as default": "Imposta come predefinito",
"Set Default Model": "Imposta modello predefinito",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Imposta dimensione immagine",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Imposta passaggi",
"Set Title Auto-Generation Model": "Imposta modello di generazione automatica del titolo",
"Set Voice": "Imposta voce",
@ -365,6 +387,7 @@
"Sign Out": "Esci",
"Sign up": "Registrati",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Errore di riconoscimento vocale: {{error}}",
"Speech-to-Text Engine": "Motore da voce a testo",
"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition non è supportata in questo browser.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Aggiorna password",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Carica un modello GGUF",
"Upload files": "Carica file",
"Upload Progress": "Avanzamento caricamento",
@ -431,6 +450,7 @@
"Version": "Versione",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Componenti aggiuntivi WebUI",
"WebUI Settings": "Impostazioni WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Scrivi un suggerimento per il prompt (ad esempio Chi sei?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Scrivi un riassunto in 50 parole che riassume [argomento o parola chiave].",
"You": "Tu",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Sei un assistente utile.",
"You're now logged in.": "Ora hai effettuato l'accesso.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "すでにアカウントをお持ちですか?",
"an assistant": "アシスタント",
"and": "および",
"and create a new shared link.": "",
"API Base URL": "API ベース URL",
"API Key": "API キー",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "利用可能!",
"Back": "戻る",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "ビルダーモード",
"Bypass SSL verification for Websites": "",
"Cancel": "キャンセル",
"Categories": "カテゴリ",
"Change Password": "パスワードを変更",
@ -70,7 +73,9 @@
"Chunk Overlap": "チャンクオーバーラップ",
"Chunk Params": "チャンクパラメーター",
"Chunk Size": "チャンクサイズ",
"Citation": "",
"Click here for help.": "ヘルプについてはここをクリックしてください。",
"Click here to": "",
"Click here to check other modelfiles.": "他のモデルファイルを確認するにはここをクリックしてください。",
"Click here to select": "選択するにはここをクリックしてください",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "次のクエリの見出しとして、3〜5語の簡潔なフレーズを作成してください。3〜5語の制限を厳守し、「タイトル」という単語の使用を避けてください。",
"Create a modelfile": "モデルファイルを作成",
"Create Account": "アカウントを作成",
"Create new key": "",
"Create new secret key": "",
"Created at": "作成日時",
"Created At": "",
"Current Model": "現在のモデル",
@ -105,6 +112,7 @@
"Custom": "カスタム",
"Customize Ollama models for a specific purpose": "特定の目的に合わせて Ollama モデルをカスタマイズ",
"Dark": "ダーク",
"Dashboard": "",
"Database": "データベース",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "デフォルト",
@ -120,6 +128,7 @@
"Delete chat": "チャットを削除",
"Delete Chat": "",
"Delete Chats": "チャットを削除",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} を削除しました",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "ドキュメントを編集",
"Edit User": "ユーザーを編集",
"Email": "メールアドレス",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "チャット履歴を有効化",
@ -167,6 +177,7 @@
"Enter stop sequence": "ストップシーケンスを入力してください",
"Enter Top K": "トップ K を入力してください",
"Enter URL (e.g. http://127.0.0.1:7860/)": "URL を入力してください (例: http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "メールアドレスを入力してください",
"Enter Your Full Name": "フルネームを入力してください",
"Enter Your Password": "パスワードを入力してください",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Ollama モデルを管理",
"Max Tokens": "最大トークン数",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "同時にダウンロードできるモデルは最大 3 つです。後でもう一度お試しください。",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "ミロスタット",
"Mirostat Eta": "ミロスタット Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "モデルファイルに名前を付ける",
"New Chat": "新しいチャット",
"New Password": "新しいパスワード",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "何を追加すればよいかわからない?",
"Not sure what to write? Switch to": "何を書けばよいかわからない? 次に切り替える",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "または",
"Other": "",
"Overview": "",
"Parameters": "パラメーター",
"Password": "パスワード",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "プロンプトの内容",
"Prompt suggestions": "プロンプトの提案",
"Prompts": "プロンプト",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Ollama.com からモデルをプル",
"Pull Progress": "プルの進行状況",
"Query Params": "クエリパラメーター",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "リリースノート",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "最後の N を繰り返す",
"Repeat Penalty": "繰り返しペナルティ",
"Request Mode": "リクエストモード",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "ベクトルストレージをリセット",
"Response AutoCopy to Clipboard": "クリップボードへの応答の自動コピー",
"Retrieval Augmented Generation Settings": "",
"Role": "役割",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "サーバー接続が確認されました",
"Set as default": "デフォルトに設定",
"Set Default Model": "デフォルトモデルを設定",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "画像サイズを設定",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "ステップを設定",
"Set Title Auto-Generation Model": "タイトル自動生成モデルを設定",
"Set Voice": "音声を設定",
@ -365,6 +387,7 @@
"Sign Out": "サインアウト",
"Sign up": "サインアップ",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "音声認識エラー: {{error}}",
"Speech-to-Text Engine": "音声テキスト変換エンジン",
"SpeechRecognition API is not supported in this browser.": "このブラウザでは SpeechRecognition API がサポートされていません。",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "おっと! {{provider}} への接続に問題が発生しました。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "不明なファイルタイプ '{{file_type}}' ですが、プレーンテキストとして受け入れて処理します",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "パスワードを更新",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "GGUF モデルをアップロード",
"Upload files": "ファイルをアップロード",
"Upload Progress": "アップロードの進行状況",
@ -431,6 +450,7 @@
"Version": "バージョン",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "ウェブ",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI アドオン",
"WebUI Settings": "WebUI 設定",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "プロンプトの提案を書いてください (例: あなたは誰ですか?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "[トピックまたはキーワード] を要約する 50 語の概要を書いてください。",
"You": "あなた",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "あなたは役に立つアシスタントです。",
"You're now logged in.": "ログインしました。",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "უკვე გაქვს ანგარიში?",
"an assistant": "ასისტენტი",
"and": "და",
"and create a new shared link.": "",
"API Base URL": "API საბაზისო URL",
"API Key": "API გასაღები",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "ხელმისაწვდომია!",
"Back": "უკან",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "მოდელის შექმნა",
"Bypass SSL verification for Websites": "",
"Cancel": "გაუქმება",
"Categories": "კატეგორიები",
"Change Password": "პაროლის შეცვლა",
@ -70,7 +73,9 @@
"Chunk Overlap": "გადახურვა ფრაგმენტულია",
"Chunk Params": "გადახურვის პარამეტრები",
"Chunk Size": "გადახურვის ზომა",
"Citation": "",
"Click here for help.": "დახმარებისთვის, დააკლიკე აქ",
"Click here to": "",
"Click here to check other modelfiles.": "სხვა მოდელური ფაილების სანახავად, დააკლიკე აქ",
"Click here to select": "ასარჩევად, დააკლიკე აქ",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "შექმენით მოკლე, 3-5 სიტყვიანი ფრაზა, როგორც სათაური თქვენი შემდეგი შეკითხვისთვის, მკაცრად დაიცავით 3-5 სიტყვის ლიმიტი და მოერიდეთ გამოიყენოთ სიტყვა „სათაური“.",
"Create a modelfile": "მოდელური ფაილის შექმნა",
"Create Account": "ანგარიშის შექმნა",
"Create new key": "",
"Create new secret key": "",
"Created at": "შექმნილია",
"Created At": "",
"Current Model": "მიმდინარე მოდელი",
@ -105,6 +112,7 @@
"Custom": "საკუთარი",
"Customize Ollama models for a specific purpose": "Ollama მოდელების დამუშავება სპეციფიური დანიშნულებისთვის",
"Dark": "მუქი",
"Dashboard": "",
"Database": "მონაცემთა ბაზა",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "დეფოლტი",
@ -120,6 +128,7 @@
"Delete chat": "შეტყობინების წაშლა",
"Delete Chat": "",
"Delete Chats": "შეტყობინებების წაშლა",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} წაშლილია",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "დოკუმენტის ედიტირება",
"Edit User": "მომხმარებლის ედიტირება",
"Email": "ელ-ფოსტა",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "მიმოწერის ისტორიის ჩართვა",
@ -167,6 +177,7 @@
"Enter stop sequence": "შეიყვანეთ ტოპ თანმიმდევრობა",
"Enter Top K": "შეიყვანეთ Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "შეიყვანეთ მისამართი (მაგალითად http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "შეიყვანეთ თქვენი ელ-ფოსტა",
"Enter Your Full Name": "შეიყვანეთ თქვენი სრული სახელი",
"Enter Your Password": "შეიყვანეთ თქვენი პაროლი",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Ollama მოდელების მართვა",
"Max Tokens": "მაქსიმალური ტოკენები",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "მაქსიმუმ 3 მოდელის ჩამოტვირთვა შესაძლებელია ერთდროულად. Გთხოვთ სცადოთ მოგვიანებით.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "მიროსტატი",
"Mirostat Eta": "მიროსტატი ეტა",
@ -258,6 +270,8 @@
"Name your modelfile": "თქვენი მოდელური ფაილის სახელი",
"New Chat": "ახალი მიმოწერა",
"New Password": "ახალი პაროლი",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "არ იცი რა დაამატო?",
"Not sure what to write? Switch to": "არ იცი რა დაწერო? გადართვა:",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "ან",
"Other": "",
"Overview": "",
"Parameters": "პარამეტრები",
"Password": "პაროლი",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "მოთხოვნის შინაარსი",
"Prompt suggestions": "მოთხოვნის რჩევები",
"Prompts": "მოთხოვნები",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Ollama.com იდან მოდელის გადაწერა ",
"Pull Progress": "პროგრესის გადაწერა",
"Query Params": "პარამეტრების ძიება",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Გამოშვების შენიშვნები",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "გაიმეორეთ ბოლო N",
"Repeat Penalty": "გაიმეორეთ პენალტი",
"Request Mode": "მოთხოვნის რეჟიმი",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "ვექტორული მეხსიერების გადატვირთვა",
"Response AutoCopy to Clipboard": "პასუხის ავტომატური კოპირება ბუფერში",
"Retrieval Augmented Generation Settings": "",
"Role": "როლი",
"Rosé Pine": "ვარდისფერი ფიჭვის ხე",
"Rosé Pine Dawn": "ვარდისფერი ფიჭვის გარიჟრაჟი",
@ -346,7 +366,9 @@
"Server connection verified": "სერვერთან კავშირი დადასტურებულია",
"Set as default": "დეფოლტად დაყენება",
"Set Default Model": "დეფოლტ მოდელის დაყენება",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "სურათის ზომის დაყენება",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "ნაბიჯების დაყენება",
"Set Title Auto-Generation Model": "სათაურის ავტომატური გენერაციის მოდელის დაყენება",
"Set Voice": "ხმის დაყენება",
@ -365,6 +387,7 @@
"Sign Out": "გასვლა",
"Sign up": "რეგისტრაცია",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "მეტყველების ამოცნობის შეცდომა: {{error}}",
"Speech-to-Text Engine": "ხმოვან-ტექსტური ძრავი",
"SpeechRecognition API is not supported in this browser.": "მეტყველების ამოცნობის API არ არის მხარდაჭერილი ამ ბრაუზერში.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}-თან დაკავშირების პრობლემა წარმოიშვა.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "უცნობი ფაილის ტიპი „{{file_type}}“, მაგრამ მიიღება და განიხილება როგორც მარტივი ტექსტი",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "პაროლის განახლება",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "GGUF მოდელის ატვირთვა",
"Upload files": "ფაილების ატვირთვა",
"Upload Progress": "პროგრესის ატვირთვა",
@ -431,6 +450,7 @@
"Version": "ვერსია",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "ვები",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI დანამატები",
"WebUI Settings": "WebUI პარამეტრები",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "დაწერეთ მოკლე წინადადება (მაგ. ვინ ხარ?",
"Write a summary in 50 words that summarizes [topic or keyword].": "დაწერეთ რეზიუმე 50 სიტყვით, რომელიც აჯამებს [თემას ან საკვანძო სიტყვას].",
"You": "თქვენ",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "თქვენ სასარგებლო ასისტენტი ხართ.",
"You're now logged in.": "თქვენ შესული ხართ.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "이미 계정이 있으신가요?",
"an assistant": "어시스턴트",
"and": "그리고",
"and create a new shared link.": "",
"API Base URL": "API 기본 URL",
"API Key": "API키",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "사용 가능!",
"Back": "뒤로가기",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "빌더 모드",
"Bypass SSL verification for Websites": "",
"Cancel": "취소",
"Categories": "분류",
"Change Password": "비밀번호 변경",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Params",
"Chunk Size": "Chunk Size",
"Citation": "",
"Click here for help.": "도움말을 보려면 여기를 클릭하세요.",
"Click here to": "",
"Click here to check other modelfiles.": "다른 모델파일을 확인하려면 여기를 클릭하세요.",
"Click here to select": "선택하려면 여기를 클릭하세요.",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "다음 질문에 대한 제목으로 간결한 3-5 단어 문구를 만드되 3-5 단어 제한을 엄격히 준수하고 'title' 단어 사용을 피하세요:",
"Create a modelfile": "모델파일 만들기",
"Create Account": "계정 만들기",
"Create new key": "",
"Create new secret key": "",
"Created at": "생성일",
"Created At": "",
"Current Model": "현재 모델",
@ -105,6 +112,7 @@
"Custom": "사용자 정의",
"Customize Ollama models for a specific purpose": "특정 목적으로 Ollama 모델 사용자 정의",
"Dark": "어두운",
"Dashboard": "",
"Database": "데이터베이스",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "기본값",
@ -120,6 +128,7 @@
"Delete chat": "채팅 삭제",
"Delete Chat": "",
"Delete Chats": "채팅들 삭제",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} 삭제됨",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "문서 편집",
"Edit User": "사용자 편집",
"Email": "이메일",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "채팅 기록 활성화",
@ -167,6 +177,7 @@
"Enter stop sequence": "중지 시퀀스 입력",
"Enter Top K": "Top K 입력",
"Enter URL (e.g. http://127.0.0.1:7860/)": "URL 입력(예: http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "이메일 입력",
"Enter Your Full Name": "전체 이름 입력",
"Enter Your Password": "비밀번호 입력",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Ollama 모델 관리",
"Max Tokens": "최대 토큰 수",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "최대 3개의 모델을 동시에 다운로드할 수 있습니다. 나중에 다시 시도하세요.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "모델파일 이름 지정",
"New Chat": "새 채팅",
"New Password": "새 비밀번호",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "추가할 것이 궁금하세요?",
"Not sure what to write? Switch to": "무엇을 쓸지 모르겠나요? 전환하세요.",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "또는",
"Other": "",
"Overview": "",
"Parameters": "매개변수",
"Password": "비밀번호",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "프롬프트 내용",
"Prompt suggestions": "프롬프트 제안",
"Prompts": "프롬프트",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Ollama.com에서 모델 가져오기",
"Pull Progress": "가져오기 진행 상황",
"Query Params": "쿼리 매개변수",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "릴리스 노트",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "마지막 N 반복",
"Repeat Penalty": "반복 패널티",
"Request Mode": "요청 모드",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "벡터 스토리지 초기화",
"Response AutoCopy to Clipboard": "응답 자동 클립보드 복사",
"Retrieval Augmented Generation Settings": "",
"Role": "역할",
"Rosé Pine": "로제 파인",
"Rosé Pine Dawn": "로제 파인 던",
@ -346,7 +366,9 @@
"Server connection verified": "서버 연결 확인됨",
"Set as default": "기본값으로 설정",
"Set Default Model": "기본 모델 설정",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "이미지 크기 설정",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "단계 설정",
"Set Title Auto-Generation Model": "제목 자동 생성 모델 설정",
"Set Voice": "음성 설정",
@ -365,6 +387,7 @@
"Sign Out": "로그아웃",
"Sign up": "가입",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "음성 인식 오류: {{error}}",
"Speech-to-Text Engine": "음성-텍스트 엔진",
"SpeechRecognition API is not supported in this browser.": "이 브라우저에서는 SpeechRecognition API를 지원하지 않습니다.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "앗! {{provider}}에 연결하는 데 문제가 있었습니다.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "알 수 없는 파일 유형 '{{file_type}}', 하지만 일반 텍스트로 허용하고 처리합니다.",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "비밀번호 업데이트",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "GGUF 모델 업로드",
"Upload files": "파일 업로드",
"Upload Progress": "업로드 진행 상황",
@ -431,6 +450,7 @@
"Version": "버전",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "웹",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI 애드온",
"WebUI Settings": "WebUI 설정",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "프롬프트 제안 작성 (예: 당신은 누구인가요?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "[주제 또는 키워드]에 대한 50단어 요약문 작성.",
"You": "당신",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "당신은 유용한 어시스턴트입니다.",
"You're now logged in.": "로그인되었습니다.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Heb je al een account?",
"an assistant": "een assistent",
"and": "en",
"and create a new shared link.": "",
"API Base URL": "API Base URL",
"API Key": "API Key",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "beschikbaar!",
"Back": "Terug",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Bouwer Modus",
"Bypass SSL verification for Websites": "",
"Cancel": "Annuleren",
"Categories": "Categorieën",
"Change Password": "Wijzig Wachtwoord",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Params",
"Chunk Size": "Chunk Grootte",
"Citation": "",
"Click here for help.": "Klik hier voor help.",
"Click here to": "",
"Click here to check other modelfiles.": "Klik hier om andere modelfiles te controleren.",
"Click here to select": "Klik hier om te selecteren",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Maak een beknopte, 3-5 woorden tellende zin als kop voor de volgende query, strikt aanhoudend aan de 3-5 woorden limiet en het vermijden van het gebruik van het woord 'titel':",
"Create a modelfile": "Maak een modelfile",
"Create Account": "Maak Account",
"Create new key": "",
"Create new secret key": "",
"Created at": "Gemaakt op",
"Created At": "",
"Current Model": "Huidig Model",
@ -105,6 +112,7 @@
"Custom": "Aangepast",
"Customize Ollama models for a specific purpose": "Pas Ollama modellen aan voor een specifiek doel",
"Dark": "Donker",
"Dashboard": "",
"Database": "Database",
"DD/MM/YYYY HH:mm": "YYYY/MM/DD HH:mm",
"Default": "Standaard",
@ -120,6 +128,7 @@
"Delete chat": "Verwijder chat",
"Delete Chat": "",
"Delete Chats": "Verwijder Chats",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} is verwijderd",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Wijzig Doc",
"Edit User": "Wijzig Gebruiker",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Schakel Chat Geschiedenis in",
@ -167,6 +177,7 @@
"Enter stop sequence": "Zet stop sequentie",
"Enter Top K": "Voeg Top K toe",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Zet URL (Bijv. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Voer je Email in",
"Enter Your Full Name": "Voer je Volledige Naam in",
"Enter Your Password": "Voer je Wachtwoord in",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Beheer Ollama Modellen",
"Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximaal 3 modellen kunnen tegelijkertijd worden gedownload. Probeer het later opnieuw.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Benoem je modelfile",
"New Chat": "Nieuwe Chat",
"New Password": "Nieuw Wachtwoord",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Niet zeker wat toe te voegen?",
"Not sure what to write? Switch to": "Niet zeker wat te schrijven? Schakel over naar",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "of",
"Other": "",
"Overview": "",
"Parameters": "Parameters",
"Password": "Wachtwoord",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Prompt Inhoud",
"Prompt suggestions": "Prompt suggesties",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Haal een model van Ollama.com",
"Pull Progress": "Haal Voortgang op",
"Query Params": "Query Params",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Release Notes",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Herhaal Laatste N",
"Repeat Penalty": "Herhaal Straf",
"Request Mode": "Request Modus",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Reset Vector Opslag",
"Response AutoCopy to Clipboard": "Antwoord Automatisch Kopiëren naar Klembord",
"Retrieval Augmented Generation Settings": "",
"Role": "Rol",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Server verbinding geverifieerd",
"Set as default": "Stel in als standaard",
"Set Default Model": "Stel Standaard Model in",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Stel Afbeelding Grootte in",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Stel Stappen in",
"Set Title Auto-Generation Model": "Stel Titel Auto-Generatie Model in",
"Set Voice": "Stel Stem in",
@ -365,6 +387,7 @@
"Sign Out": "Uitloggen",
"Sign up": "Registreren",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Spraakherkenning fout: {{error}}",
"Speech-to-Text Engine": "Spraak-naar-tekst Engine",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API wordt niet ondersteund in deze browser.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Wijzig wachtwoord",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Upload een GGUF model",
"Upload files": "Upload bestanden",
"Upload Progress": "Upload Voortgang",
@ -431,6 +450,7 @@
"Version": "Versie",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI Add-ons",
"WebUI Settings": "WebUI Instellingen",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Schrijf een prompt suggestie (bijv. Wie ben je?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Schrijf een samenvatting in 50 woorden die [onderwerp of trefwoord] samenvat.",
"You": "Jij",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Jij bent een behulpzame assistent.",
"You're now logged in.": "Je bent nu ingelogd.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Masz już konto?",
"an assistant": "asystent",
"and": "i",
"and create a new shared link.": "",
"API Base URL": "Podstawowy adres URL interfejsu API",
"API Key": "Klucz API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "dostępny!",
"Back": "Wstecz",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Tryb budowniczego",
"Bypass SSL verification for Websites": "",
"Cancel": "Anuluj",
"Categories": "Kategorie",
"Change Password": "Zmień hasło",
@ -70,7 +73,9 @@
"Chunk Overlap": "Zachodzenie bloku",
"Chunk Params": "Parametry bloku",
"Chunk Size": "Rozmiar bloku",
"Citation": "",
"Click here for help.": "Kliknij tutaj, aby uzyskać pomoc.",
"Click here to": "",
"Click here to check other modelfiles.": "Kliknij tutaj, aby sprawdzić inne pliki modelowe.",
"Click here to select": "Kliknij tutaj, aby wybrać",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Utwórz zwięzłą frazę składającą się z 3-5 słów jako nagłówek dla następującego zapytania, ściśle przestrzegając limitu od 3 do 5 słów i unikając użycia słowa 'tytuł':",
"Create a modelfile": "Utwórz plik modelu",
"Create Account": "Utwórz konto",
"Create new key": "",
"Create new secret key": "",
"Created at": "Utworzono o",
"Created At": "",
"Current Model": "Bieżący model",
@ -105,6 +112,7 @@
"Custom": "Niestandardowy",
"Customize Ollama models for a specific purpose": "Dostosuj modele Ollama do określonego celu",
"Dark": "Ciemny",
"Dashboard": "",
"Database": "Baza danych",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Domyślny",
@ -120,6 +128,7 @@
"Delete chat": "Usuń czat",
"Delete Chat": "",
"Delete Chats": "Usuń czaty",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Usunięto {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Edytuj dokument",
"Edit User": "Edytuj użytkownika",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Włącz historię czatu",
@ -167,6 +177,7 @@
"Enter stop sequence": "Wprowadź sekwencję zatrzymania",
"Enter Top K": "Wprowadź Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Wprowadź adres URL (np. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Wprowadź swój adres email",
"Enter Your Full Name": "Wprowadź swoje imię i nazwisko",
"Enter Your Password": "Wprowadź swoje hasło",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Zarządzaj modelami Ollama",
"Max Tokens": "Maksymalna liczba tokenów",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maksymalnie 3 modele można pobierać jednocześnie. Spróbuj ponownie później.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Nadaj nazwę swojemu plikowi modelu",
"New Chat": "Nowy czat",
"New Password": "Nowe hasło",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Nie wiesz, co dodać?",
"Not sure what to write? Switch to": "Nie wiesz, co napisać? Przełącz się na",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "lub",
"Other": "",
"Overview": "",
"Parameters": "Parametry",
"Password": "Hasło",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Zawartość prompta",
"Prompt suggestions": "Sugestie prompta",
"Prompts": "Prompty",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Pobierz model z Ollama.com",
"Pull Progress": "Postęp pobierania",
"Query Params": "Parametry zapytania",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Notatki wydania",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Powtórz ostatnie N",
"Repeat Penalty": "Kara za powtórzenie",
"Request Mode": "Tryb żądania",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Resetuj przechowywanie wektorów",
"Response AutoCopy to Clipboard": "Automatyczne kopiowanie odpowiedzi do schowka",
"Retrieval Augmented Generation Settings": "",
"Role": "Rola",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Połączenie z serwerem zweryfikowane",
"Set as default": "Ustaw jako domyślne",
"Set Default Model": "Ustaw domyślny model",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Ustaw rozmiar obrazu",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Ustaw kroki",
"Set Title Auto-Generation Model": "Ustaw model automatycznego generowania tytułów",
"Set Voice": "Ustaw głos",
@ -365,6 +387,7 @@
"Sign Out": "Wyloguj się",
"Sign up": "Zarejestruj się",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Błąd rozpoznawania mowy: {{error}}",
"Speech-to-Text Engine": "Silnik mowy na tekst",
"SpeechRecognition API is not supported in this browser.": "API Rozpoznawania Mowy nie jest obsługiwane w tej przeglądarce.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Aktualizacja hasła",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Prześlij model GGUF",
"Upload files": "Prześlij pliki",
"Upload Progress": "Postęp przesyłania",
@ -431,6 +450,7 @@
"Version": "Wersja",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Sieć",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Dodatki do interfejsu WebUI",
"WebUI Settings": "Ustawienia interfejsu WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Napisz sugestię do polecenia (np. Kim jesteś?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Napisz podsumowanie w 50 słowach, które podsumowuje [temat lub słowo kluczowe].",
"You": "Ty",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Jesteś pomocnym asystentem.",
"You're now logged in.": "Jesteś teraz zalogowany.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Já tem uma conta?",
"an assistant": "um assistente",
"and": "e",
"and create a new shared link.": "",
"API Base URL": "URL Base da API",
"API Key": "Chave da API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "disponível!",
"Back": "Voltar",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Modo de Construtor",
"Bypass SSL verification for Websites": "",
"Cancel": "Cancelar",
"Categories": "Categorias",
"Change Password": "Alterar Senha",
@ -70,7 +73,9 @@
"Chunk Overlap": "Sobreposição de Fragmento",
"Chunk Params": "Parâmetros de Fragmento",
"Chunk Size": "Tamanho do Fragmento",
"Citation": "",
"Click here for help.": "Clique aqui para obter ajuda.",
"Click here to": "",
"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
"Click here to select": "Clique aqui para selecionar",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
"Create a modelfile": "Criar um arquivo de modelo",
"Create Account": "Criar Conta",
"Create new key": "",
"Create new secret key": "",
"Created at": "Criado em",
"Created At": "",
"Current Model": "Modelo Atual",
@ -105,6 +112,7 @@
"Custom": "Personalizado",
"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
"Dark": "Escuro",
"Dashboard": "",
"Database": "Banco de dados",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Padrão",
@ -120,6 +128,7 @@
"Delete chat": "Excluir bate-papo",
"Delete Chat": "",
"Delete Chats": "Excluir Bate-papos",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Editar Documento",
"Edit User": "Editar Usuário",
"Email": "E-mail",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Ativar Histórico de Bate-papo",
@ -167,6 +177,7 @@
"Enter stop sequence": "Digite a sequência de parada",
"Enter Top K": "Digite o Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Digite seu E-mail",
"Enter Your Full Name": "Digite seu Nome Completo",
"Enter Your Password": "Digite sua Senha",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Gerenciar Modelos Ollama",
"Max Tokens": "Máximo de Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Nomeie seu arquivo de modelo",
"New Chat": "Novo Bate-papo",
"New Password": "Nova Senha",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Não tem certeza do que adicionar?",
"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "ou",
"Other": "",
"Overview": "",
"Parameters": "Parâmetros",
"Password": "Senha",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Conteúdo do Prompt",
"Prompt suggestions": "Sugestões de Prompt",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
"Pull Progress": "Progresso da Extração",
"Query Params": "Parâmetros de Consulta",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Notas de Lançamento",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repetir Últimos N",
"Repeat Penalty": "Penalidade de Repetição",
"Request Mode": "Modo de Solicitação",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
"Retrieval Augmented Generation Settings": "",
"Role": "Função",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Conexão com o servidor verificada",
"Set as default": "Definir como padrão",
"Set Default Model": "Definir Modelo Padrão",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Definir Tamanho da Imagem",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Definir Etapas",
"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
"Set Voice": "Definir Voz",
@ -365,6 +387,7 @@
"Sign Out": "Sair",
"Sign up": "Inscrever-se",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
"SpeechRecognition API is not supported in this browser.": "A API SpeechRecognition não é suportada neste navegador.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Atualizar senha",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Carregar um modelo GGUF",
"Upload files": "Carregar arquivos",
"Upload Progress": "Progresso do Carregamento",
@ -431,6 +450,7 @@
"Version": "Versão",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Complementos WebUI",
"WebUI Settings": "Configurações WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
"You": "Você",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Você é um assistente útil.",
"You're now logged in.": "Você está conectado agora.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Já tem uma conta?",
"an assistant": "um assistente",
"and": "e",
"and create a new shared link.": "",
"API Base URL": "URL Base da API",
"API Key": "Chave da API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "disponível!",
"Back": "Voltar",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Modo de Construtor",
"Bypass SSL verification for Websites": "",
"Cancel": "Cancelar",
"Categories": "Categorias",
"Change Password": "Alterar Senha",
@ -70,7 +73,9 @@
"Chunk Overlap": "Sobreposição de Fragmento",
"Chunk Params": "Parâmetros de Fragmento",
"Chunk Size": "Tamanho do Fragmento",
"Citation": "",
"Click here for help.": "Clique aqui para obter ajuda.",
"Click here to": "",
"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
"Click here to select": "Clique aqui para selecionar",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
"Create a modelfile": "Criar um arquivo de modelo",
"Create Account": "Criar Conta",
"Create new key": "",
"Create new secret key": "",
"Created at": "Criado em",
"Created At": "",
"Current Model": "Modelo Atual",
@ -105,6 +112,7 @@
"Custom": "Personalizado",
"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
"Dark": "Escuro",
"Dashboard": "",
"Database": "Banco de dados",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Padrão",
@ -120,6 +128,7 @@
"Delete chat": "Excluir bate-papo",
"Delete Chat": "",
"Delete Chats": "Excluir Bate-papos",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Editar Documento",
"Edit User": "Editar Usuário",
"Email": "E-mail",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Ativar Histórico de Bate-papo",
@ -167,6 +177,7 @@
"Enter stop sequence": "Digite a sequência de parada",
"Enter Top K": "Digite o Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Digite seu E-mail",
"Enter Your Full Name": "Digite seu Nome Completo",
"Enter Your Password": "Digite sua Senha",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Gerenciar Modelos Ollama",
"Max Tokens": "Máximo de Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Nomeie seu arquivo de modelo",
"New Chat": "Novo Bate-papo",
"New Password": "Nova Senha",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Não tem certeza do que adicionar?",
"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "ou",
"Other": "",
"Overview": "",
"Parameters": "Parâmetros",
"Password": "Senha",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Conteúdo do Prompt",
"Prompt suggestions": "Sugestões de Prompt",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
"Pull Progress": "Progresso da Extração",
"Query Params": "Parâmetros de Consulta",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Notas de Lançamento",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repetir Últimos N",
"Repeat Penalty": "Penalidade de Repetição",
"Request Mode": "Modo de Solicitação",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
"Retrieval Augmented Generation Settings": "",
"Role": "Função",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Conexão com o servidor verificada",
"Set as default": "Definir como padrão",
"Set Default Model": "Definir Modelo Padrão",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Definir Tamanho da Imagem",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Definir Etapas",
"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
"Set Voice": "Definir Voz",
@ -365,6 +387,7 @@
"Sign Out": "Sair",
"Sign up": "Inscrever-se",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
"SpeechRecognition API is not supported in this browser.": "A API SpeechRecognition não é suportada neste navegador.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Atualizar senha",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Carregar um modelo GGUF",
"Upload files": "Carregar arquivos",
"Upload Progress": "Progresso do Carregamento",
@ -431,6 +450,7 @@
"Version": "Versão",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Complementos WebUI",
"WebUI Settings": "Configurações WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
"You": "Você",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Você é um assistente útil.",
"You're now logged in.": "Você está conectado agora.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "у вас уже есть аккаунт?",
"an assistant": "ассистент",
"and": "и",
"and create a new shared link.": "",
"API Base URL": "Базовый адрес API",
"API Key": "Ключ API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "доступный!",
"Back": "Назад",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Режим конструктор",
"Bypass SSL verification for Websites": "",
"Cancel": "Аннулировать",
"Categories": "Категории",
"Change Password": "Изменить пароль",
@ -70,7 +73,9 @@
"Chunk Overlap": "Перекрытие фрагментов",
"Chunk Params": "Параметры фрагментов",
"Chunk Size": "Размер фрагмента",
"Citation": "",
"Click here for help.": "Нажмите здесь для помощь.",
"Click here to": "",
"Click here to check other modelfiles.": "Нажмите тут чтобы проверить другие файлы моделей.",
"Click here to select": "Нажмите тут чтобы выберите",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
"Create a modelfile": "Создать модельный файл",
"Create Account": "Создать аккаунт",
"Create new key": "",
"Create new secret key": "",
"Created at": "Создано в",
"Created At": "",
"Current Model": "Текущая модель",
@ -105,6 +112,7 @@
"Custom": "Пользовательский",
"Customize Ollama models for a specific purpose": "Настроить модели Ollama для конкретной цели",
"Dark": "Тёмный",
"Dashboard": "",
"Database": "База данных",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "По умолчанию",
@ -120,6 +128,7 @@
"Delete chat": "Удалить чат",
"Delete Chat": "",
"Delete Chats": "Удалить чаты",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Удалено {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Редактировать документ",
"Edit User": "Редактировать пользователя",
"Email": "Электронная почта",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Включить историю чата",
@ -167,6 +177,7 @@
"Enter stop sequence": "Введите последовательность остановки",
"Enter Top K": "Введите Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Введите URL-адрес (например, http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Введите вашу электронную почту",
"Enter Your Full Name": "Введите ваше полное имя",
"Enter Your Password": "Введите ваш пароль",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Управление моделями Ollama",
"Max Tokens": "Максимальное количество токенов",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимальное количество моделей для загрузки одновременно - 3. Пожалуйста, попробуйте позже.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Назовите свой файл модели",
"New Chat": "Новый чат",
"New Password": "Новый пароль",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Не уверены, что добавить?",
"Not sure what to write? Switch to": "Не уверены, что написать? Переключитесь на",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "или",
"Other": "",
"Overview": "",
"Parameters": "Параметры",
"Password": "Пароль",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Содержание промпта",
"Prompt suggestions": "Предложения промптов",
"Prompts": "Промпты",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Загрузить модель с Ollama.com",
"Pull Progress": "Прогресс загрузки",
"Query Params": "Параметры запроса",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Примечания к выпуску",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Повторить последние N",
"Repeat Penalty": "Штраф за повтор",
"Request Mode": "Режим запроса",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Сбросить векторное хранилище",
"Response AutoCopy to Clipboard": "Автоматическое копирование ответа в буфер обмена",
"Retrieval Augmented Generation Settings": "",
"Role": "Роль",
"Rosé Pine": "Розовое сосновое дерево",
"Rosé Pine Dawn": "Розовое сосновое дерево рассвет",
@ -346,7 +366,9 @@
"Server connection verified": "Соединение с сервером проверено",
"Set as default": "Установить по умолчанию",
"Set Default Model": "Установить модель по умолчанию",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Установить размер изображения",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Установить шаги",
"Set Title Auto-Generation Model": "Установить модель автогенерации заголовков",
"Set Voice": "Установить голос",
@ -365,6 +387,7 @@
"Sign Out": "Выход",
"Sign up": "зарегистрировать",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Ошибка распознавания речи: {{error}}",
"Speech-to-Text Engine": "Система распознавания речи",
"SpeechRecognition API is not supported in this browser.": "API распознавания речи не поддерживается в этом браузере.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Неизвестный тип файла '{{file_type}}', но принимается и обрабатывается как обычный текст",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Обновить пароль",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Загрузить модель GGUF",
"Upload files": "Загрузить файлы",
"Upload Progress": "Прогресс загрузки",
@ -431,6 +450,7 @@
"Version": "Версия",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Веб",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Дополнения для WebUI",
"WebUI Settings": "Настройки WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Напишите предложение промпта (например, Кто вы?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Напишите резюме в 50 словах, которое кратко описывает [тему или ключевое слово].",
"You": "Вы",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Вы полезный ассистент.",
"You're now logged in.": "Вы вошли в систему.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Har du redan ett konto?",
"an assistant": "en assistent",
"and": "och",
"and create a new shared link.": "",
"API Base URL": "API-bas-URL",
"API Key": "API-nyckel",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "tillgänglig!",
"Back": "Tillbaka",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Byggarläge",
"Bypass SSL verification for Websites": "",
"Cancel": "Avbryt",
"Categories": "Kategorier",
"Change Password": "Ändra lösenord",
@ -70,7 +73,9 @@
"Chunk Overlap": "Överlappning",
"Chunk Params": "Chunk-parametrar",
"Chunk Size": "Chunk-storlek",
"Citation": "",
"Click here for help.": "Klicka här för hjälp.",
"Click here to": "",
"Click here to check other modelfiles.": "Klicka här för att kontrollera andra modelfiler.",
"Click here to select": "Klicka här för att välja",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Skapa en kort, 3-5 ords fras som rubrik för följande fråga, strikt följa 3-5 ordsgränsen och undvika användning av ordet 'titel':",
"Create a modelfile": "Skapa en modelfil",
"Create Account": "Skapa konto",
"Create new key": "",
"Create new secret key": "",
"Created at": "Skapad",
"Created At": "",
"Current Model": "Aktuell modell",
@ -105,6 +112,7 @@
"Custom": "Anpassad",
"Customize Ollama models for a specific purpose": "Anpassa Ollama-modeller för ett specifikt ändamål",
"Dark": "Mörk",
"Dashboard": "",
"Database": "Databas",
"DD/MM/YYYY HH:mm": "DD/MM/ÅÅÅÅ TT:mm",
"Default": "Standard",
@ -120,6 +128,7 @@
"Delete chat": "Radera chatt",
"Delete Chat": "",
"Delete Chats": "Radera chattar",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Raderad {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Redigera dokument",
"Edit User": "Redigera användare",
"Email": "E-post",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Aktivera chatthistorik",
@ -167,6 +177,7 @@
"Enter stop sequence": "Ange stoppsekvens",
"Enter Top K": "Ange Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Ange URL (t.ex. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Ange din e-post",
"Enter Your Full Name": "Ange ditt fullständiga namn",
"Enter Your Password": "Ange ditt lösenord",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Hantera Ollama-modeller",
"Max Tokens": "Max antal tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Högst 3 modeller kan laddas ner samtidigt. Vänligen försök igen senare.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Namnge din modelfil",
"New Chat": "Ny chatt",
"New Password": "Nytt lösenord",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Inte säker på vad du ska lägga till?",
"Not sure what to write? Switch to": "Inte säker på vad du ska skriva? Växla till",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "eller",
"Other": "",
"Overview": "",
"Parameters": "Parametrar",
"Password": "Lösenord",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Promptinnehåll",
"Prompt suggestions": "Förslag",
"Prompts": "Prompts",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Dra en modell från Ollama.com",
"Pull Progress": "Dra framsteg",
"Query Params": "Frågeparametrar",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Versionsinformation",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Upprepa senaste N",
"Repeat Penalty": "Upprepa straff",
"Request Mode": "Begär läge",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Återställ vektorlager",
"Response AutoCopy to Clipboard": "Svara AutoCopy till urklipp",
"Retrieval Augmented Generation Settings": "",
"Role": "Roll",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Serveranslutning verifierad",
"Set as default": "Ange som standard",
"Set Default Model": "Ange standardmodell",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Ange bildstorlek",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Ange steg",
"Set Title Auto-Generation Model": "Ange modell för automatisk generering av titel",
"Set Voice": "Ange röst",
@ -365,6 +387,7 @@
"Sign Out": "Logga ut",
"Sign up": "Registrera dig",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Fel vid taligenkänning: {{error}}",
"Speech-to-Text Engine": "Tal-till-text-motor",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API stöds inte i denna webbläsare.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "Oj då! Det uppstod ett problem med att ansluta 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",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Uppdatera lösenord",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Ladda upp en GGUF-modell",
"Upload files": "Ladda upp filer",
"Upload Progress": "Uppladdningsförlopp",
@ -431,6 +450,7 @@
"Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Webb",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI-tillägg",
"WebUI Settings": "WebUI-inställningar",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Skriv ett förslag (t.ex. Vem är du?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Skriv en sammanfattning på 50 ord som sammanfattar [ämne eller nyckelord].",
"You": "Du",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Du är en hjälpsam assistent.",
"You're now logged in.": "Du är nu inloggad.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Zaten bir hesabınız mı var?",
"an assistant": "bir asistan",
"and": "ve",
"and create a new shared link.": "",
"API Base URL": "API Temel URL",
"API Key": "API Anahtarı",
"API Key created.": "API Anahtarı oluşturuldu.",
@ -54,8 +55,10 @@
"available!": "mevcut!",
"Back": "Geri",
"Bad Response": "Kötü Yanıt",
"before": "",
"Being lazy": "Tembelleşiyor",
"Builder Mode": "Oluşturucu Modu",
"Bypass SSL verification for Websites": "",
"Cancel": "İptal",
"Categories": "Kategoriler",
"Change Password": "Parola Değiştir",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk Çakışması",
"Chunk Params": "Chunk Parametreleri",
"Chunk Size": "Chunk Boyutu",
"Citation": "",
"Click here for help.": "Yardım için buraya tıklayın.",
"Click here to": "",
"Click here to check other modelfiles.": "Diğer model dosyalarını kontrol etmek için buraya tıklayın.",
"Click here to select": "Seçmek için buraya tıklayın",
"Click here to select a csv file.": "Bir CSV dosyası seçmek için buraya tıklayın.",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Aşağıdaki sorgu için başlık olarak 3-5 kelimelik kısa ve öz bir ifade oluşturun, 3-5 kelime sınırına kesinlikle uyun ve 'başlık' kelimesini kullanmaktan kaçının:",
"Create a modelfile": "Bir model dosyası oluştur",
"Create Account": "Hesap Oluştur",
"Create new key": "",
"Create new secret key": "",
"Created at": "Oluşturulma tarihi",
"Created At": "Şu Tarihte Oluşturuldu:",
"Current Model": "Mevcut Model",
@ -105,6 +112,7 @@
"Custom": "Özel",
"Customize Ollama models for a specific purpose": "Ollama modellerini belirli bir amaç için özelleştirin",
"Dark": "Koyu",
"Dashboard": "",
"Database": "Veritabanı",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Varsayılan",
@ -120,6 +128,7 @@
"Delete chat": "Sohbeti sil",
"Delete Chat": "Sohbeti Sil",
"Delete Chats": "Sohbetleri Sil",
"delete this link": "",
"Delete User": "Kullanıcıyı Sil",
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} silindi",
"Deleted {{tagName}}": "{{tagName}} silindi",
@ -146,6 +155,7 @@
"Edit Doc": "Belgeyi Düzenle",
"Edit User": "Kullanıcıyı Düzenle",
"Email": "E-posta",
"Embedding Model": "",
"Embedding Model Engine": "Gömme Modeli Motoru",
"Embedding model set to \"{{embedding_model}}\"": "Gömme modeli \"{{embedding_model}}\" olarak ayarlandı",
"Enable Chat History": "Sohbet Geçmişini Etkinleştir",
@ -167,6 +177,7 @@
"Enter stop sequence": "Durdurma dizisini girin",
"Enter Top K": "Top K'yı girin",
"Enter URL (e.g. http://127.0.0.1:7860/)": "URL'yi Girin (örn. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "E-postanızı Girin",
"Enter Your Full Name": "Tam Adınızı Girin",
"Enter Your Password": "Parolanızı Girin",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Ollama Modellerini Yönet",
"Max Tokens": "Maksimum Token",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Aynı anda en fazla 3 model indirilebilir. Lütfen daha sonra tekrar deneyin.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "Minimum Skor",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Model dosyanıza ad verin",
"New Chat": "Yeni Sohbet",
"New Password": "Yeni Parola",
"No results found": "",
"No source available": "",
"Not factually correct": "Gerçeklere göre doğru değil",
"Not sure what to add?": "Ne ekleyeceğinizden emin değil misiniz?",
"Not sure what to write? Switch to": "Ne yazacağınızdan emin değil misiniz? Şuraya geçin",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "OpenAI URL/Anahtar gereklidir.",
"or": "veya",
"Other": "Diğer",
"Overview": "",
"Parameters": "Parametreler",
"Password": "Parola",
"PDF document (.pdf)": "PDF belgesi (.pdf)",
@ -300,6 +315,7 @@
"Prompt Content": "Prompt İçeriği",
"Prompt suggestions": "Prompt önerileri",
"Prompts": "Promptlar",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Ollama.com'dan bir model çekin",
"Pull Progress": "Çekme İlerlemesi",
"Query Params": "Sorgu Parametreleri",
@ -312,13 +328,17 @@
"Regenerate": "Tekrar Oluştur",
"Release Notes": "Sürüm Notları",
"Remove": "Kaldır",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Son N'yi Tekrar Et",
"Repeat Penalty": "Tekrar Cezası",
"Request Mode": "İstek Modu",
"Reranking Model": "",
"Reranking model disabled": "Yeniden sıralama modeli devre dışı bırakıldı",
"Reranking model set to \"{{reranking_model}}\"": "Yeniden sıralama modeli \"{{reranking_model}}\" olarak ayarlandı",
"Reset Vector Storage": "Vektör Depolamayı Sıfırla",
"Response AutoCopy to Clipboard": "Yanıtı Panoya Otomatik Kopyala",
"Retrieval Augmented Generation Settings": "",
"Role": "Rol",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Sunucu bağlantısı doğrulandı",
"Set as default": "Varsayılan olarak ayarla",
"Set Default Model": "Varsayılan Modeli Ayarla",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Görüntü Boyutunu Ayarla",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Adımları Ayarla",
"Set Title Auto-Generation Model": "Otomatik Başlık Oluşturma Modelini Ayarla",
"Set Voice": "Ses Ayarla",
@ -365,6 +387,7 @@
"Sign Out": ıkış Yap",
"Sign up": "Kaydol",
"Signing in": "Oturum açma",
"Source": "",
"Speech recognition error: {{error}}": "Konuşma tanıma hatası: {{error}}",
"Speech-to-Text Engine": "Konuşmadan Metne Motoru",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API bu tarayıcıda desteklenmiyor.",
@ -409,11 +432,7 @@
"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",
"Update and Copy Link": "Güncelle ve Bağlantıyı Kopyala",
"Update Embedding Model": "Gömme Modelini Güncelle",
"Update embedding model (e.g. {{model}})": "Gömme modelini güncelle (örn. {{model}})",
"Update password": "Parolayı Güncelle",
"Update Reranking Model": "Yeniden Sıralama Modelini Güncelle",
"Update reranking model (e.g. {{model}})": "Yeniden sıralama modelini güncelleyin (örn. {{model}})",
"Upload a GGUF model": "Bir GGUF modeli yükle",
"Upload files": "Dosyaları Yükle",
"Upload Progress": "Yükleme İlerlemesi",
@ -431,6 +450,7 @@
"Version": "Sürüm",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Uyarı: Gömme modelinizi günceller veya değiştirirseniz, tüm belgeleri yeniden içe aktarmanız gerekecektir.",
"Web": "Web",
"Web Params": "",
"Webhook URL": "Webhook URL",
"WebUI Add-ons": "WebUI Eklentileri",
"WebUI Settings": "WebUI Ayarları",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Bir prompt önerisi yazın (örn. Sen kimsin?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "[Konuyu veya anahtar kelimeyi] özetleyen 50 kelimelik bir özet yazın.",
"You": "Siz",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Sen yardımcı bir asistansın.",
"You're now logged in.": "Şimdi oturum açtınız.",
"Youtube": "Youtube"

View File

@ -35,6 +35,7 @@
"Already have an account?": "Вже є обліковий запис?",
"an assistant": "асистента",
"and": "та",
"and create a new shared link.": "",
"API Base URL": "Базова адреса URL API",
"API Key": "Ключ API",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "доступно!",
"Back": "Назад",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "Режим конструктора",
"Bypass SSL verification for Websites": "",
"Cancel": "Скасувати",
"Categories": "Категорії",
"Change Password": "Змінити пароль",
@ -70,7 +73,9 @@
"Chunk Overlap": "Перекриття фрагментів",
"Chunk Params": "Параметри фрагментів",
"Chunk Size": "Розмір фрагменту",
"Citation": "",
"Click here for help.": "Клацніть тут, щоб отримати допомогу.",
"Click here to": "",
"Click here to check other modelfiles.": "Клацніть тут, щоб перевірити інші файли моделей.",
"Click here to select": "Натисніть тут, щоб вибрати",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':",
"Create a modelfile": "Створити файл моделі",
"Create Account": "Створити обліковий запис",
"Create new key": "",
"Create new secret key": "",
"Created at": "Створено",
"Created At": "",
"Current Model": "Поточна модель",
@ -105,6 +112,7 @@
"Custom": "Налаштувати",
"Customize Ollama models for a specific purpose": "Налаштувати моделі Ollama для конкретної мети",
"Dark": "Темна",
"Dashboard": "",
"Database": "База даних",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "За замовчуванням",
@ -120,6 +128,7 @@
"Delete chat": "Видалити чат",
"Delete Chat": "",
"Delete Chats": "Видалити чати",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Видалено {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Редагувати документ",
"Edit User": "Редагувати користувача",
"Email": "Електронна пошта",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Увімкнути історію чату",
@ -167,6 +177,7 @@
"Enter stop sequence": "Введіть символ зупинки",
"Enter Top K": "Введіть Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Введіть URL-адресу (напр. http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Введіть вашу електронну пошту",
"Enter Your Full Name": "Введіть ваше ім'я",
"Enter Your Password": "Введіть ваш пароль",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Керування моделями Ollama",
"Max Tokens": "Максимальна кількість токенів",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 моделі можна завантажити одночасно. Будь ласка, спробуйте пізніше.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Назвіть свій файл моделі",
"New Chat": "Новий чат",
"New Password": "Новий пароль",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "Не впевнений, що додати?",
"Not sure what to write? Switch to": "Не впевнений, що писати? Переключитися на",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "або",
"Other": "",
"Overview": "",
"Parameters": "Параметри",
"Password": "Пароль",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Зміст промту",
"Prompt suggestions": "Швидкі промти",
"Prompts": "Промти",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Завантажити модель з Ollama.com",
"Pull Progress": "Прогрес завантаження",
"Query Params": "Параметри запиту",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Нотатки до випуску",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Повторити останні N",
"Repeat Penalty": "Штраф за повторення",
"Request Mode": "Режим запиту",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Скинути векторне сховище",
"Response AutoCopy to Clipboard": "Автокопіювання відповіді в буфер обміну",
"Retrieval Augmented Generation Settings": "",
"Role": "Роль",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "З'єднання з сервером підтверджено",
"Set as default": "Встановити за замовчуванням",
"Set Default Model": "Встановити модель за замовчуванням",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Встановити розмір зображення",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Встановити кроки",
"Set Title Auto-Generation Model": "Встановити модель автогенерації заголовків",
"Set Voice": "Встановити голос",
@ -365,6 +387,7 @@
"Sign Out": "Вийти",
"Sign up": "Зареєструватися",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Помилка розпізнавання мови: {{error}}",
"Speech-to-Text Engine": "Система розпізнавання мови",
"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API не підтримується в цьому браузері.",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "Ой! Виникла проблема при підключенні до {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Невідомий тип файлу '{{file_type}}', але приймається та обробляється як звичайний текст",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Оновити пароль",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Завантажити GGUF модель",
"Upload files": "Завантажити файли",
"Upload Progress": "Прогрес завантаження",
@ -431,6 +450,7 @@
"Version": "Версія",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Веб",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Додатки WebUI",
"WebUI Settings": "Налаштування WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Напишіть промт (напр. Хто ти?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Напишіть стислий зміст у 50 слів, який узагальнює [тема або ключове слово].",
"You": "Ви",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Ви корисний асистент.",
"You're now logged in.": "Ви увійшли в систему.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "Bạn đã có tài khoản?",
"an assistant": "trợ lý",
"and": "và",
"and create a new shared link.": "",
"API Base URL": "Đường dẫn tới API (API Base URL)",
"API Key": "API Key",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "có sẵn!",
"Back": "Quay lại",
"Bad Response": "",
"before": "",
"Being lazy": "Lười biếng",
"Builder Mode": "Chế độ Builder",
"Bypass SSL verification for Websites": "",
"Cancel": "Hủy bỏ",
"Categories": "Danh mục",
"Change Password": "Đổi Mật khẩu",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chồng lấn (overlap)",
"Chunk Params": "Cài đặt số lượng ký tự cho khối ký tự (chunk)",
"Chunk Size": "Kích thước khối (size)",
"Citation": "",
"Click here for help.": "Bấm vào đây để được trợ giúp.",
"Click here to": "",
"Click here to check other modelfiles.": "Bấm vào đây để kiểm tra các tệp mô tả mô hình (modelfiles) khác.",
"Click here to select": "Bấm vào đây để chọn",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Tạo một cụm từ súc tích, 3-5 từ làm tiêu đề cho truy vấn sau, tuân thủ nghiêm ngặt giới hạn 3-5 từ và tránh sử dụng từ 'tiêu đề':",
"Create a modelfile": "Tạo tệp mô tả cho mô hình",
"Create Account": "Tạo Tài khoản",
"Create new key": "",
"Create new secret key": "",
"Created at": "Được tạo vào lúc",
"Created At": "",
"Current Model": "Mô hình hiện tại",
@ -105,6 +112,7 @@
"Custom": "Tùy chỉnh",
"Customize Ollama models for a specific purpose": "Tùy chỉnh các mô hình dựa trên Ollama cho một mục đích cụ thể",
"Dark": "Tối",
"Dashboard": "",
"Database": "Cơ sở dữ liệu",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "Mặc định",
@ -120,6 +128,7 @@
"Delete chat": "Xóa nội dung chat",
"Delete Chat": "",
"Delete Chats": "Xóa nội dung chat",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "Đã xóa {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "Thay đổi tài liệu",
"Edit User": "Thay đổi thông tin người sử dụng",
"Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Bật Lịch sử chat",
@ -167,6 +177,7 @@
"Enter stop sequence": "Nhập stop sequence",
"Enter Top K": "Nhập Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Nhập URL (vd: http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Nhập Email của bạn",
"Enter Your Full Name": "Nhập Họ và Tên của bạn",
"Enter Your Password": "Nhập Mật khẩu của bạn",
@ -228,6 +239,7 @@
"Manage Ollama Models": "Quản lý mô hình với Ollama",
"Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Tối đa 3 mô hình có thể được tải xuống cùng lúc. Vui lòng thử lại sau.",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "Đặt tên cho tệp mô hình của bạn",
"New Chat": "Tạo cuộc trò chuyện mới",
"New Password": "Mật khẩu mới",
"No results found": "",
"No source available": "",
"Not factually correct": "Không chính xác so với thực tế",
"Not sure what to add?": "Không chắc phải thêm gì?",
"Not sure what to write? Switch to": "Không chắc phải viết gì? Chuyển sang",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "hoặc",
"Other": "Khác",
"Overview": "",
"Parameters": "Tham số",
"Password": "Mật khẩu",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "Nội dung prompt",
"Prompt suggestions": "Gợi ý prompt",
"Prompts": "Prompt",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Tải mô hình từ Ollama.com",
"Pull Progress": "Tiến trình Tải xuống",
"Query Params": "Tham số Truy vấn",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "Mô tả những cập nhật mới",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty",
"Request Mode": "Request Mode",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Cài đặt lại Vector Storage",
"Response AutoCopy to Clipboard": "Tự động Sao chép Phản hồi vào clipboard",
"Retrieval Augmented Generation Settings": "",
"Role": "Vai trò",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "Kết nối máy chủ đã được xác minh",
"Set as default": "Đặt làm mặc định",
"Set Default Model": "Đặt Mô hình Mặc định",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Đặt Kích thước ảnh",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Đặt Số Bước",
"Set Title Auto-Generation Model": "Đặt tiêu đề tự động",
"Set Voice": "Đặt Giọng nói",
@ -365,6 +387,7 @@
"Sign Out": "Đăng xuất",
"Sign up": "Đăng ký",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Lỗi nhận dạng giọng nói: {{error}}",
"Speech-to-Text Engine": "Công cụ Nhận dạng Giọng nói",
"SpeechRecognition API is not supported in this browser.": "Trình duyệt này không hỗ trợ API Nhận dạng Giọng nói.",
@ -409,11 +432,7 @@
"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ô",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Cập nhật mật khẩu",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Tải lên mô hình GGUF",
"Upload files": "Tải tệp lên hệ thống",
"Upload Progress": "Tiến trình tải tệp lên hệ thống",
@ -431,6 +450,7 @@
"Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "Tiện ích WebUI",
"WebUI Settings": "Cài đặt WebUI",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "Hãy viết một prompt (vd: Bạn là ai?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Viết một tóm tắt trong vòng 50 từ cho [chủ đề hoặc từ khóa].",
"You": "Bạn",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Bạn là một trợ lý hữu ích.",
"You're now logged in.": "Bạn đã đăng nhập.",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "已经有账户了吗?",
"an assistant": "助手",
"and": "和",
"and create a new shared link.": "",
"API Base URL": "API 基础 URL",
"API Key": "API 密钥",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "可用!",
"Back": "返回",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "构建模式",
"Bypass SSL verification for Websites": "",
"Cancel": "取消",
"Categories": "分类",
"Change Password": "更改密码",
@ -70,7 +73,9 @@
"Chunk Overlap": "块重叠(Chunk Overlap)",
"Chunk Params": "块参数(Chunk Params)",
"Chunk Size": "块大小(Chunk Size)",
"Citation": "",
"Click here for help.": "点击这里获取帮助。",
"Click here to": "",
"Click here to check other modelfiles.": "点击这里检查其他模型文件。",
"Click here to select": "点击这里选择",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "为以下查询创建一个简洁的、3-5个词的短语作为标题严格遵守3-5个词的限制并避免使用“标题”一词",
"Create a modelfile": "创建模型文件",
"Create Account": "创建账户",
"Create new key": "",
"Create new secret key": "",
"Created at": "创建于",
"Created At": "",
"Current Model": "当前模型",
@ -105,6 +112,7 @@
"Custom": "自定义",
"Customize Ollama models for a specific purpose": "定制特定用途的Ollama模型",
"Dark": "暗色",
"Dashboard": "",
"Database": "数据库",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "默认",
@ -120,6 +128,7 @@
"Delete chat": "删除聊天",
"Delete Chat": "",
"Delete Chats": "删除聊天记录",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "已删除{{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "编辑文档",
"Edit User": "编辑用户",
"Email": "电子邮件",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "启用聊天历史",
@ -167,6 +177,7 @@
"Enter stop sequence": "输入停止序列",
"Enter Top K": "输入 Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "输入 URL (例如 http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "输入您的电子邮件",
"Enter Your Full Name": "输入您的全名",
"Enter Your Password": "输入您的密码",
@ -228,6 +239,7 @@
"Manage Ollama Models": "管理Ollama模型",
"Max Tokens": "最大令牌数",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载3个模型请稍后重试。",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "命名你的模型文件",
"New Chat": "新聊天",
"New Password": "新密码",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "不确定要添加什么?",
"Not sure what to write? Switch to": "不确定写什么?切换到",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "或",
"Other": "",
"Overview": "",
"Parameters": "参数",
"Password": "密码",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "提示词内容",
"Prompt suggestions": "提示词建议",
"Prompts": "提示词",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型",
"Pull Progress": "拉取进度",
"Query Params": "查询参数",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "发布说明",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "重复最后 N 次",
"Repeat Penalty": "重复惩罚",
"Request Mode": "请求模式",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "重置向量存储",
"Response AutoCopy to Clipboard": "自动复制回答到剪贴板",
"Retrieval Augmented Generation Settings": "",
"Role": "角色",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -346,7 +366,9 @@
"Server connection verified": "已验证服务器连接",
"Set as default": "设为默认",
"Set Default Model": "设置默认模型",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "设置图片大小",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "设置步骤",
"Set Title Auto-Generation Model": "设置标题自动生成模型",
"Set Voice": "设置声音",
@ -365,6 +387,7 @@
"Sign Out": "登出",
"Sign up": "注册",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "语音识别错误:{{error}}",
"Speech-to-Text Engine": "语音转文字引擎",
"SpeechRecognition API is not supported in this browser.": "此浏览器不支持SpeechRecognition API。",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!连接到{{provider}}时出现问题。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "更新密码",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "上传一个GGUF模型",
"Upload files": "上传文件",
"Upload Progress": "上传进度",
@ -431,6 +450,7 @@
"Version": "版本",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "网页",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI 插件",
"WebUI Settings": "WebUI 设置",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "写一个提示建议(例如:你是谁?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "用50个字写一个总结[主题或关键词]。",
"You": "你",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "你是一个有帮助的助手。",
"You're now logged in.": "已登录。",
"Youtube": ""

View File

@ -35,6 +35,7 @@
"Already have an account?": "已經有帳號了嗎?",
"an assistant": "助手",
"and": "和",
"and create a new shared link.": "",
"API Base URL": "API 基本 URL",
"API Key": "API 金鑰",
"API Key created.": "",
@ -54,8 +55,10 @@
"available!": "可以使用!",
"Back": "返回",
"Bad Response": "",
"before": "",
"Being lazy": "",
"Builder Mode": "建構模式",
"Bypass SSL verification for Websites": "",
"Cancel": "取消",
"Categories": "分類",
"Change Password": "修改密碼",
@ -70,7 +73,9 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk 參數",
"Chunk Size": "Chunk 大小",
"Citation": "",
"Click here for help.": "點擊這裡尋找幫助。",
"Click here to": "",
"Click here to check other modelfiles.": "點擊這裡檢查其他 Modelfiles。",
"Click here to select": "點擊這裡選擇",
"Click here to select a csv file.": "",
@ -98,6 +103,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "為以下的查詢建立一個簡潔、3-5 個詞的短語作為標題,嚴格遵守 3-5 個詞的限制,避免使用「標題」這個詞:",
"Create a modelfile": "建立 Modelfile",
"Create Account": "建立帳號",
"Create new key": "",
"Create new secret key": "",
"Created at": "建立於",
"Created At": "",
"Current Model": "目前模型",
@ -105,6 +112,7 @@
"Custom": "自訂",
"Customize Ollama models for a specific purpose": "定制特定用途的 Ollama 模型",
"Dark": "暗色",
"Dashboard": "",
"Database": "資料庫",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"Default": "預設",
@ -120,6 +128,7 @@
"Delete chat": "刪除聊天紀錄",
"Delete Chat": "",
"Delete Chats": "刪除聊天紀錄",
"delete this link": "",
"Delete User": "",
"Deleted {{deleteModelTag}}": "已刪除 {{deleteModelTag}}",
"Deleted {{tagName}}": "",
@ -146,6 +155,7 @@
"Edit Doc": "編輯文件",
"Edit User": "編輯使用者",
"Email": "電子郵件",
"Embedding Model": "",
"Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "啟用聊天歷史",
@ -167,6 +177,7 @@
"Enter stop sequence": "輸入停止序列",
"Enter Top K": "輸入 Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "輸入 URL例如 http://127.0.0.1:7860/",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "輸入你的電子郵件",
"Enter Your Full Name": "輸入你的全名",
"Enter Your Password": "輸入你的密碼",
@ -228,6 +239,7 @@
"Manage Ollama Models": "管理 Ollama 模型",
"Max Tokens": "最大 Token 數",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同時下載 3 個模型。請稍後再試。",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
@ -258,6 +270,8 @@
"Name your modelfile": "命名你的 Modelfile",
"New Chat": "新增聊天",
"New Password": "新密碼",
"No results found": "",
"No source available": "",
"Not factually correct": "",
"Not sure what to add?": "不確定要新增什麼嗎?",
"Not sure what to write? Switch to": "不確定要寫什麼?切換到",
@ -286,6 +300,7 @@
"OpenAI URL/Key required.": "",
"or": "或",
"Other": "",
"Overview": "",
"Parameters": "參數",
"Password": "密碼",
"PDF document (.pdf)": "",
@ -300,6 +315,7 @@
"Prompt Content": "提示詞內容",
"Prompt suggestions": "提示詞建議",
"Prompts": "提示詞",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "從 Ollama.com 下載模型",
"Pull Progress": "下載進度",
"Query Params": "查詢參數",
@ -312,13 +328,17 @@
"Regenerate": "",
"Release Notes": "發布說明",
"Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "重複最後 N 次",
"Repeat Penalty": "重複懲罰",
"Request Mode": "請求模式",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "重置向量儲存空間",
"Response AutoCopy to Clipboard": "自動複製回答到剪貼簿",
"Retrieval Augmented Generation Settings": "",
"Role": "Role",
"Rosé Pine": "玫瑰松",
"Rosé Pine Dawn": "黎明玫瑰松",
@ -346,7 +366,9 @@
"Server connection verified": "已驗證伺服器連線",
"Set as default": "設為預設",
"Set Default Model": "設定預設模型",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "設定圖片大小",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "設定步數",
"Set Title Auto-Generation Model": "設定自動生成標題用模型",
"Set Voice": "設定語音",
@ -365,6 +387,7 @@
"Sign Out": "登出",
"Sign up": "註冊",
"Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "語音識別錯誤: {{error}}",
"Speech-to-Text Engine": "語音轉文字引擎",
"SpeechRecognition API is not supported in this browser.": "此瀏覽器不支持 SpeechRecognition API。",
@ -409,11 +432,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字",
"Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "更新密碼",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "上傳一個 GGUF 模型",
"Upload files": "上傳文件",
"Upload Progress": "上傳進度",
@ -431,6 +450,7 @@
"Version": "版本",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "網頁",
"Web Params": "",
"Webhook URL": "",
"WebUI Add-ons": "WebUI 擴充套件",
"WebUI Settings": "WebUI 設定",
@ -441,6 +461,8 @@
"Write a prompt suggestion (e.g. Who are you?)": "寫一個提示詞建議(例如:你是誰?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "寫一個50字的摘要來概括[主題或關鍵詞]。",
"You": "你",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "你是一位善於協助他人的助手。",
"You're now logged in.": "已登入。",
"Youtube": ""

View File

@ -366,7 +366,8 @@
},
format: $settings.requestFormat ?? undefined,
keep_alive: $settings.keepAlive ?? undefined,
docs: docs.length > 0 ? docs : undefined
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
});
if (res && res.ok) {
@ -401,6 +402,11 @@
console.log(line);
let data = JSON.parse(line);
if ('citations' in data) {
responseMessage.citations = data.citations;
continue;
}
if ('detail' in data) {
throw data;
}
@ -598,7 +604,8 @@
num_ctx: $settings?.options?.num_ctx ?? undefined,
frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
max_tokens: $settings?.options?.num_predict ?? undefined,
docs: docs.length > 0 ? docs : undefined
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
},
model?.source?.toLowerCase() === 'litellm'
? `${LITELLM_API_BASE_URL}/v1`
@ -614,7 +621,7 @@
const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
for await (const update of textStream) {
const { value, done } = update;
const { value, done, citations } = update;
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
@ -626,6 +633,11 @@
break;
}
if (citations) {
responseMessage.citations = citations;
continue;
}
if (responseMessage.content == '' && value == '\n') {
continue;
} else {

View File

@ -110,7 +110,7 @@
<div class=" flex flex-col justify-center">
<div class=" px-6 pt-4">
<div class=" flex justify-between items-center">
<div class="flex items-center text-2xl font-semibold">Dashboard</div>
<div class="flex items-center text-2xl font-semibold">{$i18n.t('Dashboard')}</div>
<div>
<Tooltip content={$i18n.t('Admin Settings')}>
<button
@ -140,8 +140,10 @@
</div>
</div>
<div class="px-6 flex text-sm gap-2.5">
<div class="py-3 border-b font-medium text-gray-100 cursor-pointer">Overview</div>
<div class="px-5 flex text-sm gap-2.5">
<div class="py-3 border-b font-medium text-gray-100 cursor-pointer">
{$i18n.t('Overview')}
</div>
<!-- <div class="py-3 text-gray-300 cursor-pointer">Users</div> -->
</div>
@ -268,7 +270,7 @@
<td class="px-3 py-2 text-right">
<div class="flex justify-end w-full">
{#if user.role !== 'admin'}
<Tooltip content="Chats">
<Tooltip content={$i18n.t('Chats')}>
<button
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
on:click={async () => {

View File

@ -378,7 +378,8 @@
},
format: $settings.requestFormat ?? undefined,
keep_alive: $settings.keepAlive ?? undefined,
docs: docs.length > 0 ? docs : undefined
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
});
if (res && res.ok) {
@ -413,6 +414,11 @@
console.log(line);
let data = JSON.parse(line);
if ('citations' in data) {
responseMessage.citations = data.citations;
continue;
}
if ('detail' in data) {
throw data;
}
@ -610,7 +616,8 @@
num_ctx: $settings?.options?.num_ctx ?? undefined,
frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
max_tokens: $settings?.options?.num_predict ?? undefined,
docs: docs.length > 0 ? docs : undefined
docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
},
model?.source?.toLowerCase() === 'litellm'
? `${LITELLM_API_BASE_URL}/v1`
@ -626,7 +633,7 @@
const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
for await (const update of textStream) {
const { value, done } = update;
const { value, done, citations } = update;
if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true;
messages = messages;
@ -638,6 +645,11 @@
break;
}
if (citations) {
responseMessage.citations = citations;
continue;
}
if (responseMessage.content == '' && value == '\n') {
continue;
} else {