Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29a2719595 | ||
|
|
976676a482 | ||
|
|
19ad8b4f26 | ||
|
|
f04767f1fe | ||
|
|
36085f3036 | ||
|
|
4a46417275 | ||
|
|
a68e717dcf | ||
|
|
346b7ddb14 | ||
|
|
31545439a0 | ||
|
|
5401b24717 | ||
|
|
152b1224a8 | ||
|
|
ac5ea4ff25 | ||
|
|
6e73b3d075 | ||
|
|
054a718da0 | ||
|
|
a63326b550 | ||
|
|
547d17c362 | ||
|
|
10382998f1 | ||
|
|
c5f7ad2009 | ||
|
|
6173636a11 | ||
|
|
9b6076f726 | ||
|
|
abbf37f3d9 | ||
|
|
5433340bb1 | ||
|
|
1dab0cfada | ||
|
|
2714a1bb64 | ||
|
|
4053de5825 | ||
|
|
29573afb91 | ||
|
|
39b7e54482 | ||
|
|
7f77828e3f | ||
|
|
59c3a18118 | ||
|
|
460992613f | ||
|
|
0055f3dcb6 | ||
|
|
1c078bdb55 | ||
|
|
85d2b898c6 | ||
|
|
b903e3a896 | ||
|
|
aecb7ae398 | ||
|
|
7f4a83ea0e | ||
|
|
c4ea31357f | ||
|
|
19bcda2362 | ||
|
|
39c2f70778 | ||
|
|
368e11e2b2 | ||
|
|
430a79e177 | ||
|
|
9b25efc3bb | ||
|
|
746fe9ea16 | ||
|
|
2fac9b45cd | ||
|
|
370f97b44e | ||
|
|
a26c5d9549 | ||
|
|
96cc8bf127 | ||
|
|
4bf9d071f0 | ||
|
|
1a74199656 | ||
|
|
4e19e66e7d | ||
|
|
27b1a35778 | ||
|
|
ba0b3a984d | ||
|
|
2f84e6b877 | ||
|
|
f311c03a21 | ||
|
|
ef3b6083ff | ||
|
|
d23fac2a5b | ||
|
|
8cb981c3f4 | ||
|
|
81a8ad2762 | ||
|
|
dbf6ec71fe | ||
|
|
0b17ff6eef | ||
|
|
19663e539a | ||
|
|
c192475528 | ||
|
|
9e436fe6b0 | ||
|
|
96b9f81ca7 | ||
|
|
62622893a5 | ||
|
|
aed2caefe1 | ||
|
|
acb61d3c42 | ||
|
|
d3778b0bda | ||
|
|
fda26b4ad0 | ||
|
|
5b879a2121 | ||
|
|
51e344f5b2 | ||
|
|
d0eb59ffdb | ||
|
|
541ff6b41a | ||
|
|
3792051604 | ||
|
|
684a7f0455 | ||
|
|
1f53e0922e | ||
|
|
ba6dc71810 | ||
|
|
33e54a9d3b | ||
|
|
9f981db0b9 | ||
|
|
3e1c42bdc9 | ||
|
|
aba610ac29 | ||
|
|
b4fb0d1da2 | ||
|
|
f547f1424c | ||
|
|
a07213b5be | ||
|
|
0e8e9820d0 | ||
|
|
28ce102a79 | ||
|
|
c1fd1d3490 | ||
|
|
fa5e1f7452 | ||
|
|
95000c7b15 | ||
|
|
8300fa85b0 | ||
|
|
94235397cf | ||
|
|
99e20bfe82 | ||
|
|
6440d8629e | ||
|
|
e5563ca435 | ||
|
|
53fbb19fa0 | ||
|
|
297b9470e8 | ||
|
|
1346559227 | ||
|
|
ac1ee888be | ||
|
|
ff0a7f1cbb | ||
|
|
ea883b2ed4 | ||
|
|
b85cfdc90f | ||
|
|
17ed7351a4 | ||
|
|
7be93d2a84 | ||
|
|
5d724d0b84 | ||
|
|
dbd6ac8080 | ||
|
|
53296c1005 | ||
|
|
26615ba995 | ||
|
|
c5ef53a09f | ||
|
|
0a26c41c7b | ||
|
|
da6535eeb4 | ||
|
|
2db35d5969 | ||
|
|
582ce23bb5 | ||
|
|
f42cc90a00 | ||
|
|
cbc7801b0e | ||
|
|
22b5feb747 | ||
|
|
4b536b5283 | ||
|
|
ede29e98b7 | ||
|
|
789e1db260 | ||
|
|
4383306770 | ||
|
|
13796fe3b3 | ||
|
|
63402c48a8 | ||
|
|
44efd4d372 | ||
|
|
a18292da84 | ||
|
|
adba11ebeb | ||
|
|
442f99e075 | ||
|
|
dc7221816f | ||
|
|
bddc293d82 | ||
|
|
3a2247b7a0 | ||
|
|
4831c9e57e | ||
|
|
e3236622f3 | ||
|
|
83f1fa7bb9 | ||
|
|
ba427bee3f | ||
|
|
b9458817b1 | ||
|
|
38eb6abbfc | ||
|
|
b173f86690 | ||
|
|
9b8f9c689b | ||
|
|
e40212a662 | ||
|
|
a37cad2ecf | ||
|
|
3b9e21ecf9 | ||
|
|
5fac25a002 | ||
|
|
2b4e8f6cea | ||
|
|
29fac5ecca | ||
|
|
f9e24968e3 | ||
|
|
c4f82309dc | ||
|
|
da4676de2e | ||
|
|
d870386d7d | ||
|
|
8dc73e8744 | ||
|
|
840437e58f | ||
|
|
bd28e1ed7d | ||
|
|
50c3be2136 | ||
|
|
907cf61da7 | ||
|
|
a3a205abd1 | ||
|
|
fac8c3259c | ||
|
|
e67fdce727 | ||
|
|
c465a37597 | ||
|
|
f5bda4bc27 | ||
|
|
9ff580b8ca | ||
|
|
d3acb5cbaa | ||
|
|
2a5506a9cd | ||
|
|
c567185cb1 | ||
|
|
5ed5e532a9 | ||
|
|
a83f89d430 | ||
|
|
b2d3bfa3a8 | ||
|
|
8744a12abb | ||
|
|
374d6cad18 | ||
|
|
d24c21b40f | ||
|
|
db929b5d5e | ||
|
|
47ae5221f7 | ||
|
|
79e988b281 | ||
|
|
9412f51c19 | ||
|
|
320cf06333 | ||
|
|
cede8a966f | ||
|
|
c561a4c42b | ||
|
|
b4e7957a00 | ||
|
|
c4eacbfc0f | ||
|
|
429fa2befa | ||
|
|
3cfd4f8993 | ||
|
|
1c3bc99b86 | ||
|
|
335337fc75 | ||
|
|
1ea03cc156 | ||
|
|
3923c4df65 | ||
|
|
70ea85484c | ||
|
|
35d75e733d | ||
|
|
259881f0b6 | ||
|
|
b4cd685795 | ||
|
|
2d5e1a8c6f | ||
|
|
f07ba60f2a | ||
|
|
e12cf77553 |
@@ -5,6 +5,82 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.4.8] - 2024-12-07
|
||||
|
||||
### Added
|
||||
|
||||
- **🔓 Bypass Model Access Control**: Introduced the 'BYPASS_MODEL_ACCESS_CONTROL' environment variable. Easily bypass model access controls for user roles when access control isn't required, simplifying workflows for trusted environments.
|
||||
- **📝 Markdown in Banners**: Now supports markdown for banners, enabling richer, more visually engaging announcements.
|
||||
- **🌐 Internationalization Updates**: Enhanced translations across multiple languages, further improving accessibility and global user experience.
|
||||
- **🎨 Styling Enhancements**: General UI style refinements for a cleaner and more polished interface.
|
||||
- **📋 Rich Text Reliability**: Improved the reliability and stability of rich text input across chats for smoother interactions.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **💡 Tailwind Build Issue**: Resolved a breaking bug caused by Tailwind, ensuring smoother builds and overall system reliability.
|
||||
- **📚 Knowledge Collection Query Fix**: Addressed API endpoint issues with querying knowledge collections, ensuring accurate and reliable information retrieval.
|
||||
|
||||
## [0.4.7] - 2024-12-01
|
||||
|
||||
### Added
|
||||
|
||||
- **✨ Prompt Input Auto-Completion**: Type a prompt and let AI intelligently suggest and complete your inputs. Simply press 'Tab' or swipe right on mobile to confirm. Available only with Rich Text Input (default setting). Disable via Admin Settings for full control.
|
||||
- **🌍 Improved Translations**: Enhanced localization for multiple languages, ensuring a more polished and accessible experience for international users.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **🛠️ Tools Export Issue**: Resolved a critical issue where exporting tools wasn’t functioning, restoring seamless export capabilities.
|
||||
- **🔗 Model ID Registration**: Fixed an issue where model IDs weren’t registering correctly in the model editor, ensuring reliable model setup and tracking.
|
||||
- **🖋️ Textarea Auto-Expansion**: Corrected a bug where textareas didn’t expand automatically on certain browsers, improving usability for multi-line inputs.
|
||||
- **🔧 Ollama Embed Endpoint**: Addressed the /ollama/embed endpoint malfunction, ensuring consistent performance and functionality.
|
||||
|
||||
### Changed
|
||||
|
||||
- **🎨 Knowledge Base Styling**: Refined knowledge base visuals for a cleaner, more modern look, laying the groundwork for further enhancements in upcoming releases.
|
||||
|
||||
## [0.4.6] - 2024-11-26
|
||||
|
||||
### Added
|
||||
|
||||
- **🌍 Enhanced Translations**: Various language translations improved to make the WebUI more accessible and user-friendly worldwide.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **✏️ Textarea Shifting Bug**: Resolved the issue where the textarea shifted unexpectedly, ensuring a smoother typing experience.
|
||||
- **⚙️ Model Configuration Modal**: Fixed the issue where the models configuration modal introduced in 0.4.5 wasn’t working for some users.
|
||||
- **🔍 Legacy Query Support**: Restored functionality for custom query generation in RAG when using legacy prompts, ensuring both default and custom templates now work seamlessly.
|
||||
- **⚡ Improved General Reliability**: Various minor fixes improve platform stability and ensure a smoother overall experience across workflows.
|
||||
|
||||
## [0.4.5] - 2024-11-26
|
||||
|
||||
### Added
|
||||
|
||||
- **🎨 Model Order/Defaults Reintroduced**: Brought back the ability to set model order and default models, now configurable via Admin Settings > Models > Configure (Gear Icon).
|
||||
|
||||
### Fixed
|
||||
|
||||
- **🔍 Query Generation Issue**: Resolved an error in web search query generation, enhancing search accuracy and ensuring smoother search workflows.
|
||||
- **📏 Textarea Auto Height Bug**: Fixed a layout issue where textarea input height was shifting unpredictably, particularly when editing system prompts.
|
||||
- **🔑 Ollama Authentication**: Corrected an issue with Ollama’s authorization headers, guaranteeing reliable authentication across all endpoints.
|
||||
- **⚙️ Missing Min_P Save**: Resolved an issue where the 'min_p' parameter was not being saved in configurations.
|
||||
- **🛠️ Tools Description**: Fixed a key issue that omitted tool descriptions in tools payload.
|
||||
|
||||
## [0.4.4] - 2024-11-22
|
||||
|
||||
### Added
|
||||
|
||||
- **🌐 Translation Updates**: Refreshed Catalan, Brazilian Portuguese, German, and Ukrainian translations, further enhancing the platform's accessibility and improving the experience for international users.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **📱 Mobile Controls Visibility**: Resolved an issue where the controls button was not displaying on the new chats page for mobile users, ensuring smoother navigation and functionality on smaller screens.
|
||||
- **📷 LDAP Profile Image Issue**: Fixed an LDAP integration bug related to profile images, ensuring seamless authentication and a reliable login experience for users.
|
||||
- **⏳ RAG Query Generation Issue**: Addressed a significant problem where RAG query generation occurred unnecessarily without attached files, drastically improving speed and reducing delays during chat completions.
|
||||
|
||||
### Changed
|
||||
|
||||
- **⚙️ Legacy Event Emitter Support**: Reintroduced compatibility with legacy "citation" types for event emitters in tools and functions, providing smoother workflows and broader tool support for users.
|
||||
|
||||
## [0.4.3] - 2024-11-21
|
||||
|
||||
### Added
|
||||
|
||||
+60
-38
@@ -2,76 +2,98 @@
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
As members, contributors, and leaders of this community, we pledge to make participation in our open-source project a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
||||
We are committed to creating and maintaining an open, respectful, and professional environment where positive contributions and meaningful discussions can flourish. By participating in this project, you agree to uphold these values and align your behavior to the standards outlined in this Code of Conduct.
|
||||
|
||||
## Why These Standards Are Important
|
||||
|
||||
Open-source projects rely on a community of volunteers dedicating their time, expertise, and effort toward a shared goal. These projects are inherently collaborative but also fragile, as the success of the project depends on the goodwill, energy, and productivity of those involved.
|
||||
|
||||
Maintaining a positive and respectful environment is essential to safeguarding the integrity of this project and protecting contributors' efforts. Behavior that disrupts this atmosphere—whether through hostility, entitlement, or unprofessional conduct—can severely harm the morale and productivity of the community. **Strict enforcement of these standards ensures a safe and supportive space for meaningful collaboration.**
|
||||
|
||||
This is a community where **respect and professionalism are mandatory.** Violations of these standards will result in **zero tolerance** and immediate enforcement to prevent disruption and ensure the well-being of all participants.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contribute to a positive environment for our community include:
|
||||
Examples of behavior that contribute to a positive and professional community include:
|
||||
|
||||
- Demonstrating empathy and kindness toward other people
|
||||
- Being respectful of differing opinions, viewpoints, and experiences
|
||||
- Giving and gracefully accepting constructive feedback
|
||||
- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
|
||||
- Focusing on what is best not just for us as individuals, but for the overall community
|
||||
- **Respecting others.** Be considerate, listen actively, and engage with empathy toward others' viewpoints and experiences.
|
||||
- **Constructive feedback.** Provide actionable, thoughtful, and respectful feedback that helps improve the project and encourages collaboration. Avoid unproductive negativity or hypercriticism.
|
||||
- **Recognizing volunteer contributions.** Appreciate that contributors dedicate their free time and resources selflessly. Approach them with gratitude and patience.
|
||||
- **Focusing on shared goals.** Collaborate in ways that prioritize the health, success, and sustainability of the community over individual agendas.
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
- The use of sexualized language or imagery, and sexual attention or advances of any kind
|
||||
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
- Public or private harassment
|
||||
- Publishing others' private information, such as a physical or email address, without their explicit permission
|
||||
- **Spamming of any kind**
|
||||
- Aggressive sales tactics targeting our community members are strictly prohibited. You can mention your product if it's relevant to the discussion, but under no circumstances should you push it forcefully
|
||||
- Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
- The use of discriminatory, demeaning, or sexualized language or behavior.
|
||||
- Personal attacks, derogatory comments, trolling, or inflammatory political or ideological arguments.
|
||||
- Harassment, intimidation, or any behavior intended to create a hostile, uncomfortable, or unsafe environment.
|
||||
- Publishing others' private information (e.g., physical or email addresses) without explicit permission.
|
||||
- **Entitlement, demand, or aggression toward contributors.** Volunteers are under no obligation to provide immediate or personalized support. Rude or dismissive behavior will not be tolerated.
|
||||
- **Unproductive or destructive behavior.** This includes venting frustration as hostility ("tantrums"), hypercriticism, attention-seeking negativity, or anything that distracts from the project's goals.
|
||||
- **Spamming and promotional exploitation.** Sharing irrelevant product promotions or self-promotion in the community is not allowed unless it directly contributes value to the discussion.
|
||||
|
||||
### Feedback and Community Engagement
|
||||
|
||||
- **Constructive feedback is encouraged, but hostile or entitled behavior will result in immediate action.** If you disagree with elements of the project, we encourage you to offer meaningful improvements or fork the project if necessary. Healthy discussions and technical disagreements are welcome only when handled with professionalism.
|
||||
- **Respect contributors' time and efforts.** No one is entitled to personalized or on-demand assistance. This is a community built on collaboration and shared effort; demanding or demeaning behavior undermines that trust and will not be allowed.
|
||||
|
||||
### Zero Tolerance: No Warnings, Immediate Action
|
||||
|
||||
This community operates under a **zero-tolerance policy.** Any behavior deemed unacceptable under this Code of Conduct will result in **immediate enforcement, without prior warning.**
|
||||
|
||||
We employ this approach to ensure that unproductive or disruptive behavior does not escalate further or cause unnecessary harm to other contributors. The standards are clear, and violations of any kind—whether mild or severe—will be addressed decisively to protect the community.
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
||||
Community leaders are responsible for upholding and enforcing these standards. They are empowered to take **immediate and appropriate action** to address any behaviors they deem unacceptable under this Code of Conduct. These actions are taken with the goal of protecting the community and preserving its safe, positive, and productive environment.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
|
||||
This Code of Conduct applies to all community spaces, including forums, repositories, social media accounts, and in-person events. It also applies when an individual represents the community in public settings, such as conferences or official communications.
|
||||
|
||||
## Enforcement
|
||||
Additionally, any behavior outside of these defined spaces that negatively impacts the community or its members may fall within the scope of this Code of Conduct.
|
||||
|
||||
Instances of abusive, harassing, spamming, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at hello@openwebui.com. All complaints will be reviewed and investigated promptly and fairly.
|
||||
## Reporting Violations
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
||||
Instances of unacceptable behavior can be reported to the leadership team at **hello@openwebui.com**. Reports will be handled promptly, confidentially, and with consideration for the safety and well-being of the reporter.
|
||||
|
||||
All community leaders are required to uphold confidentiality and impartiality when addressing reports of violations.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
|
||||
### Ban
|
||||
|
||||
### 1. Temporary Ban
|
||||
**Community Impact**: Community leaders will issue a ban to any participant whose behavior is deemed unacceptable according to this Code of Conduct. Bans are enforced immediately and without prior notice.
|
||||
|
||||
**Community Impact**: Any violation of community standards, including but not limited to inappropriate language, unprofessional behavior, harassment, or spamming.
|
||||
A ban may be temporary or permanent, depending on the severity of the violation. This includes—but is not limited to—behavior such as:
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
|
||||
- Harassment or abusive behavior toward contributors.
|
||||
- Persistent negativity or hostility that disrupts the collaborative environment.
|
||||
- Disrespectful, demanding, or aggressive interactions with others.
|
||||
- Attempts to cause harm or sabotage the community.
|
||||
|
||||
### 2. Permanent Ban
|
||||
**Consequence**: A banned individual is immediately removed from access to all community spaces, communication channels, and events. Community leaders reserve the right to enforce either a time-limited suspension or a permanent ban based on the specific circumstances of the violation.
|
||||
|
||||
**Community Impact**: Repeated or severe violations of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
|
||||
This approach ensures that disruptive behaviors are addressed swiftly and decisively in order to maintain the integrity and productivity of the community.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the community.
|
||||
## Why Zero Tolerance Is Necessary
|
||||
|
||||
Open-source projects thrive on collaboration, goodwill, and mutual respect. Toxic behaviors—such as entitlement, hostility, or persistent negativity—threaten not just individual contributors but the health of the project as a whole. Allowing such behaviors to persist robs contributors of their time, energy, and enthusiasm for the work they do.
|
||||
|
||||
By enforcing a zero-tolerance policy, we ensure that the community remains a safe, welcoming space for all participants. These measures are not about harshness—they are about protecting contributors and fostering a productive environment where innovation can thrive.
|
||||
|
||||
Our expectations are clear, and our enforcement reflects our commitment to this project's long-term success.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
||||
|
||||
@@ -8,6 +8,8 @@ from pathlib import Path
|
||||
from pydub import AudioSegment
|
||||
from pydub.silence import split_on_silence
|
||||
|
||||
import aiohttp
|
||||
import aiofiles
|
||||
import requests
|
||||
from open_webui.config import (
|
||||
AUDIO_STT_ENGINE,
|
||||
@@ -292,46 +294,39 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
r = None
|
||||
try:
|
||||
r = requests.post(
|
||||
url=f"{app.state.config.TTS_OPENAI_API_BASE_URL}/audio/speech",
|
||||
data=body,
|
||||
headers=headers,
|
||||
stream=True,
|
||||
)
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.post(
|
||||
url=f"{app.state.config.TTS_OPENAI_API_BASE_URL}/audio/speech",
|
||||
data=body,
|
||||
headers=headers,
|
||||
) as r:
|
||||
r.raise_for_status()
|
||||
async with aiofiles.open(file_path, "wb") as f:
|
||||
await f.write(await r.read())
|
||||
|
||||
r.raise_for_status()
|
||||
async with aiofiles.open(file_body_path, "w") as f:
|
||||
await f.write(json.dumps(json.loads(body.decode("utf-8"))))
|
||||
|
||||
# Save the streaming content to a file
|
||||
with open(file_path, "wb") as f:
|
||||
for chunk in r.iter_content(chunk_size=8192):
|
||||
f.write(chunk)
|
||||
|
||||
with open(file_body_path, "w") as f:
|
||||
json.dump(json.loads(body.decode("utf-8")), f)
|
||||
|
||||
# Return the saved file
|
||||
return FileResponse(file_path)
|
||||
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
error_detail = "Open WebUI: Server Connection Error"
|
||||
if r is not None:
|
||||
try:
|
||||
res = r.json()
|
||||
try:
|
||||
if r.status != 200:
|
||||
res = await r.json()
|
||||
if "error" in res:
|
||||
error_detail = f"External: {res['error']['message']}"
|
||||
except Exception:
|
||||
error_detail = f"External: {e}"
|
||||
except Exception:
|
||||
error_detail = f"External: {e}"
|
||||
|
||||
raise HTTPException(
|
||||
status_code=r.status_code if r != None else 500,
|
||||
status_code=getattr(r, "status", 500),
|
||||
detail=error_detail,
|
||||
)
|
||||
|
||||
elif app.state.config.TTS_ENGINE == "elevenlabs":
|
||||
payload = None
|
||||
try:
|
||||
payload = json.loads(body.decode("utf-8"))
|
||||
except Exception as e:
|
||||
@@ -339,7 +334,6 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
||||
raise HTTPException(status_code=400, detail="Invalid JSON payload")
|
||||
|
||||
voice_id = payload.get("voice", "")
|
||||
|
||||
if voice_id not in get_available_voices():
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
@@ -347,13 +341,11 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
||||
)
|
||||
|
||||
url = f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}"
|
||||
|
||||
headers = {
|
||||
"Accept": "audio/mpeg",
|
||||
"Content-Type": "application/json",
|
||||
"xi-api-key": app.state.config.TTS_API_KEY,
|
||||
}
|
||||
|
||||
data = {
|
||||
"text": payload["input"],
|
||||
"model_id": app.state.config.TTS_MODEL,
|
||||
@@ -361,39 +353,34 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
||||
}
|
||||
|
||||
try:
|
||||
r = requests.post(url, json=data, headers=headers)
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.post(url, json=data, headers=headers) as r:
|
||||
r.raise_for_status()
|
||||
async with aiofiles.open(file_path, "wb") as f:
|
||||
await f.write(await r.read())
|
||||
|
||||
r.raise_for_status()
|
||||
async with aiofiles.open(file_body_path, "w") as f:
|
||||
await f.write(json.dumps(json.loads(body.decode("utf-8"))))
|
||||
|
||||
# Save the streaming content to a file
|
||||
with open(file_path, "wb") as f:
|
||||
for chunk in r.iter_content(chunk_size=8192):
|
||||
f.write(chunk)
|
||||
|
||||
with open(file_body_path, "w") as f:
|
||||
json.dump(json.loads(body.decode("utf-8")), f)
|
||||
|
||||
# Return the saved file
|
||||
return FileResponse(file_path)
|
||||
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
error_detail = "Open WebUI: Server Connection Error"
|
||||
if r is not None:
|
||||
try:
|
||||
res = r.json()
|
||||
try:
|
||||
if r.status != 200:
|
||||
res = await r.json()
|
||||
if "error" in res:
|
||||
error_detail = f"External: {res['error']['message']}"
|
||||
except Exception:
|
||||
error_detail = f"External: {e}"
|
||||
except Exception:
|
||||
error_detail = f"External: {e}"
|
||||
|
||||
raise HTTPException(
|
||||
status_code=r.status_code if r != None else 500,
|
||||
status_code=getattr(r, "status", 500),
|
||||
detail=error_detail,
|
||||
)
|
||||
|
||||
elif app.state.config.TTS_ENGINE == "azure":
|
||||
payload = None
|
||||
try:
|
||||
payload = json.loads(body.decode("utf-8"))
|
||||
except Exception as e:
|
||||
@@ -416,17 +403,20 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
||||
<voice name="{language}">{payload["input"]}</voice>
|
||||
</speak>"""
|
||||
|
||||
response = requests.post(url, headers=headers, data=data)
|
||||
|
||||
if response.status_code == 200:
|
||||
with open(file_path, "wb") as f:
|
||||
f.write(response.content)
|
||||
return FileResponse(file_path)
|
||||
else:
|
||||
log.error(f"Error synthesizing speech - {response.reason}")
|
||||
raise HTTPException(
|
||||
status_code=500, detail=f"Error synthesizing speech - {response.reason}"
|
||||
)
|
||||
try:
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.post(url, headers=headers, data=data) as response:
|
||||
if response.status == 200:
|
||||
async with aiofiles.open(file_path, "wb") as f:
|
||||
await f.write(await response.read())
|
||||
return FileResponse(file_path)
|
||||
else:
|
||||
error_msg = f"Error synthesizing speech - {response.reason}"
|
||||
log.error(error_msg)
|
||||
raise HTTPException(status_code=500, detail=error_msg)
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
elif app.state.config.TTS_ENGINE == "transformers":
|
||||
payload = None
|
||||
try:
|
||||
|
||||
@@ -24,6 +24,7 @@ from open_webui.config import (
|
||||
from open_webui.env import (
|
||||
AIOHTTP_CLIENT_TIMEOUT,
|
||||
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST,
|
||||
BYPASS_MODEL_ACCESS_CONTROL,
|
||||
)
|
||||
|
||||
|
||||
@@ -195,7 +196,10 @@ async def post_streaming_url(
|
||||
trust_env=True, timeout=aiohttp.ClientTimeout(total=AIOHTTP_CLIENT_TIMEOUT)
|
||||
)
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
key = api_config.get("key", None)
|
||||
|
||||
headers = {"Content-Type": "application/json"}
|
||||
@@ -210,13 +214,13 @@ async def post_streaming_url(
|
||||
r.raise_for_status()
|
||||
|
||||
if stream:
|
||||
headers = dict(r.headers)
|
||||
response_headers = dict(r.headers)
|
||||
if content_type:
|
||||
headers["Content-Type"] = content_type
|
||||
response_headers["Content-Type"] = content_type
|
||||
return StreamingResponse(
|
||||
r.content,
|
||||
status_code=r.status,
|
||||
headers=headers,
|
||||
headers=response_headers,
|
||||
background=BackgroundTask(
|
||||
cleanup_response, response=r, session=session
|
||||
),
|
||||
@@ -324,7 +328,10 @@ async def get_ollama_tags(
|
||||
else:
|
||||
url = app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
key = api_config.get("key", None)
|
||||
|
||||
headers = {}
|
||||
@@ -353,7 +360,7 @@ async def get_ollama_tags(
|
||||
detail=error_detail,
|
||||
)
|
||||
|
||||
if user.role == "user":
|
||||
if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
|
||||
# Filter models based on user access control
|
||||
filtered_models = []
|
||||
for model in models.get("models", []):
|
||||
@@ -525,7 +532,10 @@ async def copy_model(
|
||||
url = app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||
log.info(f"url: {url}")
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
key = api_config.get("key", None)
|
||||
|
||||
headers = {"Content-Type": "application/json"}
|
||||
@@ -584,7 +594,10 @@ async def delete_model(
|
||||
url = app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||
log.info(f"url: {url}")
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
key = api_config.get("key", None)
|
||||
|
||||
headers = {"Content-Type": "application/json"}
|
||||
@@ -635,7 +648,10 @@ async def show_model_info(form_data: ModelNameForm, user=Depends(get_verified_us
|
||||
url = app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||
log.info(f"url: {url}")
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
key = api_config.get("key", None)
|
||||
|
||||
headers = {"Content-Type": "application/json"}
|
||||
@@ -691,7 +707,7 @@ async def generate_embeddings(
|
||||
url_idx: Optional[int] = None,
|
||||
user=Depends(get_verified_user),
|
||||
):
|
||||
return generate_ollama_batch_embeddings(form_data, url_idx)
|
||||
return await generate_ollama_batch_embeddings(form_data, url_idx)
|
||||
|
||||
|
||||
@app.post("/api/embeddings")
|
||||
@@ -730,7 +746,10 @@ async def generate_ollama_embeddings(
|
||||
url = app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||
log.info(f"url: {url}")
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
key = api_config.get("key", None)
|
||||
|
||||
headers = {"Content-Type": "application/json"}
|
||||
@@ -797,7 +816,10 @@ async def generate_ollama_batch_embeddings(
|
||||
url = app.state.config.OLLAMA_BASE_URLS[url_idx]
|
||||
log.info(f"url: {url}")
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
key = api_config.get("key", None)
|
||||
|
||||
headers = {"Content-Type": "application/json"}
|
||||
@@ -974,7 +996,10 @@ async def generate_chat_completion(
|
||||
log.info(f"url: {url}")
|
||||
log.debug(f"generate_chat_completion() - 2.payload = {payload}")
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(url, {})
|
||||
parsed_url = urlparse(url)
|
||||
base_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
||||
|
||||
api_config = app.state.config.OLLAMA_API_CONFIGS.get(base_url, {})
|
||||
prefix_id = api_config.get("prefix_id", None)
|
||||
if prefix_id:
|
||||
payload["model"] = payload["model"].replace(f"{prefix_id}.", "")
|
||||
@@ -1043,7 +1068,7 @@ async def generate_openai_chat_completion(
|
||||
payload = apply_model_system_prompt_to_body(params, payload, user)
|
||||
|
||||
# Check if user has access to the model
|
||||
if user.role == "user":
|
||||
if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
|
||||
if not (
|
||||
user.id == model_info.user_id
|
||||
or has_access(
|
||||
@@ -1132,7 +1157,7 @@ async def get_openai_models(
|
||||
detail=error_detail,
|
||||
)
|
||||
|
||||
if user.role == "user":
|
||||
if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
|
||||
# Filter models based on user access control
|
||||
filtered_models = []
|
||||
for model in models:
|
||||
|
||||
@@ -24,6 +24,7 @@ from open_webui.env import (
|
||||
AIOHTTP_CLIENT_TIMEOUT,
|
||||
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST,
|
||||
ENABLE_FORWARD_USER_INFO_HEADERS,
|
||||
BYPASS_MODEL_ACCESS_CONTROL,
|
||||
)
|
||||
|
||||
from open_webui.constants import ERROR_MESSAGES
|
||||
@@ -422,7 +423,7 @@ async def get_models(url_idx: Optional[int] = None, user=Depends(get_verified_us
|
||||
error_detail = f"Unexpected error: {str(e)}"
|
||||
raise HTTPException(status_code=500, detail=error_detail)
|
||||
|
||||
if user.role == "user":
|
||||
if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
|
||||
# Filter models based on user access control
|
||||
filtered_models = []
|
||||
for model in models.get("data", []):
|
||||
@@ -585,8 +586,6 @@ async def generate_chat_completion(
|
||||
# Convert the modified body back to JSON
|
||||
payload = json.dumps(payload)
|
||||
|
||||
log.debug(payload)
|
||||
|
||||
headers = {}
|
||||
headers["Authorization"] = f"Bearer {key}"
|
||||
headers["Content-Type"] = "application/json"
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
import logging
|
||||
|
||||
from typing import Any, Dict, Generator, List, Optional, Sequence, Union
|
||||
from urllib.parse import parse_qs, urlparse
|
||||
from langchain_core.documents import Document
|
||||
from open_webui.env import SRC_LOG_LEVELS
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(SRC_LOG_LEVELS["RAG"])
|
||||
|
||||
ALLOWED_SCHEMES = {"http", "https"}
|
||||
ALLOWED_NETLOCS = {
|
||||
@@ -51,12 +56,14 @@ class YoutubeLoader:
|
||||
self,
|
||||
video_id: str,
|
||||
language: Union[str, Sequence[str]] = "en",
|
||||
proxy_url: Optional[str] = None,
|
||||
):
|
||||
"""Initialize with YouTube video ID."""
|
||||
_video_id = _parse_video_id(video_id)
|
||||
self.video_id = _video_id if _video_id is not None else video_id
|
||||
self._metadata = {"source": video_id}
|
||||
self.language = language
|
||||
self.proxy_url = proxy_url
|
||||
if isinstance(language, str):
|
||||
self.language = [language]
|
||||
else:
|
||||
@@ -76,10 +83,22 @@ class YoutubeLoader:
|
||||
"Please install it with `pip install youtube-transcript-api`."
|
||||
)
|
||||
|
||||
if self.proxy_url:
|
||||
youtube_proxies = {
|
||||
"http": self.proxy_url,
|
||||
"https": self.proxy_url,
|
||||
}
|
||||
# Don't log complete URL because it might contain secrets
|
||||
log.debug(f"Using proxy URL: {self.proxy_url[:14]}...")
|
||||
else:
|
||||
youtube_proxies = None
|
||||
|
||||
try:
|
||||
transcript_list = YouTubeTranscriptApi.list_transcripts(self.video_id)
|
||||
transcript_list = YouTubeTranscriptApi.list_transcripts(
|
||||
self.video_id, proxies=youtube_proxies
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
log.exception("Loading YouTube transcript failed")
|
||||
return []
|
||||
|
||||
try:
|
||||
|
||||
@@ -105,6 +105,7 @@ from open_webui.config import (
|
||||
TIKA_SERVER_URL,
|
||||
UPLOAD_DIR,
|
||||
YOUTUBE_LOADER_LANGUAGE,
|
||||
YOUTUBE_LOADER_PROXY_URL,
|
||||
DEFAULT_LOCALE,
|
||||
AppConfig,
|
||||
)
|
||||
@@ -171,6 +172,7 @@ app.state.config.OLLAMA_API_KEY = RAG_OLLAMA_API_KEY
|
||||
app.state.config.PDF_EXTRACT_IMAGES = PDF_EXTRACT_IMAGES
|
||||
|
||||
app.state.config.YOUTUBE_LOADER_LANGUAGE = YOUTUBE_LOADER_LANGUAGE
|
||||
app.state.config.YOUTUBE_LOADER_PROXY_URL = YOUTUBE_LOADER_PROXY_URL
|
||||
app.state.YOUTUBE_LOADER_TRANSLATION = None
|
||||
|
||||
|
||||
@@ -471,6 +473,7 @@ async def get_rag_config(user=Depends(get_admin_user)):
|
||||
"youtube": {
|
||||
"language": app.state.config.YOUTUBE_LOADER_LANGUAGE,
|
||||
"translation": app.state.YOUTUBE_LOADER_TRANSLATION,
|
||||
"proxy_url": app.state.config.YOUTUBE_LOADER_PROXY_URL,
|
||||
},
|
||||
"web": {
|
||||
"web_loader_ssl_verification": app.state.config.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION,
|
||||
@@ -518,6 +521,7 @@ class ChunkParamUpdateForm(BaseModel):
|
||||
class YoutubeLoaderConfig(BaseModel):
|
||||
language: list[str]
|
||||
translation: Optional[str] = None
|
||||
proxy_url: str = ""
|
||||
|
||||
|
||||
class WebSearchConfig(BaseModel):
|
||||
@@ -580,6 +584,7 @@ async def update_rag_config(form_data: ConfigUpdateForm, user=Depends(get_admin_
|
||||
|
||||
if form_data.youtube is not None:
|
||||
app.state.config.YOUTUBE_LOADER_LANGUAGE = form_data.youtube.language
|
||||
app.state.config.YOUTUBE_LOADER_PROXY_URL = form_data.youtube.proxy_url
|
||||
app.state.YOUTUBE_LOADER_TRANSLATION = form_data.youtube.translation
|
||||
|
||||
if form_data.web is not None:
|
||||
@@ -640,6 +645,7 @@ async def update_rag_config(form_data: ConfigUpdateForm, user=Depends(get_admin_
|
||||
},
|
||||
"youtube": {
|
||||
"language": app.state.config.YOUTUBE_LOADER_LANGUAGE,
|
||||
"proxy_url": app.state.config.YOUTUBE_LOADER_PROXY_URL,
|
||||
"translation": app.state.YOUTUBE_LOADER_TRANSLATION,
|
||||
},
|
||||
"web": {
|
||||
@@ -867,7 +873,7 @@ def save_docs_to_vector_db(
|
||||
return True
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
return False
|
||||
raise e
|
||||
|
||||
|
||||
class ProcessFileForm(BaseModel):
|
||||
@@ -897,7 +903,7 @@ def process_file(
|
||||
|
||||
docs = [
|
||||
Document(
|
||||
page_content=form_data.content,
|
||||
page_content=form_data.content.replace("<br/>", "\n"),
|
||||
metadata={
|
||||
**file.meta,
|
||||
"name": file.filename,
|
||||
@@ -1081,7 +1087,9 @@ def process_youtube_video(form_data: ProcessUrlForm, user=Depends(get_verified_u
|
||||
collection_name = calculate_sha256_string(form_data.url)[:63]
|
||||
|
||||
loader = YoutubeLoader(
|
||||
form_data.url, language=app.state.config.YOUTUBE_LOADER_LANGUAGE
|
||||
form_data.url,
|
||||
language=app.state.config.YOUTUBE_LOADER_LANGUAGE,
|
||||
proxy_url=app.state.config.YOUTUBE_LOADER_PROXY_URL,
|
||||
)
|
||||
|
||||
docs = loader.load()
|
||||
@@ -1391,7 +1399,7 @@ def query_collection_handler(
|
||||
if app.state.config.ENABLE_RAG_HYBRID_SEARCH:
|
||||
return query_collection_with_hybrid_search(
|
||||
collection_names=form_data.collection_names,
|
||||
query=form_data.query,
|
||||
queries=[form_data.query],
|
||||
embedding_function=app.state.EMBEDDING_FUNCTION,
|
||||
k=form_data.k if form_data.k else app.state.config.TOP_K,
|
||||
reranking_function=app.state.sentence_transformer_rf,
|
||||
@@ -1402,7 +1410,7 @@ def query_collection_handler(
|
||||
else:
|
||||
return query_collection(
|
||||
collection_names=form_data.collection_names,
|
||||
query=form_data.query,
|
||||
queries=[form_data.query],
|
||||
embedding_function=app.state.EMBEDDING_FUNCTION,
|
||||
k=form_data.k if form_data.k else app.state.config.TOP_K,
|
||||
)
|
||||
|
||||
@@ -15,8 +15,6 @@ from open_webui.apps.retrieval.vector.connector import VECTOR_DB_CLIENT
|
||||
from open_webui.utils.misc import get_last_user_message
|
||||
|
||||
from open_webui.env import SRC_LOG_LEVELS
|
||||
from open_webui.config import DEFAULT_RAG_TEMPLATE
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(SRC_LOG_LEVELS["RAG"])
|
||||
@@ -238,44 +236,6 @@ def query_collection_with_hybrid_search(
|
||||
return merge_and_sort_query_results(results, k=k, reverse=True)
|
||||
|
||||
|
||||
def rag_template(template: str, context: str, query: str):
|
||||
if template == "":
|
||||
template = DEFAULT_RAG_TEMPLATE
|
||||
|
||||
if "[context]" not in template and "{{CONTEXT}}" not in template:
|
||||
log.debug(
|
||||
"WARNING: The RAG template does not contain the '[context]' or '{{CONTEXT}}' placeholder."
|
||||
)
|
||||
|
||||
if "<context>" in context and "</context>" in context:
|
||||
log.debug(
|
||||
"WARNING: Potential prompt injection attack: the RAG "
|
||||
"context contains '<context>' and '</context>'. This might be "
|
||||
"nothing, or the user might be trying to hack something."
|
||||
)
|
||||
|
||||
query_placeholders = []
|
||||
if "[query]" in context:
|
||||
query_placeholder = "{{QUERY" + str(uuid.uuid4()) + "}}"
|
||||
template = template.replace("[query]", query_placeholder)
|
||||
query_placeholders.append(query_placeholder)
|
||||
|
||||
if "{{QUERY}}" in context:
|
||||
query_placeholder = "{{QUERY" + str(uuid.uuid4()) + "}}"
|
||||
template = template.replace("{{QUERY}}", query_placeholder)
|
||||
query_placeholders.append(query_placeholder)
|
||||
|
||||
template = template.replace("[context]", context)
|
||||
template = template.replace("{{CONTEXT}}", context)
|
||||
template = template.replace("[query]", query)
|
||||
template = template.replace("{{QUERY}}", query)
|
||||
|
||||
for query_placeholder in query_placeholders:
|
||||
template = template.replace(query_placeholder, query)
|
||||
|
||||
return template
|
||||
|
||||
|
||||
def get_embedding_function(
|
||||
embedding_engine,
|
||||
embedding_model,
|
||||
@@ -469,7 +429,7 @@ def generate_openai_batch_embeddings(
|
||||
|
||||
|
||||
def generate_ollama_batch_embeddings(
|
||||
model: str, texts: list[str], url: str, key: str
|
||||
model: str, texts: list[str], url: str, key: str = ""
|
||||
) -> Optional[list[list[float]]]:
|
||||
try:
|
||||
r = requests.post(
|
||||
|
||||
@@ -31,6 +31,7 @@ from open_webui.config import (
|
||||
DEFAULT_MODELS,
|
||||
DEFAULT_PROMPT_SUGGESTIONS,
|
||||
DEFAULT_USER_ROLE,
|
||||
MODEL_ORDER_LIST,
|
||||
ENABLE_COMMUNITY_SHARING,
|
||||
ENABLE_LOGIN_FORM,
|
||||
ENABLE_MESSAGE_RATING,
|
||||
@@ -68,6 +69,7 @@ from open_webui.config import (
|
||||
)
|
||||
from open_webui.env import (
|
||||
ENV,
|
||||
SRC_LOG_LEVELS,
|
||||
WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
|
||||
WEBUI_AUTH_TRUSTED_NAME_HEADER,
|
||||
)
|
||||
@@ -94,6 +96,7 @@ app = FastAPI(
|
||||
)
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(SRC_LOG_LEVELS["MAIN"])
|
||||
|
||||
app.state.config = AppConfig()
|
||||
|
||||
@@ -118,6 +121,7 @@ app.state.config.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE
|
||||
app.state.config.USER_PERMISSIONS = USER_PERMISSIONS
|
||||
app.state.config.WEBHOOK_URL = WEBHOOK_URL
|
||||
app.state.config.BANNERS = WEBUI_BANNERS
|
||||
app.state.config.MODEL_ORDER_LIST = MODEL_ORDER_LIST
|
||||
|
||||
app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING
|
||||
app.state.config.ENABLE_MESSAGE_RATING = ENABLE_MESSAGE_RATING
|
||||
@@ -270,7 +274,9 @@ async def get_pipe_models():
|
||||
log.exception(e)
|
||||
sub_pipes = []
|
||||
|
||||
print(sub_pipes)
|
||||
log.debug(
|
||||
f"get_pipe_models: function '{pipe.id}' is a manifold of {sub_pipes}"
|
||||
)
|
||||
|
||||
for p in sub_pipes:
|
||||
sub_pipe_id = f'{pipe.id}.{p["id"]}'
|
||||
@@ -280,6 +286,7 @@ async def get_pipe_models():
|
||||
sub_pipe_name = f"{function_module.name}{sub_pipe_name}"
|
||||
|
||||
pipe_flag = {"type": pipe.type}
|
||||
|
||||
pipe_models.append(
|
||||
{
|
||||
"id": sub_pipe_id,
|
||||
@@ -293,6 +300,10 @@ async def get_pipe_models():
|
||||
else:
|
||||
pipe_flag = {"type": "pipe"}
|
||||
|
||||
log.debug(
|
||||
f"get_pipe_models: function '{pipe.id}' is a single pipe {{ 'id': {pipe.id}, 'name': {pipe.name} }}"
|
||||
)
|
||||
|
||||
pipe_models.append(
|
||||
{
|
||||
"id": pipe.id,
|
||||
@@ -346,7 +357,7 @@ def get_pipe_id(form_data: dict) -> str:
|
||||
pipe_id = form_data["model"]
|
||||
if "." in pipe_id:
|
||||
pipe_id, _ = pipe_id.split(".", 1)
|
||||
print(pipe_id)
|
||||
|
||||
return pipe_id
|
||||
|
||||
|
||||
@@ -453,7 +464,7 @@ async def generate_function_chat_completion(form_data, user, models: dict = {}):
|
||||
return
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
log.error(f"Error: {e}")
|
||||
yield f"data: {json.dumps({'error': {'detail':str(e)}})}\n\n"
|
||||
return
|
||||
|
||||
@@ -483,7 +494,7 @@ async def generate_function_chat_completion(form_data, user, models: dict = {}):
|
||||
res = await execute_pipe(pipe, params)
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
log.error(f"Error: {e}")
|
||||
return {"error": {"detail": str(e)}}
|
||||
|
||||
if isinstance(res, StreamingResponse) or isinstance(res, dict):
|
||||
|
||||
@@ -76,6 +76,10 @@ class ToolModel(BaseModel):
|
||||
####################
|
||||
|
||||
|
||||
class ToolUserModel(ToolModel):
|
||||
user: Optional[UserResponse] = None
|
||||
|
||||
|
||||
class ToolResponse(BaseModel):
|
||||
id: str
|
||||
user_id: str
|
||||
@@ -138,13 +142,13 @@ class ToolsTable:
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def get_tools(self) -> list[ToolUserResponse]:
|
||||
def get_tools(self) -> list[ToolUserModel]:
|
||||
with get_db() as db:
|
||||
tools = []
|
||||
for tool in db.query(Tool).order_by(Tool.updated_at.desc()).all():
|
||||
user = Users.get_user_by_id(tool.user_id)
|
||||
tools.append(
|
||||
ToolUserResponse.model_validate(
|
||||
ToolUserModel.model_validate(
|
||||
{
|
||||
**ToolModel.model_validate(tool).model_dump(),
|
||||
"user": user.model_dump() if user else None,
|
||||
@@ -155,7 +159,7 @@ class ToolsTable:
|
||||
|
||||
def get_tools_by_user_id(
|
||||
self, user_id: str, permission: str = "write"
|
||||
) -> list[ToolUserResponse]:
|
||||
) -> list[ToolUserModel]:
|
||||
tools = self.get_tools()
|
||||
|
||||
return [
|
||||
|
||||
@@ -246,11 +246,7 @@ async def ldap_auth(request: Request, response: Response, form_data: LdapForm):
|
||||
)
|
||||
|
||||
user = Auths.insert_new_auth(
|
||||
mail,
|
||||
str(uuid.uuid4()),
|
||||
cn,
|
||||
None,
|
||||
role,
|
||||
email=mail, password=str(uuid.uuid4()), name=cn, role=role
|
||||
)
|
||||
|
||||
if not user:
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
from open_webui.config import BannerModel
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
from pydantic import BaseModel
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from open_webui.utils.utils import get_admin_user, get_verified_user
|
||||
|
||||
|
||||
from open_webui.config import get_config, save_config
|
||||
from open_webui.config import BannerModel
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -34,8 +36,32 @@ async def export_config(user=Depends(get_admin_user)):
|
||||
return get_config()
|
||||
|
||||
|
||||
class SetDefaultModelsForm(BaseModel):
|
||||
models: str
|
||||
############################
|
||||
# SetDefaultModels
|
||||
############################
|
||||
class ModelsConfigForm(BaseModel):
|
||||
DEFAULT_MODELS: Optional[str]
|
||||
MODEL_ORDER_LIST: Optional[list[str]]
|
||||
|
||||
|
||||
@router.get("/models", response_model=ModelsConfigForm)
|
||||
async def get_models_config(request: Request, user=Depends(get_admin_user)):
|
||||
return {
|
||||
"DEFAULT_MODELS": request.app.state.config.DEFAULT_MODELS,
|
||||
"MODEL_ORDER_LIST": request.app.state.config.MODEL_ORDER_LIST,
|
||||
}
|
||||
|
||||
|
||||
@router.post("/models", response_model=ModelsConfigForm)
|
||||
async def set_models_config(
|
||||
request: Request, form_data: ModelsConfigForm, user=Depends(get_admin_user)
|
||||
):
|
||||
request.app.state.config.DEFAULT_MODELS = form_data.DEFAULT_MODELS
|
||||
request.app.state.config.MODEL_ORDER_LIST = form_data.MODEL_ORDER_LIST
|
||||
return {
|
||||
"DEFAULT_MODELS": request.app.state.config.DEFAULT_MODELS,
|
||||
"MODEL_ORDER_LIST": request.app.state.config.MODEL_ORDER_LIST,
|
||||
}
|
||||
|
||||
|
||||
class PromptSuggestion(BaseModel):
|
||||
@@ -47,21 +73,8 @@ class SetDefaultSuggestionsForm(BaseModel):
|
||||
suggestions: list[PromptSuggestion]
|
||||
|
||||
|
||||
############################
|
||||
# SetDefaultModels
|
||||
############################
|
||||
|
||||
|
||||
@router.post("/default/models", response_model=str)
|
||||
async def set_global_default_models(
|
||||
request: Request, form_data: SetDefaultModelsForm, user=Depends(get_admin_user)
|
||||
):
|
||||
request.app.state.config.DEFAULT_MODELS = form_data.models
|
||||
return request.app.state.config.DEFAULT_MODELS
|
||||
|
||||
|
||||
@router.post("/default/suggestions", response_model=list[PromptSuggestion])
|
||||
async def set_global_default_suggestions(
|
||||
@router.post("/suggestions", response_model=list[PromptSuggestion])
|
||||
async def set_default_suggestions(
|
||||
request: Request,
|
||||
form_data: SetDefaultSuggestionsForm,
|
||||
user=Depends(get_admin_user),
|
||||
|
||||
@@ -5,10 +5,15 @@ import sys
|
||||
from importlib import util
|
||||
import types
|
||||
import tempfile
|
||||
import logging
|
||||
|
||||
from open_webui.env import SRC_LOG_LEVELS
|
||||
from open_webui.apps.webui.models.functions import Functions
|
||||
from open_webui.apps.webui.models.tools import Tools
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(SRC_LOG_LEVELS["MAIN"])
|
||||
|
||||
|
||||
def extract_frontmatter(content):
|
||||
"""
|
||||
@@ -95,7 +100,7 @@ def load_tools_module_by_id(toolkit_id, content=None):
|
||||
# Executing the modified content in the created module's namespace
|
||||
exec(content, module.__dict__)
|
||||
frontmatter = extract_frontmatter(content)
|
||||
print(f"Loaded module: {module.__name__}")
|
||||
log.info(f"Loaded module: {module.__name__}")
|
||||
|
||||
# Create and return the object if the class 'Tools' is found in the module
|
||||
if hasattr(module, "Tools"):
|
||||
@@ -103,7 +108,7 @@ def load_tools_module_by_id(toolkit_id, content=None):
|
||||
else:
|
||||
raise Exception("No Tools class found in the module")
|
||||
except Exception as e:
|
||||
print(f"Error loading module: {toolkit_id}: {e}")
|
||||
log.error(f"Error loading module: {toolkit_id}: {e}")
|
||||
del sys.modules[module_name] # Clean up
|
||||
raise e
|
||||
finally:
|
||||
@@ -139,7 +144,7 @@ def load_function_module_by_id(function_id, content=None):
|
||||
# Execute the modified content in the created module's namespace
|
||||
exec(content, module.__dict__)
|
||||
frontmatter = extract_frontmatter(content)
|
||||
print(f"Loaded module: {module.__name__}")
|
||||
log.info(f"Loaded module: {module.__name__}")
|
||||
|
||||
# Create appropriate object based on available class type in the module
|
||||
if hasattr(module, "Pipe"):
|
||||
@@ -151,7 +156,7 @@ def load_function_module_by_id(function_id, content=None):
|
||||
else:
|
||||
raise Exception("No Function class found in the module")
|
||||
except Exception as e:
|
||||
print(f"Error loading module: {function_id}: {e}")
|
||||
log.error(f"Error loading module: {function_id}: {e}")
|
||||
del sys.modules[module_name] # Cleanup by removing the module in case of error
|
||||
|
||||
Functions.update_function_by_id(function_id, {"is_active": False})
|
||||
@@ -164,7 +169,7 @@ def install_frontmatter_requirements(requirements):
|
||||
if requirements:
|
||||
req_list = [req.strip() for req in requirements.split(",")]
|
||||
for req in req_list:
|
||||
print(f"Installing requirement: {req}")
|
||||
log.info(f"Installing requirement: {req}")
|
||||
subprocess.check_call([sys.executable, "-m", "pip", "install", req])
|
||||
else:
|
||||
print("No requirements found in frontmatter.")
|
||||
log.info("No requirements found in frontmatter.")
|
||||
|
||||
@@ -583,6 +583,12 @@ OLLAMA_API_BASE_URL = os.environ.get(
|
||||
)
|
||||
|
||||
OLLAMA_BASE_URL = os.environ.get("OLLAMA_BASE_URL", "")
|
||||
if OLLAMA_BASE_URL:
|
||||
# Remove trailing slash
|
||||
OLLAMA_BASE_URL = (
|
||||
OLLAMA_BASE_URL[:-1] if OLLAMA_BASE_URL.endswith("/") else OLLAMA_BASE_URL
|
||||
)
|
||||
|
||||
|
||||
K8S_FLAG = os.environ.get("K8S_FLAG", "")
|
||||
USE_OLLAMA_DOCKER = os.environ.get("USE_OLLAMA_DOCKER", "false")
|
||||
@@ -696,6 +702,7 @@ ENABLE_LOGIN_FORM = PersistentConfig(
|
||||
os.environ.get("ENABLE_LOGIN_FORM", "True").lower() == "true",
|
||||
)
|
||||
|
||||
|
||||
DEFAULT_LOCALE = PersistentConfig(
|
||||
"DEFAULT_LOCALE",
|
||||
"ui.default_locale",
|
||||
@@ -740,13 +747,18 @@ DEFAULT_PROMPT_SUGGESTIONS = PersistentConfig(
|
||||
],
|
||||
)
|
||||
|
||||
MODEL_ORDER_LIST = PersistentConfig(
|
||||
"MODEL_ORDER_LIST",
|
||||
"ui.model_order_list",
|
||||
[],
|
||||
)
|
||||
|
||||
DEFAULT_USER_ROLE = PersistentConfig(
|
||||
"DEFAULT_USER_ROLE",
|
||||
"ui.default_user_role",
|
||||
os.getenv("DEFAULT_USER_ROLE", "pending"),
|
||||
)
|
||||
|
||||
|
||||
USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS = (
|
||||
os.environ.get("USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS", "False").lower()
|
||||
== "true"
|
||||
@@ -969,19 +981,20 @@ QUERY_GENERATION_PROMPT_TEMPLATE = PersistentConfig(
|
||||
)
|
||||
|
||||
DEFAULT_QUERY_GENERATION_PROMPT_TEMPLATE = """### Task:
|
||||
Based on the chat history, determine whether a search is necessary, and if so, generate a 1-3 broad search queries to retrieve comprehensive and updated information. If no search is required, return an empty list.
|
||||
Analyze the chat history to determine the necessity of generating search queries, in the given language. By default, **prioritize generating 1-3 broad and relevant search queries** unless it is absolutely certain that no additional information is required. The aim is to retrieve comprehensive, updated, and valuable information even with minimal uncertainty. If no search is unequivocally needed, return an empty list.
|
||||
|
||||
### Guidelines:
|
||||
- Respond exclusively with a JSON object.
|
||||
- If a search query is needed, return an object like: { "queries": ["query1", "query2"] } where each query is distinct and concise.
|
||||
- If no search query is necessary, output should be: { "queries": [] }
|
||||
- Default to suggesting a search query to ensure accurate and updated information, unless it is definitively clear no search is required.
|
||||
- Be concise, focusing strictly on composing search queries with no additional commentary or text.
|
||||
- When in doubt, prefer to suggest a search for comprehensiveness.
|
||||
- Today's date is: {{CURRENT_DATE}}
|
||||
- Respond **EXCLUSIVELY** with a JSON object. Any form of extra commentary, explanation, or additional text is strictly prohibited.
|
||||
- When generating search queries, respond in the format: { "queries": ["query1", "query2"] }, ensuring each query is distinct, concise, and relevant to the topic.
|
||||
- If and only if it is entirely certain that no useful results can be retrieved by a search, return: { "queries": [] }.
|
||||
- Err on the side of suggesting search queries if there is **any chance** they might provide useful or updated information.
|
||||
- Be concise and focused on composing high-quality search queries, avoiding unnecessary elaboration, commentary, or assumptions.
|
||||
- Today's date is: {{CURRENT_DATE}}.
|
||||
- Always prioritize providing actionable and broad queries that maximize informational coverage.
|
||||
|
||||
### Output:
|
||||
JSON format: {
|
||||
Strictly return in JSON format:
|
||||
{
|
||||
"queries": ["query1", "query2"]
|
||||
}
|
||||
|
||||
@@ -991,6 +1004,66 @@ JSON format: {
|
||||
</chat_history>
|
||||
"""
|
||||
|
||||
ENABLE_AUTOCOMPLETE_GENERATION = PersistentConfig(
|
||||
"ENABLE_AUTOCOMPLETE_GENERATION",
|
||||
"task.autocomplete.enable",
|
||||
os.environ.get("ENABLE_AUTOCOMPLETE_GENERATION", "True").lower() == "true",
|
||||
)
|
||||
|
||||
AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH = PersistentConfig(
|
||||
"AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH",
|
||||
"task.autocomplete.input_max_length",
|
||||
int(os.environ.get("AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH", "-1")),
|
||||
)
|
||||
|
||||
AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE = PersistentConfig(
|
||||
"AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE",
|
||||
"task.autocomplete.prompt_template",
|
||||
os.environ.get("AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE", ""),
|
||||
)
|
||||
|
||||
|
||||
DEFAULT_AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE = """### Task:
|
||||
You are an autocompletion system. Continue the text in `<text>` based on the **completion type** in `<type>` and the given language.
|
||||
|
||||
### **Instructions**:
|
||||
1. Analyze `<text>` for context and meaning.
|
||||
2. Use `<type>` to guide your output:
|
||||
- **General**: Provide a natural, concise continuation.
|
||||
- **Search Query**: Complete as if generating a realistic search query.
|
||||
3. Start as if you are directly continuing `<text>`. Do **not** repeat, paraphrase, or respond as a model. Simply complete the text.
|
||||
4. Ensure the continuation:
|
||||
- Flows naturally from `<text>`.
|
||||
- Avoids repetition, overexplaining, or unrelated ideas.
|
||||
5. If unsure, return: `{ "text": "" }`.
|
||||
|
||||
### **Output Rules**:
|
||||
- Respond only in JSON format: `{ "text": "<your_completion>" }`.
|
||||
|
||||
### **Examples**:
|
||||
#### Example 1:
|
||||
Input:
|
||||
<type>General</type>
|
||||
<text>The sun was setting over the horizon, painting the sky</text>
|
||||
Output:
|
||||
{ "text": "with vibrant shades of orange and pink." }
|
||||
|
||||
#### Example 2:
|
||||
Input:
|
||||
<type>Search Query</type>
|
||||
<text>Top-rated restaurants in</text>
|
||||
Output:
|
||||
{ "text": "New York City for Italian cuisine." }
|
||||
|
||||
---
|
||||
### Context:
|
||||
<chat_history>
|
||||
{{MESSAGES:END:6}}
|
||||
</chat_history>
|
||||
<type>{{TYPE}}</type>
|
||||
<text>{{PROMPT}}</text>
|
||||
#### Output:
|
||||
"""
|
||||
|
||||
TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE = PersistentConfig(
|
||||
"TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE",
|
||||
@@ -1252,6 +1325,12 @@ YOUTUBE_LOADER_LANGUAGE = PersistentConfig(
|
||||
os.getenv("YOUTUBE_LOADER_LANGUAGE", "en").split(","),
|
||||
)
|
||||
|
||||
YOUTUBE_LOADER_PROXY_URL = PersistentConfig(
|
||||
"YOUTUBE_LOADER_PROXY_URL",
|
||||
"rag.youtube_loader_proxy_url",
|
||||
os.getenv("YOUTUBE_LOADER_PROXY_URL", ""),
|
||||
)
|
||||
|
||||
|
||||
ENABLE_RAG_WEB_SEARCH = PersistentConfig(
|
||||
"ENABLE_RAG_WEB_SEARCH",
|
||||
|
||||
@@ -113,5 +113,6 @@ class TASKS(str, Enum):
|
||||
TAGS_GENERATION = "tags_generation"
|
||||
EMOJI_GENERATION = "emoji_generation"
|
||||
QUERY_GENERATION = "query_generation"
|
||||
AUTOCOMPLETE_GENERATION = "autocomplete_generation"
|
||||
FUNCTION_CALLING = "function_calling"
|
||||
MOA_RESPONSE_GENERATION = "moa_response_generation"
|
||||
|
||||
@@ -329,6 +329,9 @@ WEBUI_AUTH_TRUSTED_EMAIL_HEADER = os.environ.get(
|
||||
)
|
||||
WEBUI_AUTH_TRUSTED_NAME_HEADER = os.environ.get("WEBUI_AUTH_TRUSTED_NAME_HEADER", None)
|
||||
|
||||
BYPASS_MODEL_ACCESS_CONTROL = (
|
||||
os.environ.get("BYPASS_MODEL_ACCESS_CONTROL", "False").lower() == "true"
|
||||
)
|
||||
|
||||
####################################
|
||||
# WEBUI_SECRET_KEY
|
||||
@@ -373,7 +376,7 @@ else:
|
||||
AIOHTTP_CLIENT_TIMEOUT = 300
|
||||
|
||||
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST = os.environ.get(
|
||||
"AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST", "3"
|
||||
"AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST", "5"
|
||||
)
|
||||
|
||||
if AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST == "":
|
||||
@@ -384,7 +387,7 @@ else:
|
||||
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST
|
||||
)
|
||||
except Exception:
|
||||
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST = 3
|
||||
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST = 5
|
||||
|
||||
####################################
|
||||
# OFFLINE_MODE
|
||||
|
||||
+201
-60
@@ -49,7 +49,9 @@ from open_webui.apps.openai.main import (
|
||||
get_all_models_responses as get_openai_models_responses,
|
||||
)
|
||||
from open_webui.apps.retrieval.main import app as retrieval_app
|
||||
from open_webui.apps.retrieval.utils import get_sources_from_files, rag_template
|
||||
from open_webui.apps.retrieval.utils import get_sources_from_files
|
||||
|
||||
|
||||
from open_webui.apps.socket.main import (
|
||||
app as socket_app,
|
||||
periodic_usage_pool_cleanup,
|
||||
@@ -87,6 +89,10 @@ from open_webui.config import (
|
||||
DEFAULT_QUERY_GENERATION_PROMPT_TEMPLATE,
|
||||
TITLE_GENERATION_PROMPT_TEMPLATE,
|
||||
TAGS_GENERATION_PROMPT_TEMPLATE,
|
||||
ENABLE_AUTOCOMPLETE_GENERATION,
|
||||
AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH,
|
||||
AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE,
|
||||
DEFAULT_AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE,
|
||||
TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE,
|
||||
WEBHOOK_URL,
|
||||
WEBUI_AUTH,
|
||||
@@ -106,6 +112,7 @@ from open_webui.env import (
|
||||
WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||
WEBUI_SESSION_COOKIE_SECURE,
|
||||
WEBUI_URL,
|
||||
BYPASS_MODEL_ACCESS_CONTROL,
|
||||
RESET_CONFIG_ON_START,
|
||||
OFFLINE_MODE,
|
||||
)
|
||||
@@ -122,11 +129,13 @@ from open_webui.utils.response import (
|
||||
)
|
||||
from open_webui.utils.security_headers import SecurityHeadersMiddleware
|
||||
from open_webui.utils.task import (
|
||||
moa_response_generation_template,
|
||||
tags_generation_template,
|
||||
query_generation_template,
|
||||
emoji_generation_template,
|
||||
rag_template,
|
||||
title_generation_template,
|
||||
query_generation_template,
|
||||
autocomplete_generation_template,
|
||||
tags_generation_template,
|
||||
emoji_generation_template,
|
||||
moa_response_generation_template,
|
||||
tools_function_calling_generation_template,
|
||||
)
|
||||
from open_webui.utils.tools import get_tools
|
||||
@@ -204,6 +213,11 @@ app.state.config.TASK_MODEL_EXTERNAL = TASK_MODEL_EXTERNAL
|
||||
|
||||
app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE = TITLE_GENERATION_PROMPT_TEMPLATE
|
||||
|
||||
app.state.config.ENABLE_AUTOCOMPLETE_GENERATION = ENABLE_AUTOCOMPLETE_GENERATION
|
||||
app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH = (
|
||||
AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH
|
||||
)
|
||||
|
||||
app.state.config.ENABLE_TAGS_GENERATION = ENABLE_TAGS_GENERATION
|
||||
app.state.config.TAGS_GENERATION_PROMPT_TEMPLATE = TAGS_GENERATION_PROMPT_TEMPLATE
|
||||
|
||||
@@ -212,6 +226,10 @@ app.state.config.ENABLE_SEARCH_QUERY_GENERATION = ENABLE_SEARCH_QUERY_GENERATION
|
||||
app.state.config.ENABLE_RETRIEVAL_QUERY_GENERATION = ENABLE_RETRIEVAL_QUERY_GENERATION
|
||||
app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE = QUERY_GENERATION_PROMPT_TEMPLATE
|
||||
|
||||
app.state.config.AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE = (
|
||||
AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE
|
||||
)
|
||||
|
||||
app.state.config.TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE = (
|
||||
TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE
|
||||
)
|
||||
@@ -515,32 +533,37 @@ async def chat_completion_files_handler(
|
||||
) -> tuple[dict, dict[str, list]]:
|
||||
sources = []
|
||||
|
||||
try:
|
||||
queries_response = await generate_queries(
|
||||
{
|
||||
"model": body["model"],
|
||||
"messages": body["messages"],
|
||||
"type": "retrieval",
|
||||
},
|
||||
user,
|
||||
)
|
||||
queries_response = queries_response["choices"][0]["message"]["content"]
|
||||
|
||||
try:
|
||||
queries_response = json.loads(queries_response)
|
||||
except Exception as e:
|
||||
queries_response = {"queries": []}
|
||||
|
||||
queries = queries_response.get("queries", [])
|
||||
except Exception as e:
|
||||
queries = []
|
||||
|
||||
if len(queries) == 0:
|
||||
queries = [get_last_user_message(body["messages"])]
|
||||
|
||||
print(f"{queries=}")
|
||||
|
||||
if files := body.get("metadata", {}).get("files", None):
|
||||
try:
|
||||
queries_response = await generate_queries(
|
||||
{
|
||||
"model": body["model"],
|
||||
"messages": body["messages"],
|
||||
"type": "retrieval",
|
||||
},
|
||||
user,
|
||||
)
|
||||
queries_response = queries_response["choices"][0]["message"]["content"]
|
||||
|
||||
try:
|
||||
bracket_start = queries_response.find("{")
|
||||
bracket_end = queries_response.rfind("}") + 1
|
||||
|
||||
if bracket_start == -1 or bracket_end == -1:
|
||||
raise Exception("No JSON object found in the response")
|
||||
|
||||
queries_response = queries_response[bracket_start:bracket_end]
|
||||
queries_response = json.loads(queries_response)
|
||||
except Exception as e:
|
||||
queries_response = {"queries": [queries_response]}
|
||||
|
||||
queries = queries_response.get("queries", [])
|
||||
except Exception as e:
|
||||
queries = []
|
||||
|
||||
if len(queries) == 0:
|
||||
queries = [get_last_user_message(body["messages"])]
|
||||
|
||||
sources = get_sources_from_files(
|
||||
files=files,
|
||||
queries=queries,
|
||||
@@ -599,7 +622,7 @@ class ChatCompletionMiddleware(BaseHTTPMiddleware):
|
||||
)
|
||||
|
||||
model_info = Models.get_model_by_id(model["id"])
|
||||
if user.role == "user":
|
||||
if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
|
||||
if model.get("arena"):
|
||||
if not has_access(
|
||||
user.id,
|
||||
@@ -698,12 +721,13 @@ class ChatCompletionMiddleware(BaseHTTPMiddleware):
|
||||
if "document" in source:
|
||||
for doc_idx, doc_context in enumerate(source["document"]):
|
||||
metadata = source.get("metadata")
|
||||
doc_source_id = None
|
||||
|
||||
if metadata:
|
||||
doc_source_id = metadata[doc_idx].get("source", source_id)
|
||||
|
||||
if source_id:
|
||||
context_string += f"<source><source_id>{doc_source_id}</source_id><source_context>{doc_context}</source_context></source>\n"
|
||||
context_string += f"<source><source_id>{doc_source_id if doc_source_id is not None else source_id}</source_id><source_context>{doc_context}</source_context></source>\n"
|
||||
else:
|
||||
# If there is no source_id, then do not include the source_id tag
|
||||
context_string += f"<source><source_context>{doc_context}</source_context></source>\n"
|
||||
@@ -969,7 +993,7 @@ app.add_middleware(SecurityHeadersMiddleware)
|
||||
@app.middleware("http")
|
||||
async def commit_session_after_request(request: Request, call_next):
|
||||
response = await call_next(request)
|
||||
log.debug("Commit session after request")
|
||||
# log.debug("Commit session after request")
|
||||
Session.commit()
|
||||
return response
|
||||
|
||||
@@ -1176,6 +1200,8 @@ async def get_all_models():
|
||||
model["actions"].extend(
|
||||
get_action_items_from_module(action_function, function_module)
|
||||
)
|
||||
log.debug(f"get_all_models() returned {len(models)} models")
|
||||
|
||||
return models
|
||||
|
||||
|
||||
@@ -1190,8 +1216,16 @@ async def get_models(user=Depends(get_verified_user)):
|
||||
if "pipeline" not in model or model["pipeline"].get("type", None) != "filter"
|
||||
]
|
||||
|
||||
model_order_list = webui_app.state.config.MODEL_ORDER_LIST
|
||||
if model_order_list:
|
||||
model_order_dict = {model_id: i for i, model_id in enumerate(model_order_list)}
|
||||
# Sort models by order list priority, with fallback for those not in the list
|
||||
models.sort(
|
||||
key=lambda x: (model_order_dict.get(x["id"], float("inf")), x["name"])
|
||||
)
|
||||
|
||||
# Filter out models that the user does not have access to
|
||||
if user.role == "user":
|
||||
if user.role == "user" and not BYPASS_MODEL_ACCESS_CONTROL:
|
||||
filtered_models = []
|
||||
for model in models:
|
||||
if model.get("arena"):
|
||||
@@ -1213,6 +1247,10 @@ async def get_models(user=Depends(get_verified_user)):
|
||||
filtered_models.append(model)
|
||||
models = filtered_models
|
||||
|
||||
log.debug(
|
||||
f"/api/models returned filtered models accessible to the user: {json.dumps([model['id'] for model in models])}"
|
||||
)
|
||||
|
||||
return {"data": models}
|
||||
|
||||
|
||||
@@ -1642,6 +1680,8 @@ async def get_task_config(user=Depends(get_verified_user)):
|
||||
"TASK_MODEL": app.state.config.TASK_MODEL,
|
||||
"TASK_MODEL_EXTERNAL": app.state.config.TASK_MODEL_EXTERNAL,
|
||||
"TITLE_GENERATION_PROMPT_TEMPLATE": app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE,
|
||||
"ENABLE_AUTOCOMPLETE_GENERATION": app.state.config.ENABLE_AUTOCOMPLETE_GENERATION,
|
||||
"AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH": app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH,
|
||||
"TAGS_GENERATION_PROMPT_TEMPLATE": app.state.config.TAGS_GENERATION_PROMPT_TEMPLATE,
|
||||
"ENABLE_TAGS_GENERATION": app.state.config.ENABLE_TAGS_GENERATION,
|
||||
"ENABLE_SEARCH_QUERY_GENERATION": app.state.config.ENABLE_SEARCH_QUERY_GENERATION,
|
||||
@@ -1655,6 +1695,8 @@ class TaskConfigForm(BaseModel):
|
||||
TASK_MODEL: Optional[str]
|
||||
TASK_MODEL_EXTERNAL: Optional[str]
|
||||
TITLE_GENERATION_PROMPT_TEMPLATE: str
|
||||
ENABLE_AUTOCOMPLETE_GENERATION: bool
|
||||
AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH: int
|
||||
TAGS_GENERATION_PROMPT_TEMPLATE: str
|
||||
ENABLE_TAGS_GENERATION: bool
|
||||
ENABLE_SEARCH_QUERY_GENERATION: bool
|
||||
@@ -1670,6 +1712,14 @@ async def update_task_config(form_data: TaskConfigForm, user=Depends(get_admin_u
|
||||
app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE = (
|
||||
form_data.TITLE_GENERATION_PROMPT_TEMPLATE
|
||||
)
|
||||
|
||||
app.state.config.ENABLE_AUTOCOMPLETE_GENERATION = (
|
||||
form_data.ENABLE_AUTOCOMPLETE_GENERATION
|
||||
)
|
||||
app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH = (
|
||||
form_data.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH
|
||||
)
|
||||
|
||||
app.state.config.TAGS_GENERATION_PROMPT_TEMPLATE = (
|
||||
form_data.TAGS_GENERATION_PROMPT_TEMPLATE
|
||||
)
|
||||
@@ -1692,6 +1742,8 @@ async def update_task_config(form_data: TaskConfigForm, user=Depends(get_admin_u
|
||||
"TASK_MODEL": app.state.config.TASK_MODEL,
|
||||
"TASK_MODEL_EXTERNAL": app.state.config.TASK_MODEL_EXTERNAL,
|
||||
"TITLE_GENERATION_PROMPT_TEMPLATE": app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE,
|
||||
"ENABLE_AUTOCOMPLETE_GENERATION": app.state.config.ENABLE_AUTOCOMPLETE_GENERATION,
|
||||
"AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH": app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH,
|
||||
"TAGS_GENERATION_PROMPT_TEMPLATE": app.state.config.TAGS_GENERATION_PROMPT_TEMPLATE,
|
||||
"ENABLE_TAGS_GENERATION": app.state.config.ENABLE_TAGS_GENERATION,
|
||||
"ENABLE_SEARCH_QUERY_GENERATION": app.state.config.ENABLE_SEARCH_QUERY_GENERATION,
|
||||
@@ -1703,7 +1755,6 @@ async def update_task_config(form_data: TaskConfigForm, user=Depends(get_admin_u
|
||||
|
||||
@app.post("/api/task/title/completions")
|
||||
async def generate_title(form_data: dict, user=Depends(get_verified_user)):
|
||||
print("generate_title")
|
||||
|
||||
model_list = await get_all_models()
|
||||
models = {model["id"]: model for model in model_list}
|
||||
@@ -1724,9 +1775,9 @@ async def generate_title(form_data: dict, user=Depends(get_verified_user)):
|
||||
models,
|
||||
)
|
||||
|
||||
print(task_model_id)
|
||||
|
||||
model = models[task_model_id]
|
||||
log.debug(
|
||||
f"generating chat title using model {task_model_id} for user {user.email} "
|
||||
)
|
||||
|
||||
if app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE != "":
|
||||
template = app.state.config.TITLE_GENERATION_PROMPT_TEMPLATE
|
||||
@@ -1765,10 +1816,12 @@ Artificial Intelligence in Healthcare
|
||||
"max_completion_tokens": 50,
|
||||
}
|
||||
),
|
||||
"chat_id": form_data.get("chat_id", None),
|
||||
"metadata": {"task": str(TASKS.TITLE_GENERATION), "task_body": form_data},
|
||||
"metadata": {
|
||||
"task": str(TASKS.TITLE_GENERATION),
|
||||
"task_body": form_data,
|
||||
"chat_id": form_data.get("chat_id", None),
|
||||
},
|
||||
}
|
||||
log.debug(payload)
|
||||
|
||||
# Handle pipeline filters
|
||||
try:
|
||||
@@ -1792,7 +1845,7 @@ Artificial Intelligence in Healthcare
|
||||
|
||||
@app.post("/api/task/tags/completions")
|
||||
async def generate_chat_tags(form_data: dict, user=Depends(get_verified_user)):
|
||||
print("generate_chat_tags")
|
||||
|
||||
if not app.state.config.ENABLE_TAGS_GENERATION:
|
||||
return JSONResponse(
|
||||
status_code=status.HTTP_200_OK,
|
||||
@@ -1817,7 +1870,10 @@ async def generate_chat_tags(form_data: dict, user=Depends(get_verified_user)):
|
||||
app.state.config.TASK_MODEL_EXTERNAL,
|
||||
models,
|
||||
)
|
||||
print(task_model_id)
|
||||
|
||||
log.debug(
|
||||
f"generating chat tags using model {task_model_id} for user {user.email} "
|
||||
)
|
||||
|
||||
if app.state.config.TAGS_GENERATION_PROMPT_TEMPLATE != "":
|
||||
template = app.state.config.TAGS_GENERATION_PROMPT_TEMPLATE
|
||||
@@ -1848,9 +1904,12 @@ JSON format: { "tags": ["tag1", "tag2", "tag3"] }
|
||||
"model": task_model_id,
|
||||
"messages": [{"role": "user", "content": content}],
|
||||
"stream": False,
|
||||
"metadata": {"task": str(TASKS.TAGS_GENERATION), "task_body": form_data},
|
||||
"metadata": {
|
||||
"task": str(TASKS.TAGS_GENERATION),
|
||||
"task_body": form_data,
|
||||
"chat_id": form_data.get("chat_id", None),
|
||||
},
|
||||
}
|
||||
log.debug(payload)
|
||||
|
||||
# Handle pipeline filters
|
||||
try:
|
||||
@@ -1874,7 +1933,7 @@ JSON format: { "tags": ["tag1", "tag2", "tag3"] }
|
||||
|
||||
@app.post("/api/task/queries/completions")
|
||||
async def generate_queries(form_data: dict, user=Depends(get_verified_user)):
|
||||
print("generate_queries")
|
||||
|
||||
type = form_data.get("type")
|
||||
if type == "web_search":
|
||||
if not app.state.config.ENABLE_SEARCH_QUERY_GENERATION:
|
||||
@@ -1907,11 +1966,12 @@ async def generate_queries(form_data: dict, user=Depends(get_verified_user)):
|
||||
app.state.config.TASK_MODEL_EXTERNAL,
|
||||
models,
|
||||
)
|
||||
print(task_model_id)
|
||||
|
||||
model = models[task_model_id]
|
||||
log.debug(
|
||||
f"generating {type} queries using model {task_model_id} for user {user.email}"
|
||||
)
|
||||
|
||||
if app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE != "":
|
||||
if (app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE).strip() != "":
|
||||
template = app.state.config.QUERY_GENERATION_PROMPT_TEMPLATE
|
||||
else:
|
||||
template = DEFAULT_QUERY_GENERATION_PROMPT_TEMPLATE
|
||||
@@ -1924,9 +1984,96 @@ async def generate_queries(form_data: dict, user=Depends(get_verified_user)):
|
||||
"model": task_model_id,
|
||||
"messages": [{"role": "user", "content": content}],
|
||||
"stream": False,
|
||||
"metadata": {"task": str(TASKS.QUERY_GENERATION), "task_body": form_data},
|
||||
"metadata": {
|
||||
"task": str(TASKS.QUERY_GENERATION),
|
||||
"task_body": form_data,
|
||||
"chat_id": form_data.get("chat_id", None),
|
||||
},
|
||||
}
|
||||
log.debug(payload)
|
||||
|
||||
# Handle pipeline filters
|
||||
try:
|
||||
payload = filter_pipeline(payload, user, models)
|
||||
except Exception as e:
|
||||
if len(e.args) > 1:
|
||||
return JSONResponse(
|
||||
status_code=e.args[0],
|
||||
content={"detail": e.args[1]},
|
||||
)
|
||||
else:
|
||||
return JSONResponse(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
content={"detail": str(e)},
|
||||
)
|
||||
if "chat_id" in payload:
|
||||
del payload["chat_id"]
|
||||
|
||||
return await generate_chat_completions(form_data=payload, user=user)
|
||||
|
||||
|
||||
@app.post("/api/task/auto/completions")
|
||||
async def generate_autocompletion(form_data: dict, user=Depends(get_verified_user)):
|
||||
if not app.state.config.ENABLE_AUTOCOMPLETE_GENERATION:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=f"Autocompletion generation is disabled",
|
||||
)
|
||||
|
||||
type = form_data.get("type")
|
||||
prompt = form_data.get("prompt")
|
||||
messages = form_data.get("messages")
|
||||
|
||||
if app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH > 0:
|
||||
if len(prompt) > app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=f"Input prompt exceeds maximum length of {app.state.config.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH}",
|
||||
)
|
||||
|
||||
model_list = await get_all_models()
|
||||
models = {model["id"]: model for model in model_list}
|
||||
|
||||
model_id = form_data["model"]
|
||||
if model_id not in models:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Model not found",
|
||||
)
|
||||
|
||||
# Check if the user has a custom task model
|
||||
# If the user has a custom task model, use that model
|
||||
task_model_id = get_task_model_id(
|
||||
model_id,
|
||||
app.state.config.TASK_MODEL,
|
||||
app.state.config.TASK_MODEL_EXTERNAL,
|
||||
models,
|
||||
)
|
||||
|
||||
log.debug(
|
||||
f"generating autocompletion using model {task_model_id} for user {user.email}"
|
||||
)
|
||||
|
||||
if (app.state.config.AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE).strip() != "":
|
||||
template = app.state.config.AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE
|
||||
else:
|
||||
template = DEFAULT_AUTOCOMPLETE_GENERATION_PROMPT_TEMPLATE
|
||||
|
||||
content = autocomplete_generation_template(
|
||||
template, prompt, messages, type, {"name": user.name}
|
||||
)
|
||||
|
||||
payload = {
|
||||
"model": task_model_id,
|
||||
"messages": [{"role": "user", "content": content}],
|
||||
"stream": False,
|
||||
"metadata": {
|
||||
"task": str(TASKS.AUTOCOMPLETE_GENERATION),
|
||||
"task_body": form_data,
|
||||
"chat_id": form_data.get("chat_id", None),
|
||||
},
|
||||
}
|
||||
|
||||
print(payload)
|
||||
|
||||
# Handle pipeline filters
|
||||
try:
|
||||
@@ -1950,7 +2097,6 @@ async def generate_queries(form_data: dict, user=Depends(get_verified_user)):
|
||||
|
||||
@app.post("/api/task/emoji/completions")
|
||||
async def generate_emoji(form_data: dict, user=Depends(get_verified_user)):
|
||||
print("generate_emoji")
|
||||
|
||||
model_list = await get_all_models()
|
||||
models = {model["id"]: model for model in model_list}
|
||||
@@ -1970,9 +2116,8 @@ async def generate_emoji(form_data: dict, user=Depends(get_verified_user)):
|
||||
app.state.config.TASK_MODEL_EXTERNAL,
|
||||
models,
|
||||
)
|
||||
print(task_model_id)
|
||||
|
||||
model = models[task_model_id]
|
||||
log.debug(f"generating emoji using model {task_model_id} for user {user.email} ")
|
||||
|
||||
template = '''
|
||||
Your task is to reflect the speaker's likely facial expression through a fitting emoji. Interpret emotions from the message and reflect their facial expression using fitting, diverse emojis (e.g., 😊, 😢, 😡, 😱).
|
||||
@@ -2002,7 +2147,6 @@ Message: """{{prompt}}"""
|
||||
"chat_id": form_data.get("chat_id", None),
|
||||
"metadata": {"task": str(TASKS.EMOJI_GENERATION), "task_body": form_data},
|
||||
}
|
||||
log.debug(payload)
|
||||
|
||||
# Handle pipeline filters
|
||||
try:
|
||||
@@ -2026,7 +2170,6 @@ Message: """{{prompt}}"""
|
||||
|
||||
@app.post("/api/task/moa/completions")
|
||||
async def generate_moa_response(form_data: dict, user=Depends(get_verified_user)):
|
||||
print("generate_moa_response")
|
||||
|
||||
model_list = await get_all_models()
|
||||
models = {model["id"]: model for model in model_list}
|
||||
@@ -2046,9 +2189,8 @@ async def generate_moa_response(form_data: dict, user=Depends(get_verified_user)
|
||||
app.state.config.TASK_MODEL_EXTERNAL,
|
||||
models,
|
||||
)
|
||||
print(task_model_id)
|
||||
|
||||
model = models[task_model_id]
|
||||
log.debug(f"generating MOA model {task_model_id} for user {user.email} ")
|
||||
|
||||
template = """You have been provided with a set of responses from various models to the latest user query: "{{prompt}}"
|
||||
|
||||
@@ -2072,7 +2214,6 @@ Responses from models: {{responses}}"""
|
||||
"task_body": form_data,
|
||||
},
|
||||
}
|
||||
log.debug(payload)
|
||||
|
||||
try:
|
||||
payload = filter_pipeline(payload, user, models)
|
||||
@@ -2107,7 +2248,7 @@ Responses from models: {{responses}}"""
|
||||
async def get_pipelines_list(user=Depends(get_admin_user)):
|
||||
responses = await get_openai_models_responses()
|
||||
|
||||
print(responses)
|
||||
log.debug(f"get_pipelines_list: get_openai_models_responses returned {responses}")
|
||||
urlIdxs = [
|
||||
idx
|
||||
for idx, response in enumerate(responses)
|
||||
|
||||
@@ -27,6 +27,7 @@ def set_security_headers() -> Dict[str, str]:
|
||||
- x-download-options
|
||||
- x-frame-options
|
||||
- x-permitted-cross-domain-policies
|
||||
- content-security-policy
|
||||
|
||||
Each environment variable is associated with a specific setter function
|
||||
that constructs the header. If the environment variable is set, the
|
||||
@@ -45,6 +46,7 @@ def set_security_headers() -> Dict[str, str]:
|
||||
"XDOWNLOAD_OPTIONS": set_xdownload_options,
|
||||
"XFRAME_OPTIONS": set_xframe,
|
||||
"XPERMITTED_CROSS_DOMAIN_POLICIES": set_xpermitted_cross_domain_policies,
|
||||
"CONTENT_SECURITY_POLICY": set_content_security_policy,
|
||||
}
|
||||
|
||||
for env_var, setter in header_setters.items():
|
||||
@@ -124,3 +126,8 @@ def set_xpermitted_cross_domain_policies(value: str):
|
||||
if not match:
|
||||
value = "none"
|
||||
return {"X-Permitted-Cross-Domain-Policies": value}
|
||||
|
||||
|
||||
# Set Content-Security-Policy response header
|
||||
def set_content_security_policy(value: str):
|
||||
return {"Content-Security-Policy": value}
|
||||
|
||||
@@ -1,11 +1,20 @@
|
||||
import logging
|
||||
import math
|
||||
import re
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
import uuid
|
||||
|
||||
|
||||
from open_webui.utils.misc import get_last_user_message, get_messages_content
|
||||
|
||||
from open_webui.env import SRC_LOG_LEVELS
|
||||
from open_webui.config import DEFAULT_RAG_TEMPLATE
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.setLevel(SRC_LOG_LEVELS["RAG"])
|
||||
|
||||
|
||||
def prompt_template(
|
||||
template: str, user_name: Optional[str] = None, user_location: Optional[str] = None
|
||||
@@ -16,12 +25,14 @@ def prompt_template(
|
||||
# Format the date to YYYY-MM-DD
|
||||
formatted_date = current_date.strftime("%Y-%m-%d")
|
||||
formatted_time = current_date.strftime("%I:%M:%S %p")
|
||||
formatted_weekday = current_date.strftime("%A")
|
||||
|
||||
template = template.replace("{{CURRENT_DATE}}", formatted_date)
|
||||
template = template.replace("{{CURRENT_TIME}}", formatted_time)
|
||||
template = template.replace(
|
||||
"{{CURRENT_DATETIME}}", f"{formatted_date} {formatted_time}"
|
||||
)
|
||||
template = template.replace("{{CURRENT_WEEKDAY}}", formatted_weekday)
|
||||
|
||||
if user_name:
|
||||
# Replace {{USER_NAME}} in the template with the user's name
|
||||
@@ -42,7 +53,9 @@ def prompt_template(
|
||||
|
||||
def replace_prompt_variable(template: str, prompt: str) -> str:
|
||||
def replacement_function(match):
|
||||
full_match = match.group(0)
|
||||
full_match = match.group(
|
||||
0
|
||||
).lower() # Normalize to lowercase for consistent handling
|
||||
start_length = match.group(1)
|
||||
end_length = match.group(2)
|
||||
middle_length = match.group(3)
|
||||
@@ -62,20 +75,23 @@ def replace_prompt_variable(template: str, prompt: str) -> str:
|
||||
return f"{start}...{end}"
|
||||
return ""
|
||||
|
||||
template = re.sub(
|
||||
r"{{prompt}}|{{prompt:start:(\d+)}}|{{prompt:end:(\d+)}}|{{prompt:middletruncate:(\d+)}}",
|
||||
replacement_function,
|
||||
template,
|
||||
)
|
||||
# Updated regex pattern to make it case-insensitive with the `(?i)` flag
|
||||
pattern = r"(?i){{prompt}}|{{prompt:start:(\d+)}}|{{prompt:end:(\d+)}}|{{prompt:middletruncate:(\d+)}}"
|
||||
template = re.sub(pattern, replacement_function, template)
|
||||
return template
|
||||
|
||||
|
||||
def replace_messages_variable(template: str, messages: list[str]) -> str:
|
||||
def replace_messages_variable(
|
||||
template: str, messages: Optional[list[str]] = None
|
||||
) -> str:
|
||||
def replacement_function(match):
|
||||
full_match = match.group(0)
|
||||
start_length = match.group(1)
|
||||
end_length = match.group(2)
|
||||
middle_length = match.group(3)
|
||||
# If messages is None, handle it as an empty list
|
||||
if messages is None:
|
||||
return ""
|
||||
|
||||
# Process messages based on the number of messages required
|
||||
if full_match == "{{MESSAGES}}":
|
||||
@@ -110,6 +126,44 @@ def replace_messages_variable(template: str, messages: list[str]) -> str:
|
||||
# {{prompt:middletruncate:8000}}
|
||||
|
||||
|
||||
def rag_template(template: str, context: str, query: str):
|
||||
if template.strip() == "":
|
||||
template = DEFAULT_RAG_TEMPLATE
|
||||
|
||||
if "[context]" not in template and "{{CONTEXT}}" not in template:
|
||||
log.debug(
|
||||
"WARNING: The RAG template does not contain the '[context]' or '{{CONTEXT}}' placeholder."
|
||||
)
|
||||
|
||||
if "<context>" in context and "</context>" in context:
|
||||
log.debug(
|
||||
"WARNING: Potential prompt injection attack: the RAG "
|
||||
"context contains '<context>' and '</context>'. This might be "
|
||||
"nothing, or the user might be trying to hack something."
|
||||
)
|
||||
|
||||
query_placeholders = []
|
||||
if "[query]" in context:
|
||||
query_placeholder = "{{QUERY" + str(uuid.uuid4()) + "}}"
|
||||
template = template.replace("[query]", query_placeholder)
|
||||
query_placeholders.append(query_placeholder)
|
||||
|
||||
if "{{QUERY}}" in context:
|
||||
query_placeholder = "{{QUERY" + str(uuid.uuid4()) + "}}"
|
||||
template = template.replace("{{QUERY}}", query_placeholder)
|
||||
query_placeholders.append(query_placeholder)
|
||||
|
||||
template = template.replace("[context]", context)
|
||||
template = template.replace("{{CONTEXT}}", context)
|
||||
template = template.replace("[query]", query)
|
||||
template = template.replace("{{QUERY}}", query)
|
||||
|
||||
for query_placeholder in query_placeholders:
|
||||
template = template.replace(query_placeholder, query)
|
||||
|
||||
return template
|
||||
|
||||
|
||||
def title_generation_template(
|
||||
template: str, messages: list[dict], user: Optional[dict] = None
|
||||
) -> str:
|
||||
@@ -163,6 +217,28 @@ def emoji_generation_template(
|
||||
return template
|
||||
|
||||
|
||||
def autocomplete_generation_template(
|
||||
template: str,
|
||||
prompt: str,
|
||||
messages: Optional[list[dict]] = None,
|
||||
type: Optional[str] = None,
|
||||
user: Optional[dict] = None,
|
||||
) -> str:
|
||||
template = template.replace("{{TYPE}}", type if type else "")
|
||||
template = replace_prompt_variable(template, prompt)
|
||||
template = replace_messages_variable(template, messages)
|
||||
|
||||
template = prompt_template(
|
||||
template,
|
||||
**(
|
||||
{"user_name": user.get("name"), "user_location": user.get("location")}
|
||||
if user
|
||||
else {}
|
||||
),
|
||||
)
|
||||
return template
|
||||
|
||||
|
||||
def query_generation_template(
|
||||
template: str, messages: list[dict], user: Optional[dict] = None
|
||||
) -> str:
|
||||
|
||||
@@ -90,6 +90,32 @@ def get_tools(
|
||||
return tools_dict
|
||||
|
||||
|
||||
def parse_description(docstring: str | None) -> str:
|
||||
"""
|
||||
Parse a function's docstring to extract the description.
|
||||
|
||||
Args:
|
||||
docstring (str): The docstring to parse.
|
||||
|
||||
Returns:
|
||||
str: The description.
|
||||
"""
|
||||
|
||||
if not docstring:
|
||||
return ""
|
||||
|
||||
lines = [line.strip() for line in docstring.strip().split("\n")]
|
||||
description_lines: list[str] = []
|
||||
|
||||
for line in lines:
|
||||
if re.match(r":param", line) or re.match(r":return", line):
|
||||
break
|
||||
|
||||
description_lines.append(line)
|
||||
|
||||
return "\n".join(description_lines)
|
||||
|
||||
|
||||
def parse_docstring(docstring):
|
||||
"""
|
||||
Parse a function's docstring to extract parameter descriptions in reST format.
|
||||
@@ -109,9 +135,12 @@ def parse_docstring(docstring):
|
||||
|
||||
for line in docstring.splitlines():
|
||||
match = param_pattern.match(line.strip())
|
||||
if match:
|
||||
param_name, param_description = match.groups()
|
||||
param_descriptions[param_name] = param_description
|
||||
if not match:
|
||||
continue
|
||||
param_name, param_description = match.groups()
|
||||
if param_name.startswith("__"):
|
||||
continue
|
||||
param_descriptions[param_name] = param_description
|
||||
|
||||
return param_descriptions
|
||||
|
||||
@@ -135,6 +164,8 @@ def function_to_pydantic_model(func: Callable) -> type[BaseModel]:
|
||||
docstring = func.__doc__
|
||||
descriptions = parse_docstring(docstring)
|
||||
|
||||
tool_description = parse_description(docstring)
|
||||
|
||||
field_defs = {}
|
||||
for name, param in parameters.items():
|
||||
type_hint = type_hints.get(name, Any)
|
||||
@@ -145,7 +176,10 @@ def function_to_pydantic_model(func: Callable) -> type[BaseModel]:
|
||||
continue
|
||||
field_defs[name] = type_hint, Field(default_value, description=description)
|
||||
|
||||
return create_model(func.__name__, **field_defs)
|
||||
model = create_model(func.__name__, **field_defs)
|
||||
model.__doc__ = tool_description
|
||||
|
||||
return model
|
||||
|
||||
|
||||
def get_callable_attributes(tool: object) -> list[Callable]:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
fastapi==0.111.0
|
||||
uvicorn[standard]==0.30.6
|
||||
pydantic==2.9.2
|
||||
python-multipart==0.0.17
|
||||
python-multipart==0.0.18
|
||||
|
||||
Flask==3.0.3
|
||||
Flask-Cors==5.0.0
|
||||
@@ -11,12 +11,13 @@ python-jose==3.3.0
|
||||
passlib[bcrypt]==1.7.4
|
||||
|
||||
requests==2.32.3
|
||||
aiohttp==3.10.8
|
||||
aiohttp==3.11.8
|
||||
async-timeout
|
||||
aiocache
|
||||
aiofiles
|
||||
|
||||
sqlalchemy==2.0.32
|
||||
alembic==1.13.2
|
||||
alembic==1.14.0
|
||||
peewee==3.17.6
|
||||
peewee-migrate==1.12.2
|
||||
psycopg2-binary==2.9.9
|
||||
@@ -43,11 +44,11 @@ langchain-chroma==0.1.4
|
||||
|
||||
fake-useragent==1.5.1
|
||||
chromadb==0.5.15
|
||||
pymilvus==2.4.9
|
||||
pymilvus==2.5.0
|
||||
qdrant-client~=1.12.0
|
||||
opensearch-py==2.7.1
|
||||
|
||||
sentence-transformers==3.2.0
|
||||
sentence-transformers==3.3.1
|
||||
colbert-ai==0.2.21
|
||||
einops==0.8.0
|
||||
|
||||
|
||||
Generated
+34
-26
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "open-webui",
|
||||
"version": "0.4.3",
|
||||
"version": "0.4.8",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "open-webui",
|
||||
"version": "0.4.3",
|
||||
"version": "0.4.8",
|
||||
"dependencies": {
|
||||
"@codemirror/lang-javascript": "^6.2.2",
|
||||
"@codemirror/lang-python": "^6.1.6",
|
||||
@@ -1836,9 +1836,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@polka/url": {
|
||||
"version": "1.0.0-next.25",
|
||||
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz",
|
||||
"integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ=="
|
||||
"version": "1.0.0-next.28",
|
||||
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
|
||||
"integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@popperjs/core": {
|
||||
"version": "2.11.8",
|
||||
@@ -2248,31 +2249,33 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sveltejs/adapter-static": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.2.tgz",
|
||||
"integrity": "sha512-/EBFydZDwfwFfFEuF1vzUseBoRziwKP7AoHAwv+Ot3M084sE/HTVBHf9mCmXfdM9ijprY5YEugZjleflncX5fQ==",
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.6.tgz",
|
||||
"integrity": "sha512-MGJcesnJWj7FxDcB/GbrdYD3q24Uk0PIL4QIX149ku+hlJuj//nxUbb0HxUTpjkecWfHjVveSUnUaQWnPRXlpg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@sveltejs/kit": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@sveltejs/kit": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.6.2.tgz",
|
||||
"integrity": "sha512-ruogrSPXjckn5poUiZU8VYNCSPHq66SFR1AATvOikQxtP6LNI4niAZVX/AWZRe/EPDG3oY2DNJ9c5z7u0t2NAQ==",
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.9.0.tgz",
|
||||
"integrity": "sha512-W3E7ed3ChB6kPqRs2H7tcHp+Z7oiTFC6m+lLyAQQuyXeqw6LdNuuwEUla+5VM0OGgqQD+cYD6+7Xq80vVm17Vg==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/cookie": "^0.6.0",
|
||||
"cookie": "^0.7.0",
|
||||
"cookie": "^0.6.0",
|
||||
"devalue": "^5.1.0",
|
||||
"esm-env": "^1.0.0",
|
||||
"esm-env": "^1.2.1",
|
||||
"import-meta-resolve": "^4.1.0",
|
||||
"kleur": "^4.1.5",
|
||||
"magic-string": "^0.30.5",
|
||||
"mrmime": "^2.0.0",
|
||||
"sade": "^1.8.1",
|
||||
"set-cookie-parser": "^2.6.0",
|
||||
"sirv": "^2.0.4",
|
||||
"sirv": "^3.0.0",
|
||||
"tiny-glob": "^0.2.9"
|
||||
},
|
||||
"bin": {
|
||||
@@ -2282,9 +2285,9 @@
|
||||
"node": ">=18.13"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0",
|
||||
"svelte": "^4.0.0 || ^5.0.0-next.0",
|
||||
"vite": "^5.0.3"
|
||||
"vite": "^5.0.3 || ^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@sveltejs/vite-plugin-svelte": {
|
||||
@@ -4391,9 +4394,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/cookie": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
|
||||
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -5690,9 +5694,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/esm-env": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
|
||||
"integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA=="
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.1.tgz",
|
||||
"integrity": "sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/espree": {
|
||||
"version": "9.6.1",
|
||||
@@ -8228,6 +8233,7 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
|
||||
"integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
@@ -10359,16 +10365,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sirv": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
|
||||
"integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz",
|
||||
"integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@polka/url": "^1.0.0-next.24",
|
||||
"mrmime": "^2.0.0",
|
||||
"totalist": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/slash": {
|
||||
@@ -11260,6 +11267,7 @@
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
|
||||
"integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "open-webui",
|
||||
"version": "0.4.3",
|
||||
"version": "0.4.8",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "npm run pyodide:fetch && vite dev --host",
|
||||
|
||||
+6
-5
@@ -9,7 +9,7 @@ dependencies = [
|
||||
"fastapi==0.111.0",
|
||||
"uvicorn[standard]==0.30.6",
|
||||
"pydantic==2.9.2",
|
||||
"python-multipart==0.0.17",
|
||||
"python-multipart==0.0.18",
|
||||
|
||||
"Flask==3.0.3",
|
||||
"Flask-Cors==5.0.0",
|
||||
@@ -19,12 +19,13 @@ dependencies = [
|
||||
"passlib[bcrypt]==1.7.4",
|
||||
|
||||
"requests==2.32.3",
|
||||
"aiohttp==3.10.8",
|
||||
"aiohttp==3.11.8",
|
||||
"async-timeout",
|
||||
"aiocache",
|
||||
"aiofiles",
|
||||
|
||||
"sqlalchemy==2.0.32",
|
||||
"alembic==1.13.2",
|
||||
"alembic==1.14.0",
|
||||
"peewee==3.17.6",
|
||||
"peewee-migrate==1.12.2",
|
||||
"psycopg2-binary==2.9.9",
|
||||
@@ -50,11 +51,11 @@ dependencies = [
|
||||
|
||||
"fake-useragent==1.5.1",
|
||||
"chromadb==0.5.15",
|
||||
"pymilvus==2.4.9",
|
||||
"pymilvus==2.5.0",
|
||||
"qdrant-client~=1.12.0",
|
||||
"opensearch-py==2.7.1",
|
||||
|
||||
"sentence-transformers==3.2.0",
|
||||
"sentence-transformers==3.3.1",
|
||||
"colbert-ai==0.2.21",
|
||||
"einops==0.8.0",
|
||||
|
||||
|
||||
+21
-4
@@ -45,15 +45,15 @@ math {
|
||||
}
|
||||
|
||||
.input-prose {
|
||||
@apply prose dark:prose-invert prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
|
||||
@apply prose dark:prose-invert prose-headings:font-semibold prose-hr:my-4 prose-hr:border-gray-100 prose-hr:dark:border-gray-800 prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
|
||||
}
|
||||
|
||||
.input-prose-sm {
|
||||
@apply prose dark:prose-invert prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line text-sm;
|
||||
@apply prose dark:prose-invert prose-headings:font-semibold prose-hr:my-4 prose-hr:border-gray-100 prose-hr:dark:border-gray-800 prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line text-sm;
|
||||
}
|
||||
|
||||
.markdown-prose {
|
||||
@apply prose dark:prose-invert prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
|
||||
@apply prose dark:prose-invert prose-headings:font-semibold prose-hr:my-4 prose-p:my-0 prose-img:my-1 prose-headings:my-1 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-ul:-my-0 prose-ol:-my-0 prose-li:-my-0 whitespace-pre-line;
|
||||
}
|
||||
|
||||
.markdown a {
|
||||
@@ -211,7 +211,15 @@ input[type='number'] {
|
||||
float: left;
|
||||
color: #adb5bd;
|
||||
pointer-events: none;
|
||||
height: 0;
|
||||
|
||||
@apply line-clamp-1 absolute;
|
||||
}
|
||||
|
||||
.ai-autocompletion::after {
|
||||
color: #a0a0a0;
|
||||
|
||||
content: attr(data-suggestion);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.tiptap > pre > code {
|
||||
@@ -231,6 +239,15 @@ input[type='number'] {
|
||||
@apply dark:bg-gray-800 bg-gray-100;
|
||||
}
|
||||
|
||||
.tiptap p code {
|
||||
color: #eb5757;
|
||||
border-width: 0px;
|
||||
padding: 3px 8px;
|
||||
font-size: 0.8em;
|
||||
font-weight: 600;
|
||||
@apply rounded-md dark:bg-gray-800 bg-gray-100 mx-0.5;
|
||||
}
|
||||
|
||||
/* Code styling */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
|
||||
+6
-3
@@ -2,9 +2,12 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
|
||||
<link rel="apple-touch-icon" href="%sveltekit.assets%/favicon.png" />
|
||||
<link rel="manifest" href="%sveltekit.assets%/manifest.json" crossorigin="use-credentials" />
|
||||
<link rel="icon" type="image/png" href="/favicon/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon/favicon.svg" />
|
||||
<link rel="shortcut icon" href="/favicon/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" />
|
||||
<meta name="apple-mobile-web-app-title" content="Open WebUI" />
|
||||
<link rel="manifest" href="/favicon/site.webmanifest" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"
|
||||
|
||||
@@ -58,17 +58,44 @@ export const exportConfig = async (token: string) => {
|
||||
return res;
|
||||
};
|
||||
|
||||
export const setDefaultModels = async (token: string, models: string) => {
|
||||
export const getModelsConfig = async (token: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/default/models`, {
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/models`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`
|
||||
}
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
error = err.detail;
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
|
||||
export const setModelsConfig = async (token: string, config: object) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/models`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
models: models
|
||||
...config
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
@@ -91,7 +118,7 @@ export const setDefaultModels = async (token: string, models: string) => {
|
||||
export const setDefaultPromptSuggestions = async (token: string, promptSuggestions: string) => {
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/default/suggestions`, {
|
||||
const res = await fetch(`${WEBUI_API_BASE_URL}/configs/suggestions`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
|
||||
+80
-34
@@ -25,26 +25,6 @@ export const getModels = async (token: string = '', base: boolean = false) => {
|
||||
}
|
||||
|
||||
let models = res?.data ?? [];
|
||||
models = models
|
||||
.filter((models) => models)
|
||||
// Sort the models
|
||||
.sort((a, b) => {
|
||||
// Compare case-insensitively by name for models without position property
|
||||
const lowerA = a.name.toLowerCase();
|
||||
const lowerB = b.name.toLowerCase();
|
||||
|
||||
if (lowerA < lowerB) return -1;
|
||||
if (lowerA > lowerB) return 1;
|
||||
|
||||
// If same case-insensitively, sort by original strings,
|
||||
// lowercase will come before uppercase due to ASCII values
|
||||
if (a.name < b.name) return -1;
|
||||
if (a.name > b.name) return 1;
|
||||
|
||||
return 0; // They are equal
|
||||
});
|
||||
|
||||
console.log(models);
|
||||
return models;
|
||||
};
|
||||
|
||||
@@ -387,20 +367,15 @@ export const generateQueries = async (
|
||||
throw error;
|
||||
}
|
||||
|
||||
// Step 1: Safely extract the response string
|
||||
const response = res?.choices[0]?.message?.content ?? '';
|
||||
|
||||
try {
|
||||
// Step 1: Safely extract the response string
|
||||
const response = res?.choices[0]?.message?.content ?? '';
|
||||
const jsonStartIndex = response.indexOf('{');
|
||||
const jsonEndIndex = response.lastIndexOf('}');
|
||||
|
||||
// Step 2: Attempt to fix common JSON format issues like single quotes
|
||||
const sanitizedResponse = response.replace(/['‘’`]/g, '"'); // Convert single quotes to double quotes for valid JSON
|
||||
|
||||
// Step 3: Find the relevant JSON block within the response
|
||||
const jsonStartIndex = sanitizedResponse.indexOf('{');
|
||||
const jsonEndIndex = sanitizedResponse.lastIndexOf('}');
|
||||
|
||||
// Step 4: Check if we found a valid JSON block (with both `{` and `}`)
|
||||
if (jsonStartIndex !== -1 && jsonEndIndex !== -1) {
|
||||
const jsonResponse = sanitizedResponse.substring(jsonStartIndex, jsonEndIndex + 1);
|
||||
const jsonResponse = response.substring(jsonStartIndex, jsonEndIndex + 1);
|
||||
|
||||
// Step 5: Parse the JSON block
|
||||
const parsed = JSON.parse(jsonResponse);
|
||||
@@ -413,12 +388,83 @@ export const generateQueries = async (
|
||||
}
|
||||
}
|
||||
|
||||
// If no valid JSON block found, return an empty array
|
||||
return [];
|
||||
// If no valid JSON block found, return response as is
|
||||
return [response];
|
||||
} catch (e) {
|
||||
// Catch and safely return empty array on any parsing errors
|
||||
console.error('Failed to parse response: ', e);
|
||||
return [];
|
||||
return [response];
|
||||
}
|
||||
};
|
||||
|
||||
export const generateAutoCompletion = async (
|
||||
token: string = '',
|
||||
model: string,
|
||||
prompt: string,
|
||||
messages?: object[],
|
||||
type: string = 'search query'
|
||||
) => {
|
||||
const controller = new AbortController();
|
||||
let error = null;
|
||||
|
||||
const res = await fetch(`${WEBUI_BASE_URL}/api/task/auto/completions`, {
|
||||
signal: controller.signal,
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
model: model,
|
||||
prompt: prompt,
|
||||
...(messages && { messages: messages }),
|
||||
type: type,
|
||||
stream: false
|
||||
})
|
||||
})
|
||||
.then(async (res) => {
|
||||
if (!res.ok) throw await res.json();
|
||||
return res.json();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
if ('detail' in err) {
|
||||
error = err.detail;
|
||||
}
|
||||
return null;
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error;
|
||||
}
|
||||
|
||||
const response = res?.choices[0]?.message?.content ?? '';
|
||||
|
||||
try {
|
||||
const jsonStartIndex = response.indexOf('{');
|
||||
const jsonEndIndex = response.lastIndexOf('}');
|
||||
|
||||
if (jsonStartIndex !== -1 && jsonEndIndex !== -1) {
|
||||
const jsonResponse = response.substring(jsonStartIndex, jsonEndIndex + 1);
|
||||
|
||||
// Step 5: Parse the JSON block
|
||||
const parsed = JSON.parse(jsonResponse);
|
||||
|
||||
// Step 6: If there's a "queries" key, return the queries array; otherwise, return an empty array
|
||||
if (parsed && parsed.text) {
|
||||
return parsed.text;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
// If no valid JSON block found, return response as is
|
||||
return response;
|
||||
} catch (e) {
|
||||
// Catch and safely return empty array on any parsing errors
|
||||
console.error('Failed to parse response: ', e);
|
||||
return response;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ type ContentExtractConfigForm = {
|
||||
type YoutubeConfigForm = {
|
||||
language: string[];
|
||||
translation?: string | null;
|
||||
proxy_url: string;
|
||||
};
|
||||
|
||||
type RAGConfigForm = {
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
</div>
|
||||
|
||||
<div class="mb-5">
|
||||
{#each filteredItems as func}
|
||||
{#each filteredItems as func (func.id)}
|
||||
<div
|
||||
class=" flex space-x-4 cursor-pointer w-full px-3 py-2 dark:hover:bg-white/5 hover:bg-black/5 rounded-xl"
|
||||
>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
import { getModels } from '$lib/apis';
|
||||
import { getConfig, updateConfig } from '$lib/apis/evaluations';
|
||||
|
||||
import Switch from '$lib/components/common/Switch.svelte';
|
||||
import Spinner from '$lib/components/common/Spinner.svelte';
|
||||
@@ -12,7 +13,6 @@
|
||||
import Plus from '$lib/components/icons/Plus.svelte';
|
||||
import Model from './Evaluations/Model.svelte';
|
||||
import ArenaModelModal from './Evaluations/ArenaModelModal.svelte';
|
||||
import { getConfig, updateConfig } from '$lib/apis/evaluations';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
if (config) {
|
||||
toast.success('Settings saved successfully');
|
||||
models.set(await getModels(localStorage.token));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
<div class="flex justify-end pt-3 text-sm font-medium gap-1.5">
|
||||
{#if edit}
|
||||
<button
|
||||
class="px-3.5 py-1.5 text-sm font-medium dark:bg-black dark:hover:bg-gray-900 dark:text-white bg-white text-black hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center"
|
||||
class="px-3.5 py-1.5 text-sm font-medium dark:bg-black dark:hover:bg-gray-950 dark:text-white bg-white text-black hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
dispatch('delete', model);
|
||||
@@ -387,7 +387,7 @@
|
||||
{/if}
|
||||
|
||||
<button
|
||||
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center {loading
|
||||
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-950 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center {loading
|
||||
? ' cursor-not-allowed'
|
||||
: ''}"
|
||||
type="submit"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
TASK_MODEL: '',
|
||||
TASK_MODEL_EXTERNAL: '',
|
||||
TITLE_GENERATION_PROMPT_TEMPLATE: '',
|
||||
ENABLE_AUTOCOMPLETE_GENERATION: true,
|
||||
AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH: -1,
|
||||
TAGS_GENERATION_PROMPT_TEMPLATE: '',
|
||||
ENABLE_TAGS_GENERATION: true,
|
||||
ENABLE_SEARCH_QUERY_GENERATION: true,
|
||||
@@ -55,255 +57,207 @@
|
||||
};
|
||||
</script>
|
||||
|
||||
<form
|
||||
class="flex flex-col h-full justify-between space-y-3 text-sm"
|
||||
on:submit|preventDefault={() => {
|
||||
updateInterfaceHandler();
|
||||
dispatch('save');
|
||||
}}
|
||||
>
|
||||
<div class=" overflow-y-scroll scrollbar-hidden h-full pr-1.5">
|
||||
<div>
|
||||
<div class=" mb-2.5 text-sm font-medium flex items-center">
|
||||
<div class=" mr-1">{$i18n.t('Set Task Model')}</div>
|
||||
<Tooltip
|
||||
content={$i18n.t(
|
||||
'A task model is used when performing tasks such as generating titles for chats and web search queries'
|
||||
)}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
class="size-3.5"
|
||||
{#if taskConfig}
|
||||
<form
|
||||
class="flex flex-col h-full justify-between space-y-3 text-sm"
|
||||
on:submit|preventDefault={() => {
|
||||
updateInterfaceHandler();
|
||||
dispatch('save');
|
||||
}}
|
||||
>
|
||||
<div class=" overflow-y-scroll scrollbar-hidden h-full pr-1.5">
|
||||
<div>
|
||||
<div class=" mb-2.5 text-sm font-medium flex items-center">
|
||||
<div class=" mr-1">{$i18n.t('Set Task Model')}</div>
|
||||
<Tooltip
|
||||
content={$i18n.t(
|
||||
'A task model is used when performing tasks such as generating titles for chats and web search queries'
|
||||
)}
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"
|
||||
/>
|
||||
</svg>
|
||||
</Tooltip>
|
||||
</div>
|
||||
<div class="flex w-full gap-2">
|
||||
<div class="flex-1">
|
||||
<div class=" text-xs mb-1">{$i18n.t('Local Models')}</div>
|
||||
<select
|
||||
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none"
|
||||
bind:value={taskConfig.TASK_MODEL}
|
||||
placeholder={$i18n.t('Select a model')}
|
||||
>
|
||||
<option value="" selected>{$i18n.t('Current Model')}</option>
|
||||
{#each $models.filter((m) => m.owned_by === 'ollama') as model}
|
||||
<option value={model.id} class="bg-gray-100 dark:bg-gray-700">
|
||||
{model.name}
|
||||
</option>
|
||||
{/each}
|
||||
</select>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
class="size-3.5"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"
|
||||
/>
|
||||
</svg>
|
||||
</Tooltip>
|
||||
</div>
|
||||
<div class="flex w-full gap-2">
|
||||
<div class="flex-1">
|
||||
<div class=" text-xs mb-1">{$i18n.t('Local Models')}</div>
|
||||
<select
|
||||
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none"
|
||||
bind:value={taskConfig.TASK_MODEL}
|
||||
placeholder={$i18n.t('Select a model')}
|
||||
>
|
||||
<option value="" selected>{$i18n.t('Current Model')}</option>
|
||||
{#each $models.filter((m) => m.owned_by === 'ollama') as model}
|
||||
<option value={model.id} class="bg-gray-100 dark:bg-gray-700">
|
||||
{model.name}
|
||||
</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="flex-1">
|
||||
<div class=" text-xs mb-1">{$i18n.t('External Models')}</div>
|
||||
<select
|
||||
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none"
|
||||
bind:value={taskConfig.TASK_MODEL_EXTERNAL}
|
||||
placeholder={$i18n.t('Select a model')}
|
||||
>
|
||||
<option value="" selected>{$i18n.t('Current Model')}</option>
|
||||
{#each $models as model}
|
||||
<option value={model.id} class="bg-gray-100 dark:bg-gray-700">
|
||||
{model.name}
|
||||
</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex-1">
|
||||
<div class=" text-xs mb-1">{$i18n.t('External Models')}</div>
|
||||
<select
|
||||
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none"
|
||||
bind:value={taskConfig.TASK_MODEL_EXTERNAL}
|
||||
placeholder={$i18n.t('Select a model')}
|
||||
>
|
||||
<option value="" selected>{$i18n.t('Current Model')}</option>
|
||||
{#each $models as model}
|
||||
<option value={model.id} class="bg-gray-100 dark:bg-gray-700">
|
||||
{model.name}
|
||||
</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<div class=" mb-2.5 text-xs font-medium">{$i18n.t('Title Generation Prompt')}</div>
|
||||
|
||||
<Tooltip
|
||||
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||
placement="top-start"
|
||||
>
|
||||
<Textarea
|
||||
bind:value={taskConfig.TITLE_GENERATION_PROMPT_TEMPLATE}
|
||||
placeholder={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||
/>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
<hr class=" dark:border-gray-850 my-3" />
|
||||
|
||||
<div class="my-3 flex w-full items-center justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Enable Tags Generation')}
|
||||
</div>
|
||||
|
||||
<Switch bind:state={taskConfig.ENABLE_TAGS_GENERATION} />
|
||||
</div>
|
||||
|
||||
{#if taskConfig.ENABLE_TAGS_GENERATION}
|
||||
<div class="mt-3">
|
||||
<div class=" mb-2.5 text-xs font-medium">{$i18n.t('Tags Generation Prompt')}</div>
|
||||
<div class=" mb-2.5 text-xs font-medium">{$i18n.t('Title Generation Prompt')}</div>
|
||||
|
||||
<Tooltip
|
||||
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||
placement="top-start"
|
||||
>
|
||||
<Textarea
|
||||
bind:value={taskConfig.TAGS_GENERATION_PROMPT_TEMPLATE}
|
||||
bind:value={taskConfig.TITLE_GENERATION_PROMPT_TEMPLATE}
|
||||
placeholder={$i18n.t(
|
||||
'Leave empty to use the default prompt, or enter a custom prompt'
|
||||
)}
|
||||
/>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<hr class=" dark:border-gray-850 my-3" />
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-3" />
|
||||
|
||||
<div class="my-3 flex w-full items-center justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Enable Retrieval Query Generation')}
|
||||
<div class="my-3 flex w-full items-center justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Autocomplete Generation')}
|
||||
</div>
|
||||
|
||||
<Tooltip content={$i18n.t('Enable autocomplete generation for chat messages')}>
|
||||
<Switch bind:state={taskConfig.ENABLE_AUTOCOMPLETE_GENERATION} />
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
<Switch bind:state={taskConfig.ENABLE_RETRIEVAL_QUERY_GENERATION} />
|
||||
</div>
|
||||
|
||||
<div class="my-3 flex w-full items-center justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Enable Web Search Query Generation')}
|
||||
</div>
|
||||
|
||||
<Switch bind:state={taskConfig.ENABLE_SEARCH_QUERY_GENERATION} />
|
||||
</div>
|
||||
|
||||
<div class="">
|
||||
<div class=" mb-2.5 text-xs font-medium">{$i18n.t('Query Generation Prompt')}</div>
|
||||
|
||||
<Tooltip
|
||||
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||
placement="top-start"
|
||||
>
|
||||
<Textarea
|
||||
bind:value={taskConfig.QUERY_GENERATION_PROMPT_TEMPLATE}
|
||||
placeholder={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||
/>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" dark:border-gray-850 my-3" />
|
||||
|
||||
<div class=" space-y-3 {banners.length > 0 ? ' mb-3' : ''}">
|
||||
<div class="flex w-full justify-between">
|
||||
<div class=" self-center text-sm font-semibold">
|
||||
{$i18n.t('Banners')}
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="p-1 px-3 text-xs flex rounded transition"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
if (banners.length === 0 || banners.at(-1).content !== '') {
|
||||
banners = [
|
||||
...banners,
|
||||
{
|
||||
id: uuidv4(),
|
||||
type: '',
|
||||
title: '',
|
||||
content: '',
|
||||
dismissible: true,
|
||||
timestamp: Math.floor(Date.now() / 1000)
|
||||
}
|
||||
];
|
||||
}
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="w-4 h-4"
|
||||
>
|
||||
<path
|
||||
d="M10.75 4.75a.75.75 0 00-1.5 0v4.5h-4.5a.75.75 0 000 1.5h4.5v4.5a.75.75 0 001.5 0v-4.5h4.5a.75.75 0 000-1.5h-4.5v-4.5z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<div class="flex flex-col space-y-1">
|
||||
{#each banners as banner, bannerIdx}
|
||||
<div class=" flex justify-between">
|
||||
<div class="flex flex-row flex-1 border rounded-xl dark:border-gray-800">
|
||||
<select
|
||||
class="w-fit capitalize rounded-xl py-2 px-4 text-xs bg-transparent outline-none"
|
||||
bind:value={banner.type}
|
||||
required
|
||||
>
|
||||
{#if banner.type == ''}
|
||||
<option value="" selected disabled class="text-gray-900">{$i18n.t('Type')}</option
|
||||
>
|
||||
{/if}
|
||||
<option value="info" class="text-gray-900">{$i18n.t('Info')}</option>
|
||||
<option value="warning" class="text-gray-900">{$i18n.t('Warning')}</option>
|
||||
<option value="error" class="text-gray-900">{$i18n.t('Error')}</option>
|
||||
<option value="success" class="text-gray-900">{$i18n.t('Success')}</option>
|
||||
</select>
|
||||
|
||||
<input
|
||||
class="pr-5 py-1.5 text-xs w-full bg-transparent outline-none"
|
||||
placeholder={$i18n.t('Content')}
|
||||
bind:value={banner.content}
|
||||
/>
|
||||
|
||||
<div class="relative top-1.5 -left-2">
|
||||
<Tooltip content={$i18n.t('Dismissible')} className="flex h-fit items-center">
|
||||
<Switch bind:state={banner.dismissible} />
|
||||
</Tooltip>
|
||||
</div>
|
||||
{#if taskConfig.ENABLE_AUTOCOMPLETE_GENERATION}
|
||||
<div class="mt-3">
|
||||
<div class=" mb-2.5 text-xs font-medium">
|
||||
{$i18n.t('Autocomplete Generation Input Max Length')}
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="px-2"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
banners.splice(bannerIdx, 1);
|
||||
banners = banners;
|
||||
}}
|
||||
<Tooltip
|
||||
content={$i18n.t('Character limit for autocomplete generation input')}
|
||||
placement="top-start"
|
||||
>
|
||||
<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>
|
||||
<input
|
||||
class="w-full outline-none bg-transparent"
|
||||
bind:value={taskConfig.AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH}
|
||||
placeholder={$i18n.t('-1 for no limit, or a positive integer for a specific limit')}
|
||||
/>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if $user.role === 'admin'}
|
||||
<div class=" space-y-3">
|
||||
<div class="flex w-full justify-between mb-2">
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-3" />
|
||||
|
||||
<div class="my-3 flex w-full items-center justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Tags Generation')}
|
||||
</div>
|
||||
|
||||
<Switch bind:state={taskConfig.ENABLE_TAGS_GENERATION} />
|
||||
</div>
|
||||
|
||||
{#if taskConfig.ENABLE_TAGS_GENERATION}
|
||||
<div class="mt-3">
|
||||
<div class=" mb-2.5 text-xs font-medium">{$i18n.t('Tags Generation Prompt')}</div>
|
||||
|
||||
<Tooltip
|
||||
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||
placement="top-start"
|
||||
>
|
||||
<Textarea
|
||||
bind:value={taskConfig.TAGS_GENERATION_PROMPT_TEMPLATE}
|
||||
placeholder={$i18n.t(
|
||||
'Leave empty to use the default prompt, or enter a custom prompt'
|
||||
)}
|
||||
/>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-3" />
|
||||
|
||||
<div class="my-3 flex w-full items-center justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Retrieval Query Generation')}
|
||||
</div>
|
||||
|
||||
<Switch bind:state={taskConfig.ENABLE_RETRIEVAL_QUERY_GENERATION} />
|
||||
</div>
|
||||
|
||||
<div class="my-3 flex w-full items-center justify-between">
|
||||
<div class=" self-center text-xs font-medium">
|
||||
{$i18n.t('Web Search Query Generation')}
|
||||
</div>
|
||||
|
||||
<Switch bind:state={taskConfig.ENABLE_SEARCH_QUERY_GENERATION} />
|
||||
</div>
|
||||
|
||||
<div class="">
|
||||
<div class=" mb-2.5 text-xs font-medium">{$i18n.t('Query Generation Prompt')}</div>
|
||||
|
||||
<Tooltip
|
||||
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||
placement="top-start"
|
||||
>
|
||||
<Textarea
|
||||
bind:value={taskConfig.QUERY_GENERATION_PROMPT_TEMPLATE}
|
||||
placeholder={$i18n.t(
|
||||
'Leave empty to use the default prompt, or enter a custom prompt'
|
||||
)}
|
||||
/>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" border-gray-50 dark:border-gray-850 my-3" />
|
||||
|
||||
<div class=" space-y-3 {banners.length > 0 ? ' mb-3' : ''}">
|
||||
<div class="flex w-full justify-between">
|
||||
<div class=" self-center text-sm font-semibold">
|
||||
{$i18n.t('Default Prompt Suggestions')}
|
||||
{$i18n.t('Banners')}
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="p-1 px-3 text-xs flex rounded transition"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
if (promptSuggestions.length === 0 || promptSuggestions.at(-1).content !== '') {
|
||||
promptSuggestions = [...promptSuggestions, { content: '', title: ['', ''] }];
|
||||
if (banners.length === 0 || banners.at(-1).content !== '') {
|
||||
banners = [
|
||||
...banners,
|
||||
{
|
||||
id: uuidv4(),
|
||||
type: '',
|
||||
title: '',
|
||||
content: '',
|
||||
dismissible: true,
|
||||
timestamp: Math.floor(Date.now() / 1000)
|
||||
}
|
||||
];
|
||||
}
|
||||
}}
|
||||
>
|
||||
@@ -319,40 +273,45 @@
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<div class="grid lg:grid-cols-2 flex-col gap-1.5">
|
||||
{#each promptSuggestions as prompt, promptIdx}
|
||||
<div
|
||||
class=" flex border border-gray-100 dark:border-none dark:bg-gray-850 rounded-xl py-1.5"
|
||||
>
|
||||
<div class="flex flex-col flex-1 pl-1">
|
||||
<div class="flex border-b border-gray-100 dark:border-gray-800 w-full">
|
||||
<input
|
||||
class="px-3 py-1.5 text-xs w-full bg-transparent outline-none border-r border-gray-100 dark:border-gray-800"
|
||||
placeholder={$i18n.t('Title (e.g. Tell me a fun fact)')}
|
||||
bind:value={prompt.title[0]}
|
||||
/>
|
||||
<div class="flex flex-col space-y-1">
|
||||
{#each banners as banner, bannerIdx}
|
||||
<div class=" flex justify-between">
|
||||
<div class="flex flex-row flex-1 border rounded-xl dark:border-gray-800">
|
||||
<select
|
||||
class="w-fit capitalize rounded-xl py-2 px-4 text-xs bg-transparent outline-none"
|
||||
bind:value={banner.type}
|
||||
required
|
||||
>
|
||||
{#if banner.type == ''}
|
||||
<option value="" selected disabled class="text-gray-900"
|
||||
>{$i18n.t('Type')}</option
|
||||
>
|
||||
{/if}
|
||||
<option value="info" class="text-gray-900">{$i18n.t('Info')}</option>
|
||||
<option value="warning" class="text-gray-900">{$i18n.t('Warning')}</option>
|
||||
<option value="error" class="text-gray-900">{$i18n.t('Error')}</option>
|
||||
<option value="success" class="text-gray-900">{$i18n.t('Success')}</option>
|
||||
</select>
|
||||
|
||||
<input
|
||||
class="px-3 py-1.5 text-xs w-full bg-transparent outline-none border-r border-gray-100 dark:border-gray-800"
|
||||
placeholder={$i18n.t('Subtitle (e.g. about the Roman Empire)')}
|
||||
bind:value={prompt.title[1]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<textarea
|
||||
class="px-3 py-1.5 text-xs w-full bg-transparent outline-none border-r border-gray-100 dark:border-gray-800 resize-none"
|
||||
placeholder={$i18n.t('Prompt (e.g. Tell me a fun fact about the Roman Empire)')}
|
||||
rows="3"
|
||||
bind:value={prompt.content}
|
||||
<input
|
||||
class="pr-5 py-1.5 text-xs w-full bg-transparent outline-none"
|
||||
placeholder={$i18n.t('Content')}
|
||||
bind:value={banner.content}
|
||||
/>
|
||||
|
||||
<div class="relative top-1.5 -left-2">
|
||||
<Tooltip content={$i18n.t('Dismissible')} className="flex h-fit items-center">
|
||||
<Switch bind:state={banner.dismissible} />
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="px-3"
|
||||
class="px-2"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
promptSuggestions.splice(promptIdx, 1);
|
||||
promptSuggestions = promptSuggestions;
|
||||
banners.splice(bannerIdx, 1);
|
||||
banners = banners;
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
@@ -369,22 +328,103 @@
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
{#if promptSuggestions.length > 0}
|
||||
<div class="text-xs text-left w-full mt-2">
|
||||
{$i18n.t('Adjusting these settings will apply changes universally to all users.')}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end text-sm font-medium">
|
||||
<button
|
||||
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
|
||||
type="submit"
|
||||
>
|
||||
{$i18n.t('Save')}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
{#if $user.role === 'admin'}
|
||||
<div class=" space-y-3">
|
||||
<div class="flex w-full justify-between mb-2">
|
||||
<div class=" self-center text-sm font-semibold">
|
||||
{$i18n.t('Default Prompt Suggestions')}
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="p-1 px-3 text-xs flex rounded transition"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
if (promptSuggestions.length === 0 || promptSuggestions.at(-1).content !== '') {
|
||||
promptSuggestions = [...promptSuggestions, { content: '', title: ['', ''] }];
|
||||
}
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="w-4 h-4"
|
||||
>
|
||||
<path
|
||||
d="M10.75 4.75a.75.75 0 00-1.5 0v4.5h-4.5a.75.75 0 000 1.5h4.5v4.5a.75.75 0 001.5 0v-4.5h4.5a.75.75 0 000-1.5h-4.5v-4.5z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<div class="grid lg:grid-cols-2 flex-col gap-1.5">
|
||||
{#each promptSuggestions as prompt, promptIdx}
|
||||
<div
|
||||
class=" flex border border-gray-100 dark:border-none dark:bg-gray-850 rounded-xl py-1.5"
|
||||
>
|
||||
<div class="flex flex-col flex-1 pl-1">
|
||||
<div class="flex border-b border-gray-100 dark:border-gray-800 w-full">
|
||||
<input
|
||||
class="px-3 py-1.5 text-xs w-full bg-transparent outline-none border-r border-gray-100 dark:border-gray-800"
|
||||
placeholder={$i18n.t('Title (e.g. Tell me a fun fact)')}
|
||||
bind:value={prompt.title[0]}
|
||||
/>
|
||||
|
||||
<input
|
||||
class="px-3 py-1.5 text-xs w-full bg-transparent outline-none border-r border-gray-100 dark:border-gray-800"
|
||||
placeholder={$i18n.t('Subtitle (e.g. about the Roman Empire)')}
|
||||
bind:value={prompt.title[1]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<textarea
|
||||
class="px-3 py-1.5 text-xs w-full bg-transparent outline-none border-r border-gray-100 dark:border-gray-800 resize-none"
|
||||
placeholder={$i18n.t('Prompt (e.g. Tell me a fun fact about the Roman Empire)')}
|
||||
rows="3"
|
||||
bind:value={prompt.content}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<button
|
||||
class="px-3"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
promptSuggestions.splice(promptIdx, 1);
|
||||
promptSuggestions = promptSuggestions;
|
||||
}}
|
||||
>
|
||||
<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>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
{#if promptSuggestions.length > 0}
|
||||
<div class="text-xs text-left w-full mt-2">
|
||||
{$i18n.t('Adjusting these settings will apply changes universally to all users.')}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end text-sm font-medium">
|
||||
<button
|
||||
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
|
||||
type="submit"
|
||||
>
|
||||
{$i18n.t('Save')}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
import ModelEditor from '$lib/components/workspace/Models/ModelEditor.svelte';
|
||||
import { toast } from 'svelte-sonner';
|
||||
import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
|
||||
import Cog6 from '$lib/components/icons/Cog6.svelte';
|
||||
import ConfigureModelsModal from './Models/ConfigureModelsModal.svelte';
|
||||
|
||||
let importFiles;
|
||||
let modelsImportInputElement: HTMLInputElement;
|
||||
@@ -35,12 +37,20 @@
|
||||
|
||||
let filteredModels = [];
|
||||
let selectedModelId = null;
|
||||
let showResetModal = false;
|
||||
|
||||
let showConfigModal = false;
|
||||
|
||||
$: if (models) {
|
||||
filteredModels = models.filter(
|
||||
(m) => searchValue === '' || m.name.toLowerCase().includes(searchValue.toLowerCase())
|
||||
);
|
||||
filteredModels = models
|
||||
.filter((m) => searchValue === '' || m.name.toLowerCase().includes(searchValue.toLowerCase()))
|
||||
.sort((a, b) => {
|
||||
// // Check if either model is inactive and push them to the bottom
|
||||
// if ((a.is_active ?? true) !== (b.is_active ?? true)) {
|
||||
// return (b.is_active ?? true) - (a.is_active ?? true);
|
||||
// }
|
||||
// If both models' active states are the same, sort alphabetically
|
||||
return a.name.localeCompare(b.name);
|
||||
});
|
||||
}
|
||||
|
||||
let searchValue = '';
|
||||
@@ -114,12 +124,11 @@
|
||||
}).catch((error) => {
|
||||
return null;
|
||||
});
|
||||
|
||||
await init();
|
||||
} else {
|
||||
await toggleModelById(localStorage.token, model.id);
|
||||
}
|
||||
|
||||
await init();
|
||||
_models.set(await getModels(localStorage.token));
|
||||
};
|
||||
|
||||
@@ -128,18 +137,7 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
<ConfirmDialog
|
||||
title={$i18n.t('Delete All Models')}
|
||||
message={$i18n.t('This will delete all models including custom models and cannot be undone.')}
|
||||
bind:show={showResetModal}
|
||||
onConfirm={async () => {
|
||||
const res = deleteAllModels(localStorage.token);
|
||||
if (res) {
|
||||
toast.success($i18n.t('All models deleted successfully'));
|
||||
init();
|
||||
}
|
||||
}}
|
||||
/>
|
||||
<ConfigureModelsModal bind:show={showConfigModal} {init} />
|
||||
|
||||
{#if models !== null}
|
||||
{#if selectedModelId === null}
|
||||
@@ -154,17 +152,15 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Tooltip content={$i18n.t('This will delete all models including custom models')}>
|
||||
<Tooltip content={$i18n.t('Configure')}>
|
||||
<button
|
||||
class=" px-2.5 py-1 rounded-full flex gap-1 items-center"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
showResetModal = true;
|
||||
showConfigModal = true;
|
||||
}}
|
||||
>
|
||||
<div class="text-xs flex-shrink-0">
|
||||
{$i18n.t('Reset')}
|
||||
</div>
|
||||
<Cog6 />
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
@@ -186,7 +182,7 @@
|
||||
|
||||
<div class=" my-2 mb-5" id="model-list">
|
||||
{#if models.length > 0}
|
||||
{#each filteredModels as model, modelIdx (`${model.id}-${modelIdx}`)}
|
||||
{#each filteredModels as model, modelIdx (model.id)}
|
||||
<div
|
||||
class=" flex space-x-4 cursor-pointer w-full px-3 py-2 dark:hover:bg-white/5 hover:bg-black/5 rounded-lg transition"
|
||||
id="model-item-{model.id}"
|
||||
|
||||
@@ -0,0 +1,268 @@
|
||||
<script>
|
||||
import { toast } from 'svelte-sonner';
|
||||
|
||||
import { createEventDispatcher, getContext, onMount } from 'svelte';
|
||||
const i18n = getContext('i18n');
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
import { models } from '$lib/stores';
|
||||
import { deleteAllModels } from '$lib/apis/models';
|
||||
|
||||
import Modal from '$lib/components/common/Modal.svelte';
|
||||
import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte';
|
||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||
import ModelList from './ModelList.svelte';
|
||||
import { getModelsConfig, setModelsConfig } from '$lib/apis/configs';
|
||||
import Spinner from '$lib/components/common/Spinner.svelte';
|
||||
import Minus from '$lib/components/icons/Minus.svelte';
|
||||
import Plus from '$lib/components/icons/Plus.svelte';
|
||||
|
||||
export let show = false;
|
||||
export let init = () => {};
|
||||
|
||||
let config = null;
|
||||
|
||||
let selectedModelId = '';
|
||||
let defaultModelIds = [];
|
||||
let modelIds = [];
|
||||
|
||||
let loading = false;
|
||||
let showResetModal = false;
|
||||
|
||||
const submitHandler = async () => {
|
||||
loading = true;
|
||||
|
||||
const res = await setModelsConfig(localStorage.token, {
|
||||
DEFAULT_MODELS: defaultModelIds.join(','),
|
||||
MODEL_ORDER_LIST: modelIds
|
||||
});
|
||||
|
||||
if (res) {
|
||||
toast.success($i18n.t('Models configuration saved successfully'));
|
||||
init();
|
||||
show = false;
|
||||
} else {
|
||||
toast.error($i18n.t('Failed to save models configuration'));
|
||||
}
|
||||
|
||||
loading = false;
|
||||
};
|
||||
|
||||
onMount(async () => {
|
||||
config = await getModelsConfig(localStorage.token);
|
||||
|
||||
if (config?.DEFAULT_MODELS) {
|
||||
defaultModelIds = (config?.DEFAULT_MODELS).split(',').filter((id) => id);
|
||||
} else {
|
||||
defaultModelIds = [];
|
||||
}
|
||||
const modelOrderList = config.MODEL_ORDER_LIST || [];
|
||||
const allModelIds = $models.map((model) => model.id);
|
||||
|
||||
// Create a Set for quick lookup of ordered IDs
|
||||
const orderedSet = new Set(modelOrderList);
|
||||
|
||||
modelIds = [
|
||||
// Add all IDs from MODEL_ORDER_LIST that exist in allModelIds
|
||||
...modelOrderList.filter((id) => orderedSet.has(id) && allModelIds.includes(id)),
|
||||
// Add remaining IDs not in MODEL_ORDER_LIST, sorted alphabetically
|
||||
...allModelIds.filter((id) => !orderedSet.has(id)).sort((a, b) => a.localeCompare(b))
|
||||
];
|
||||
});
|
||||
</script>
|
||||
|
||||
<ConfirmDialog
|
||||
title={$i18n.t('Reset All Models')}
|
||||
message={$i18n.t('This will delete all models including custom models and cannot be undone.')}
|
||||
bind:show={showResetModal}
|
||||
onConfirm={async () => {
|
||||
const res = deleteAllModels(localStorage.token);
|
||||
if (res) {
|
||||
toast.success($i18n.t('All models deleted successfully'));
|
||||
init();
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
||||
<Modal size="sm" bind:show>
|
||||
<div>
|
||||
<div class=" flex justify-between dark:text-gray-100 px-5 pt-4 pb-2">
|
||||
<div class=" text-lg font-medium self-center font-primary">
|
||||
{$i18n.t('Configure Models')}
|
||||
</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-5 pb-4 md:space-x-4 dark:text-gray-200">
|
||||
<div class=" flex flex-col w-full sm:flex-row sm:justify-center sm:space-x-6">
|
||||
{#if config}
|
||||
<form
|
||||
class="flex flex-col w-full"
|
||||
on:submit|preventDefault={() => {
|
||||
submitHandler();
|
||||
}}
|
||||
>
|
||||
<div>
|
||||
<div class="flex flex-col w-full">
|
||||
<div class="mb-1 flex justify-between">
|
||||
<div class="text-xs text-gray-500">{$i18n.t('Reorder Models')}</div>
|
||||
</div>
|
||||
|
||||
<ModelList bind:modelIds />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class=" border-gray-100 dark:border-gray-700/10 my-2.5 w-full" />
|
||||
|
||||
<div>
|
||||
<div class="flex flex-col w-full">
|
||||
<div class="mb-1 flex justify-between">
|
||||
<div class="text-xs text-gray-500">{$i18n.t('Default Models')}</div>
|
||||
</div>
|
||||
|
||||
{#if defaultModelIds.length > 0}
|
||||
<div class="flex flex-col">
|
||||
{#each defaultModelIds as modelId, modelIdx}
|
||||
<div class=" flex gap-2 w-full justify-between items-center">
|
||||
<div class=" text-sm flex-1 py-1 rounded-lg">
|
||||
{$models.find((model) => model.id === modelId)?.name}
|
||||
</div>
|
||||
<div class="flex-shrink-0">
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
defaultModelIds = defaultModelIds.filter(
|
||||
(_, idx) => idx !== modelIdx
|
||||
);
|
||||
}}
|
||||
>
|
||||
<Minus strokeWidth="2" className="size-3.5" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{:else}
|
||||
<div class="text-gray-500 text-xs text-center py-2">
|
||||
{$i18n.t('No models selected')}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<hr class=" border-gray-100 dark:border-gray-700/10 my-2.5 w-full" />
|
||||
|
||||
<div class="flex items-center">
|
||||
<select
|
||||
class="w-full py-1 text-sm rounded-lg bg-transparent {selectedModelId
|
||||
? ''
|
||||
: 'text-gray-500'} placeholder:text-gray-300 dark:placeholder:text-gray-700 outline-none"
|
||||
bind:value={selectedModelId}
|
||||
>
|
||||
<option value="">{$i18n.t('Select a model')}</option>
|
||||
{#each $models as model}
|
||||
<option value={model.id} class="bg-gray-50 dark:bg-gray-700"
|
||||
>{model.name}</option
|
||||
>
|
||||
{/each}
|
||||
</select>
|
||||
|
||||
<div>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
if (selectedModelId === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (defaultModelIds.includes(selectedModelId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
defaultModelIds = [...defaultModelIds, selectedModelId];
|
||||
selectedModelId = '';
|
||||
}}
|
||||
>
|
||||
<Plus className="size-3.5" strokeWidth="2" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between pt-3 text-sm font-medium gap-1.5">
|
||||
<Tooltip content={$i18n.t('This will delete all models including custom models')}>
|
||||
<button
|
||||
class="px-3.5 py-1.5 text-sm font-medium dark:bg-black dark:hover:bg-gray-950 dark:text-white bg-white text-black hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center"
|
||||
type="button"
|
||||
on:click={() => {
|
||||
showResetModal = true;
|
||||
}}
|
||||
>
|
||||
<!-- {$i18n.t('Delete All Models')} -->
|
||||
{$i18n.t('Reset All Models')}
|
||||
</button>
|
||||
</Tooltip>
|
||||
|
||||
<button
|
||||
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center {loading
|
||||
? ' cursor-not-allowed'
|
||||
: ''}"
|
||||
type="submit"
|
||||
disabled={loading}
|
||||
>
|
||||
{$i18n.t('Save')}
|
||||
|
||||
{#if loading}
|
||||
<div class="ml-2 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>
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
{:else}
|
||||
<div>
|
||||
<Spinner />
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Modal>
|
||||
@@ -0,0 +1,58 @@
|
||||
<script lang="ts">
|
||||
import Sortable from 'sortablejs';
|
||||
|
||||
import { createEventDispatcher, getContext, onMount } from 'svelte';
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
import { models } from '$lib/stores';
|
||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||
import EllipsisVertical from '$lib/components/icons/EllipsisVertical.svelte';
|
||||
|
||||
export let modelIds = [];
|
||||
|
||||
let sortable = null;
|
||||
let modelListElement = null;
|
||||
|
||||
const positionChangeHandler = () => {
|
||||
const modelList = Array.from(modelListElement.children).map((child) =>
|
||||
child.id.replace('model-item-', '')
|
||||
);
|
||||
|
||||
modelIds = modelList;
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
sortable = Sortable.create(modelListElement, {
|
||||
animation: 150,
|
||||
onUpdate: async (event) => {
|
||||
positionChangeHandler();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{#if modelIds.length > 0}
|
||||
<div class="flex flex-col -translate-x-1" bind:this={modelListElement}>
|
||||
{#each modelIds as modelId, modelIdx (modelId)}
|
||||
<div class=" flex gap-2 w-full justify-between items-center" id="model-item-{modelId}">
|
||||
<Tooltip content={modelId} placement="top-start">
|
||||
<div class="flex items-center gap-1">
|
||||
<EllipsisVertical className="size-4 cursor-move" />
|
||||
|
||||
<div class=" text-sm flex-1 py-1 rounded-lg">
|
||||
{#if $models.find((model) => model.id === modelId)}
|
||||
{$models.find((model) => model.id === modelId).name}
|
||||
{:else}
|
||||
{modelId}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{:else}
|
||||
<div class="text-gray-500 text-xs text-center py-2">
|
||||
{$i18n.t('No models found')}
|
||||
</div>
|
||||
{/if}
|
||||
@@ -29,13 +29,15 @@
|
||||
|
||||
let youtubeLanguage = 'en';
|
||||
let youtubeTranslation = null;
|
||||
let youtubeProxyUrl = '';
|
||||
|
||||
const submitHandler = async () => {
|
||||
const res = await updateRAGConfig(localStorage.token, {
|
||||
web: webConfig,
|
||||
youtube: {
|
||||
language: youtubeLanguage.split(',').map((lang) => lang.trim()),
|
||||
translation: youtubeTranslation
|
||||
translation: youtubeTranslation,
|
||||
proxy_url: youtubeProxyUrl
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -48,6 +50,7 @@
|
||||
|
||||
youtubeLanguage = res.youtube.language.join(',');
|
||||
youtubeTranslation = res.youtube.translation;
|
||||
youtubeProxyUrl = res.youtube.proxy_url;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -358,6 +361,21 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class=" py-0.5 flex w-full justify-between">
|
||||
<div class=" w-20 text-xs font-medium self-center">{$i18n.t('Proxy URL')}</div>
|
||||
<div class=" flex-1 self-center">
|
||||
<input
|
||||
class="w-full rounded-lg py-2 px-4 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none"
|
||||
type="text"
|
||||
placeholder={$i18n.t('Enter proxy URL (e.g. https://user:password@host:port)')}
|
||||
bind:value={youtubeProxyUrl}
|
||||
autocomplete="off"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -9,13 +9,14 @@
|
||||
|
||||
import Modal from '$lib/components/common/Modal.svelte';
|
||||
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||
import Spinner from '$lib/components/common/Spinner.svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
export let show = false;
|
||||
export let user;
|
||||
|
||||
let chats = [];
|
||||
let chats = null;
|
||||
|
||||
const deleteChatHandler = async (chatId) => {
|
||||
const res = await deleteChatById(localStorage.token, chatId).catch((error) => {
|
||||
@@ -31,6 +32,8 @@
|
||||
chats = await getChatListByUserId(localStorage.token, user.id);
|
||||
}
|
||||
})();
|
||||
} else {
|
||||
chats = null;
|
||||
}
|
||||
|
||||
let sortKey = 'updated_at'; // default sort key
|
||||
@@ -46,33 +49,32 @@
|
||||
</script>
|
||||
|
||||
<Modal size="lg" bind:show>
|
||||
<div>
|
||||
<div class=" flex justify-between dark:text-gray-300 px-5 py-4">
|
||||
<div class=" text-lg font-medium self-center capitalize">
|
||||
{$i18n.t("{{user}}'s Chats", { user: user.name })}
|
||||
</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 class=" flex justify-between dark:text-gray-300 px-5 pt-4">
|
||||
<div class=" text-lg font-medium self-center capitalize">
|
||||
{$i18n.t("{{user}}'s Chats", { user: user.name })}
|
||||
</div>
|
||||
<hr class=" dark:border-gray-850" />
|
||||
<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-5 py-4 md:space-x-4 dark:text-gray-200">
|
||||
<div class=" flex flex-col w-full sm:flex-row sm:justify-center sm:space-x-6">
|
||||
<div class="flex flex-col md:flex-row w-full px-5 pt-2 pb-4 md:space-x-4 dark:text-gray-200">
|
||||
<div class=" flex flex-col w-full sm:flex-row sm:justify-center sm:space-x-6">
|
||||
{#if chats}
|
||||
{#if chats.length > 0}
|
||||
<div class="text-left text-sm w-full mb-4 max-h-[22rem] overflow-y-scroll">
|
||||
<div class="relative overflow-x-auto">
|
||||
@@ -176,7 +178,9 @@
|
||||
{$i18n.t('has no conversations.')}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{:else}
|
||||
<Spinner />
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</Modal>
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
} else {
|
||||
message.statusHistory = [data];
|
||||
}
|
||||
} else if (type === 'source') {
|
||||
} else if (type === 'source' || type === 'citation') {
|
||||
if (data?.type === 'code_execution') {
|
||||
// Code execution; update existing code execution by ID, or add new one.
|
||||
if (!message?.code_executions) {
|
||||
@@ -888,11 +888,10 @@
|
||||
await tick();
|
||||
|
||||
// Reset chat input textarea
|
||||
const chatInputContainer = document.getElementById('chat-input-container');
|
||||
const chatInputElement = document.getElementById('chat-input');
|
||||
|
||||
if (chatInputContainer) {
|
||||
chatInputContainer.value = '';
|
||||
chatInputContainer.style.height = '';
|
||||
if (chatInputElement) {
|
||||
chatInputElement.style.height = '';
|
||||
}
|
||||
|
||||
const _files = JSON.parse(JSON.stringify(files));
|
||||
@@ -1977,7 +1976,7 @@
|
||||
}
|
||||
);
|
||||
|
||||
return title;
|
||||
return title ? title : (lastUserMessage?.content ?? 'New Chat');
|
||||
} else {
|
||||
return lastUserMessage?.content ?? 'New Chat';
|
||||
}
|
||||
@@ -2285,7 +2284,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class=" pb-[1.6rem]">
|
||||
<div class=" pb-[1rem]">
|
||||
<MessageInput
|
||||
{history}
|
||||
{selectedModels}
|
||||
@@ -2310,15 +2309,19 @@
|
||||
on:submit={async (e) => {
|
||||
if (e.detail) {
|
||||
await tick();
|
||||
submitPrompt(e.detail.replaceAll('\n\n', '\n'));
|
||||
submitPrompt(
|
||||
($settings?.richTextInput ?? true)
|
||||
? e.detail.replaceAll('\n\n', '\n')
|
||||
: e.detail
|
||||
);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
||||
<div
|
||||
class="absolute bottom-1.5 text-xs text-gray-500 text-center line-clamp-1 right-0 left-0"
|
||||
class="absolute bottom-1 text-xs text-gray-500 text-center line-clamp-1 right-0 left-0"
|
||||
>
|
||||
{$i18n.t('LLMs can make mistakes. Verify important information.')}
|
||||
<!-- {$i18n.t('LLMs can make mistakes. Verify important information.')} -->
|
||||
</div>
|
||||
</div>
|
||||
{:else}
|
||||
@@ -2347,7 +2350,11 @@
|
||||
on:submit={async (e) => {
|
||||
if (e.detail) {
|
||||
await tick();
|
||||
submitPrompt(e.detail.replaceAll('\n\n', '\n'));
|
||||
submitPrompt(
|
||||
($settings?.richTextInput ?? true)
|
||||
? e.detail.replaceAll('\n\n', '\n')
|
||||
: e.detail
|
||||
);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
showControls
|
||||
} from '$lib/stores';
|
||||
|
||||
import { blobToFile, findWordIndices } from '$lib/utils';
|
||||
import { blobToFile, createMessagesList, findWordIndices } from '$lib/utils';
|
||||
import { transcribeAudio } from '$lib/apis/audio';
|
||||
import { uploadFile } from '$lib/apis/files';
|
||||
import { getTools } from '$lib/apis/tools';
|
||||
@@ -34,6 +34,8 @@
|
||||
import Commands from './MessageInput/Commands.svelte';
|
||||
import XMark from '../icons/XMark.svelte';
|
||||
import RichTextInput from '../common/RichTextInput.svelte';
|
||||
import { generateAutoCompletion } from '$lib/apis';
|
||||
import { error, text } from '@sveltejs/kit';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
@@ -47,6 +49,9 @@
|
||||
export let atSelectedModel: Model | undefined;
|
||||
export let selectedModels: [''];
|
||||
|
||||
let selectedModelIds = [];
|
||||
$: selectedModelIds = atSelectedModel !== undefined ? [atSelectedModel.id] : selectedModels;
|
||||
|
||||
export let history;
|
||||
|
||||
export let prompt = '';
|
||||
@@ -266,8 +271,8 @@
|
||||
|
||||
{#if loaded}
|
||||
<div class="w-full font-primary">
|
||||
<div class=" -mb-0.5 mx-auto inset-x-0 bg-transparent flex justify-center">
|
||||
<div class="flex flex-col px-2.5 max-w-6xl w-full">
|
||||
<div class=" mx-auto inset-x-0 bg-transparent flex justify-center">
|
||||
<div class="flex flex-col px-3 max-w-6xl w-full">
|
||||
<div class="relative">
|
||||
{#if autoScroll === false && history?.currentId}
|
||||
<div
|
||||
@@ -300,7 +305,7 @@
|
||||
<div class="w-full relative">
|
||||
{#if atSelectedModel !== undefined || selectedToolIds.length > 0 || webSearchEnabled}
|
||||
<div
|
||||
class="px-4 pb-0.5 pt-1.5 text-left w-full flex flex-col absolute bottom-0 left-0 right-0 bg-gradient-to-t from-white dark:from-gray-900 z-10"
|
||||
class="px-3 pb-0.5 pt-1.5 text-left w-full flex flex-col absolute bottom-0 left-0 right-0 bg-gradient-to-t from-white dark:from-gray-900 z-10"
|
||||
>
|
||||
{#if selectedToolIds.length > 0}
|
||||
<div class="flex items-center justify-between w-full">
|
||||
@@ -405,7 +410,7 @@
|
||||
</div>
|
||||
|
||||
<div class="{transparentBackground ? 'bg-transparent' : 'bg-white dark:bg-gray-900'} ">
|
||||
<div class="max-w-6xl px-4 mx-auto inset-x-0">
|
||||
<div class="max-w-6xl px-2.5 mx-auto inset-x-0">
|
||||
<div class="">
|
||||
<input
|
||||
bind:this={filesInputElement}
|
||||
@@ -457,7 +462,7 @@
|
||||
}}
|
||||
>
|
||||
<div
|
||||
class="flex-1 flex flex-col relative w-full rounded-3xl px-1.5 bg-gray-50 dark:bg-gray-850 dark:text-gray-100"
|
||||
class="flex-1 flex flex-col relative w-full rounded-3xl px-1 bg-gray-50 dark:bg-gray-400/5 dark:text-gray-100"
|
||||
dir={$settings?.chatDirection ?? 'LTR'}
|
||||
>
|
||||
{#if files.length > 0}
|
||||
@@ -542,7 +547,7 @@
|
||||
{/if}
|
||||
|
||||
<div class=" flex">
|
||||
<div class=" ml-0.5 self-end mb-1.5 flex space-x-1">
|
||||
<div class="ml-1 self-end mb-1.5 flex space-x-1">
|
||||
<InputMenu
|
||||
bind:webSearchEnabled
|
||||
bind:selectedToolIds
|
||||
@@ -557,18 +562,18 @@
|
||||
}}
|
||||
>
|
||||
<button
|
||||
class="bg-gray-50 hover:bg-gray-100 text-gray-800 dark:bg-gray-850 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-2 outline-none focus:outline-none"
|
||||
class="bg-transparent hover:bg-white/80 text-gray-800 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-2 outline-none focus:outline-none"
|
||||
type="button"
|
||||
aria-label="More"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 16 16"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
class="size-5"
|
||||
>
|
||||
<path
|
||||
d="M8.75 3.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5v-3.5Z"
|
||||
d="M10.75 4.75a.75.75 0 0 0-1.5 0v4.5h-4.5a.75.75 0 0 0 0 1.5h4.5v4.5a.75.75 0 0 0 1.5 0v-4.5h4.5a.75.75 0 0 0 0-1.5h-4.5v-4.5Z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
@@ -577,10 +582,11 @@
|
||||
|
||||
{#if $settings?.richTextInput ?? true}
|
||||
<div
|
||||
class="scrollbar-hidden text-left bg-gray-50 dark:bg-gray-850 dark:text-gray-100 outline-none w-full py-2.5 px-1 rounded-xl resize-none h-fit max-h-60 overflow-auto"
|
||||
class="scrollbar-hidden text-left bg-transparent dark:text-gray-100 outline-none w-full py-2.5 px-1 rounded-xl resize-none h-fit max-h-80 overflow-auto"
|
||||
>
|
||||
<RichTextInput
|
||||
bind:this={chatInputElement}
|
||||
bind:value={prompt}
|
||||
id="chat-input"
|
||||
messageInput={true}
|
||||
shiftEnter={!$mobile ||
|
||||
@@ -591,29 +597,27 @@
|
||||
)}
|
||||
placeholder={placeholder ? placeholder : $i18n.t('Send a Message')}
|
||||
largeTextAsFile={$settings?.largeTextAsFile ?? false}
|
||||
bind:value={prompt}
|
||||
on:enter={async (e) => {
|
||||
const commandsContainerElement =
|
||||
document.getElementById('commands-container');
|
||||
if (commandsContainerElement) {
|
||||
e.preventDefault();
|
||||
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
|
||||
if (commandOptionButton) {
|
||||
commandOptionButton?.click();
|
||||
return;
|
||||
}
|
||||
autocomplete={true}
|
||||
generateAutoCompletion={async (text) => {
|
||||
if (selectedModelIds.length === 0 || !selectedModelIds.at(0)) {
|
||||
toast.error($i18n.t('Please select a model first.'));
|
||||
}
|
||||
|
||||
if (prompt !== '') {
|
||||
dispatch('submit', prompt);
|
||||
}
|
||||
}}
|
||||
on:keypress={(e) => {
|
||||
e = e.detail.event;
|
||||
const res = await generateAutoCompletion(
|
||||
localStorage.token,
|
||||
selectedModelIds.at(0),
|
||||
text,
|
||||
history?.currentId
|
||||
? createMessagesList(history, history.currentId)
|
||||
: null
|
||||
).catch((error) => {
|
||||
console.log(error);
|
||||
|
||||
return null;
|
||||
});
|
||||
|
||||
console.log(res);
|
||||
return res;
|
||||
}}
|
||||
on:keydown={async (e) => {
|
||||
e = e.detail.event;
|
||||
@@ -657,34 +661,70 @@
|
||||
editButton?.click();
|
||||
}
|
||||
|
||||
if (commandsContainerElement && e.key === 'ArrowUp') {
|
||||
e.preventDefault();
|
||||
commandsElement.selectUp();
|
||||
if (commandsContainerElement) {
|
||||
if (commandsContainerElement && e.key === 'ArrowUp') {
|
||||
e.preventDefault();
|
||||
commandsElement.selectUp();
|
||||
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
commandOptionButton.scrollIntoView({ block: 'center' });
|
||||
}
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
commandOptionButton.scrollIntoView({ block: 'center' });
|
||||
}
|
||||
|
||||
if (commandsContainerElement && e.key === 'ArrowDown') {
|
||||
e.preventDefault();
|
||||
commandsElement.selectDown();
|
||||
if (commandsContainerElement && e.key === 'ArrowDown') {
|
||||
e.preventDefault();
|
||||
commandsElement.selectDown();
|
||||
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
commandOptionButton.scrollIntoView({ block: 'center' });
|
||||
}
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
commandOptionButton.scrollIntoView({ block: 'center' });
|
||||
}
|
||||
|
||||
if (commandsContainerElement && e.key === 'Tab') {
|
||||
e.preventDefault();
|
||||
if (commandsContainerElement && e.key === 'Tab') {
|
||||
e.preventDefault();
|
||||
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
|
||||
commandOptionButton?.click();
|
||||
commandOptionButton?.click();
|
||||
}
|
||||
|
||||
if (commandsContainerElement && e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
|
||||
const commandOptionButton = [
|
||||
...document.getElementsByClassName('selected-command-option-button')
|
||||
]?.at(-1);
|
||||
|
||||
if (commandOptionButton) {
|
||||
commandOptionButton?.click();
|
||||
} else {
|
||||
document.getElementById('send-message-button')?.click();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (
|
||||
!$mobile ||
|
||||
!(
|
||||
'ontouchstart' in window ||
|
||||
navigator.maxTouchPoints > 0 ||
|
||||
navigator.msMaxTouchPoints > 0
|
||||
)
|
||||
) {
|
||||
// Prevent Enter key from creating a new line
|
||||
// Uses keyCode '13' for Enter key for chinese/japanese keyboards
|
||||
if (e.keyCode === 13 && !e.shiftKey) {
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
// Submit the prompt when Enter key is pressed
|
||||
if (prompt !== '' && e.keyCode === 13 && !e.shiftKey) {
|
||||
dispatch('submit', prompt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (e.key === 'Escape') {
|
||||
@@ -867,7 +907,7 @@
|
||||
}
|
||||
|
||||
e.target.style.height = '';
|
||||
e.target.style.height = Math.min(e.target.scrollHeight, 200) + 'px';
|
||||
e.target.style.height = Math.min(e.target.scrollHeight, 320) + 'px';
|
||||
}
|
||||
|
||||
if (e.key === 'Escape') {
|
||||
@@ -880,12 +920,11 @@
|
||||
rows="1"
|
||||
on:input={async (e) => {
|
||||
e.target.style.height = '';
|
||||
e.target.style.height = Math.min(e.target.scrollHeight, 200) + 'px';
|
||||
user = null;
|
||||
e.target.style.height = Math.min(e.target.scrollHeight, 320) + 'px';
|
||||
}}
|
||||
on:focus={async (e) => {
|
||||
e.target.style.height = '';
|
||||
e.target.style.height = Math.min(e.target.scrollHeight, 200) + 'px';
|
||||
e.target.style.height = Math.min(e.target.scrollHeight, 320) + 'px';
|
||||
}}
|
||||
on:paste={async (e) => {
|
||||
const clipboardData = e.clipboardData || window.clipboardData;
|
||||
@@ -928,12 +967,12 @@
|
||||
/>
|
||||
{/if}
|
||||
|
||||
<div class="self-end mb-2 flex space-x-1 mr-1">
|
||||
<div class="self-end mb-1.5 flex space-x-1 mr-1">
|
||||
{#if !history?.currentId || history.messages[history.currentId]?.done == true}
|
||||
<Tooltip content={$i18n.t('Record voice')}>
|
||||
<button
|
||||
id="voice-input-button"
|
||||
class=" text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-850 transition rounded-full p-1.5 mr-0.5 self-center"
|
||||
class=" text-gray-600 dark:text-gray-300 hover:text-gray-700 dark:hover:text-gray-200 transition rounded-full p-1.5 mr-0.5 self-center"
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
try {
|
||||
@@ -977,113 +1016,114 @@
|
||||
</button>
|
||||
</Tooltip>
|
||||
{/if}
|
||||
|
||||
{#if !history.currentId || history.messages[history.currentId]?.done == true}
|
||||
{#if prompt === ''}
|
||||
<div class=" flex items-center">
|
||||
<Tooltip content={$i18n.t('Call')}>
|
||||
<button
|
||||
class=" bg-black text-white hover:bg-gray-900 dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full p-2 self-center"
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
if (selectedModels.length > 1) {
|
||||
toast.error($i18n.t('Select only one model to call'));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($config.audio.stt.engine === 'web') {
|
||||
toast.error(
|
||||
$i18n.t(
|
||||
'Call feature is not supported when using Web STT engine'
|
||||
)
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
// check if user has access to getUserMedia
|
||||
try {
|
||||
let stream = await navigator.mediaDevices.getUserMedia({
|
||||
audio: true
|
||||
});
|
||||
// If the user grants the permission, proceed to show the call overlay
|
||||
|
||||
if (stream) {
|
||||
const tracks = stream.getTracks();
|
||||
tracks.forEach((track) => track.stop());
|
||||
}
|
||||
|
||||
stream = null;
|
||||
|
||||
showCallOverlay.set(true);
|
||||
showControls.set(true);
|
||||
} catch (err) {
|
||||
// If the user denies the permission or an error occurs, show an error message
|
||||
toast.error(
|
||||
$i18n.t('Permission denied when accessing media devices')
|
||||
);
|
||||
}
|
||||
}}
|
||||
aria-label="Call"
|
||||
>
|
||||
<Headphone className="size-5" />
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{:else}
|
||||
<div class=" flex items-center">
|
||||
<Tooltip content={$i18n.t('Send message')}>
|
||||
<button
|
||||
id="send-message-button"
|
||||
class="{prompt !== ''
|
||||
? 'bg-black text-white hover:bg-gray-900 dark:bg-white dark:text-black dark:hover:bg-gray-100 '
|
||||
: 'text-white bg-gray-200 dark:text-gray-900 dark:bg-gray-700 disabled'} transition rounded-full p-1.5 self-center"
|
||||
type="submit"
|
||||
disabled={prompt === ''}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 16 16"
|
||||
fill="currentColor"
|
||||
class="size-6"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 14a.75.75 0 0 1-.75-.75V4.56L4.03 7.78a.75.75 0 0 1-1.06-1.06l4.5-4.5a.75.75 0 0 1 1.06 0l4.5 4.5a.75.75 0 0 1-1.06 1.06L8.75 4.56v8.69A.75.75 0 0 1 8 14Z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/if}
|
||||
{:else}
|
||||
<div class=" flex items-center">
|
||||
<Tooltip content={$i18n.t('Stop')}>
|
||||
<button
|
||||
class="bg-white hover:bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-1.5"
|
||||
on:click={() => {
|
||||
stopResponse();
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="currentColor"
|
||||
class="size-6"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm6-2.438c0-.724.588-1.312 1.313-1.312h4.874c.725 0 1.313.588 1.313 1.313v4.874c0 .725-.588 1.313-1.313 1.313H9.564a1.312 1.312 0 01-1.313-1.313V9.564z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-end w-10">
|
||||
{#if !history.currentId || history.messages[history.currentId]?.done == true}
|
||||
{#if prompt === ''}
|
||||
<div class=" flex items-center mb-1">
|
||||
<Tooltip content={$i18n.t('Call')}>
|
||||
<button
|
||||
class=" text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-850 transition rounded-full p-2 self-center"
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
if (selectedModels.length > 1) {
|
||||
toast.error($i18n.t('Select only one model to call'));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($config.audio.stt.engine === 'web') {
|
||||
toast.error(
|
||||
$i18n.t('Call feature is not supported when using Web STT engine')
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
// check if user has access to getUserMedia
|
||||
try {
|
||||
let stream = await navigator.mediaDevices.getUserMedia({
|
||||
audio: true
|
||||
});
|
||||
// If the user grants the permission, proceed to show the call overlay
|
||||
|
||||
if (stream) {
|
||||
const tracks = stream.getTracks();
|
||||
tracks.forEach((track) => track.stop());
|
||||
}
|
||||
|
||||
stream = null;
|
||||
|
||||
showCallOverlay.set(true);
|
||||
showControls.set(true);
|
||||
} catch (err) {
|
||||
// If the user denies the permission or an error occurs, show an error message
|
||||
toast.error(
|
||||
$i18n.t('Permission denied when accessing media devices')
|
||||
);
|
||||
}
|
||||
}}
|
||||
aria-label="Call"
|
||||
>
|
||||
<Headphone className="size-6" />
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{:else}
|
||||
<div class=" flex items-center mb-1">
|
||||
<Tooltip content={$i18n.t('Send message')}>
|
||||
<button
|
||||
id="send-message-button"
|
||||
class="{prompt !== ''
|
||||
? 'bg-black text-white hover:bg-gray-900 dark:bg-white dark:text-black dark:hover:bg-gray-100 '
|
||||
: 'text-white bg-gray-200 dark:text-gray-900 dark:bg-gray-700 disabled'} transition rounded-full p-1.5 m-0.5 self-center"
|
||||
type="submit"
|
||||
disabled={prompt === ''}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 16 16"
|
||||
fill="currentColor"
|
||||
class="size-6"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 14a.75.75 0 0 1-.75-.75V4.56L4.03 7.78a.75.75 0 0 1-1.06-1.06l4.5-4.5a.75.75 0 0 1 1.06 0l4.5 4.5a.75.75 0 0 1-1.06 1.06L8.75 4.56v8.69A.75.75 0 0 1 8 14Z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/if}
|
||||
{:else}
|
||||
<div class=" flex items-center mb-1.5">
|
||||
<Tooltip content={$i18n.t('Stop')}>
|
||||
<button
|
||||
class="bg-white hover:bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-800 transition rounded-full p-1.5"
|
||||
on:click={() => {
|
||||
stopResponse();
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="currentColor"
|
||||
class="size-6"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm6-2.438c0-.724.588-1.312 1.313-1.312h4.874c.725 0 1.313.588 1.313 1.313v4.874c0 .725-.588 1.313-1.313 1.313H9.564a1.312 1.312 0 01-1.313-1.313V9.564z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
{:else}
|
||||
<div
|
||||
id="commands-container"
|
||||
class="pl-3 pr-14 mb-3 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
class="px-2 mb-2 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
>
|
||||
<div class="flex w-full rounded-xl border border-gray-50 dark:border-gray-850">
|
||||
<div
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
{#if filteredItems.length > 0 || prompt.split(' ')?.at(0)?.substring(1).startsWith('http')}
|
||||
<div
|
||||
id="commands-container"
|
||||
class="pl-3 pr-14 mb-3 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
class="px-2 mb-2 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
>
|
||||
<div class="flex w-full rounded-xl border border-gray-50 dark:border-gray-850">
|
||||
<div
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
{#if filteredItems.length > 0}
|
||||
<div
|
||||
id="commands-container"
|
||||
class="pl-3 pr-14 mb-3 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
class="px-2 mb-2 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
>
|
||||
<div class="flex w-full rounded-xl border border-gray-50 dark:border-gray-850">
|
||||
<div
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
{#if filteredPrompts.length > 0}
|
||||
<div
|
||||
id="commands-container"
|
||||
class="pl-3 pr-14 mb-3 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
class="px-2 mb-2 text-left w-full absolute bottom-0 left-0 right-0 z-10"
|
||||
>
|
||||
<div class="flex w-full rounded-xl border border-gray-50 dark:border-gray-850">
|
||||
<div
|
||||
|
||||
@@ -38,7 +38,9 @@
|
||||
};
|
||||
});
|
||||
if (mergedDocuments.every((doc) => doc.distance !== undefined)) {
|
||||
mergedDocuments.sort((a, b) => (a.distance ?? Infinity) - (b.distance ?? Infinity));
|
||||
mergedDocuments = mergedDocuments.sort(
|
||||
(a, b) => (b.distance ?? Infinity) - (a.distance ?? Infinity)
|
||||
);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
export let content = '';
|
||||
</script>
|
||||
|
||||
<div class="flex my-2 gap-2.5 border px-4 py-3 border-red-800 bg-red-800/30 rounded-lg">
|
||||
<div class="flex my-2 gap-2.5 border px-4 py-3 border-red-600/10 bg-red-600/10 rounded-lg">
|
||||
<div class=" self-start mt-0.5">
|
||||
<Info className="size-5" />
|
||||
<Info className="size-5 text-red-700 dark:text-red-400" />
|
||||
</div>
|
||||
|
||||
<div class=" self-center text-sm">
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
<!-- {JSON.stringify(tokens)} -->
|
||||
{#each tokens as token, tokenIdx (tokenIdx)}
|
||||
{#if token.type === 'hr'}
|
||||
<hr />
|
||||
<hr class=" border-gray-50 dark:border-gray-850" />
|
||||
{:else if token.type === 'heading'}
|
||||
<svelte:element this={headerComponent(token.depth)}>
|
||||
<MarkdownInlineTokens id={`${id}-${tokenIdx}-h`} tokens={token.tokens} {onSourceClick} />
|
||||
@@ -89,11 +89,9 @@
|
||||
{/if}
|
||||
{:else if token.type === 'table'}
|
||||
<div class="relative w-full group">
|
||||
<div
|
||||
class="scrollbar-hidden relative whitespace-nowrap overflow-x-auto max-w-full rounded-lg"
|
||||
>
|
||||
<div class="scrollbar-hidden relative overflow-x-auto max-w-full rounded-lg">
|
||||
<table
|
||||
class="table-auto w-full text-sm text-left text-gray-500 dark:text-gray-400 max-w-full rounded-xl"
|
||||
class=" w-full text-sm text-left text-gray-500 dark:text-gray-400 max-w-full rounded-xl"
|
||||
>
|
||||
<thead
|
||||
class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-850 dark:text-gray-400 border-none"
|
||||
@@ -102,15 +100,17 @@
|
||||
{#each token.header as header, headerIdx}
|
||||
<th
|
||||
scope="col"
|
||||
class="!px-2 !py-1.5 cursor-pointer select-none border border-gray-50 dark:border-gray-850"
|
||||
class="!px-3 !py-1.5 cursor-pointer select-none border border-gray-50 dark:border-gray-850"
|
||||
style={token.align[headerIdx] ? '' : `text-align: ${token.align[headerIdx]}`}
|
||||
>
|
||||
<div class="flex gap-1.5 items-center">
|
||||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-header-${headerIdx}`}
|
||||
tokens={header.tokens}
|
||||
{onSourceClick}
|
||||
/>
|
||||
<div class="flex flex-col gap-1.5 text-left">
|
||||
<div class="flex-shrink-0 break-normal">
|
||||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-header-${headerIdx}`}
|
||||
tokens={header.tokens}
|
||||
{onSourceClick}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</th>
|
||||
{/each}
|
||||
@@ -121,10 +121,10 @@
|
||||
<tr class="bg-white dark:bg-gray-900 dark:border-gray-850 text-xs">
|
||||
{#each row ?? [] as cell, cellIdx}
|
||||
<td
|
||||
class="!px-2 !py-1.5 font-medium text-gray-900 dark:text-white w-max border border-gray-50 dark:border-gray-850"
|
||||
class="!px-3 !py-1.5 text-gray-900 dark:text-white w-max border border-gray-50 dark:border-gray-850"
|
||||
style={token.align[cellIdx] ? '' : `text-align: ${token.align[cellIdx]}`}
|
||||
>
|
||||
<div class="flex">
|
||||
<div class="flex flex-col break-normal">
|
||||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-row-${rowIdx}-${cellIdx}`}
|
||||
tokens={cell.tokens}
|
||||
|
||||
@@ -658,7 +658,7 @@
|
||||
/>
|
||||
{/if}
|
||||
|
||||
{#if message.error}
|
||||
{#if message?.error}
|
||||
<Error content={message?.error?.content ?? message.content} />
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
import Selector from './ModelSelector/Selector.svelte';
|
||||
import Tooltip from '../common/Tooltip.svelte';
|
||||
|
||||
import { setDefaultModels } from '$lib/apis/configs';
|
||||
import { updateUserSettings } from '$lib/apis/users';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
export let selectedModels = [''];
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
mirostat_tau: null,
|
||||
top_k: null,
|
||||
top_p: null,
|
||||
min_p: null,
|
||||
stop: null,
|
||||
tfs_z: null,
|
||||
num_ctx: null,
|
||||
@@ -340,6 +341,7 @@
|
||||
mirostat_tau: params.mirostat_tau !== null ? params.mirostat_tau : undefined,
|
||||
top_k: params.top_k !== null ? params.top_k : undefined,
|
||||
top_p: params.top_p !== null ? params.top_p : undefined,
|
||||
min_p: params.min_p !== null ? params.min_p : undefined,
|
||||
tfs_z: params.tfs_z !== null ? params.tfs_z : undefined,
|
||||
num_ctx: params.num_ctx !== null ? params.num_ctx : undefined,
|
||||
num_batch: params.num_batch !== null ? params.num_batch : undefined,
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
import type { Banner } from '$lib/types';
|
||||
import { onMount, createEventDispatcher } from 'svelte';
|
||||
import { fade } from 'svelte/transition';
|
||||
import DOMPurify from 'dompurify';
|
||||
import { marked } from 'marked';
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
@@ -81,7 +83,7 @@
|
||||
</div>
|
||||
|
||||
<div class="flex-1 text-xs text-gray-700 dark:text-white">
|
||||
{banner.content}
|
||||
{@html marked.parse(DOMPurify.sanitize(banner.content))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import FileItemModal from './FileItemModal.svelte';
|
||||
import GarbageBin from '../icons/GarbageBin.svelte';
|
||||
import Spinner from './Spinner.svelte';
|
||||
import Tooltip from './Tooltip.svelte';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
const dispatch = createEventDispatcher();
|
||||
@@ -18,6 +19,7 @@
|
||||
|
||||
export let item = null;
|
||||
export let edit = false;
|
||||
export let small = false;
|
||||
|
||||
export let name: string;
|
||||
export let type: string;
|
||||
@@ -31,7 +33,9 @@
|
||||
{/if}
|
||||
|
||||
<button
|
||||
class="relative group p-1.5 {className} flex items-center {colorClassName} rounded-2xl text-left"
|
||||
class="relative group p-1.5 {className} flex items-center gap-1 {colorClassName} {small
|
||||
? 'rounded-xl'
|
||||
: 'rounded-2xl'} text-left"
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
if (item?.file?.data?.content) {
|
||||
@@ -49,48 +53,66 @@
|
||||
dispatch('click');
|
||||
}}
|
||||
>
|
||||
<div class="p-3 bg-black/20 dark:bg-white/10 text-white rounded-xl">
|
||||
{#if !loading}
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="currentColor"
|
||||
class=" size-5"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0 0 16.5 9h-1.875a1.875 1.875 0 0 1-1.875-1.875V5.25A3.75 3.75 0 0 0 9 1.5H5.625ZM7.5 15a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 7.5 15Zm.75 2.25a.75.75 0 0 0 0 1.5H12a.75.75 0 0 0 0-1.5H8.25Z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M12.971 1.816A5.23 5.23 0 0 1 14.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 0 1 3.434 1.279 9.768 9.768 0 0 0-6.963-6.963Z"
|
||||
/>
|
||||
</svg>
|
||||
{:else}
|
||||
<Spinner />
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col justify-center -space-y-0.5 ml-1 px-2.5 w-full">
|
||||
<div class=" dark:text-gray-100 text-sm font-medium line-clamp-1 mb-1">
|
||||
{name}
|
||||
</div>
|
||||
|
||||
<div class=" flex justify-between text-gray-500 text-xs line-clamp-1">
|
||||
{#if type === 'file'}
|
||||
{$i18n.t('File')}
|
||||
{:else if type === 'doc'}
|
||||
{$i18n.t('Document')}
|
||||
{:else if type === 'collection'}
|
||||
{$i18n.t('Collection')}
|
||||
{#if !small}
|
||||
<div class="p-3 bg-black/20 dark:bg-white/10 text-white rounded-xl">
|
||||
{#if !loading}
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="currentColor"
|
||||
class=" size-5"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0 0 16.5 9h-1.875a1.875 1.875 0 0 1-1.875-1.875V5.25A3.75 3.75 0 0 0 9 1.5H5.625ZM7.5 15a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 7.5 15Zm.75 2.25a.75.75 0 0 0 0 1.5H12a.75.75 0 0 0 0-1.5H8.25Z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
<path
|
||||
d="M12.971 1.816A5.23 5.23 0 0 1 14.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 0 1 3.434 1.279 9.768 9.768 0 0 0-6.963-6.963Z"
|
||||
/>
|
||||
</svg>
|
||||
{:else}
|
||||
<span class=" capitalize line-clamp-1">{type}</span>
|
||||
{/if}
|
||||
{#if size}
|
||||
<span class="capitalize">{formatFileSize(size)}</span>
|
||||
<Spinner />
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if !small}
|
||||
<div class="flex flex-col justify-center -space-y-0.5 px-2.5 w-full">
|
||||
<div class=" dark:text-gray-100 text-sm font-medium line-clamp-1 mb-1">
|
||||
{name}
|
||||
</div>
|
||||
|
||||
<div class=" flex justify-between text-gray-500 text-xs line-clamp-1">
|
||||
{#if type === 'file'}
|
||||
{$i18n.t('File')}
|
||||
{:else if type === 'doc'}
|
||||
{$i18n.t('Document')}
|
||||
{:else if type === 'collection'}
|
||||
{$i18n.t('Collection')}
|
||||
{:else}
|
||||
<span class=" capitalize line-clamp-1">{type}</span>
|
||||
{/if}
|
||||
{#if size}
|
||||
<span class="capitalize">{formatFileSize(size)}</span>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{:else}
|
||||
<Tooltip content={name} className="flex flex-col w-full" placement="top-start">
|
||||
<div class="flex flex-col justify-center -space-y-0.5 px-2.5 w-full">
|
||||
<div class=" dark:text-gray-100 text-sm flex justify-between items-center">
|
||||
{#if loading}
|
||||
<div class=" shrink-0 mr-2">
|
||||
<Spinner className="size-4" />
|
||||
</div>
|
||||
{/if}
|
||||
<div class="font-medium line-clamp-1 flex-1">{name}</div>
|
||||
<div class="text-gray-500 text-xs capitalize shrink-0">{formatFileSize(size)}</div>
|
||||
</div>
|
||||
</div>
|
||||
</Tooltip>
|
||||
{/if}
|
||||
|
||||
{#if dismissible}
|
||||
<div class=" absolute -top-1 -right-1">
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
|
||||
export let show = true;
|
||||
export let size = 'md';
|
||||
export let className = 'bg-gray-50 dark:bg-gray-900 rounded-2xl';
|
||||
|
||||
export let containerClassName = 'p-3';
|
||||
export let className = 'bg-gray-50 dark:bg-gray-900 rounded-2xl';
|
||||
|
||||
let modalElement = null;
|
||||
let mounted = false;
|
||||
@@ -65,7 +67,7 @@
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<div
|
||||
bind:this={modalElement}
|
||||
class="modal fixed top-0 right-0 left-0 bottom-0 bg-black/60 w-full h-screen max-h-[100dvh] flex justify-center z-[9999] overflow-hidden overscroll-contain"
|
||||
class="modal fixed top-0 right-0 left-0 bottom-0 bg-black/60 w-full h-screen max-h-[100dvh] {containerClassName} flex justify-center z-[9999] overflow-y-auto overscroll-contain"
|
||||
in:fade={{ duration: 10 }}
|
||||
on:mousedown={() => {
|
||||
show = false;
|
||||
@@ -74,7 +76,7 @@
|
||||
<div
|
||||
class=" m-auto max-w-full {sizeToWidth(size)} {size !== 'full'
|
||||
? 'mx-2'
|
||||
: ''} shadow-3xl max-h-[100dvh] overflow-y-auto scrollbar-hidden {className}"
|
||||
: ''} shadow-3xl min-h-fit scrollbar-hidden {className}"
|
||||
in:flyAndScale
|
||||
on:mousedown={(e) => {
|
||||
e.stopPropagation();
|
||||
|
||||
@@ -1,22 +1,28 @@
|
||||
<script lang="ts">
|
||||
import { marked } from 'marked';
|
||||
import TurndownService from 'turndown';
|
||||
const turndownService = new TurndownService();
|
||||
const turndownService = new TurndownService({
|
||||
codeBlockStyle: 'fenced',
|
||||
headingStyle: 'atx'
|
||||
});
|
||||
turndownService.escape = (string) => string;
|
||||
|
||||
import { onMount, onDestroy } from 'svelte';
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
const eventDispatch = createEventDispatcher();
|
||||
|
||||
import { EditorState, Plugin, TextSelection } from 'prosemirror-state';
|
||||
import { EditorState, Plugin, PluginKey, TextSelection } from 'prosemirror-state';
|
||||
import { Decoration, DecorationSet } from 'prosemirror-view';
|
||||
|
||||
import { Editor } from '@tiptap/core';
|
||||
|
||||
import { AIAutocompletion } from './RichTextInput/AutoCompletion.js';
|
||||
|
||||
import CodeBlockLowlight from '@tiptap/extension-code-block-lowlight';
|
||||
import Placeholder from '@tiptap/extension-placeholder';
|
||||
import Highlight from '@tiptap/extension-highlight';
|
||||
import Typography from '@tiptap/extension-typography';
|
||||
import StarterKit from '@tiptap/starter-kit';
|
||||
|
||||
import { all, createLowlight } from 'lowlight';
|
||||
|
||||
import { PASTED_TEXT_CHARACTER_LIMIT } from '$lib/constants';
|
||||
@@ -29,6 +35,9 @@
|
||||
export let value = '';
|
||||
export let id = '';
|
||||
|
||||
export let preserveBreaks = false;
|
||||
export let generateAutoCompletion: Function = async () => null;
|
||||
export let autocomplete = false;
|
||||
export let messageInput = false;
|
||||
export let shiftEnter = false;
|
||||
export let largeTextAsFile = false;
|
||||
@@ -117,10 +126,23 @@
|
||||
};
|
||||
|
||||
onMount(async () => {
|
||||
console.log(value);
|
||||
|
||||
if (preserveBreaks) {
|
||||
turndownService.addRule('preserveBreaks', {
|
||||
filter: 'br', // Target <br> elements
|
||||
replacement: function (content) {
|
||||
return '<br/>';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function tryParse(value, attempts = 3, interval = 100) {
|
||||
try {
|
||||
// Try parsing the value
|
||||
return marked.parse(value);
|
||||
return marked.parse(value.replaceAll(`\n<br/>`, `<br/>`), {
|
||||
breaks: false
|
||||
});
|
||||
} catch (error) {
|
||||
// If no attempts remain, fallback to plain text
|
||||
if (attempts <= 1) {
|
||||
@@ -144,17 +166,49 @@
|
||||
}),
|
||||
Highlight,
|
||||
Typography,
|
||||
Placeholder.configure({ placeholder })
|
||||
Placeholder.configure({ placeholder }),
|
||||
...(autocomplete
|
||||
? [
|
||||
AIAutocompletion.configure({
|
||||
generateCompletion: async (text) => {
|
||||
if (text.trim().length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const suggestion = await generateAutoCompletion(text).catch(() => null);
|
||||
if (!suggestion || suggestion.trim().length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return suggestion;
|
||||
}
|
||||
})
|
||||
]
|
||||
: [])
|
||||
],
|
||||
content: content,
|
||||
autofocus: true,
|
||||
autofocus: messageInput ? true : false,
|
||||
onTransaction: () => {
|
||||
// force re-render so `editor.isActive` works as expected
|
||||
editor = editor;
|
||||
const newValue = turndownService
|
||||
.turndown(
|
||||
(preserveBreaks
|
||||
? editor.getHTML().replace(/<p><\/p>/g, '<br/>')
|
||||
: editor.getHTML()
|
||||
).replace(/ {2,}/g, (m) => m.replace(/ /g, '\u00a0'))
|
||||
)
|
||||
.replace(/\u00a0/g, ' ');
|
||||
|
||||
const newValue = turndownService.turndown(editor.getHTML());
|
||||
if (value !== newValue) {
|
||||
value = newValue; // Trigger parent updates
|
||||
value = newValue;
|
||||
|
||||
// check if the node is paragraph as well
|
||||
if (editor.isActive('paragraph')) {
|
||||
if (value === '') {
|
||||
editor.commands.clearContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
editorProps: {
|
||||
@@ -164,22 +218,21 @@
|
||||
eventDispatch('focus', { event });
|
||||
return false;
|
||||
},
|
||||
keypress: (view, event) => {
|
||||
eventDispatch('keypress', { event });
|
||||
keyup: (view, event) => {
|
||||
eventDispatch('keyup', { event });
|
||||
return false;
|
||||
},
|
||||
|
||||
keydown: (view, event) => {
|
||||
// Handle Tab Key
|
||||
if (event.key === 'Tab') {
|
||||
const handled = selectNextTemplate(view.state, view.dispatch);
|
||||
if (handled) {
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (messageInput) {
|
||||
// Handle Tab Key
|
||||
if (event.key === 'Tab') {
|
||||
const handled = selectNextTemplate(view.state, view.dispatch);
|
||||
if (handled) {
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (event.key === 'Enter') {
|
||||
// Check if the current selection is inside a structured block (like codeBlock or list)
|
||||
const { state } = view;
|
||||
@@ -210,22 +263,12 @@
|
||||
|
||||
// Handle shift + Enter for a line break
|
||||
if (shiftEnter) {
|
||||
if (event.key === 'Enter' && event.shiftKey) {
|
||||
if (event.key === 'Enter' && event.shiftKey && !event.ctrlKey && !event.metaKey) {
|
||||
editor.commands.setHardBreak(); // Insert a hard break
|
||||
view.dispatch(view.state.tr.scrollIntoView()); // Move viewport to the cursor
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
if (event.key === 'Enter') {
|
||||
eventDispatch('enter', { event });
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (event.key === 'Enter') {
|
||||
eventDispatch('enter', { event });
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
eventDispatch('keydown', { event });
|
||||
@@ -279,7 +322,9 @@
|
||||
}
|
||||
});
|
||||
|
||||
selectTemplate();
|
||||
if (messageInput) {
|
||||
selectTemplate();
|
||||
}
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
@@ -289,8 +334,23 @@
|
||||
});
|
||||
|
||||
// Update the editor content if the external `value` changes
|
||||
$: if (editor && value !== turndownService.turndown(editor.getHTML())) {
|
||||
editor.commands.setContent(marked.parse(value)); // Update editor content
|
||||
$: if (
|
||||
editor &&
|
||||
value !==
|
||||
turndownService
|
||||
.turndown(
|
||||
(preserveBreaks
|
||||
? editor.getHTML().replace(/<p><\/p>/g, '<br/>')
|
||||
: editor.getHTML()
|
||||
).replace(/ {2,}/g, (m) => m.replace(/ /g, '\u00a0'))
|
||||
)
|
||||
.replace(/\u00a0/g, ' ')
|
||||
) {
|
||||
editor.commands.setContent(
|
||||
marked.parse(value.replaceAll(`\n<br/>`, `<br/>`), {
|
||||
breaks: false
|
||||
})
|
||||
); // Update editor content
|
||||
selectTemplate();
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,278 @@
|
||||
/*
|
||||
Here we initialize the plugin with keyword mapping.
|
||||
Intended to handle user interactions seamlessly.
|
||||
|
||||
Observe the keydown events for proactive suggestions.
|
||||
Provide a mechanism for accepting AI suggestions.
|
||||
Evaluate each input change with debounce logic.
|
||||
Next, we implement touch and mouse interactions.
|
||||
|
||||
Anchor the user experience to intuitive behavior.
|
||||
Intelligently reset suggestions on new input.
|
||||
*/
|
||||
|
||||
import { Extension } from '@tiptap/core';
|
||||
import { Plugin, PluginKey } from 'prosemirror-state';
|
||||
|
||||
export const AIAutocompletion = Extension.create({
|
||||
name: 'aiAutocompletion',
|
||||
|
||||
addOptions() {
|
||||
return {
|
||||
generateCompletion: () => Promise.resolve(''),
|
||||
debounceTime: 1000
|
||||
};
|
||||
},
|
||||
|
||||
addGlobalAttributes() {
|
||||
return [
|
||||
{
|
||||
types: ['paragraph'],
|
||||
attributes: {
|
||||
class: {
|
||||
default: null,
|
||||
parseHTML: (element) => element.getAttribute('class'),
|
||||
renderHTML: (attributes) => {
|
||||
if (!attributes.class) return {};
|
||||
return { class: attributes.class };
|
||||
}
|
||||
},
|
||||
'data-prompt': {
|
||||
default: null,
|
||||
parseHTML: (element) => element.getAttribute('data-prompt'),
|
||||
renderHTML: (attributes) => {
|
||||
if (!attributes['data-prompt']) return {};
|
||||
return { 'data-prompt': attributes['data-prompt'] };
|
||||
}
|
||||
},
|
||||
'data-suggestion': {
|
||||
default: null,
|
||||
parseHTML: (element) => element.getAttribute('data-suggestion'),
|
||||
renderHTML: (attributes) => {
|
||||
if (!attributes['data-suggestion']) return {};
|
||||
return { 'data-suggestion': attributes['data-suggestion'] };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
];
|
||||
},
|
||||
|
||||
addProseMirrorPlugins() {
|
||||
let debounceTimer = null;
|
||||
let loading = false;
|
||||
|
||||
let touchStartX = 0;
|
||||
let touchStartY = 0;
|
||||
|
||||
return [
|
||||
new Plugin({
|
||||
key: new PluginKey('aiAutocompletion'),
|
||||
props: {
|
||||
handleKeyDown: (view, event) => {
|
||||
const { state, dispatch } = view;
|
||||
const { selection } = state;
|
||||
const { $head } = selection;
|
||||
|
||||
if ($head.parent.type.name !== 'paragraph') return false;
|
||||
|
||||
const node = $head.parent;
|
||||
|
||||
if (event.key === 'Tab') {
|
||||
// if (!node.attrs['data-suggestion']) {
|
||||
// // Generate completion
|
||||
// if (loading) return true
|
||||
// loading = true
|
||||
// const prompt = node.textContent
|
||||
// this.options.generateCompletion(prompt).then(suggestion => {
|
||||
// if (suggestion && suggestion.trim() !== '') {
|
||||
// dispatch(state.tr.setNodeMarkup($head.before(), null, {
|
||||
// ...node.attrs,
|
||||
// class: 'ai-autocompletion',
|
||||
// 'data-prompt': prompt,
|
||||
// 'data-suggestion': suggestion,
|
||||
// }))
|
||||
// }
|
||||
// // If suggestion is empty or null, do nothing
|
||||
// }).finally(() => {
|
||||
// loading = false
|
||||
// })
|
||||
// }
|
||||
|
||||
if (node.attrs['data-suggestion']) {
|
||||
// Accept suggestion
|
||||
const suggestion = node.attrs['data-suggestion'];
|
||||
dispatch(
|
||||
state.tr.insertText(suggestion, $head.pos).setNodeMarkup($head.before(), null, {
|
||||
...node.attrs,
|
||||
class: null,
|
||||
'data-prompt': null,
|
||||
'data-suggestion': null
|
||||
})
|
||||
);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (node.attrs['data-suggestion']) {
|
||||
// Reset suggestion on any other key press
|
||||
dispatch(
|
||||
state.tr.setNodeMarkup($head.before(), null, {
|
||||
...node.attrs,
|
||||
class: null,
|
||||
'data-prompt': null,
|
||||
'data-suggestion': null
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
// Start debounce logic for AI generation only if the cursor is at the end of the paragraph
|
||||
if (selection.empty && $head.pos === $head.end()) {
|
||||
// Set up debounce for AI generation
|
||||
if (this.options.debounceTime !== null) {
|
||||
clearTimeout(debounceTimer);
|
||||
|
||||
// Capture current position
|
||||
const currentPos = $head.before();
|
||||
|
||||
debounceTimer = setTimeout(() => {
|
||||
const newState = view.state;
|
||||
const newSelection = newState.selection;
|
||||
const newNode = newState.doc.nodeAt(currentPos);
|
||||
|
||||
// Check if the node still exists and is still a paragraph
|
||||
if (
|
||||
newNode &&
|
||||
newNode.type.name === 'paragraph' &&
|
||||
newSelection.$head.pos === newSelection.$head.end() &&
|
||||
newSelection.$head.pos === currentPos + newNode.nodeSize - 1
|
||||
) {
|
||||
const prompt = newNode.textContent;
|
||||
|
||||
if (prompt.trim() !== '') {
|
||||
if (loading) return true;
|
||||
loading = true;
|
||||
this.options
|
||||
.generateCompletion(prompt)
|
||||
.then((suggestion) => {
|
||||
if (suggestion && suggestion.trim() !== '') {
|
||||
if (
|
||||
view.state.selection.$head.pos === view.state.selection.$head.end()
|
||||
) {
|
||||
view.dispatch(
|
||||
newState.tr.setNodeMarkup(currentPos, null, {
|
||||
...newNode.attrs,
|
||||
class: 'ai-autocompletion',
|
||||
'data-prompt': prompt,
|
||||
'data-suggestion': suggestion
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
loading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
}, this.options.debounceTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
handleDOMEvents: {
|
||||
touchstart: (view, event) => {
|
||||
touchStartX = event.touches[0].clientX;
|
||||
touchStartY = event.touches[0].clientY;
|
||||
return false;
|
||||
},
|
||||
touchend: (view, event) => {
|
||||
const touchEndX = event.changedTouches[0].clientX;
|
||||
const touchEndY = event.changedTouches[0].clientY;
|
||||
|
||||
const deltaX = touchEndX - touchStartX;
|
||||
const deltaY = touchEndY - touchStartY;
|
||||
|
||||
// Check if the swipe was primarily horizontal and to the right
|
||||
if (Math.abs(deltaX) > Math.abs(deltaY) && deltaX > 50) {
|
||||
const { state, dispatch } = view;
|
||||
const { selection } = state;
|
||||
const { $head } = selection;
|
||||
const node = $head.parent;
|
||||
|
||||
if (node.type.name === 'paragraph' && node.attrs['data-suggestion']) {
|
||||
const suggestion = node.attrs['data-suggestion'];
|
||||
dispatch(
|
||||
state.tr.insertText(suggestion, $head.pos).setNodeMarkup($head.before(), null, {
|
||||
...node.attrs,
|
||||
class: null,
|
||||
'data-prompt': null,
|
||||
'data-suggestion': null
|
||||
})
|
||||
);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
// Add mousedown behavior
|
||||
// mouseup: (view, event) => {
|
||||
// const { state, dispatch } = view;
|
||||
// const { selection } = state;
|
||||
// const { $head } = selection;
|
||||
// const node = $head.parent;
|
||||
|
||||
// // Reset debounce timer on mouse click
|
||||
// clearTimeout(debounceTimer);
|
||||
|
||||
// // If a suggestion exists and the cursor moves, remove the suggestion
|
||||
// if (
|
||||
// node.type.name === 'paragraph' &&
|
||||
// node.attrs['data-suggestion'] &&
|
||||
// view.state.selection.$head.pos !== view.state.selection.$head.end()
|
||||
// ) {
|
||||
// dispatch(
|
||||
// state.tr.setNodeMarkup($head.before(), null, {
|
||||
// ...node.attrs,
|
||||
// class: null,
|
||||
// 'data-prompt': null,
|
||||
// 'data-suggestion': null
|
||||
// })
|
||||
// );
|
||||
// }
|
||||
|
||||
// return false;
|
||||
// }
|
||||
mouseup: (view, event) => {
|
||||
const { state, dispatch } = view;
|
||||
|
||||
// Reset debounce timer on mouse click
|
||||
clearTimeout(debounceTimer);
|
||||
|
||||
// Iterate over all nodes in the document
|
||||
const tr = state.tr;
|
||||
state.doc.descendants((node, pos) => {
|
||||
if (node.type.name === 'paragraph' && node.attrs['data-suggestion']) {
|
||||
// Remove suggestion from this paragraph
|
||||
tr.setNodeMarkup(pos, null, {
|
||||
...node.attrs,
|
||||
class: null,
|
||||
'data-prompt': null,
|
||||
'data-suggestion': null
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Apply the transaction if any changes were made
|
||||
if (tr.docChanged) {
|
||||
dispatch(tr);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
];
|
||||
}
|
||||
});
|
||||
@@ -3,42 +3,65 @@
|
||||
|
||||
export let value = '';
|
||||
export let placeholder = '';
|
||||
|
||||
export let rows = 1;
|
||||
export let required = false;
|
||||
|
||||
export let className =
|
||||
'w-full rounded-lg px-3 py-2 text-sm bg-gray-50 dark:text-gray-300 dark:bg-gray-850 outline-none resize-none h-full';
|
||||
|
||||
let textareaElement;
|
||||
|
||||
onMount(async () => {
|
||||
await tick();
|
||||
if (textareaElement) {
|
||||
await tick();
|
||||
setTimeout(adjustHeight, 0);
|
||||
$: if (textareaElement) {
|
||||
if (textareaElement.innerText !== value && value !== '') {
|
||||
textareaElement.innerText = value ?? '';
|
||||
}
|
||||
});
|
||||
|
||||
$: if (value) {
|
||||
setTimeout(adjustHeight, 0);
|
||||
}
|
||||
|
||||
const adjustHeight = () => {
|
||||
if (textareaElement) {
|
||||
textareaElement.style.height = '';
|
||||
textareaElement.style.height = `${textareaElement.scrollHeight}px`;
|
||||
}
|
||||
};
|
||||
// Adjust height on mount and after setting the element.
|
||||
onMount(async () => {
|
||||
await tick();
|
||||
});
|
||||
|
||||
// Handle paste event to ensure only plaintext is pasted
|
||||
function handlePaste(event: ClipboardEvent) {
|
||||
event.preventDefault(); // Prevent the default paste action
|
||||
const clipboardData = event.clipboardData?.getData('text/plain'); // Get plaintext from clipboard
|
||||
|
||||
// Insert plaintext into the textarea
|
||||
document.execCommand('insertText', false, clipboardData);
|
||||
}
|
||||
</script>
|
||||
|
||||
<textarea
|
||||
<div
|
||||
contenteditable="true"
|
||||
bind:this={textareaElement}
|
||||
bind:value
|
||||
{placeholder}
|
||||
on:input={adjustHeight}
|
||||
on:focus={adjustHeight}
|
||||
class={className}
|
||||
{rows}
|
||||
{required}
|
||||
class="{className} whitespace-pre-wrap relative {value
|
||||
? !value.trim()
|
||||
? 'placeholder'
|
||||
: ''
|
||||
: 'placeholder'}"
|
||||
style="field-sizing: content; -moz-user-select: text !important;"
|
||||
on:input={() => {
|
||||
const text = textareaElement.innerText;
|
||||
if (text === '\n') {
|
||||
value = '';
|
||||
return;
|
||||
}
|
||||
|
||||
value = text;
|
||||
}}
|
||||
on:paste={handlePaste}
|
||||
data-placeholder={placeholder}
|
||||
/>
|
||||
|
||||
<style>
|
||||
.placeholder::before {
|
||||
/* abolute */
|
||||
position: absolute;
|
||||
content: attr(data-placeholder);
|
||||
color: #adb5bd;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 1;
|
||||
pointer-events: none;
|
||||
touch-action: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -115,6 +115,20 @@
|
||||
</div>
|
||||
</button>
|
||||
</Menu>
|
||||
{:else if $mobile}
|
||||
<Tooltip content={$i18n.t('Controls')}>
|
||||
<button
|
||||
class=" flex cursor-pointer px-2 py-2 rounded-xl hover:bg-gray-50 dark:hover:bg-gray-850 transition"
|
||||
on:click={async () => {
|
||||
await showControls.set(!$showControls);
|
||||
}}
|
||||
aria-label="Controls"
|
||||
>
|
||||
<div class=" m-auto self-center">
|
||||
<AdjustmentsHorizontal className=" size-5" strokeWidth="0.5" />
|
||||
</div>
|
||||
</button>
|
||||
</Tooltip>
|
||||
{/if}
|
||||
|
||||
{#if !$mobile}
|
||||
|
||||
@@ -446,7 +446,13 @@
|
||||
|
||||
const onDragOver = (e) => {
|
||||
e.preventDefault();
|
||||
dragged = true;
|
||||
|
||||
// Check if a file is being draggedOver.
|
||||
if (e.dataTransfer?.types?.includes('Files')) {
|
||||
dragged = true;
|
||||
} else {
|
||||
dragged = false;
|
||||
}
|
||||
};
|
||||
|
||||
const onDragLeave = () => {
|
||||
@@ -457,15 +463,17 @@
|
||||
e.preventDefault();
|
||||
dragged = false;
|
||||
|
||||
if (e.dataTransfer?.files) {
|
||||
const inputFiles = e.dataTransfer?.files;
|
||||
if (e.dataTransfer?.types?.includes('Files')) {
|
||||
if (e.dataTransfer?.files) {
|
||||
const inputFiles = e.dataTransfer?.files;
|
||||
|
||||
if (inputFiles && inputFiles.length > 0) {
|
||||
for (const file of inputFiles) {
|
||||
await uploadFileHandler(file);
|
||||
if (inputFiles && inputFiles.length > 0) {
|
||||
for (const file of inputFiles) {
|
||||
await uploadFileHandler(file);
|
||||
}
|
||||
} else {
|
||||
toast.error($i18n.t(`File not found.`));
|
||||
}
|
||||
} else {
|
||||
toast.error($i18n.t(`File not found.`));
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -600,7 +608,7 @@
|
||||
}}
|
||||
/>
|
||||
|
||||
<div class="flex flex-col w-full h-full max-h-[100dvh] translate-y-1" id="collection-container">
|
||||
<div class="flex flex-col w-full translate-y-1" id="collection-container">
|
||||
{#if id && knowledge}
|
||||
<AccessControlModal
|
||||
bind:show={showAccessControlModal}
|
||||
@@ -657,228 +665,205 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-row flex-1 h-full max-h-full pb-2.5">
|
||||
<PaneGroup direction="horizontal">
|
||||
<Pane
|
||||
bind:pane
|
||||
defaultSize={minSize}
|
||||
collapsible={true}
|
||||
maxSize={50}
|
||||
{minSize}
|
||||
class="h-full"
|
||||
onExpand={() => {
|
||||
showSidepanel = true;
|
||||
}}
|
||||
onCollapse={() => {
|
||||
showSidepanel = false;
|
||||
}}
|
||||
>
|
||||
<div
|
||||
class="{largeScreen ? 'flex-shrink-0' : 'flex-1'}
|
||||
flex
|
||||
py-2
|
||||
rounded-2xl
|
||||
border
|
||||
border-gray-50
|
||||
h-full
|
||||
dark:border-gray-850"
|
||||
>
|
||||
<div class=" flex flex-col w-full space-x-2 rounded-lg h-full">
|
||||
<div class="w-full h-full flex flex-col">
|
||||
<div class=" px-3">
|
||||
<div class="flex py-1">
|
||||
<div class=" self-center ml-1 mr-3">
|
||||
<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="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<input
|
||||
class=" w-full text-sm pr-4 py-1 rounded-r-xl outline-none bg-transparent"
|
||||
bind:value={query}
|
||||
placeholder={$i18n.t('Search Collection')}
|
||||
on:focus={() => {
|
||||
selectedFileId = null;
|
||||
}}
|
||||
/>
|
||||
|
||||
<div>
|
||||
<AddContentMenu
|
||||
on:upload={(e) => {
|
||||
if (e.detail.type === 'directory') {
|
||||
uploadDirectoryHandler();
|
||||
} else if (e.detail.type === 'text') {
|
||||
showAddTextContentModal = true;
|
||||
} else {
|
||||
document.getElementById('files-input').click();
|
||||
}
|
||||
}}
|
||||
on:sync={(e) => {
|
||||
showSyncConfirmModal = true;
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{#if filteredItems.length > 0}
|
||||
<div class=" flex overflow-y-auto h-full w-full scrollbar-hidden text-xs">
|
||||
<Files
|
||||
files={filteredItems}
|
||||
{selectedFileId}
|
||||
on:click={(e) => {
|
||||
selectedFileId = selectedFileId === e.detail ? null : e.detail;
|
||||
}}
|
||||
on:delete={(e) => {
|
||||
console.log(e.detail);
|
||||
|
||||
selectedFileId = null;
|
||||
deleteFileHandler(e.detail);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
{:else}
|
||||
<div
|
||||
class="m-auto flex flex-col justify-center text-center text-gray-500 text-xs"
|
||||
>
|
||||
<div>
|
||||
{$i18n.t('No content found')}
|
||||
</div>
|
||||
|
||||
<div class="mx-12 mt-2 text-center text-gray-200 dark:text-gray-700">
|
||||
{$i18n.t('Drag and drop a file to upload or select a file to view')}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Pane>
|
||||
|
||||
{#if largeScreen}
|
||||
<PaneResizer class="relative flex w-2 items-center justify-center bg-background group">
|
||||
<div class="z-10 flex h-7 w-5 items-center justify-center rounded-sm">
|
||||
<EllipsisVertical className="size-4 invisible group-hover:visible" />
|
||||
</div>
|
||||
</PaneResizer>
|
||||
<Pane>
|
||||
<div class="flex-1 flex justify-start h-full max-h-full">
|
||||
{#if selectedFile}
|
||||
<div class=" flex flex-col w-full h-full max-h-full ml-2.5">
|
||||
<div class="flex-shrink-0 mb-2 flex items-center">
|
||||
{#if !showSidepanel}
|
||||
<div class="-translate-x-2">
|
||||
<button
|
||||
class="w-full text-left text-sm p-1.5 rounded-lg dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-gray-850"
|
||||
on:click={() => {
|
||||
pane.expand();
|
||||
}}
|
||||
>
|
||||
<ChevronLeft strokeWidth="2.5" />
|
||||
</button>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class=" flex-1 text-2xl font-medium">
|
||||
<a
|
||||
class="hover:text-gray-500 hover:dark:text-gray-100 hover:underline flex-grow line-clamp-1"
|
||||
href={selectedFile.id ? `/api/v1/files/${selectedFile.id}/content` : '#'}
|
||||
target="_blank"
|
||||
>
|
||||
{selectedFile?.meta?.name}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button
|
||||
class="self-center w-fit text-sm py-1 px-2.5 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-lg"
|
||||
on:click={() => {
|
||||
updateFileContentHandler();
|
||||
}}
|
||||
>
|
||||
{$i18n.t('Save')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class=" flex-1 w-full h-full max-h-full text-sm bg-transparent outline-none overflow-y-auto scrollbar-hidden"
|
||||
>
|
||||
{#key selectedFile.id}
|
||||
<RichTextInput
|
||||
className="input-prose-sm"
|
||||
bind:value={selectedFile.data.content}
|
||||
placeholder={$i18n.t('Add content here')}
|
||||
/>
|
||||
{/key}
|
||||
</div>
|
||||
</div>
|
||||
{:else}
|
||||
<div></div>
|
||||
{/if}
|
||||
</div>
|
||||
</Pane>
|
||||
{:else if !largeScreen && selectedFileId !== null}
|
||||
<Drawer
|
||||
className="h-full"
|
||||
show={selectedFileId !== null}
|
||||
on:close={() => {
|
||||
selectedFileId = null;
|
||||
}}
|
||||
>
|
||||
<div class="flex flex-col justify-start h-full max-h-full p-2">
|
||||
<div class=" flex flex-col w-full h-full max-h-full">
|
||||
<div class="flex-shrink-0 mt-1 mb-2 flex items-center">
|
||||
<div class="mr-2">
|
||||
<div class="flex flex-row flex-1 h-full max-h-full pb-2.5 gap-3">
|
||||
{#if largeScreen}
|
||||
<div class="flex-1 flex justify-start w-full h-full max-h-full">
|
||||
{#if selectedFile}
|
||||
<div class=" flex flex-col w-full h-full max-h-full">
|
||||
<div class="flex-shrink-0 mb-2 flex items-center">
|
||||
{#if !showSidepanel}
|
||||
<div class="-translate-x-2">
|
||||
<button
|
||||
class="w-full text-left text-sm p-1.5 rounded-lg dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-gray-850"
|
||||
on:click={() => {
|
||||
selectedFileId = null;
|
||||
pane.expand();
|
||||
}}
|
||||
>
|
||||
<ChevronLeft strokeWidth="2.5" />
|
||||
</button>
|
||||
</div>
|
||||
<div class=" flex-1 text-xl line-clamp-1">
|
||||
{selectedFile?.meta?.name}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div>
|
||||
<button
|
||||
class="self-center w-fit text-sm py-1 px-2.5 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-lg"
|
||||
on:click={() => {
|
||||
updateFileContentHandler();
|
||||
}}
|
||||
>
|
||||
{$i18n.t('Save')}
|
||||
</button>
|
||||
</div>
|
||||
<div class=" flex-1 text-xl font-medium">
|
||||
<a
|
||||
class="hover:text-gray-500 hover:dark:text-gray-100 hover:underline flex-grow line-clamp-1"
|
||||
href={selectedFile.id ? `/api/v1/files/${selectedFile.id}/content` : '#'}
|
||||
target="_blank"
|
||||
>
|
||||
{selectedFile?.meta?.name}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class=" flex-1 w-full h-full max-h-full py-2.5 px-3.5 rounded-lg text-sm bg-transparent overflow-y-auto scrollbar-hidden"
|
||||
>
|
||||
{#key selectedFile.id}
|
||||
<RichTextInput
|
||||
className="input-prose-sm"
|
||||
bind:value={selectedFile.data.content}
|
||||
placeholder={$i18n.t('Add content here')}
|
||||
<div>
|
||||
<button
|
||||
class="self-center w-fit text-sm py-1 px-2.5 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-lg"
|
||||
on:click={() => {
|
||||
updateFileContentHandler();
|
||||
}}
|
||||
>
|
||||
{$i18n.t('Save')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class=" flex-1 w-full h-full max-h-full text-sm bg-transparent outline-none overflow-y-auto scrollbar-hidden"
|
||||
>
|
||||
{#key selectedFile.id}
|
||||
<RichTextInput
|
||||
className="input-prose-sm"
|
||||
bind:value={selectedFile.data.content}
|
||||
placeholder={$i18n.t('Add content here')}
|
||||
preserveBreaks={true}
|
||||
/>
|
||||
{/key}
|
||||
</div>
|
||||
</div>
|
||||
{:else}
|
||||
<div class="h-full flex w-full">
|
||||
<div class="m-auto text-xs text-center text-gray-200 dark:text-gray-700">
|
||||
{$i18n.t('Drag and drop a file to upload or select a file to view')}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{:else if !largeScreen && selectedFileId !== null}
|
||||
<Drawer
|
||||
className="h-full"
|
||||
show={selectedFileId !== null}
|
||||
on:close={() => {
|
||||
selectedFileId = null;
|
||||
}}
|
||||
>
|
||||
<div class="flex flex-col justify-start h-full max-h-full p-2">
|
||||
<div class=" flex flex-col w-full h-full max-h-full">
|
||||
<div class="flex-shrink-0 mt-1 mb-2 flex items-center">
|
||||
<div class="mr-2">
|
||||
<button
|
||||
class="w-full text-left text-sm p-1.5 rounded-lg dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-gray-850"
|
||||
on:click={() => {
|
||||
selectedFileId = null;
|
||||
}}
|
||||
>
|
||||
<ChevronLeft strokeWidth="2.5" />
|
||||
</button>
|
||||
</div>
|
||||
<div class=" flex-1 text-xl line-clamp-1">
|
||||
{selectedFile?.meta?.name}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button
|
||||
class="self-center w-fit text-sm py-1 px-2.5 dark:text-gray-300 dark:hover:text-white hover:bg-black/5 dark:hover:bg-white/5 rounded-lg"
|
||||
on:click={() => {
|
||||
updateFileContentHandler();
|
||||
}}
|
||||
>
|
||||
{$i18n.t('Save')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class=" flex-1 w-full h-full max-h-full py-2.5 px-3.5 rounded-lg text-sm bg-transparent overflow-y-auto scrollbar-hidden"
|
||||
>
|
||||
{#key selectedFile.id}
|
||||
<RichTextInput
|
||||
className="input-prose-sm"
|
||||
bind:value={selectedFile.data.content}
|
||||
placeholder={$i18n.t('Add content here')}
|
||||
preserveBreaks={true}
|
||||
/>
|
||||
{/key}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Drawer>
|
||||
{/if}
|
||||
|
||||
<div
|
||||
class="{largeScreen ? 'flex-shrink-0 w-72 max-w-72' : 'flex-1'}
|
||||
flex
|
||||
py-2
|
||||
rounded-2xl
|
||||
border
|
||||
border-gray-50
|
||||
h-full
|
||||
dark:border-gray-850"
|
||||
>
|
||||
<div class=" flex flex-col w-full space-x-2 rounded-lg h-full">
|
||||
<div class="w-full h-full flex flex-col">
|
||||
<div class=" px-3">
|
||||
<div class="flex mb-0.5">
|
||||
<div class=" self-center ml-1 mr-3">
|
||||
<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="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z"
|
||||
clip-rule="evenodd"
|
||||
/>
|
||||
{/key}
|
||||
</svg>
|
||||
</div>
|
||||
<input
|
||||
class=" w-full text-sm pr-4 py-1 rounded-r-xl outline-none bg-transparent"
|
||||
bind:value={query}
|
||||
placeholder={$i18n.t('Search Collection')}
|
||||
on:focus={() => {
|
||||
selectedFileId = null;
|
||||
}}
|
||||
/>
|
||||
|
||||
<div>
|
||||
<AddContentMenu
|
||||
on:upload={(e) => {
|
||||
if (e.detail.type === 'directory') {
|
||||
uploadDirectoryHandler();
|
||||
} else if (e.detail.type === 'text') {
|
||||
showAddTextContentModal = true;
|
||||
} else {
|
||||
document.getElementById('files-input').click();
|
||||
}
|
||||
}}
|
||||
on:sync={(e) => {
|
||||
showSyncConfirmModal = true;
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Drawer>
|
||||
{/if}
|
||||
</PaneGroup>
|
||||
|
||||
{#if filteredItems.length > 0}
|
||||
<div class=" flex overflow-y-auto h-full w-full scrollbar-hidden text-xs">
|
||||
<Files
|
||||
small
|
||||
files={filteredItems}
|
||||
{selectedFileId}
|
||||
on:click={(e) => {
|
||||
selectedFileId = selectedFileId === e.detail ? null : e.detail;
|
||||
}}
|
||||
on:delete={(e) => {
|
||||
console.log(e.detail);
|
||||
|
||||
selectedFileId = null;
|
||||
deleteFileHandler(e.detail);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
{:else}
|
||||
<div class="my-3 flex flex-col justify-center text-center text-gray-500 text-xs">
|
||||
<div>
|
||||
{$i18n.t('No content found')}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{:else}
|
||||
<Spinner />
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
let voiceInput = false;
|
||||
</script>
|
||||
|
||||
<Modal size="full" className="h-full bg-white dark:bg-gray-900" bind:show>
|
||||
<Modal size="full" containerClassName="" className="h-full bg-white dark:bg-gray-900" bind:show>
|
||||
<div class="absolute top-0 right-0 p-5">
|
||||
<button
|
||||
class="self-center dark:text-white"
|
||||
@@ -67,7 +67,11 @@
|
||||
</div>
|
||||
|
||||
<div class=" flex-1 w-full h-full">
|
||||
<RichTextInput bind:value={content} placeholder={$i18n.t('Write something...')} />
|
||||
<RichTextInput
|
||||
bind:value={content}
|
||||
placeholder={$i18n.t('Write something...')}
|
||||
preserveBreaks={true}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -77,7 +81,7 @@
|
||||
>
|
||||
<div class="">
|
||||
{#if voiceInput}
|
||||
<div class=" max-w-full w-64">
|
||||
<div class=" max-w-full w-full">
|
||||
<VoiceRecording
|
||||
bind:recording={voiceInput}
|
||||
className="p-1"
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
export let selectedFileId = null;
|
||||
export let files = [];
|
||||
|
||||
export let small = false;
|
||||
</script>
|
||||
|
||||
<div class=" max-h-full flex flex-col w-full">
|
||||
@@ -16,6 +18,7 @@
|
||||
colorClassName="{selectedFileId === file.id
|
||||
? ' bg-gray-50 dark:bg-gray-850'
|
||||
: 'bg-transparent'} hover:bg-gray-50 dark:hover:bg-gray-850 transition"
|
||||
{small}
|
||||
{file}
|
||||
name={file?.name ?? file?.meta?.name}
|
||||
type="file"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
import { getKnowledgeBases } from '$lib/apis/knowledge';
|
||||
import AccessControl from '../common/AccessControl.svelte';
|
||||
import { stringify } from 'postcss';
|
||||
import { toast } from 'svelte-sonner';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
@@ -68,7 +69,9 @@
|
||||
}
|
||||
};
|
||||
|
||||
let params = {};
|
||||
let params = {
|
||||
system: ''
|
||||
};
|
||||
let capabilities = {
|
||||
vision: true,
|
||||
usage: undefined,
|
||||
@@ -101,6 +104,14 @@
|
||||
info.id = id;
|
||||
info.name = name;
|
||||
|
||||
if (id === '') {
|
||||
toast.error('Model ID is required.');
|
||||
}
|
||||
|
||||
if (name === '') {
|
||||
toast.error('Model Name is required.');
|
||||
}
|
||||
|
||||
info.access_control = accessControl;
|
||||
info.meta.capabilities = capabilities;
|
||||
|
||||
@@ -317,6 +328,7 @@
|
||||
info.meta.profile_image_url = compressedSrc;
|
||||
|
||||
inputFiles = null;
|
||||
filesInputElement.value = '';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -345,7 +357,7 @@
|
||||
<div class="self-center md:self-start flex justify-center my-2 flex-shrink-0">
|
||||
<div class="self-center">
|
||||
<button
|
||||
class="rounded-2xl flex flex-shrink-0 items-center {info.meta.profile_image_url !==
|
||||
class="rounded-xl flex flex-shrink-0 items-center {info.meta.profile_image_url !==
|
||||
'/static/favicon.png'
|
||||
? 'bg-transparent'
|
||||
: 'bg-white'} shadow-xl group relative"
|
||||
@@ -358,13 +370,13 @@
|
||||
<img
|
||||
src={info.meta.profile_image_url}
|
||||
alt="model profile"
|
||||
class="rounded-lg size-72 md:size-60 object-cover shrink-0"
|
||||
class="rounded-xl size-72 md:size-60 object-cover shrink-0"
|
||||
/>
|
||||
{:else}
|
||||
<img
|
||||
src="/static/favicon.png"
|
||||
alt="model profile"
|
||||
class=" rounded-lg size-72 md:size-60 object-cover shrink-0"
|
||||
class=" rounded-xl size-72 md:size-60 object-cover shrink-0"
|
||||
/>
|
||||
{/if}
|
||||
|
||||
@@ -393,6 +405,18 @@
|
||||
class="absolute top-0 bottom-0 left-0 right-0 bg-white dark:bg-black rounded-lg opacity-0 group-hover:opacity-20 transition"
|
||||
></div>
|
||||
</button>
|
||||
|
||||
<div class="flex w-full mt-1 justify-end">
|
||||
<button
|
||||
class="px-2 py-1 text-gray-500 rounded-lg text-xs"
|
||||
on:click={() => {
|
||||
info.meta.profile_image_url = '/static/favicon.png';
|
||||
}}
|
||||
type="button"
|
||||
>
|
||||
Reset Image</button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -410,12 +434,11 @@
|
||||
</div>
|
||||
|
||||
<div class="flex-1">
|
||||
<!-- <div class=" text-sm font-semibold">{$i18n.t('Model ID')}*</div> -->
|
||||
<div>
|
||||
<input
|
||||
class="text-xs w-full bg-transparent text-gray-500 outline-none"
|
||||
placeholder={$i18n.t('Model ID')}
|
||||
value={id}
|
||||
bind:value={id}
|
||||
disabled={edit}
|
||||
required
|
||||
/>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' أو '-1' لا توجد انتهاء",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "( `sh webui.sh --api`مثال)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "النسخ التلقائي للاستجابة إلى الحافظة",
|
||||
"Auto-playback response": "استجابة التشغيل التلقائي",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 الرابط الرئيسي",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "تغير الباسورد",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "المحادثة",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "الطلبات المتزامنة",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "تأكيد كلمة المرور",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "(SentenceTransformers) الإفتراضي",
|
||||
"Default Model": "النموذج الافتراضي",
|
||||
"Default model updated": "الإفتراضي تحديث الموديل",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "الإفتراضي Prompt الاقتراحات",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "تضمين محرك النموذج",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "تمكين مشاركة المجتمع",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "تفعيل عمليات التسجيل الجديدة",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "تمكين بحث الويب",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "تأكد من أن ملف CSV الخاص بك يتضمن 4 أعمدة بهذا الترتيب: Name, Email, Password, Role.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "(e.g. {{modelTag}}) أدخل الموديل تاق",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "(e.g. 50) أدخل عدد الخطوات",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "أدخل النتيجة",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "فشل في إنشاء مفتاح API.",
|
||||
"Failed to read clipboard contents": "فشل في قراءة محتويات الحافظة",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "فبراير",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "محتوى الملف النموذجي",
|
||||
"Models": "الموديلات",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "المزيد",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "لا توجد نتايج",
|
||||
"No search query generated": "لم يتم إنشاء استعلام بحث",
|
||||
"No source available": "لا يوجد مصدر متاح",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "موقف ايجابي",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "مطالبات",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com \"{{searchValue}}\" أسحب من ",
|
||||
"Pull a model from Ollama.com": "Ollama.com سحب الموديل من ",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "إزالة",
|
||||
"Remove Model": "حذف الموديل",
|
||||
"Rename": "إعادة تسمية",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "N كرر آخر",
|
||||
"Request Mode": "وضع الطلب",
|
||||
"Reranking Model": "إعادة تقييم النموذج",
|
||||
"Reranking model disabled": "تم تعطيل نموذج إعادة الترتيب",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "تم ضبط نموذج إعادة الترتيب على \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "منصب",
|
||||
@@ -835,6 +848,7 @@
|
||||
"System": "النظام",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "محادثة النظام",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -977,6 +991,7 @@
|
||||
"Web Loader Settings": "Web تحميل اعدادات",
|
||||
"Web Search": "بحث الويب",
|
||||
"Web Search Engine": "محرك بحث الويب",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook الرابط",
|
||||
"WebUI Settings": "WebUI اعدادات",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' или '-1' за неограничен срок.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(например `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Аувтоматично копиране на отговор в клипборда",
|
||||
"Auto-playback response": "Аувтоматично възпроизвеждане на Отговора",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Базов URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Промяна на Парола",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Чат",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Едновременни искания",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Потвърди Парола",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "По подразбиране (SentenceTransformers)",
|
||||
"Default Model": "Модел по подразбиране",
|
||||
"Default model updated": "Моделът по подразбиране е обновен",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Промпт Предложения по подразбиране",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Модел за вграждане",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Модел за вграждане е настроен на \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Разрешаване на споделяне в общност",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Вклюване на Нови Потребители",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Разрешаване на търсене в уеб",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Уверете се, че вашият CSV файл включва 4 колони в следния ред: Име, Имейл, Парола, Роля.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Въведете таг на модел (напр. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Въведете брой стъпки (напр. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Въведете оценка",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Неуспешно създаване на API ключ.",
|
||||
"Failed to read clipboard contents": "Грешка при четене на съдържанието от клипборда",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Февруари",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Съдържание на модфайл",
|
||||
"Models": "Модели",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Повече",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Няма намерени резултати",
|
||||
"No search query generated": "Не е генерирана заявка за търсене",
|
||||
"No source available": "Няма наличен източник",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Позитивна ативност",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Промптове",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Извади \"{{searchValue}}\" от Ollama.com",
|
||||
"Pull a model from Ollama.com": "Издърпайте модел от Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Изтриване",
|
||||
"Remove Model": "Изтриване на модела",
|
||||
"Rename": "Преименуване",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Repeat Last N",
|
||||
"Request Mode": "Request Mode",
|
||||
"Reranking Model": "Reranking Model",
|
||||
"Reranking model disabled": "Reranking model disabled",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Роля",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Система",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Системен Промпт",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Настройки за зареждане на уеб",
|
||||
"Web Search": "Търсене в уеб",
|
||||
"Web Search Engine": "Уеб търсачка",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Уебхук URL",
|
||||
"WebUI Settings": "WebUI Настройки",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' অথবা অনির্দিষ্টকাল মেয়াদের জন্য '-1' ",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(যেমন `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "রেসপন্সগুলো স্বয়ংক্রিভাবে ক্লিপবোর্ডে কপি হবে",
|
||||
"Auto-playback response": "রেসপন্স অটো-প্লেব্যাক",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 বেজ ইউআরএল",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "চ্যাট",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "সমকালীন অনুরোধ",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "ডিফল্ট (SentenceTransformers)",
|
||||
"Default Model": "ডিফল্ট মডেল",
|
||||
"Default model updated": "ডিফল্ট মডেল আপডেট হয়েছে",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "ডিফল্ট প্রম্পট সাজেশন",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "ইমেজ ইমেবডিং মডেল ইঞ্জিন",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ইমেজ ইমেবডিং মডেল সেট করা হয়েছে - \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "সম্প্রদায় শেয়ারকরণ সক্ষম করুন",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "নতুন সাইনআপ চালু করুন",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "ওয়েব অনুসন্ধান সক্ষম করুন",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "আপনার সিএসভি ফাইলটিতে এই ক্রমে 4 টি কলাম অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন: নাম, ইমেল, পাসওয়ার্ড, ভূমিকা।.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "মডেল ট্যাগ লিখুন (e.g. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "ধাপের সংখ্যা দিন (যেমন: 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "স্কোর দিন",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "API Key তৈরি করা যায়নি।",
|
||||
"Failed to read clipboard contents": "ক্লিপবোর্ডের বিষয়বস্তু পড়া সম্ভব হয়নি",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "ফেব্রুয়ারি",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "মডেলফাইল কনটেন্ট",
|
||||
"Models": "মডেলসমূহ",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "আরো",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "কোন ফলাফল পাওয়া যায়নি",
|
||||
"No search query generated": "কোনও অনুসন্ধান ক্যোয়ারী উত্পন্ন হয়নি",
|
||||
"No source available": "কোন উৎস পাওয়া যায়নি",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "পজিটিভ আক্রমণ",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "প্রম্পটসমূহ",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com থেকে \"{{searchValue}}\" টানুন",
|
||||
"Pull a model from Ollama.com": "Ollama.com থেকে একটি টেনে আনুন আনুন",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "রিমুভ করুন",
|
||||
"Remove Model": "মডেল রিমুভ করুন",
|
||||
"Rename": "রেনেম",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "রিপিট Last N",
|
||||
"Request Mode": "রিকোয়েস্ট মোড",
|
||||
"Reranking Model": "রির্যাক্টিং মডেল",
|
||||
"Reranking model disabled": "রির্যাক্টিং মডেল নিষ্ক্রিয় করা",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "রির ্যাঙ্কিং মডেল \"{{reranking_model}}\" -এ সেট করা আছে",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "পদবি",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "সিস্টেম",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "সিস্টেম প্রম্পট",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "ওয়েব লোডার সেটিংস",
|
||||
"Web Search": "ওয়েব অনুসন্ধান",
|
||||
"Web Search Engine": "ওয়েব সার্চ ইঞ্জিন",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "ওয়েবহুক URL",
|
||||
"WebUI Settings": "WebUI সেটিংসমূহ",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "-1 per a cap límit, o un nombre positiu per a un límit específic",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' o '-1' perquè no caduqui mai.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(p. ex. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(p. ex. `sh webui.sh --api`)",
|
||||
@@ -11,9 +12,9 @@
|
||||
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un model de tasca s'utilitza quan es realitzen tasques com ara generar títols per a xats i consultes de cerca per a la web",
|
||||
"a user": "un usuari",
|
||||
"About": "Sobre",
|
||||
"Access": "",
|
||||
"Access Control": "",
|
||||
"Accessible to all users": "",
|
||||
"Access": "Accés",
|
||||
"Access Control": "Control d'accés",
|
||||
"Accessible to all users": "Accessible a tots els usuaris",
|
||||
"Account": "Compte",
|
||||
"Account Activation Pending": "Activació del compte pendent",
|
||||
"Accurate information": "Informació precisa",
|
||||
@@ -30,14 +31,14 @@
|
||||
"Add content here": "Afegir contingut aquí",
|
||||
"Add custom prompt": "Afegir una indicació personalitzada",
|
||||
"Add Files": "Afegir arxius",
|
||||
"Add Group": "",
|
||||
"Add Group": "Afegir grup",
|
||||
"Add Memory": "Afegir memòria",
|
||||
"Add Model": "Afegir un model",
|
||||
"Add Tag": "Afegir etiqueta",
|
||||
"Add Tags": "Afegir etiquetes",
|
||||
"Add text content": "Afegir contingut de text",
|
||||
"Add User": "Afegir un usuari",
|
||||
"Add User Group": "",
|
||||
"Add User Group": "Afegir grup d'usuaris",
|
||||
"Adjusting these settings will apply changes universally to all users.": "Si ajustes aquesta preferència, els canvis s'aplicaran de manera universal a tots els usuaris.",
|
||||
"admin": "administrador",
|
||||
"Admin": "Administrador",
|
||||
@@ -48,18 +49,18 @@
|
||||
"Advanced Params": "Paràmetres avançats",
|
||||
"All chats": "Tots els xats",
|
||||
"All Documents": "Tots els documents",
|
||||
"All models deleted successfully": "",
|
||||
"Allow Chat Delete": "",
|
||||
"All models deleted successfully": "Tots els models s'han eliminat correctament",
|
||||
"Allow Chat Delete": "Permetre eliminar el xat",
|
||||
"Allow Chat Deletion": "Permetre la supressió del xat",
|
||||
"Allow Chat Edit": "",
|
||||
"Allow File Upload": "",
|
||||
"Allow Chat Edit": "Permetre editar el xat",
|
||||
"Allow File Upload": "Permetre la pujada d'arxius",
|
||||
"Allow non-local voices": "Permetre veus no locals",
|
||||
"Allow Temporary Chat": "Permetre el xat temporal",
|
||||
"Allow User Location": "Permetre la ubicació de l'usuari",
|
||||
"Allow Voice Interruption in Call": "Permetre la interrupció de la veu en una trucada",
|
||||
"Already have an account?": "Ja tens un compte?",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "Alternativa al top_p, i pretén garantir un equilibri de qualitat i varietat. El paràmetre p representa la probabilitat mínima que es consideri un token, en relació amb la probabilitat del token més probable. Per exemple, amb p=0,05 i el token més probable amb una probabilitat de 0,9, es filtren els logits amb un valor inferior a 0,045. (Per defecte: 0.0)",
|
||||
"Amazing": "",
|
||||
"Amazing": "Al·lucinant",
|
||||
"an assistant": "un assistent",
|
||||
"and": "i",
|
||||
"and {{COUNT}} more": "i {{COUNT}} més",
|
||||
@@ -70,7 +71,7 @@
|
||||
"API keys": "Claus de l'API",
|
||||
"Application DN": "DN d'aplicació",
|
||||
"Application DN Password": "Contrasenya del DN d'aplicació",
|
||||
"applies to all users with the \"user\" role": "",
|
||||
"applies to all users with the \"user\" role": "s'aplica a tots els usuaris amb el rol \"usuari\"",
|
||||
"April": "Abril",
|
||||
"Archive": "Arxiu",
|
||||
"Archive All Chats": "Arxiva tots els xats",
|
||||
@@ -90,13 +91,15 @@
|
||||
"Authenticate": "Autenticar",
|
||||
"Auto-Copy Response to Clipboard": "Copiar la resposta automàticament al porta-retalls",
|
||||
"Auto-playback response": "Reproduir la resposta automàticament",
|
||||
"Autocomplete Generation": "Generació automàtica",
|
||||
"Autocomplete Generation Input Max Length": "Entrada màxima de la generació automàtica",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "Cadena d'autenticació de l'API d'AUTOMATIC1111",
|
||||
"AUTOMATIC1111 Base URL": "URL Base d'AUTOMATIC1111",
|
||||
"AUTOMATIC1111 Base URL is required.": "Es requereix l'URL Base d'AUTOMATIC1111.",
|
||||
"Available list": "Llista de disponibles",
|
||||
"available!": "disponible!",
|
||||
"Awful": "",
|
||||
"Awful": "Terrible",
|
||||
"Azure AI Speech": "Azure AI Speech",
|
||||
"Azure Region": "Regió d'Azure",
|
||||
"Back": "Enrere",
|
||||
@@ -109,7 +112,7 @@
|
||||
"Bing Search V7 Endpoint": "Punt de connexió a Bing Search V7",
|
||||
"Bing Search V7 Subscription Key": "Clau de subscripció a Bing Search V7",
|
||||
"Brave Search API Key": "Clau API de Brave Search",
|
||||
"By {{name}}": "",
|
||||
"By {{name}}": "Per {{name}}",
|
||||
"Bypass SSL verification for Websites": "Desactivar la verificació SSL per a l'accés a Internet",
|
||||
"Call": "Trucada",
|
||||
"Call feature is not supported when using Web STT engine": "La funció de trucada no s'admet quan s'utilitza el motor Web STT",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "Camí del certificat",
|
||||
"Change Password": "Canviar la contrasenya",
|
||||
"Character": "Personatge",
|
||||
"Character limit for autocomplete generation input": "Límit de caràcters per a l'entrada de generació automàtica",
|
||||
"Chart new frontiers": "Traça noves fronteres",
|
||||
"Chat": "Xat",
|
||||
"Chat Background Image": "Imatge de fons del xat",
|
||||
@@ -126,7 +130,7 @@
|
||||
"Chat Controls": "Controls de xat",
|
||||
"Chat direction": "Direcció del xat",
|
||||
"Chat Overview": "Vista general del xat",
|
||||
"Chat Permissions": "",
|
||||
"Chat Permissions": "Permisos del xat",
|
||||
"Chat Tags Auto-Generation": "Generació automàtica d'etiquetes del xat",
|
||||
"Chats": "Xats",
|
||||
"Check Again": "Comprovar-ho de nou",
|
||||
@@ -157,7 +161,7 @@
|
||||
"Code execution": "Execució de codi",
|
||||
"Code formatted successfully": "Codi formatat correctament",
|
||||
"Collection": "Col·lecció",
|
||||
"Color": "",
|
||||
"Color": "Color",
|
||||
"ComfyUI": "ComfyUI",
|
||||
"ComfyUI Base URL": "URL base de ComfyUI",
|
||||
"ComfyUI Base URL is required.": "L'URL base de ComfyUI és obligatòria.",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "Completaments",
|
||||
"Concurrent Requests": "Peticions simultànies",
|
||||
"Configure": "Configurar",
|
||||
"Configure Models": "Configurar models",
|
||||
"Confirm": "Confirmar",
|
||||
"Confirm Password": "Confirmar la contrasenya",
|
||||
"Confirm your action": "Confirma la teva acció",
|
||||
@@ -191,12 +196,12 @@
|
||||
"Copy Link": "Copiar l'enllaç",
|
||||
"Copy to clipboard": "Copiar al porta-retalls",
|
||||
"Copying to clipboard was successful!": "La còpia al porta-retalls s'ha realitzat correctament",
|
||||
"Create": "",
|
||||
"Create": "Crear",
|
||||
"Create a knowledge base": "Crear una base de coneixement",
|
||||
"Create a model": "Crear un model",
|
||||
"Create Account": "Crear un compte",
|
||||
"Create Admin Account": "Crear un compte d'Administrador",
|
||||
"Create Group": "",
|
||||
"Create Group": "Crear grup",
|
||||
"Create Knowledge": "Crear Coneixement",
|
||||
"Create new key": "Crear una nova clau",
|
||||
"Create new secret key": "Crear una nova clau secreta",
|
||||
@@ -215,8 +220,9 @@
|
||||
"Default (SentenceTransformers)": "Per defecte (SentenceTransformers)",
|
||||
"Default Model": "Model per defecte",
|
||||
"Default model updated": "Model per defecte actualitzat",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Models": "Models per defecte",
|
||||
"Default permissions": "Permisos per defecte",
|
||||
"Default permissions updated successfully": "Permisos per defecte actualitzats correctament",
|
||||
"Default Prompt Suggestions": "Suggeriments d'indicació per defecte",
|
||||
"Default to 389 or 636 if TLS is enabled": "Per defecte 389 o 636 si TLS està habilitat",
|
||||
"Default to ALL": "Per defecte TOTS",
|
||||
@@ -224,7 +230,7 @@
|
||||
"Delete": "Eliminar",
|
||||
"Delete a model": "Eliminar un model",
|
||||
"Delete All Chats": "Eliminar tots els xats",
|
||||
"Delete All Models": "",
|
||||
"Delete All Models": "Eliminar tots els models",
|
||||
"Delete chat": "Eliminar xat",
|
||||
"Delete Chat": "Eliminar xat",
|
||||
"Delete chat?": "Eliminar el xat?",
|
||||
@@ -236,7 +242,7 @@
|
||||
"Delete User": "Eliminar usuari",
|
||||
"Deleted {{deleteModelTag}}": "S'ha eliminat {{deleteModelTag}}",
|
||||
"Deleted {{name}}": "S'ha eliminat {{name}}",
|
||||
"Deleted User": "",
|
||||
"Deleted User": "Usuari eliminat",
|
||||
"Describe your knowledge base and objectives": "Descriu la teva base de coneixement i objectius",
|
||||
"Description": "Descripció",
|
||||
"Didn't fully follow instructions": "No s'han seguit les instruccions completament",
|
||||
@@ -251,10 +257,10 @@
|
||||
"Discover, download, and explore custom tools": "Descobrir, descarregar i explorar eines personalitzades",
|
||||
"Discover, download, and explore model presets": "Descobrir, descarregar i explorar models preconfigurats",
|
||||
"Dismissible": "Descartable",
|
||||
"Display": "",
|
||||
"Display": "Mostrar",
|
||||
"Display Emoji in Call": "Mostrar emojis a la trucada",
|
||||
"Display the username instead of You in the Chat": "Mostrar el nom d'usuari en lloc de 'Tu' al xat",
|
||||
"Displays citations in the response": "",
|
||||
"Displays citations in the response": "Mostra les referències a la resposta",
|
||||
"Dive into knowledge": "Aprofundir en el coneixement",
|
||||
"Do not install functions from sources you do not fully trust.": "No instal·lis funcions de fonts en què no confiïs plenament.",
|
||||
"Do not install tools from sources you do not fully trust.": "No instal·lis eines de fonts en què no confiïs plenament.",
|
||||
@@ -270,23 +276,23 @@
|
||||
"Download": "Descarregar",
|
||||
"Download canceled": "Descàrrega cancel·lada",
|
||||
"Download Database": "Descarregar la base de dades",
|
||||
"Drag and drop a file to upload or select a file to view": "",
|
||||
"Drag and drop a file to upload or select a file to view": "Arrossegar un arxiu per pujar o escull un arxiu a veure",
|
||||
"Draw": "Dibuixar",
|
||||
"Drop any files here to add to the conversation": "Deixa qualsevol arxiu aquí per afegir-lo a la conversa",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "p. ex. '30s','10m'. Les unitats de temps vàlides són 's', 'm', 'h'.",
|
||||
"e.g. A filter to remove profanity from text": "p. ex. Un filtre per eliminar paraules malsonants del text",
|
||||
"e.g. My Filter": "p. ex. El meu filtre",
|
||||
"e.g. My Tools": "",
|
||||
"e.g. My Tools": "p. ex. Les meves eines",
|
||||
"e.g. my_filter": "p. ex. els_meus_filtres",
|
||||
"e.g. my_tools": "",
|
||||
"e.g. Tools for performing various operations": "",
|
||||
"e.g. my_tools": "p. ex. les_meves_eines",
|
||||
"e.g. Tools for performing various operations": "p. ex. Eines per dur a terme operacions",
|
||||
"Edit": "Editar",
|
||||
"Edit Arena Model": "Editar model de l'Arena",
|
||||
"Edit Connection": "Editar la connexió",
|
||||
"Edit Default Permissions": "",
|
||||
"Edit Default Permissions": "Editar el permisos per defecte",
|
||||
"Edit Memory": "Editar la memòria",
|
||||
"Edit User": "Editar l'usuari",
|
||||
"Edit User Group": "",
|
||||
"Edit User Group": "Editar el grup d'usuaris",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
"Email": "Correu electrònic",
|
||||
"Embark on adventures": "Embarcar en aventures",
|
||||
@@ -294,17 +300,15 @@
|
||||
"Embedding Model": "Model d'incrustació",
|
||||
"Embedding Model Engine": "Motor de model d'incrustació",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model d'incrustació configurat a \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable API Key Auth": "Activar l'autenticació amb clau API",
|
||||
"Enable autocomplete generation for chat messages": "Activar la generació automàtica per als missatges del xat",
|
||||
"Enable Community Sharing": "Activar l'ús compartit amb la comunitat",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Activar el bloqueig de memòria (mlock) per evitar que les dades del model s'intercanviïn fora de la memòria RAM. Aquesta opció bloqueja el conjunt de pàgines de treball del model a la memòria RAM, assegurant-se que no s'intercanviaran al disc. Això pot ajudar a mantenir el rendiment evitant errors de pàgina i garantint un accés ràpid a les dades.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Activar l'assignació de memòria (mmap) per carregar les dades del model. Aquesta opció permet que el sistema utilitzi l'emmagatzematge en disc com a extensió de la memòria RAM tractant els fitxers de disc com si estiguessin a la memòria RAM. Això pot millorar el rendiment del model permetent un accés més ràpid a les dades. Tanmateix, és possible que no funcioni correctament amb tots els sistemes i pot consumir una quantitat important d'espai en disc.",
|
||||
"Enable Message Rating": "Permetre la qualificació de missatges",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Activar el mostreig de Mirostat per controlar la perplexitat. (Per defecte: 0, 0 = Inhabilitat, 1 = Mirostat, 2 = Mirostat 2.0)",
|
||||
"Enable New Sign Ups": "Permetre nous registres",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "Activar la generació d'etiquetes",
|
||||
"Enable Web Search": "Activar la cerca web",
|
||||
"Enable Web Search Query Generation": "Activa la generació de consultes de cerca web",
|
||||
"Enabled": "Habilitat",
|
||||
"Engine": "Motor",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assegura't que els teus fitxers CSV inclouen 4 columnes en aquest ordre: Nom, Correu electrònic, Contrasenya, Rol.",
|
||||
@@ -329,8 +333,9 @@
|
||||
"Enter language codes": "Introdueix els codis de llenguatge",
|
||||
"Enter Model ID": "Introdueix l'identificador del model",
|
||||
"Enter model tag (e.g. {{modelTag}})": "Introdueix l'etiqueta del model (p. ex. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Mojeek Search API Key": "Introdueix la clau API de Mojeek Search",
|
||||
"Enter Number of Steps (e.g. 50)": "Introdueix el nombre de passos (p. ex. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "Entra l'URL (p. ex. https://user:password@host:port)",
|
||||
"Enter Sampler (e.g. Euler a)": "Introdueix el mostrejador (p.ex. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Entra el programador (p.ex. Karras)",
|
||||
"Enter Score": "Introdueix la puntuació",
|
||||
@@ -375,7 +380,7 @@
|
||||
"Export Config to JSON File": "Exportar la configuració a un arxiu JSON",
|
||||
"Export Functions": "Exportar funcions",
|
||||
"Export Models": "Exportar els models",
|
||||
"Export Presets": "",
|
||||
"Export Presets": "Exportar les configuracions",
|
||||
"Export Prompts": "Exportar les indicacions",
|
||||
"Export to CSV": "Exportar a CSV",
|
||||
"Export Tools": "Exportar les eines",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "No s'ha pogut afegir l'arxiu.",
|
||||
"Failed to create API Key.": "No s'ha pogut crear la clau API.",
|
||||
"Failed to read clipboard contents": "No s'ha pogut llegir el contingut del porta-retalls",
|
||||
"Failed to save models configuration": "No s'ha pogut desar la configuració dels models",
|
||||
"Failed to update settings": "No s'han pogut actualitzar les preferències",
|
||||
"Failed to upload file.": "No s'ha pogut pujar l'arxiu.",
|
||||
"February": "Febrer",
|
||||
@@ -436,11 +442,11 @@
|
||||
"Good Response": "Bona resposta",
|
||||
"Google PSE API Key": "Clau API PSE de Google",
|
||||
"Google PSE Engine Id": "Identificador del motor PSE de Google",
|
||||
"Group created successfully": "",
|
||||
"Group deleted successfully": "",
|
||||
"Group Description": "",
|
||||
"Group Name": "",
|
||||
"Group updated successfully": "",
|
||||
"Group created successfully": "El grup s'ha creat correctament",
|
||||
"Group deleted successfully": "El grup s'ha eliminat correctament",
|
||||
"Group Description": "Descripció del grup",
|
||||
"Group Name": "Nom del grup",
|
||||
"Group updated successfully": "Grup actualitzat correctament",
|
||||
"Groups": "Grups",
|
||||
"h:mm a": "h:mm a",
|
||||
"Haptic Feedback": "Retorn hàptic",
|
||||
@@ -448,12 +454,12 @@
|
||||
"Hello, {{name}}": "Hola, {{name}}",
|
||||
"Help": "Ajuda",
|
||||
"Help us create the best community leaderboard by sharing your feedback history!": "Ajuda'ns a crear la millor taula de classificació de la comunitat compartint el teu historial de comentaris!",
|
||||
"Hex Color": "",
|
||||
"Hex Color - Leave empty for default color": "",
|
||||
"Hex Color": "Color hexadecimal",
|
||||
"Hex Color - Leave empty for default color": "Color hexadecimal - Deixar buit per a color per defecte",
|
||||
"Hide": "Amaga",
|
||||
"Host": "Servidor",
|
||||
"How can I help you today?": "Com et puc ajudar avui?",
|
||||
"How would you rate this response?": "",
|
||||
"How would you rate this response?": "Com avaluaries aquesta resposta?",
|
||||
"Hybrid Search": "Cerca híbrida",
|
||||
"I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Afirmo que he llegit i entenc les implicacions de la meva acció. Soc conscient dels riscos associats a l'execució de codi arbitrari i he verificat la fiabilitat de la font.",
|
||||
"ID": "ID",
|
||||
@@ -466,7 +472,7 @@
|
||||
"Import Config from JSON File": "Importar la configuració des d'un arxiu JSON",
|
||||
"Import Functions": "Importar funcions",
|
||||
"Import Models": "Importar models",
|
||||
"Import Presets": "",
|
||||
"Import Presets": "Importar configuracions",
|
||||
"Import Prompts": "Importar indicacions",
|
||||
"Import Tools": "Importar eines",
|
||||
"Include": "Incloure",
|
||||
@@ -493,7 +499,7 @@
|
||||
"Key": "Clau",
|
||||
"Keyboard shortcuts": "Dreceres de teclat",
|
||||
"Knowledge": "Coneixement",
|
||||
"Knowledge Access": "",
|
||||
"Knowledge Access": "Accés al coneixement",
|
||||
"Knowledge created successfully.": "Coneixement creat correctament.",
|
||||
"Knowledge deleted successfully.": "Coneixement eliminat correctament.",
|
||||
"Knowledge reset successfully.": "Coneixement restablert correctament.",
|
||||
@@ -523,7 +529,7 @@
|
||||
"Make sure to export a workflow.json file as API format from ComfyUI.": "Assegura't d'exportar un fitxer workflow.json com a format API des de ComfyUI.",
|
||||
"Manage": "Gestionar",
|
||||
"Manage Arena Models": "Gestionar els models de l'Arena",
|
||||
"Manage Ollama": "",
|
||||
"Manage Ollama": "Gestionar Ollama",
|
||||
"Manage Ollama API Connections": "Gestionar les connexions a l'API d'Ollama",
|
||||
"Manage OpenAI API Connections": "Gestionar les connexions a l'API d'OpenAI",
|
||||
"Manage Pipelines": "Gestionar les Pipelines",
|
||||
@@ -559,18 +565,19 @@
|
||||
"Model accepts image inputs": "El model accepta entrades d'imatge",
|
||||
"Model created successfully!": "Model creat correctament",
|
||||
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "S'ha detectat el camí del sistema de fitxers del model. És necessari un nom curt del model per actualitzar, no es pot continuar.",
|
||||
"Model Filtering": "",
|
||||
"Model Filtering": "Filtrat de models",
|
||||
"Model ID": "Identificador del model",
|
||||
"Model IDs": "Identificadors del model",
|
||||
"Model Name": "Nom del model",
|
||||
"Model not selected": "Model no seleccionat",
|
||||
"Model Params": "Paràmetres del model",
|
||||
"Model Permissions": "",
|
||||
"Model Permissions": "Permisos dels models",
|
||||
"Model updated successfully": "Model actualitzat correctament",
|
||||
"Modelfile Content": "Contingut del Modelfile",
|
||||
"Models": "Models",
|
||||
"Models Access": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"Models Access": "Accés als models",
|
||||
"Models configuration saved successfully": "La configuració dels models s'ha desat correctament",
|
||||
"Mojeek Search API Key": "Clau API de Mojeek Search",
|
||||
"more": "més",
|
||||
"More": "Més",
|
||||
"Name": "Nom",
|
||||
@@ -584,15 +591,16 @@
|
||||
"No feedbacks found": "No s'han trobat comentaris",
|
||||
"No file selected": "No s'ha escollit cap fitxer",
|
||||
"No files found.": "No s'han trobat arxius.",
|
||||
"No groups with access, add a group to grant access": "",
|
||||
"No groups with access, add a group to grant access": "No hi ha cap grup amb accés, afegeix un grup per concedir accés",
|
||||
"No HTML, CSS, or JavaScript content found.": "No s'ha trobat contingut HTML, CSS o JavaScript.",
|
||||
"No knowledge found": "No s'ha trobat Coneixement",
|
||||
"No model IDs": "",
|
||||
"No model IDs": "No hi ha IDs de model",
|
||||
"No models found": "No s'han trobat models",
|
||||
"No models selected": "No s'ha seleccionat cap model",
|
||||
"No results found": "No s'han trobat resultats",
|
||||
"No search query generated": "No s'ha generat cap consulta",
|
||||
"No source available": "Sense font disponible",
|
||||
"No users were found.": "",
|
||||
"No users were found.": "No s'han trobat usuaris",
|
||||
"No valves to update": "No hi ha cap Valve per actualitzar",
|
||||
"None": "Cap",
|
||||
"Not factually correct": "No és clarament correcte",
|
||||
@@ -617,7 +625,7 @@
|
||||
"Only alphanumeric characters and hyphens are allowed": "Només es permeten caràcters alfanumèrics i guions",
|
||||
"Only alphanumeric characters and hyphens are allowed in the command string.": "Només es permeten caràcters alfanumèrics i guions en la comanda.",
|
||||
"Only collections can be edited, create a new knowledge base to edit/add documents.": "Només es poden editar col·leccions, crea una nova base de coneixement per editar/afegir documents.",
|
||||
"Only select users and groups with permission can access": "",
|
||||
"Only select users and groups with permission can access": "Només hi poden accedir usuaris i grups seleccionats amb permís",
|
||||
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Ui! Sembla que l'URL no és vàlida. Si us plau, revisa-la i torna-ho a provar.",
|
||||
"Oops! There are files still uploading. Please wait for the upload to complete.": "Ui! Encara hi ha fitxers pujant-se. Si us plau, espera que finalitzi la càrrega.",
|
||||
"Oops! There was an error in the previous response.": "Ui! Hi ha hagut un error a la resposta anterior.",
|
||||
@@ -635,21 +643,21 @@
|
||||
"OpenAI API settings updated": "Configuració de l'API d'OpenAI actualitzada",
|
||||
"OpenAI URL/Key required.": "URL/Clau d'OpenAI requerides.",
|
||||
"or": "o",
|
||||
"Organize your users": "",
|
||||
"Organize your users": "Organitza els teus usuaris",
|
||||
"Other": "Altres",
|
||||
"OUTPUT": "SORTIDA",
|
||||
"Output format": "Format de sortida",
|
||||
"Overview": "Vista general",
|
||||
"page": "pàgina",
|
||||
"Password": "Contrasenya",
|
||||
"Paste Large Text as File": "",
|
||||
"Paste Large Text as File": "Enganxa un text llarg com a fitxer",
|
||||
"PDF document (.pdf)": "Document PDF (.pdf)",
|
||||
"PDF Extract Images (OCR)": "Extreu imatges del PDF (OCR)",
|
||||
"pending": "pendent",
|
||||
"Permission denied when accessing media devices": "Permís denegat en accedir a dispositius multimèdia",
|
||||
"Permission denied when accessing microphone": "Permís denegat en accedir al micròfon",
|
||||
"Permission denied when accessing microphone: {{error}}": "Permís denegat en accedir al micròfon: {{error}}",
|
||||
"Permissions": "",
|
||||
"Permissions": "Permisos",
|
||||
"Personalization": "Personalització",
|
||||
"Pin": "Fixar",
|
||||
"Pinned": "Fixat",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Si us plau, revisa els següents avisos amb cura:",
|
||||
"Please enter a prompt": "Si us plau, entra una indicació",
|
||||
"Please fill in all fields.": "Emplena tots els camps, si us plau.",
|
||||
"Please select a model first.": "Si us plau, selecciona un model primer",
|
||||
"Please select a reason": "Si us plau, selecciona una raó",
|
||||
"Port": "Port",
|
||||
"Positive attitude": "Actitud positiva",
|
||||
@@ -674,14 +683,15 @@
|
||||
"Profile Image": "Imatge de perfil",
|
||||
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Indicació (p.ex. Digues-me quelcom divertit sobre l'Imperi Romà)",
|
||||
"Prompt Content": "Contingut de la indicació",
|
||||
"Prompt created successfully": "",
|
||||
"Prompt created successfully": "Indicació creada correctament",
|
||||
"Prompt suggestions": "Suggeriments d'indicacions",
|
||||
"Prompt updated successfully": "",
|
||||
"Prompt updated successfully": "Indicació actualitzada correctament",
|
||||
"Prompts": "Indicacions",
|
||||
"Prompts Access": "",
|
||||
"Prompts Access": "Accés a les indicacions",
|
||||
"Proxy URL": "URL del proxy",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Obtenir \"{{searchValue}}\" de Ollama.com",
|
||||
"Pull a model from Ollama.com": "Obtenir un model d'Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
"Query Generation Prompt": "Indicació per a generació de consulta",
|
||||
"Query Params": "Paràmetres de consulta",
|
||||
"RAG Template": "Plantilla RAG",
|
||||
"Rating": "Valoració",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Eliminar",
|
||||
"Remove Model": "Eliminar el model",
|
||||
"Rename": "Canviar el nom",
|
||||
"Reorder Models": "Reordenar els models",
|
||||
"Repeat Last N": "Repeteix els darrers N",
|
||||
"Request Mode": "Mode de sol·licitud",
|
||||
"Reranking Model": "Model de reavaluació",
|
||||
"Reranking model disabled": "Model de reavaluació desactivat",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Model de reavaluació establert a \"{{reranking_model}}\"",
|
||||
"Reset": "Restableix",
|
||||
"Reset All Models": "Restablir tots els models",
|
||||
"Reset Upload Directory": "Restableix el directori de pujades",
|
||||
"Reset Vector Storage/Knowledge": "Restableix el Repositori de vectors/Coneixement",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Les notifications de resposta no es poden activar perquè els permisos del lloc web han estat rebutjats. Comprova les preferències del navegador per donar l'accés necessari.",
|
||||
"Response splitting": "Divisió de la resposta",
|
||||
"Result": "Resultat",
|
||||
"Retrieval Query Generation": "Generació de consultes Retrieval",
|
||||
"Rich Text Input for Chat": "Entrada de text ric per al xat",
|
||||
"RK": "RK",
|
||||
"Role": "Rol",
|
||||
@@ -755,7 +768,7 @@
|
||||
"Select a base model": "Seleccionar un model base",
|
||||
"Select a engine": "Seleccionar un motor",
|
||||
"Select a function": "Seleccionar una funció",
|
||||
"Select a group": "",
|
||||
"Select a group": "Seleccionar un grup",
|
||||
"Select a model": "Seleccionar un model",
|
||||
"Select a pipeline": "Seleccionar una Pipeline",
|
||||
"Select a pipeline url": "Seleccionar l'URL d'una Pipeline",
|
||||
@@ -778,7 +791,7 @@
|
||||
"Set as default": "Establir com a predeterminat",
|
||||
"Set CFG Scale": "Establir l'escala CFG",
|
||||
"Set Default Model": "Establir el model predeterminat",
|
||||
"Set embedding model": "",
|
||||
"Set embedding model": "Establir el model d'incrustació",
|
||||
"Set embedding model (e.g. {{model}})": "Establir el model d'incrustació (p.ex. {{model}})",
|
||||
"Set Image Size": "Establir la mida de la image",
|
||||
"Set reranking model (e.g. {{model}})": "Establir el model de reavaluació (p.ex. {{model}})",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "Sistema",
|
||||
"System Instructions": "Instruccions de sistema",
|
||||
"System Prompt": "Indicació del Sistema",
|
||||
"Tags Generation": "Generació d'etiquetes",
|
||||
"Tags Generation Prompt": "Indicació per a la generació d'etiquetes",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "El mostreig sense cua s'utilitza per reduir l'impacte de tokens menys probables de la sortida. Un valor més alt (p. ex., 2,0) reduirà més l'impacte, mentre que un valor d'1,0 desactiva aquesta configuració. (per defecte: 1)",
|
||||
"Tap to interrupt": "Prem per interrompre",
|
||||
@@ -866,8 +880,8 @@
|
||||
"This response was generated by \"{{model}}\"": "Aquesta resposta l'ha generat el model \"{{model}}\"",
|
||||
"This will delete": "Això eliminarà",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "Això eliminarà <strong>{{NAME}}</strong> i <strong>tots els continguts</strong>.",
|
||||
"This will delete all models including custom models": "",
|
||||
"This will delete all models including custom models and cannot be undone.": "",
|
||||
"This will delete all models including custom models": "Això eliminarà tots els models incloent els personalitzats",
|
||||
"This will delete all models including custom models and cannot be undone.": "Això eliminarà tots els models incloent els personalitzats i no es pot desfer",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Això restablirà la base de coneixement i sincronitzarà tots els fitxers. Vols continuar?",
|
||||
"Thorough explanation": "Explicació en detall",
|
||||
"Tika": "Tika",
|
||||
@@ -897,13 +911,13 @@
|
||||
"Too verbose": "Massa explicit",
|
||||
"Tool created successfully": "Eina creada correctament",
|
||||
"Tool deleted successfully": "Eina eliminada correctament",
|
||||
"Tool Description": "",
|
||||
"Tool ID": "",
|
||||
"Tool Description": "Descripció de l'eina",
|
||||
"Tool ID": "ID de l'eina",
|
||||
"Tool imported successfully": "Eina importada correctament",
|
||||
"Tool Name": "",
|
||||
"Tool Name": "Nom de l'eina",
|
||||
"Tool updated successfully": "Eina actualitzada correctament",
|
||||
"Tools": "Eines",
|
||||
"Tools Access": "",
|
||||
"Tools Access": "Accés a les eines",
|
||||
"Tools are a function calling system with arbitrary code execution": "Les eines són un sistema de crida a funcions amb execució de codi arbitrari",
|
||||
"Tools have a function calling system that allows arbitrary code execution": "Les eines disposen d'un sistema de crida a funcions que permet execució de codi arbitrari",
|
||||
"Tools have a function calling system that allows arbitrary code execution.": "Les eines disposen d'un sistema de crida a funcions que permet execució de codi arbitrari.",
|
||||
@@ -943,7 +957,7 @@
|
||||
"URL Mode": "Mode URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Utilitza '#' a l'entrada de la indicació per carregar i incloure els teus coneixements.",
|
||||
"Use Gravatar": "Utilitzar Gravatar",
|
||||
"Use groups to group your users and assign permissions.": "",
|
||||
"Use groups to group your users and assign permissions.": "Utilitza grups per agrupar els usuaris i assignar permisos.",
|
||||
"Use Initials": "Utilitzar inicials",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
"use_mmap (Ollama)": "use_mmap (Ollama)",
|
||||
@@ -962,18 +976,19 @@
|
||||
"variable to have them replaced with clipboard content.": "variable per tenir-les reemplaçades amb el contingut del porta-retalls.",
|
||||
"Version": "Versió",
|
||||
"Version {{selectedVersion}} of {{totalVersions}}": "Versió {{selectedVersion}} de {{totalVersions}}",
|
||||
"Visibility": "",
|
||||
"Visibility": "Visibilitat",
|
||||
"Voice": "Veu",
|
||||
"Voice Input": "Entrada de veu",
|
||||
"Warning": "Avís",
|
||||
"Warning:": "Avís:",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "Avís: Habilitar això permetrà als usuaris penjar codi arbitrari al servidor.",
|
||||
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avís: Si s'actualitza o es canvia el model d'incrustació, s'hauran de tornar a importar tots els documents.",
|
||||
"Web": "Web",
|
||||
"Web API": "Web API",
|
||||
"Web Loader Settings": "Preferències del carregador web",
|
||||
"Web Search": "Cerca la web",
|
||||
"Web Search Engine": "Motor de cerca de la web",
|
||||
"Web Search Query Generation": "Generació de consultes per a la cerca de la web",
|
||||
"Webhook URL": "URL del webhook",
|
||||
"WebUI Settings": "Preferències de WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI farà peticions a \"{{url}}/api/chat\"",
|
||||
@@ -984,12 +999,12 @@
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "Quan està activat, el model respondrà a cada missatge de xat en temps real, generant una resposta tan bon punt l'usuari envia un missatge. Aquest mode és útil per a aplicacions de xat en directe, però pot afectar el rendiment en maquinari més lent.",
|
||||
"wherever you are": "allà on estiguis",
|
||||
"Whisper (Local)": "Whisper (local)",
|
||||
"Why?": "",
|
||||
"Why?": "Per què?",
|
||||
"Widescreen Mode": "Mode de pantalla ampla",
|
||||
"Won": "Ha guanyat",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "Funciona juntament amb top-k. Un valor més alt (p. ex., 0,95) donarà lloc a un text més divers, mentre que un valor més baix (p. ex., 0,5) generarà un text més concentrat i conservador. (Per defecte: 0,9)",
|
||||
"Workspace": "Espai de treball",
|
||||
"Workspace Permissions": "",
|
||||
"Workspace Permissions": "Permisos de l'espai de treball",
|
||||
"Write a prompt suggestion (e.g. Who are you?)": "Escriu una suggerència d'indicació (p. ex. Qui ets?)",
|
||||
"Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].",
|
||||
"Write something...": "Escriu quelcom...",
|
||||
@@ -999,7 +1014,7 @@
|
||||
"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Només pots xatejar amb un màxim de {{maxCount}} fitxers alhora.",
|
||||
"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Pots personalitzar les teves interaccions amb els models de llenguatge afegint memòries mitjançant el botó 'Gestiona' que hi ha a continuació, fent-les més útils i adaptades a tu.",
|
||||
"You cannot upload an empty file.": "No es pot pujar un ariux buit.",
|
||||
"You do not have permission to upload files.": "",
|
||||
"You do not have permission to upload files.": "No tens permisos per pujar arxius.",
|
||||
"You have no archived conversations.": "No tens converses arxivades.",
|
||||
"You have shared this chat": "Has compartit aquest xat",
|
||||
"You're a helpful assistant.": "Ets un assistent útil.",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' o '-1' para walay expiration.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(pananglitan `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Awtomatikong kopya sa tubag sa clipboard",
|
||||
"Auto-playback response": "Autoplay nga tubag",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "Base URL AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Usba ang password",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Panaghisgot",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Kumpirma ang password",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "",
|
||||
"Default Model": "",
|
||||
"Default model updated": "Gi-update nga default template",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Default nga prompt nga mga sugyot",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "I-enable ang bag-ong mga rehistro",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Pagsulod sa template tag (e.g. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Pagsulod sa gidaghanon sa mga lakang (e.g. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "",
|
||||
"Failed to read clipboard contents": "Napakyas sa pagbasa sa sulod sa clipboard",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Mga sulod sa template file",
|
||||
"Models": "Mga modelo",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "",
|
||||
"No search query generated": "",
|
||||
"No source available": "Walay tinubdan nga anaa",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Mga aghat",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "",
|
||||
"Pull a model from Ollama.com": "Pagkuha ug template gikan sa Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "",
|
||||
"Remove Model": "",
|
||||
"Rename": "",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Balika ang katapusang N",
|
||||
"Request Mode": "Query mode",
|
||||
"Reranking Model": "",
|
||||
"Reranking model disabled": "",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Papel",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Sistema",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Madasig nga Sistema",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "",
|
||||
"Web Search": "",
|
||||
"Web Search Engine": "",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "",
|
||||
"WebUI Settings": "Mga Setting sa WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,58 +1,59 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' nebo '-1' pro žádné vypršení platnosti.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(např. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(např. `sh webui.sh --api`)",
|
||||
"(latest)": "Nejnovější",
|
||||
"{{ models }}": "{{ models }}",
|
||||
"{{user}}'s Chats": "{{user}}'s konverzace",
|
||||
"{{webUIName}} Backend Required": "Požadováno {{webUIName}} Backend",
|
||||
"*Prompt node ID(s) are required for image generation": "*ID (ID) uzlu pro generování obrázků jsou vyžadována.",
|
||||
"{{webUIName}} Backend Required": "Požadován {{webUIName}} Backend",
|
||||
"*Prompt node ID(s) are required for image generation": "*Jsou vyžadovány IDs pro prompt node pro generování obrázků",
|
||||
"A new version (v{{LATEST_VERSION}}) is now available.": "Nová verze (v{{LATEST_VERSION}}) je nyní k dispozici.",
|
||||
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Model úloh se používá při provádění úloh, jako je generování názvů pro chaty a vyhledávací dotazy na webu.",
|
||||
"a user": "uživatel",
|
||||
"About": "O programu",
|
||||
"Access": "",
|
||||
"Access": "Přístup",
|
||||
"Access Control": "",
|
||||
"Accessible to all users": "",
|
||||
"Accessible to all users": "Přístupné pro všecny uživatele",
|
||||
"Account": "Účet",
|
||||
"Account Activation Pending": "Čeká na aktivaci účtu",
|
||||
"Accurate information": "Přesné informace",
|
||||
"Actions": "Akce",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Aktivujte tenhle příkaz napsáním \"/{{COMMAND}}\" do chat inputu",
|
||||
"Active Users": "Aktivní uživatelé",
|
||||
"Add": "Přidat",
|
||||
"Add a model ID": "",
|
||||
"Add a model ID": "Přidat ID modelu",
|
||||
"Add a short description about what this model does": "Přidejte krátký popis toho, co tento model dělá.",
|
||||
"Add a tag": "Přidat štítek",
|
||||
"Add Arena Model": "Přidat model Arena",
|
||||
"Add Connection": "",
|
||||
"Add Arena Model": "Přidat Arena model",
|
||||
"Add Connection": "Přidat připojení",
|
||||
"Add Content": "Přidat obsah",
|
||||
"Add content here": "Přidat obsah zde",
|
||||
"Add custom prompt": "Přidání vlastního výzvy",
|
||||
"Add custom prompt": "Přidání vlastního promptu",
|
||||
"Add Files": "Přidat soubory",
|
||||
"Add Group": "",
|
||||
"Add Memory": "Přidání paměti",
|
||||
"Add Group": "Přidat skupinu",
|
||||
"Add Memory": "Přidat paměť",
|
||||
"Add Model": "Přidat model",
|
||||
"Add Tag": "Přidat štítek",
|
||||
"Add Tags": "Přidat značky",
|
||||
"Add Tags": "Přidat štítky",
|
||||
"Add text content": "Přidejte textový obsah",
|
||||
"Add User": "Přidat uživatele",
|
||||
"Add User Group": "",
|
||||
"Add User Group": "Přidatg skupinu uživatelů",
|
||||
"Adjusting these settings will apply changes universally to all users.": "Úprava těchto nastavení se projeví univerzálně u všech uživatelů.",
|
||||
"admin": "Správce",
|
||||
"Admin": "Ahoj! Jak ti mohu pomoci?",
|
||||
"Admin Panel": "Administrační panel",
|
||||
"Admin Settings": "Nastavení administrátora",
|
||||
"admin": "amin",
|
||||
"Admin": "Admin",
|
||||
"Admin Panel": "Adminis panel",
|
||||
"Admin Settings": "Nastavení admina",
|
||||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administrátoři mají přístup ke všem nástrojům kdykoliv; uživatelé potřebují mít nástroje přiřazené podle modelu ve workspace.",
|
||||
"Advanced Parameters": "Pokročilé parametry",
|
||||
"Advanced Params": "Pokročilé parametry",
|
||||
"All chats": "Všechny chaty",
|
||||
"All Documents": "Všechny dokumenty",
|
||||
"All models deleted successfully": "",
|
||||
"Allow Chat Delete": "",
|
||||
"All models deleted successfully": "Všechny modely úspěšně odstráněny",
|
||||
"Allow Chat Delete": "Povolit odstranění chatu",
|
||||
"Allow Chat Deletion": "Povolit odstranění chatu",
|
||||
"Allow Chat Edit": "",
|
||||
"Allow File Upload": "",
|
||||
"Allow Chat Edit": "Povolit úpravu chatu",
|
||||
"Allow File Upload": "Povolit nahrávat soubory",
|
||||
"Allow non-local voices": "Povolit ne-místní hlasy",
|
||||
"Allow Temporary Chat": "Povolit dočasný chat",
|
||||
"Allow User Location": "Povolit uživatelskou polohu",
|
||||
@@ -62,7 +63,7 @@
|
||||
"Amazing": "",
|
||||
"an assistant": "asistent",
|
||||
"and": "a",
|
||||
"and {{COUNT}} more": "a {{COUNT}} dalších",
|
||||
"and {{COUNT}} more": "a {{COUNT}} další/ch",
|
||||
"and create a new shared link.": "a vytvořit nový sdílený odkaz.",
|
||||
"API Base URL": "Základní URL adresa API",
|
||||
"API Key": "Klíč API",
|
||||
@@ -77,8 +78,8 @@
|
||||
"Archived Chats": "Archivované chaty",
|
||||
"archived-chat-export": "",
|
||||
"Are you sure you want to unarchive all archived chats?": "",
|
||||
"Are you sure?": "Ano, jsem si jistý.",
|
||||
"Arena Models": "Modely Arena",
|
||||
"Are you sure?": "Jste si jistý?",
|
||||
"Arena Models": "Arena modely",
|
||||
"Artifacts": "Artefakty",
|
||||
"Ask a question": "Zeptejte se na otázku",
|
||||
"Assistant": "Ano, jak vám mohu pomoci?",
|
||||
@@ -87,9 +88,11 @@
|
||||
"Attribute for Username": "",
|
||||
"Audio": "Zvuk",
|
||||
"August": "Srpen",
|
||||
"Authenticate": "",
|
||||
"Authenticate": "Autentikace",
|
||||
"Auto-Copy Response to Clipboard": "Automatické kopírování odpovědi do schránky",
|
||||
"Auto-playback response": "Automatická odpověď při přehrávání",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Auth String",
|
||||
"AUTOMATIC1111 Base URL": "Výchozí URL pro AUTOMATIC1111",
|
||||
@@ -102,10 +105,10 @@
|
||||
"Back": "Zpět",
|
||||
"Bad Response": "Špatná odezva",
|
||||
"Banners": "Bannery",
|
||||
"Base Model (From)": "Základní model (Z)",
|
||||
"Batch Size (num_batch)": "Velikost dávky (num_batch)",
|
||||
"Base Model (From)": "Základní model (z)",
|
||||
"Batch Size (num_batch)": "Batch size (num_batch)",
|
||||
"before": "před",
|
||||
"Being lazy": "Být líný",
|
||||
"Being lazy": "",
|
||||
"Bing Search V7 Endpoint": "",
|
||||
"Bing Search V7 Subscription Key": "",
|
||||
"Brave Search API Key": "Klíč API pro Brave Search",
|
||||
@@ -114,11 +117,12 @@
|
||||
"Call": "Volání",
|
||||
"Call feature is not supported when using Web STT engine": "Funkce pro volání není podporována při použití Web STT engine.",
|
||||
"Camera": "Kamera",
|
||||
"Cancel": "Zrušit.",
|
||||
"Cancel": "Zrušit",
|
||||
"Capabilities": "Schopnosti",
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Změna hesla",
|
||||
"Change Password": "Změnit heslo",
|
||||
"Character": "Znak",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Obrázek pozadí chatu",
|
||||
@@ -133,9 +137,9 @@
|
||||
"Check for updates": "Zkontrolovat aktualizace",
|
||||
"Checking for updates...": "Kontrola aktualizací...",
|
||||
"Choose a model before saving...": "Vyberte model před uložením...",
|
||||
"Chunk Overlap": "Překrytí bloků",
|
||||
"Chunk Params": "Parametry chunků",
|
||||
"Chunk Size": "Velikost bloku",
|
||||
"Chunk Overlap": "",
|
||||
"Chunk Params": "",
|
||||
"Chunk Size": "",
|
||||
"Ciphers": "",
|
||||
"Citation": "Odkaz",
|
||||
"Clear memory": "Vymazat paměť",
|
||||
@@ -156,8 +160,8 @@
|
||||
"Close": "Zavřít",
|
||||
"Code execution": "Provádění kódu",
|
||||
"Code formatted successfully": "Kód byl úspěšně naformátován.",
|
||||
"Collection": "Sbírka",
|
||||
"Color": "",
|
||||
"Collection": "",
|
||||
"Color": "Barva",
|
||||
"ComfyUI": "ComfyUI.",
|
||||
"ComfyUI Base URL": "Základní URL ComfyUI",
|
||||
"ComfyUI Base URL is required.": "Je vyžadována základní URL pro ComfyUI.",
|
||||
@@ -166,7 +170,8 @@
|
||||
"Command": "Příkaz",
|
||||
"Completions": "Doplnění",
|
||||
"Concurrent Requests": "Současné požadavky",
|
||||
"Configure": "",
|
||||
"Configure": "Konfigurovat",
|
||||
"Configure Models": "Konfigurovat modely",
|
||||
"Confirm": "Potvrdit",
|
||||
"Confirm Password": "Potvrzení hesla",
|
||||
"Confirm your action": "Potvrďte svoji akci",
|
||||
@@ -191,13 +196,13 @@
|
||||
"Copy Link": "Kopírovat odkaz",
|
||||
"Copy to clipboard": "Kopírovat do schránky",
|
||||
"Copying to clipboard was successful!": "Kopírování do schránky bylo úspěšné!",
|
||||
"Create": "",
|
||||
"Create a knowledge base": "",
|
||||
"Create": "Vytvořit",
|
||||
"Create a knowledge base": "Vytvořit knowledge base",
|
||||
"Create a model": "Vytvořte model",
|
||||
"Create Account": "Vytvořit účet",
|
||||
"Create Admin Account": "",
|
||||
"Create Group": "",
|
||||
"Create Knowledge": "Vytvořit znalosti",
|
||||
"Create Admin Account": "Vytvořit admin účet",
|
||||
"Create Group": "Vytvořit skupinu",
|
||||
"Create Knowledge": "Vytvořit knowledge",
|
||||
"Create new key": "Vytvořit nový klíč",
|
||||
"Create new secret key": "Vytvořte nový tajný klíč",
|
||||
"Created at": "Vytvořeno dne",
|
||||
@@ -215,8 +220,9 @@
|
||||
"Default (SentenceTransformers)": "Výchozí (SentenceTransformers)",
|
||||
"Default Model": "Výchozí model",
|
||||
"Default model updated": "Výchozí model aktualizován.",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Models": "Výchozí modely",
|
||||
"Default permissions": "Výchozí povolení",
|
||||
"Default permissions updated successfully": "Výchozí povolení úspěšne aktualizovány",
|
||||
"Default Prompt Suggestions": "Výchozí návrhy promptů",
|
||||
"Default to 389 or 636 if TLS is enabled": "",
|
||||
"Default to ALL": "",
|
||||
@@ -230,7 +236,7 @@
|
||||
"Delete chat?": "Smazat konverzaci?",
|
||||
"Delete folder?": "Smazat složku?",
|
||||
"Delete function?": "Funkce pro odstranění?",
|
||||
"Delete prompt?": "Smazat výzvu?",
|
||||
"Delete prompt?": "Smazat prompt?",
|
||||
"delete this link": "smazat tento odkaz",
|
||||
"Delete tool?": "Odstranit nástroj?",
|
||||
"Delete User": "Smazat uživatele",
|
||||
@@ -243,11 +249,11 @@
|
||||
"Disabled": "Zakázáno",
|
||||
"Discover a function": "Objevit funkci",
|
||||
"Discover a model": "Objevte model",
|
||||
"Discover a prompt": "Objevte výzvu",
|
||||
"Discover a prompt": "Objevte prompt",
|
||||
"Discover a tool": "Objevte nástroj",
|
||||
"Discover wonders": "",
|
||||
"Discover, download, and explore custom functions": "Objevujte, stahujte a zkoumejte vlastní funkce",
|
||||
"Discover, download, and explore custom prompts": "Objevte, stáhněte a prozkoumejte vlastní výzvy.",
|
||||
"Discover, download, and explore custom prompts": "Objevte, stáhněte a prozkoumejte vlastní prompty.",
|
||||
"Discover, download, and explore custom tools": "Objevujte, stahujte a prozkoumávejte vlastní nástroje",
|
||||
"Discover, download, and explore model presets": "Objevte, stáhněte a prozkoumejte přednastavení modelů",
|
||||
"Dismissible": "Odstranitelné",
|
||||
@@ -290,21 +296,19 @@
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
"Email": "E-mail",
|
||||
"Embark on adventures": "",
|
||||
"Embedding Batch Size": "Velikost dávky pro vkládání",
|
||||
"Embedding Batch Size": "",
|
||||
"Embedding Model": "Vkládací model (Embedding Model)",
|
||||
"Embedding Model Engine": "Model zabudovaný motor",
|
||||
"Embedding Model Engine": "",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model vkládání nastaven na \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Povolit sdílení komunity",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "Povolit hodnocení zpráv",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Povolit nové registrace",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Povolit webové vyhledávání",
|
||||
"Enable Web Search Query Generation": "Povolit generování dotazů pro webové vyhledávání",
|
||||
"Enabled": "Povoleno",
|
||||
"Engine": "Engine",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Ujistěte se, že váš CSV soubor obsahuje 4 sloupce v tomto pořadí: Name, Email, Password, Role.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Zadejte označení modelu (např. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Zadejte počet kroků (např. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Zadejte vzorkovač (např. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Zadejte plánovač (např. Karras)",
|
||||
"Enter Score": "Zadejte skóre",
|
||||
@@ -345,7 +350,7 @@
|
||||
"Enter server label": "",
|
||||
"Enter server port": "",
|
||||
"Enter stop sequence": "Zadejte ukončovací sekvenci",
|
||||
"Enter system prompt": "Vložte systémovou výzvu",
|
||||
"Enter system prompt": "Vložte systémový prompt",
|
||||
"Enter Tavily API Key": "Zadejte API klíč Tavily",
|
||||
"Enter Tika Server URL": "Zadejte URL serveru Tika",
|
||||
"Enter Top K": "Zadejte horní K",
|
||||
@@ -376,13 +381,14 @@
|
||||
"Export Functions": "Exportovat funkce",
|
||||
"Export Models": "Export modelů",
|
||||
"Export Presets": "",
|
||||
"Export Prompts": "Exportovat výzvy",
|
||||
"Export Prompts": "Exportovat prompty",
|
||||
"Export to CSV": "",
|
||||
"Export Tools": "Exportní nástroje",
|
||||
"External Models": "Externí modely",
|
||||
"Failed to add file.": "Nepodařilo se přidat soubor.",
|
||||
"Failed to create API Key.": "Nepodařilo se vytvořit API klíč.",
|
||||
"Failed to read clipboard contents": "Nepodařilo se přečíst obsah schránky",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Nepodařilo se aktualizovat nastavení",
|
||||
"Failed to upload file.": "Nepodařilo se nahrát soubor.",
|
||||
"February": "Únor",
|
||||
@@ -526,7 +532,7 @@
|
||||
"Manage Ollama": "",
|
||||
"Manage Ollama API Connections": "",
|
||||
"Manage OpenAI API Connections": "",
|
||||
"Manage Pipelines": "Správa potrubí",
|
||||
"Manage Pipelines": "Správa pipelines",
|
||||
"March": "Březen",
|
||||
"Max Tokens (num_predict)": "Maximální počet tokenů (num_predict)",
|
||||
"Max Upload Count": "Maximální počet nahrání",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Obsah souboru modelfile",
|
||||
"Models": "Modely",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "více",
|
||||
"More": "Více",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "Nebyly nalezeny žádné znalosti",
|
||||
"No model IDs": "",
|
||||
"No models found": "Nebyly nalezeny žádné modely",
|
||||
"No models selected": "",
|
||||
"No results found": "Nebyly nalezeny žádné výsledky",
|
||||
"No search query generated": "Nebyl vygenerován žádný vyhledávací dotaz.",
|
||||
"No source available": "Není k dispozici žádný zdroj.",
|
||||
@@ -654,16 +662,17 @@
|
||||
"Pin": "Kolík",
|
||||
"Pinned": "Připnuto",
|
||||
"Pioneer insights": "",
|
||||
"Pipeline deleted successfully": "Potrubí bylo úspěšně odstraněno.",
|
||||
"Pipeline deleted successfully": "Pipeline byla úspěšně odstraněna",
|
||||
"Pipeline downloaded successfully": "Kanál byl úspěšně stažen",
|
||||
"Pipelines": "Potrubí (Pipelines)",
|
||||
"Pipelines": "",
|
||||
"Pipelines Not Detected": "Přenosové kanály nebyly detekovány",
|
||||
"Pipelines Valves": "Potrubní ventily",
|
||||
"Pipelines Valves": "",
|
||||
"Plain text (.txt)": "Čistý text (.txt)",
|
||||
"Playground": "Hřiště",
|
||||
"Playground": "",
|
||||
"Please carefully review the following warnings:": "Prosím, pečlivě si přečtěte následující upozornění:",
|
||||
"Please enter a prompt": "Prosím, zadejte zadání.",
|
||||
"Please fill in all fields.": "Prosím, vyplňte všechna pole.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Prosím vyberte důvod",
|
||||
"Port": "",
|
||||
"Positive attitude": "Pozitivní přístup",
|
||||
@@ -672,13 +681,14 @@
|
||||
"Previous 30 days": "Předchozích 30 dnů",
|
||||
"Previous 7 days": "Předchozích 7 dní",
|
||||
"Profile Image": "Profilový obrázek",
|
||||
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Výzva (např. Řekni mi zábavný fakt o Římské říši)",
|
||||
"Prompt Content": "Obsah výzvy",
|
||||
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (např. Řekni mi zábavný fakt o Římské říši)",
|
||||
"Prompt Content": "Obsah promptu",
|
||||
"Prompt created successfully": "",
|
||||
"Prompt suggestions": "Návrhy výzev",
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Výzvy",
|
||||
"Prompts": "Prompty",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Stáhněte \"{{searchValue}}\" z Ollama.com",
|
||||
"Pull a model from Ollama.com": "Stáhněte model z Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Odebrat",
|
||||
"Remove Model": "Odebrat model",
|
||||
"Rename": "Přejmenovat",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Opakovat posledních N",
|
||||
"Request Mode": "Režim žádosti",
|
||||
"Reranking Model": "Model pro přehodnocení pořadí",
|
||||
"Reranking model disabled": "Přeřazovací model je deaktivován",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Model pro přeřazení nastaven na \"{{reranking_model}}\"",
|
||||
"Reset": "režim Reset",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Resetovat adresář nahrávání",
|
||||
"Reset Vector Storage/Knowledge": "Resetování úložiště vektorů/znalostí",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Oznámení o odpovědích nelze aktivovat, protože oprávnění webu byla zamítnuta. Navštivte nastavení svého prohlížeče a udělte potřebný přístup.",
|
||||
"Response splitting": "Rozdělení odpovědi",
|
||||
"Result": "Výsledek",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Vstup pro chat ve formátu Rich Text",
|
||||
"RK": "RK",
|
||||
"Role": "Funkci",
|
||||
@@ -754,14 +767,14 @@
|
||||
"See what's new": "Podívejte se, co je nového",
|
||||
"Seed": "Semínko",
|
||||
"Select a base model": "Vyberte základní model",
|
||||
"Select a engine": "Vyberte motor",
|
||||
"Select a engine": "Vyberte engine",
|
||||
"Select a function": "Vyberte funkci",
|
||||
"Select a group": "",
|
||||
"Select a model": "Vyberte model",
|
||||
"Select a pipeline": "Vyberte si potrubí (pipeline)",
|
||||
"Select a pipeline": "Vyberte pipeline",
|
||||
"Select a pipeline url": "Vyberte URL adresu kanálu",
|
||||
"Select a tool": "Vyberte nástroj",
|
||||
"Select Engine": "Vyberte motor",
|
||||
"Select Engine": "Vyberte engine",
|
||||
"Select Knowledge": "Vybrat znalosti",
|
||||
"Select model": "Vyberte model",
|
||||
"Select only one model to call": "Vyberte pouze jeden model, který chcete použít",
|
||||
@@ -831,20 +844,21 @@
|
||||
"Support this plugin:": "Podpořte tento plugin:",
|
||||
"Sync directory": "Synchronizovat adresář",
|
||||
"System": "System",
|
||||
"System Instructions": "Pokyny systému",
|
||||
"System Prompt": "Systémová výzva",
|
||||
"Tags Generation Prompt": "Výzva pro generování značek",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Systémový prompt",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Prompt pro generování značek",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Klepněte pro přerušení",
|
||||
"Tavily API Key": "Klíč API pro Tavily",
|
||||
"Tell us more:": "Řekněte nám více.",
|
||||
"Temperature": "Teplota",
|
||||
"Temperature": "",
|
||||
"Template": "Šablona",
|
||||
"Temporary Chat": "Dočasný chat",
|
||||
"Text Splitter": "Rozdělovač textu",
|
||||
"Text-to-Speech Engine": "Stroj pro převod textu na řeč",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Děkuji za vaši zpětnou vazbu!",
|
||||
"Thanks for your feedback!": "Děkujeme za vaši zpětnou vazbu!",
|
||||
"The Application Account DN you bind with for search": "",
|
||||
"The base to search for users": "",
|
||||
"The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory. (Default: 512)": "",
|
||||
@@ -865,7 +879,7 @@
|
||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "",
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Tato volba odstraní všechny existující soubory ve sbírce a nahradí je nově nahranými soubory.",
|
||||
"This response was generated by \"{{model}}\"": "Tato odpověď byla vygenerována pomocí \"{{model}}\"",
|
||||
"This will delete": "Tím se odstraní",
|
||||
"This will delete": "Tohle odstraní",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "Tímto dojde k odstranění <strong>{{NAME}}</strong> a <strong>všech jeho obsahů</strong>.",
|
||||
"This will delete all models including custom models": "",
|
||||
"This will delete all models including custom models and cannot be undone.": "",
|
||||
@@ -879,16 +893,16 @@
|
||||
"Title (e.g. Tell me a fun fact)": "Název (např. Řekni mi zajímavost)",
|
||||
"Title Auto-Generation": "Automatické generování názvu",
|
||||
"Title cannot be an empty string.": "Název nemůže být prázdným řetězcem.",
|
||||
"Title Generation Prompt": "Generování názvu výzvy",
|
||||
"Title Generation Prompt": "Generování názvu promptu",
|
||||
"TLS": "",
|
||||
"To access the available model names for downloading,": "Pro získání dostupných názvů modelů ke stažení,",
|
||||
"To access the GGUF models available for downloading,": "Pro přístup k modelům GGUF dostupným pro stažení,",
|
||||
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Pro přístup k WebUI se prosím obraťte na administrátora. Administrátoři mohou spravovat stavy uživatelů z Admin Panelu.",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Chcete-li zde připojit znalostní databázi, nejprve ji přidejte do pracovního prostoru \"Knowledge\".",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Chcete-li zde připojit znalostní databázi, nejprve ji přidejte do workspace \"Knowledge\".",
|
||||
"To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "Aby byla chráněna vaše soukromí, z vaší zpětné vazby jsou sdílena pouze hodnocení, ID modelů, značky a metadata – vaše chatové záznamy zůstávají soukromé a nejsou zahrnuty.",
|
||||
"To select actions here, add them to the \"Functions\" workspace first.": "Chcete-li zde vybrat akce, nejprve je přidejte do pracovní plochy \"Functions\".",
|
||||
"To select filters here, add them to the \"Functions\" workspace first.": "Chcete-li zde vybrat filtry, nejprve je přidejte do pracovního prostoru „Functions“.",
|
||||
"To select toolkits here, add them to the \"Tools\" workspace first.": "Chcete-li zde vybrat nástroje, přidejte je nejprve do pracovního prostoru \"Tools\".",
|
||||
"To select filters here, add them to the \"Functions\" workspace first.": "Chcete-li zde vybrat filtry, nejprve je přidejte do workspace „Functions“.",
|
||||
"To select toolkits here, add them to the \"Tools\" workspace first.": "Chcete-li zde vybrat nástroje, přidejte je nejprve do workspace \"Tools\".",
|
||||
"Toast notifications for new updates": "Oznámení ve formě toastů pro nové aktualizace",
|
||||
"Today": "Dnes",
|
||||
"Toggle settings": "Přepnout nastavení",
|
||||
@@ -899,7 +913,7 @@
|
||||
"Tool created successfully": "Nástroj byl úspěšně vytvořen.",
|
||||
"Tool deleted successfully": "Nástroj byl úspěšně smazán.",
|
||||
"Tool Description": "",
|
||||
"Tool ID": "",
|
||||
"Tool ID": "ID nástroje",
|
||||
"Tool imported successfully": "Nástroj byl úspěšně importován",
|
||||
"Tool Name": "",
|
||||
"Tool updated successfully": "Nástroj byl úspěšně aktualizován.",
|
||||
@@ -919,7 +933,7 @@
|
||||
"Type Hugging Face Resolve (Download) URL": "Zadejte URL pro úspěšné stažení z Hugging Face.",
|
||||
"Uh-oh! There was an issue connecting to {{provider}}.": "Jejda! Došlo k problému s připojením k poskytovateli {{provider}}.",
|
||||
"UI": "UI",
|
||||
"Unarchive All": "",
|
||||
"Unarchive All": "Odarchivovat všechny",
|
||||
"Unarchive All Archived Chats": "",
|
||||
"Unarchive Chat": "",
|
||||
"Unlock mysteries": "",
|
||||
@@ -938,7 +952,7 @@
|
||||
"Upload directory": "Nahrát adresář",
|
||||
"Upload files": "Nahrát soubory",
|
||||
"Upload Files": "Nahrát soubory",
|
||||
"Upload Pipeline": "Nahrát potrubí",
|
||||
"Upload Pipeline": "Nahrát pipeline",
|
||||
"Upload Progress": "Průběh nahrávání",
|
||||
"URL": "",
|
||||
"URL Mode": "Režim URL",
|
||||
@@ -951,7 +965,7 @@
|
||||
"user": "uživatel",
|
||||
"User": "Uživatel",
|
||||
"User location successfully retrieved.": "Umístění uživatele bylo úspěšně získáno.",
|
||||
"Username": "",
|
||||
"Username": "Uživatelské jméno",
|
||||
"Users": "Uživatelé",
|
||||
"Using the default arena model with all models. Click the plus button to add custom models.": "Použití výchozího modelu arény se všemi modely. Kliknutím na tlačítko plus přidejte vlastní modely.",
|
||||
"Utilize": "Využít",
|
||||
@@ -963,7 +977,7 @@
|
||||
"variable to have them replaced with clipboard content.": "proměnnou, aby byl jejich obsah nahrazen obsahem schránky.",
|
||||
"Version": "Verze",
|
||||
"Version {{selectedVersion}} of {{totalVersions}}": "Verze {{selectedVersion}} z {{totalVersions}}",
|
||||
"Visibility": "",
|
||||
"Visibility": "Viditelnost",
|
||||
"Voice": "Hlas",
|
||||
"Voice Input": "Hlasový vstup",
|
||||
"Warning": "Varování",
|
||||
@@ -975,6 +989,7 @@
|
||||
"Web Loader Settings": "Nastavení Web Loaderu",
|
||||
"Web Search": "Vyhledávání na webu",
|
||||
"Web Search Engine": "Webový vyhledávač",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "Nastavení WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
@@ -983,17 +998,17 @@
|
||||
"What are you working on?": "",
|
||||
"What’s New in": "Co je nového v",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "",
|
||||
"wherever you are": "",
|
||||
"wherever you are": "kdekoliv jste",
|
||||
"Whisper (Local)": "Whisper (Lokálně)",
|
||||
"Why?": "",
|
||||
"Why?": "Proč?",
|
||||
"Widescreen Mode": "Režim širokoúhlého zobrazení",
|
||||
"Won": "Vyhrál",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "",
|
||||
"Workspace": "Pracovní prostor",
|
||||
"Workspace": "",
|
||||
"Workspace Permissions": "",
|
||||
"Write a prompt suggestion (e.g. Who are you?)": "Navrhněte dotaz (např. Kdo jsi?)",
|
||||
"Write a summary in 50 words that summarizes [topic or keyword].": "Napište shrnutí na 50 slov, které shrnuje [téma nebo klíčové slovo].",
|
||||
"Write something...": "Napiš něco...",
|
||||
"Write something...": "Napište něco...",
|
||||
"Write your model template content here": "",
|
||||
"Yesterday": "Včera",
|
||||
"You": "Vy",
|
||||
@@ -1008,5 +1023,5 @@
|
||||
"Your account status is currently pending activation.": "Stav vašeho účtu je nyní čekající na aktivaci.",
|
||||
"Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "Váš celý příspěvek půjde přímo vývojáři pluginu; Open WebUI si nebere žádné procento. Vybraná platforma pro financování však může mít vlastní poplatky.",
|
||||
"Youtube": "YouTube",
|
||||
"Youtube Loader Settings": "Nastavení Stahovače YouTube"
|
||||
"Youtube Loader Settings": "Nastavení YouTube loaderu"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' eller '-1' for ingen udløb",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(f.eks. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(f.eks. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Automatisk kopiering af svar til udklipsholder",
|
||||
"Auto-playback response": "Automatisk afspil svar",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Auth String",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Base URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Skift password",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Chat baggrundsbillede",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Concurrent requests",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Bekræft",
|
||||
"Confirm Password": "Bekræft password",
|
||||
"Confirm your action": "Bekræft din handling",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Standard (SentenceTransformers)",
|
||||
"Default Model": "Standard model",
|
||||
"Default model updated": "Standard model opdateret",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Standardforslag til prompt",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Embedding Model engine",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding model sat til \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Aktiver deling til Community",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "Aktiver rating af besked",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Aktiver nye signups",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Aktiver websøgning",
|
||||
"Enable Web Search Query Generation": "Aktiver query generation med websøgning",
|
||||
"Enabled": "Aktiveret",
|
||||
"Engine": "engine",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Sørg for at din CSV-fil indeholder 4 kolonner in denne rækkefølge: Name, Email, Password, Role.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Indtast modelmærke (f.eks. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Indtast antal trin (f.eks. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Indtast sampler (f.eks. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Indtast scheduler (f.eks. Karras)",
|
||||
"Enter Score": "Indtast score",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Kunne ikke oprette API-nøgle.",
|
||||
"Failed to read clipboard contents": "Kunne ikke læse indholdet af udklipsholderen",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Kunne ikke opdatere indstillinger",
|
||||
"Failed to upload file.": "Kunne ikke uploade fil.",
|
||||
"February": "Februar",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Modelfilindhold",
|
||||
"Models": "Modeller",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Mere",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "Ingen viden fundet",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Ingen resultater fundet",
|
||||
"No search query generated": "Ingen søgeforespørgsel genereret",
|
||||
"No source available": "Ingen kilde tilgængelig",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Gennemgå omhyggeligt følgende advarsler:",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "Udfyld alle felter.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Vælg en årsag",
|
||||
"Port": "",
|
||||
"Positive attitude": "Positiv holdning",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Hent \"{{searchValue}}\" fra Ollama.com",
|
||||
"Pull a model from Ollama.com": "Hent en model fra Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Fjern",
|
||||
"Remove Model": "Fjern model",
|
||||
"Rename": "Omdøb",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Gentag sidste N",
|
||||
"Request Mode": "Forespørgselstilstand",
|
||||
"Reranking Model": "Omarrangeringsmodel",
|
||||
"Reranking model disabled": "Omarrangeringsmodel deaktiveret",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Omarrangeringsmodel sat til \"{{reranking_model}}\"",
|
||||
"Reset": "Nulstil",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Nulstil uploadmappe",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Svarnotifikationer kan ikke aktiveres, da webstedets tilladelser er blevet nægtet. Besøg dine browserindstillinger for at give den nødvendige adgang.",
|
||||
"Response splitting": "Svaropdeling",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Rolle",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "System",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Systemprompt",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Tryk for at afbryde",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Web Loader-indstillinger",
|
||||
"Web Search": "Websøgning",
|
||||
"Web Search Engine": "Websøgemaskine",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook-URL",
|
||||
"WebUI Settings": "WebUI-indstillinger",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' oder '-1' für keine Ablaufzeit.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(z. B. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(z. B. `sh webui.sh --api`)",
|
||||
@@ -11,33 +12,33 @@
|
||||
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Aufgabenmodelle können Unterhaltungstitel oder Websuchanfragen generieren.",
|
||||
"a user": "ein Benutzer",
|
||||
"About": "Über",
|
||||
"Access": "",
|
||||
"Access Control": "",
|
||||
"Accessible to all users": "",
|
||||
"Access": "Zugang",
|
||||
"Access Control": "Zugangskontrolle",
|
||||
"Accessible to all users": "Für alle Benutzer zugänglich",
|
||||
"Account": "Konto",
|
||||
"Account Activation Pending": "Kontoaktivierung ausstehend",
|
||||
"Accurate information": "Präzise Information(en)",
|
||||
"Actions": "Aktionen",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Aktivieren Sie diesen Befehl, indem Sie \"/{{COMMAND}}\" in die Chat-Eingabe eingeben.",
|
||||
"Active Users": "Aktive Benutzer",
|
||||
"Add": "Hinzufügen",
|
||||
"Add a model ID": "",
|
||||
"Add a model ID": "Modell-ID hinzufügen",
|
||||
"Add a short description about what this model does": "Fügen Sie eine kurze Beschreibung über dieses Modell hinzu",
|
||||
"Add a tag": "Tag hinzufügen",
|
||||
"Add Arena Model": "Arena-Modell hinzufügen",
|
||||
"Add Connection": "",
|
||||
"Add Connection": "Verbindung hinzufügen",
|
||||
"Add Content": "Inhalt hinzufügen",
|
||||
"Add content here": "Inhalt hier hinzufügen",
|
||||
"Add custom prompt": "Benutzerdefinierten Prompt hinzufügen",
|
||||
"Add Files": "Dateien hinzufügen",
|
||||
"Add Group": "",
|
||||
"Add Group": "Gruppe hinzufügen",
|
||||
"Add Memory": "Erinnerung hinzufügen",
|
||||
"Add Model": "Modell hinzufügen",
|
||||
"Add Tag": "Tag hinzufügen",
|
||||
"Add Tags": "Tags hinzufügen",
|
||||
"Add text content": "Textinhalt hinzufügen",
|
||||
"Add User": "Benutzer hinzufügen",
|
||||
"Add User Group": "",
|
||||
"Add User Group": "Benutzergruppe hinzufügen",
|
||||
"Adjusting these settings will apply changes universally to all users.": "Das Anpassen dieser Einstellungen wird Änderungen universell auf alle Benutzer anwenden.",
|
||||
"admin": "Administrator",
|
||||
"Admin": "Administrator",
|
||||
@@ -48,18 +49,18 @@
|
||||
"Advanced Params": "Erweiterte Parameter",
|
||||
"All chats": "Alle Unterhaltungen",
|
||||
"All Documents": "Alle Dokumente",
|
||||
"All models deleted successfully": "",
|
||||
"Allow Chat Delete": "",
|
||||
"All models deleted successfully": "Alle Modelle erfolgreich gelöscht",
|
||||
"Allow Chat Delete": "Löschen von Unterhaltungen erlauben",
|
||||
"Allow Chat Deletion": "Löschen von Unterhaltungen erlauben",
|
||||
"Allow Chat Edit": "",
|
||||
"Allow File Upload": "",
|
||||
"Allow Chat Edit": "Bearbeiten von Unterhaltungen erlauben",
|
||||
"Allow File Upload": "Hochladen von Dateien erlauben",
|
||||
"Allow non-local voices": "Nicht-lokale Stimmen erlauben",
|
||||
"Allow Temporary Chat": "Temporäre Unterhaltungen erlauben",
|
||||
"Allow User Location": "Standort freigeben",
|
||||
"Allow Voice Interruption in Call": "Unterbrechung durch Stimme im Anruf zulassen",
|
||||
"Already have an account?": "Haben Sie bereits einen Account?",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "",
|
||||
"Amazing": "",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "Alternative zu top_p und zielt darauf ab, ein Gleichgewicht zwischen Qualität und Vielfalt zu gewährleisten. Der Parameter p repräsentiert die Mindestwahrscheinlichkeit für ein Token, um berücksichtigt zu werden, relativ zur Wahrscheinlichkeit des wahrscheinlichsten Tokens. Zum Beispiel, bei p=0.05 und das wahrscheinlichste Token hat eine Wahrscheinlichkeit von 0.9, werden Logits mit einem Wert von weniger als 0.045 herausgefiltert. (Standard: 0.0)",
|
||||
"Amazing": "Fantastisch",
|
||||
"an assistant": "ein Assistent",
|
||||
"and": "und",
|
||||
"and {{COUNT}} more": "und {{COUNT}} mehr",
|
||||
@@ -68,15 +69,15 @@
|
||||
"API Key": "API-Schlüssel",
|
||||
"API Key created.": "API-Schlüssel erstellt.",
|
||||
"API keys": "API-Schlüssel",
|
||||
"Application DN": "",
|
||||
"Application DN Password": "",
|
||||
"applies to all users with the \"user\" role": "",
|
||||
"Application DN": "Anwendungs-DN",
|
||||
"Application DN Password": "Anwendungs-DN-Passwort",
|
||||
"applies to all users with the \"user\" role": "gilt für alle Benutzer mit der Rolle \"Benutzer\"",
|
||||
"April": "April",
|
||||
"Archive": "Archivieren",
|
||||
"Archive All Chats": "Alle Unterhaltungen archivieren",
|
||||
"Archived Chats": "Archivierte Unterhaltungen",
|
||||
"archived-chat-export": "",
|
||||
"Are you sure you want to unarchive all archived chats?": "",
|
||||
"archived-chat-export": "archivierter-chat-export",
|
||||
"Are you sure you want to unarchive all archived chats?": "Sind Sie sicher, dass Sie alle archivierten Unterhaltungen wiederherstellen möchten?",
|
||||
"Are you sure?": "Sind Sie sicher?",
|
||||
"Arena Models": "Arena-Modelle",
|
||||
"Artifacts": "Artefakte",
|
||||
@@ -84,19 +85,21 @@
|
||||
"Assistant": "Assistent",
|
||||
"Attach file": "Datei anhängen",
|
||||
"Attention to detail": "Aufmerksamkeit für Details",
|
||||
"Attribute for Username": "",
|
||||
"Attribute for Username": "Attribut für Benutzername",
|
||||
"Audio": "Audio",
|
||||
"August": "August",
|
||||
"Authenticate": "",
|
||||
"Authenticate": "Authentifizieren",
|
||||
"Auto-Copy Response to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
|
||||
"Auto-playback response": "Antwort automatisch abspielen",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111-API-Authentifizierungszeichenfolge",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111-Basis-URL",
|
||||
"AUTOMATIC1111 Base URL is required.": "AUTOMATIC1111-Basis-URL ist erforderlich.",
|
||||
"Available list": "Verfügbare Liste",
|
||||
"available!": "Verfügbar!",
|
||||
"Awful": "",
|
||||
"Awful": "Schrecklich",
|
||||
"Azure AI Speech": "Azure AI Speech",
|
||||
"Azure Region": "Azure-Region",
|
||||
"Back": "Zurück",
|
||||
@@ -106,27 +109,28 @@
|
||||
"Batch Size (num_batch)": "Stapelgröße (num_batch)",
|
||||
"before": "bereits geteilt",
|
||||
"Being lazy": "Faulheit",
|
||||
"Bing Search V7 Endpoint": "",
|
||||
"Bing Search V7 Subscription Key": "",
|
||||
"Bing Search V7 Endpoint": "Bing Search V7-Endpunkt",
|
||||
"Bing Search V7 Subscription Key": "Bing Search V7-Abonnement-Schlüssel",
|
||||
"Brave Search API Key": "Brave Search API-Schlüssel",
|
||||
"By {{name}}": "",
|
||||
"By {{name}}": "Von {{name}}",
|
||||
"Bypass SSL verification for Websites": "SSL-Überprüfung für Webseiten umgehen",
|
||||
"Call": "Anrufen",
|
||||
"Call feature is not supported when using Web STT engine": "Die Anruffunktion wird nicht unterstützt, wenn die Web-STT-Engine verwendet wird.",
|
||||
"Camera": "Kamera",
|
||||
"Cancel": "Abbrechen",
|
||||
"Capabilities": "Fähigkeiten",
|
||||
"Certificate Path": "",
|
||||
"Certificate Path": "Zertifikatpfad",
|
||||
"Change Password": "Passwort ändern",
|
||||
"Character": "Zeichen",
|
||||
"Chart new frontiers": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "Neue Wege beschreiten",
|
||||
"Chat": "Gespräch",
|
||||
"Chat Background Image": "Hintergrundbild des Unterhaltungsfensters",
|
||||
"Chat Bubble UI": "Chat Bubble UI",
|
||||
"Chat Controls": "Chat-Steuerung",
|
||||
"Chat direction": "Textrichtung",
|
||||
"Chat Overview": "Unterhaltungsübersicht",
|
||||
"Chat Permissions": "",
|
||||
"Chat Permissions": "Unterhaltungsberechtigungen",
|
||||
"Chat Tags Auto-Generation": "Automatische Generierung von Unterhaltungstags",
|
||||
"Chats": "Unterhaltungen",
|
||||
"Check Again": "Erneut überprüfen",
|
||||
@@ -136,11 +140,11 @@
|
||||
"Chunk Overlap": "Blocküberlappung",
|
||||
"Chunk Params": "Blockparameter",
|
||||
"Chunk Size": "Blockgröße",
|
||||
"Ciphers": "",
|
||||
"Ciphers": "Verschlüsselungen",
|
||||
"Citation": "Zitate",
|
||||
"Clear memory": "Alle Erinnerungen entfernen",
|
||||
"click here": "",
|
||||
"Click here for filter guides.": "",
|
||||
"click here": "hier klicken",
|
||||
"Click here for filter guides.": "Klicken Sie hier für Filteranleitungen.",
|
||||
"Click here for help.": "Klicken Sie hier für Hilfe.",
|
||||
"Click here to": "Klicken Sie hier, um",
|
||||
"Click here to download user import template file.": "Klicken Sie hier, um die Vorlage für den Benutzerimport herunterzuladen.",
|
||||
@@ -157,7 +161,7 @@
|
||||
"Code execution": "Codeausführung",
|
||||
"Code formatted successfully": "Code erfolgreich formatiert",
|
||||
"Collection": "Kollektion",
|
||||
"Color": "",
|
||||
"Color": "Farbe",
|
||||
"ComfyUI": "ComfyUI",
|
||||
"ComfyUI Base URL": "ComfyUI-Basis-URL",
|
||||
"ComfyUI Base URL is required.": "ComfyUI-Basis-URL wird benötigt.",
|
||||
@@ -166,7 +170,8 @@
|
||||
"Command": "Befehl",
|
||||
"Completions": "Vervollständigungen",
|
||||
"Concurrent Requests": "Anzahl gleichzeitiger Anfragen",
|
||||
"Configure": "",
|
||||
"Configure": "Konfigurieren",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Bestätigen",
|
||||
"Confirm Password": "Passwort bestätigen",
|
||||
"Confirm your action": "Bestätigen Sie Ihre Aktion.",
|
||||
@@ -177,11 +182,11 @@
|
||||
"Context Length": "Kontextlänge",
|
||||
"Continue Response": "Antwort fortsetzen",
|
||||
"Continue with {{provider}}": "Mit {{provider}} fortfahren",
|
||||
"Continue with Email": "",
|
||||
"Continue with LDAP": "",
|
||||
"Continue with Email": "Mit Email fortfahren",
|
||||
"Continue with LDAP": "Mit LDAP fortfahren",
|
||||
"Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "Kontrollieren Sie, wie Nachrichtentext für TTS-Anfragen aufgeteilt wird. 'Punctuation' teilt in Sätze auf, 'paragraphs' teilt in Absätze auf und 'none' behält die Nachricht als einzelnen String.",
|
||||
"Controls": "Steuerung",
|
||||
"Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "",
|
||||
"Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "Kontrolliert das Gleichgewicht zwischen Kohärenz und Vielfalt des Ausgabetextes. Ein niedrigerer Wert führt zu fokussierterem und kohärenterem Text. (Standard: 5.0)",
|
||||
"Copied": "Kopiert",
|
||||
"Copied shared chat URL to clipboard!": "Freigabelink in die Zwischenablage kopiert!",
|
||||
"Copied to clipboard": "In die Zwischenablage kopiert",
|
||||
@@ -191,12 +196,12 @@
|
||||
"Copy Link": "Link kopieren",
|
||||
"Copy to clipboard": "In die Zwischenablage kopieren",
|
||||
"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
|
||||
"Create": "",
|
||||
"Create a knowledge base": "",
|
||||
"Create a model": "Ein Modell erstellen",
|
||||
"Create": "Erstellen",
|
||||
"Create a knowledge base": "Wissensspeicher erstellen",
|
||||
"Create a model": "Modell erstellen",
|
||||
"Create Account": "Konto erstellen",
|
||||
"Create Admin Account": "",
|
||||
"Create Group": "",
|
||||
"Create Admin Account": "Administrator-Account erstellen",
|
||||
"Create Group": "Gruppe erstellen",
|
||||
"Create Knowledge": "Wissen erstellen",
|
||||
"Create new key": "Neuen Schlüssel erstellen",
|
||||
"Create new secret key": "Neuen API-Schlüssel erstellen",
|
||||
@@ -215,16 +220,17 @@
|
||||
"Default (SentenceTransformers)": "Standard (SentenceTransformers)",
|
||||
"Default Model": "Standardmodell",
|
||||
"Default model updated": "Standardmodell aktualisiert",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Models": "",
|
||||
"Default permissions": "Standardberechtigungen",
|
||||
"Default permissions updated successfully": "Standardberechtigungen erfolgreich aktualisiert",
|
||||
"Default Prompt Suggestions": "Prompt-Vorschläge",
|
||||
"Default to 389 or 636 if TLS is enabled": "",
|
||||
"Default to ALL": "",
|
||||
"Default to 389 or 636 if TLS is enabled": "Standardmäßig auf 389 oder 636 setzen, wenn TLS aktiviert ist",
|
||||
"Default to ALL": "Standardmäßig auf ALLE setzen",
|
||||
"Default User Role": "Standardbenutzerrolle",
|
||||
"Delete": "Löschen",
|
||||
"Delete a model": "Ein Modell löschen",
|
||||
"Delete All Chats": "Alle Unterhaltungen löschen",
|
||||
"Delete All Models": "",
|
||||
"Delete All Models": "Alle Modelle löschen",
|
||||
"Delete chat": "Unterhaltung löschen",
|
||||
"Delete Chat": "Unterhaltung löschen",
|
||||
"Delete chat?": "Unterhaltung löschen?",
|
||||
@@ -236,8 +242,8 @@
|
||||
"Delete User": "Benutzer löschen",
|
||||
"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gelöscht",
|
||||
"Deleted {{name}}": "{{name}} gelöscht",
|
||||
"Deleted User": "",
|
||||
"Describe your knowledge base and objectives": "",
|
||||
"Deleted User": "Benutzer gelöscht",
|
||||
"Describe your knowledge base and objectives": "Beschreibe deinen Wissensspeicher und deine Ziele",
|
||||
"Description": "Beschreibung",
|
||||
"Didn't fully follow instructions": "Nicht genau den Answeisungen gefolgt",
|
||||
"Disabled": "Deaktiviert",
|
||||
@@ -245,17 +251,17 @@
|
||||
"Discover a model": "Entdecken Sie weitere Modelle",
|
||||
"Discover a prompt": "Entdecken Sie weitere Prompts",
|
||||
"Discover a tool": "Entdecken Sie weitere Werkzeuge",
|
||||
"Discover wonders": "",
|
||||
"Discover wonders": "Entdecken Sie Wunder",
|
||||
"Discover, download, and explore custom functions": "Entdecken und beziehen Sie benutzerdefinierte Funktionen",
|
||||
"Discover, download, and explore custom prompts": "Entdecken und beziehen Sie benutzerdefinierte Prompts",
|
||||
"Discover, download, and explore custom tools": "Entdecken und beziehen Sie benutzerdefinierte Werkzeuge",
|
||||
"Discover, download, and explore model presets": "Entdecken und beziehen Sie benutzerdefinierte Modellvorlagen",
|
||||
"Dismissible": "ausblendbar",
|
||||
"Display": "",
|
||||
"Display": "Anzeigen",
|
||||
"Display Emoji in Call": "Emojis im Anruf anzeigen",
|
||||
"Display the username instead of You in the Chat": "Soll \"Sie\" durch Ihren Benutzernamen ersetzt werden?",
|
||||
"Displays citations in the response": "",
|
||||
"Dive into knowledge": "",
|
||||
"Displays citations in the response": "Zeigt Zitate in der Antwort an",
|
||||
"Dive into knowledge": "Tauchen Sie in das Wissen ein",
|
||||
"Do not install functions from sources you do not fully trust.": "Installieren Sie keine Funktionen aus Quellen, denen Sie nicht vollständig vertrauen.",
|
||||
"Do not install tools from sources you do not fully trust.": "Installieren Sie keine Werkzeuge aus Quellen, denen Sie nicht vollständig vertrauen.",
|
||||
"Document": "Dokument",
|
||||
@@ -270,53 +276,51 @@
|
||||
"Download": "Exportieren",
|
||||
"Download canceled": "Exportierung abgebrochen",
|
||||
"Download Database": "Datenbank exportieren",
|
||||
"Drag and drop a file to upload or select a file to view": "",
|
||||
"Drag and drop a file to upload or select a file to view": "Ziehen Sie eine Datei zum Hochladen oder wählen Sie eine Datei zum Anzeigen aus",
|
||||
"Draw": "Zeichnen",
|
||||
"Drop any files here to add to the conversation": "Ziehen Sie beliebige Dateien hierher, um sie der Unterhaltung hinzuzufügen",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z. B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.",
|
||||
"e.g. A filter to remove profanity from text": "",
|
||||
"e.g. My Filter": "",
|
||||
"e.g. My Tools": "",
|
||||
"e.g. my_filter": "",
|
||||
"e.g. my_tools": "",
|
||||
"e.g. Tools for performing various operations": "",
|
||||
"e.g. A filter to remove profanity from text": "z. B. Ein Filter, um Schimpfwörter aus Text zu entfernen",
|
||||
"e.g. My Filter": "z. B. Mein Filter",
|
||||
"e.g. My Tools": "z. B. Meine Werkzeuge",
|
||||
"e.g. my_filter": "z. B. mein_filter",
|
||||
"e.g. my_tools": "z. B. meine_werkzeuge",
|
||||
"e.g. Tools for performing various operations": "z. B. Werkzeuge für verschiedene Operationen",
|
||||
"Edit": "Bearbeiten",
|
||||
"Edit Arena Model": "Arena-Modell bearbeiten",
|
||||
"Edit Connection": "",
|
||||
"Edit Default Permissions": "",
|
||||
"Edit Connection": "Verbindung bearbeiten",
|
||||
"Edit Default Permissions": "Standardberechtigungen bearbeiten",
|
||||
"Edit Memory": "Erinnerungen bearbeiten",
|
||||
"Edit User": "Benutzer bearbeiten",
|
||||
"Edit User Group": "",
|
||||
"Edit User Group": "Benutzergruppe bearbeiten",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
"Email": "E-Mail",
|
||||
"Embark on adventures": "",
|
||||
"Embark on adventures": "Abenteuer erleben",
|
||||
"Embedding Batch Size": "Embedding-Stapelgröße",
|
||||
"Embedding Model": "Embedding-Modell",
|
||||
"Embedding Model Engine": "Embedding-Modell-Engine",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding-Modell auf \"{{embedding_model}}\" gesetzt",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable API Key Auth": "API-Schlüssel-Authentifizierung aktivieren",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Community-Freigabe aktivieren",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Aktiviere Memory Locking (mlock), um zu verhindern, dass Modelldaten aus dem RAM ausgelagert werden. Diese Option sperrt die Arbeitsseiten des Modells im RAM, um sicherzustellen, dass sie nicht auf die Festplatte ausgelagert werden. Dies kann die Leistung verbessern, indem Page Faults vermieden und ein schneller Datenzugriff sichergestellt werden.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Aktiviere Memory Mapping (mmap), um Modelldaten zu laden. Diese Option ermöglicht es dem System, den Festplattenspeicher als Erweiterung des RAM zu verwenden, indem Festplattendateien so behandelt werden, als ob sie im RAM wären. Dies kann die Modellleistung verbessern, indem ein schnellerer Datenzugriff ermöglicht wird. Es kann jedoch nicht auf allen Systemen korrekt funktionieren und einen erheblichen Teil des Festplattenspeichers beanspruchen.",
|
||||
"Enable Message Rating": "Nachrichtenbewertung aktivieren",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Mirostat Sampling zur Steuerung der Perplexität aktivieren. (Standard: 0, 0 = Deaktiviert, 1 = Mirostat, 2 = Mirostat 2.0)",
|
||||
"Enable New Sign Ups": "Registrierung erlauben",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Websuche aktivieren",
|
||||
"Enable Web Search Query Generation": "Websuchanfragen-Generierung aktivieren",
|
||||
"Enabled": "Aktiviert",
|
||||
"Engine": "Engine",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Stellen Sie sicher, dass Ihre CSV-Datei 4 Spalten in dieser Reihenfolge enthält: Name, E-Mail, Passwort, Rolle.",
|
||||
"Enter {{role}} message here": "Geben Sie die {{role}}-Nachricht hier ein",
|
||||
"Enter a detail about yourself for your LLMs to recall": "Geben Sie ein Detail über sich selbst ein, das Ihre Sprachmodelle (LLMs) sich merken sollen",
|
||||
"Enter api auth string (e.g. username:password)": "Geben Sie die API-Authentifizierungszeichenfolge ein (z. B. Benutzername:Passwort)",
|
||||
"Enter Application DN": "",
|
||||
"Enter Application DN Password": "",
|
||||
"Enter Bing Search V7 Endpoint": "",
|
||||
"Enter Bing Search V7 Subscription Key": "",
|
||||
"Enter Application DN": "Geben Sie die Anwendungs-DN ein",
|
||||
"Enter Application DN Password": "Geben Sie das Anwendungs-DN-Passwort ein",
|
||||
"Enter Bing Search V7 Endpoint": "Geben Sie den Bing Search V7-Endpunkt ein",
|
||||
"Enter Bing Search V7 Subscription Key": "Geben Sie den Bing Search V7-Abonnement-Schlüssel ein",
|
||||
"Enter Brave Search API Key": "Geben Sie den Brave Search API-Schlüssel ein",
|
||||
"Enter certificate path": "",
|
||||
"Enter certificate path": "Geben Sie den Zertifikatpfad ein",
|
||||
"Enter CFG Scale (e.g. 7.0)": "Geben Sie die CFG-Skala ein (z. B. 7.0)",
|
||||
"Enter Chunk Overlap": "Geben Sie die Blocküberlappung ein",
|
||||
"Enter Chunk Size": "Geben Sie die Blockgröße ein",
|
||||
@@ -325,25 +329,26 @@
|
||||
"Enter Google PSE API Key": "Geben Sie den Google PSE-API-Schlüssel ein",
|
||||
"Enter Google PSE Engine Id": "Geben Sie die Google PSE-Engine-ID ein",
|
||||
"Enter Image Size (e.g. 512x512)": "Geben Sie die Bildgröße ein (z. B. 512x512)",
|
||||
"Enter Jina API Key": "",
|
||||
"Enter Jina API Key": "Geben Sie den Jina-API-Schlüssel ein",
|
||||
"Enter language codes": "Geben Sie die Sprachcodes ein",
|
||||
"Enter Model ID": "Geben Sie die Modell-ID ein",
|
||||
"Enter model tag (e.g. {{modelTag}})": "Gebn Sie den Model-Tag ein",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter model tag (e.g. {{modelTag}})": "Geben Sie den Model-Tag ein",
|
||||
"Enter Mojeek Search API Key": "Geben Sie den Mojeek Search API-Schlüssel ein",
|
||||
"Enter Number of Steps (e.g. 50)": "Geben Sie die Anzahl an Schritten ein (z. B. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Geben Sie den Sampler ein (z. B. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Geben Sie den Scheduler ein (z. B. Karras)",
|
||||
"Enter Score": "Punktzahl eingeben",
|
||||
"Enter SearchApi API Key": "Geben Sie den SearchApi-API-Schlüssel ein",
|
||||
"Enter SearchApi Engine": "Geben Sie die SearchApi-Engine ein",
|
||||
"Enter Searxng Query URL": "Geben Sie die Searxng-Abfrage-URL ein",
|
||||
"Enter Seed": "",
|
||||
"Enter Seed": "Geben Sie den Seed ein",
|
||||
"Enter Serper API Key": "Geben Sie den Serper-API-Schlüssel ein",
|
||||
"Enter Serply API Key": "Geben Sie den",
|
||||
"Enter Serpstack API Key": "Geben Sie den Serpstack-API-Schlüssel ein",
|
||||
"Enter server host": "",
|
||||
"Enter server label": "",
|
||||
"Enter server port": "",
|
||||
"Enter server host": "Geben Sie den Server-Host ein",
|
||||
"Enter server label": "Geben Sie das Server-Label ein",
|
||||
"Enter server port": "Geben Sie den Server-Port ein",
|
||||
"Enter stop sequence": "Stop-Sequenz eingeben",
|
||||
"Enter system prompt": "Systemprompt eingeben",
|
||||
"Enter Tavily API Key": "Geben Sie den Tavily-API-Schlüssel ein",
|
||||
@@ -356,38 +361,39 @@
|
||||
"Enter your message": "Geben Sie Ihre Nachricht ein",
|
||||
"Enter Your Password": "Geben Sie Ihr Passwort ein",
|
||||
"Enter Your Role": "Geben Sie Ihre Rolle ein",
|
||||
"Enter Your Username": "",
|
||||
"Enter Your Username": "Geben Sie Ihren Benutzernamen ein",
|
||||
"Error": "Fehler",
|
||||
"ERROR": "FEHLER",
|
||||
"Evaluations": "Evaluationen",
|
||||
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "",
|
||||
"Example: ALL": "",
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "Beispiel: (&(objectClass=inetOrgPerson)(uid=%s))",
|
||||
"Example: ALL": "Beispiel: ALL",
|
||||
"Example: ou=users,dc=foo,dc=example": "Beispiel: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Beispiel: sAMAccountName or uid or userPrincipalName",
|
||||
"Exclude": "Ausschließen",
|
||||
"Experimental": "Experimentell",
|
||||
"Explore the cosmos": "",
|
||||
"Explore the cosmos": "Erforschen Sie das Universum",
|
||||
"Export": "Exportieren",
|
||||
"Export All Archived Chats": "",
|
||||
"Export All Archived Chats": "Alle archivierten Unterhaltungen exportieren",
|
||||
"Export All Chats (All Users)": "Alle Unterhaltungen exportieren (alle Benutzer)",
|
||||
"Export chat (.json)": "Unterhaltung exportieren (.json)",
|
||||
"Export Chats": "Unterhaltungen exportieren",
|
||||
"Export Config to JSON File": "Exportiere Konfiguration als JSON-Datei",
|
||||
"Export Functions": "Funktionen exportieren",
|
||||
"Export Models": "Modelle exportieren",
|
||||
"Export Presets": "",
|
||||
"Export Presets": "Voreinstellungen exportieren",
|
||||
"Export Prompts": "Prompts exportieren",
|
||||
"Export to CSV": "",
|
||||
"Export to CSV": "Als CSV exportieren",
|
||||
"Export Tools": "Werkzeuge exportieren",
|
||||
"External Models": "Externe Modelle",
|
||||
"Failed to add file.": "Fehler beim Hinzufügen der Datei.",
|
||||
"Failed to create API Key.": "Fehler beim Erstellen des API-Schlüssels.",
|
||||
"Failed to read clipboard contents": "Fehler beim Abruf der Zwischenablage",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Fehler beim Aktualisieren der Einstellungen",
|
||||
"Failed to upload file.": "Fehler beim Hochladen der Datei.",
|
||||
"February": "Februar",
|
||||
"Feedback History": "Feedback-Verlauf",
|
||||
"Feedbacks": "",
|
||||
"Feedbacks": "Feedbacks",
|
||||
"Feel free to add specific details": "Fühlen Sie sich frei, spezifische Details hinzuzufügen",
|
||||
"File": "Datei",
|
||||
"File added successfully.": "Datei erfolgreich hinzugefügt.",
|
||||
@@ -408,18 +414,18 @@
|
||||
"Folder name cannot be empty.": "Ordnername darf nicht leer sein.",
|
||||
"Folder name updated successfully": "Ordnername erfolgreich aktualisiert",
|
||||
"Followed instructions perfectly": "Anweisungen perfekt befolgt",
|
||||
"Forge new paths": "",
|
||||
"Forge new paths": "Neue Wege beschreiten",
|
||||
"Form": "Formular",
|
||||
"Format your variables using brackets like this:": "Formatieren Sie Ihre Variablen mit Klammern, wie hier:",
|
||||
"Frequency Penalty": "Frequenzstrafe",
|
||||
"Function": "Funktion",
|
||||
"Function created successfully": "Funktion erfolgreich erstellt",
|
||||
"Function deleted successfully": "Funktion erfolgreich gelöscht",
|
||||
"Function Description": "",
|
||||
"Function ID": "",
|
||||
"Function Description": "Funktionsbeschreibung",
|
||||
"Function ID": "Funktions-ID",
|
||||
"Function is now globally disabled": "Die Funktion ist jetzt global deaktiviert",
|
||||
"Function is now globally enabled": "Die Funktion ist jetzt global aktiviert",
|
||||
"Function Name": "",
|
||||
"Function Name": "Funktionsname",
|
||||
"Function updated successfully": "Funktion erfolgreich aktualisiert",
|
||||
"Functions": "Funktionen",
|
||||
"Functions allow arbitrary code execution": "Funktionen ermöglichen die Ausführung beliebigen Codes",
|
||||
@@ -430,34 +436,34 @@
|
||||
"Generate Image": "Bild erzeugen",
|
||||
"Generating search query": "Suchanfrage wird erstellt",
|
||||
"Generation Info": "Generierungsinformationen",
|
||||
"Get started": "",
|
||||
"Get started with {{WEBUI_NAME}}": "",
|
||||
"Get started": "Loslegen",
|
||||
"Get started with {{WEBUI_NAME}}": "Loslegen mit {{WEBUI_NAME}}",
|
||||
"Global": "Global",
|
||||
"Good Response": "Gute Antwort",
|
||||
"Google PSE API Key": "Google PSE-API-Schlüssel",
|
||||
"Google PSE Engine Id": "Google PSE-Engine-ID",
|
||||
"Group created successfully": "",
|
||||
"Group deleted successfully": "",
|
||||
"Group Description": "",
|
||||
"Group Name": "",
|
||||
"Group updated successfully": "",
|
||||
"Groups": "",
|
||||
"Group created successfully": "Gruppe erfolgreich erstellt",
|
||||
"Group deleted successfully": "Gruppe erfolgreich gelöscht",
|
||||
"Group Description": "Gruppenbeschreibung",
|
||||
"Group Name": "Gruppenname",
|
||||
"Group updated successfully": "Gruppe erfolgreich aktualisiert",
|
||||
"Groups": "Gruppen",
|
||||
"h:mm a": "h:mm a",
|
||||
"Haptic Feedback": "Haptisches Feedback",
|
||||
"has no conversations.": "hat keine Unterhaltungen.",
|
||||
"Hello, {{name}}": "Hallo, {{name}}",
|
||||
"Help": "Hilfe",
|
||||
"Help us create the best community leaderboard by sharing your feedback history!": "Helfen Sie uns, die beste Community-Bestenliste zu erstellen, indem Sie Ihren Feedback-Verlauf teilen!",
|
||||
"Hex Color": "",
|
||||
"Hex Color - Leave empty for default color": "",
|
||||
"Hex Color": "Hex-Farbe",
|
||||
"Hex Color - Leave empty for default color": "Hex-Farbe - Leer lassen für Standardfarbe",
|
||||
"Hide": "Verbergen",
|
||||
"Host": "",
|
||||
"Host": "Host",
|
||||
"How can I help you today?": "Wie kann ich Ihnen heute helfen?",
|
||||
"How would you rate this response?": "",
|
||||
"How would you rate this response?": "Wie würden Sie diese Antwort bewerten?",
|
||||
"Hybrid Search": "Hybride Suche",
|
||||
"I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Ich bestätige, dass ich gelesen habe und die Auswirkungen meiner Aktion verstehe. Mir sind die Risiken bewusst, die mit der Ausführung beliebigen Codes verbunden sind, und ich habe die Vertrauenswürdigkeit der Quelle überprüft.",
|
||||
"ID": "ID",
|
||||
"Ignite curiosity": "",
|
||||
"Ignite curiosity": "Neugier entfachen",
|
||||
"Image Generation (Experimental)": "Bildgenerierung (experimentell)",
|
||||
"Image Generation Engine": "Bildgenerierungs-Engine",
|
||||
"Image Settings": "Bildeinstellungen",
|
||||
@@ -466,13 +472,13 @@
|
||||
"Import Config from JSON File": "Konfiguration aus JSON-Datei importieren",
|
||||
"Import Functions": "Funktionen importieren",
|
||||
"Import Models": "Modelle importieren",
|
||||
"Import Presets": "",
|
||||
"Import Presets": "Voreinstellungen importieren",
|
||||
"Import Prompts": "Prompts importieren",
|
||||
"Import Tools": "Werkzeuge importieren",
|
||||
"Include": "Einschließen",
|
||||
"Include `--api-auth` flag when running stable-diffusion-webui": "Fügen Sie beim Ausführen von stable-diffusion-webui die Option `--api-auth` hinzu",
|
||||
"Include `--api` flag when running stable-diffusion-webui": "Fügen Sie beim Ausführen von stable-diffusion-webui die Option `--api` hinzu",
|
||||
"Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1)": "",
|
||||
"Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1)": "Beeinflusst, wie schnell der Algorithmus auf Feedback aus dem generierten Text reagiert. Eine niedrigere Lernrate führt zu langsameren Anpassungen, während eine höhere Lernrate den Algorithmus reaktionsschneller macht. (Standard: 0.1)",
|
||||
"Info": "Info",
|
||||
"Input commands": "Eingabebefehle",
|
||||
"Install from Github URL": "Installiere von der Github-URL",
|
||||
@@ -481,7 +487,7 @@
|
||||
"Invalid file format.": "Ungültiges Dateiformat.",
|
||||
"Invalid Tag": "Ungültiger Tag",
|
||||
"January": "Januar",
|
||||
"Jina API Key": "",
|
||||
"Jina API Key": "Jina-API-Schlüssel",
|
||||
"join our Discord for help.": "Treten Sie unserem Discord bei, um Hilfe zu erhalten.",
|
||||
"JSON": "JSON",
|
||||
"JSON Preview": "JSON-Vorschau",
|
||||
@@ -490,31 +496,31 @@
|
||||
"JWT Expiration": "JWT-Ablauf",
|
||||
"JWT Token": "JWT-Token",
|
||||
"Keep Alive": "Verbindung aufrechterhalten",
|
||||
"Key": "",
|
||||
"Key": "Schlüssel",
|
||||
"Keyboard shortcuts": "Tastenkombinationen",
|
||||
"Knowledge": "Wissen",
|
||||
"Knowledge Access": "",
|
||||
"Knowledge Access": "Wissenszugriff",
|
||||
"Knowledge created successfully.": "Wissen erfolgreich erstellt.",
|
||||
"Knowledge deleted successfully.": "Wissen erfolgreich gelöscht.",
|
||||
"Knowledge reset successfully.": "Wissen erfolgreich zurückgesetzt.",
|
||||
"Knowledge updated successfully": "Wissen erfolgreich aktualisiert",
|
||||
"Label": "",
|
||||
"Label": "Label",
|
||||
"Landing Page Mode": "Startseitenmodus",
|
||||
"Language": "Sprache",
|
||||
"Last Active": "Zuletzt aktiv",
|
||||
"Last Modified": "Zuletzt bearbeitet",
|
||||
"LDAP": "",
|
||||
"LDAP server updated": "",
|
||||
"LDAP": "LDAP",
|
||||
"LDAP server updated": "LDAP-Server aktualisiert",
|
||||
"Leaderboard": "Bestenliste",
|
||||
"Leave empty for unlimited": "Leer lassen für unbegrenzt",
|
||||
"Leave empty to include all models from \"{{URL}}/api/tags\" endpoint": "",
|
||||
"Leave empty to include all models from \"{{URL}}/models\" endpoint": "",
|
||||
"Leave empty to include all models from \"{{URL}}/api/tags\" endpoint": "Leer lassen, um alle Modelle vom \"{{URL}}/api/tags\"-Endpunkt einzuschließen",
|
||||
"Leave empty to include all models from \"{{URL}}/models\" endpoint": "Leer lassen, um alle Modelle vom \"{{URL}}/models\"-Endpunkt einzuschließen",
|
||||
"Leave empty to include all models or select specific models": "Leer lassen, um alle Modelle einzuschließen oder spezifische Modelle auszuwählen",
|
||||
"Leave empty to use the default prompt, or enter a custom prompt": "Leer lassen, um den Standardprompt zu verwenden, oder geben Sie einen benutzerdefinierten Prompt ein",
|
||||
"Light": "Hell",
|
||||
"Listening...": "Höre zu...",
|
||||
"LLMs can make mistakes. Verify important information.": "LLMs können Fehler machen. Überprüfe wichtige Informationen.",
|
||||
"Local": "",
|
||||
"Local": "Lokal",
|
||||
"Local Models": "Lokale Modelle",
|
||||
"Lost": "Verloren",
|
||||
"LTR": "LTR",
|
||||
@@ -523,9 +529,9 @@
|
||||
"Make sure to export a workflow.json file as API format from ComfyUI.": "Stellen Sie sicher, dass sie eine workflow.json-Datei im API-Format von ComfyUI exportieren.",
|
||||
"Manage": "Verwalten",
|
||||
"Manage Arena Models": "Arena-Modelle verwalten",
|
||||
"Manage Ollama": "",
|
||||
"Manage Ollama API Connections": "",
|
||||
"Manage OpenAI API Connections": "",
|
||||
"Manage Ollama": "Ollama verwalten",
|
||||
"Manage Ollama API Connections": "Ollama-API-Verbindungen verwalten",
|
||||
"Manage OpenAI API Connections": "OpenAI-API-Verbindungen verwalten",
|
||||
"Manage Pipelines": "Pipelines verwalten",
|
||||
"March": "März",
|
||||
"Max Tokens (num_predict)": "Maximale Tokenanzahl (num_predict)",
|
||||
@@ -559,22 +565,23 @@
|
||||
"Model accepts image inputs": "Modell akzeptiert Bileingaben",
|
||||
"Model created successfully!": "Modell erfolgreich erstellt!",
|
||||
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Modell-Dateisystempfad erkannt. Modellkurzname ist für das Update erforderlich, Fortsetzung nicht möglich.",
|
||||
"Model Filtering": "",
|
||||
"Model Filtering": "Modellfilterung",
|
||||
"Model ID": "Modell-ID",
|
||||
"Model IDs": "",
|
||||
"Model IDs": "Modell-IDs",
|
||||
"Model Name": "Modell-Name",
|
||||
"Model not selected": "Modell nicht ausgewählt",
|
||||
"Model Params": "Modell-Params",
|
||||
"Model Permissions": "",
|
||||
"Model Params": "Modell-Parameter",
|
||||
"Model Permissions": "Modellberechtigungen",
|
||||
"Model updated successfully": "Modell erfolgreich aktualisiert",
|
||||
"Modelfile Content": "Modelfile-Inhalt",
|
||||
"Models": "Modelle",
|
||||
"Models Access": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"Models Access": "Modell-Zugriff",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "Mojeek Search API-Schlüssel",
|
||||
"more": "mehr",
|
||||
"More": "Mehr",
|
||||
"Name": "Name",
|
||||
"Name your knowledge base": "",
|
||||
"Name your knowledge base": "Benennen Sie Ihren Wissensspeicher",
|
||||
"New Chat": "Neue Unterhaltung",
|
||||
"New folder": "Neuer Ordner",
|
||||
"New Password": "Neues Passwort",
|
||||
@@ -584,15 +591,16 @@
|
||||
"No feedbacks found": "Kein Feedback gefunden",
|
||||
"No file selected": "Keine Datei ausgewählt",
|
||||
"No files found.": "Keine Dateien gefunden.",
|
||||
"No groups with access, add a group to grant access": "",
|
||||
"No groups with access, add a group to grant access": "Keine Gruppen mit Zugriff, fügen Sie eine Gruppe hinzu, um Zugriff zu gewähren",
|
||||
"No HTML, CSS, or JavaScript content found.": "Keine HTML-, CSS- oder JavaScript-Inhalte gefunden.",
|
||||
"No knowledge found": "Kein Wissen gefunden",
|
||||
"No model IDs": "",
|
||||
"No model IDs": "Keine Modell-IDs",
|
||||
"No models found": "Keine Modelle gefunden",
|
||||
"No models selected": "",
|
||||
"No results found": "Keine Ergebnisse gefunden",
|
||||
"No search query generated": "Keine Suchanfrage generiert",
|
||||
"No source available": "Keine Quelle verfügbar",
|
||||
"No users were found.": "",
|
||||
"No users were found.": "Keine Benutzer gefunden.",
|
||||
"No valves to update": "Keine Valves zum Aktualisieren",
|
||||
"None": "Nichts",
|
||||
"Not factually correct": "Nicht sachlich korrekt",
|
||||
@@ -611,13 +619,13 @@
|
||||
"Ollama": "Ollama",
|
||||
"Ollama API": "Ollama-API",
|
||||
"Ollama API disabled": "Ollama-API deaktiviert",
|
||||
"Ollama API settings updated": "",
|
||||
"Ollama API settings updated": "Ollama-API-Einstellungen aktualisiert",
|
||||
"Ollama Version": "Ollama-Version",
|
||||
"On": "Ein",
|
||||
"Only alphanumeric characters and hyphens are allowed": "",
|
||||
"Only alphanumeric characters and hyphens are allowed": "Nur alphanumerische Zeichen und Bindestriche sind erlaubt",
|
||||
"Only alphanumeric characters and hyphens are allowed in the command string.": "In der Befehlszeichenfolge sind nur alphanumerische Zeichen und Bindestriche erlaubt.",
|
||||
"Only collections can be edited, create a new knowledge base to edit/add documents.": "Nur Sammlungen können bearbeitet werden. Erstellen Sie eine neue Wissensbasis, um Dokumente zu bearbeiten/hinzuzufügen.",
|
||||
"Only select users and groups with permission can access": "",
|
||||
"Only select users and groups with permission can access": "Nur ausgewählte Benutzer und Gruppen mit Berechtigung können darauf zugreifen",
|
||||
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Hoppla! Es scheint, dass die URL ungültig ist. Bitte überprüfen Sie diese und versuchen Sie es erneut.",
|
||||
"Oops! There are files still uploading. Please wait for the upload to complete.": "Hoppla! Es werden noch Dateien hochgeladen. Bitte warten Sie, bis der Upload abgeschlossen ist.",
|
||||
"Oops! There was an error in the previous response.": "Hoppla! Es gab einen Fehler in der vorherigen Antwort.",
|
||||
@@ -626,34 +634,34 @@
|
||||
"Open in full screen": "Im Vollbildmodus öffnen",
|
||||
"Open new chat": "Neuen Chat öffnen",
|
||||
"Open WebUI uses faster-whisper internally.": "Open WebUI verwendet intern faster-whisper.",
|
||||
"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "",
|
||||
"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI verwendet SpeechT5 und CMU Arctic-Sprecher-Embeddings.",
|
||||
"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Die installierte Open-WebUI-Version (v{{OPEN_WEBUI_VERSION}}) ist niedriger als die erforderliche Version (v{{REQUIRED_VERSION}})",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI API": "OpenAI-API",
|
||||
"OpenAI API Config": "OpenAI-API-Konfiguration",
|
||||
"OpenAI API Key is required.": "OpenAI-API-Schlüssel erforderlich.",
|
||||
"OpenAI API settings updated": "",
|
||||
"OpenAI API settings updated": "OpenAI-API-Einstellungen aktualisiert",
|
||||
"OpenAI URL/Key required.": "OpenAI-URL/Schlüssel erforderlich.",
|
||||
"or": "oder",
|
||||
"Organize your users": "",
|
||||
"Organize your users": "Organisieren Sie Ihre Benutzer",
|
||||
"Other": "Andere",
|
||||
"OUTPUT": "AUSGABE",
|
||||
"Output format": "Ausgabeformat",
|
||||
"Overview": "Übersicht",
|
||||
"page": "Seite",
|
||||
"Password": "Passwort",
|
||||
"Paste Large Text as File": "",
|
||||
"Paste Large Text as File": "Großen Text als Datei einfügen",
|
||||
"PDF document (.pdf)": "PDF-Dokument (.pdf)",
|
||||
"PDF Extract Images (OCR)": "Text von Bildern aus PDFs extrahieren (OCR)",
|
||||
"pending": "ausstehend",
|
||||
"Permission denied when accessing media devices": "Zugriff auf Mediengeräte verweigert",
|
||||
"Permission denied when accessing microphone": "Zugriff auf das Mikrofon verweigert",
|
||||
"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
|
||||
"Permissions": "",
|
||||
"Permissions": "Berechtigungen",
|
||||
"Personalization": "Personalisierung",
|
||||
"Pin": "Anheften",
|
||||
"Pinned": "Angeheftet",
|
||||
"Pioneer insights": "",
|
||||
"Pioneer insights": "Bahnbrechende Erkenntnisse",
|
||||
"Pipeline deleted successfully": "Pipeline erfolgreich gelöscht",
|
||||
"Pipeline downloaded successfully": "Pipeline erfolgreich heruntergeladen",
|
||||
"Pipelines": "Pipelines",
|
||||
@@ -664,24 +672,26 @@
|
||||
"Please carefully review the following warnings:": "Bitte überprüfen Sie die folgenden Warnungen sorgfältig:",
|
||||
"Please enter a prompt": "Bitte geben Sie einen Prompt ein",
|
||||
"Please fill in all fields.": "Bitte füllen Sie alle Felder aus.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Bitte wählen Sie einen Grund aus",
|
||||
"Port": "",
|
||||
"Port": "Port",
|
||||
"Positive attitude": "Positive Einstellung",
|
||||
"Prefix ID": "",
|
||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||
"Prefix ID": "Präfix-ID",
|
||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Prefix-ID wird verwendet, um Konflikte mit anderen Verbindungen zu vermeiden, indem ein Präfix zu den Modell-IDs hinzugefügt wird - leer lassen, um zu deaktivieren",
|
||||
"Previous 30 days": "Vorherige 30 Tage",
|
||||
"Previous 7 days": "Vorherige 7 Tage",
|
||||
"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 created successfully": "",
|
||||
"Prompt created successfully": "Prompt erfolgreich erstellt",
|
||||
"Prompt suggestions": "Prompt-Vorschläge",
|
||||
"Prompt updated successfully": "",
|
||||
"Prompt updated successfully": "Prompt erfolgreich aktualisiert",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "",
|
||||
"Prompts Access": "Prompt-Zugriff",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "\"{{searchValue}}\" von Ollama.com beziehen",
|
||||
"Pull a model from Ollama.com": "Modell von Ollama.com beziehen",
|
||||
"Query Generation Prompt": "",
|
||||
"Query Generation Prompt": "Abfragegenerierungsprompt",
|
||||
"Query Params": "Abfrageparameter",
|
||||
"RAG Template": "RAG-Vorlage",
|
||||
"Rating": "Bewertung",
|
||||
@@ -689,7 +699,7 @@
|
||||
"Read Aloud": "Vorlesen",
|
||||
"Record voice": "Stimme aufnehmen",
|
||||
"Redirecting you to OpenWebUI Community": "Sie werden zur OpenWebUI-Community weitergeleitet",
|
||||
"Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40)": "",
|
||||
"Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40)": "Reduziert die Wahrscheinlichkeit, Unsinn zu generieren. Ein höherer Wert (z.B. 100) liefert vielfältigere Antworten, während ein niedrigerer Wert (z.B. 10) konservativer ist. (Standard: 40)",
|
||||
"Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Beziehen Sie sich auf sich selbst als \"Benutzer\" (z. B. \"Benutzer lernt Spanisch\")",
|
||||
"References from": "Referenzen aus",
|
||||
"Refused when it shouldn't have": "Abgelehnt, obwohl es nicht hätte abgelehnt werden sollen",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Entfernen",
|
||||
"Remove Model": "Modell entfernen",
|
||||
"Rename": "Umbenennen",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Wiederhole die letzten N",
|
||||
"Request Mode": "Anforderungsmodus",
|
||||
"Reranking Model": "Reranking-Modell",
|
||||
"Reranking model disabled": "Reranking-Modell deaktiviert",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Reranking-Modell \"{{reranking_model}}\" fesgelegt",
|
||||
"Reset": "Zurücksetzen",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Upload-Verzeichnis zurücksetzen",
|
||||
"Reset Vector Storage/Knowledge": "Vektorspeicher/Wissen zurücksetzen",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Benachrichtigungen können nicht aktiviert werden, da die Website-Berechtigungen abgelehnt wurden. Bitte besuchen Sie Ihre Browser-Einstellungen, um den erforderlichen Zugriff zu gewähren.",
|
||||
"Response splitting": "Antwortaufteilung",
|
||||
"Result": "Ergebnis",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Rich-Text-Eingabe für Unterhaltungen",
|
||||
"RK": "RK",
|
||||
"Role": "Rolle",
|
||||
@@ -728,18 +741,18 @@
|
||||
"Scroll to bottom when switching between branches": "Beim Wechsel zwischen Branches nach unten scrollen",
|
||||
"Search": "Suchen",
|
||||
"Search a model": "Modell suchen",
|
||||
"Search Base": "",
|
||||
"Search Base": "Suchbasis",
|
||||
"Search Chats": "Unterhaltungen durchsuchen...",
|
||||
"Search Collection": "Sammlung durchsuchen",
|
||||
"Search Filters": "",
|
||||
"Search Filters": "Suchfilter",
|
||||
"search for tags": "nach Tags suchen",
|
||||
"Search Functions": "Funktionen durchsuchen...",
|
||||
"Search Knowledge": "Wissen durchsuchen",
|
||||
"Search Models": "Modelle durchsuchen...",
|
||||
"Search options": "",
|
||||
"Search options": "Suchoptionen",
|
||||
"Search Prompts": "Prompts durchsuchen...",
|
||||
"Search Result Count": "Anzahl der Suchergebnisse",
|
||||
"Search the web": "",
|
||||
"Search the web": "Im Web suchen",
|
||||
"Search Tools": "Werkzeuge durchsuchen...",
|
||||
"SearchApi API Key": "SearchApi-API-Schlüssel",
|
||||
"SearchApi Engine": "SearchApi-Engine",
|
||||
@@ -754,7 +767,7 @@
|
||||
"Select a base model": "Wählen Sie ein Basismodell",
|
||||
"Select a engine": "Wählen Sie eine Engine",
|
||||
"Select a function": "Wählen Sie eine Funktion",
|
||||
"Select a group": "",
|
||||
"Select a group": "Wählen Sie eine Gruppe",
|
||||
"Select a model": "Wählen Sie ein Modell",
|
||||
"Select a pipeline": "Wählen Sie eine Pipeline",
|
||||
"Select a pipeline url": "Wählen Sie eine Pipeline-URL",
|
||||
@@ -777,7 +790,7 @@
|
||||
"Set as default": "Als Standard festlegen",
|
||||
"Set CFG Scale": "CFG-Skala festlegen",
|
||||
"Set Default Model": "Standardmodell festlegen",
|
||||
"Set embedding model": "",
|
||||
"Set embedding model": "Einbettungsmodell festlegen",
|
||||
"Set embedding model (e.g. {{model}})": "Einbettungsmodell festlegen (z. B. {{model}})",
|
||||
"Set Image Size": "Bildgröße festlegen",
|
||||
"Set reranking model (e.g. {{model}})": "Rerankingmodell festlegen (z. B. {{model}})",
|
||||
@@ -785,29 +798,29 @@
|
||||
"Set Scheduler": "Scheduler festlegen",
|
||||
"Set Steps": "Schrittgröße festlegen",
|
||||
"Set Task Model": "Aufgabenmodell festlegen",
|
||||
"Set the number of GPU devices used for computation. This option controls how many GPU devices (if available) are used to process incoming requests. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "",
|
||||
"Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "",
|
||||
"Set the number of GPU devices used for computation. This option controls how many GPU devices (if available) are used to process incoming requests. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "Legt die Anzahl der für die Berechnung verwendeten GPU-Geräte fest. Diese Option steuert, wie viele GPU-Geräte (falls verfügbar) zur Verarbeitung eingehender Anfragen verwendet werden. Eine Erhöhung dieses Wertes kann die Leistung für Modelle, die für GPU-Beschleunigung optimiert sind, erheblich verbessern, kann jedoch auch mehr Strom und GPU-Ressourcen verbrauchen.",
|
||||
"Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "Legt die Anzahl der für die Berechnung verwendeten GPU-Geräte fest. Diese Option steuert, wie viele GPU-Geräte (falls verfügbar) zur Verarbeitung eingehender Anfragen verwendet werden. Eine Erhöhung dieses Wertes kann die Leistung für Modelle, die für GPU-Beschleunigung optimiert sind, erheblich verbessern, kann jedoch auch mehr Strom und GPU-Ressourcen verbrauchen.",
|
||||
"Set Voice": "Stimme festlegen",
|
||||
"Set whisper model": "Whisper-Modell festlegen",
|
||||
"Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = num_ctx)": "",
|
||||
"Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. (Default: 1.1)": "",
|
||||
"Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "",
|
||||
"Sets the size of the context window used to generate the next token. (Default: 2048)": "",
|
||||
"Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "",
|
||||
"Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = num_ctx)": "Legt fest, wie weit das Modell zurückblicken soll, um Wiederholungen zu verhindern. (Standard: 64, 0 = deaktiviert, -1 = num_ctx)",
|
||||
"Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. (Default: 1.1)": "Legt fest, wie stark Wiederholungen bestraft werden sollen. Ein höherer Wert (z.B. 1.5) bestraft Wiederholungen stärker, während ein niedrigerer Wert (z.B. 0.9) nachsichtiger ist. (Standard: 1.1)",
|
||||
"Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "Legt den Zufallszahlengenerator-Seed für die Generierung fest. Wenn dieser auf eine bestimmte Zahl gesetzt wird, erzeugt das Modell denselben Text für denselben Prompt. (Standard: zufällig)",
|
||||
"Sets the size of the context window used to generate the next token. (Default: 2048)": "Legt die Größe des Kontextfensters fest, das zur Generierung des nächsten Tokens verwendet wird. (Standard: 2048)",
|
||||
"Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "Legt die zu verwendenden Stoppsequenzen fest. Wenn dieses Muster erkannt wird, stoppt das LLM die Textgenerierung und gibt zurück. Mehrere Stoppmuster können festgelegt werden, indem mehrere separate Stopp-Parameter in einer Modelldatei angegeben werden.",
|
||||
"Settings": "Einstellungen",
|
||||
"Settings saved successfully!": "Einstellungen erfolgreich gespeichert!",
|
||||
"Share": "Teilen",
|
||||
"Share Chat": "Unterhaltung teilen",
|
||||
"Share to OpenWebUI Community": "Mit OpenWebUI Community teilen",
|
||||
"Show": "Anzeigen",
|
||||
"Show \"What's New\" modal on login": "",
|
||||
"Show \"What's New\" modal on login": "\"Was gibt's Neues\"-Modal beim Anmelden anzeigen",
|
||||
"Show Admin Details in Account Pending Overlay": "Admin-Details im Account-Pending-Overlay anzeigen",
|
||||
"Show shortcuts": "Verknüpfungen anzeigen",
|
||||
"Show your support!": "Zeigen Sie Ihre Unterstützung!",
|
||||
"Showcased creativity": "Kreativität gezeigt",
|
||||
"Sign in": "Anmelden",
|
||||
"Sign in to {{WEBUI_NAME}}": "Bei {{WEBUI_NAME}} anmelden",
|
||||
"Sign in to {{WEBUI_NAME}} with LDAP": "",
|
||||
"Sign in to {{WEBUI_NAME}} with LDAP": "Bei {{WEBUI_NAME}} mit LDAP anmelden",
|
||||
"Sign Out": "Abmelden",
|
||||
"Sign up": "Registrieren",
|
||||
"Sign up to {{WEBUI_NAME}}": "Bei {{WEBUI_NAME}} registrieren",
|
||||
@@ -831,8 +844,9 @@
|
||||
"System": "System",
|
||||
"System Instructions": "Systemanweisungen",
|
||||
"System Prompt": "System-Prompt",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Prompt für Tag-Generierung",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail-Free Sampling wird verwendet, um den Einfluss weniger wahrscheinlicher Tokens auf die Ausgabe zu reduzieren. Ein höherer Wert (z.B. 2.0) reduziert den Einfluss stärker, während ein Wert von 1.0 diese Einstellung deaktiviert. (Standard: 1)",
|
||||
"Tap to interrupt": "Zum Unterbrechen tippen",
|
||||
"Tavily API Key": "Tavily-API-Schlüssel",
|
||||
"Tell us more:": "Erzähl uns mehr",
|
||||
@@ -843,30 +857,30 @@
|
||||
"Text-to-Speech Engine": "Text-zu-Sprache-Engine",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Danke für Ihr Feedback!",
|
||||
"The Application Account DN you bind with for search": "",
|
||||
"The base to search for users": "",
|
||||
"The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory. (Default: 512)": "",
|
||||
"The Application Account DN you bind with for search": "Der Anwendungs-Konto-DN, mit dem Sie für die Suche binden",
|
||||
"The base to search for users": "Die Basis, in der nach Benutzern gesucht wird",
|
||||
"The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory. (Default: 512)": "Die Batch-Größe bestimmt, wie viele Textanfragen gleichzeitig verarbeitet werden. Eine größere Batch-Größe kann die Leistung und Geschwindigkeit des Modells erhöhen, erfordert jedoch auch mehr Speicher. (Standard: 512)",
|
||||
"The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "Die Entwickler hinter diesem Plugin sind leidenschaftliche Freiwillige aus der Community. Wenn Sie dieses Plugin hilfreich finden, erwägen Sie bitte, zu seiner Entwicklung beizutragen.",
|
||||
"The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "Die Bewertungs-Bestenliste basiert auf dem Elo-Bewertungssystem und wird in Echtzeit aktualisiert.",
|
||||
"The LDAP attribute that maps to the username that users use to sign in.": "",
|
||||
"The LDAP attribute that maps to the username that users use to sign in.": "Das LDAP-Attribut, das dem Benutzernamen zugeordnet ist, den Benutzer zum Anmelden verwenden.",
|
||||
"The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "Die Bestenliste befindet sich derzeit in der Beta-Phase, und es ist möglich, dass wir die Bewertungsberechnungen anpassen, während wir den Algorithmus verfeinern.",
|
||||
"The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "Die maximale Dateigröße in MB. Wenn die Dateigröße dieses Limit überschreitet, wird die Datei nicht hochgeladen.",
|
||||
"The maximum number of files that can be used at once in chat. If the number of files exceeds this limit, the files will not be uploaded.": "Die maximale Anzahl von Dateien, die gleichzeitig in der Unterhaltung verwendet werden können. Wenn die Anzahl der Dateien dieses Limit überschreitet, werden die Dateien nicht hochgeladen.",
|
||||
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Die Punktzahl sollte ein Wert zwischen 0,0 (0 %) und 1,0 (100 %) sein.",
|
||||
"The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "",
|
||||
"The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "Die Temperatur des Modells. Eine Erhöhung der Temperatur führt dazu, dass das Modell kreativer antwortet. (Standard: 0,8)",
|
||||
"Theme": "Design",
|
||||
"Thinking...": "Denke nach...",
|
||||
"This action cannot be undone. Do you wish to continue?": "Diese Aktion kann nicht rückgängig gemacht werden. Möchten Sie fortfahren?",
|
||||
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Dies stellt sicher, dass Ihre wertvollen Unterhaltungen sicher in Ihrer Backend-Datenbank gespeichert werden. Vielen Dank!",
|
||||
"This is an experimental feature, it may not function as expected and is subject to change at any time.": "Dies ist eine experimentelle Funktion, sie funktioniert möglicherweise nicht wie erwartet und kann jederzeit geändert werden.",
|
||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "",
|
||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "",
|
||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "Diese Option steuert, wie viele Tokens beim Aktualisieren des Kontexts beibehalten werden. Wenn sie beispielsweise auf 2 gesetzt ist, werden die letzten 2 Tokens des Gesprächskontexts beibehalten. Das Beibehalten des Kontexts kann helfen, die Kontinuität eines Gesprächs aufrechtzuerhalten, kann jedoch die Fähigkeit verringern, auf neue Themen zu reagieren. (Standard: 24)",
|
||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "Diese Option legt die maximale Anzahl von Tokens fest, die das Modell in seiner Antwort generieren kann. Eine Erhöhung dieses Limits ermöglicht es dem Modell, längere Antworten zu geben, kann jedoch auch die Wahrscheinlichkeit erhöhen, dass unhilfreicher oder irrelevanter Inhalt generiert wird. (Standard: 128)",
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Diese Option löscht alle vorhandenen Dateien in der Sammlung und ersetzt sie durch neu hochgeladene Dateien.",
|
||||
"This response was generated by \"{{model}}\"": "Diese Antwort wurde von \"{{model}}\" generiert",
|
||||
"This will delete": "Dies löscht",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "Dies löscht <strong>{{NAME}}</strong> und <strong>alle Inhalte</strong>.",
|
||||
"This will delete all models including custom models": "",
|
||||
"This will delete all models including custom models and cannot be undone.": "",
|
||||
"This will delete all models including custom models": "Dies wird alle Modelle einschließlich benutzerdefinierter Modelle löschen",
|
||||
"This will delete all models including custom models and cannot be undone.": "Dies wird alle Modelle einschließlich benutzerdefinierter Modelle löschen und kann nicht rückgängig gemacht werden.",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Dadurch wird die Wissensdatenbank zurückgesetzt und alle Dateien synchronisiert. Möchten Sie fortfahren?",
|
||||
"Thorough explanation": "Ausführliche Erklärung",
|
||||
"Tika": "Tika",
|
||||
@@ -878,7 +892,7 @@
|
||||
"Title Auto-Generation": "Unterhaltungstitel automatisch generieren",
|
||||
"Title cannot be an empty string.": "Titel darf nicht leer sein.",
|
||||
"Title Generation Prompt": "Prompt für Titelgenerierung",
|
||||
"TLS": "",
|
||||
"TLS": "TLS",
|
||||
"To access the available model names for downloading,": "Um auf die verfügbaren Modellnamen zuzugreifen,",
|
||||
"To access the GGUF models available for downloading,": "Um auf die verfügbaren GGUF-Modelle zuzugreifen,",
|
||||
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Um auf das WebUI zugreifen zu können, wenden Sie sich bitte an einen Administrator. Administratoren können den Benutzerstatus über das Admin-Panel verwalten.",
|
||||
@@ -896,19 +910,19 @@
|
||||
"Too verbose": "Zu ausführlich",
|
||||
"Tool created successfully": "Werkzeug erfolgreich erstellt",
|
||||
"Tool deleted successfully": "Werkzeug erfolgreich gelöscht",
|
||||
"Tool Description": "",
|
||||
"Tool ID": "",
|
||||
"Tool Description": "Werkzeugbeschreibung",
|
||||
"Tool ID": "Werkzeug-ID",
|
||||
"Tool imported successfully": "Werkzeug erfolgreich importiert",
|
||||
"Tool Name": "",
|
||||
"Tool Name": "Werkzeugname",
|
||||
"Tool updated successfully": "Werkzeug erfolgreich aktualisiert",
|
||||
"Tools": "Werkzeuge",
|
||||
"Tools Access": "",
|
||||
"Tools Access": "Werkzeugzugriff",
|
||||
"Tools are a function calling system with arbitrary code execution": "Wekzeuge sind ein Funktionssystem mit beliebiger Codeausführung",
|
||||
"Tools have a function calling system that allows arbitrary code execution": "Werkezuge verfügen über ein Funktionssystem, das die Ausführung beliebigen Codes ermöglicht",
|
||||
"Tools have a function calling system that allows arbitrary code execution.": "Werkzeuge verfügen über ein Funktionssystem, das die Ausführung beliebigen Codes ermöglicht.",
|
||||
"Top K": "Top K",
|
||||
"Top P": "Top P",
|
||||
"Transformers": "",
|
||||
"Transformers": "Transformers",
|
||||
"Trouble accessing Ollama?": "Probleme beim Zugriff auf Ollama?",
|
||||
"TTS Model": "TTS-Modell",
|
||||
"TTS Settings": "TTS-Einstellungen",
|
||||
@@ -917,12 +931,12 @@
|
||||
"Type Hugging Face Resolve (Download) URL": "Geben Sie die Hugging Face Resolve-URL ein",
|
||||
"Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.",
|
||||
"UI": "Oberfläche",
|
||||
"Unarchive All": "",
|
||||
"Unarchive All Archived Chats": "",
|
||||
"Unarchive Chat": "",
|
||||
"Unlock mysteries": "",
|
||||
"Unarchive All": "Alle wiederherstellen",
|
||||
"Unarchive All Archived Chats": "Alle archivierten Unterhaltungen wiederherstellen",
|
||||
"Unarchive Chat": "Unterhaltung wiederherstellen",
|
||||
"Unlock mysteries": "Geheimnisse entsperren",
|
||||
"Unpin": "Lösen",
|
||||
"Unravel secrets": "",
|
||||
"Unravel secrets": "Geheimnisse lüften",
|
||||
"Untagged": "Ungetaggt",
|
||||
"Update": "Aktualisieren",
|
||||
"Update and Copy Link": "Aktualisieren und Link kopieren",
|
||||
@@ -938,18 +952,18 @@
|
||||
"Upload Files": "Datei(en) hochladen",
|
||||
"Upload Pipeline": "Pipeline hochladen",
|
||||
"Upload Progress": "Hochladefortschritt",
|
||||
"URL": "",
|
||||
"URL": "URL",
|
||||
"URL Mode": "URL-Modus",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Nutzen Sie '#' in der Prompt-Eingabe, um Ihr Wissen zu laden und einzuschließen.",
|
||||
"Use Gravatar": "Gravatar verwenden",
|
||||
"Use groups to group your users and assign permissions.": "",
|
||||
"Use groups to group your users and assign permissions.": "Nutzen Sie Gruppen, um Ihre Benutzer zu gruppieren und Berechtigungen zuzuweisen.",
|
||||
"Use Initials": "Initialen verwenden",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
"use_mmap (Ollama)": "use_mmap (Ollama)",
|
||||
"user": "Benutzer",
|
||||
"User": "Benutzer",
|
||||
"User location successfully retrieved.": "Benutzerstandort erfolgreich ermittelt.",
|
||||
"Username": "",
|
||||
"Username": "Benutzername",
|
||||
"Users": "Benutzer",
|
||||
"Using the default arena model with all models. Click the plus button to add custom models.": "Verwendung des Standard-Arena-Modells mit allen Modellen. Klicken Sie auf die Plus-Schaltfläche, um benutzerdefinierte Modelle hinzuzufügen.",
|
||||
"Utilize": "Verwende",
|
||||
@@ -961,44 +975,45 @@
|
||||
"variable to have them replaced with clipboard content.": "Variable, um den Inhalt der Zwischenablage beim Nutzen des Prompts zu ersetzen.",
|
||||
"Version": "Version",
|
||||
"Version {{selectedVersion}} of {{totalVersions}}": "Version {{selectedVersion}} von {{totalVersions}}",
|
||||
"Visibility": "",
|
||||
"Visibility": "Sichtbarkeit",
|
||||
"Voice": "Stimme",
|
||||
"Voice Input": "Spracheingabe",
|
||||
"Warning": "Warnung",
|
||||
"Warning:": "Warnung:",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "Warnung: Wenn Sie dies aktivieren, können Benutzer beliebigen Code auf dem Server hochladen.",
|
||||
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn Sie das Einbettungsmodell aktualisieren oder ändern, müssen Sie alle Dokumente erneut importieren.",
|
||||
"Web": "Web",
|
||||
"Web API": "Web-API",
|
||||
"Web Loader Settings": "Web Loader Einstellungen",
|
||||
"Web Search": "Websuche",
|
||||
"Web Search Engine": "Suchmaschine",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "WebUI-Einstellungen",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
"WebUI will make requests to \"{{url}}/chat/completions\"": "",
|
||||
"What are you trying to achieve?": "",
|
||||
"What are you working on?": "",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI wird Anfragen an \"{{url}}/api/chat\" senden",
|
||||
"WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI wird Anfragen an \"{{url}}/chat/completions\" senden",
|
||||
"What are you trying to achieve?": "Was versuchen Sie zu erreichen?",
|
||||
"What are you working on?": "Woran arbeiten Sie?",
|
||||
"What’s New in": "Neuigkeiten von",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "",
|
||||
"wherever you are": "",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "Wenn aktiviert, antwortet das Modell in Echtzeit auf jede Chat-Nachricht und generiert eine Antwort, sobald der Benutzer eine Nachricht sendet. Dieser Modus ist nützlich für Live-Chat-Anwendungen, kann jedoch die Leistung auf langsamerer Hardware beeinträchtigen.",
|
||||
"wherever you are": "wo immer Sie sind",
|
||||
"Whisper (Local)": "Whisper (lokal)",
|
||||
"Why?": "",
|
||||
"Why?": "Warum?",
|
||||
"Widescreen Mode": "Breitbildmodus",
|
||||
"Won": "Gewonnen",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "Funktioniert zusammen mit top-k. Ein höherer Wert (z.B. 0,95) führt zu vielfältigerem Text, während ein niedrigerer Wert (z.B. 0,5) fokussierteren und konservativeren Text erzeugt. (Standard: 0,9)",
|
||||
"Workspace": "Arbeitsbereich",
|
||||
"Workspace Permissions": "",
|
||||
"Workspace Permissions": "Arbeitsbereichsberechtigungen",
|
||||
"Write a prompt suggestion (e.g. Who are you?)": "Schreiben Sie einen Promptvorschlag (z. B. Wer sind Sie?)",
|
||||
"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.",
|
||||
"Write something...": "Schreiben Sie etwas...",
|
||||
"Write your model template content here": "",
|
||||
"Write your model template content here": "Schreiben Sie hier Ihren Modellvorlageninhalt",
|
||||
"Yesterday": "Gestern",
|
||||
"You": "Sie",
|
||||
"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Sie können nur mit maximal {{maxCount}} Datei(en) gleichzeitig chatten.",
|
||||
"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Personalisieren Sie Interaktionen mit LLMs, indem Sie über die Schaltfläche \"Verwalten\" Erinnerungen hinzufügen.",
|
||||
"You cannot upload an empty file.": "Sie können keine leere Datei hochladen.",
|
||||
"You do not have permission to upload files.": "",
|
||||
"You do not have permission to upload files.": "Sie haben keine Berechtigung zum Hochladen von Dateien.",
|
||||
"You have no archived conversations.": "Du hast keine archivierten Unterhaltungen.",
|
||||
"You have shared this chat": "Sie haben diese Unterhaltung geteilt",
|
||||
"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' or '-1' for no expire. Much permanent, very wow.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(such e.g. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Copy Bark Auto Bark",
|
||||
"Auto-playback response": "Auto-playback response",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Base URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Change Password",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Confirm Password",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "",
|
||||
"Default Model": "",
|
||||
"Default model updated": "Default model much updated",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Default Prompt Suggestions",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Enable New Bark Ups",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Enter model doge tag (e.g. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Enter Number of Steps (e.g. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "",
|
||||
"Failed to read clipboard contents": "Failed to read clipboard borks",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Modelfile Content",
|
||||
"Models": "Wowdels",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "",
|
||||
"No search query generated": "",
|
||||
"No source available": "No source available",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Promptos",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "",
|
||||
"Pull a model from Ollama.com": "Pull a wowdel from Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "",
|
||||
"Remove Model": "",
|
||||
"Rename": "",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Repeat Last N",
|
||||
"Request Mode": "Request Bark",
|
||||
"Reranking Model": "",
|
||||
"Reranking model disabled": "",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Role",
|
||||
@@ -833,6 +846,7 @@
|
||||
"System": "System very system",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "System Prompt much prompt",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -975,6 +989,7 @@
|
||||
"Web Loader Settings": "",
|
||||
"Web Search": "",
|
||||
"Web Search Engine": "",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "",
|
||||
"WebUI Settings": "WebUI Settings much settings",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "",
|
||||
"Auto-playback response": "",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "",
|
||||
"Default Model": "",
|
||||
"Default model updated": "",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "",
|
||||
"Failed to read clipboard contents": "",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "",
|
||||
"Models": "",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "",
|
||||
"No search query generated": "",
|
||||
"No source available": "",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "",
|
||||
"Pull a model from Ollama.com": "",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "",
|
||||
"Remove Model": "",
|
||||
"Rename": "",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "",
|
||||
"Request Mode": "",
|
||||
"Reranking Model": "",
|
||||
"Reranking model disabled": "",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "",
|
||||
"Web Search": "",
|
||||
"Web Search Engine": "",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "",
|
||||
"WebUI Settings": "",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "",
|
||||
"Auto-playback response": "",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "",
|
||||
"Default Model": "",
|
||||
"Default model updated": "",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "",
|
||||
"Failed to read clipboard contents": "",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "",
|
||||
"Models": "",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "",
|
||||
"No search query generated": "",
|
||||
"No source available": "",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "",
|
||||
"Pull a model from Ollama.com": "",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "",
|
||||
"Remove Model": "",
|
||||
"Rename": "",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "",
|
||||
"Request Mode": "",
|
||||
"Reranking Model": "",
|
||||
"Reranking model disabled": "",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "",
|
||||
"Web Search": "",
|
||||
"Web Search Engine": "",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "",
|
||||
"WebUI Settings": "",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' o '-1' para evitar expiración.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(p.ej. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(p.ej. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Copiar respuesta automáticamente al portapapeles",
|
||||
"Auto-playback response": "Respuesta de reproducción automática",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "Cadena de autenticación de API",
|
||||
"AUTOMATIC1111 Base URL": "Dirección URL de AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Cambia la Contraseña",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Imágen de fondo del Chat",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Solicitudes simultáneas",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Confirmar",
|
||||
"Confirm Password": "Confirmar Contraseña",
|
||||
"Confirm your action": "Confirma tu acción",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Predeterminado (SentenceTransformers)",
|
||||
"Default Model": "Modelo predeterminado",
|
||||
"Default model updated": "El modelo por defecto ha sido actualizado",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Sugerencias de mensajes por defecto",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Motor de Modelo de Embedding",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding configurado a \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Habilitar el uso compartido de la comunidad",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "Habilitar la calificación de los mensajes",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Habilitar Nuevos Registros",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Habilitar la búsqueda web",
|
||||
"Enable Web Search Query Generation": "Habilitar generación de consultas web",
|
||||
"Enabled": "Activado",
|
||||
"Engine": "Motor",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Asegúrese de que su archivo CSV incluya 4 columnas en este orden: Nombre, Correo Electrónico, Contraseña, Rol.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Ingrese la etiqueta del modelo (p.ej. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Ingrese el número de pasos (p.ej., 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Ingrese el sampler (p.ej., Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Ingrese el planificador (p.ej., Karras)",
|
||||
"Enter Score": "Ingrese la puntuación",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "No se pudo crear la clave API.",
|
||||
"Failed to read clipboard contents": "No se pudo leer el contenido del portapapeles",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Falla al actualizar los ajustes",
|
||||
"Failed to upload file.": "Falla al subir el archivo.",
|
||||
"February": "Febrero",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Contenido del Modelfile",
|
||||
"Models": "Modelos",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Más",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "No se encontró ningún conocimiento",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "No se han encontrado resultados",
|
||||
"No search query generated": "No se ha generado ninguna consulta de búsqueda",
|
||||
"No source available": "No hay fuente disponible",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Por favor revise con cuidado los siguientes avisos:",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "Por favor llene todos los campos.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Por favor seleccione una razón",
|
||||
"Port": "",
|
||||
"Positive attitude": "Actitud positiva",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Extraer \"{{searchValue}}\" de Ollama.com",
|
||||
"Pull a model from Ollama.com": "Obtener un modelo de Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Eliminar",
|
||||
"Remove Model": "Eliminar modelo",
|
||||
"Rename": "Renombrar",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Repetir las últimas N",
|
||||
"Request Mode": "Modo de petición",
|
||||
"Reranking Model": "Modelo de reranking",
|
||||
"Reranking model disabled": "Modelo de reranking deshabilitado",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Modelo de reranking establecido en \"{{reranking_model}}\"",
|
||||
"Reset": "Reiniciar",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Reiniciar Directorio de carga",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Las notificaciones de respuesta no pueden activarse debido a que los permisos del sitio web han sido denegados. Por favor, visite las configuraciones de su navegador para otorgar el acceso necesario.",
|
||||
"Response splitting": "División de respuestas",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Rol",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "Sistema",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Prompt del sistema",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Toca para interrumpir",
|
||||
@@ -974,6 +988,7 @@
|
||||
"Web Loader Settings": "Web Loader Settings",
|
||||
"Web Search": "Búsqueda en la Web",
|
||||
"Web Search Engine": "Motor de búsqueda web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "Configuración del WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' یا '-1' برای غیر فعال کردن انقضا.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(e.g. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "کپی خودکار پاسخ به کلیپ بورد",
|
||||
"Auto-playback response": "پخش خودکار پاسخ",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "پایه URL AUTOMATIC1111 ",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "تغییر رمز عبور",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "گفتگو",
|
||||
"Chat Background Image": "تصویر پس\u200cزمینهٔ گفتگو",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "درخواست های همزمان",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "تایید",
|
||||
"Confirm Password": "تایید رمز عبور",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "پیشفرض (SentenceTransformers)",
|
||||
"Default Model": "مدل پیشفرض",
|
||||
"Default model updated": "مدل پیشفرض به\u200cروزرسانی شد",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "پیشنهادات پرامپت پیش فرض",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "محرک مدل پیدائش",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "مدل پیدائش را به \"{{embedding_model}}\" تنظیم کنید",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "فعالسازی اشتراک انجمن",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "فعال کردن ثبت نام\u200cهای جدید",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "فعالسازی جستجوی وب",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "اطمینان حاصل کنید که فایل CSV شما شامل چهار ستون در این ترتیب است: نام، ایمیل، رمز عبور، نقش.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "تگ مدل را وارد کنید (مثلا {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "تعداد گام ها را وارد کنید (مثال: 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "امتیاز را وارد کنید",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "خطا در افزودن پرونده",
|
||||
"Failed to create API Key.": "ایجاد کلید API با خطا مواجه شد.",
|
||||
"Failed to read clipboard contents": "خواندن محتوای کلیپ بورد ناموفق بود",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "خطا در به\u200cروزرسانی تنظیمات",
|
||||
"Failed to upload file.": "خطا در بارگذاری پرونده",
|
||||
"February": "فوریه",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "محتویات فایل مدل",
|
||||
"Models": "مدل\u200cها",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "بیشتر",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "نتیجه\u200cای یافت نشد",
|
||||
"No search query generated": "پرسوجوی جستجویی ایجاد نشده است",
|
||||
"No source available": "منبعی در دسترس نیست",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "نظرات مثبت",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "پرامپت\u200cها",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "بازگرداندن \"{{searchValue}}\" از Ollama.com",
|
||||
"Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "حذف",
|
||||
"Remove Model": "حذف مدل",
|
||||
"Rename": "تغییر نام",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Repeat Last N",
|
||||
"Request Mode": "حالت درخواست",
|
||||
"Reranking Model": "مدل ری\u200cشناسی مجدد غیرفعال است",
|
||||
"Reranking model disabled": "مدل ری\u200cشناسی مجدد غیرفعال است",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "مدل ری\u200cشناسی مجدد به \"{{reranking_model}}\" تنظیم شده است",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "نتیجه",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "نقش",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "سیستم",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "پرامپت سیستم",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "تنظیمات لودر وب",
|
||||
"Web Search": "جستجوی وب",
|
||||
"Web Search Engine": "موتور جستجوی وب",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "نشانی وب\u200cهوک",
|
||||
"WebUI Settings": "تنظیمات WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' tai '-1' jottei vanhene.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(esim. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Vastauksen automaattikopiointi leikepöydälle",
|
||||
"Auto-playback response": "Soita vastaus automaattisesti",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111-perus-URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Vaihda salasana",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Keskustelu",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Samanaikaiset pyynnöt",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Vahvista salasana",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Oletus (SentenceTransformers)",
|
||||
"Default Model": "Oletusmalli",
|
||||
"Default model updated": "Oletusmalli päivitetty",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Oletuskehotteiden ehdotukset",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Upotusmallin moottori",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "\"{{embedding_model}}\" valittu upotusmalliksi",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Ota yhteisön jakaminen käyttöön",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Salli uudet rekisteröitymiset",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Ota verkkohaku käyttöön",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Varmista, että CSV-tiedostossasi on 4 saraketta seuraavassa järjestyksessä: Nimi, Sähköposti, Salasana, Rooli.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Syötä mallitagi (esim. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Syötä askelien määrä (esim. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Syötä pisteet",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "API-avaimen luonti epäonnistui.",
|
||||
"Failed to read clipboard contents": "Leikepöydän sisällön lukeminen epäonnistui",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "helmikuu",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Mallitiedoston sisältö",
|
||||
"Models": "Mallit",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Lisää",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Ei tuloksia",
|
||||
"No search query generated": "Hakukyselyä ei luotu",
|
||||
"No source available": "Ei lähdettä saatavilla",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Positiivinen asenne",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Kehotteet",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Lataa \"{{searchValue}}\" Ollama.comista",
|
||||
"Pull a model from Ollama.com": "Lataa malli Ollama.comista",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Poista",
|
||||
"Remove Model": "Poista malli",
|
||||
"Rename": "Nimeä uudelleen",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Viimeinen N -toisto",
|
||||
"Request Mode": "Pyyntötila",
|
||||
"Reranking Model": "Uudelleenpisteytysmalli",
|
||||
"Reranking model disabled": "Uudelleenpisteytysmalli poistettu käytöstä",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "\"{{reranking_model}}\" valittu uudelleenpisteytysmalliksi",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Rooli",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Järjestelmä",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Järjestelmäkehote",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Web Loader asetukset",
|
||||
"Web Search": "Web-haku",
|
||||
"Web Search Engine": "Web-hakukone",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook-URL",
|
||||
"WebUI Settings": "WebUI-asetukset",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": " 's', 'm', 'h', 'd', 'w' ou '-1' pour une durée illimitée.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(par ex. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(par exemple `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
|
||||
"Auto-playback response": "Réponse de lecture automatique",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Chaîne d'authentification de l'API",
|
||||
"AUTOMATIC1111 Base URL": "URL de base AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Changer le mot de passe",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Image d'arrière-plan de la fenêtre de chat",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Demandes concurrentes",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Confirmer",
|
||||
"Confirm Password": "Confirmer le mot de passe",
|
||||
"Confirm your action": "Confirmez votre action",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Par défaut (Sentence Transformers)",
|
||||
"Default Model": "Modèle standard",
|
||||
"Default model updated": "Modèle par défaut mis à jour",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Suggestions de prompts par défaut",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Moteur de modèle d'encodage",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modèle d'encodage défini sur « {{embedding_model}} »",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Activer le partage communautaire",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Activer les nouvelles inscriptions",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Activer la recherche sur le Web",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "Moteur",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Vérifiez que votre fichier CSV comprenne les 4 colonnes dans cet ordre : Name, Email, Password, Role.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Entrez l'étiquette du modèle (par ex. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Entrez le nombre de pas (par ex. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Entrez votre score",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Échec de la création de la clé API.",
|
||||
"Failed to read clipboard contents": "Échec de la lecture du contenu du presse-papiers",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Échec de la mise à jour des paramètres",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Février",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Contenu du Fichier de Modèle",
|
||||
"Models": "Modèles",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Plus de",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Aucun résultat trouvé",
|
||||
"No search query generated": "Aucune requête de recherche générée",
|
||||
"No source available": "Aucune source n'est disponible",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Attitude positive",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Récupérer « {{searchValue}} » depuis Ollama.com",
|
||||
"Pull a model from Ollama.com": "Télécharger un modèle depuis Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Retirer",
|
||||
"Remove Model": "Retirer le modèle",
|
||||
"Rename": "Renommer",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Répéter les N derniers",
|
||||
"Request Mode": "Mode de Requête",
|
||||
"Reranking Model": "Modèle de ré-ranking",
|
||||
"Reranking model disabled": "Modèle de ré-ranking désactivé",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Modèle de ré-ranking défini sur « {{reranking_model}} »",
|
||||
"Reset": "Réinitialiser",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Répertoire de téléchargement réinitialisé",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Les notifications de réponse ne peuvent pas être activées car les autorisations du site web ont été refusées. Veuillez visiter les paramètres de votre navigateur pour accorder l'accès nécessaire.",
|
||||
"Response splitting": "Fractionnement de la réponse",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Rôle",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "Système",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Prompt du système",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Appuyez pour interrompre",
|
||||
@@ -974,6 +988,7 @@
|
||||
"Web Loader Settings": "Paramètres du chargeur web",
|
||||
"Web Search": "Recherche Web",
|
||||
"Web Search Engine": "Moteur de recherche Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL du webhook",
|
||||
"WebUI Settings": "Paramètres de WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": " 's', 'm', 'h', 'd', 'w' ou '-1' pour une durée illimitée.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(par ex. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(par exemple `sh webui.sh --api`)",
|
||||
@@ -11,33 +12,33 @@
|
||||
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Un modèle de tâche est utilisé lors de l’exécution de tâches telles que la génération de titres pour les conversations et les requêtes de recherche sur le web.",
|
||||
"a user": "un utilisateur",
|
||||
"About": "À propos",
|
||||
"Access": "",
|
||||
"Access Control": "",
|
||||
"Accessible to all users": "",
|
||||
"Access": "Accès",
|
||||
"Access Control": "Contrôle d'accès",
|
||||
"Accessible to all users": "Accessible à tous les utilisateurs",
|
||||
"Account": "Compte",
|
||||
"Account Activation Pending": "Activation du compte en attente",
|
||||
"Accurate information": "Information exacte",
|
||||
"Actions": "Actions",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Activez cette commande en tapant \"/{{COMMAND}}\" dans l'entrée de chat.",
|
||||
"Active Users": "Utilisateurs actifs",
|
||||
"Add": "Ajouter",
|
||||
"Add a model ID": "",
|
||||
"Add a model ID": "Ajouter un identifiant de modèle",
|
||||
"Add a short description about what this model does": "Ajoutez une brève description de ce que fait ce modèle.",
|
||||
"Add a tag": "Ajouter un tag",
|
||||
"Add Arena Model": "Ajouter un modèle d'arène",
|
||||
"Add Connection": "",
|
||||
"Add Connection": "Ajouter une connexion",
|
||||
"Add Content": "Ajouter du contenu",
|
||||
"Add content here": "Ajoutez du contenu ici",
|
||||
"Add custom prompt": "Ajouter un prompt personnalisé",
|
||||
"Add Files": "Ajouter des fichiers",
|
||||
"Add Group": "",
|
||||
"Add Group": "Ajouter un groupe",
|
||||
"Add Memory": "Ajouter de la mémoire",
|
||||
"Add Model": "Ajouter un modèle",
|
||||
"Add Tag": "Ajouter un tag",
|
||||
"Add Tags": "Ajouter des tags",
|
||||
"Add text content": "Ajouter du contenu textuel",
|
||||
"Add User": "Ajouter un utilisateur",
|
||||
"Add User Group": "",
|
||||
"Add User Group": "Ajouter un groupe d'utilisateurs",
|
||||
"Adjusting these settings will apply changes universally to all users.": "L'ajustement de ces paramètres appliquera universellement les changements à tous les utilisateurs.",
|
||||
"admin": "administrateur",
|
||||
"Admin": "Administrateur",
|
||||
@@ -48,18 +49,18 @@
|
||||
"Advanced Params": "Paramètres avancés",
|
||||
"All chats": "Toutes les conversations",
|
||||
"All Documents": "Tous les documents",
|
||||
"All models deleted successfully": "",
|
||||
"Allow Chat Delete": "",
|
||||
"All models deleted successfully": "Tous les modèles ont été supprimés avec succès",
|
||||
"Allow Chat Delete": "Autoriser la suppression de la conversation",
|
||||
"Allow Chat Deletion": "Autoriser la suppression de l'historique de chat",
|
||||
"Allow Chat Edit": "",
|
||||
"Allow File Upload": "",
|
||||
"Allow Chat Edit": "Autoriser la modification de la conversation",
|
||||
"Allow File Upload": "Autoriser le téléchargement de fichiers",
|
||||
"Allow non-local voices": "Autoriser les voix non locales",
|
||||
"Allow Temporary Chat": "Autoriser le chat éphémère",
|
||||
"Allow User Location": "Autoriser l'emplacement de l'utilisateur",
|
||||
"Allow Voice Interruption in Call": "Autoriser l'interruption vocale pendant un appel",
|
||||
"Already have an account?": "Avez-vous déjà un compte ?",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "",
|
||||
"Amazing": "",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "Alternative au top_p, visant à assurer un équilibre entre qualité et variété. Le paramètre p représente la probabilité minimale pour qu'un token soit pris en compte, par rapport à la probabilité du token le plus probable. Par exemple, avec p=0.05 et le token le plus probable ayant une probabilité de 0.9, les logits ayant une valeur inférieure à 0.045 sont filtrés. (Par défaut : 0.0)",
|
||||
"Amazing": "Incroyable",
|
||||
"an assistant": "un assistant",
|
||||
"and": "et",
|
||||
"and {{COUNT}} more": "et {{COUNT}} autres",
|
||||
@@ -68,15 +69,15 @@
|
||||
"API Key": "Clé d'API",
|
||||
"API Key created.": "Clé d'API générée.",
|
||||
"API keys": "Clés d'API",
|
||||
"Application DN": "",
|
||||
"Application DN Password": "",
|
||||
"applies to all users with the \"user\" role": "",
|
||||
"Application DN": "DN de l'application",
|
||||
"Application DN Password": "Mot de passe DN de l'application",
|
||||
"applies to all users with the \"user\" role": "s'applique à tous les utilisateurs ayant le rôle « utilisateur »",
|
||||
"April": "Avril",
|
||||
"Archive": "Archiver",
|
||||
"Archive All Chats": "Archiver toutes les conversations",
|
||||
"Archived Chats": "Conversations archivées",
|
||||
"archived-chat-export": "",
|
||||
"Are you sure you want to unarchive all archived chats?": "",
|
||||
"archived-chat-export": "exportation de conversation archivée",
|
||||
"Are you sure you want to unarchive all archived chats?": "Êtes-vous sûr de vouloir désarchiver toutes les conversations archivées?",
|
||||
"Are you sure?": "Êtes-vous certain ?",
|
||||
"Arena Models": "Modèles d'arène",
|
||||
"Artifacts": "Artéfacts",
|
||||
@@ -84,19 +85,21 @@
|
||||
"Assistant": "Assistant",
|
||||
"Attach file": "Joindre un document",
|
||||
"Attention to detail": "Attention aux détails",
|
||||
"Attribute for Username": "",
|
||||
"Attribute for Username": "Attribut pour le nom d'utilisateur",
|
||||
"Audio": "Audio",
|
||||
"August": "Août",
|
||||
"Authenticate": "",
|
||||
"Authenticate": "Authentifier",
|
||||
"Auto-Copy Response to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
|
||||
"Auto-playback response": "Lire automatiquement la réponse",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Chaîne d'authentification de l'API",
|
||||
"AUTOMATIC1111 Base URL": "URL de base AUTOMATIC1111",
|
||||
"AUTOMATIC1111 Base URL is required.": "L'URL de base {AUTOMATIC1111} est requise.",
|
||||
"Available list": "Liste disponible",
|
||||
"available!": "disponible !",
|
||||
"Awful": "",
|
||||
"Awful": "Horrible",
|
||||
"Azure AI Speech": "Azure AI Speech",
|
||||
"Azure Region": "Région Azure",
|
||||
"Back": "Retour en arrière",
|
||||
@@ -106,27 +109,28 @@
|
||||
"Batch Size (num_batch)": "Batch Size (num_batch)",
|
||||
"before": "avant",
|
||||
"Being lazy": "Être fainéant",
|
||||
"Bing Search V7 Endpoint": "",
|
||||
"Bing Search V7 Subscription Key": "",
|
||||
"Bing Search V7 Endpoint": "Point de terminaison Bing Search V7",
|
||||
"Bing Search V7 Subscription Key": "Clé d'abonnement Bing Search V7",
|
||||
"Brave Search API Key": "Clé API Brave Search",
|
||||
"By {{name}}": "",
|
||||
"By {{name}}": "Par {{name}}",
|
||||
"Bypass SSL verification for Websites": "Bypasser la vérification SSL pour les sites web",
|
||||
"Call": "Appeler",
|
||||
"Call feature is not supported when using Web STT engine": "La fonction d'appel n'est pas prise en charge lors de l'utilisation du moteur Web STT",
|
||||
"Camera": "Appareil photo",
|
||||
"Cancel": "Annuler",
|
||||
"Capabilities": "Capacités",
|
||||
"Certificate Path": "",
|
||||
"Certificate Path": "Chemin du certificat",
|
||||
"Change Password": "Changer le mot de passe",
|
||||
"Character": "Caractère",
|
||||
"Chart new frontiers": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "Tracer de nouvelles frontières",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Image d'arrière-plan de la fenêtre de chat",
|
||||
"Chat Bubble UI": "Bulles de chat",
|
||||
"Chat Controls": "Contrôles du chat",
|
||||
"Chat direction": "Direction du chat",
|
||||
"Chat Overview": "Aperçu du chat",
|
||||
"Chat Permissions": "",
|
||||
"Chat Permissions": "Autorisations de chat",
|
||||
"Chat Tags Auto-Generation": "Génération automatique des tags",
|
||||
"Chats": "Conversations",
|
||||
"Check Again": "Vérifiez à nouveau.",
|
||||
@@ -136,11 +140,11 @@
|
||||
"Chunk Overlap": "Chevauchement des chunks",
|
||||
"Chunk Params": "Paramètres des chunks",
|
||||
"Chunk Size": "Taille des chunks",
|
||||
"Ciphers": "",
|
||||
"Ciphers": "Chiffres",
|
||||
"Citation": "Citation",
|
||||
"Clear memory": "Effacer la mémoire",
|
||||
"click here": "",
|
||||
"Click here for filter guides.": "",
|
||||
"click here": "cliquez ici",
|
||||
"Click here for filter guides.": "Cliquez ici pour les guides de filtrage.",
|
||||
"Click here for help.": "Cliquez ici pour obtenir de l'aide.",
|
||||
"Click here to": "Cliquez ici pour",
|
||||
"Click here to download user import template file.": "Cliquez ici pour télécharger le fichier modèle d'importation des utilisateurs.",
|
||||
@@ -157,7 +161,7 @@
|
||||
"Code execution": "Exécution de code",
|
||||
"Code formatted successfully": "Le code a été formaté avec succès",
|
||||
"Collection": "Collection",
|
||||
"Color": "",
|
||||
"Color": "Couleur",
|
||||
"ComfyUI": "ComfyUI",
|
||||
"ComfyUI Base URL": "URL de base ComfyUI",
|
||||
"ComfyUI Base URL is required.": "L'URL de base ComfyUI est requise.",
|
||||
@@ -166,7 +170,8 @@
|
||||
"Command": "Commande",
|
||||
"Completions": "Complétions",
|
||||
"Concurrent Requests": "Demandes concurrentes",
|
||||
"Configure": "",
|
||||
"Configure": "Configurer",
|
||||
"Configure Models": "Configurer les modèles",
|
||||
"Confirm": "Confirmer",
|
||||
"Confirm Password": "Confirmer le mot de passe",
|
||||
"Confirm your action": "Confirmer votre action",
|
||||
@@ -177,11 +182,11 @@
|
||||
"Context Length": "Longueur du contexte",
|
||||
"Continue Response": "Continuer la réponse",
|
||||
"Continue with {{provider}}": "Continuer avec {{provider}}",
|
||||
"Continue with Email": "",
|
||||
"Continue with LDAP": "",
|
||||
"Continue with Email": "Continuer avec l'email",
|
||||
"Continue with LDAP": "Continuer avec LDAP",
|
||||
"Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "Contrôle la façon dont le texte des messages est divisé pour les demandes de Text-to-Speech. « ponctuation » divise en phrases, « paragraphes » divise en paragraphes et « aucun » garde le message en tant que chaîne de texte unique.",
|
||||
"Controls": "Contrôles",
|
||||
"Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "",
|
||||
"Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "Contrôle l'équilibre entre la cohérence et la diversité de la sortie. Une valeur plus basse produira un texte plus focalisé et cohérent. (Par défaut : 5.0)",
|
||||
"Copied": "Copié",
|
||||
"Copied shared chat URL to clipboard!": "URL du chat copié dans le presse-papiers !",
|
||||
"Copied to clipboard": "Copié dans le presse-papiers",
|
||||
@@ -191,12 +196,12 @@
|
||||
"Copy Link": "Copier le lien",
|
||||
"Copy to clipboard": "Copier dans le presse-papiers",
|
||||
"Copying to clipboard was successful!": "La copie dans le presse-papiers a réussi !",
|
||||
"Create": "",
|
||||
"Create a knowledge base": "",
|
||||
"Create": "Créer",
|
||||
"Create a knowledge base": "Créer une base de connaissances",
|
||||
"Create a model": "Créer un modèle",
|
||||
"Create Account": "Créer un compte",
|
||||
"Create Admin Account": "",
|
||||
"Create Group": "",
|
||||
"Create Admin Account": "Créer un compte administrateur",
|
||||
"Create Group": "Créer un groupe",
|
||||
"Create Knowledge": "Créer une connaissance",
|
||||
"Create new key": "Créer une nouvelle clé",
|
||||
"Create new secret key": "Créer une nouvelle clé secrète",
|
||||
@@ -215,16 +220,17 @@
|
||||
"Default (SentenceTransformers)": "Par défaut (Sentence Transformers)",
|
||||
"Default Model": "Modèle standard",
|
||||
"Default model updated": "Modèle par défaut mis à jour",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Models": "Modèles par défaut",
|
||||
"Default permissions": "Autorisations par défaut",
|
||||
"Default permissions updated successfully": "Autorisations par défaut mises à jour avec succès",
|
||||
"Default Prompt Suggestions": "Suggestions de prompts par défaut",
|
||||
"Default to 389 or 636 if TLS is enabled": "",
|
||||
"Default to ALL": "",
|
||||
"Default to 389 or 636 if TLS is enabled": "Par défaut à 389 ou 636 si TLS est activé",
|
||||
"Default to ALL": "Par défaut à TOUS",
|
||||
"Default User Role": "Rôle utilisateur par défaut",
|
||||
"Delete": "Supprimer",
|
||||
"Delete a model": "Supprimer un modèle",
|
||||
"Delete All Chats": "Supprimer toutes les conversations",
|
||||
"Delete All Models": "",
|
||||
"Delete All Models": "Supprimer tous les modèles",
|
||||
"Delete chat": "Supprimer la conversation",
|
||||
"Delete Chat": "Supprimer la Conversation",
|
||||
"Delete chat?": "Supprimer la conversation ?",
|
||||
@@ -236,8 +242,8 @@
|
||||
"Delete User": "Supprimer le compte d'utilisateur",
|
||||
"Deleted {{deleteModelTag}}": "Supprimé {{deleteModelTag}}",
|
||||
"Deleted {{name}}": "Supprimé {{name}}",
|
||||
"Deleted User": "",
|
||||
"Describe your knowledge base and objectives": "",
|
||||
"Deleted User": "Utilisateur supprimé",
|
||||
"Describe your knowledge base and objectives": "Décrivez votre base de connaissances et vos objectifs",
|
||||
"Description": "Description",
|
||||
"Didn't fully follow instructions": "N'a pas entièrement respecté les instructions",
|
||||
"Disabled": "Désactivé",
|
||||
@@ -245,17 +251,17 @@
|
||||
"Discover a model": "Trouvez un modèle",
|
||||
"Discover a prompt": "Trouvez un prompt",
|
||||
"Discover a tool": "Trouvez un outil",
|
||||
"Discover wonders": "",
|
||||
"Discover wonders": "Découvrir des merveilles",
|
||||
"Discover, download, and explore custom functions": "Découvrez, téléchargez et explorez des fonctions personnalisées",
|
||||
"Discover, download, and explore custom prompts": "Découvrez, téléchargez et explorez des prompts personnalisés",
|
||||
"Discover, download, and explore custom tools": "Découvrez, téléchargez et explorez des outils personnalisés",
|
||||
"Discover, download, and explore model presets": "Découvrir, télécharger et explorer des préréglages de modèles",
|
||||
"Dismissible": "Fermeture",
|
||||
"Display": "",
|
||||
"Display": "Afficher",
|
||||
"Display Emoji in Call": "Afficher les emojis pendant l'appel",
|
||||
"Display the username instead of You in the Chat": "Afficher le nom d'utilisateur à la place de \"Vous\" dans le chat",
|
||||
"Displays citations in the response": "",
|
||||
"Dive into knowledge": "",
|
||||
"Displays citations in the response": "Affiche les citations dans la réponse",
|
||||
"Dive into knowledge": "Plonger dans les connaissances",
|
||||
"Do not install functions from sources you do not fully trust.": "N'installez pas de fonctions provenant de sources auxquelles vous ne faites pas entièrement confiance.",
|
||||
"Do not install tools from sources you do not fully trust.": "N'installez pas d'outils provenant de sources auxquelles vous ne faites pas entièrement confiance.",
|
||||
"Document": "Document",
|
||||
@@ -270,53 +276,51 @@
|
||||
"Download": "Télécharger",
|
||||
"Download canceled": "Téléchargement annulé",
|
||||
"Download Database": "Télécharger la base de données",
|
||||
"Drag and drop a file to upload or select a file to view": "",
|
||||
"Drag and drop a file to upload or select a file to view": "Glissez et déposez un fichier pour le télécharger ou sélectionnez un fichier à visualiser",
|
||||
"Draw": "Match nul",
|
||||
"Drop any files here to add to the conversation": "Déposez des fichiers ici pour les ajouter à la conversation",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "par ex. '30s', '10 min'. Les unités de temps valides sont 's', 'm', 'h'.",
|
||||
"e.g. A filter to remove profanity from text": "",
|
||||
"e.g. My Filter": "",
|
||||
"e.g. My Tools": "",
|
||||
"e.g. my_filter": "",
|
||||
"e.g. my_tools": "",
|
||||
"e.g. Tools for performing various operations": "",
|
||||
"e.g. A filter to remove profanity from text": "par ex. un filtre pour retirer les vulgarités du texte",
|
||||
"e.g. My Filter": "par ex. Mon Filtre",
|
||||
"e.g. My Tools": "par ex. Mes Outils",
|
||||
"e.g. my_filter": "par ex. mon_filtre",
|
||||
"e.g. my_tools": "par ex. mes_outils",
|
||||
"e.g. Tools for performing various operations": "par ex. Outils pour effectuer diverses opérations",
|
||||
"Edit": "Modifier",
|
||||
"Edit Arena Model": "Modifier le modèle d'arène",
|
||||
"Edit Connection": "",
|
||||
"Edit Default Permissions": "",
|
||||
"Edit Connection": "Modifier la connexion",
|
||||
"Edit Default Permissions": "Modifier les autorisations par défaut",
|
||||
"Edit Memory": "Modifier la mémoire",
|
||||
"Edit User": "Modifier l'utilisateur",
|
||||
"Edit User Group": "",
|
||||
"Edit User Group": "Modifier le groupe d'utilisateurs",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
"Email": "E-mail",
|
||||
"Embark on adventures": "",
|
||||
"Embark on adventures": "Embarquez pour des aventures",
|
||||
"Embedding Batch Size": "Taille du lot d'embedding",
|
||||
"Embedding Model": "Modèle d'embedding",
|
||||
"Embedding Model Engine": "Moteur de modèle d'embedding",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modèle d'embedding défini sur « {{embedding_model}} »",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable API Key Auth": "Activer l'authentification par clé API",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Activer le partage communautaire",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Activer le verrouillage de la mémoire (mlock) pour empêcher les données du modèle d'être échangées de la RAM. Cette option verrouille l'ensemble de pages de travail du modèle en RAM, garantissant qu'elles ne seront pas échangées vers le disque. Cela peut aider à maintenir les performances en évitant les défauts de page et en assurant un accès rapide aux données.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Activer le mappage de la mémoire (mmap) pour charger les données du modèle. Cette option permet au système d'utiliser le stockage disque comme une extension de la RAM en traitant les fichiers disque comme s'ils étaient en RAM. Cela peut améliorer les performances du modèle en permettant un accès plus rapide aux données. Cependant, cela peut ne pas fonctionner correctement avec tous les systèmes et peut consommer une quantité significative d'espace disque.",
|
||||
"Enable Message Rating": "Activer l'évaluation des messages",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Activer l'échantillonnage Mirostat pour contrôler la perplexité. (Par défaut : 0, 0 = Désactivé, 1 = Mirostat, 2 = Mirostat 2.0)",
|
||||
"Enable New Sign Ups": "Activer les nouvelles inscriptions",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Activer la recherche Web",
|
||||
"Enable Web Search Query Generation": "Activer la génération de requêtes de recherche Web",
|
||||
"Enabled": "Activé",
|
||||
"Engine": "Moteur",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Vérifiez que votre fichier CSV comprenne les 4 colonnes dans cet ordre : Name, Email, Password, Role.",
|
||||
"Enter {{role}} message here": "Entrez le message {{role}} ici",
|
||||
"Enter a detail about yourself for your LLMs to recall": "Saisissez un détail sur vous-même que vos LLMs pourront se rappeler",
|
||||
"Enter api auth string (e.g. username:password)": "Entrez la chaîne d'authentification de l'API (par ex. nom d'utilisateur:mot de passe)",
|
||||
"Enter Application DN": "",
|
||||
"Enter Application DN Password": "",
|
||||
"Enter Bing Search V7 Endpoint": "",
|
||||
"Enter Bing Search V7 Subscription Key": "",
|
||||
"Enter Application DN": "Entrez le DN de l'application",
|
||||
"Enter Application DN Password": "Entrez le mot de passe DN de l'application",
|
||||
"Enter Bing Search V7 Endpoint": "Entrez le point de terminaison Bing Search V7",
|
||||
"Enter Bing Search V7 Subscription Key": "Entrez la clé d'abonnement Bing Search V7",
|
||||
"Enter Brave Search API Key": "Entrez la clé API Brave Search",
|
||||
"Enter certificate path": "",
|
||||
"Enter certificate path": "Entrez le chemin du certificat",
|
||||
"Enter CFG Scale (e.g. 7.0)": "Entrez l'échelle CFG (par ex. 7.0)",
|
||||
"Enter Chunk Overlap": "Entrez le chevauchement des chunks",
|
||||
"Enter Chunk Size": "Entrez la taille des chunks",
|
||||
@@ -325,25 +329,26 @@
|
||||
"Enter Google PSE API Key": "Entrez la clé API Google PSE",
|
||||
"Enter Google PSE Engine Id": "Entrez l'identifiant du moteur Google PSE",
|
||||
"Enter Image Size (e.g. 512x512)": "Entrez la taille de l'image (par ex. 512x512)",
|
||||
"Enter Jina API Key": "",
|
||||
"Enter Jina API Key": "Entrez la clé API Jina",
|
||||
"Enter language codes": "Entrez les codes de langue",
|
||||
"Enter Model ID": "Entrez l'ID du modèle",
|
||||
"Enter model tag (e.g. {{modelTag}})": "Entrez le tag du modèle (par ex. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Mojeek Search API Key": "Entrez la clé API Mojeek",
|
||||
"Enter Number of Steps (e.g. 50)": "Entrez le nombre d'étapes (par ex. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Entrez le sampler (par ex. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Entrez le planificateur (par ex. Karras)",
|
||||
"Enter Score": "Entrez votre score",
|
||||
"Enter SearchApi API Key": "Entrez la clé API SearchApi",
|
||||
"Enter SearchApi Engine": "Entrez le moteur de recherche SearchApi",
|
||||
"Enter Searxng Query URL": "Entrez l'URL de la requête Searxng",
|
||||
"Enter Seed": "",
|
||||
"Enter Seed": "Entrez Seed",
|
||||
"Enter Serper API Key": "Entrez la clé API Serper",
|
||||
"Enter Serply API Key": "Entrez la clé API Serply",
|
||||
"Enter Serpstack API Key": "Entrez la clé API Serpstack",
|
||||
"Enter server host": "",
|
||||
"Enter server label": "",
|
||||
"Enter server port": "",
|
||||
"Enter server host": "Entrez l'hôte du serveur",
|
||||
"Enter server label": "Entrez l'étiquette du serveur",
|
||||
"Enter server port": "Entrez le port du serveur",
|
||||
"Enter stop sequence": "Entrez la séquence d'arrêt",
|
||||
"Enter system prompt": "Entrez le prompt système",
|
||||
"Enter Tavily API Key": "Entrez la clé API Tavily",
|
||||
@@ -356,38 +361,39 @@
|
||||
"Enter your message": "Entrez votre message",
|
||||
"Enter Your Password": "Entrez votre mot de passe",
|
||||
"Enter Your Role": "Entrez votre rôle",
|
||||
"Enter Your Username": "",
|
||||
"Enter Your Username": "Entrez votre nom d'utilisateur",
|
||||
"Error": "Erreur",
|
||||
"ERROR": "ERREUR",
|
||||
"Evaluations": "Évaluations",
|
||||
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "",
|
||||
"Example: ALL": "",
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "Exemple: (&(objectClass=inetOrgPerson)(uid=%s))",
|
||||
"Example: ALL": "Exemple: TOUS",
|
||||
"Example: ou=users,dc=foo,dc=example": "Exemple: ou=utilisateurs,dc=foo,dc=exemple",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Exemple: sAMAccountName ou uid ou userPrincipalName",
|
||||
"Exclude": "Exclure",
|
||||
"Experimental": "Expérimental",
|
||||
"Explore the cosmos": "",
|
||||
"Explore the cosmos": "Explorer le cosmos",
|
||||
"Export": "Exportation",
|
||||
"Export All Archived Chats": "",
|
||||
"Export All Archived Chats": "Exporter toutes les conversations archivées",
|
||||
"Export All Chats (All Users)": "Exporter toutes les conversations (de tous les utilisateurs)",
|
||||
"Export chat (.json)": "Exporter la conversation (.json)",
|
||||
"Export Chats": "Exporter les conversations",
|
||||
"Export Config to JSON File": "Exporter la configuration vers un fichier JSON",
|
||||
"Export Functions": "Exporter des fonctions",
|
||||
"Export Models": "Exporter des modèles",
|
||||
"Export Presets": "",
|
||||
"Export Presets": "Exporter les préréglages",
|
||||
"Export Prompts": "Exporter des prompts",
|
||||
"Export to CSV": "",
|
||||
"Export to CSV": "Exporter en CSV",
|
||||
"Export Tools": "Exporter des outils",
|
||||
"External Models": "Modèles externes",
|
||||
"Failed to add file.": "Échec de l'ajout du fichier.",
|
||||
"Failed to create API Key.": "Échec de la création de la clé API.",
|
||||
"Failed to read clipboard contents": "Échec de la lecture du contenu du presse-papiers",
|
||||
"Failed to save models configuration": "Échec de la sauvegarde de la configuration des modèles",
|
||||
"Failed to update settings": "Échec de la mise à jour des paramètres",
|
||||
"Failed to upload file.": "Échec du téléchargement du fichier.",
|
||||
"February": "Février",
|
||||
"Feedback History": "Historique des avis",
|
||||
"Feedbacks": "",
|
||||
"Feedbacks": "Avis",
|
||||
"Feel free to add specific details": "N'hésitez pas à ajouter des détails spécifiques",
|
||||
"File": "Fichier",
|
||||
"File added successfully.": "Fichier ajouté avec succès.",
|
||||
@@ -408,18 +414,18 @@
|
||||
"Folder name cannot be empty.": "Le nom du dossier ne peut pas être vide.",
|
||||
"Folder name updated successfully": "Le nom du dossier a été mis à jour avec succès",
|
||||
"Followed instructions perfectly": "A parfaitement suivi les instructions",
|
||||
"Forge new paths": "",
|
||||
"Forge new paths": "Créer de nouveaux chemins",
|
||||
"Form": "Formulaire",
|
||||
"Format your variables using brackets like this:": "Formatez vos variables en utilisant des parenthèses comme ceci :",
|
||||
"Frequency Penalty": "Pénalité de fréquence",
|
||||
"Function": "Fonction",
|
||||
"Function created successfully": "La fonction a été créée avec succès",
|
||||
"Function deleted successfully": "Fonction supprimée avec succès",
|
||||
"Function Description": "",
|
||||
"Function ID": "",
|
||||
"Function Description": "Description de la fonction",
|
||||
"Function ID": "ID de la fonction",
|
||||
"Function is now globally disabled": "La fonction est désormais désactivée globalement",
|
||||
"Function is now globally enabled": "La fonction est désormais activée globalement",
|
||||
"Function Name": "",
|
||||
"Function Name": "Nom de la fonction",
|
||||
"Function updated successfully": "La fonction a été mise à jour avec succès",
|
||||
"Functions": "Fonctions",
|
||||
"Functions allow arbitrary code execution": "Les fonctions permettent l'exécution de code arbitraire",
|
||||
@@ -430,34 +436,34 @@
|
||||
"Generate Image": "Générer une image",
|
||||
"Generating search query": "Génération d'une requête de recherche",
|
||||
"Generation Info": "Informations sur la génération",
|
||||
"Get started": "",
|
||||
"Get started with {{WEBUI_NAME}}": "",
|
||||
"Get started": "Commencer",
|
||||
"Get started with {{WEBUI_NAME}}": "Commencez avec {{WEBUI_NAME}}",
|
||||
"Global": "Mondial",
|
||||
"Good Response": "Bonne réponse",
|
||||
"Google PSE API Key": "Clé API Google PSE",
|
||||
"Google PSE Engine Id": "ID du moteur de recherche PSE de Google",
|
||||
"Group created successfully": "",
|
||||
"Group deleted successfully": "",
|
||||
"Group Description": "",
|
||||
"Group Name": "",
|
||||
"Group updated successfully": "",
|
||||
"Groups": "",
|
||||
"Group created successfully": "Groupe créé avec succès",
|
||||
"Group deleted successfully": "Groupe supprimé avec succès",
|
||||
"Group Description": "Description du groupe",
|
||||
"Group Name": "Nom du groupe",
|
||||
"Group updated successfully": "Groupe mis à jour avec succès",
|
||||
"Groups": "Groupes",
|
||||
"h:mm a": "h:mm a",
|
||||
"Haptic Feedback": "Retour haptique",
|
||||
"has no conversations.": "n'a aucune conversation.",
|
||||
"Hello, {{name}}": "Bonjour, {{name}}.",
|
||||
"Help": "Aide",
|
||||
"Help us create the best community leaderboard by sharing your feedback history!": "Aidez-nous à créer le meilleur classement communautaire en partageant votre historique des avis !",
|
||||
"Hex Color": "",
|
||||
"Hex Color - Leave empty for default color": "",
|
||||
"Hex Color": "Couleur Hex",
|
||||
"Hex Color - Leave empty for default color": "Couleur Hex - Laissez vide pour la couleur par défaut",
|
||||
"Hide": "Cacher",
|
||||
"Host": "",
|
||||
"Host": "Hôte",
|
||||
"How can I help you today?": "Comment puis-je vous aider aujourd'hui ?",
|
||||
"How would you rate this response?": "",
|
||||
"How would you rate this response?": "Comment évalueriez-vous cette réponse ?",
|
||||
"Hybrid Search": "Recherche hybride",
|
||||
"I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Je reconnais avoir lu et compris les implications de mes actions. Je suis conscient des risques associés à l'exécution d'un code arbitraire et j'ai vérifié la fiabilité de la source.",
|
||||
"ID": "ID",
|
||||
"Ignite curiosity": "",
|
||||
"Ignite curiosity": "Éveiller la curiosité",
|
||||
"Image Generation (Experimental)": "Génération d'images (expérimental)",
|
||||
"Image Generation Engine": "Moteur de génération d'images",
|
||||
"Image Settings": "Paramètres de génération d'images",
|
||||
@@ -466,13 +472,13 @@
|
||||
"Import Config from JSON File": "Importer la configuration depuis un fichier JSON",
|
||||
"Import Functions": "Importer des fonctions",
|
||||
"Import Models": "Importer des modèles",
|
||||
"Import Presets": "",
|
||||
"Import Presets": "Importer les préréglages",
|
||||
"Import Prompts": "Importer des prompts",
|
||||
"Import Tools": "Importer des outils",
|
||||
"Include": "Inclure",
|
||||
"Include `--api-auth` flag when running stable-diffusion-webui": "Inclure le drapeau `--api-auth` lors de l'exécution de stable-diffusion-webui",
|
||||
"Include `--api` flag when running stable-diffusion-webui": "Inclure le drapeau `--api` lorsque vous exécutez stable-diffusion-webui",
|
||||
"Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1)": "",
|
||||
"Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1)": "Influence la rapidité avec laquelle l'algorithme répond aux retours du texte généré. Un taux d'apprentissage plus bas entraînera des ajustements plus lents, tandis qu'un taux d'apprentissage plus élevé rendra l'algorithme plus réactif. (Par défaut : 0.1)",
|
||||
"Info": "Info",
|
||||
"Input commands": "Commandes d'entrée",
|
||||
"Install from Github URL": "Installer depuis une URL GitHub",
|
||||
@@ -481,7 +487,7 @@
|
||||
"Invalid file format.": "Format de fichier non valide.",
|
||||
"Invalid Tag": "Tag non valide",
|
||||
"January": "Janvier",
|
||||
"Jina API Key": "",
|
||||
"Jina API Key": "Clé API Jina",
|
||||
"join our Discord for help.": "Rejoignez notre Discord pour obtenir de l'aide.",
|
||||
"JSON": "JSON",
|
||||
"JSON Preview": "Aperçu JSON",
|
||||
@@ -490,31 +496,31 @@
|
||||
"JWT Expiration": "Expiration du token JWT",
|
||||
"JWT Token": "Token JWT",
|
||||
"Keep Alive": "Temps de maintien connecté",
|
||||
"Key": "",
|
||||
"Key": "Clé",
|
||||
"Keyboard shortcuts": "Raccourcis clavier",
|
||||
"Knowledge": "Connaissances",
|
||||
"Knowledge Access": "",
|
||||
"Knowledge Access": "Accès aux connaissances",
|
||||
"Knowledge created successfully.": "Connaissance créée avec succès.",
|
||||
"Knowledge deleted successfully.": "Connaissance supprimée avec succès.",
|
||||
"Knowledge reset successfully.": "Connaissance réinitialisée avec succès.",
|
||||
"Knowledge updated successfully": "Connaissance mise à jour avec succès",
|
||||
"Label": "",
|
||||
"Label": "Étiquette",
|
||||
"Landing Page Mode": "Mode de la page d'accueil",
|
||||
"Language": "Langue",
|
||||
"Last Active": "Dernière activité",
|
||||
"Last Modified": "Dernière modification",
|
||||
"LDAP": "",
|
||||
"LDAP server updated": "",
|
||||
"LDAP": "LDAP",
|
||||
"LDAP server updated": "Serveur LDAP mis à jour",
|
||||
"Leaderboard": "Classement",
|
||||
"Leave empty for unlimited": "Laissez vide pour illimité",
|
||||
"Leave empty to include all models from \"{{URL}}/api/tags\" endpoint": "",
|
||||
"Leave empty to include all models from \"{{URL}}/models\" endpoint": "",
|
||||
"Leave empty to include all models from \"{{URL}}/api/tags\" endpoint": "Laissez vide pour inclure tous les modèles depuis le point de terminaison \"{{URL}}/api/tags\"",
|
||||
"Leave empty to include all models from \"{{URL}}/models\" endpoint": "Laissez vide pour inclure tous les modèles depuis le point de terminaison \"{{URL}}/models\"",
|
||||
"Leave empty to include all models or select specific models": "Laissez vide pour inclure tous les modèles ou sélectionnez des modèles spécifiques",
|
||||
"Leave empty to use the default prompt, or enter a custom prompt": "Laissez vide pour utiliser le prompt par défaut, ou entrez un prompt personnalisé",
|
||||
"Light": "Clair",
|
||||
"Listening...": "Écoute en cours...",
|
||||
"LLMs can make mistakes. Verify important information.": "Les LLM peuvent faire des erreurs. Vérifiez les informations importantes.",
|
||||
"Local": "",
|
||||
"Local": "Local",
|
||||
"Local Models": "Modèles locaux",
|
||||
"Lost": "Perdu",
|
||||
"LTR": "LTR",
|
||||
@@ -523,9 +529,9 @@
|
||||
"Make sure to export a workflow.json file as API format from ComfyUI.": "Veillez à exporter un fichier workflow.json au format API depuis ComfyUI.",
|
||||
"Manage": "Gérer",
|
||||
"Manage Arena Models": "Gérer les modèles d'arène",
|
||||
"Manage Ollama": "",
|
||||
"Manage Ollama API Connections": "",
|
||||
"Manage OpenAI API Connections": "",
|
||||
"Manage Ollama": "Gérer Ollama",
|
||||
"Manage Ollama API Connections": "Gérer les connexions API Ollama",
|
||||
"Manage OpenAI API Connections": "Gérer les connexions API OpenAI",
|
||||
"Manage Pipelines": "Gérer les pipelines",
|
||||
"March": "Mars",
|
||||
"Max Tokens (num_predict)": "Nb max de tokens (num_predict)",
|
||||
@@ -559,22 +565,23 @@
|
||||
"Model accepts image inputs": "Le modèle accepte les images en entrée",
|
||||
"Model created successfully!": "Le modèle a été créé avec succès !",
|
||||
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Chemin du système de fichiers de modèle détecté. Le nom court du modèle est requis pour la mise à jour, l'opération ne peut pas être poursuivie.",
|
||||
"Model Filtering": "",
|
||||
"Model Filtering": "Filtrage de modèle",
|
||||
"Model ID": "ID du modèle",
|
||||
"Model IDs": "",
|
||||
"Model IDs": "ID des modèles",
|
||||
"Model Name": "Nom du modèle",
|
||||
"Model not selected": "Modèle non sélectionné",
|
||||
"Model Params": "Paramètres du modèle",
|
||||
"Model Permissions": "",
|
||||
"Model Permissions": "Autorisations du modèle",
|
||||
"Model updated successfully": "Le modèle a été mis à jour avec succès",
|
||||
"Modelfile Content": "Contenu du Fichier de Modèle",
|
||||
"Models": "Modèles",
|
||||
"Models Access": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"Models Access": "Accès aux modèles",
|
||||
"Models configuration saved successfully": "Configuration des modèles enregistrée avec succès",
|
||||
"Mojeek Search API Key": "Clé API Mojeek",
|
||||
"more": "plus",
|
||||
"More": "Plus",
|
||||
"Name": "Nom d'utilisateur",
|
||||
"Name your knowledge base": "",
|
||||
"Name your knowledge base": "Nommez votre base de connaissances",
|
||||
"New Chat": "Nouvelle conversation",
|
||||
"New folder": "Nouveau dossier",
|
||||
"New Password": "Nouveau mot de passe",
|
||||
@@ -584,15 +591,16 @@
|
||||
"No feedbacks found": "Aucun avis trouvé",
|
||||
"No file selected": "Aucun fichier sélectionné",
|
||||
"No files found.": "Aucun fichier trouvé.",
|
||||
"No groups with access, add a group to grant access": "",
|
||||
"No groups with access, add a group to grant access": "Aucun groupe n'a accès, ajoutez un groupe pour accorder l'accès",
|
||||
"No HTML, CSS, or JavaScript content found.": "Aucun contenu HTML, CSS ou JavaScript trouvé.",
|
||||
"No knowledge found": "Aucune connaissance trouvée",
|
||||
"No model IDs": "",
|
||||
"No model IDs": "Aucun ID de modèle",
|
||||
"No models found": "Aucun modèle trouvé",
|
||||
"No models selected": "Aucun modèle sélectionné",
|
||||
"No results found": "Aucun résultat trouvé",
|
||||
"No search query generated": "Aucune requête de recherche générée",
|
||||
"No source available": "Aucune source n'est disponible",
|
||||
"No users were found.": "",
|
||||
"No users were found.": "Aucun utilisateur trouvé.",
|
||||
"No valves to update": "Aucune vanne à mettre à jour",
|
||||
"None": "Aucun",
|
||||
"Not factually correct": "Non factuellement correct",
|
||||
@@ -611,13 +619,13 @@
|
||||
"Ollama": "Ollama",
|
||||
"Ollama API": "API Ollama",
|
||||
"Ollama API disabled": "API Ollama désactivée",
|
||||
"Ollama API settings updated": "",
|
||||
"Ollama API settings updated": "Paramètres de l'API Ollama mis à jour",
|
||||
"Ollama Version": "Version Ollama",
|
||||
"On": "Activé",
|
||||
"Only alphanumeric characters and hyphens are allowed": "",
|
||||
"Only alphanumeric characters and hyphens are allowed": "Seuls les caractères alphanumériques et les tirets sont autorisés",
|
||||
"Only alphanumeric characters and hyphens are allowed in the command string.": "Seuls les caractères alphanumériques et les tirets sont autorisés dans la chaîne de commande.",
|
||||
"Only collections can be edited, create a new knowledge base to edit/add documents.": "Seules les collections peuvent être modifiées, créez une nouvelle base de connaissance pour modifier/ajouter des documents.",
|
||||
"Only select users and groups with permission can access": "",
|
||||
"Only select users and groups with permission can access": "Seuls les utilisateurs et groupes autorisés peuvent accéder",
|
||||
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Oups ! Il semble que l'URL soit invalide. Veuillez vérifier à nouveau et réessayer.",
|
||||
"Oops! There are files still uploading. Please wait for the upload to complete.": "Oups ! Des fichiers sont encore en cours de téléversement. Veuillez patienter jusqu'à la fin du téléversement.",
|
||||
"Oops! There was an error in the previous response.": "Oups ! Il y a eu une erreur dans la réponse précédente.",
|
||||
@@ -626,34 +634,34 @@
|
||||
"Open in full screen": "Ouvrir en plein écran",
|
||||
"Open new chat": "Ouvrir une nouvelle conversation",
|
||||
"Open WebUI uses faster-whisper internally.": "Open WebUI utilise faster-whisper en interne.",
|
||||
"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "",
|
||||
"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Open WebUI utilise SpeechT5 et les embeddings de locuteur CMU Arctic.",
|
||||
"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "La version Open WebUI (v{{OPEN_WEBUI_VERSION}}) est inférieure à la version requise (v{{REQUIRED_VERSION}})",
|
||||
"OpenAI": "OpenAI",
|
||||
"OpenAI API": "API compatibles OpenAI",
|
||||
"OpenAI API Config": "Configuration de l'API OpenAI",
|
||||
"OpenAI API Key is required.": "Une clé API OpenAI est requise.",
|
||||
"OpenAI API settings updated": "",
|
||||
"OpenAI API settings updated": "Paramètres de l'API OpenAI mis à jour",
|
||||
"OpenAI URL/Key required.": "URL/Clé OpenAI requise.",
|
||||
"or": "ou",
|
||||
"Organize your users": "",
|
||||
"Organize your users": "Organisez vos utilisateurs",
|
||||
"Other": "Autre",
|
||||
"OUTPUT": "SORTIE",
|
||||
"Output format": "Format de sortie",
|
||||
"Overview": "Aperçu",
|
||||
"page": "page",
|
||||
"Password": "Mot de passe",
|
||||
"Paste Large Text as File": "",
|
||||
"Paste Large Text as File": "Coller un texte volumineux comme fichier",
|
||||
"PDF document (.pdf)": "Document au format PDF (.pdf)",
|
||||
"PDF Extract Images (OCR)": "Extraction d'images PDF (OCR)",
|
||||
"pending": "en attente",
|
||||
"Permission denied when accessing media devices": "Accès aux appareils multimédias refusé",
|
||||
"Permission denied when accessing microphone": "Autorisation refusée lors de l'accès au micro",
|
||||
"Permission denied when accessing microphone: {{error}}": "Permission refusée lors de l'accès au microphone : {{error}}",
|
||||
"Permissions": "",
|
||||
"Permissions": "Permissions",
|
||||
"Personalization": "Personnalisation",
|
||||
"Pin": "Épingler",
|
||||
"Pinned": "Épinglé",
|
||||
"Pioneer insights": "",
|
||||
"Pioneer insights": "Explorer de nouvelles perspectives",
|
||||
"Pipeline deleted successfully": "Le pipeline a été supprimé avec succès",
|
||||
"Pipeline downloaded successfully": "Le pipeline a été téléchargé avec succès",
|
||||
"Pipelines": "Pipelines",
|
||||
@@ -664,24 +672,26 @@
|
||||
"Please carefully review the following warnings:": "Veuillez lire attentivement les avertissements suivants :",
|
||||
"Please enter a prompt": "Veuillez saisir un prompt",
|
||||
"Please fill in all fields.": "Veuillez remplir tous les champs.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Veuillez sélectionner une raison",
|
||||
"Port": "",
|
||||
"Port": "Port",
|
||||
"Positive attitude": "Attitude positive",
|
||||
"Prefix ID": "",
|
||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "",
|
||||
"Prefix ID": "ID de préfixe",
|
||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Le préfixe ID est utilisé pour éviter les conflits avec d'autres connexions en ajoutant un préfixe aux ID de modèle - laissez vide pour désactiver",
|
||||
"Previous 30 days": "30 derniers jours",
|
||||
"Previous 7 days": "7 derniers jours",
|
||||
"Profile Image": "Image de profil",
|
||||
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (par ex. Dites-moi un fait amusant à propos de l'Empire romain)",
|
||||
"Prompt Content": "Contenu du prompt",
|
||||
"Prompt created successfully": "",
|
||||
"Prompt created successfully": "Prompt créé avec succès",
|
||||
"Prompt suggestions": "Suggestions pour le prompt",
|
||||
"Prompt updated successfully": "",
|
||||
"Prompt updated successfully": "Prompt mis à jour avec succès",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "",
|
||||
"Prompts Access": "Accès aux prompts",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Récupérer « {{searchValue}} » depuis Ollama.com",
|
||||
"Pull a model from Ollama.com": "Télécharger un modèle depuis Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
"Query Generation Prompt": "Prompt de génération de requête",
|
||||
"Query Params": "Paramètres de requête",
|
||||
"RAG Template": "Modèle RAG",
|
||||
"Rating": "Note",
|
||||
@@ -689,7 +699,7 @@
|
||||
"Read Aloud": "Lire à haute voix",
|
||||
"Record voice": "Enregistrer la voix",
|
||||
"Redirecting you to OpenWebUI Community": "Redirection vers la communauté OpenWebUI",
|
||||
"Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40)": "",
|
||||
"Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40)": "Réduit la probabilité de générer des non-sens. Une valeur plus élevée (par exemple 100) donnera des réponses plus diversifiées, tandis qu'une valeur plus basse (par exemple 10) sera plus conservatrice. (Par défaut : 40)",
|
||||
"Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Désignez-vous comme « Utilisateur » (par ex. « L'utilisateur apprend l'espagnol »)",
|
||||
"References from": "Références de",
|
||||
"Refused when it shouldn't have": "Refusé alors qu'il n'aurait pas dû l'être",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Retirer",
|
||||
"Remove Model": "Retirer le modèle",
|
||||
"Rename": "Renommer",
|
||||
"Reorder Models": "Réorganiser les modèles",
|
||||
"Repeat Last N": "Répéter les N derniers",
|
||||
"Request Mode": "Mode de requête",
|
||||
"Reranking Model": "Modèle de ré-ranking",
|
||||
"Reranking model disabled": "Modèle de ré-ranking désactivé",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Modèle de ré-ranking défini sur « {{reranking_model}} »",
|
||||
"Reset": "Réinitialiser",
|
||||
"Reset All Models": "Réinitialiser tous les modèles",
|
||||
"Reset Upload Directory": "Réinitialiser le répertoire de téléchargement",
|
||||
"Reset Vector Storage/Knowledge": "Réinitialiser le stockage vectoriel/connaissances",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Les notifications de réponse ne peuvent pas être activées car les autorisations du site web ont été refusées. Veuillez vérifier les paramètres de votre navigateur pour accorder l'accès nécessaire.",
|
||||
"Response splitting": "Fractionnement de la réponse",
|
||||
"Result": "Résultat",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Saisie de texte enrichi pour le chat",
|
||||
"RK": "Rang",
|
||||
"Role": "Rôle",
|
||||
@@ -728,18 +741,18 @@
|
||||
"Scroll to bottom when switching between branches": "Défiler vers le bas lors du passage d'une branche à l'autre",
|
||||
"Search": "Recherche",
|
||||
"Search a model": "Rechercher un modèle",
|
||||
"Search Base": "",
|
||||
"Search Base": "Base de recherche",
|
||||
"Search Chats": "Rechercher des conversations",
|
||||
"Search Collection": "Rechercher une collection",
|
||||
"Search Filters": "",
|
||||
"Search Filters": "Filtres de recherche",
|
||||
"search for tags": "Rechercher des tags",
|
||||
"Search Functions": "Rechercher des fonctions",
|
||||
"Search Knowledge": "Rechercher des connaissances",
|
||||
"Search Models": "Rechercher des modèles",
|
||||
"Search options": "",
|
||||
"Search options": "Options de recherche",
|
||||
"Search Prompts": "Rechercher des prompts",
|
||||
"Search Result Count": "Nombre de résultats de recherche",
|
||||
"Search the web": "",
|
||||
"Search the web": "Rechercher sur le web",
|
||||
"Search Tools": "Rechercher des outils",
|
||||
"SearchApi API Key": "Clé API SearchApi",
|
||||
"SearchApi Engine": "Moteur de recherche SearchApi",
|
||||
@@ -755,7 +768,7 @@
|
||||
"Select a base model": "Sélectionnez un modèle de base",
|
||||
"Select a engine": "Sélectionnez un moteur",
|
||||
"Select a function": "Sélectionnez une fonction",
|
||||
"Select a group": "",
|
||||
"Select a group": "Sélectionner un groupe",
|
||||
"Select a model": "Sélectionnez un modèle",
|
||||
"Select a pipeline": "Sélectionnez un pipeline",
|
||||
"Select a pipeline url": "Sélectionnez l'URL du pipeline",
|
||||
@@ -778,7 +791,7 @@
|
||||
"Set as default": "Définir comme valeur par défaut",
|
||||
"Set CFG Scale": "Définir la CFG",
|
||||
"Set Default Model": "Définir le modèle par défaut",
|
||||
"Set embedding model": "",
|
||||
"Set embedding model": "Définir le modèle d'embedding",
|
||||
"Set embedding model (e.g. {{model}})": "Définir le modèle d'embedding (par ex. {{model}})",
|
||||
"Set Image Size": "Définir la taille de l'image",
|
||||
"Set reranking model (e.g. {{model}})": "Définir le modèle de ré-ranking (par ex. {{model}})",
|
||||
@@ -786,29 +799,29 @@
|
||||
"Set Scheduler": "Définir le planificateur",
|
||||
"Set Steps": "Définir le nombre d'étapes",
|
||||
"Set Task Model": "Définir le modèle de tâche",
|
||||
"Set the number of GPU devices used for computation. This option controls how many GPU devices (if available) are used to process incoming requests. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "",
|
||||
"Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "",
|
||||
"Set the number of GPU devices used for computation. This option controls how many GPU devices (if available) are used to process incoming requests. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "Définir le nombre de dispositifs GPU utilisés pour le calcul. Cette option contrôle combien de dispositifs GPU (si disponibles) sont utilisés pour traiter les demandes entrantes. L'augmentation de cette valeur peut améliorer de manière significative les performances des modèles optimisés pour l'accélération GPU mais peut également consommer plus d'énergie et de ressources GPU.",
|
||||
"Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "Définir le nombre de threads de travail utilisés pour le calcul. Cette option contrôle combien de threads sont utilisés pour traiter les demandes entrantes simultanément. L'augmentation de cette valeur peut améliorer les performances sous de fortes charges de travail concurrentes mais peut également consommer plus de ressources CPU.",
|
||||
"Set Voice": "Choisir la voix",
|
||||
"Set whisper model": "Choisir le modèle Whisper",
|
||||
"Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = num_ctx)": "",
|
||||
"Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. (Default: 1.1)": "",
|
||||
"Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "",
|
||||
"Sets the size of the context window used to generate the next token. (Default: 2048)": "",
|
||||
"Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "",
|
||||
"Sets how far back for the model to look back to prevent repetition. (Default: 64, 0 = disabled, -1 = num_ctx)": "Définit la profondeur de recherche du modèle pour prévenir les répétitions. (Par défaut : 64, 0 = désactivé, -1 = num_ctx)",
|
||||
"Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. (Default: 1.1)": "Définit la force avec laquelle les répétitions sont pénalisées. Une valeur plus élevée (par exemple 1.5) pénalisera plus fortement les répétitions, tandis qu'une valeur plus basse (par exemple 0.9) sera plus indulgente. (Par défaut : 1.1)",
|
||||
"Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "Définit la graine de nombre aléatoire à utiliser pour la génération. La définition de cette valeur à un nombre spécifique fera que le modèle générera le même texte pour le même prompt. (Par défaut : aléatoire)",
|
||||
"Sets the size of the context window used to generate the next token. (Default: 2048)": "Définit la taille de la fenêtre contextuelle utilisée pour générer le prochain token. (Par défaut : 2048)",
|
||||
"Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "Définit les séquences d'arrêt à utiliser. Lorsque ce motif est rencontré, le LLM cessera de générer du texte et retournera. Plusieurs motifs d'arrêt peuvent être définis en spécifiant plusieurs paramètres d'arrêt distincts dans un fichier modèle.",
|
||||
"Settings": "Paramètres",
|
||||
"Settings saved successfully!": "Paramètres enregistrés avec succès !",
|
||||
"Share": "Partager",
|
||||
"Share Chat": "Partage de conversation",
|
||||
"Share to OpenWebUI Community": "Partager avec la communauté OpenWebUI",
|
||||
"Show": "Afficher",
|
||||
"Show \"What's New\" modal on login": "",
|
||||
"Show \"What's New\" modal on login": "Afficher la fenêtre modale \"Quoi de neuf\" lors de la connexion",
|
||||
"Show Admin Details in Account Pending Overlay": "Afficher les coordonnées de l'administrateur aux comptes en attente",
|
||||
"Show shortcuts": "Afficher les raccourcis",
|
||||
"Show your support!": "Montrez votre soutien !",
|
||||
"Showcased creativity": "Créativité mise en avant",
|
||||
"Sign in": "Connexion",
|
||||
"Sign in to {{WEBUI_NAME}}": "Connectez-vous à {{WEBUI_NAME}}",
|
||||
"Sign in to {{WEBUI_NAME}} with LDAP": "",
|
||||
"Sign in to {{WEBUI_NAME}} with LDAP": "Connectez-vous à {{WEBUI_NAME}} avec LDAP",
|
||||
"Sign Out": "Déconnexion",
|
||||
"Sign up": "Inscrivez-vous",
|
||||
"Sign up to {{WEBUI_NAME}}": "Inscrivez-vous à {{WEBUI_NAME}}",
|
||||
@@ -832,8 +845,9 @@
|
||||
"System": "Système",
|
||||
"System Instructions": "Instructions système",
|
||||
"System Prompt": "Prompt système",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Prompt de génération de tags",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "L'échantillonnage sans queue est utilisé pour réduire l'impact des tokens moins probables dans la sortie. Une valeur plus élevée (par exemple 2.0) réduira davantage l'impact, tandis qu'une valeur de 1.0 désactive ce paramètre. (par défaut : 1)",
|
||||
"Tap to interrupt": "Appuyez pour interrompre",
|
||||
"Tavily API Key": "Clé API Tavily",
|
||||
"Tell us more:": "Dites-nous en plus à ce sujet : ",
|
||||
@@ -844,30 +858,30 @@
|
||||
"Text-to-Speech Engine": "Moteur de Text-to-Speech",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Merci pour vos commentaires !",
|
||||
"The Application Account DN you bind with for search": "",
|
||||
"The base to search for users": "",
|
||||
"The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory. (Default: 512)": "",
|
||||
"The Application Account DN you bind with for search": "Le DN du compte de l'application avec lequel vous vous liez pour la recherche",
|
||||
"The base to search for users": "La base pour rechercher des utilisateurs",
|
||||
"The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory. (Default: 512)": "La taille de lot détermine combien de demandes de texte sont traitées ensemble en une fois. Une taille de lot plus grande peut augmenter les performances et la vitesse du modèle, mais elle nécessite également plus de mémoire. (Par défaut : 512)",
|
||||
"The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "Les développeurs de ce plugin sont des bénévoles passionnés issus de la communauté. Si vous trouvez ce plugin utile, merci de contribuer à son développement.",
|
||||
"The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "Le classement d'évaluation est basé sur le système de notation Elo et est mis à jour en temps réel.",
|
||||
"The LDAP attribute that maps to the username that users use to sign in.": "",
|
||||
"The LDAP attribute that maps to the username that users use to sign in.": "L'attribut LDAP qui correspond au nom d'utilisateur que les utilisateurs utilisent pour se connecter.",
|
||||
"The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "Le classement est actuellement en version bêta et nous pouvons ajuster les calculs de notation à mesure que nous peaufinons l'algorithme.",
|
||||
"The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "La taille maximale du fichier en Mo. Si la taille du fichier dépasse cette limite, le fichier ne sera pas téléchargé.",
|
||||
"The maximum number of files that can be used at once in chat. If the number of files exceeds this limit, the files will not be uploaded.": "Le nombre maximal de fichiers pouvant être utilisés en même temps dans la conversation. Si le nombre de fichiers dépasse cette limite, les fichiers ne seront pas téléchargés.",
|
||||
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Le score doit être une valeur comprise entre 0,0 (0\u00a0%) et 1,0 (100\u00a0%).",
|
||||
"The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "",
|
||||
"The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "La température du modèle. Augmenter la température rendra le modèle plus créatif dans ses réponses. (Par défaut : 0.8)",
|
||||
"Theme": "Thème",
|
||||
"Thinking...": "En train de réfléchir...",
|
||||
"This action cannot be undone. Do you wish to continue?": "Cette action ne peut pas être annulée. Souhaitez-vous continuer ?",
|
||||
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Cela garantit que vos conversations précieuses soient sauvegardées en toute sécurité dans votre base de données backend. Merci !",
|
||||
"This is an experimental feature, it may not function as expected and is subject to change at any time.": "Il s'agit d'une fonctionnalité expérimentale, elle peut ne pas fonctionner comme prévu et est sujette à modification à tout moment.",
|
||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "",
|
||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "",
|
||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "Cette option contrôle combien de tokens sont conservés lors du rafraîchissement du contexte. Par exemple, si ce paramètre est défini à 2, les 2 derniers tokens du contexte de conversation seront conservés. Préserver le contexte peut aider à maintenir la continuité d'une conversation, mais cela peut réduire la capacité à répondre à de nouveaux sujets. (Par défaut : 24)",
|
||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "Cette option définit le nombre maximum de tokens que le modèle peut générer dans sa réponse. Augmenter cette limite permet au modèle de fournir des réponses plus longues, mais cela peut également augmenter la probabilité de générer du contenu inutile ou non pertinent. (Par défaut : 128)",
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Cette option supprimera tous les fichiers existants dans la collection et les remplacera par les fichiers nouvellement téléchargés.",
|
||||
"This response was generated by \"{{model}}\"": "Cette réponse a été générée par \"{{model}}\"",
|
||||
"This will delete": "Cela supprimera",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "Cela supprimera <strong>{{NAME}}</strong> et <strong>tout son contenu</strong>.",
|
||||
"This will delete all models including custom models": "",
|
||||
"This will delete all models including custom models and cannot be undone.": "",
|
||||
"This will delete all models including custom models": "Cela supprimera tous les modèles, y compris les modèles personnalisés",
|
||||
"This will delete all models including custom models and cannot be undone.": "Cela supprimera tous les modèles, y compris les modèles personnalisés, et ne peut pas être annulé.",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Cela réinitialisera la base de connaissances et synchronisera tous les fichiers. Souhaitez-vous continuer ?",
|
||||
"Thorough explanation": "Explication approfondie",
|
||||
"Tika": "Tika",
|
||||
@@ -879,7 +893,7 @@
|
||||
"Title Auto-Generation": "Génération automatique des titres",
|
||||
"Title cannot be an empty string.": "Le titre ne peut pas être une chaîne de caractères vide.",
|
||||
"Title Generation Prompt": "Prompt de génération de titre",
|
||||
"TLS": "",
|
||||
"TLS": "TLS",
|
||||
"To access the available model names for downloading,": "Pour accéder aux noms des modèles disponibles,",
|
||||
"To access the GGUF models available for downloading,": "Pour accéder aux modèles GGUF disponibles,",
|
||||
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Pour accéder à l'interface Web, veuillez contacter l'administrateur. Les administrateurs peuvent gérer les statuts des utilisateurs depuis le panneau d'administration.",
|
||||
@@ -897,19 +911,19 @@
|
||||
"Too verbose": "Trop détaillé",
|
||||
"Tool created successfully": "L'outil a été créé avec succès",
|
||||
"Tool deleted successfully": "Outil supprimé avec succès",
|
||||
"Tool Description": "",
|
||||
"Tool ID": "",
|
||||
"Tool Description": "Description de l'outil",
|
||||
"Tool ID": "ID de l'outil",
|
||||
"Tool imported successfully": "Outil importé avec succès",
|
||||
"Tool Name": "",
|
||||
"Tool Name": "Nom de l'outil",
|
||||
"Tool updated successfully": "L'outil a été mis à jour avec succès",
|
||||
"Tools": "Outils",
|
||||
"Tools Access": "",
|
||||
"Tools Access": "Accès aux outils",
|
||||
"Tools are a function calling system with arbitrary code execution": "Les outils sont un système d'appel de fonction avec exécution de code arbitraire",
|
||||
"Tools have a function calling system that allows arbitrary code execution": "Les outils ont un système d'appel de fonction qui permet l'exécution de code arbitraire",
|
||||
"Tools have a function calling system that allows arbitrary code execution.": "Les outils ont un système d'appel de fonction qui permet l'exécution de code arbitraire.",
|
||||
"Top K": "Top K",
|
||||
"Top P": "Top P",
|
||||
"Transformers": "",
|
||||
"Transformers": "Transformers",
|
||||
"Trouble accessing Ollama?": "Problèmes d'accès à Ollama ?",
|
||||
"TTS Model": "Modèle de Text-to-Speech",
|
||||
"TTS Settings": "Paramètres de Text-to-Speech",
|
||||
@@ -918,12 +932,12 @@
|
||||
"Type Hugging Face Resolve (Download) URL": "Entrez l'URL de Téléchargement Hugging Face Resolve",
|
||||
"Uh-oh! There was an issue connecting to {{provider}}.": "Oh non ! Un problème est survenu lors de la connexion à {{provider}}.",
|
||||
"UI": "UI",
|
||||
"Unarchive All": "",
|
||||
"Unarchive All Archived Chats": "",
|
||||
"Unarchive Chat": "",
|
||||
"Unlock mysteries": "",
|
||||
"Unarchive All": "Désarchiver tout",
|
||||
"Unarchive All Archived Chats": "Désarchiver toutes les conversations archivées",
|
||||
"Unarchive Chat": "Désarchiver la conversation",
|
||||
"Unlock mysteries": "Déverrouiller les mystères",
|
||||
"Unpin": "Désépingler",
|
||||
"Unravel secrets": "",
|
||||
"Unravel secrets": "Dévoiler les secrets",
|
||||
"Untagged": "Pas de tag",
|
||||
"Update": "Mise à jour",
|
||||
"Update and Copy Link": "Mettre à jour et copier le lien",
|
||||
@@ -939,18 +953,18 @@
|
||||
"Upload Files": "Téléverser des fichiers",
|
||||
"Upload Pipeline": "Pipeline de téléchargement",
|
||||
"Upload Progress": "Progression de l'envoi",
|
||||
"URL": "",
|
||||
"URL": "URL",
|
||||
"URL Mode": "Mode d'URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Utilisez '#' dans la zone de saisie du prompt pour charger et inclure vos connaissances.",
|
||||
"Use Gravatar": "Utiliser Gravatar",
|
||||
"Use groups to group your users and assign permissions.": "",
|
||||
"Use groups to group your users and assign permissions.": "Utilisez des groupes pour regrouper vos utilisateurs et attribuer des permissions.",
|
||||
"Use Initials": "Utiliser les initiales",
|
||||
"use_mlock (Ollama)": "Utiliser mlock (Ollama)",
|
||||
"use_mmap (Ollama)": "Utiliser mmap (Ollama)",
|
||||
"user": "utilisateur",
|
||||
"User": "Utilisateur",
|
||||
"User location successfully retrieved.": "L'emplacement de l'utilisateur a été récupéré avec succès.",
|
||||
"Username": "",
|
||||
"Username": "Nom d'utilisateur",
|
||||
"Users": "Utilisateurs",
|
||||
"Using the default arena model with all models. Click the plus button to add custom models.": "Utilisation du modèle d'arène par défaut avec tous les modèles. Cliquez sur le bouton plus pour ajouter des modèles personnalisés.",
|
||||
"Utilize": "Utilisez",
|
||||
@@ -962,44 +976,45 @@
|
||||
"variable to have them replaced with clipboard content.": "variable pour qu'elles soient remplacées par le contenu du presse-papiers.",
|
||||
"Version": "version:",
|
||||
"Version {{selectedVersion}} of {{totalVersions}}": "Version {{selectedVersion}} de {{totalVersions}}",
|
||||
"Visibility": "",
|
||||
"Visibility": "Visibilité",
|
||||
"Voice": "Voix",
|
||||
"Voice Input": "Saisie vocale",
|
||||
"Warning": "Avertissement",
|
||||
"Warning:": "Avertissement :",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "Avertissement : Activer cette option permettra aux utilisateurs de télécharger du code arbitraire sur le serveur.",
|
||||
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Avertissement : Si vous mettez à jour ou modifiez votre modèle d'embedding, vous devrez réimporter tous les documents.",
|
||||
"Web": "Web",
|
||||
"Web API": "API Web",
|
||||
"Web Loader Settings": "Paramètres du Web Loader",
|
||||
"Web Search": "Recherche Web",
|
||||
"Web Search Engine": "Moteur de recherche Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL du webhook",
|
||||
"WebUI Settings": "Paramètres de WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
"WebUI will make requests to \"{{url}}/chat/completions\"": "",
|
||||
"What are you trying to achieve?": "",
|
||||
"What are you working on?": "",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI fera des requêtes à \"{{url}}/api/chat\"",
|
||||
"WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI fera des requêtes à \"{{url}}/chat/completions\"",
|
||||
"What are you trying to achieve?": "Que cherchez-vous à accomplir ?",
|
||||
"What are you working on?": "Sur quoi travaillez-vous ?",
|
||||
"What’s New in": "Quoi de neuf dans",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "",
|
||||
"wherever you are": "",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "Lorsqu'il est activé, le modèle répondra à chaque message de chat en temps réel, générant une réponse dès que l'utilisateur envoie un message. Ce mode est utile pour les applications de chat en direct, mais peut affecter les performances sur un matériel plus lent.",
|
||||
"wherever you are": "où que vous soyez",
|
||||
"Whisper (Local)": "Whisper (local)",
|
||||
"Why?": "",
|
||||
"Why?": "Pourquoi ?",
|
||||
"Widescreen Mode": "Mode grand écran",
|
||||
"Won": "Gagné",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "Fonctionne avec le top-k. Une valeur plus élevée (par ex. 0.95) donnera un texte plus diversifié, tandis qu'une valeur plus basse (par ex. 0.5) générera un texte plus concentré et conservateur. (Par défaut : 0.9)",
|
||||
"Workspace": "Espace de travail",
|
||||
"Workspace Permissions": "",
|
||||
"Workspace Permissions": "Autorisations de l'espace de travail",
|
||||
"Write a prompt suggestion (e.g. Who are you?)": "Écrivez une suggestion de prompt (par exemple : Qui êtes-vous ?)",
|
||||
"Write a summary in 50 words that summarizes [topic or keyword].": "Rédigez un résumé de 50 mots qui résume [sujet ou mot-clé].",
|
||||
"Write something...": "Écrivez quelque chose...",
|
||||
"Write your model template content here": "",
|
||||
"Write your model template content here": "Écrivez ici le contenu de votre modèle",
|
||||
"Yesterday": "Hier",
|
||||
"You": "Vous",
|
||||
"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Vous ne pouvez discuter qu'avec un maximum de {{maxCount}} fichier(s) à la fois.",
|
||||
"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Vous pouvez personnaliser vos interactions avec les LLM en ajoutant des mémoires à l'aide du bouton « Gérer » ci-dessous, ce qui les rendra plus utiles et mieux adaptées à vos besoins.",
|
||||
"You cannot upload an empty file.": "Vous ne pouvez pas envoyer un fichier vide.",
|
||||
"You do not have permission to upload files.": "",
|
||||
"You do not have permission to upload files.": "Vous n'avez pas la permission de télécharger des fichiers.",
|
||||
"You have no archived conversations.": "Vous n'avez aucune conversation archivée.",
|
||||
"You have shared this chat": "Vous avez partagé cette conversation.",
|
||||
"You're a helpful assistant.": "Vous êtes un assistant efficace.",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' או '-1' ללא תפוגה.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(למשל `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "העתקה אוטומטית של תגובה ללוח",
|
||||
"Auto-playback response": "תגובת השמעה אוטומטית",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "כתובת URL בסיסית של AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "שנה סיסמה",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "צ'אט",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "בקשות בו-זמניות",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "אשר סיסמה",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "ברירת מחדל (SentenceTransformers)",
|
||||
"Default Model": "מודל ברירת מחדל",
|
||||
"Default model updated": "המודל המוגדר כברירת מחדל עודכן",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "הצעות ברירת מחדל לפקודות",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "מנוע מודל הטמעה",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "מודל ההטמעה הוגדר ל-\"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "הפיכת שיתוף קהילה לזמין",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "אפשר הרשמות חדשות",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "הפיכת חיפוש באינטרנט לזמין",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ודא שקובץ ה-CSV שלך כולל 4 עמודות בסדר הבא: שם, דוא\"ל, סיסמה, תפקיד.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "הזן תג מודל (למשל {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "הזן מספר שלבים (למשל 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "הזן ציון",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "יצירת מפתח API נכשלה.",
|
||||
"Failed to read clipboard contents": "קריאת תוכן הלוח נכשלה",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "פברואר",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "תוכן קובץ מודל",
|
||||
"Models": "מודלים",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "עוד",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "לא נמצאו תוצאות",
|
||||
"No search query generated": "לא נוצרה שאילתת חיפוש",
|
||||
"No source available": "אין מקור זמין",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "גישה חיובית",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "פקודות",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "משוך \"{{searchValue}}\" מ-Ollama.com",
|
||||
"Pull a model from Ollama.com": "משוך מודל מ-Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "הסר",
|
||||
"Remove Model": "הסר מודל",
|
||||
"Rename": "שנה שם",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "חזור על ה-N האחרונים",
|
||||
"Request Mode": "מצב בקשה",
|
||||
"Reranking Model": "מודל דירוג מחדש",
|
||||
"Reranking model disabled": "מודל דירוג מחדש מושבת",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "מודל דירוג מחדש הוגדר ל-\"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "תפקיד",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "מערכת",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "תגובת מערכת",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -974,6 +988,7 @@
|
||||
"Web Loader Settings": "הגדרות טעינת אתר",
|
||||
"Web Search": "חיפוש באינטרנט",
|
||||
"Web Search Engine": "מנוע חיפוש באינטרנט",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL Webhook",
|
||||
"WebUI Settings": "הגדרות WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' or '-1' बिना किसी समाप्ति के",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(e.g. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "क्लिपबोर्ड पर प्रतिक्रिया ऑटोकॉपी",
|
||||
"Auto-playback response": "ऑटो-प्लेबैक प्रतिक्रिया",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 बेस यूआरएल",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "पासवर्ड बदलें",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "चैट करें",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "समवर्ती अनुरोध",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "पासवर्ड की पुष्टि कीजिये",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "डिफ़ॉल्ट (SentenceTransformers)",
|
||||
"Default Model": "डिफ़ॉल्ट मॉडल",
|
||||
"Default model updated": "डिफ़ॉल्ट मॉडल अपडेट किया गया",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "डिफ़ॉल्ट प्रॉम्प्ट सुझाव",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "एंबेडिंग मॉडल इंजन",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "एम्बेडिंग मॉडल को \"{{embedding_model}}\" पर सेट किया गया",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "समुदाय साझाकरण सक्षम करें",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "नए साइन अप सक्रिय करें",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "वेब खोज सक्षम करें",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "सुनिश्चित करें कि आपकी CSV फ़ाइल में इस क्रम में 4 कॉलम शामिल हैं: नाम, ईमेल, पासवर्ड, भूमिका।",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Model tag दर्ज करें (उदा. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "चरणों की संख्या दर्ज करें (उदा. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "स्कोर दर्ज करें",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "एपीआई कुंजी बनाने में विफल.",
|
||||
"Failed to read clipboard contents": "क्लिपबोर्ड सामग्री पढ़ने में विफल",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "फरवरी",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "मॉडल फ़ाइल सामग्री",
|
||||
"Models": "सभी मॉडल",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "और..",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "कोई परिणाम नहीं मिला",
|
||||
"No search query generated": "कोई खोज क्वेरी जनरेट नहीं हुई",
|
||||
"No source available": "कोई स्रोत उपलब्ध नहीं है",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "सकारात्मक रवैया",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "प्रॉम्प्ट",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "\"{{searchValue}}\" को Ollama.com से खींचें",
|
||||
"Pull a model from Ollama.com": "Ollama.com से एक मॉडल खींचें",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "हटा दें",
|
||||
"Remove Model": "मोडेल हटाएँ",
|
||||
"Rename": "नाम बदलें",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "अंतिम N दोहराएँ",
|
||||
"Request Mode": "अनुरोध मोड",
|
||||
"Reranking Model": "रीरैकिंग मोड",
|
||||
"Reranking model disabled": "पुनर्रैंकिंग मॉडल अक्षम किया गया",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "रीरैंकिंग मॉडल को \"{{reranking_model}}\" पर \u200b\u200bसेट किया गया",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "भूमिका",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "सिस्टम",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "सिस्टम प्रॉम्प्ट",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "वेब लोडर सेटिंग्स",
|
||||
"Web Search": "वेब खोज",
|
||||
"Web Search Engine": "वेब खोज इंजन",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "वेबहुक URL",
|
||||
"WebUI Settings": "WebUI सेटिंग्स",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ili '-1' za bez isteka.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(npr. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Automatsko kopiranje odgovora u međuspremnik",
|
||||
"Auto-playback response": "Automatska reprodukcija odgovora",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 osnovni URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Promijeni lozinku",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Razgovor",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Istodobni zahtjevi",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Potvrdite lozinku",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Zadano (SentenceTransformers)",
|
||||
"Default Model": "Zadani model",
|
||||
"Default model updated": "Zadani model ažuriran",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Zadani prijedlozi prompta",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Embedding model pogon",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding model postavljen na \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Omogući zajedničko korištenje zajednice",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Omogući nove prijave",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Omogući pretraživanje weba",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Provjerite da vaša CSV datoteka uključuje 4 stupca u ovom redoslijedu: Name, Email, Password, Role.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Unesite oznaku modela (npr. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Unesite broj koraka (npr. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Unesite ocjenu",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Neuspješno stvaranje API ključa.",
|
||||
"Failed to read clipboard contents": "Neuspješno čitanje sadržaja međuspremnika",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Greška kod ažuriranja postavki",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Veljača",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Sadržaj datoteke modela",
|
||||
"Models": "Modeli",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Više",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Nema rezultata",
|
||||
"No search query generated": "Nije generiran upit za pretraživanje",
|
||||
"No source available": "Nema dostupnog izvora",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Pozitivan stav",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompti",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Povucite \"{{searchValue}}\" s Ollama.com",
|
||||
"Pull a model from Ollama.com": "Povucite model s Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Ukloni",
|
||||
"Remove Model": "Ukloni model",
|
||||
"Rename": "Preimenuj",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Ponovi zadnjih N",
|
||||
"Request Mode": "Način zahtjeva",
|
||||
"Reranking Model": "Model za ponovno rangiranje",
|
||||
"Reranking model disabled": "Model za ponovno rangiranje onemogućen",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Model za ponovno rangiranje postavljen na \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Poništi upload direktorij",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Uloga",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "Sustav",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Sistemski prompt",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -974,6 +988,7 @@
|
||||
"Web Loader Settings": "Postavke web učitavanja",
|
||||
"Web Search": "Internet pretraga",
|
||||
"Web Search Engine": "Web tražilica",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL webkuke",
|
||||
"WebUI Settings": "WebUI postavke",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' vagy '-1' ha nincs lejárat.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(pl. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(pl. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Válasz automatikus másolása a vágólapra",
|
||||
"Auto-playback response": "Automatikus válasz lejátszás",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api hitelesítési karakterlánc",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 alap URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Jelszó módosítása",
|
||||
"Character": "Karakter",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Beszélgetés",
|
||||
"Chat Background Image": "Beszélgetés háttérkép",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "Kiegészítések",
|
||||
"Concurrent Requests": "Párhuzamos kérések",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Megerősítés",
|
||||
"Confirm Password": "Jelszó megerősítése",
|
||||
"Confirm your action": "Erősítsd meg a műveletet",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Alapértelmezett (SentenceTransformers)",
|
||||
"Default Model": "Alapértelmezett modell",
|
||||
"Default model updated": "Alapértelmezett modell frissítve",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Alapértelmezett prompt javaslatok",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Beágyazási modell motor",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Beágyazási modell beállítva: \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Közösségi megosztás engedélyezése",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "Üzenet értékelés engedélyezése",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Új regisztrációk engedélyezése",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Webes keresés engedélyezése",
|
||||
"Enable Web Search Query Generation": "Webes keresési lekérdezés generálás engedélyezése",
|
||||
"Enabled": "Engedélyezve",
|
||||
"Engine": "Motor",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Győződj meg róla, hogy a CSV fájl tartalmazza ezt a 4 oszlopot ebben a sorrendben: Név, Email, Jelszó, Szerep.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Add meg a modell címkét (pl. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Add meg a lépések számát (pl. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Add meg a mintavételezőt (pl. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Add meg az ütemezőt (pl. Karras)",
|
||||
"Enter Score": "Add meg a pontszámot",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "Nem sikerült hozzáadni a fájlt.",
|
||||
"Failed to create API Key.": "Nem sikerült létrehozni az API kulcsot.",
|
||||
"Failed to read clipboard contents": "Nem sikerült olvasni a vágólap tartalmát",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Nem sikerült frissíteni a beállításokat",
|
||||
"Failed to upload file.": "Nem sikerült feltölteni a fájlt.",
|
||||
"February": "Február",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Modellfájl tartalom",
|
||||
"Models": "Modellek",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "több",
|
||||
"More": "Több",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "Nem található tudásbázis",
|
||||
"No model IDs": "",
|
||||
"No models found": "Nem található modell",
|
||||
"No models selected": "",
|
||||
"No results found": "Nincs találat",
|
||||
"No search query generated": "Nem generálódott keresési lekérdezés",
|
||||
"No source available": "Nincs elérhető forrás",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Kérjük, gondosan tekintse át a következő figyelmeztetéseket:",
|
||||
"Please enter a prompt": "Kérjük, adjon meg egy promptot",
|
||||
"Please fill in all fields.": "Kérjük, töltse ki az összes mezőt.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Kérjük, válasszon egy okot",
|
||||
"Port": "",
|
||||
"Positive attitude": "Pozitív hozzáállás",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Promptok",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "\"{{searchValue}}\" letöltése az Ollama.com-ról",
|
||||
"Pull a model from Ollama.com": "Modell letöltése az Ollama.com-ról",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Eltávolítás",
|
||||
"Remove Model": "Modell eltávolítása",
|
||||
"Rename": "Átnevezés",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Utolsó N ismétlése",
|
||||
"Request Mode": "Kérési mód",
|
||||
"Reranking Model": "Újrarangsoroló modell",
|
||||
"Reranking model disabled": "Újrarangsoroló modell letiltva",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Újrarangsoroló modell beállítva erre: \"{{reranking_model}}\"",
|
||||
"Reset": "Visszaállítás",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Feltöltési könyvtár visszaállítása",
|
||||
"Reset Vector Storage/Knowledge": "Vektor tárhely/tudásbázis visszaállítása",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "A válasz értesítések nem aktiválhatók, mert a weboldal engedélyei meg lettek tagadva. Kérjük, látogasson el a böngésző beállításaihoz a szükséges hozzáférés megadásához.",
|
||||
"Response splitting": "Válasz felosztás",
|
||||
"Result": "Eredmény",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Formázott szövegbevitel a chathez",
|
||||
"RK": "RK",
|
||||
"Role": "Szerep",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Rendszer",
|
||||
"System Instructions": "Rendszer utasítások",
|
||||
"System Prompt": "Rendszer prompt",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Címke generálási prompt",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Koppintson a megszakításhoz",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Web betöltő beállítások",
|
||||
"Web Search": "Webes keresés",
|
||||
"Web Search Engine": "Webes keresőmotor",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "WebUI beállítások",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' atau '-1' untuk tidak ada kedaluwarsa.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(contoh: `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(contoh: `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Tanggapan Salin Otomatis ke Papan Klip",
|
||||
"Auto-playback response": "Respons pemutaran otomatis",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Auth String",
|
||||
"AUTOMATIC1111 Base URL": "URL Dasar AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Ubah Kata Sandi",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Obrolan",
|
||||
"Chat Background Image": "Gambar Latar Belakang Obrolan",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Permintaan Bersamaan",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Konfirmasi",
|
||||
"Confirm Password": "Konfirmasi Kata Sandi",
|
||||
"Confirm your action": "Konfirmasi tindakan Anda",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Default (Pengubah Kalimat)",
|
||||
"Default Model": "Model Default",
|
||||
"Default model updated": "Model default diperbarui",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Saran Permintaan Default",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Mesin Model Penyematan",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model penyematan diatur ke \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Aktifkan Berbagi Komunitas",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Aktifkan Pendaftaran Baru",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Aktifkan Pencarian Web",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Pastikan file CSV Anda menyertakan 4 kolom dengan urutan sebagai berikut: Nama, Email, Kata Sandi, Peran.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Masukkan tag model (misalnya {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Masukkan Jumlah Langkah (mis. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Masukkan Skor",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Gagal membuat API Key.",
|
||||
"Failed to read clipboard contents": "Gagal membaca konten papan klip",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Gagal memperbarui pengaturan",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Februari",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Konten File Model",
|
||||
"Models": "Model",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Lainnya",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Tidak ada hasil yang ditemukan",
|
||||
"No search query generated": "Tidak ada permintaan pencarian yang dibuat",
|
||||
"No source available": "Tidak ada sumber yang tersedia",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Sikap positif",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompt",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Tarik \"{{searchValue}}\" dari Ollama.com",
|
||||
"Pull a model from Ollama.com": "Tarik model dari Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Hapus",
|
||||
"Remove Model": "Hapus Model",
|
||||
"Rename": "Ganti nama",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Ulangi N Terakhir",
|
||||
"Request Mode": "Mode Permintaan",
|
||||
"Reranking Model": "Model Pemeringkatan Ulang",
|
||||
"Reranking model disabled": "Model pemeringkatan ulang dinonaktifkan",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Model pemeringkatan diatur ke \"{{reranking_model}}\"",
|
||||
"Reset": "Atur Ulang",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Setel Ulang Direktori Unggahan",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Notifikasi respons tidak dapat diaktifkan karena izin situs web telah ditolak. Silakan kunjungi pengaturan browser Anda untuk memberikan akses yang diperlukan.",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Peran",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Sistem",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Permintaan Sistem",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Ketuk untuk menyela",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Pengaturan Pemuat Web",
|
||||
"Web Search": "Pencarian Web",
|
||||
"Web Search Engine": "Mesin Pencari Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL pengait web",
|
||||
"WebUI Settings": "Pengaturan WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' nó '-1' gan aon éag.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(m.sh. `sh webui.sh --api --api-auth username_password `)",
|
||||
"(e.g. `sh webui.sh --api`)": "(m.sh. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "Fíordheimhnigh",
|
||||
"Auto-Copy Response to Clipboard": "Freagra AutoCopy go Gearrthaisce",
|
||||
"Auto-playback response": "Freagra uathsheinm",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Uathoibríoch1111",
|
||||
"AUTOMATIC1111 Api Auth String": "UATHOMATIC1111 Api Auth Teaghrán",
|
||||
"AUTOMATIC1111 Base URL": "UATHOMATIC1111 BunURL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "Cosán Teastais",
|
||||
"Change Password": "Athraigh Pasfhocal",
|
||||
"Character": "Carachtar",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "Cairt teorainneacha nua",
|
||||
"Chat": "Comhrá",
|
||||
"Chat Background Image": "Íomhá Cúlra Comhrá",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "Críochnaithe",
|
||||
"Concurrent Requests": "Iarrataí Comhthéime",
|
||||
"Configure": "Cumraigh",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Deimhnigh",
|
||||
"Confirm Password": "Deimhnigh Pasfhocal",
|
||||
"Confirm your action": "Deimhnigh do ghníomh",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Réamhshocraithe (SentenceTransFormers)",
|
||||
"Default Model": "Samhail Réamhshocraithe",
|
||||
"Default model updated": "An tsamhail réamhshocraithe",
|
||||
"Default Models": "",
|
||||
"Default permissions": "Ceadanna réamhshocraithe",
|
||||
"Default permissions updated successfully": "D'éirigh le ceadanna réamhshocraithe a nuashonrú",
|
||||
"Default Prompt Suggestions": "Moltaí Pras Réamhshocraithe",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Inneall Múnla Ionchorprú",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Samhail leabaithe atá socraithe go \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "Cumasaigh Fíordheimhniú Eochracha API",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Cumasaigh Comhroinnt Pobail",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Cumasaigh Glasáil Cuimhne (mlock) chun sonraí samhaltaithe a chosc ó RAM. Glasálann an rogha seo sraith oibre leathanaigh an mhúnla isteach i RAM, ag cinntiú nach ndéanfar iad a mhalartú go diosca. Is féidir leis seo cabhrú le feidhmíocht a choinneáil trí lochtanna leathanaigh a sheachaint agus rochtain tapa ar shonraí a chinntiú.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Cumasaigh Mapáil Cuimhne (mmap) chun sonraí samhla a lódáil. Ligeann an rogha seo don chóras stóráil diosca a úsáid mar leathnú ar RAM trí chomhaid diosca a chóireáil amhail is dá mba i RAM iad. Is féidir leis seo feidhmíocht na samhla a fheabhsú trí rochtain níos tapúla ar shonraí a cheadú. Mar sin féin, d'fhéadfadh sé nach n-oibreoidh sé i gceart le gach córas agus féadfaidh sé méid suntasach spáis diosca a ithe.",
|
||||
"Enable Message Rating": "Cumasaigh Rátáil Teachtai",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Cumasaigh sampláil Mirostat chun seachrán a rialú. (Réamhshocrú: 0, 0 = Díchumasaithe, 1 = Mirostat, 2 = Mirostat 2.0)",
|
||||
"Enable New Sign Ups": "Cumasaigh Clárúcháin Nua",
|
||||
"Enable Retrieval Query Generation": "Cumasaigh Giniúint Iarratas Aisghabhála",
|
||||
"Enable Tags Generation": "Cumasaigh Giniúint Clibeanna",
|
||||
"Enable Web Search": "Cumasaigh Cuardach Gréasáin",
|
||||
"Enable Web Search Query Generation": "Cumasaigh Giniúint Ceist Cuardaigh Gréasáin",
|
||||
"Enabled": "Cumasaithe",
|
||||
"Engine": "Inneall",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Déan cinnte go bhfuil 4 cholún san ord seo i do chomhad CSV: Ainm, Ríomhphost, Pasfhocal, Ról.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Cuir isteach chlib samhail (m.sh. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Iontráil Líon na gCéimeanna (m.sh. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Cuir isteach Sampler (m.sh. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Cuir isteach Sceidealóir (m.sh. Karras)",
|
||||
"Enter Score": "Iontráil Scór",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "Theip ar an gcomhad a chur leis.",
|
||||
"Failed to create API Key.": "Theip ar an eochair API a chruthú.",
|
||||
"Failed to read clipboard contents": "Theip ar ábhar gearrthaisce a lé",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Theip ar shocruithe a nuashonrú",
|
||||
"Failed to upload file.": "Theip ar uaslódáil an chomhaid.",
|
||||
"February": "Feabhra",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Ábhar Modelfile",
|
||||
"Models": "Múnlaí",
|
||||
"Models Access": "Rochtain Múnlaí",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "níos mó",
|
||||
"More": "Tuilleadh",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "Níor aimsíodh aon eolas",
|
||||
"No model IDs": "Gan IDanna múnla",
|
||||
"No models found": "Níor aimsíodh aon mhúnlaí",
|
||||
"No models selected": "",
|
||||
"No results found": "Níl aon torthaí le fáil",
|
||||
"No search query generated": "Ní ghintear aon cheist cuardaigh",
|
||||
"No source available": "Níl aon fhoinse ar fáil",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Déan athbhreithniú cúramach ar na rabhaidh seo a leanas le do thoil:",
|
||||
"Please enter a prompt": "Cuir isteach leid",
|
||||
"Please fill in all fields.": "Líon isteach gach réimse le do thoil.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Roghnaigh cúis le do thoil",
|
||||
"Port": "Port",
|
||||
"Positive attitude": "Dearcadh dearfach",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "D'éirigh leis an leid a nuashonrú",
|
||||
"Prompts": "Leabhair",
|
||||
"Prompts Access": "Rochtain ar Chuirí",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Tarraing \"{{searchValue}}\" ó Ollama.com",
|
||||
"Pull a model from Ollama.com": "Tarraing múnla ó Ollama.com",
|
||||
"Query Generation Prompt": "Cuirí Ginearáil Ceisteanna",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Bain",
|
||||
"Remove Model": "Bain Múnla",
|
||||
"Rename": "Athainmnigh",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Déan an N deireanach arís",
|
||||
"Request Mode": "Mód Iarratais",
|
||||
"Reranking Model": "Múnla Athrangú",
|
||||
"Reranking model disabled": "Samhail athrangú faoi mhíchumas",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Samhail athrangú socraithe go \"{{reranking_model}}\"",
|
||||
"Reset": "Athshocraigh",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Athshocraigh Eolaire Uas",
|
||||
"Reset Vector Storage/Knowledge": "Athshocraigh Stóráil/Eolas Veicteoir",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Ní féidir fógraí freagartha a ghníomhachtú toisc gur diúltaíodh ceadanna an tsuímh Ghréasáin. Tabhair cuairt ar do shocruithe brabhsálaí chun an rochtain riachtanach a dheonú.",
|
||||
"Response splitting": "Scoilt freagartha",
|
||||
"Result": "Toradh",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Ionchur Saibhir Téacs don Chomhrá",
|
||||
"RK": "RK",
|
||||
"Role": "Ról",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Córas",
|
||||
"System Instructions": "Treoracha Córas",
|
||||
"System Prompt": "Córas Pras",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Clibeanna Giniúint Pras",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Úsáidtear sampláil saor ó eireabaill chun tionchar na n-chomharthaí ón aschur nach bhfuil chomh dóchúil céanna a laghdú. Laghdóidh luach níos airde (m.sh., 2.0) an tionchar níos mó, agus díchumasaíonn luach 1.0 an socrú seo. (réamhshocraithe: 1)",
|
||||
"Tap to interrupt": "Tapáil chun cur isteach",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Socruithe Luchtaire Gréasáin",
|
||||
"Web Search": "Cuardach Gréasáin",
|
||||
"Web Search Engine": "Inneall Cuardaigh Gréasáin",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL Webhook",
|
||||
"WebUI Settings": "Socruithe WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "Déanfaidh WebUI iarratais ar \"{{url}}/api/chat\"",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' o '-1' per nessuna scadenza.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(p.e. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Copia automatica della risposta negli appunti",
|
||||
"Auto-playback response": "Riproduzione automatica della risposta",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "URL base AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Cambia password",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Richieste simultanee",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Conferma password",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Predefinito (SentenceTransformers)",
|
||||
"Default Model": "Modello di default",
|
||||
"Default model updated": "Modello predefinito aggiornato",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Suggerimenti prompt predefiniti",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Motore del modello di embedding",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modello di embedding impostato su \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Abilita la condivisione della community",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Abilita nuove iscrizioni",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Abilita ricerca Web",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Assicurati che il tuo file CSV includa 4 colonne in questo ordine: Nome, Email, Password, Ruolo.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Inserisci il tag del modello (ad esempio {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Inserisci il numero di passaggi (ad esempio 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Inserisci il punteggio",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Impossibile creare la chiave API.",
|
||||
"Failed to read clipboard contents": "Impossibile leggere il contenuto degli appunti",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Febbraio",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Contenuto del file modello",
|
||||
"Models": "Modelli",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Altro",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Nessun risultato trovato",
|
||||
"No search query generated": "Nessuna query di ricerca generata",
|
||||
"No source available": "Nessuna fonte disponibile",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Attitudine positiva",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompt",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Estrai \"{{searchValue}}\" da Ollama.com",
|
||||
"Pull a model from Ollama.com": "Estrai un modello da Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Rimuovi",
|
||||
"Remove Model": "Rimuovi modello",
|
||||
"Rename": "Rinomina",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Ripeti ultimi N",
|
||||
"Request Mode": "Modalità richiesta",
|
||||
"Reranking Model": "Modello di riclassificazione",
|
||||
"Reranking model disabled": "Modello di riclassificazione disabilitato",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Modello di riclassificazione impostato su \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Ruolo",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "Sistema",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Prompt di sistema",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -974,6 +988,7 @@
|
||||
"Web Loader Settings": "Impostazioni del caricatore Web",
|
||||
"Web Search": "Ricerca sul Web",
|
||||
"Web Search Engine": "Motore di ricerca Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL webhook",
|
||||
"WebUI Settings": "Impostazioni WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' または '-1' で無期限。",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(例: `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(例: `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "クリップボードへの応答の自動コピー",
|
||||
"Auto-playback response": "応答の自動再生",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111のAuthを入力",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 ベース URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "パスワードを変更",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "チャット",
|
||||
"Chat Background Image": "チャットの背景画像",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "同時リクエスト",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "確認",
|
||||
"Confirm Password": "パスワードを確認",
|
||||
"Confirm your action": "あなたのアクションの確認",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "デフォルト (SentenceTransformers)",
|
||||
"Default Model": "デフォルトモデル",
|
||||
"Default model updated": "デフォルトモデルが更新されました",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "デフォルトのプロンプトの提案",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "埋め込みモデルエンジン",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "埋め込みモデルを\"{{embedding_model}}\"に設定しました",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "コミュニティ共有を有効にする",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "メッセージ評価を有効にする",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "新規登録を有効にする",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "ウェブ検索を有効にする",
|
||||
"Enable Web Search Query Generation": "ウェブ検索クエリ生成を有効にする",
|
||||
"Enabled": "有効",
|
||||
"Engine": "エンジン",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSVファイルに4つの列が含まれていることを確認してください: Name, Email, Password, Role.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "モデルタグを入力してください (例: {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "ステップ数を入力してください (例: 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "サンプラーを入力してください(e.g. Euler a)。",
|
||||
"Enter Scheduler (e.g. Karras)": "スケジューラーを入力してください。(e.g. Karras)",
|
||||
"Enter Score": "スコアを入力してください",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "APIキーの作成に失敗しました。",
|
||||
"Failed to read clipboard contents": "クリップボードの内容を読み取れませんでした",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "設定アップデート失敗",
|
||||
"Failed to upload file.": "ファイルアップロード失敗",
|
||||
"February": "2月",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "モデルファイルの内容",
|
||||
"Models": "モデル",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "もっと見る",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "知識が見つかりません",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "結果が見つかりません",
|
||||
"No search query generated": "検索クエリは生成されません",
|
||||
"No source available": "使用可能なソースがありません",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "前向きな態度",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "プロンプト",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com から \"{{searchValue}}\" をプル",
|
||||
"Pull a model from Ollama.com": "Ollama.com からモデルをプル",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "削除",
|
||||
"Remove Model": "モデルを削除",
|
||||
"Rename": "名前を変更",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "最後の N を繰り返す",
|
||||
"Request Mode": "リクエストモード",
|
||||
"Reranking Model": "モデルの再ランキング",
|
||||
"Reranking model disabled": "再ランキングモデルが無効です",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "再ランキングモデルを \"{{reranking_model}}\" に設定しました",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "アップロードディレクトリをリセット",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "応答の分割",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "役割",
|
||||
@@ -830,6 +843,7 @@
|
||||
"System": "システム",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "システムプロンプト",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -972,6 +986,7 @@
|
||||
"Web Loader Settings": "Web 読み込み設定",
|
||||
"Web Search": "ウェブ検索",
|
||||
"Web Search Engine": "ウェブ検索エンジン",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "WebUI 設定",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ან '-1' ვადის გასვლისთვის.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(მაგ. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "პასუხის ავტომატური კოპირება ბუფერში",
|
||||
"Auto-playback response": "ავტომატური დაკვრის პასუხი",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 საბაზისო მისამართი",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "პაროლის შეცვლა",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "მიმოწერა",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "თანმხლები მოთხოვნები",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "პაროლის დამოწმება",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "დეფოლტ (SentenceTransformers)",
|
||||
"Default Model": "ნაგულისხმები მოდელი",
|
||||
"Default model updated": "დეფოლტ მოდელი განახლებულია",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "დეფოლტ პრომპტი პირველი პირველი",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "ჩასმის ძირითადი პროგრამა",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ჩასმის ძირითადი პროგრამა ჩართულია \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "საზოგადოების გაზიარების ჩართვა",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "ახალი რეგისტრაციების ჩართვა",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "ვებ ძიების ჩართვა",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "გთხოვთ, უზრუნველყოთ, რომთქვევის CSV-ფაილი შეიცავს 4 ველი, ჩაწერილი ორივე ველი უდრის პირველი ველით.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "შეიყვანეთ მოდელის ტეგი (მაგ. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "შეიყვანეთ ნაბიჯების რაოდენობა (მაგ. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "შეიყვანეთ ქულა",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "API ღილაკის შექმნა ვერ მოხერხდა.",
|
||||
"Failed to read clipboard contents": "ბუფერში შიგთავსის წაკითხვა ვერ მოხერხდა",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "თებერვალი",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "მოდელური ფაილის კონტენტი",
|
||||
"Models": "მოდელები",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "ვრცლად",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "ჩვენ ვერ პოულობით ნაპოვნი ჩაწერები",
|
||||
"No search query generated": "ძიების მოთხოვნა არ არის გენერირებული",
|
||||
"No source available": "წყარო არ არის ხელმისაწვდომი",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "პოზიტიური ანგარიში",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "მოთხოვნები",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "ჩაიამოვეთ \"{{searchValue}}\" Ollama.com-იდან",
|
||||
"Pull a model from Ollama.com": "Ollama.com იდან მოდელის გადაწერა ",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "პოპულარობის რაოდენობა",
|
||||
"Remove Model": "პოპულარობის რაოდენობა",
|
||||
"Rename": "პოპულარობის რაოდენობა",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "გაიმეორეთ ბოლო N",
|
||||
"Request Mode": "მოთხოვნის რეჟიმი",
|
||||
"Reranking Model": "რექვექტირება",
|
||||
"Reranking model disabled": "რექვექტირება არაა ჩართული",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Reranking model set to \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "როლი",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "სისტემა",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "სისტემური მოთხოვნა",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "ვების ჩატარების პარამეტრები",
|
||||
"Web Search": "ვებ ძებნა",
|
||||
"Web Search Engine": "ვებ საძიებო სისტემა",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "WebUI პარამეტრები",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "만료 없음은 's', 'm', 'h', 'd', 'w' 아니면 '-1' 중 하나를 사용하세요.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(예: `sh webui.sh --api --api-auth 사용자이름_비밀번호`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(예: `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "응답을 클립보드에 자동 복사",
|
||||
"Auto-playback response": "응답 자동 재생",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "Automatic1111 API 인증 문자",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 기본 URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "비밀번호 변경",
|
||||
"Character": "캐릭터",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "채팅",
|
||||
"Chat Background Image": "채팅 배경 이미지",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "완성됨",
|
||||
"Concurrent Requests": "동시 요청 수",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "확인",
|
||||
"Confirm Password": "비밀번호 확인",
|
||||
"Confirm your action": "액션 확인",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "기본값 (SentenceTransformers)",
|
||||
"Default Model": "기본 모델",
|
||||
"Default model updated": "기본 모델이 업데이트되었습니다.",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "기본 프롬프트 제안",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "임베딩 모델 엔진",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "임베딩 모델을 \"{{embedding_model}}\"로 설정함",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "커뮤니티 공유 활성화",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "메시지 평가 활성화",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "새 회원가입 활성화",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "웹 검색 활성화",
|
||||
"Enable Web Search Query Generation": "웹 검색 쿼리 생성 활성화",
|
||||
"Enabled": "활성화됨",
|
||||
"Engine": "엔진",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "CSV 파일에 이름, 이메일, 비밀번호, 역할 4개의 열이 순서대로 포함되어 있는지 확인하세요.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "모델 태그 입력(예: {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "단계 수 입력(예: 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "샘플러 입력 (예: 오일러 a(Euler a))",
|
||||
"Enter Scheduler (e.g. Karras)": "스케쥴러 입력 (예: 카라스(Karras))",
|
||||
"Enter Score": "점수 입력",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "파일추가에 실패했습니다",
|
||||
"Failed to create API Key.": "API 키 생성에 실패했습니다.",
|
||||
"Failed to read clipboard contents": "클립보드 내용 가져오기를 실패하였습니다.",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "설정 업데이트에 실패하였습니다.",
|
||||
"Failed to upload file.": "파일 업로드에 실패했습니다",
|
||||
"February": "2월",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Modelfile 내용",
|
||||
"Models": "모델",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "더보기",
|
||||
"More": "더보기",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "지식 기반 없음",
|
||||
"No model IDs": "",
|
||||
"No models found": "모델 없음",
|
||||
"No models selected": "",
|
||||
"No results found": "결과 없음",
|
||||
"No search query generated": "검색어가 생성되지 않았습니다.",
|
||||
"No source available": "사용 가능한 소스 없음",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "다음 주의를 조심히 확인해주십시오",
|
||||
"Please enter a prompt": "프롬포트를 입력해주세요",
|
||||
"Please fill in all fields.": "모두 빈칸없이 채워주세요",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "이유를 선택하주세요",
|
||||
"Port": "",
|
||||
"Positive attitude": "긍정적인 자세",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "프롬프트",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Ollama.com에서 \"{{searchValue}}\" 가져오기",
|
||||
"Pull a model from Ollama.com": "Ollama.com에서 모델 가져오기(pull)",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "삭제",
|
||||
"Remove Model": "모델 삭제",
|
||||
"Rename": "이름 변경",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "마지막 N 반복",
|
||||
"Request Mode": "요청 모드",
|
||||
"Reranking Model": "Reranking 모델",
|
||||
"Reranking model disabled": "Reranking 모델 비활성화",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Reranking 모델을 \"{{reranking_model}}\"로 설정",
|
||||
"Reset": "초기화",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "업로드 디렉토리 초기화",
|
||||
"Reset Vector Storage/Knowledge": "벡터 저장 공간/지식 기반 초기화",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "웹사이트 권환과 같이 응답 알림이 활성화될 수 없습니다. 필요한 접근을 사용하기 위해 브라우져 설정을 확인 부탁드립니다.",
|
||||
"Response splitting": "응답 나누기",
|
||||
"Result": "결과",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "채팅위한 Rich Text Input",
|
||||
"RK": "RK",
|
||||
"Role": "역할",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "시스템",
|
||||
"System Instructions": "시스템 설명서",
|
||||
"System Prompt": "시스템 프롬프트",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "태그 생성 프롬포트트",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "탭하여 중단",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "웹 로더 설정",
|
||||
"Web Search": "웹 검색",
|
||||
"Web Search Engine": "웹 검색 엔진",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "웹훅 URL",
|
||||
"WebUI Settings": "WebUI 설정",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
"code": "es-ES",
|
||||
"title": "Spanish (Español)"
|
||||
},
|
||||
{
|
||||
"code": "eu-ES",
|
||||
"title": "Basque (Euskara)"
|
||||
},
|
||||
{
|
||||
"code": "fa-IR",
|
||||
"title": "Persian (فارسی)"
|
||||
@@ -59,6 +63,10 @@
|
||||
"code": "fr-FR",
|
||||
"title": "French (France)"
|
||||
},
|
||||
{
|
||||
"code": "el-GR",
|
||||
"title": "Greek (Ἑλλάδα)"
|
||||
},
|
||||
{
|
||||
"code": "he-IL",
|
||||
"title": "Hebrew (עברית)"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' arba '-1' kad neišteitų iš galiojimo.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(pvz. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(pvz. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Automatiškai nukopijuoti atsakymą",
|
||||
"Auto-playback response": "Automatinis atsakymo skaitymas",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Auth String",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 bazės nuoroda",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Keisti slaptažodį",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Pokalbis",
|
||||
"Chat Background Image": "Pokalbio galinė užsklanda",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Kelios užklausos vienu metu",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Patvrtinti",
|
||||
"Confirm Password": "Patvirtinkite slaptažodį",
|
||||
"Confirm your action": "Patvirtinkite veiksmą",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Numatytasis (SentenceTransformers)",
|
||||
"Default Model": "Numatytasis modelis",
|
||||
"Default model updated": "Numatytasis modelis atnaujintas",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Numatytieji užklausų pasiūlymai",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Embedding modelio variklis",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding modelis nustatytas kaip\"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Leisti dalinimąsi su bendruomene",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Aktyvuoti naujas registracijas",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Leisti paiešką internete",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "Leisti",
|
||||
"Engine": "Variklis",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Įsitikinkite, kad CSV failas turi 4 kolonas šiuo eiliškumu: Name, Email, Password, Role.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Įveskite modelio žymą (pvz. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Įveskite žingsnių kiekį (pvz. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Įveskite rezultatą",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Nepavyko sukurti API rakto",
|
||||
"Failed to read clipboard contents": "Nepavyko perskaityti kopijuoklės",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Nepavyko atnaujinti nustatymų",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Vasaris",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Modelio failo turinys",
|
||||
"Models": "Modeliai",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Daugiau",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Rezultatų nerasta",
|
||||
"No search query generated": "Paieškos užklausa nesugeneruota",
|
||||
"No source available": "Šaltinių nerasta",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Peržiūrėkite šiuos perspėjimus:",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Pozityvus elgesys",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Užklausos",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Rasti \"{{searchValue}}\" iš Ollama.com",
|
||||
"Pull a model from Ollama.com": "Gauti modelį iš Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Pašalinti",
|
||||
"Remove Model": "Pašalinti modelį",
|
||||
"Rename": "Pervadinti",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Pakartoti paskutinius N",
|
||||
"Request Mode": "Užklausos rėžimas",
|
||||
"Reranking Model": "Reranking modelis",
|
||||
"Reranking model disabled": "Reranking modelis neleidžiamas",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Nustatytas rereanking modelis: \"{{reranking_model}}\"",
|
||||
"Reset": "Atkurti",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Atkurti įkėlimų direktoiją",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Naršyklė neleidžia siųsti pranešimų",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Rolė",
|
||||
@@ -833,6 +846,7 @@
|
||||
"System": "Sistema",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Sistemos užklausa",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Paspauskite norėdami pertraukti",
|
||||
@@ -975,6 +989,7 @@
|
||||
"Web Loader Settings": "Web krovimo nustatymai",
|
||||
"Web Search": "Web paieška",
|
||||
"Web Search Engine": "Web paieškos variklis",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook nuoroda",
|
||||
"WebUI Settings": "WebUI parametrai",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' or '-1' untuk tiada tempoh luput.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(contoh `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(contoh `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Salin Response secara Automatik ke Papan Klip",
|
||||
"Auto-playback response": "Main semula respons secara automatik",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Auth String",
|
||||
"AUTOMATIC1111 Base URL": "URL Asas AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Tukar Kata Laluan",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Perbualan",
|
||||
"Chat Background Image": "Imej Latar Belakang Perbualan",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Permintaan Serentak",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Sahkan",
|
||||
"Confirm Password": "Sahkan kata laluan",
|
||||
"Confirm your action": "Sahkan tindakan anda",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Lalai (SentenceTransformers)",
|
||||
"Default Model": "Model Lalai",
|
||||
"Default model updated": "Model lalai dikemas kini",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Cadangan Gesaan Lalai",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Enjin Model Benamkan",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model Benamkan ditetapkan kepada \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Benarkan Perkongsian Komuniti",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Benarkan Pendaftaran Baharu",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Benarkan Carian Web",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "Dibenarkan",
|
||||
"Engine": "Enjin",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "astikan fail CSV anda mengandungi 4 lajur dalam susunan ini: Nama, E-mel, Kata Laluan, Peranan.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Masukkan tag model (cth {{ modelTag }})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Masukkan Bilangan Langkah (cth 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Masukkan Skor",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Gagal mencipta kekunci API",
|
||||
"Failed to read clipboard contents": "Gagal membaca konten papan klip",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Gagal mengemaskini tetapan",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Febuari",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Kandungan Modelfail",
|
||||
"Models": "Model",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Lagi",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Tiada keputusan dijumpai",
|
||||
"No search query generated": "Tiada pertanyaan carian dijana",
|
||||
"No source available": "Tiada sumber tersedia",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Sila semak dengan teliti amaran berikut:",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Sikap positif",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Gesaan",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Tarik \"{{ searchValue }}\" daripada Ollama.com",
|
||||
"Pull a model from Ollama.com": "Tarik model dari Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Hapuskan",
|
||||
"Remove Model": "Hapuskan Model",
|
||||
"Rename": "Namakan Semula",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Ulang N Terakhir",
|
||||
"Request Mode": "Mod Permintaan",
|
||||
"Reranking Model": "Model 'Reranking'",
|
||||
"Reranking model disabled": "Model 'Reranking' dilumpuhkan",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Model 'Reranking' ditetapkan kepada \"{{reranking_model}}\"",
|
||||
"Reset": "Tetapkan Semula",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Tetapkan Semula Direktori Muat Naik",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Pemberitahuan respons tidak boleh diaktifkan kerana kebenaran tapak web tidak diberi. Sila lawati tetapan pelayar web anda untuk memberikan akses yang diperlukan.",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Peranan",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Sistem",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Gesaan Sistem",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Sentuh untuk mengganggu",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Tetapan Pemuat Web",
|
||||
"Web Search": "Carian Web",
|
||||
"Web Search Engine": "Enjin Carian Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL 'Webhook'",
|
||||
"WebUI Settings": "Tetapan WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 't', 'd', 'u' eller '-1' for ingen utløp.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(f.eks. `sh webui.sh --api --api-auth brukernavn_passord`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(f.eks. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "Godkjenn",
|
||||
"Auto-Copy Response to Clipboard": "Respons auto-kopi til utklippstavle",
|
||||
"Auto-playback response": "Automatisk avspilling av svar",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "AUTOMATIC1111 Api Autentiseringsstreng",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Grunn-URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "Sertifikatbane",
|
||||
"Change Password": "Endre passord",
|
||||
"Character": "Karakter",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "Kartlegg ny områder",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Bakgrunnsbilde for chat",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "Fullføringer",
|
||||
"Concurrent Requests": "Samtidige forespørsler",
|
||||
"Configure": "Konfigurer",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Bekreft",
|
||||
"Confirm Password": "Bekreft passordet",
|
||||
"Confirm your action": "Bekreft handlingen",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Standard (SentenceTransformers)",
|
||||
"Default Model": "Standard modell",
|
||||
"Default model updated": "Standard modell oppdatert",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Standard forslag til ledetekster",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Motor for innbygging av modeller",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Innbyggingsmodell angitt til \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Aktiver deling i fellesskap",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Aktiver Memory Locking (mlock) for å forhindre at modelldata byttes ut av RAM. Dette alternativet låser modellens arbeidssett med sider i RAM-minnet, slik at de ikke byttes ut til disk. Dette kan bidra til å opprettholde ytelsen ved å unngå sidefeil og sikre rask datatilgang.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Aktiver Memory Mapping (mmap) for å laste inn modelldata. Med dette alternativet kan systemet bruke disklagring som en utvidelse av RAM ved å behandle diskfiler som om de befant seg i RAM. Dette kan forbedre modellens ytelse ved å gi raskere datatilgang. Det er imidlertid ikke sikkert at det fungerer som det skal på alle systemer, og det kan kreve mye diskplass.",
|
||||
"Enable Message Rating": "Aktivert vurdering av meldinger",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Aktiver Mirostat-sampling for kontroll av perpleksitet. (Standard: 0, 0 = deaktivert, 1 = Mirostat, 2 = Mirostat 2.0)",
|
||||
"Enable New Sign Ups": "Aktiver nye registreringer",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "Aktiver generering av etiketter",
|
||||
"Enable Web Search": "Aktiver websøk",
|
||||
"Enable Web Search Query Generation": "Aktiver generering av spørringer for nettsøk",
|
||||
"Enabled": "Aktivert",
|
||||
"Engine": "Motor",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Sørg for at CSV-filen din inkluderer 4 kolonner i denne rekkefølgen: Navn, E-post, Passord, Rolle.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Angi modellens etikett (f.eks. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Angi antall steg (f.eks. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Angi Sampler (e.g. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Angi Scheduler (f.eks. Karras)",
|
||||
"Enter Score": "Angi poengsum",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "Kan ikke legge til filen.",
|
||||
"Failed to create API Key.": "Kan ikke opprette en API-nøkkel.",
|
||||
"Failed to read clipboard contents": "Kan ikke lese innhold på utklippstavlen",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Kan ikke oppdatere innstillinger",
|
||||
"Failed to upload file.": "Kan ikke laste opp filen.",
|
||||
"February": "februar",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Modellfilinnhold",
|
||||
"Models": "Modeller",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "mer",
|
||||
"More": "Mer",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "Finner ingen kunnskaper",
|
||||
"No model IDs": "",
|
||||
"No models found": "Finner ingen modeller",
|
||||
"No models selected": "",
|
||||
"No results found": "Finner ingen resultater",
|
||||
"No search query generated": "Ingen søkespørringer er generert",
|
||||
"No source available": "Ingen kilde tilgjengelig",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Les gjennom følgende advarsler grundig:",
|
||||
"Please enter a prompt": "Angi en ledetekst",
|
||||
"Please fill in all fields.": "Fyll i alle felter",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Velg en årsak",
|
||||
"Port": "Port",
|
||||
"Positive attitude": "Positiv holdning",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Ledetekster",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Hent \"{{searchValue}}\" fra Ollama.com",
|
||||
"Pull a model from Ollama.com": "Hent en modell fra Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Fjern",
|
||||
"Remove Model": "Fjern modell",
|
||||
"Rename": "Gi nytt navn",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Gjenta siste N",
|
||||
"Request Mode": "Forespørselsmodus",
|
||||
"Reranking Model": "Omrangeringsmodell",
|
||||
"Reranking model disabled": "Omrangeringsmodell deaktivert",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Omrangeringsmodell er angitt til \"{{reranking_model}}\"",
|
||||
"Reset": "Tilbakestill",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Tilbakestill opplastingskatalog",
|
||||
"Reset Vector Storage/Knowledge": "Tilbakestill Vector lagring/kunnskap",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Svar-varsler kan ikke aktiveres fordi tilgang til nettstedet er nektet. Gå til nettleserinnstillingene dine for å gi den nødvendige tilgangen.",
|
||||
"Response splitting": "Oppdeling av svar",
|
||||
"Result": "Resultat",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Rik tekstinndata for chat",
|
||||
"RK": "RK",
|
||||
"Role": "Rolle",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "System",
|
||||
"System Instructions": "Systeminstruksjoner",
|
||||
"System Prompt": "Systemledetekst",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Ledetekst for genering av etikett",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling brukes til å redusere innvirkningen av mindre sannsynlige tokens fra utdataene. En høyere verdi (f.eks. 2,0) vil redusere effekten mer, mens en verdi på 1,0 deaktiverer denne innstillingen. (standard: 1)",
|
||||
"Tap to interrupt": "Trykk for å avbryte",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Web-lasterinnstillinger",
|
||||
"Web Search": "Nettsøk",
|
||||
"Web Search Engine": "Nettsøkmotor",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "Innstillinger for WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI vil rette forespørsler til \"{{url}}/api/chat\"",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w', of '-1' for geen vervaldatum.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(bv. `sh webui.sh --api --api-auth gebruikersnaam_wachtwoord`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(bv. `sh webui.sh --api`)",
|
||||
@@ -65,16 +66,16 @@
|
||||
"and {{COUNT}} more": "en {{COUNT}} meer",
|
||||
"and create a new shared link.": "en maak een nieuwe gedeelde link.",
|
||||
"API Base URL": "API Base URL",
|
||||
"API Key": "API Key",
|
||||
"API Key created.": "API Key gemaakt.",
|
||||
"API keys": "API keys",
|
||||
"API Key": "API-sleutel",
|
||||
"API Key created.": "API-sleutel aangemaakt.",
|
||||
"API keys": "API-sleutels",
|
||||
"Application DN": "Applicatie DN",
|
||||
"Application DN Password": "Applicatie",
|
||||
"applies to all users with the \"user\" role": "wordt op alle gebruikers met de \"gebruiker\" toegepast",
|
||||
"applies to all users with the \"user\" role": "wordt op alle gebruikers met de \"gebruikersrol\" toegepast",
|
||||
"April": "April",
|
||||
"Archive": "Archief",
|
||||
"Archive All Chats": "Archiveer alle chats",
|
||||
"Archived Chats": "chatrecord",
|
||||
"Archived Chats": "Chatrecord",
|
||||
"archived-chat-export": "gearchiveerde-chat-export",
|
||||
"Are you sure you want to unarchive all archived chats?": "Weet je zeker dat je alle gearchiveerde chats wil onarchiveren?",
|
||||
"Are you sure?": "Weet je het zeker?",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "Authenticeer",
|
||||
"Auto-Copy Response to Clipboard": "Antwoord automatisch kopiëren naar klembord",
|
||||
"Auto-playback response": "Automatisch afspelen van antwoord",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "Automatic1111 Api Auth String",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 Basis-URL",
|
||||
@@ -119,10 +122,11 @@
|
||||
"Certificate Path": "Certificaatpad",
|
||||
"Change Password": "Wijzig Wachtwoord",
|
||||
"Character": "Karakter",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "Verken nieuwe grenzen",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Chatachtergrond",
|
||||
"Chat Bubble UI": "Chatbubble UI",
|
||||
"Chat Bubble UI": "Chatbubble-UI",
|
||||
"Chat Controls": "Chatbesturing",
|
||||
"Chat direction": "Chatrichting",
|
||||
"Chat Overview": "Chatoverzicht",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "Voltooiingen",
|
||||
"Concurrent Requests": "Gelijktijdige verzoeken",
|
||||
"Configure": "Configureer",
|
||||
"Configure Models": "Configureer modellen",
|
||||
"Confirm": "Bevestigen",
|
||||
"Confirm Password": "Bevestig wachtwoord",
|
||||
"Confirm your action": "Bevestig uw actie",
|
||||
@@ -199,7 +204,7 @@
|
||||
"Create Group": "Maak groep",
|
||||
"Create Knowledge": "Creër kennis",
|
||||
"Create new key": "Maak nieuwe sleutel",
|
||||
"Create new secret key": "Maak nieuwe geheim sleutel",
|
||||
"Create new secret key": "Maak nieuwe geheime sleutel",
|
||||
"Created at": "Gemaakt op",
|
||||
"Created At": "Gemaakt op",
|
||||
"Created by": "Gemaakt door",
|
||||
@@ -213,8 +218,9 @@
|
||||
"Default": "Standaard",
|
||||
"Default (Open AI)": "Standaard (Open AI)",
|
||||
"Default (SentenceTransformers)": "Standaard (SentenceTransformers)",
|
||||
"Default Model": "Standaard model",
|
||||
"Default model updated": "Standaard model bijgewerkt",
|
||||
"Default Model": "Standaardmodel",
|
||||
"Default model updated": "Standaardmodel bijgewerkt",
|
||||
"Default Models": "Standaardmodellen",
|
||||
"Default permissions": "Standaardrechten",
|
||||
"Default permissions updated successfully": "Standaardrechten succesvol bijgewerkt",
|
||||
"Default Prompt Suggestions": "Standaard Prompt Suggesties",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Embedding Model Engine",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Embedding model ingesteld op \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "Schakel API-sleutel authenticatie in",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Delen via de community inschakelen",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Schakel Memory Locking (mlock) in om te voorkomen dat modelgegevens uit het RAM worden verwisseld. Deze optie vergrendelt de werkset pagina's van het model in het RAM, zodat ze niet naar de schijf worden uitgewisseld. Dit kan helpen om de prestaties op peil te houden door paginafouten te voorkomen en snelle gegevenstoegang te garanderen.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Schakel Memory Mapping (mmap) in om modelgegevens te laden. Deze optie laat het systeem schijfopslag gebruiken als een uitbreiding van RAM door schijfbestanden te behandelen alsof ze in RAM zitten. Dit kan de prestaties van het model verbeteren door snellere gegevenstoegang mogelijk te maken. Het is echter mogelijk dat deze optie niet op alle systemen correct werkt en een aanzienlijke hoeveelheid schijfruimte in beslag kan nemen.",
|
||||
"Enable Message Rating": "Schakel berichtbeoordeling in",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Mirostat-sampling inschakelen voor het regelen van de perplexiteit. (Standaard: 0, 0 = uitgeschakeld, 1 = Mirostat, 2 = Mirostat 2.0)",
|
||||
"Enable New Sign Ups": "Schakel nieuwe registraties in",
|
||||
"Enable Retrieval Query Generation": "Opvraaggeneratie inschakelen",
|
||||
"Enable Tags Generation": "Tags genereren inschakelen",
|
||||
"Enable Web Search": "Zoeken op het web inschakelen",
|
||||
"Enable Web Search Query Generation": "Schakel zoekopdrachtgeneratie in",
|
||||
"Enabled": "Ingeschakeld",
|
||||
"Engine": "Engine",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Zorg ervoor dat uw CSV-bestand de volgende vier kolommen in deze volgorde bevat: Naam, E-mail, Wachtwoord, Rol.",
|
||||
@@ -328,9 +332,10 @@
|
||||
"Enter Jina API Key": "Voer Jina API-sleutel in",
|
||||
"Enter language codes": "Voeg taal codes toe",
|
||||
"Enter Model ID": "Voer model-ID in",
|
||||
"Enter model tag (e.g. {{modelTag}})": "Voeg model tag toe (Bijv. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter model tag (e.g. {{modelTag}})": "Voeg model-tag toe (Bijv. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "Voer Mojeek Search API-sleutel in",
|
||||
"Enter Number of Steps (e.g. 50)": "Voeg aantal stappen toe (Bijv. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Voer Sampler in (bv. Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Voer Scheduler in (bv. Karras)",
|
||||
"Enter Score": "Voeg score toe",
|
||||
@@ -375,7 +380,7 @@
|
||||
"Export Config to JSON File": "Exporteer configuratie naar JSON-bestand",
|
||||
"Export Functions": "Exporteer functies",
|
||||
"Export Models": "Modellen exporteren",
|
||||
"Export Presets": "Voorinstellingen exporteren",
|
||||
"Export Presets": "Exporteer voorinstellingen",
|
||||
"Export Prompts": "Exporteer Prompts",
|
||||
"Export to CSV": "Exporteer naar CSV",
|
||||
"Export Tools": "Exporteer gereedschappen",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "Het is niet gelukt om het bestand toe te voegen.",
|
||||
"Failed to create API Key.": "Kan API Key niet aanmaken.",
|
||||
"Failed to read clipboard contents": "Kan klembord inhoud niet lezen",
|
||||
"Failed to save models configuration": "Het is niet gelukt om de modelconfiguratie op te slaan",
|
||||
"Failed to update settings": "Instellingen konden niet worden bijgewerkt.",
|
||||
"Failed to upload file.": "Bestand kon niet worden geüpload.",
|
||||
"February": "Februari",
|
||||
@@ -401,7 +407,7 @@
|
||||
"Filter is now globally enabled": "Filter is nu globaal ingeschakeld",
|
||||
"Filters": "Filters",
|
||||
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Vingerafdruk spoofing gedetecteerd: kan initialen niet gebruiken als avatar. Standaardprofielafbeelding wordt gebruikt.",
|
||||
"Fluidly stream large external response chunks": "Stream vloeiend grote externe responsbrokken",
|
||||
"Fluidly stream large external response chunks": "Stream grote externe responsbrokken vloeiend",
|
||||
"Focus chat input": "Focus chat input",
|
||||
"Folder deleted successfully": "Map succesvol verwijderd",
|
||||
"Folder name cannot be empty": "Mapnaam kan niet leeg zijn",
|
||||
@@ -426,7 +432,7 @@
|
||||
"Functions allow arbitrary code execution.": "Functies staan willekeurige code-uitvoering toe",
|
||||
"Functions imported successfully": "Functies succesvol geïmporteerd",
|
||||
"General": "Algemeen",
|
||||
"General Settings": "Algemene Instellingen",
|
||||
"General Settings": "Algemene instellingen",
|
||||
"Generate Image": "Genereer afbeelding",
|
||||
"Generating search query": "Zoekopdracht genereren",
|
||||
"Generation Info": "Generatie Info",
|
||||
@@ -441,7 +447,7 @@
|
||||
"Group Description": "Groepsbeschrijving",
|
||||
"Group Name": "Groepsnaam",
|
||||
"Group updated successfully": "Groep succesvol bijgewerkt",
|
||||
"Groups": "GRoepen",
|
||||
"Groups": "Groepen",
|
||||
"h:mm a": "h:mm a",
|
||||
"Haptic Feedback": "Haptische feedback",
|
||||
"has no conversations.": "heeft geen gesprekken.",
|
||||
@@ -458,9 +464,9 @@
|
||||
"I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Ik bevestig dat ik de implicaties van mijn actie heb gelezen en begrepen. Ik ben me bewust van de risico's die gepaard gaan met het uitvoeren van willekeurige code en ik heb de betrouwbaarheid van de bron gecontroleerd.",
|
||||
"ID": "ID",
|
||||
"Ignite curiosity": "Wakker nieuwsgierigheid aan",
|
||||
"Image Generation (Experimental)": "Afbeelding Generatie (Experimenteel)",
|
||||
"Image Generation Engine": "Afbeelding Generatie Engine",
|
||||
"Image Settings": "Afbeelding Instellingen",
|
||||
"Image Generation (Experimental)": "Afbeeldingsgeneratie (Experimenteel)",
|
||||
"Image Generation Engine": "Afbeeldingsgeneratie Engine",
|
||||
"Image Settings": "Afbeeldingsinstellingen",
|
||||
"Images": "Afbeeldingen",
|
||||
"Import Chats": "Importeer Chats",
|
||||
"Import Config from JSON File": "Importeer configuratie vanuit JSON-bestand",
|
||||
@@ -517,12 +523,12 @@
|
||||
"Local": "Lokaal",
|
||||
"Local Models": "Lokale modellen",
|
||||
"Lost": "Verloren",
|
||||
"LTR": "LTR",
|
||||
"LTR": "LNR",
|
||||
"Made by OpenWebUI Community": "Gemaakt door OpenWebUI Community",
|
||||
"Make sure to enclose them with": "Zorg ervoor dat je ze omringt met",
|
||||
"Make sure to export a workflow.json file as API format from ComfyUI.": "Zorg ervoor dat je een workflow.json-bestand als API-formaat exporteert vanuit ComfyUI.",
|
||||
"Manage": "Beheren",
|
||||
"Manage Arena Models": "Beheer Arenamodellen",
|
||||
"Manage Arena Models": "Beheer srenamodellen",
|
||||
"Manage Ollama": "Beheer Ollama",
|
||||
"Manage Ollama API Connections": "Beheer Ollama API-verbindingen",
|
||||
"Manage OpenAI API Connections": "Beheer OpenAI API-verbindingen",
|
||||
@@ -570,7 +576,8 @@
|
||||
"Modelfile Content": "Modelfile Inhoud",
|
||||
"Models": "Modellen",
|
||||
"Models Access": "Modellentoegang",
|
||||
"Mojeek Search API Key": "",
|
||||
"Models configuration saved successfully": "Modellenconfiguratie succeslvol opgeslagen",
|
||||
"Mojeek Search API Key": "Mojeek Search API-sleutel",
|
||||
"more": "Meer",
|
||||
"More": "Meer",
|
||||
"Name": "Naam",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "Geen kennis gevonden",
|
||||
"No model IDs": "Geen model-ID's",
|
||||
"No models found": "Geen modellen gevonden",
|
||||
"No models selected": "Geen modellen geselecteerd",
|
||||
"No results found": "Geen resultaten gevonden",
|
||||
"No search query generated": "Geen zoekopdracht gegenereerd",
|
||||
"No source available": "Geen bron beschikbaar",
|
||||
@@ -599,7 +607,7 @@
|
||||
"Not helpful": "Niet nuttig",
|
||||
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Opmerking: Als je een minimumscore instelt, levert de zoekopdracht alleen documenten op met een score groter dan of gelijk aan de minimumscore.",
|
||||
"Notes": "Aantekeningen",
|
||||
"Notifications": "Desktop Notificaties",
|
||||
"Notifications": "Notificaties",
|
||||
"November": "November",
|
||||
"num_gpu (Ollama)": "num_gpu (Ollama)",
|
||||
"num_thread (Ollama)": "num_thread (Ollama)",
|
||||
@@ -664,13 +672,14 @@
|
||||
"Please carefully review the following warnings:": "Beoordeel de volgende waarschuwingen nauwkeurig:",
|
||||
"Please enter a prompt": "Voer een prompt in",
|
||||
"Please fill in all fields.": "Voer alle velden in",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Voer een reden in",
|
||||
"Port": "Poort",
|
||||
"Positive attitude": "Positieve positie",
|
||||
"Prefix ID": "Voorvoegsel-ID",
|
||||
"Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Voorvoegsel-ID wordt gebruikt om conflicten met andere verbindingen te vermijden door een voorvoegsel aan het model-ID toe te voegen - laat leeg om uit te schakelen",
|
||||
"Previous 30 days": "Vorige 30 dagen",
|
||||
"Previous 7 days": "Vorige 7 dagen",
|
||||
"Previous 30 days": "Afgelopen 30 dagen",
|
||||
"Previous 7 days": "Afgelopen 7 dagen",
|
||||
"Profile Image": "Profielafbeelding",
|
||||
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (bv. Vertel me een leuke gebeurtenis over het Romeinse Rijk)",
|
||||
"Prompt Content": "Promptinhoud",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "Prompt succesvol bijgewerkt",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "Prompttoegang",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Haal \"{{searchValue}}\" uit Ollama.com",
|
||||
"Pull a model from Ollama.com": "Haal een model van Ollama.com",
|
||||
"Query Generation Prompt": "Vraaggeneratieprompt",
|
||||
@@ -699,23 +709,26 @@
|
||||
"Remove": "Verwijderen",
|
||||
"Remove Model": "Verwijder model",
|
||||
"Rename": "Hernoemen",
|
||||
"Reorder Models": "Herschik modellen",
|
||||
"Repeat Last N": "Herhaal Laatste N",
|
||||
"Request Mode": "Request Modus",
|
||||
"Reranking Model": "Reranking Model",
|
||||
"Reranking model disabled": "Reranking model uitgeschakeld",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Reranking model ingesteld op \"{{reranking_model}}\"",
|
||||
"Reset": "Herstellen",
|
||||
"Reset All Models": "Herstel alle modellen",
|
||||
"Reset Upload Directory": "Herstel Uploadmap",
|
||||
"Reset Vector Storage/Knowledge": "Herstel Vectoropslag/-kennis",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Antwoordmeldingen kunnen niet worden geactiveerd omdat de rechten voor de website zijn geweigerd. Ga naar de instellingen van uw browser om de benodigde toegang te verlenen.",
|
||||
"Response splitting": "Antwoord splitsing",
|
||||
"Result": "Resultaat",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Rijke tekstinvoer voor chatten",
|
||||
"RK": "RK",
|
||||
"Role": "Rol",
|
||||
"Rosé Pine": "Rosé Pine",
|
||||
"Rosé Pine Dawn": "Rosé Pine Dawn",
|
||||
"RTL": "RTL",
|
||||
"RTL": "RNL",
|
||||
"Run": "Uitvoeren",
|
||||
"Running": "Aan het uitvoeren",
|
||||
"Save": "Opslaan",
|
||||
@@ -776,7 +789,7 @@
|
||||
"Server connection verified": "Server verbinding geverifieerd",
|
||||
"Set as default": "Stel in als standaard",
|
||||
"Set CFG Scale": "Stel CFG-schaal in",
|
||||
"Set Default Model": "Stel Standaard Model in",
|
||||
"Set Default Model": "Stel Standaardmodel in",
|
||||
"Set embedding model": "Stel embedding-model in",
|
||||
"Set embedding model (e.g. {{model}})": "Stel embedding-model in (bv. {{model}})",
|
||||
"Set Image Size": "Stel afbeeldingsgrootte in",
|
||||
@@ -793,7 +806,7 @@
|
||||
"Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 0.9) will be more lenient. (Default: 1.1)": "Stelt in hoe sterk herhalingen bestraft moeten worden. Een hogere waarde (bijv. 1,5) zal herhalingen sterker bestraffen, terwijl een lagere waarde (bijv. 0,9) milder zal zijn. (Standaard: 1.1)",
|
||||
"Sets the random number seed to use for generation. Setting this to a specific number will make the model generate the same text for the same prompt. (Default: random)": "Stelt de willekeurigheid in om te gebruiken voor het genereren. Als je dit op een specifiek getal instelt, genereert het model dezelfde tekst voor dezelfde prompt. (Standaard: willekeurig)",
|
||||
"Sets the size of the context window used to generate the next token. (Default: 2048)": "Stelt de grootte in van het contextvenster dat wordt gebruikt om het volgende token te genereren. (Standaard: 2048)",
|
||||
"Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "Stelt de te gebruiken stopreeksen in. Als dit patroon wordt gevonden, stopt de LLM met het genereren van tekst en keert terug. Er kunnen meerdere stoppatronen worden ingesteld door meerdere afzonderlijke stopparameters op te geven in een modelbestand.",
|
||||
"Sets the stop sequences to use. When this pattern is encountered, the LLM will stop generating text and return. Multiple stop patterns may be set by specifying multiple separate stop parameters in a modelfile.": "Stelt de te gebruiken stopsequentie in. Als dit patroon wordt gevonden, stopt de LLM met het genereren van tekst en keert terug. Er kunnen meerdere stoppatronen worden ingesteld door meerdere afzonderlijke stopparameters op te geven in een modelbestand.",
|
||||
"Settings": "Instellingen",
|
||||
"Settings saved successfully!": "Instellingen succesvol opgeslagen!",
|
||||
"Share": "Delen",
|
||||
@@ -817,7 +830,7 @@
|
||||
"Speech recognition error: {{error}}": "Spraakherkenning fout: {{error}}",
|
||||
"Speech-to-Text Engine": "Spraak-naar-tekst Engine",
|
||||
"Stop": "Stop",
|
||||
"Stop Sequence": "Stop sequentie",
|
||||
"Stop Sequence": "Stopsequentie",
|
||||
"Stream Chat Response": "Stream chat-antwoord",
|
||||
"STT Model": "STT Model",
|
||||
"STT Settings": "STT Instellingen",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "Systeem",
|
||||
"System Instructions": "Systeem instructies",
|
||||
"System Prompt": "Systeem prompt",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Prompt voor taggeneratie",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "Tail free sampling wordt gebruikt om de impact van minder waarschijnlijke tokens uit de uitvoer te verminderen. Een hogere waarde (bv. 2,0) zal de impact meer verminderen, terwijl een waarde van 1,0 deze instelling uitschakelt. (standaard: 1)",
|
||||
"Tap to interrupt": "Tik om te onderbreken",
|
||||
@@ -880,14 +894,14 @@
|
||||
"Title Generation Prompt": "Titel Generatie Prompt",
|
||||
"TLS": "TLS",
|
||||
"To access the available model names for downloading,": "Om de beschikbare modelnamen voor downloaden te openen,",
|
||||
"To access the GGUF models available for downloading,": "Om toegang te krijgen tot de GGUF modellen die beschikbaar zijn voor downloaden,",
|
||||
"To access the GGUF models available for downloading,": "Om toegang te krijgen tot de GGUF-modellen die beschikbaar zijn voor downloaden,",
|
||||
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Om toegang te krijgen tot de WebUI, neem contact op met de administrator. Beheerders kunnen de gebruikersstatussen beheren vanuit het Beheerderspaneel.",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Om hier een kennisbron bij te voegen, voeg ze eerst aan de \"Kennis\" werkplaats toe.",
|
||||
"To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "Om je privacy te beschermen, worden alleen beoordelingen, model-ID's, tags en metadata van je feedback gedeeld - je chatlogs blijven privé en worden niet opgenomen.",
|
||||
"To select actions here, add them to the \"Functions\" workspace first.": "Om hier acties te selecteren, voeg ze eerst aan de \"Functies\" Werkplaats toe.",
|
||||
"To select filters here, add them to the \"Functions\" workspace first.": "Om hier filters te selecteren, voeg ze eerst aan de \"Functies\" Werkplaats toe.",
|
||||
"To select toolkits here, add them to the \"Tools\" workspace first.": "Om hier gereedschapssets te selecteren, voeg ze eerst aan de \"Gereedschappen\" Werkplaats toe.",
|
||||
"Toast notifications for new updates": "Toast notificatie voor nieuwe updates",
|
||||
"Toast notifications for new updates": "Toon notificaties voor nieuwe updates",
|
||||
"Today": "Vandaag",
|
||||
"Toggle settings": "Wissel instellingen",
|
||||
"Toggle sidebar": "Wissel sidebar",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "Web Loader instellingen",
|
||||
"Web Search": "Zoeken op het web",
|
||||
"Web Search Engine": "Zoekmachine op het web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "Webhook URL",
|
||||
"WebUI Settings": "WebUI Instellingen",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI zal verzoeken doen aan \"{{url}}/api/chat\"",
|
||||
@@ -996,7 +1011,7 @@
|
||||
"Yesterday": "Gisteren",
|
||||
"You": "Jij",
|
||||
"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Je kunt slechts met maximaal {{maxCount}} bestand(en) tegelijk chatten",
|
||||
"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Je kunt je interacties met LLM's personaliseren door herinneringen toe te voegen via de 'Beheer'-knop hieronder, waardoor ze nuttiger en op maat gemaakt voor jou worden.",
|
||||
"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Je kunt je interacties met LLM's personaliseren door herinneringen toe te voegen via de 'Beheer'-knop hieronder, waardoor ze nuttiger en voor jou op maat gemaakt worden.",
|
||||
"You cannot upload an empty file.": "Je kunt een leeg bestand niet uploaden.",
|
||||
"You do not have permission to upload files.": "Je hebt geen toestemming om bestanden up te loaden",
|
||||
"You have no archived conversations.": "Je hebt geen gearchiveerde gesprekken.",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'ਸ', 'ਮ', 'ਘੰ', 'ਦ', 'ਹਫ਼ਤਾ' ਜਾਂ '-1' ਬਿਨਾ ਮਿਆਦ ਦੇ।",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(ਉਦਾਹਰਣ ਦੇ ਤੌਰ ਤੇ `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "ਜਵਾਬ ਆਟੋ ਕਾਪੀ ਕਲਿੱਪਬੋਰਡ 'ਤੇ",
|
||||
"Auto-playback response": "ਆਟੋ-ਪਲੇਬੈਕ ਜਵਾਬ",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 ਬੇਸ URL",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "ਪਾਸਵਰਡ ਬਦਲੋ",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "ਗੱਲਬਾਤ",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "ਸਮਕਾਲੀ ਬੇਨਤੀਆਂ",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "ਮੂਲ (ਸੈਂਟੈਂਸਟ੍ਰਾਂਸਫਾਰਮਰਸ)",
|
||||
"Default Model": "ਡਿਫਾਲਟ ਮਾਡਲ",
|
||||
"Default model updated": "ਮੂਲ ਮਾਡਲ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "ਮੂਲ ਪ੍ਰੰਪਟ ਸੁਝਾਅ",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "ਐਮਬੈੱਡਿੰਗ ਮਾਡਲ ਇੰਜਣ",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "ਐਮਬੈੱਡਿੰਗ ਮਾਡਲ ਨੂੰ \"{{embedding_model}}\" 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "ਕਮਿਊਨਿਟੀ ਸ਼ੇਅਰਿੰਗ ਨੂੰ ਸਮਰੱਥ ਕਰੋ",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "ਨਵੇਂ ਸਾਈਨ ਅਪ ਯੋਗ ਕਰੋ",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "ਵੈੱਬ ਖੋਜ ਨੂੰ ਸਮਰੱਥ ਕਰੋ",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "ਸੁਨਿਸ਼ਚਿਤ ਕਰੋ ਕਿ ਤੁਹਾਡੀ CSV ਫਾਈਲ ਵਿੱਚ ਇਸ ਕ੍ਰਮ ਵਿੱਚ 4 ਕਾਲਮ ਹਨ: ਨਾਮ, ਈਮੇਲ, ਪਾਸਵਰਡ, ਭੂਮਿਕਾ।",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "ਮਾਡਲ ਟੈਗ ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "ਕਦਮਾਂ ਦੀ ਗਿਣਤੀ ਦਰਜ ਕਰੋ (ਉਦਾਹਰਣ ਲਈ 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "ਸਕੋਰ ਦਰਜ ਕਰੋ",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "API ਕੁੰਜੀ ਬਣਾਉਣ ਵਿੱਚ ਅਸਫਲ।",
|
||||
"Failed to read clipboard contents": "ਕਲਿੱਪਬੋਰਡ ਸਮੱਗਰੀ ਪੜ੍ਹਣ ਵਿੱਚ ਅਸਫਲ",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "ਫਰਵਰੀ",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "ਮਾਡਲਫਾਈਲ ਸਮੱਗਰੀ",
|
||||
"Models": "ਮਾਡਲ",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "ਹੋਰ",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ",
|
||||
"No search query generated": "ਕੋਈ ਖੋਜ ਪੁੱਛਗਿੱਛ ਤਿਆਰ ਨਹੀਂ ਕੀਤੀ ਗਈ",
|
||||
"No source available": "ਕੋਈ ਸਰੋਤ ਉਪਲਬਧ ਨਹੀਂ",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "ਸਕਾਰਾਤਮਕ ਰਵੱਈਆ",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "ਪ੍ਰੰਪਟ",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "ਓਲਾਮਾ.ਕਾਮ ਤੋਂ \"{{searchValue}}\" ਖਿੱਚੋ",
|
||||
"Pull a model from Ollama.com": "ਓਲਾਮਾ.ਕਾਮ ਤੋਂ ਇੱਕ ਮਾਡਲ ਖਿੱਚੋ",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "ਹਟਾਓ",
|
||||
"Remove Model": "ਮਾਡਲ ਹਟਾਓ",
|
||||
"Rename": "ਨਾਮ ਬਦਲੋ",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "ਆਖਰੀ N ਨੂੰ ਦੁਹਰਾਓ",
|
||||
"Request Mode": "ਬੇਨਤੀ ਮੋਡ",
|
||||
"Reranking Model": "ਮਾਡਲ ਮੁੜ ਰੈਂਕਿੰਗ",
|
||||
"Reranking model disabled": "ਮਾਡਲ ਮੁੜ ਰੈਂਕਿੰਗ ਅਯੋਗ ਕੀਤਾ ਗਿਆ",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "ਮਾਡਲ ਮੁੜ ਰੈਂਕਿੰਗ ਨੂੰ \"{{reranking_model}}\" 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "ਭੂਮਿਕਾ",
|
||||
@@ -831,6 +844,7 @@
|
||||
"System": "ਸਿਸਟਮ",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "ਸਿਸਟਮ ਪ੍ਰੰਪਟ",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -973,6 +987,7 @@
|
||||
"Web Loader Settings": "ਵੈਬ ਲੋਡਰ ਸੈਟਿੰਗਾਂ",
|
||||
"Web Search": "ਵੈੱਬ ਖੋਜ",
|
||||
"Web Search Engine": "ਵੈੱਬ ਖੋਜ ਇੰਜਣ",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "ਵੈਬਹੁੱਕ URL",
|
||||
"WebUI Settings": "ਵੈਬਯੂਆਈ ਸੈਟਿੰਗਾਂ",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' lub '-1' dla bez wygaśnięcia.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(np. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Automatyczne kopiowanie odpowiedzi do schowka",
|
||||
"Auto-playback response": "Odtwarzanie automatyczne odpowiedzi",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "Podstawowy adres URL AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Zmień hasło",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Czat",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Równoczesne żądania",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Potwierdź hasło",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Domyślny (SentenceTransformers)",
|
||||
"Default Model": "Model domyślny",
|
||||
"Default model updated": "Domyślny model zaktualizowany",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Domyślne sugestie promptów",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Silnik modelu osadzania",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Model osadzania ustawiono na \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Włączanie udostępniania społecznościowego",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Włącz nowe rejestracje",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Włączanie wyszukiwania w Internecie",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Upewnij się, że twój plik CSV zawiera 4 kolumny w następującym porządku: Nazwa, Email, Hasło, Rola.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Wprowadź tag modelu (np. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Wprowadź liczbę kroków (np. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Wprowadź wynik",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Nie udało się utworzyć klucza API.",
|
||||
"Failed to read clipboard contents": "Nie udało się odczytać zawartości schowka",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Luty",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Zawartość pliku modelu",
|
||||
"Models": "Modele",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Więcej",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Nie znaleziono rezultatów",
|
||||
"No search query generated": "Nie wygenerowano zapytania wyszukiwania",
|
||||
"No source available": "Źródło nie dostępne",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Pozytywne podejście",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompty",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Pobierz \"{{searchValue}}\" z Ollama.com",
|
||||
"Pull a model from Ollama.com": "Pobierz model z Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Usuń",
|
||||
"Remove Model": "Usuń model",
|
||||
"Rename": "ZMień nazwę",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Powtórz ostatnie N",
|
||||
"Request Mode": "Tryb żądania",
|
||||
"Reranking Model": "Zmiana rankingu modelu",
|
||||
"Reranking model disabled": "Zmiana rankingu modelu zablokowana",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Zmiana rankingu modelu ustawiona na \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Rola",
|
||||
@@ -833,6 +846,7 @@
|
||||
"System": "System",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Prompt systemowy",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -975,6 +989,7 @@
|
||||
"Web Loader Settings": "Ustawienia pobierania z sieci",
|
||||
"Web Search": "Wyszukiwarka w Internecie",
|
||||
"Web Search Engine": "Wyszukiwarka internetowa",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL webhook",
|
||||
"WebUI Settings": "Ustawienia interfejsu WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ou '-1' para sem expiração.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(por exemplo, `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(por exemplo, `sh webui.sh --api`)",
|
||||
@@ -18,7 +19,7 @@
|
||||
"Account Activation Pending": "Ativação da Conta Pendente",
|
||||
"Accurate information": "Informação precisa",
|
||||
"Actions": "Ações",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Ativar esse comando no chat digitando \"/{{COMMAND}}\"",
|
||||
"Active Users": "Usuários Ativos",
|
||||
"Add": "Adicionar",
|
||||
"Add a model ID": "Adicione um ID de modelo",
|
||||
@@ -43,26 +44,26 @@
|
||||
"Admin": "Admin",
|
||||
"Admin Panel": "Painel do Admin",
|
||||
"Admin Settings": "Configurações do Admin",
|
||||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Os admins têm acesso a todas as ferramentas o tempo todo; os usuários precisam de ferramentas atribuídas por modelo no workspace.",
|
||||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Os admins têm acesso a todas as ferramentas o tempo todo; os usuários precisam de ferramentas atribuídas, por modelo, no workspace.",
|
||||
"Advanced Parameters": "Parâmetros Avançados",
|
||||
"Advanced Params": "Parâmetros Avançados",
|
||||
"All chats": "Todos os chats",
|
||||
"All Documents": "Todos os Documentos",
|
||||
"All models deleted successfully": "",
|
||||
"Allow Chat Delete": "Permitir exclusão de Chats",
|
||||
"All models deleted successfully": "Todos os modelos foram excluídos com sucesso",
|
||||
"Allow Chat Delete": "Permitir Exclusão de Chats",
|
||||
"Allow Chat Deletion": "Permitir Exclusão de Chats",
|
||||
"Allow Chat Edit": "Permitir edição de Chats",
|
||||
"Allow File Upload": "Permitir envio de arquivos",
|
||||
"Allow Chat Edit": "Permitir Edição de Chats",
|
||||
"Allow File Upload": "Permitir Envio de arquivos",
|
||||
"Allow non-local voices": "Permitir vozes não locais",
|
||||
"Allow Temporary Chat": "Permitir Conversa Temporária",
|
||||
"Allow User Location": "Permitir Localização do Usuário",
|
||||
"Allow Voice Interruption in Call": "Permitir Interrupção de Voz na Chamada",
|
||||
"Already have an account?": "Já tem uma conta?",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "",
|
||||
"Amazing": "",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "Alternativa ao 'top_p', e visa garantir um equilíbrio entre qualidade e variedade. O parâmetro 'p' representa a probabilidade mínima para que um token seja considerado, em relação à probabilidade do token mais provável. Por exemplo, com 'p=0.05' e o token mais provável com probabilidade de '0.9', as predições com valor inferior a '0.045' são filtrados. (Default: 0.0)",
|
||||
"Amazing": "Incrível",
|
||||
"an assistant": "um assistente",
|
||||
"and": "e",
|
||||
"and {{COUNT}} more": "e {{COUNT}} mais",
|
||||
"and {{COUNT}} more": "e mais {{COUNT}}",
|
||||
"and create a new shared link.": "e criar um novo link compartilhado.",
|
||||
"API Base URL": "URL Base da API",
|
||||
"API Key": "Chave API",
|
||||
@@ -76,9 +77,9 @@
|
||||
"Archive All Chats": "Arquivar Todos os Chats",
|
||||
"Archived Chats": "Chats Arquivados",
|
||||
"archived-chat-export": "",
|
||||
"Are you sure you want to unarchive all archived chats?": "Você tem certeza que deseja arquivar todos os chats?",
|
||||
"Are you sure you want to unarchive all archived chats?": "Você tem certeza que deseja desarquivar todos os chats arquivados?",
|
||||
"Are you sure?": "Você tem certeza?",
|
||||
"Arena Models": "Modelos Arena",
|
||||
"Arena Models": "Arena de Modelos",
|
||||
"Artifacts": "Artefatos",
|
||||
"Ask a question": "Faça uma pergunta",
|
||||
"Assistant": "Assistente",
|
||||
@@ -90,19 +91,21 @@
|
||||
"Authenticate": "Autenticar",
|
||||
"Auto-Copy Response to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
|
||||
"Auto-playback response": "Resposta de reprodução automática",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "String de Autenticação da API AUTOMATIC1111",
|
||||
"AUTOMATIC1111 Base URL": "URL Base AUTOMATIC1111",
|
||||
"AUTOMATIC1111 Base URL is required.": "URL Base AUTOMATIC1111 é necessária.",
|
||||
"Available list": "Lista disponível",
|
||||
"available!": "disponível!",
|
||||
"Awful": "",
|
||||
"Awful": "Horrível",
|
||||
"Azure AI Speech": "",
|
||||
"Azure Region": "",
|
||||
"Back": "Voltar",
|
||||
"Bad Response": "Resposta Ruim",
|
||||
"Banners": "Banners",
|
||||
"Base Model (From)": "Modelo Base (From)",
|
||||
"Base Model (From)": "Modelo Base (De)",
|
||||
"Batch Size (num_batch)": "Tamanho do Lote (num_batch)",
|
||||
"before": "antes",
|
||||
"Being lazy": "Sendo preguiçoso",
|
||||
@@ -116,10 +119,11 @@
|
||||
"Camera": "Câmera",
|
||||
"Cancel": "Cancelar",
|
||||
"Capabilities": "Capacidades",
|
||||
"Certificate Path": "",
|
||||
"Certificate Path": "Caminho do Certificado",
|
||||
"Change Password": "Mudar Senha",
|
||||
"Character": "Caracter",
|
||||
"Chart new frontiers": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "Trace novas fronteiras",
|
||||
"Chat": "Chat",
|
||||
"Chat Background Image": "Imagem de Fundo do Chat",
|
||||
"Chat Bubble UI": "Interface de Bolha de Chat",
|
||||
@@ -147,7 +151,7 @@
|
||||
"Click here to learn more about faster-whisper and see the available models.": "Clique aqui para aprender mais sobre Whisper e ver os modelos disponíveis.",
|
||||
"Click here to select": "Clique aqui para enviar",
|
||||
"Click here to select a csv file.": "Clique aqui para enviar um arquivo csv.",
|
||||
"Click here to select a py file.": "Clique aqui para enviar um arquivo py.",
|
||||
"Click here to select a py file.": "Clique aqui para enviar um arquivo python.",
|
||||
"Click here to upload a workflow.json file.": "Clique aqui para enviar um arquivo workflow.json.",
|
||||
"click here.": "clique aqui.",
|
||||
"Click on the user role button to change a user's role.": "Clique no botão de função do usuário para alterar a função de um usuário.",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "Conclusões",
|
||||
"Concurrent Requests": "Solicitações Concomitantes",
|
||||
"Configure": "Configurar",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Confirmar",
|
||||
"Confirm Password": "Confirmar Senha",
|
||||
"Confirm your action": "Confirme sua ação",
|
||||
@@ -174,7 +179,7 @@
|
||||
"Contact Admin for WebUI Access": "Contate o Admin para Acesso ao WebUI",
|
||||
"Content": "Conteúdo",
|
||||
"Content Extraction": "Extração de Conteúdo",
|
||||
"Context Length": "Context Length",
|
||||
"Context Length": "Tamanho de Contexto",
|
||||
"Continue Response": "Continuar Resposta",
|
||||
"Continue with {{provider}}": "Continuar com {{provider}}",
|
||||
"Continue with Email": "Continuar com Email",
|
||||
@@ -196,8 +201,8 @@
|
||||
"Create a model": "Criar um modelo",
|
||||
"Create Account": "Criar Conta",
|
||||
"Create Admin Account": "Criar Conta de Admin",
|
||||
"Create Group": "Criar grupo",
|
||||
"Create Knowledge": "Criar conhecimento",
|
||||
"Create Group": "Criar Grupo",
|
||||
"Create Knowledge": "Criar Conhecimento",
|
||||
"Create new key": "Criar nova chave",
|
||||
"Create new secret key": "Criar nova chave secreta",
|
||||
"Created at": "Criado em",
|
||||
@@ -215,28 +220,29 @@
|
||||
"Default (SentenceTransformers)": "Padrão (SentenceTransformers)",
|
||||
"Default Model": "Modelo Padrão",
|
||||
"Default model updated": "Modelo padrão atualizado",
|
||||
"Default Models": "",
|
||||
"Default permissions": "Permissões padrão",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default permissions updated successfully": "Permissões padrão atualizadas com sucesso",
|
||||
"Default Prompt Suggestions": "Sugestões de Prompt Padrão",
|
||||
"Default to 389 or 636 if TLS is enabled": "",
|
||||
"Default to ALL": "Padrão para todos",
|
||||
"Default to ALL": "Padrão para TODOS",
|
||||
"Default User Role": "Padrão para novos usuários",
|
||||
"Delete": "Deletar",
|
||||
"Delete a model": "Deletar um modelo",
|
||||
"Delete All Chats": "Deletar Todos os Chats",
|
||||
"Delete All Models": "",
|
||||
"Delete chat": "Deletar chat",
|
||||
"Delete Chat": "Deletar Chat",
|
||||
"Delete chat?": "Deletar chat?",
|
||||
"Delete folder?": "Deletar pasta?",
|
||||
"Delete function?": "Deletar função?",
|
||||
"Delete prompt?": "Deletar prompt?",
|
||||
"delete this link": "deletar este link",
|
||||
"Delete tool?": "Deletar ferramenta?",
|
||||
"Delete User": "Deletar Usuário",
|
||||
"Deleted {{deleteModelTag}}": "Deletado {{deleteModelTag}}",
|
||||
"Deleted {{name}}": "Deletado {{name}}",
|
||||
"Deleted User": "",
|
||||
"Delete": "Excluir",
|
||||
"Delete a model": "Excluir um modelo",
|
||||
"Delete All Chats": "Excluir Todos os Chats",
|
||||
"Delete All Models": "Excluir Todos os Modelos",
|
||||
"Delete chat": "Excluir chat",
|
||||
"Delete Chat": "Excluir Chat",
|
||||
"Delete chat?": "Excluir chat?",
|
||||
"Delete folder?": "Excluir pasta?",
|
||||
"Delete function?": "Excluir função?",
|
||||
"Delete prompt?": "Excluir prompt?",
|
||||
"delete this link": "Excluir este link",
|
||||
"Delete tool?": "Excluir ferramenta?",
|
||||
"Delete User": "Excluir Usuário",
|
||||
"Deleted {{deleteModelTag}}": "Excluído {{deleteModelTag}}",
|
||||
"Deleted {{name}}": "Excluído {{name}}",
|
||||
"Deleted User": "Usuário Excluído",
|
||||
"Describe your knowledge base and objectives": "Descreva sua base de conhecimento e objetivos",
|
||||
"Description": "Descrição",
|
||||
"Didn't fully follow instructions": "Não seguiu completamente as instruções",
|
||||
@@ -254,7 +260,7 @@
|
||||
"Display": "Exibir",
|
||||
"Display Emoji in Call": "Exibir Emoji na Chamada",
|
||||
"Display the username instead of You in the Chat": "Exibir o nome de usuário em vez de Você no Chat",
|
||||
"Displays citations in the response": "",
|
||||
"Displays citations in the response": "Exibir citações na resposta",
|
||||
"Dive into knowledge": "Explorar base de conhecimento",
|
||||
"Do not install functions from sources you do not fully trust.": "Não instale funções de fontes que você não confia totalmente.",
|
||||
"Do not install tools from sources you do not fully trust.": "Não instale ferramentas de fontes que você não confia totalmente.",
|
||||
@@ -270,23 +276,23 @@
|
||||
"Download": "Baixar",
|
||||
"Download canceled": "Download cancelado",
|
||||
"Download Database": "Baixar Banco de Dados",
|
||||
"Drag and drop a file to upload or select a file to view": "",
|
||||
"Drag and drop a file to upload or select a file to view": "Arraste e solte um arquivo para enviar ou selecione um arquivo para visualizar",
|
||||
"Draw": "Empate",
|
||||
"Drop any files here to add to the conversation": "Solte qualquer arquivo aqui para adicionar à conversa",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "por exemplo, '30s', '10m'. Unidades de tempo válidas são 's', 'm', 'h'.",
|
||||
"e.g. A filter to remove profanity from text": "Exemplo: Um filtro para remover o homofobia de texto",
|
||||
"e.g. My Filter": "Exemplo: Um filtro",
|
||||
"e.g. My Tools": "Exemplo: Minhas ferramentas",
|
||||
"e.g. A filter to remove profanity from text": "Exemplo: Um filtro para remover palavrões do texto",
|
||||
"e.g. My Filter": "Exemplo: Meu Filtro",
|
||||
"e.g. My Tools": "Exemplo: Minhas Ferramentas",
|
||||
"e.g. my_filter": "Exemplo: my_filter",
|
||||
"e.g. my_tools": "Exemplo: my_tools",
|
||||
"e.g. Tools for performing various operations": "Exemplo: Ferramentas para executar operações diversas",
|
||||
"Edit": "Editar",
|
||||
"Edit Arena Model": "Editar Modelo Arena",
|
||||
"Edit Connection": "Editar conexão",
|
||||
"Edit Default Permissions": "Editar permissões padrão",
|
||||
"Edit Arena Model": "Editar Arena de Modelos",
|
||||
"Edit Connection": "Editar Conexão",
|
||||
"Edit Default Permissions": "Editar Permissões Padrão",
|
||||
"Edit Memory": "Editar Memória",
|
||||
"Edit User": "Editar Usuário",
|
||||
"Edit User Group": "Editar grupo de usuários",
|
||||
"Edit User Group": "Editar Grupo de Usuários",
|
||||
"ElevenLabs": "",
|
||||
"Email": "Email",
|
||||
"Embark on adventures": "Embarque em aventuras",
|
||||
@@ -294,17 +300,15 @@
|
||||
"Embedding Model": "Modelo de Embedding",
|
||||
"Embedding Model Engine": "Motor do Modelo de Embedding",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelo de embedding definido para \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable API Key Auth": "Ativar Autenticação por API Key",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Ativar Compartilhamento com a Comunidade",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Habilite o bloqueio de memória (mlock) para evitar que os dados do modelo sejam transferidos da RAM para a área de troca (swap). Essa opção bloqueia o conjunto de páginas em uso pelo modelo na RAM, garantindo que elas não sejam transferidas para o disco. Isso pode ajudar a manter o desempenho, evitando falhas de página e garantindo acesso rápido aos dados.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Habilite o mapeamento de memória (mmap) para carregar dados do modelo. Esta opção permite que o sistema use o armazenamento em disco como uma extensão da RAM, tratando os arquivos do disco como se estivessem na RAM. Isso pode melhorar o desempenho do modelo, permitindo acesso mais rápido aos dados. No entanto, pode não funcionar corretamente com todos os sistemas e consumir uma quantidade significativa de espaço em disco.",
|
||||
"Enable Message Rating": "Habilitar Avaliação de Mensagens",
|
||||
"Enable Message Rating": "Ativar Avaliação de Mensagens",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "Habilite a amostragem Mirostat para controlar a perplexidade. (Padrão: 0, 0 = Desativado, 1 = Mirostat, 2 = Mirostat 2.0)",
|
||||
"Enable New Sign Ups": "Ativar Novos Cadastros",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "Habilitar geração de Tags",
|
||||
"Enable Web Search": "Ativar Pesquisa na Web",
|
||||
"Enable Web Search Query Generation": "Habilitar Geração de Consultas na Web",
|
||||
"Enabled": "Ativado",
|
||||
"Engine": "Motor",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Certifique-se de que seu arquivo CSV inclua 4 colunas nesta ordem: Nome, Email, Senha, Função.",
|
||||
@@ -329,8 +333,9 @@
|
||||
"Enter language codes": "Digite os códigos de idioma",
|
||||
"Enter Model ID": "Digite o ID do modelo",
|
||||
"Enter model tag (e.g. {{modelTag}})": "Digite a tag do modelo (por exemplo, {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Mojeek Search API Key": "Digite a Chave API do Mojeek Search",
|
||||
"Enter Number of Steps (e.g. 50)": "Digite o Número de Passos (por exemplo, 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Digite o Sampler (por exemplo, Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Digite o Agendador (por exemplo, Karras)",
|
||||
"Enter Score": "Digite a Pontuação",
|
||||
@@ -359,11 +364,11 @@
|
||||
"Enter Your Username": "Digite seu usuário",
|
||||
"Error": "Erro",
|
||||
"ERROR": "",
|
||||
"Evaluations": "Evoluções",
|
||||
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "Examplo: (&(objectClass=inetOrgPerson)(uid=%s))",
|
||||
"Example: ALL": "Examplo: ALL",
|
||||
"Example: ou=users,dc=foo,dc=example": "Examplo: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Examplo: sAMAccountName or uid or userPrincipalName",
|
||||
"Evaluations": "Avaliações",
|
||||
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "Exemplo: (&(objectClass=inetOrgPerson)(uid=%s))",
|
||||
"Example: ALL": "Exemplo: ALL",
|
||||
"Example: ou=users,dc=foo,dc=example": "Exemplo: ou=users,dc=foo,dc=example",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "Exemplo: sAMAccountName ou uid ou userPrincipalName",
|
||||
"Exclude": "Excluir",
|
||||
"Experimental": "Experimental",
|
||||
"Explore the cosmos": "Explorar o cosmos",
|
||||
@@ -383,11 +388,12 @@
|
||||
"Failed to add file.": "Falha ao adicionar arquivo.",
|
||||
"Failed to create API Key.": "Falha ao criar a Chave API.",
|
||||
"Failed to read clipboard contents": "Falha ao ler o conteúdo da área de transferência",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Falha ao atualizar as configurações",
|
||||
"Failed to upload file.": "Falha ao carregar o arquivo.",
|
||||
"February": "Fevereiro",
|
||||
"Feedback History": "Histórico de comentários",
|
||||
"Feedbacks": "",
|
||||
"Feedbacks": "Comentários",
|
||||
"Feel free to add specific details": "Sinta-se à vontade para adicionar detalhes específicos",
|
||||
"File": "Arquivo",
|
||||
"File added successfully.": "Arquivo adicionado com sucesso.",
|
||||
@@ -403,23 +409,23 @@
|
||||
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Falsificação de impressão digital detectada: Não foi possível usar as iniciais como avatar. Usando a imagem de perfil padrão.",
|
||||
"Fluidly stream large external response chunks": "Transmitir fluentemente grandes blocos de respostas externas",
|
||||
"Focus chat input": "Focar entrada de chat",
|
||||
"Folder deleted successfully": "Pasta deletada com sucesso",
|
||||
"Folder name cannot be empty": "Nome da pasta não pode estar vazia",
|
||||
"Folder name cannot be empty.": "Nome da pasta não pode estar vazia.",
|
||||
"Folder deleted successfully": "Pasta excluída com sucesso",
|
||||
"Folder name cannot be empty": "Nome da pasta não pode estar vazio",
|
||||
"Folder name cannot be empty.": "Nome da pasta não pode estar vazio.",
|
||||
"Folder name updated successfully": "Nome da pasta atualizado com sucesso",
|
||||
"Followed instructions perfectly": "Seguiu as instruções perfeitamente",
|
||||
"Forge new paths": "Trilhar novos caminhos",
|
||||
"Form": "Formulário",
|
||||
"Format your variables using brackets like this:": "Formate suas variáveis usando colchetes como este:",
|
||||
"Frequency Penalty": "Frequency Penalty",
|
||||
"Frequency Penalty": "Penalização por Frequência",
|
||||
"Function": "Função",
|
||||
"Function created successfully": "Função criada com sucesso",
|
||||
"Function deleted successfully": "Função deletada com sucesso",
|
||||
"Function Description": "Descrição da função",
|
||||
"Function deleted successfully": "Função excluída com sucesso",
|
||||
"Function Description": "Descrição da Função",
|
||||
"Function ID": "ID da Função",
|
||||
"Function is now globally disabled": "A função está agora desativada globalmente",
|
||||
"Function is now globally enabled": "A função está agora ativada globalmente",
|
||||
"Function Name": "Nome da função",
|
||||
"Function Name": "Nome da Função",
|
||||
"Function updated successfully": "Função atualizada com sucesso",
|
||||
"Functions": "Funções",
|
||||
"Functions allow arbitrary code execution": "Funções permitem a execução arbitrária de código",
|
||||
@@ -437,9 +443,9 @@
|
||||
"Google PSE API Key": "Chave API do Google PSE",
|
||||
"Google PSE Engine Id": "ID do Motor do Google PSE",
|
||||
"Group created successfully": "Grupo criado com sucesso",
|
||||
"Group deleted successfully": "Grupo deletado com sucesso",
|
||||
"Group Description": "Descrição do grupo",
|
||||
"Group Name": "Nome do grupo",
|
||||
"Group deleted successfully": "Grupo excluído com sucesso",
|
||||
"Group Description": "Descrição do Grupo",
|
||||
"Group Name": "Nome do Grupo",
|
||||
"Group updated successfully": "Grupo atualizado com sucesso",
|
||||
"Groups": "Grupos",
|
||||
"h:mm a": "h:mm a",
|
||||
@@ -447,13 +453,13 @@
|
||||
"has no conversations.": "não tem conversas.",
|
||||
"Hello, {{name}}": "Olá, {{name}}",
|
||||
"Help": "Ajuda",
|
||||
"Help us create the best community leaderboard by sharing your feedback history!": "Ajude-nos a criar o melhor ranking da comunidade compartilhando sua historial de comentaários!",
|
||||
"Help us create the best community leaderboard by sharing your feedback history!": "Ajude-nos a criar o melhor ranking da comunidade compartilhando sua historia de comentários!",
|
||||
"Hex Color": "Cor hexadecimal",
|
||||
"Hex Color - Leave empty for default color": "Cor Hexadecimal - Deixe em branco para a cor padrão",
|
||||
"Hide": "Ocultar",
|
||||
"Host": "Servidor",
|
||||
"How can I help you today?": "Como posso ajudar você hoje?",
|
||||
"How would you rate this response?": "",
|
||||
"How would you rate this response?": "Como você avalia essa resposta?",
|
||||
"Hybrid Search": "Pesquisa Híbrida",
|
||||
"I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Eu reconheço que li e entendi as implicações da minha ação. Estou ciente dos riscos associados à execução de código arbitrário e verifiquei a confiabilidade da fonte.",
|
||||
"ID": "",
|
||||
@@ -498,7 +504,7 @@
|
||||
"Knowledge deleted successfully.": "Conhecimento excluído com sucesso.",
|
||||
"Knowledge reset successfully.": "Conhecimento resetado com sucesso.",
|
||||
"Knowledge updated successfully": "Conhecimento atualizado com sucesso",
|
||||
"Label": "",
|
||||
"Label": "Rótulo",
|
||||
"Landing Page Mode": "Modo Landing Page",
|
||||
"Language": "Idioma",
|
||||
"Last Active": "Última Atividade",
|
||||
@@ -516,13 +522,13 @@
|
||||
"LLMs can make mistakes. Verify important information.": "LLMs podem cometer erros. Verifique informações importantes.",
|
||||
"Local": "",
|
||||
"Local Models": "Modelos Locais",
|
||||
"Lost": "Negativo",
|
||||
"LTR": "LTR",
|
||||
"Lost": "Perdeu",
|
||||
"LTR": "Esquerda para Direita",
|
||||
"Made by OpenWebUI Community": "Feito pela Comunidade OpenWebUI",
|
||||
"Make sure to enclose them with": "Certifique-se de encerrá-los com",
|
||||
"Make sure to export a workflow.json file as API format from ComfyUI.": "Certifique-se de exportar um arquivo workflow.json como o formato API do ComfyUI.",
|
||||
"Manage": "Gerenciar",
|
||||
"Manage Arena Models": "Gerenciar Modelos Arena",
|
||||
"Manage Arena Models": "Gerenciar Arena de Modelos",
|
||||
"Manage Ollama": "Gerenciar Ollama",
|
||||
"Manage Ollama API Connections": "Gerenciar Conexões Ollama API",
|
||||
"Manage OpenAI API Connections": "Gerenciar Conexões OpenAI API",
|
||||
@@ -565,12 +571,13 @@
|
||||
"Model Name": "Nome do Modelo",
|
||||
"Model not selected": "Modelo não selecionado",
|
||||
"Model Params": "Parâmetros do Modelo",
|
||||
"Model Permissions": "Permissões do modelo",
|
||||
"Model Permissions": "Permissões do Modelo",
|
||||
"Model updated successfully": "Modelo atualizado com sucesso",
|
||||
"Modelfile Content": "Conteúdo do Arquivo do Modelo",
|
||||
"Models": "Modelos",
|
||||
"Models Access": "Acesso aos Modelos",
|
||||
"Mojeek Search API Key": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "Chave de API Mojeel Search",
|
||||
"more": "mais",
|
||||
"More": "Mais",
|
||||
"Name": "Nome",
|
||||
@@ -584,11 +591,12 @@
|
||||
"No feedbacks found": "Comentários não encontrados",
|
||||
"No file selected": "Nenhum arquivo selecionado",
|
||||
"No files found.": "Nenhum arquivo encontrado.",
|
||||
"No groups with access, add a group to grant access": "",
|
||||
"No groups with access, add a group to grant access": "Nenhum grupo com acesso, adicione um grupo para dar acesso",
|
||||
"No HTML, CSS, or JavaScript content found.": "Nenhum conteúdo HTML, CSS ou JavaScript encontrado.",
|
||||
"No knowledge found": "nenhum conhecimento encontrado",
|
||||
"No knowledge found": "Nenhum conhecimento encontrado",
|
||||
"No model IDs": "Nenhum ID de modelo",
|
||||
"No models found": "Nenhum modelo encontrado",
|
||||
"No models selected": "",
|
||||
"No results found": "Nenhum resultado encontrado",
|
||||
"No search query generated": "Nenhuma consulta de pesquisa gerada",
|
||||
"No source available": "Nenhuma fonte disponível",
|
||||
@@ -601,8 +609,8 @@
|
||||
"Notes": "Notas",
|
||||
"Notifications": "Notificações",
|
||||
"November": "Novembro",
|
||||
"num_gpu (Ollama)": "",
|
||||
"num_thread (Ollama)": "num_thread (Ollama)",
|
||||
"num_gpu (Ollama)": "Número de GPUs (Ollama)",
|
||||
"num_thread (Ollama)": "Número de Threads (Ollama)",
|
||||
"OAuth ID": "OAuth ID",
|
||||
"October": "Outubro",
|
||||
"Off": "Desligado",
|
||||
@@ -611,7 +619,7 @@
|
||||
"Ollama": "Ollama",
|
||||
"Ollama API": "API Ollama",
|
||||
"Ollama API disabled": "API Ollama desativada",
|
||||
"Ollama API settings updated": "",
|
||||
"Ollama API settings updated": "Configurações da API Ollama atualizadas",
|
||||
"Ollama Version": "Versão Ollama",
|
||||
"On": "Ligado",
|
||||
"Only alphanumeric characters and hyphens are allowed": "Somente caracteres alfanuméricos e hífens são permitidos",
|
||||
@@ -625,7 +633,7 @@
|
||||
"Open file": "Abrir arquivo",
|
||||
"Open in full screen": "Abrir em tela cheia",
|
||||
"Open new chat": "Abrir novo chat",
|
||||
"Open WebUI uses faster-whisper internally.": "Open WebUI usa reconhecimento de fala rápido mais rápido internamente.",
|
||||
"Open WebUI uses faster-whisper internally.": "Open WebUI usa faster-whisper internamente.",
|
||||
"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "A Open WebUI usa os embeddings de voz do SpeechT5 e do CMU Arctic.",
|
||||
"Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "A versão do Open WebUI (v{{OPEN_WEBUI_VERSION}}) é inferior à versão necessária (v{{REQUIRED_VERSION}})",
|
||||
"OpenAI": "OpenAI",
|
||||
@@ -642,7 +650,7 @@
|
||||
"Overview": "Visão Geral",
|
||||
"page": "página",
|
||||
"Password": "Senha",
|
||||
"Paste Large Text as File": "",
|
||||
"Paste Large Text as File": "Cole Textos Longos como Arquivo",
|
||||
"PDF document (.pdf)": "Documento PDF (.pdf)",
|
||||
"PDF Extract Images (OCR)": "Extrair Imagens do PDF (OCR)",
|
||||
"pending": "pendente",
|
||||
@@ -653,7 +661,7 @@
|
||||
"Personalization": "Personalização",
|
||||
"Pin": "Fixar",
|
||||
"Pinned": "Fixado",
|
||||
"Pioneer insights": "",
|
||||
"Pioneer insights": "Insights pioneiros",
|
||||
"Pipeline deleted successfully": "Pipeline excluído com sucesso",
|
||||
"Pipeline downloaded successfully": "Pipeline baixado com sucesso",
|
||||
"Pipelines": "Pipelines",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Por favor, revise cuidadosamente os seguintes avisos:",
|
||||
"Please enter a prompt": "Por favor, digite um prompt",
|
||||
"Please fill in all fields.": "Por favor, preencha todos os campos.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Por favor, seleccione uma razão",
|
||||
"Port": "Porta",
|
||||
"Positive attitude": "Atitude positiva",
|
||||
@@ -679,9 +688,10 @@
|
||||
"Prompt updated successfully": "Prompt atualizado com sucesso",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "Acessar prompts",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Obter \"{{searchValue}}\" de Ollama.com",
|
||||
"Pull a model from Ollama.com": "Obter um modelo de Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
"Query Generation Prompt": "Prompt de Geração de Consulta",
|
||||
"Query Params": "Parâmetros de Consulta",
|
||||
"RAG Template": "Modelo RAG",
|
||||
"Rating": "Avaliação",
|
||||
@@ -689,39 +699,42 @@
|
||||
"Read Aloud": "Ler em Voz Alta",
|
||||
"Record voice": "Gravar voz",
|
||||
"Redirecting you to OpenWebUI Community": "Redirecionando você para a Comunidade OpenWebUI",
|
||||
"Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40)": "",
|
||||
"Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative. (Default: 40)": "Reduz a probabilidade de gerar absurdos. Um valor mais alto (por exemplo, 100) dará respostas mais diversas, enquanto um valor mais baixo (por exemplo, 10) será mais conservador. (Padrão: 40)",
|
||||
"Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Refira-se como \"Usuário\" (por exemplo, \"Usuário está aprendendo espanhol\")",
|
||||
"References from": "Referências de",
|
||||
"Refused when it shouldn't have": "Recusado quando não deveria",
|
||||
"Regenerate": "Regenerar",
|
||||
"Regenerate": "Gerar novamente",
|
||||
"Release Notes": "Notas de Lançamento",
|
||||
"Relevance": "Relevância",
|
||||
"Remove": "Remover",
|
||||
"Remove Model": "Remover Modelo",
|
||||
"Rename": "Renomear",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Repetir Último N",
|
||||
"Request Mode": "Modo de Solicitação",
|
||||
"Reranking Model": "Modelo de Reclassificação",
|
||||
"Reranking model disabled": "Modelo de Reclassificação desativado",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Modelo de Reclassificação definido como \"{{reranking_model}}\"",
|
||||
"Reset": "Redefinir",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Redefinir Diretório de Upload",
|
||||
"Reset Vector Storage/Knowledge": "Redefinir Armazenamento de Vetores/Conhecimento",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Notificações de resposta não podem ser ativadas pois as permissões do site foram negadas. Por favor, visite as configurações do seu navegador para conceder o acesso necessário.",
|
||||
"Response splitting": "Divisão da Resposta",
|
||||
"Result": "Resultado",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Entrada de rich text para bate-papo",
|
||||
"RK": "",
|
||||
"Role": "Função",
|
||||
"Rosé Pine": "Rosé Pine",
|
||||
"Rosé Pine Dawn": "Rosé Pine Dawn",
|
||||
"RTL": "RTL",
|
||||
"RTL": "Direita para Esquerda",
|
||||
"Run": "Executar",
|
||||
"Running": "Executando",
|
||||
"Save": "Salvar",
|
||||
"Save & Create": "Salvar e Criar",
|
||||
"Save & Update": "Salvar e Atualizar",
|
||||
"Save As Copy": "Salvar como cópia",
|
||||
"Save As Copy": "Salvar Como Cópia",
|
||||
"Save Tag": "Salvar Tag",
|
||||
"Saved": "Armazenado",
|
||||
"Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Salvar registros de chat diretamente no armazenamento do seu navegador não é mais suportado. Por favor, reserve um momento para baixar e excluir seus registros de chat clicando no botão abaixo. Não se preocupe, você pode facilmente reimportar seus registros de chat para o backend através de",
|
||||
@@ -731,17 +744,17 @@
|
||||
"Search Base": "Pesquisar base",
|
||||
"Search Chats": "Pesquisar Chats",
|
||||
"Search Collection": "Pesquisar Coleção",
|
||||
"Search Filters": "Pesquisar filtros",
|
||||
"Search Filters": "Pesquisar Filtros",
|
||||
"search for tags": "Pesquisar por tags",
|
||||
"Search Functions": "Pesquisar Funções",
|
||||
"Search Knowledge": "Pesquisar conhecimento",
|
||||
"Search Knowledge": "Pesquisar Conhecimento",
|
||||
"Search Models": "Pesquisar Modelos",
|
||||
"Search options": "Opções de pesquisa",
|
||||
"Search Prompts": "Pesquisar Prompts",
|
||||
"Search Prompts": "Prompts de Pesquisa",
|
||||
"Search Result Count": "Contagem de Resultados da Pesquisa",
|
||||
"Search the web": "Pesquisar web",
|
||||
"Search Tools": "Pesquisar Ferramentas",
|
||||
"SearchApi API Key": "Pesquisar SearchApi key",
|
||||
"SearchApi API Key": "Chave API SearchApi",
|
||||
"SearchApi Engine": "Motor SearchApi",
|
||||
"Searched {{count}} sites_one": "Pesquisou {{count}} sites_one",
|
||||
"Searched {{count}} sites_many": "Pesquisou {{count}} sites_many",
|
||||
@@ -760,8 +773,8 @@
|
||||
"Select a pipeline": "Selecione um pipeline",
|
||||
"Select a pipeline url": "Selecione uma URL de pipeline",
|
||||
"Select a tool": "Selecione uma ferramenta",
|
||||
"Select Engine": "Selecionar motor",
|
||||
"Select Knowledge": "Selecionar conhecimento",
|
||||
"Select Engine": "Selecionar Motor",
|
||||
"Select Knowledge": "Selecionar Conhecimento",
|
||||
"Select model": "Selecionar modelo",
|
||||
"Select only one model to call": "Selecione apenas um modelo para chamar",
|
||||
"Selected model(s) do not support image inputs": "Modelo(s) selecionado(s) não suportam entradas de imagem",
|
||||
@@ -783,7 +796,7 @@
|
||||
"Set Image Size": "Definir Tamanho da Imagem",
|
||||
"Set reranking model (e.g. {{model}})": "Definir modelo de reclassificação (por exemplo, {{model}})",
|
||||
"Set Sampler": "Definir Sampler",
|
||||
"Set Scheduler": "Definir Agenda",
|
||||
"Set Scheduler": "Definir Agendador",
|
||||
"Set Steps": "Definir Etapas",
|
||||
"Set Task Model": "Definir Modelo de Tarefa",
|
||||
"Set the number of GPU devices used for computation. This option controls how many GPU devices (if available) are used to process incoming requests. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "Defina o número de dispositivos GPU usados para computação. Esta opção controla quantos dispositivos GPU (se disponíveis) são usados para processar as solicitações recebidas. Aumentar esse valor pode melhorar significativamente o desempenho para modelos otimizados para aceleração de GPU, mas também pode consumir mais energia e recursos da GPU.",
|
||||
@@ -801,7 +814,7 @@
|
||||
"Share Chat": "Compartilhar Chat",
|
||||
"Share to OpenWebUI Community": "Compartilhar com a Comunidade OpenWebUI",
|
||||
"Show": "Mostrar",
|
||||
"Show \"What's New\" modal on login": "Mostrar \"novidades\" no login",
|
||||
"Show \"What's New\" modal on login": "Mostrar \"O que há de Novo\" no login",
|
||||
"Show Admin Details in Account Pending Overlay": "Mostrar Detalhes do Administrador na Sobreposição de Conta Pendentes",
|
||||
"Show shortcuts": "Mostrar atalhos",
|
||||
"Show your support!": "Mostre seu apoio!",
|
||||
@@ -819,10 +832,10 @@
|
||||
"Speech-to-Text Engine": "Motor de Transcrição de Fala",
|
||||
"Stop": "Parar",
|
||||
"Stop Sequence": "Sequência de Parada",
|
||||
"Stream Chat Response": "",
|
||||
"Stream Chat Response": "Stream Resposta do Chat",
|
||||
"STT Model": "Modelo STT",
|
||||
"STT Settings": "Configurações STT",
|
||||
"Subtitle (e.g. about the Roman Empire)": "Legenda (por exemplo, sobre o Império Romano)",
|
||||
"Subtitle (e.g. about the Roman Empire)": "Subtítulo (por exemplo, sobre o Império Romano)",
|
||||
"Success": "Sucesso",
|
||||
"Successfully updated.": "Atualizado com sucesso.",
|
||||
"Suggested": "Sugerido",
|
||||
@@ -832,18 +845,19 @@
|
||||
"System": "Sistema",
|
||||
"System Instructions": "Instruções do sistema",
|
||||
"System Prompt": "Prompt do Sistema",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Prompt para geração de Tags",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "A amostragem *tail free* é usada para reduzir o impacto de tokens menos prováveis na saída. Um valor mais alto (por exemplo, 2,0) reduzirá mais o impacto, enquanto um valor de 1,0 desativa essa configuração. (Padrão: 1)",
|
||||
"Tap to interrupt": "Toque para interromper",
|
||||
"Tavily API Key": "Chave da API Tavily",
|
||||
"Tell us more:": "Conte-nos mais:",
|
||||
"Temperature": "Temperatura",
|
||||
"Template": "Modelo",
|
||||
"Template": "Template",
|
||||
"Temporary Chat": "Chat temporário",
|
||||
"Text Splitter": "Divisor de texto",
|
||||
"Text Splitter": "Divisor de Texto",
|
||||
"Text-to-Speech Engine": "Motor de Texto para Fala",
|
||||
"Tfs Z": "Tfs Z",
|
||||
"Thanks for your feedback!": "Obrigado pelo seu feedback!",
|
||||
"Thanks for your feedback!": "Obrigado pelo seu comentário!",
|
||||
"The Application Account DN you bind with for search": "O DN (Distinguished Name) da Conta de Aplicação com a qual você se conecta para pesquisa.",
|
||||
"The base to search for users": "Base para pesquisar usuários.",
|
||||
"The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory. (Default: 512)": "O tamanho do lote (batch size) determina quantas solicitações de texto são processadas juntas de uma vez. Um tamanho de lote maior pode aumentar o desempenho e a velocidade do modelo, mas também requer mais memória. (Padrão: 512)",
|
||||
@@ -865,9 +879,9 @@
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Essa opção deletará todos os arquivos existentes na coleção e todos eles serão substituídos.",
|
||||
"This response was generated by \"{{model}}\"": "Esta resposta foi gerada por \"{{model}}\"",
|
||||
"This will delete": "Isso vai excluir",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "Esta ação deletará <strong>{{NAME}}</strong> e <strong>todos seus conteúdos</strong>.",
|
||||
"This will delete all models including custom models": "",
|
||||
"This will delete all models including custom models and cannot be undone.": "",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "Esta ação excluirá <strong>{{NAME}}</strong> e <strong>todos seus conteúdos</strong>.",
|
||||
"This will delete all models including custom models": "Isto vai excluir todos os modelos, incluindo personalizados",
|
||||
"This will delete all models including custom models and cannot be undone.": "Isto vai excluir todos os modelos, incluindo personalizados e não pode ser desfeito.",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Esta ação resetará a base de conhecimento e sincronizará todos os arquivos. Deseja continuar?",
|
||||
"Thorough explanation": "Explicação detalhada",
|
||||
"Tika": "Tika",
|
||||
@@ -884,7 +898,7 @@
|
||||
"To access the GGUF models available for downloading,": "Para acessar os modelos GGUF disponíveis para download,",
|
||||
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Para acessar a WebUI, entre em contato com o administrador. Os administradores podem gerenciar os status dos usuários no Painel de Administração.",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Para anexar a base de conhecimento aqui, adicione-os ao espaço de trabalho \"Conhecimento\" primeiro.",
|
||||
"To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "",
|
||||
"To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "Para proteger sua privacidade, apenas classificações, IDs de modelo, tags e metadados são compartilhados a partir de seus comentários – seus registros de bate-papo permanecem privados e não são incluídos.",
|
||||
"To select actions here, add them to the \"Functions\" workspace first.": "Para selecionar ações aqui, adicione-os ao espaço de trabalho \"Ações\" primeiro.",
|
||||
"To select filters here, add them to the \"Functions\" workspace first.": "Para selecionar filtros aqui, adicione-os ao espaço de trabalho \"Funções\" primeiro.",
|
||||
"To select toolkits here, add them to the \"Tools\" workspace first.": "Para selecionar kits de ferramentas aqui, adicione-os ao espaço de trabalho \"Ferramentas\" primeiro.",
|
||||
@@ -919,8 +933,8 @@
|
||||
"Uh-oh! There was an issue connecting to {{provider}}.": "Ops! Houve um problema ao conectar-se ao {{provider}}.",
|
||||
"UI": "Interface",
|
||||
"Unarchive All": "Desarquivar tudo",
|
||||
"Unarchive All Archived Chats": "Desarquivar todos os chats arquivados",
|
||||
"Unarchive Chat": "Desarquivar chat",
|
||||
"Unarchive All Archived Chats": "Desarquivar Todos os Chats Arquivados",
|
||||
"Unarchive Chat": "Desarquivar Chat",
|
||||
"Unlock mysteries": "Desvendar mistérios",
|
||||
"Unpin": "Desfixar",
|
||||
"Unravel secrets": "Desvendar segredos",
|
||||
@@ -931,7 +945,7 @@
|
||||
"Update password": "Atualizar senha",
|
||||
"Updated": "Atualizado",
|
||||
"Updated at": "Atualizado em",
|
||||
"Updated At": "Atualizado em",
|
||||
"Updated At": "Atualizado Em",
|
||||
"Upload": "Fazer upload",
|
||||
"Upload a GGUF model": "Fazer upload de um modelo GGUF",
|
||||
"Upload directory": "Carregar diretório",
|
||||
@@ -950,9 +964,9 @@
|
||||
"user": "usuário",
|
||||
"User": "Usuário",
|
||||
"User location successfully retrieved.": "Localização do usuário recuperada com sucesso.",
|
||||
"Username": "Usuário",
|
||||
"Username": "Nome do Usuário",
|
||||
"Users": "Usuários",
|
||||
"Using the default arena model with all models. Click the plus button to add custom models.": "Usando o modelo arena padrão para todos os modelos. Clique no botão mais para adicionar modelos personalizados.",
|
||||
"Using the default arena model with all models. Click the plus button to add custom models.": "Usando a arena de modelos padrão para todos os modelos. Clique no botão mais para adicionar modelos personalizados.",
|
||||
"Utilize": "Utilizar",
|
||||
"Valid time units:": "Unidades de tempo válidas:",
|
||||
"Valves": "Válvulas",
|
||||
@@ -974,26 +988,27 @@
|
||||
"Web Loader Settings": "Configurações do Carregador Web",
|
||||
"Web Search": "Pesquisa na Web",
|
||||
"Web Search Engine": "Mecanismo de Busca na Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL do Webhook",
|
||||
"WebUI Settings": "Configurações da WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "A WebUI fará requisições para \"{{url}}/api/chat\".",
|
||||
"WebUI will make requests to \"{{url}}/chat/completions\"": "A WebUI fará requisições para \"{{url}}/chat/completions\".",
|
||||
"What are you trying to achieve?": "O que está tentando alcançar?",
|
||||
"What are you working on?": "O que está trabalhando?",
|
||||
"What are you working on?": "No que está trabalhando?",
|
||||
"What’s New in": "O que há de novo em",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "Quando habilitado, o modelo responderá a cada mensagem de chat em tempo real, gerando uma resposta assim que o usuário enviar uma mensagem. Este modo é útil para aplicativos de chat ao vivo, mas pode impactar o desempenho em hardware mais lento.",
|
||||
"wherever you are": "Onde quer que você esteja.",
|
||||
"wherever you are": "onde quer que você esteja.",
|
||||
"Whisper (Local)": "Whisper (Local)",
|
||||
"Why?": "",
|
||||
"Why?": "Por que",
|
||||
"Widescreen Mode": "Modo Tela Cheia",
|
||||
"Won": "Positivo",
|
||||
"Won": "Ganhou",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "Funciona em conjunto com o top-k. Um valor mais alto (por exemplo, 0,95) levará a um texto mais diversificado, enquanto um valor mais baixo (por exemplo, 0,5) gerará um texto mais focado e conservador. (Padrão: 0,9)",
|
||||
"Workspace": "Espaço de Trabalho",
|
||||
"Workspace Permissions": "Permissões do espaço de trabalho",
|
||||
"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].",
|
||||
"Write something...": "Escrevendo algo...",
|
||||
"Write your model template content here": "Escreva o conteúdo do modelo aqui.",
|
||||
"Write something...": "Escreva algo...",
|
||||
"Write your model template content here": "Escreva o conteúdo do template do modelo aqui.",
|
||||
"Yesterday": "Ontem",
|
||||
"You": "Você",
|
||||
"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Você só pode conversar com no máximo {{maxCount}} arquivo(s) de cada vez.",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ou '-1' para nenhuma expiração.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "",
|
||||
"(e.g. `sh webui.sh --api`)": "(por exemplo, `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
|
||||
"Auto-playback response": "Reprodução automática da resposta",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "",
|
||||
"AUTOMATIC1111 Api Auth String": "",
|
||||
"AUTOMATIC1111 Base URL": "URL Base do AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Alterar Senha",
|
||||
"Character": "",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Conversa",
|
||||
"Chat Background Image": "",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "",
|
||||
"Concurrent Requests": "Solicitações simultâneas",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "",
|
||||
"Confirm Password": "Confirmar Senha",
|
||||
"Confirm your action": "",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Padrão (SentenceTransformers)",
|
||||
"Default Model": "Modelo padrão",
|
||||
"Default model updated": "Modelo padrão atualizado",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Sugestões de Prompt Padrão",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Motor de Modelo de Embedding",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelo de Embedding definido como \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Active a Partilha da Comunidade",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Ativar Novas Inscrições",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Ativar pesquisa na Web",
|
||||
"Enable Web Search Query Generation": "",
|
||||
"Enabled": "",
|
||||
"Engine": "",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Confirme que o seu ficheiro CSV inclui 4 colunas nesta ordem: Nome, E-mail, Senha, Função.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Escreva a tag do modelo (por exemplo, {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Escreva o Número de Etapas (por exemplo, 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "",
|
||||
"Enter Scheduler (e.g. Karras)": "",
|
||||
"Enter Score": "Escreva a Pontuação",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Falha ao criar a Chave da API.",
|
||||
"Failed to read clipboard contents": "Falha ao ler o conteúdo da área de transferência",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Falha ao atualizar as definições",
|
||||
"Failed to upload file.": "",
|
||||
"February": "Fevereiro",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Conteúdo do Ficheiro do Modelo",
|
||||
"Models": "Modelos",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Mais",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models selected": "",
|
||||
"No results found": "Não foram encontrados resultados",
|
||||
"No search query generated": "Não foi gerada nenhuma consulta de pesquisa",
|
||||
"No source available": "Nenhuma fonte disponível",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "",
|
||||
"Port": "",
|
||||
"Positive attitude": "Atitude Positiva",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompts",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Puxar \"{{searchValue}}\" do Ollama.com",
|
||||
"Pull a model from Ollama.com": "Puxar um modelo do Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Remover",
|
||||
"Remove Model": "Remover Modelo",
|
||||
"Rename": "Renomear",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Repetir Últimos N",
|
||||
"Request Mode": "Modo de Pedido",
|
||||
"Reranking Model": "Modelo de Reranking",
|
||||
"Reranking model disabled": "Modelo de Reranking desativado",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Modelo de Reranking definido como \"{{reranking_model}}\"",
|
||||
"Reset": "",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Limpar Pasta de Carregamento",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "",
|
||||
"Response splitting": "",
|
||||
"Result": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"RK": "",
|
||||
"Role": "Função",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "Sistema",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Prompt do Sistema",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "",
|
||||
@@ -974,6 +988,7 @@
|
||||
"Web Loader Settings": "Configurações do Carregador da Web",
|
||||
"Web Search": "Pesquisa na Web",
|
||||
"Web Search Engine": "Motor de Pesquisa Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL do Webhook",
|
||||
"WebUI Settings": "Configurações WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' sau '-1' fără expirare.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(de ex. `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(de ex. `sh webui.sh --api`)",
|
||||
@@ -90,6 +91,8 @@
|
||||
"Authenticate": "",
|
||||
"Auto-Copy Response to Clipboard": "Copiere Automată a Răspunsului în Clipboard",
|
||||
"Auto-playback response": "Redare automată a răspunsului",
|
||||
"Autocomplete Generation": "",
|
||||
"Autocomplete Generation Input Max Length": "",
|
||||
"Automatic1111": "Automatic1111 este un proiect popular pentru interfața grafică a utilizatorului a modelelor de difuzie stabilă. Aceasta oferă o interfață web pentru a genera imagini folosind AI și este utilizată pe scară largă pentru a experimenta cu generarea de artă AI.",
|
||||
"AUTOMATIC1111 Api Auth String": "Șir de Autentificare API AUTOMATIC1111",
|
||||
"AUTOMATIC1111 Base URL": "URL Bază AUTOMATIC1111",
|
||||
@@ -119,6 +122,7 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Schimbă Parola",
|
||||
"Character": "Caracter",
|
||||
"Character limit for autocomplete generation input": "",
|
||||
"Chart new frontiers": "",
|
||||
"Chat": "Conversație",
|
||||
"Chat Background Image": "Imagine de Fundal pentru Conversație",
|
||||
@@ -167,6 +171,7 @@
|
||||
"Completions": "Completări",
|
||||
"Concurrent Requests": "Cereri Concurente",
|
||||
"Configure": "",
|
||||
"Configure Models": "",
|
||||
"Confirm": "Confirmă",
|
||||
"Confirm Password": "Confirmă Parola",
|
||||
"Confirm your action": "Confirmă acțiunea ta",
|
||||
@@ -215,6 +220,7 @@
|
||||
"Default (SentenceTransformers)": "Implicit (SentenceTransformers)",
|
||||
"Default Model": "Model Implicit",
|
||||
"Default model updated": "Modelul implicit a fost actualizat",
|
||||
"Default Models": "",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Prompt Suggestions": "Sugestii de Prompt Implicite",
|
||||
@@ -295,16 +301,14 @@
|
||||
"Embedding Model Engine": "Motor de Model de Încapsulare",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Modelul de încapsulare setat la \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable autocomplete generation for chat messages": "",
|
||||
"Enable Community Sharing": "Activează Partajarea Comunitară",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Message Rating": "Activează Evaluarea Mesajelor",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Activează Înscrierile Noi",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Activează Căutarea pe Web",
|
||||
"Enable Web Search Query Generation": "Activare Generare Cerere de Căutare Web",
|
||||
"Enabled": "Activat",
|
||||
"Engine": "Motor",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Asigurați-vă că fișierul CSV include 4 coloane în această ordine: Nume, Email, Parolă, Rol.",
|
||||
@@ -331,6 +335,7 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Introduceți eticheta modelului (de ex. {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Introduceți Numărul de Pași (de ex. 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Introduce Sampler (de exemplu, Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Introduceți Programatorul (de exemplu, Karras)",
|
||||
"Enter Score": "Introduceți Scorul",
|
||||
@@ -383,6 +388,7 @@
|
||||
"Failed to add file.": "Eșec la adăugarea fișierului.",
|
||||
"Failed to create API Key.": "Crearea cheii API a eșuat.",
|
||||
"Failed to read clipboard contents": "Citirea conținutului clipboard-ului a eșuat",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Actualizarea setărilor a eșuat",
|
||||
"Failed to upload file.": "Încărcarea fișierului a eșuat.",
|
||||
"February": "Februarie",
|
||||
@@ -570,6 +576,7 @@
|
||||
"Modelfile Content": "Conținutul Fișierului Model",
|
||||
"Models": "Modele",
|
||||
"Models Access": "",
|
||||
"Models configuration saved successfully": "",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "mai mult",
|
||||
"More": "Mai multe",
|
||||
@@ -589,6 +596,7 @@
|
||||
"No knowledge found": "Nu au fost găsite informații.",
|
||||
"No model IDs": "",
|
||||
"No models found": "Nu s-au găsit modele",
|
||||
"No models selected": "",
|
||||
"No results found": "Nu au fost găsite rezultate",
|
||||
"No search query generated": "Nu a fost generată nicio interogare de căutare",
|
||||
"No source available": "Nicio sursă disponibilă",
|
||||
@@ -664,6 +672,7 @@
|
||||
"Please carefully review the following warnings:": "Vă rugăm să revizuiți cu atenție următoarele avertismente:",
|
||||
"Please enter a prompt": "Te rog să introduci un mesaj",
|
||||
"Please fill in all fields.": "Vă rugăm să completați toate câmpurile.",
|
||||
"Please select a model first.": "",
|
||||
"Please select a reason": "Vă rugăm să selectați un motiv",
|
||||
"Port": "",
|
||||
"Positive attitude": "Atitudine pozitivă",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Prompturi",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Extrage \"{{searchValue}}\" de pe Ollama.com",
|
||||
"Pull a model from Ollama.com": "Extrage un model de pe Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,17 +709,20 @@
|
||||
"Remove": "Înlătură",
|
||||
"Remove Model": "Înlătură Modelul",
|
||||
"Rename": "Redenumește",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Repetă Ultimele N",
|
||||
"Request Mode": "Mod de Cerere",
|
||||
"Reranking Model": "Model de Rearanjare",
|
||||
"Reranking model disabled": "Modelul de Rearanjare este dezactivat",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Modelul de Rearanjare setat la \"{{reranking_model}}\"",
|
||||
"Reset": "Resetează",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Resetează Directorul de Încărcare",
|
||||
"Reset Vector Storage/Knowledge": "Resetarea Stocării/Vectoului de Cunoștințe",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Notificările de răspuns nu pot fi activate deoarece permisiunile site-ului au fost refuzate. Vă rugăm să vizitați setările browserului pentru a acorda accesul necesar.",
|
||||
"Response splitting": "Împărțirea răspunsurilor",
|
||||
"Result": "Rezultat",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Introducere text îmbogățit pentru chat",
|
||||
"RK": "RK",
|
||||
"Role": "Rol",
|
||||
@@ -832,6 +845,7 @@
|
||||
"System": "Sistem",
|
||||
"System Instructions": "Instrucțiuni pentru sistem",
|
||||
"System Prompt": "Prompt de Sistem",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "Generarea de Etichete Prompt",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Apasă pentru a întrerupe",
|
||||
@@ -974,6 +988,7 @@
|
||||
"Web Loader Settings": "Setări Încărcător Web",
|
||||
"Web Search": "Căutare Web",
|
||||
"Web Search Engine": "Motor de Căutare Web",
|
||||
"Web Search Query Generation": "",
|
||||
"Webhook URL": "URL Webhook",
|
||||
"WebUI Settings": "Setări WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"-1 for no limit, or a positive integer for a specific limit": "-1 для отсутствия ограничений или положительное целое число для определенного ограничения.",
|
||||
"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' или '-1' чтобы был без срока годности.",
|
||||
"(e.g. `sh webui.sh --api --api-auth username_password`)": "(например, `sh webui.sh --api --api-auth username_password`)",
|
||||
"(e.g. `sh webui.sh --api`)": "(например, `sh webui.sh --api`)",
|
||||
@@ -11,33 +12,33 @@
|
||||
"A task model is used when performing tasks such as generating titles for chats and web search queries": "Модель задач используется при выполнении таких задач, как генерация заголовков для чатов и поисковых запросов в Интернете",
|
||||
"a user": "пользователь",
|
||||
"About": "О программе",
|
||||
"Access": "",
|
||||
"Access Control": "",
|
||||
"Accessible to all users": "",
|
||||
"Access": "Доступ",
|
||||
"Access Control": "Контроль доступа",
|
||||
"Accessible to all users": "Доступно всем пользователям",
|
||||
"Account": "Учетная запись",
|
||||
"Account Activation Pending": "Ожидание активации учетной записи",
|
||||
"Accurate information": "Точная информация",
|
||||
"Actions": "Действия",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "",
|
||||
"Activate this command by typing \"/{{COMMAND}}\" to chat input.": "Активируйте эту команду, набрав \"/{{COMMAND}}\" для ввода в чате.",
|
||||
"Active Users": "Активные пользователи",
|
||||
"Add": "Добавить",
|
||||
"Add a model ID": "",
|
||||
"Add a model ID": "Добавить ID модели",
|
||||
"Add a short description about what this model does": "Добавьте краткое описание того, что делает эта модель",
|
||||
"Add a tag": "Добавьте тег",
|
||||
"Add Arena Model": "",
|
||||
"Add Connection": "",
|
||||
"Add Content": "",
|
||||
"Add content here": "",
|
||||
"Add Arena Model": "Добавить модель арены",
|
||||
"Add Connection": "Добавить соединение",
|
||||
"Add Content": "Добавить контент",
|
||||
"Add content here": "Добавить контент сюда",
|
||||
"Add custom prompt": "Добавьте пользовательский промпт",
|
||||
"Add Files": "Добавить файлы",
|
||||
"Add Group": "",
|
||||
"Add Group": "Добавить группу",
|
||||
"Add Memory": "Добавить воспоминание",
|
||||
"Add Model": "Добавить модель",
|
||||
"Add Tag": "Добавить тег",
|
||||
"Add Tags": "Добавить теги",
|
||||
"Add text content": "",
|
||||
"Add User": "Добавить пользователя",
|
||||
"Add User Group": "",
|
||||
"Add User Group": "Добавить группу пользователей",
|
||||
"Adjusting these settings will apply changes universally to all users.": "Изменения в этих настройках будут применены для всех пользователей.",
|
||||
"admin": "админ",
|
||||
"Admin": "Админ",
|
||||
@@ -46,20 +47,20 @@
|
||||
"Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Администраторы всегда имеют доступ ко всем инструментам; пользователям нужны инструменты, назначенные для каждой модели в рабочем пространстве.",
|
||||
"Advanced Parameters": "Расширенные Параметры",
|
||||
"Advanced Params": "Расширенные параметры",
|
||||
"All chats": "",
|
||||
"All chats": "Все чаты",
|
||||
"All Documents": "Все документы",
|
||||
"All models deleted successfully": "",
|
||||
"Allow Chat Delete": "",
|
||||
"All models deleted successfully": "Все модели успешно удалены",
|
||||
"Allow Chat Delete": "Разрешить удаление чата",
|
||||
"Allow Chat Deletion": "Разрешить удаление чата",
|
||||
"Allow Chat Edit": "",
|
||||
"Allow File Upload": "",
|
||||
"Allow Chat Edit": "Разрешить редактирование чата",
|
||||
"Allow File Upload": "Разрешить загрузку файлов",
|
||||
"Allow non-local voices": "Разрешить не локальные голоса",
|
||||
"Allow Temporary Chat": "Разрешить временные чаты",
|
||||
"Allow User Location": "Разрешить доступ к местоположению пользователя",
|
||||
"Allow Voice Interruption in Call": "Разрешить прерывание голоса во время вызова",
|
||||
"Already have an account?": "У вас уже есть учетная запись?",
|
||||
"Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out. (Default: 0.0)": "",
|
||||
"Amazing": "",
|
||||
"Amazing": "Удивительный",
|
||||
"an assistant": "ассистент",
|
||||
"and": "и",
|
||||
"and {{COUNT}} more": "",
|
||||
@@ -68,28 +69,30 @@
|
||||
"API Key": "Ключ API",
|
||||
"API Key created.": "Ключ API создан.",
|
||||
"API keys": "Ключи API",
|
||||
"Application DN": "",
|
||||
"Application DN Password": "",
|
||||
"applies to all users with the \"user\" role": "",
|
||||
"Application DN": "DN приложения",
|
||||
"Application DN Password": "DN-пароль приложения",
|
||||
"applies to all users with the \"user\" role": "применяется ко всем пользователям с ролью «пользователь»",
|
||||
"April": "Апрель",
|
||||
"Archive": "Архив",
|
||||
"Archive All Chats": "Архивировать все чаты",
|
||||
"Archived Chats": "Архив чатов",
|
||||
"archived-chat-export": "",
|
||||
"Are you sure you want to unarchive all archived chats?": "",
|
||||
"Are you sure you want to unarchive all archived chats?": "Вы уверены, что хотите разархивировать все заархивированные чаты?",
|
||||
"Are you sure?": "Вы уверены?",
|
||||
"Arena Models": "",
|
||||
"Artifacts": "",
|
||||
"Ask a question": "",
|
||||
"Assistant": "",
|
||||
"Arena Models": "Модели арены",
|
||||
"Artifacts": "Артефакты",
|
||||
"Ask a question": "Задать вопрос",
|
||||
"Assistant": "Ассистент",
|
||||
"Attach file": "Прикрепить файл",
|
||||
"Attention to detail": "Внимание к деталям",
|
||||
"Attribute for Username": "",
|
||||
"Attribute for Username": "Атрибут для имени пользователя",
|
||||
"Audio": "Аудио",
|
||||
"August": "Август",
|
||||
"Authenticate": "",
|
||||
"Authenticate": "Аутентификация",
|
||||
"Auto-Copy Response to Clipboard": "Автоматическое копирование ответа в буфер обмена",
|
||||
"Auto-playback response": "Автоматическое воспроизведение ответа",
|
||||
"Autocomplete Generation": "Генерация автозаполнения",
|
||||
"Autocomplete Generation Input Max Length": "Максимальная длина входных данных автозаполнения",
|
||||
"Automatic1111": "Automatic1111",
|
||||
"AUTOMATIC1111 Api Auth String": "строка авторизации API AUTOMATIC1111",
|
||||
"AUTOMATIC1111 Base URL": "Базовый URL адрес AUTOMATIC1111",
|
||||
@@ -106,8 +109,8 @@
|
||||
"Batch Size (num_batch)": "Размер партии (num_batch)",
|
||||
"before": "до",
|
||||
"Being lazy": "Лениво",
|
||||
"Bing Search V7 Endpoint": "",
|
||||
"Bing Search V7 Subscription Key": "",
|
||||
"Bing Search V7 Endpoint": "Конечная точка поиска Bing V7",
|
||||
"Bing Search V7 Subscription Key": "Ключ API Bing Search V7",
|
||||
"Brave Search API Key": "Ключ API поиска Brave",
|
||||
"By {{name}}": "",
|
||||
"Bypass SSL verification for Websites": "Обход проверки SSL для веб-сайтов",
|
||||
@@ -119,15 +122,16 @@
|
||||
"Certificate Path": "",
|
||||
"Change Password": "Изменить пароль",
|
||||
"Character": "",
|
||||
"Chart new frontiers": "",
|
||||
"Character limit for autocomplete generation input": "Ограничение количества символов для ввода при генерации автозаполнения",
|
||||
"Chart new frontiers": "Наметьте новые границы",
|
||||
"Chat": "Чат",
|
||||
"Chat Background Image": "Фоновое изображение чата",
|
||||
"Chat Bubble UI": "Bubble UI чат",
|
||||
"Chat Controls": "Управление чатом",
|
||||
"Chat direction": "Направление чата",
|
||||
"Chat Overview": "Обзор чата",
|
||||
"Chat Permissions": "",
|
||||
"Chat Tags Auto-Generation": "",
|
||||
"Chat Permissions": "Разрешения для чата",
|
||||
"Chat Tags Auto-Generation": "Автогенерация тегов чата",
|
||||
"Chats": "Чаты",
|
||||
"Check Again": "Перепроверьте ещё раз",
|
||||
"Check for updates": "Проверить обновления",
|
||||
@@ -136,11 +140,11 @@
|
||||
"Chunk Overlap": "Перекрытие фрагментов",
|
||||
"Chunk Params": "Параметры фрагментов",
|
||||
"Chunk Size": "Размер фрагмента",
|
||||
"Ciphers": "",
|
||||
"Ciphers": "Шифры",
|
||||
"Citation": "Цитирование",
|
||||
"Clear memory": "Очистить воспоминания",
|
||||
"click here": "",
|
||||
"Click here for filter guides.": "",
|
||||
"click here": "кликните сюда",
|
||||
"Click here for filter guides.": "Нажмите здесь, чтобы просмотреть руководства по фильтрам.",
|
||||
"Click here for help.": "Нажмите здесь для получения помощи.",
|
||||
"Click here to": "Нажмите здесь, чтобы",
|
||||
"Click here to download user import template file.": "Нажмите здесь, чтобы загрузить файл шаблона импорта пользователя",
|
||||
@@ -154,19 +158,20 @@
|
||||
"Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "В разрешении на запись в буфер обмена отказано. Пожалуйста, проверьте настройки своего браузера, чтобы предоставить необходимый доступ.",
|
||||
"Clone": "Клонировать",
|
||||
"Close": "Закрыть",
|
||||
"Code execution": "",
|
||||
"Code execution": "Выполнение кода",
|
||||
"Code formatted successfully": "Код успешно отформатирован",
|
||||
"Collection": "Коллекция",
|
||||
"Color": "",
|
||||
"Color": "Цвет",
|
||||
"ComfyUI": "ComfyUI",
|
||||
"ComfyUI Base URL": "Базовый адрес URL ComfyUI",
|
||||
"ComfyUI Base URL is required.": "Необходим базовый адрес URL ComfyUI.",
|
||||
"ComfyUI Workflow": "ComfyUI Workflow",
|
||||
"ComfyUI Workflow Nodes": "Узлы ComfyUI Workflow",
|
||||
"Command": "Команда",
|
||||
"Completions": "",
|
||||
"Completions": "Завершения",
|
||||
"Concurrent Requests": "Одновременные запросы",
|
||||
"Configure": "",
|
||||
"Configure": "Настроить",
|
||||
"Configure Models": "Настройка моделей",
|
||||
"Confirm": "Подтвердить",
|
||||
"Confirm Password": "Подтвердите пароль",
|
||||
"Confirm your action": "Подтвердите свое действие",
|
||||
@@ -177,11 +182,11 @@
|
||||
"Context Length": "Длина контекста",
|
||||
"Continue Response": "Продолжить ответ",
|
||||
"Continue with {{provider}}": "Продолжить с {{provider}}",
|
||||
"Continue with Email": "",
|
||||
"Continue with LDAP": "",
|
||||
"Continue with Email": "Продолжить с Email",
|
||||
"Continue with LDAP": "Продолжить с LDAP",
|
||||
"Control how message text is split for TTS requests. 'Punctuation' splits into sentences, 'paragraphs' splits into paragraphs, and 'none' keeps the message as a single string.": "Управляйте разделением текста сообщения для запросов TTS. 'Пунктуация' разделяет на предложения, 'абзацы' - разделяет на абзацы, а 'нет' сохраняет сообщение в виде одной строки.",
|
||||
"Controls": "Управление",
|
||||
"Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "",
|
||||
"Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)": "Управляет балансом между согласованностью и разнообразием выходных данных. Меньшее значение приведет к более сфокусированному и связному тексту. (По умолчанию: 5.0)",
|
||||
"Copied": "Скопировано",
|
||||
"Copied shared chat URL to clipboard!": "Копирование в буфер обмена выполнено успешно!",
|
||||
"Copied to clipboard": "Скопировано в буфер обмена",
|
||||
@@ -189,15 +194,15 @@
|
||||
"Copy last code block": "Копировать последний блок кода",
|
||||
"Copy last response": "Копировать последний ответ",
|
||||
"Copy Link": "Копировать ссылку",
|
||||
"Copy to clipboard": "",
|
||||
"Copy to clipboard": "Скопировать в буфер обмена",
|
||||
"Copying to clipboard was successful!": "Копирование в буфер обмена прошло успешно!",
|
||||
"Create": "",
|
||||
"Create a knowledge base": "",
|
||||
"Create": "Создать",
|
||||
"Create a knowledge base": "Создайте базу знаний",
|
||||
"Create a model": "Создание модели",
|
||||
"Create Account": "Создать аккаунт",
|
||||
"Create Admin Account": "",
|
||||
"Create Group": "",
|
||||
"Create Knowledge": "",
|
||||
"Create Admin Account": "Создать Аккаунт Администратора",
|
||||
"Create Group": "Создать Группу",
|
||||
"Create Knowledge": "Создать Знания",
|
||||
"Create new key": "Создать новый ключ",
|
||||
"Create new secret key": "Создать новый секретный ключ",
|
||||
"Created at": "Создано",
|
||||
@@ -215,29 +220,30 @@
|
||||
"Default (SentenceTransformers)": "По умолчанию (SentenceTransformers)",
|
||||
"Default Model": "Модель по умолчанию",
|
||||
"Default model updated": "Модель по умолчанию обновлена",
|
||||
"Default permissions": "",
|
||||
"Default permissions updated successfully": "",
|
||||
"Default Models": "Модели по умолчанию",
|
||||
"Default permissions": "Разрешения по умолчанию",
|
||||
"Default permissions updated successfully": "Разрешения по умолчанию успешно обновлены.",
|
||||
"Default Prompt Suggestions": "Предложения промптов по умолчанию",
|
||||
"Default to 389 or 636 if TLS is enabled": "",
|
||||
"Default to ALL": "",
|
||||
"Default to 389 or 636 if TLS is enabled": "По умолчанию 389 или 636, если TLS включен.",
|
||||
"Default to ALL": "По умолчанию ВСЕ",
|
||||
"Default User Role": "Роль пользователя по умолчанию",
|
||||
"Delete": "Удалить",
|
||||
"Delete a model": "Удалить модель",
|
||||
"Delete All Chats": "Удалить все чаты",
|
||||
"Delete All Models": "",
|
||||
"Delete All Chats": "Удалить ВСЕ Чаты",
|
||||
"Delete All Models": "Удалить ВСЕ Модели",
|
||||
"Delete chat": "Удалить чат",
|
||||
"Delete Chat": "Удалить чат",
|
||||
"Delete Chat": "Удалить Чат",
|
||||
"Delete chat?": "Удалить чат?",
|
||||
"Delete folder?": "",
|
||||
"Delete folder?": "Удалить папку?",
|
||||
"Delete function?": "Удалить функцию?",
|
||||
"Delete prompt?": "Удалить промпт?",
|
||||
"delete this link": "удалить эту ссылку",
|
||||
"Delete tool?": "Удалить этот инструмент?",
|
||||
"Delete User": "Удалить пользователя",
|
||||
"Delete User": "Удалить Пользователя",
|
||||
"Deleted {{deleteModelTag}}": "Удалено {{deleteModelTag}}",
|
||||
"Deleted {{name}}": "Удалено {{name}}",
|
||||
"Deleted User": "",
|
||||
"Describe your knowledge base and objectives": "",
|
||||
"Describe your knowledge base and objectives": "Опишите свою базу знаний и цели",
|
||||
"Description": "Описание",
|
||||
"Didn't fully follow instructions": "Не полностью следует инструкциям",
|
||||
"Disabled": "Отключено",
|
||||
@@ -245,17 +251,17 @@
|
||||
"Discover a model": "Найти модель",
|
||||
"Discover a prompt": "Найти промпт",
|
||||
"Discover a tool": "Найти инструмент",
|
||||
"Discover wonders": "",
|
||||
"Discover wonders": "Откройте для себя чудеса",
|
||||
"Discover, download, and explore custom functions": "Находите, загружайте и исследуйте пользовательские функции",
|
||||
"Discover, download, and explore custom prompts": "Находите, загружайте и исследуйте пользовательские промпты",
|
||||
"Discover, download, and explore custom tools": "Находите, загружайте и исследуйте пользовательские инструменты",
|
||||
"Discover, download, and explore model presets": "Находите, загружайте и исследуйте пользовательские предустановки моделей",
|
||||
"Dismissible": "Можно отклонить",
|
||||
"Display": "",
|
||||
"Display": "Отображать",
|
||||
"Display Emoji in Call": "Отображать эмодзи в вызовах",
|
||||
"Display the username instead of You in the Chat": "Отображать имя пользователя вместо 'Вы' в чате",
|
||||
"Displays citations in the response": "",
|
||||
"Dive into knowledge": "",
|
||||
"Displays citations in the response": "Отображает цитаты в ответе",
|
||||
"Dive into knowledge": "Погрузитесь в знания",
|
||||
"Do not install functions from sources you do not fully trust.": "Не устанавливайте функции из источников, которым вы не полностью доверяете.",
|
||||
"Do not install tools from sources you do not fully trust.": "Не устанавливайте инструменты из источников, которым вы не полностью доверяете.",
|
||||
"Document": "Документ",
|
||||
@@ -270,8 +276,8 @@
|
||||
"Download": "Загрузить",
|
||||
"Download canceled": "Загрузка отменена",
|
||||
"Download Database": "Загрузить базу данных",
|
||||
"Drag and drop a file to upload or select a file to view": "",
|
||||
"Draw": "",
|
||||
"Drag and drop a file to upload or select a file to view": "Перетащите файл для загрузки или выберите файл для просмотра.",
|
||||
"Draw": "Рисовать",
|
||||
"Drop any files here to add to the conversation": "Перетащите сюда файлы, чтобы добавить их в разговор",
|
||||
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "например, '30s','10m'. Допустимые единицы времени: 's', 'm', 'h'.",
|
||||
"e.g. A filter to remove profanity from text": "",
|
||||
@@ -281,30 +287,28 @@
|
||||
"e.g. my_tools": "",
|
||||
"e.g. Tools for performing various operations": "",
|
||||
"Edit": "Редактировать",
|
||||
"Edit Arena Model": "",
|
||||
"Edit Connection": "",
|
||||
"Edit Default Permissions": "",
|
||||
"Edit Arena Model": "Изменить модель арены",
|
||||
"Edit Connection": "Изменить соединение",
|
||||
"Edit Default Permissions": "Изменить разрешения по умолчанию",
|
||||
"Edit Memory": "Редактировать воспоминание",
|
||||
"Edit User": "Редактировать пользователя",
|
||||
"Edit User Group": "",
|
||||
"Edit User Group": "Редактировать Пользовательскую Группу",
|
||||
"ElevenLabs": "ElevenLabs",
|
||||
"Email": "Электронная почта",
|
||||
"Embark on adventures": "",
|
||||
"Embark on adventures": "Отправляйтесь в приключения",
|
||||
"Embedding Batch Size": "Размер пакета для встраивания",
|
||||
"Embedding Model": "Модель встраивания",
|
||||
"Embedding Model Engine": "Движок модели встраивания",
|
||||
"Embedding model set to \"{{embedding_model}}\"": "Модель встраивания установлена в \"{{embedding_model}}\"",
|
||||
"Enable API Key Auth": "",
|
||||
"Enable API Key Auth": "Включить аутентификацию по API Ключу",
|
||||
"Enable autocomplete generation for chat messages": "Включить генерацию автозаполнения для сообщений чата",
|
||||
"Enable Community Sharing": "Включить совместное использование",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "",
|
||||
"Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Включите блокировку памяти (mlock), чтобы предотвратить выгрузку данных модели из ОЗУ. Эта опция блокирует рабочий набор страниц модели в оперативной памяти, гарантируя, что они не будут выгружены на диск. Это может помочь поддерживать производительность, избегая ошибок страниц и обеспечивая быстрый доступ к данным.",
|
||||
"Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Включите отображение памяти (mmap), чтобы загрузить данные модели. Эта опция позволяет системе использовать дисковое хранилище в качестве расширения оперативной памяти, обрабатывая дисковые файлы так, как если бы они находились в оперативной памяти. Это может улучшить производительность модели за счет более быстрого доступа к данным. Однако он может работать некорректно со всеми системами и занимать значительный объем дискового пространства.",
|
||||
"Enable Message Rating": "Разрешить оценку ответов",
|
||||
"Enable Mirostat sampling for controlling perplexity. (Default: 0, 0 = Disabled, 1 = Mirostat, 2 = Mirostat 2.0)": "",
|
||||
"Enable New Sign Ups": "Разрешить новые регистрации",
|
||||
"Enable Retrieval Query Generation": "",
|
||||
"Enable Tags Generation": "",
|
||||
"Enable Web Search": "Включить поиск в Интернете",
|
||||
"Enable Web Search Query Generation": "Включить генерацию веб-поисковых запросов",
|
||||
"Enabled": "Включено",
|
||||
"Engine": "Движок",
|
||||
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "Убедитесь, что ваш CSV-файл включает в себя 4 столбца в следующем порядке: Имя, Электронная почта, Пароль, Роль.",
|
||||
@@ -316,11 +320,11 @@
|
||||
"Enter Bing Search V7 Endpoint": "",
|
||||
"Enter Bing Search V7 Subscription Key": "",
|
||||
"Enter Brave Search API Key": "Введите ключ API поиска Brave",
|
||||
"Enter certificate path": "",
|
||||
"Enter certificate path": "Введите путь к сертификату",
|
||||
"Enter CFG Scale (e.g. 7.0)": "Введите CFG Scale (например, 7.0)",
|
||||
"Enter Chunk Overlap": "Введите перекрытие фрагмента",
|
||||
"Enter Chunk Size": "Введите размер фрагмента",
|
||||
"Enter description": "",
|
||||
"Enter description": "Введите описание",
|
||||
"Enter Github Raw URL": "Введите необработанный URL-адрес Github",
|
||||
"Enter Google PSE API Key": "Введите ключ API Google PSE",
|
||||
"Enter Google PSE Engine Id": "Введите Id движка Google PSE",
|
||||
@@ -331,19 +335,20 @@
|
||||
"Enter model tag (e.g. {{modelTag}})": "Введите тег модели (например, {{modelTag}})",
|
||||
"Enter Mojeek Search API Key": "",
|
||||
"Enter Number of Steps (e.g. 50)": "Введите количество шагов (например, 50)",
|
||||
"Enter proxy URL (e.g. https://user:password@host:port)": "",
|
||||
"Enter Sampler (e.g. Euler a)": "Введите сэмплер (например, Euler a)",
|
||||
"Enter Scheduler (e.g. Karras)": "Введите планировщик (например, Karras)",
|
||||
"Enter Score": "Введите оценку",
|
||||
"Enter SearchApi API Key": "Введите ключ API SearchApi",
|
||||
"Enter SearchApi Engine": "Введите SearchApi движок",
|
||||
"Enter Searxng Query URL": "Введите URL-адрес запроса Searxng",
|
||||
"Enter Seed": "",
|
||||
"Enter Seed": "Введите Seed",
|
||||
"Enter Serper API Key": "Введите ключ API Serper",
|
||||
"Enter Serply API Key": "Введите ключ API Serply",
|
||||
"Enter Serpstack API Key": "Введите ключ API Serpstack",
|
||||
"Enter server host": "",
|
||||
"Enter server label": "",
|
||||
"Enter server port": "",
|
||||
"Enter server host": "Введите хост сервера",
|
||||
"Enter server label": "Введите метку сервера",
|
||||
"Enter server port": "Введите порт сервера",
|
||||
"Enter stop sequence": "Введите последовательность остановки",
|
||||
"Enter system prompt": "Введите системный промпт",
|
||||
"Enter Tavily API Key": "Введите ключ API Tavily",
|
||||
@@ -359,16 +364,16 @@
|
||||
"Enter Your Username": "",
|
||||
"Error": "Ошибка",
|
||||
"ERROR": "",
|
||||
"Evaluations": "",
|
||||
"Evaluations": "Оценки",
|
||||
"Example: (&(objectClass=inetOrgPerson)(uid=%s))": "",
|
||||
"Example: ALL": "",
|
||||
"Example: ou=users,dc=foo,dc=example": "",
|
||||
"Example: sAMAccountName or uid or userPrincipalName": "",
|
||||
"Exclude": "",
|
||||
"Exclude": "Исключать",
|
||||
"Experimental": "Экспериментальное",
|
||||
"Explore the cosmos": "",
|
||||
"Explore the cosmos": "Исследуйте космос",
|
||||
"Export": "Экспорт",
|
||||
"Export All Archived Chats": "",
|
||||
"Export All Archived Chats": "Экспортировать ВСЕ Архивированные Чаты",
|
||||
"Export All Chats (All Users)": "Экспортировать все чаты (всех пользователей)",
|
||||
"Export chat (.json)": "Экспортировать чат (.json)",
|
||||
"Export Chats": "Экспортировать чаты",
|
||||
@@ -383,18 +388,19 @@
|
||||
"Failed to add file.": "",
|
||||
"Failed to create API Key.": "Не удалось создать ключ API.",
|
||||
"Failed to read clipboard contents": "Не удалось прочитать содержимое буфера обмена",
|
||||
"Failed to save models configuration": "",
|
||||
"Failed to update settings": "Не удалось обновить настройки",
|
||||
"Failed to upload file.": "",
|
||||
"Failed to upload file.": "Не удалось загрузить файл.",
|
||||
"February": "Февраль",
|
||||
"Feedback History": "",
|
||||
"Feedbacks": "",
|
||||
"Feedback History": "История отзывов",
|
||||
"Feedbacks": "Отзывы",
|
||||
"Feel free to add specific details": "Не стесняйтесь добавлять конкретные детали",
|
||||
"File": "Файл",
|
||||
"File added successfully.": "",
|
||||
"File content updated successfully.": "",
|
||||
"File added successfully.": "Файл успешно добавлен.",
|
||||
"File content updated successfully.": "Содержимое файла успешно обновлено.",
|
||||
"File Mode": "Режим файла",
|
||||
"File not found.": "Файл не найден.",
|
||||
"File removed successfully.": "",
|
||||
"File removed successfully.": "Файл успешно удален.",
|
||||
"File size should not exceed {{maxSize}} MB.": "Размер файла не должен превышать {{maxSize}} МБ.",
|
||||
"Files": "Файлы",
|
||||
"Filter is now globally disabled": "Фильтр теперь отключен глобально",
|
||||
@@ -403,23 +409,23 @@
|
||||
"Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Определение подделки отпечатка: Невозможно использовать инициалы в качестве аватара. По умолчанию используется изображение профиля по умолчанию.",
|
||||
"Fluidly stream large external response chunks": "Плавная потоковая передача больших фрагментов внешних ответов",
|
||||
"Focus chat input": "Фокус ввода чата",
|
||||
"Folder deleted successfully": "",
|
||||
"Folder name cannot be empty": "",
|
||||
"Folder name cannot be empty.": "",
|
||||
"Folder name updated successfully": "",
|
||||
"Folder deleted successfully": "Папка успешно удалена",
|
||||
"Folder name cannot be empty": "Имя папки не может быть пустым",
|
||||
"Folder name cannot be empty.": "Имя папки не может быть пустым.",
|
||||
"Folder name updated successfully": "Имя папки успешно обновлено",
|
||||
"Followed instructions perfectly": "Идеально соответствует инструкциям",
|
||||
"Forge new paths": "",
|
||||
"Forge new paths": "Прокладывайте новые пути",
|
||||
"Form": "Форма",
|
||||
"Format your variables using brackets like this:": "",
|
||||
"Format your variables using brackets like this:": "Отформатируйте переменные, используя такие : скобки",
|
||||
"Frequency Penalty": "Штраф за частоту",
|
||||
"Function": "",
|
||||
"Function": "Функция",
|
||||
"Function created successfully": "Функция успешно создана",
|
||||
"Function deleted successfully": "Функция успешно удалена",
|
||||
"Function Description": "",
|
||||
"Function ID": "",
|
||||
"Function Description": "Описание Функции",
|
||||
"Function ID": "ID Функции",
|
||||
"Function is now globally disabled": "Функция теперь глобально отключена",
|
||||
"Function is now globally enabled": "Функция теперь глобально включена",
|
||||
"Function Name": "",
|
||||
"Function Name": "Имя Функции",
|
||||
"Function updated successfully": "Функция успешно обновлена",
|
||||
"Functions": "Функции",
|
||||
"Functions allow arbitrary code execution": "Функции позволяют выполнять произвольный код",
|
||||
@@ -457,19 +463,19 @@
|
||||
"Hybrid Search": "Гибридная поисковая система",
|
||||
"I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Я подтверждаю, что прочитал и осознаю последствия своих действий. Я осознаю риски, связанные с выполнением произвольного кода, и я проверил достоверность источника.",
|
||||
"ID": "",
|
||||
"Ignite curiosity": "",
|
||||
"Ignite curiosity": "Разожгите любопытство",
|
||||
"Image Generation (Experimental)": "Генерация изображений (Экспериментально)",
|
||||
"Image Generation Engine": "Механизм генерации изображений",
|
||||
"Image Settings": "Настройки изображения",
|
||||
"Images": "Изображения",
|
||||
"Import Chats": "Импортировать чаты",
|
||||
"Import Chats": "Импортировать Чаты",
|
||||
"Import Config from JSON File": "Импорт конфигурации из JSON-файла",
|
||||
"Import Functions": "Импортировать функции",
|
||||
"Import Models": "Импортировать модели",
|
||||
"Import Presets": "",
|
||||
"Import Prompts": "Импортировать промпты",
|
||||
"Import Tools": "Импортировать инструменты",
|
||||
"Include": "",
|
||||
"Import Functions": "Импортировать Функции",
|
||||
"Import Models": "Импортировать Модели",
|
||||
"Import Presets": "Импортировать Пресеты",
|
||||
"Import Prompts": "Импортировать Промпты",
|
||||
"Import Tools": "Импортировать Инструменты",
|
||||
"Include": "Включать",
|
||||
"Include `--api-auth` flag when running stable-diffusion-webui": "Добавьте флаг '--api-auth' при запуске stable-diffusion-webui",
|
||||
"Include `--api` flag when running stable-diffusion-webui": "Добавьте флаг `--api` при запуске stable-diffusion-webui",
|
||||
"Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive. (Default: 0.1)": "",
|
||||
@@ -478,7 +484,7 @@
|
||||
"Install from Github URL": "Установка с URL-адреса Github",
|
||||
"Instant Auto-Send After Voice Transcription": "Мгновенная автоматическая отправка после расшифровки голоса",
|
||||
"Interface": "Интерфейс",
|
||||
"Invalid file format.": "",
|
||||
"Invalid file format.": "Неверный формат файла.",
|
||||
"Invalid Tag": "Недопустимый тег",
|
||||
"January": "Январь",
|
||||
"Jina API Key": "",
|
||||
@@ -493,19 +499,19 @@
|
||||
"Key": "",
|
||||
"Keyboard shortcuts": "Горячие клавиши",
|
||||
"Knowledge": "Знания",
|
||||
"Knowledge Access": "",
|
||||
"Knowledge created successfully.": "",
|
||||
"Knowledge deleted successfully.": "",
|
||||
"Knowledge reset successfully.": "",
|
||||
"Knowledge updated successfully": "",
|
||||
"Knowledge Access": "Доступ к Знаниям",
|
||||
"Knowledge created successfully.": "Знания созданы успешно.",
|
||||
"Knowledge deleted successfully.": "Знания успешно удалены.",
|
||||
"Knowledge reset successfully.": "Знания успешно сброшены.",
|
||||
"Knowledge updated successfully": "Знания успешно обновлены",
|
||||
"Label": "",
|
||||
"Landing Page Mode": "",
|
||||
"Landing Page Mode": "Режим Целевой Страницы",
|
||||
"Language": "Язык",
|
||||
"Last Active": "Последний активный",
|
||||
"Last Modified": "Последнее изменение",
|
||||
"Last Active": "Последний Активный",
|
||||
"Last Modified": "Последнее Изменение",
|
||||
"LDAP": "",
|
||||
"LDAP server updated": "",
|
||||
"Leaderboard": "",
|
||||
"LDAP server updated": "LDAP сервер обновлен",
|
||||
"Leaderboard": "Таблица Лидеров",
|
||||
"Leave empty for unlimited": "Оставьте пустым для неограниченного",
|
||||
"Leave empty to include all models from \"{{URL}}/api/tags\" endpoint": "",
|
||||
"Leave empty to include all models from \"{{URL}}/models\" endpoint": "",
|
||||
@@ -522,10 +528,10 @@
|
||||
"Make sure to enclose them with": "Убедитесь, что они заключены в",
|
||||
"Make sure to export a workflow.json file as API format from ComfyUI.": "Убедитесь, что экспортируете файл workflow.json в формате API из ComfyUI.",
|
||||
"Manage": "Управлять",
|
||||
"Manage Arena Models": "",
|
||||
"Manage Ollama": "",
|
||||
"Manage Ollama API Connections": "",
|
||||
"Manage OpenAI API Connections": "",
|
||||
"Manage Arena Models": "Управление Ареной Моделей",
|
||||
"Manage Ollama": "Управление Ollama",
|
||||
"Manage Ollama API Connections": "Управление соединениями API Ollama",
|
||||
"Manage OpenAI API Connections": "Управление соединениями API OpenAI",
|
||||
"Manage Pipelines": "Управление конвейерами",
|
||||
"March": "Март",
|
||||
"Max Tokens (num_predict)": "Максимальное количество токенов (num_predict)",
|
||||
@@ -540,7 +546,7 @@
|
||||
"Memory deleted successfully": "Воспоминание успешно удалено",
|
||||
"Memory updated successfully": "Воспоминание успешно обновлено",
|
||||
"Merge Responses": "Объединить ответы",
|
||||
"Message rating should be enabled to use this feature": "",
|
||||
"Message rating should be enabled to use this feature": "Чтобы использовать эту функцию, необходимо включить оценку сообщения.",
|
||||
"Messages you send after creating your link won't be shared. Users with the URL will be able to view the shared chat.": "Сообщения, отправленные вами после создания ссылки, не будут передаваться другим. Пользователи, у которых есть URL, смогут просматривать общий чат.",
|
||||
"Min P": "Min P",
|
||||
"Minimum Score": "Минимальный балл",
|
||||
@@ -550,7 +556,7 @@
|
||||
"MMMM DD, YYYY": "DD MMMM YYYY",
|
||||
"MMMM DD, YYYY HH:mm": "DD MMMM YYYY HH:mm",
|
||||
"MMMM DD, YYYY hh:mm:ss A": "MMMM DD, YYYY hh:mm:ss A",
|
||||
"Model": "",
|
||||
"Model": "Модель",
|
||||
"Model '{{modelName}}' has been successfully downloaded.": "Модель '{{modelName}}' успешно загружена.",
|
||||
"Model '{{modelTag}}' is already in queue for downloading.": "Модель '{{modelTag}}' уже находится в очереди на загрузку.",
|
||||
"Model {{modelId}} not found": "Модель {{modelId}} не найдена",
|
||||
@@ -559,17 +565,18 @@
|
||||
"Model accepts image inputs": "Модель принимает изображения как входные данные",
|
||||
"Model created successfully!": "Модель успешно создана!",
|
||||
"Model filesystem path detected. Model shortname is required for update, cannot continue.": "Обнаружен путь к файловой системе модели. Для обновления требуется краткое имя модели, не удается продолжить.",
|
||||
"Model Filtering": "",
|
||||
"Model ID": "ID модели",
|
||||
"Model IDs": "",
|
||||
"Model Name": "",
|
||||
"Model Filtering": "Фильтрация Моделей",
|
||||
"Model ID": "ID Модели",
|
||||
"Model IDs": "IDs Модели",
|
||||
"Model Name": "Имя Модели",
|
||||
"Model not selected": "Модель не выбрана",
|
||||
"Model Params": "Параметры модели",
|
||||
"Model Permissions": "",
|
||||
"Model Permissions": "Разрешения Модели",
|
||||
"Model updated successfully": "Модель успешно обновлена",
|
||||
"Modelfile Content": "Содержимое файла модели",
|
||||
"Models": "Модели",
|
||||
"Models Access": "",
|
||||
"Models Access": "Доступ к Моделям",
|
||||
"Models configuration saved successfully": "Конфигурация модели успешно сохранена.",
|
||||
"Mojeek Search API Key": "",
|
||||
"more": "",
|
||||
"More": "Больше",
|
||||
@@ -578,25 +585,26 @@
|
||||
"New Chat": "Новый чат",
|
||||
"New folder": "",
|
||||
"New Password": "Новый пароль",
|
||||
"No content found": "",
|
||||
"No content found": "Контент не найден",
|
||||
"No content to speak": "Нечего говорить",
|
||||
"No distance available": "",
|
||||
"No feedbacks found": "",
|
||||
"No file selected": "Файлы не выбраны",
|
||||
"No files found.": "",
|
||||
"No files found.": "Файлы не найдены.",
|
||||
"No groups with access, add a group to grant access": "",
|
||||
"No HTML, CSS, or JavaScript content found.": "",
|
||||
"No knowledge found": "",
|
||||
"No knowledge found": "Знания не найдены",
|
||||
"No model IDs": "",
|
||||
"No models found": "",
|
||||
"No models found": "Модели не найдены",
|
||||
"No models selected": "Модели не выбраны",
|
||||
"No results found": "Результатов не найдено",
|
||||
"No search query generated": "Поисковый запрос не сгенерирован",
|
||||
"No source available": "Нет доступных источников",
|
||||
"No users were found.": "",
|
||||
"No users were found.": "Пользователи не найдены.",
|
||||
"No valves to update": "Нет вентилей для обновления",
|
||||
"None": "Нет",
|
||||
"Not factually correct": "Не соответствует действительности",
|
||||
"Not helpful": "",
|
||||
"Not helpful": "Бесполезно",
|
||||
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Обратите внимание: Если вы установите минимальный балл, поиск будет возвращать только документы с баллом больше или равным минимальному баллу.",
|
||||
"Notes": "",
|
||||
"Notifications": "Уведомления",
|
||||
@@ -614,16 +622,16 @@
|
||||
"Ollama API settings updated": "",
|
||||
"Ollama Version": "Версия Ollama",
|
||||
"On": "Включено",
|
||||
"Only alphanumeric characters and hyphens are allowed": "",
|
||||
"Only alphanumeric characters and hyphens are allowed": "Разрешены только буквенно-цифровые символы и дефисы.",
|
||||
"Only alphanumeric characters and hyphens are allowed in the command string.": "В строке команды разрешено использовать только буквенно-цифровые символы и дефисы.",
|
||||
"Only collections can be edited, create a new knowledge base to edit/add documents.": "",
|
||||
"Only select users and groups with permission can access": "",
|
||||
"Only select users and groups with permission can access": "Доступ имеют только избранные пользователи и группы, имеющие разрешение.",
|
||||
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Упс! Похоже, что URL-адрес недействителен. Пожалуйста, перепроверьте и попробуйте еще раз.",
|
||||
"Oops! There are files still uploading. Please wait for the upload to complete.": "",
|
||||
"Oops! There are files still uploading. Please wait for the upload to complete.": "Упс! Есть файлы, которые все еще загружаются. Пожалуйста, дождитесь завершения загрузки.",
|
||||
"Oops! There was an error in the previous response.": "",
|
||||
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Упс! Вы используете неподдерживаемый метод (только фронтенд). Пожалуйста, обслуживайте веб-интерфейс из бэкенда.",
|
||||
"Open file": "Открыть файл",
|
||||
"Open in full screen": "",
|
||||
"Open in full screen": "Открыть на весь экран",
|
||||
"Open new chat": "Открыть новый чат",
|
||||
"Open WebUI uses faster-whisper internally.": "",
|
||||
"Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "",
|
||||
@@ -635,25 +643,25 @@
|
||||
"OpenAI API settings updated": "",
|
||||
"OpenAI URL/Key required.": "Требуется URL-адрес API OpenAI или ключ API.",
|
||||
"or": "или",
|
||||
"Organize your users": "",
|
||||
"Organize your users": "Организуйте своих пользователей",
|
||||
"Other": "Прочее",
|
||||
"OUTPUT": "",
|
||||
"Output format": "Формат вывода",
|
||||
"Overview": "Обзор",
|
||||
"page": "страница",
|
||||
"Password": "Пароль",
|
||||
"Paste Large Text as File": "",
|
||||
"Paste Large Text as File": "Вставить большой текст как файл",
|
||||
"PDF document (.pdf)": "PDF-документ (.pdf)",
|
||||
"PDF Extract Images (OCR)": "Извлечение изображений из PDF (OCR)",
|
||||
"pending": "ожидающий",
|
||||
"Permission denied when accessing media devices": "Отказано в разрешении на доступ к мультимедийным устройствам",
|
||||
"Permission denied when accessing microphone": "Отказано в разрешении на доступ к микрофону",
|
||||
"Permission denied when accessing microphone: {{error}}": "Отказано в разрешении на доступ к микрофону: {{error}}",
|
||||
"Permissions": "",
|
||||
"Permissions": "Разрешения",
|
||||
"Personalization": "Персонализация",
|
||||
"Pin": "Закрепить",
|
||||
"Pinned": "Закреплено",
|
||||
"Pioneer insights": "",
|
||||
"Pioneer insights": "Новаторские идеи",
|
||||
"Pipeline deleted successfully": "Конвейер успешно удален",
|
||||
"Pipeline downloaded successfully": "Конвейер успешно загружен",
|
||||
"Pipelines": "Конвейеры",
|
||||
@@ -662,8 +670,9 @@
|
||||
"Plain text (.txt)": "Текст в формате .txt",
|
||||
"Playground": "Песочница",
|
||||
"Please carefully review the following warnings:": "Пожалуйста, внимательно ознакомьтесь со следующими предупреждениями:",
|
||||
"Please enter a prompt": "",
|
||||
"Please fill in all fields.": "",
|
||||
"Please enter a prompt": "Пожалуйста, введите подсказку",
|
||||
"Please fill in all fields.": "Пожалуйста, заполните все поля.",
|
||||
"Please select a model first.": "Пожалуйста, сначала выберите модель.",
|
||||
"Please select a reason": "Пожалуйста, выберите причину",
|
||||
"Port": "",
|
||||
"Positive attitude": "Позитивный настрой",
|
||||
@@ -679,6 +688,7 @@
|
||||
"Prompt updated successfully": "",
|
||||
"Prompts": "Промпты",
|
||||
"Prompts Access": "",
|
||||
"Proxy URL": "",
|
||||
"Pull \"{{searchValue}}\" from Ollama.com": "Загрузить \"{{searchValue}}\" с Ollama.com",
|
||||
"Pull a model from Ollama.com": "Загрузить модель с Ollama.com",
|
||||
"Query Generation Prompt": "",
|
||||
@@ -699,18 +709,21 @@
|
||||
"Remove": "Удалить",
|
||||
"Remove Model": "Удалить модель",
|
||||
"Rename": "Переименовать",
|
||||
"Reorder Models": "",
|
||||
"Repeat Last N": "Повторить последние N",
|
||||
"Request Mode": "Режим запроса",
|
||||
"Reranking Model": "Модель реранжирования",
|
||||
"Reranking model disabled": "Модель реранжирования отключена",
|
||||
"Reranking model set to \"{{reranking_model}}\"": "Модель реранжирования установлена на \"{{reranking_model}}\"",
|
||||
"Reset": "Сбросить",
|
||||
"Reset All Models": "",
|
||||
"Reset Upload Directory": "Сбросить каталог загрузок",
|
||||
"Reset Vector Storage/Knowledge": "",
|
||||
"Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Уведомления об ответах не могут быть активированы, поскольку доступ к веб-сайту был заблокирован. Пожалуйста, перейдите к настройкам своего браузера, чтобы предоставить необходимый доступ.",
|
||||
"Response splitting": "Разделение ответов",
|
||||
"Result": "",
|
||||
"Rich Text Input for Chat": "",
|
||||
"Retrieval Query Generation": "",
|
||||
"Rich Text Input for Chat": "Ввод форматированного текста для чата",
|
||||
"RK": "",
|
||||
"Role": "Роль",
|
||||
"Rosé Pine": "Rosé Pine",
|
||||
@@ -802,7 +815,7 @@
|
||||
"Share Chat": "Поделиться чатом",
|
||||
"Share to OpenWebUI Community": "Поделиться с сообществом OpenWebUI",
|
||||
"Show": "Показать",
|
||||
"Show \"What's New\" modal on login": "",
|
||||
"Show \"What's New\" modal on login": "Показывать окно «Что нового» при входе в систему",
|
||||
"Show Admin Details in Account Pending Overlay": "Показывать данные администратора в оверлее ожидающей учетной записи",
|
||||
"Show shortcuts": "Показать горячие клавиши",
|
||||
"Show your support!": "Поддержите нас!",
|
||||
@@ -833,6 +846,7 @@
|
||||
"System": "Система",
|
||||
"System Instructions": "",
|
||||
"System Prompt": "Системный промпт",
|
||||
"Tags Generation": "",
|
||||
"Tags Generation Prompt": "",
|
||||
"Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting. (default: 1)": "",
|
||||
"Tap to interrupt": "Нажмите, чтобы прервать",
|
||||
@@ -855,21 +869,21 @@
|
||||
"The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "Максимальный размер файла в МБ. Если размер файла превысит это ограничение, файл не будет загружен.",
|
||||
"The maximum number of files that can be used at once in chat. If the number of files exceeds this limit, the files will not be uploaded.": "Максимальное количество файлов, которые могут быть использованы одновременно в чате. Если количество файлов превысит это ограничение, файлы не будут загружены.",
|
||||
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Оценка должна быть значением между 0,0 (0%) и 1,0 (100%).",
|
||||
"The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "",
|
||||
"The temperature of the model. Increasing the temperature will make the model answer more creatively. (Default: 0.8)": "Температура модели. Повышение температуры заставит модель отвечать более творчески. (По умолчанию: 0,8)",
|
||||
"Theme": "Тема",
|
||||
"Thinking...": "Думаю...",
|
||||
"This action cannot be undone. Do you wish to continue?": "Это действие нельзя отменить. Вы хотите продолжить?",
|
||||
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Это обеспечивает сохранение ваших ценных разговоров в безопасной базе данных на вашем сервере. Спасибо!",
|
||||
"This is an experimental feature, it may not function as expected and is subject to change at any time.": "Это экспериментальная функция, она может работать не так, как ожидалось, и может быть изменена в любое время.",
|
||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "",
|
||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "",
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "",
|
||||
"This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics. (Default: 24)": "Этот параметр определяет, сколько токенов сохраняется при обновлении контекста. Например, если установлено значение 2, будут сохранены два последних токена контекста разговора. Сохранение контекста может помочь сохранить непрерывность разговора, но может снизить способность реагировать на новые темы. (По умолчанию: 24)",
|
||||
"This option sets the maximum number of tokens the model can generate in its response. Increasing this limit allows the model to provide longer answers, but it may also increase the likelihood of unhelpful or irrelevant content being generated. (Default: 128)": "Этот параметр устанавливает максимальное количество токенов, которые модель может сгенерировать в своем ответе. Увеличение этого предела позволяет модели предоставлять более длинные ответы, но также может увеличить вероятность создания бесполезного или нерелевантного контента. (По умолчанию: 128)",
|
||||
"This option will delete all existing files in the collection and replace them with newly uploaded files.": "Эта опция удалит все существующие файлы в коллекции и заменит их вновь загруженными файлами.",
|
||||
"This response was generated by \"{{model}}\"": "",
|
||||
"This will delete": "Это приведет к удалению",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "",
|
||||
"This will delete all models including custom models": "",
|
||||
"This will delete all models including custom models and cannot be undone.": "",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "",
|
||||
"This will delete <strong>{{NAME}}</strong> and <strong>all its contents</strong>.": "При этом будет удален <strong>{{NAME}}</strong> и <strong>все его содержимое</strong>.",
|
||||
"This will delete all models including custom models": "Это приведет к удалению всех моделей, включая пользовательские модели.",
|
||||
"This will delete all models including custom models and cannot be undone.": "При этом будут удалены все модели, включая пользовательские, и это действие нельзя будет отменить.",
|
||||
"This will reset the knowledge base and sync all files. Do you wish to continue?": "Это сбросит базу знаний и синхронизирует все файлы. Хотите продолжить?",
|
||||
"Thorough explanation": "Подробное объяснение",
|
||||
"Tika": "Tika",
|
||||
"Tika Server URL required.": "Требуется URL-адрес сервера Tika.",
|
||||
@@ -884,12 +898,12 @@
|
||||
"To access the available model names for downloading,": "Чтобы получить доступ к доступным для загрузки именам моделей,",
|
||||
"To access the GGUF models available for downloading,": "Чтобы получить доступ к моделям GGUF, доступным для загрузки,",
|
||||
"To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Чтобы получить доступ к WebUI, пожалуйста, обратитесь к администратору. Администраторы могут управлять статусами пользователей из панели администратора.",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "",
|
||||
"To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Чтобы прикрепить сюда базу знаний, сначала добавьте её в \"Знания\" рабочего пространства.",
|
||||
"To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "",
|
||||
"To select actions here, add them to the \"Functions\" workspace first.": "Чтобы выбрать действия, сначала добавьте их в \"Функции\" рабочего пространства.",
|
||||
"To select filters here, add them to the \"Functions\" workspace first.": "Чтобы выбрать фильтры, сначала добавьте их в \"Функции\" рабочего пространства.",
|
||||
"To select toolkits here, add them to the \"Tools\" workspace first.": "Чтобы выбрать инструменты, сначала добавьте их в \"Инструменты\" рабочего пространства.",
|
||||
"Toast notifications for new updates": "",
|
||||
"Toast notifications for new updates": "Уведомления о обновлениях",
|
||||
"Today": "Сегодня",
|
||||
"Toggle settings": "Переключить настройки",
|
||||
"Toggle sidebar": "Переключить боковую панель",
|
||||
@@ -898,13 +912,13 @@
|
||||
"Too verbose": "",
|
||||
"Tool created successfully": "Инструмент успешно создан",
|
||||
"Tool deleted successfully": "Инструмент успешно удален",
|
||||
"Tool Description": "",
|
||||
"Tool ID": "",
|
||||
"Tool Description": "Описание Инструмента",
|
||||
"Tool ID": "ID Инструмента",
|
||||
"Tool imported successfully": "Инструмент успешно импортирован",
|
||||
"Tool Name": "",
|
||||
"Tool Name": "Имя Инструмента",
|
||||
"Tool updated successfully": "Инструмент успешно обновлен",
|
||||
"Tools": "Инструменты",
|
||||
"Tools Access": "",
|
||||
"Tools Access": "Доступ к инструментам",
|
||||
"Tools are a function calling system with arbitrary code execution": "Инструменты - это система вызова функций с выполнением произвольного кода",
|
||||
"Tools have a function calling system that allows arbitrary code execution": "Инструменты имеют систему вызова функций, которая позволяет выполнять произвольный код",
|
||||
"Tools have a function calling system that allows arbitrary code execution.": "Инструменты имеют систему вызова функций, которая позволяет выполнять произвольный код.",
|
||||
@@ -919,41 +933,41 @@
|
||||
"Type Hugging Face Resolve (Download) URL": "Введите URL-адрес Hugging Face Resolve (загрузки)",
|
||||
"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.",
|
||||
"UI": "Пользовательский интерфейс",
|
||||
"Unarchive All": "",
|
||||
"Unarchive All Archived Chats": "",
|
||||
"Unarchive Chat": "",
|
||||
"Unlock mysteries": "",
|
||||
"Unarchive All": "Разархивировать ВСЁ",
|
||||
"Unarchive All Archived Chats": "Разархивировать ВСЕ Заархивированные Чаты",
|
||||
"Unarchive Chat": "Разархивировать чат",
|
||||
"Unlock mysteries": "Разблокируйте тайны",
|
||||
"Unpin": "Открепить",
|
||||
"Unravel secrets": "",
|
||||
"Untagged": "",
|
||||
"Unravel secrets": "Разгадать секреты",
|
||||
"Untagged": "Без тегов",
|
||||
"Update": "Обновить",
|
||||
"Update and Copy Link": "Обновить и скопировать ссылку",
|
||||
"Update for the latest features and improvements.": "Обновитесь для получения последних функций и улучшений.",
|
||||
"Update password": "Обновить пароль",
|
||||
"Updated": "",
|
||||
"Updated": "Обновлено",
|
||||
"Updated at": "Обновлено",
|
||||
"Updated At": "",
|
||||
"Upload": "Загрузить",
|
||||
"Upload a GGUF model": "Загрузить модель GGUF",
|
||||
"Upload directory": "",
|
||||
"Upload files": "",
|
||||
"Upload directory": "Загрузить каталог",
|
||||
"Upload files": "Загрузить файлы",
|
||||
"Upload Files": "Загрузить файлы",
|
||||
"Upload Pipeline": "Загрузить конвейер",
|
||||
"Upload Progress": "Прогресс загрузки",
|
||||
"URL": "",
|
||||
"URL Mode": "Режим URL",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "",
|
||||
"Use '#' in the prompt input to load and include your knowledge.": "Используйте «#» в строке ввода, чтобы загрузить и включить свои знания.",
|
||||
"Use Gravatar": "Использовать Gravatar",
|
||||
"Use groups to group your users and assign permissions.": "",
|
||||
"Use groups to group your users and assign permissions.": "Используйте группы, чтобы группировать пользователей и назначать разрешения.",
|
||||
"Use Initials": "Использовать инициалы",
|
||||
"use_mlock (Ollama)": "use_mlock (Ollama)",
|
||||
"use_mmap (Ollama)": "use_mmap (Ollama)",
|
||||
"user": "пользователь",
|
||||
"User": "",
|
||||
"User": "Пользователь",
|
||||
"User location successfully retrieved.": "Местоположение пользователя успешно получено.",
|
||||
"Username": "",
|
||||
"Username": "Имя пользователя",
|
||||
"Users": "Пользователи",
|
||||
"Using the default arena model with all models. Click the plus button to add custom models.": "",
|
||||
"Using the default arena model with all models. Click the plus button to add custom models.": "Использование модели арены по умолчанию со всеми моделями. Нажмите кнопку «плюс», чтобы добавить пользовательские модели.",
|
||||
"Utilize": "Используйте",
|
||||
"Valid time units:": "Допустимые единицы времени:",
|
||||
"Valves": "Вентили",
|
||||
@@ -963,44 +977,45 @@
|
||||
"variable to have them replaced with clipboard content.": "переменную, чтобы заменить их содержимым буфера обмена.",
|
||||
"Version": "Версия",
|
||||
"Version {{selectedVersion}} of {{totalVersions}}": "",
|
||||
"Visibility": "",
|
||||
"Visibility": "Видимость",
|
||||
"Voice": "Голос",
|
||||
"Voice Input": "",
|
||||
"Warning": "Предупреждение",
|
||||
"Warning:": "Предупреждение:",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "",
|
||||
"Warning: Enabling this will allow users to upload arbitrary code on the server.": "Предупреждение. Включение этого параметра позволит пользователям загружать произвольный код на сервер.",
|
||||
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Предупреждение: Если вы обновите или измените модель эмбеддинга, вам нужно будет повторно импортировать все документы.",
|
||||
"Web": "Веб",
|
||||
"Web API": "Веб API",
|
||||
"Web Loader Settings": "Настройки веб-загрузчика",
|
||||
"Web Search": "Веб-поиск",
|
||||
"Web Search Engine": "Поисковая система",
|
||||
"Web Search Query Generation": "Генерация запросов веб-поиска",
|
||||
"Webhook URL": "URL-адрес веб-хука",
|
||||
"WebUI Settings": "Настройки WebUI",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "",
|
||||
"WebUI will make requests to \"{{url}}/chat/completions\"": "",
|
||||
"What are you trying to achieve?": "",
|
||||
"What are you working on?": "",
|
||||
"WebUI will make requests to \"{{url}}/api/chat\"": "WebUI будет отправлять запросы к \"{{url}}/api/chat\"",
|
||||
"WebUI will make requests to \"{{url}}/chat/completions\"": "WebUI будет отправлять запросы к \"{{url}}/chat/completions\"",
|
||||
"What are you trying to achieve?": "Чего вы пытаетесь достичь?",
|
||||
"What are you working on?": "Над чем вы работаете?",
|
||||
"What’s New in": "Что нового в",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "",
|
||||
"wherever you are": "",
|
||||
"When enabled, the model will respond to each chat message in real-time, generating a response as soon as the user sends a message. This mode is useful for live chat applications, but may impact performance on slower hardware.": "Если эта функция включена, модель будет отвечать на каждое сообщение чата в режиме реального времени, генерируя ответ, как только пользователь отправит сообщение. Этот режим полезен для приложений живого чата, но может повлиять на производительность на более медленном оборудовании.",
|
||||
"wherever you are": "где бы ты ни был",
|
||||
"Whisper (Local)": "Whisper (Локально)",
|
||||
"Why?": "",
|
||||
"Why?": "Почему?",
|
||||
"Widescreen Mode": "Широкоэкранный режим",
|
||||
"Won": "",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "",
|
||||
"Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text. (Default: 0.9)": "Работает совместно с top-k. Более высокое значение (например, 0,95) приведет к созданию более разнообразного текста, а более низкое значение (например, 0,5) приведет к созданию более сфокусированного и консервативного текста. (По умолчанию: 0,9)",
|
||||
"Workspace": "Рабочее пространство",
|
||||
"Workspace Permissions": "",
|
||||
"Workspace Permissions": "Разрешения для Рабочего пространства",
|
||||
"Write a prompt suggestion (e.g. Who are you?)": "Напишите предложение промпта (например, Кто вы?)",
|
||||
"Write a summary in 50 words that summarizes [topic or keyword].": "Напишите резюме в 50 словах, которое кратко описывает [тему или ключевое слово].",
|
||||
"Write something...": "",
|
||||
"Write your model template content here": "",
|
||||
"Write something...": "Напишите что-нибудь...",
|
||||
"Write your model template content here": "Напишите здесь содержимое шаблона вашей модели.",
|
||||
"Yesterday": "Вчера",
|
||||
"You": "Вы",
|
||||
"You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Одновременно вы можете общаться только с максимальным количеством файлов {{maxCount}}.",
|
||||
"You can personalize your interactions with LLMs by adding memories through the 'Manage' button below, making them more helpful and tailored to you.": "Вы можете персонализировать свое взаимодействие с LLMs, добавив воспоминания с помощью кнопки \"Управлять\" ниже, что сделает их более полезными и адаптированными для вас.",
|
||||
"You cannot upload an empty file.": "",
|
||||
"You do not have permission to upload files.": "",
|
||||
"You cannot upload an empty file.": "Вы не можете загрузить пустой файл.",
|
||||
"You do not have permission to upload files.": "У вас нет разрешения на загрузку файлов.",
|
||||
"You have no archived conversations.": "У вас нет архивированных бесед.",
|
||||
"You have shared this chat": "Вы поделились этим чатом",
|
||||
"You're a helpful assistant.": "Вы полезный ассистент.",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user