mirror of
https://github.com/arc53/DocsGPT.git
synced 2025-11-29 16:43:16 +00:00
Compare commits
6 Commits
compress-c
...
fix-tool-n
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17bc22224c | ||
|
|
899b30da5e | ||
|
|
dc2faf7a7e | ||
|
|
67e0d222d1 | ||
|
|
17698ce774 | ||
|
|
7d1c8c008b |
@@ -26,13 +26,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<br>
|
||||
🎃 <a href="https://github.com/arc53/DocsGPT/blob/main/HACKTOBERFEST.md"> Hacktoberfest Prizes, Rules & Q&A </a> 🎃
|
||||
<br>
|
||||
<br>
|
||||
</div>
|
||||
|
||||
|
||||
<div align="center">
|
||||
<br>
|
||||
|
||||
@@ -103,11 +103,10 @@ class StreamProcessor:
|
||||
|
||||
def initialize(self):
|
||||
"""Initialize all required components for processing"""
|
||||
self._validate_and_set_model()
|
||||
self._configure_agent()
|
||||
self._validate_and_set_model()
|
||||
self._configure_source()
|
||||
self._configure_retriever()
|
||||
self._configure_agent()
|
||||
self._load_conversation_history()
|
||||
self._process_attachments()
|
||||
|
||||
@@ -230,7 +229,12 @@ class StreamProcessor:
|
||||
)
|
||||
self.model_id = requested_model
|
||||
else:
|
||||
self.model_id = get_default_model_id()
|
||||
# Check if agent has a default model configured
|
||||
agent_default_model = self.agent_config.get("default_model_id", "")
|
||||
if agent_default_model and validate_model_id(agent_default_model):
|
||||
self.model_id = agent_default_model
|
||||
else:
|
||||
self.model_id = get_default_model_id()
|
||||
|
||||
def _get_agent_key(self, agent_id: Optional[str], user_id: Optional[str]) -> tuple:
|
||||
"""Get API key for agent with access control"""
|
||||
@@ -303,6 +307,10 @@ class StreamProcessor:
|
||||
data["sources"] = sources_list
|
||||
else:
|
||||
data["sources"] = []
|
||||
|
||||
# Preserve model configuration from agent
|
||||
data["default_model_id"] = data.get("default_model_id", "")
|
||||
|
||||
return data
|
||||
|
||||
def _configure_source(self):
|
||||
@@ -355,6 +363,7 @@ class StreamProcessor:
|
||||
"agent_type": data_key.get("agent_type", settings.AGENT_NAME),
|
||||
"user_api_key": api_key,
|
||||
"json_schema": data_key.get("json_schema"),
|
||||
"default_model_id": data_key.get("default_model_id", ""),
|
||||
}
|
||||
)
|
||||
self.initial_user_id = data_key.get("user")
|
||||
@@ -379,6 +388,7 @@ class StreamProcessor:
|
||||
"agent_type": data_key.get("agent_type", settings.AGENT_NAME),
|
||||
"user_api_key": self.agent_key,
|
||||
"json_schema": data_key.get("json_schema"),
|
||||
"default_model_id": data_key.get("default_model_id", ""),
|
||||
}
|
||||
)
|
||||
self.decoded_token = (
|
||||
@@ -405,6 +415,7 @@ class StreamProcessor:
|
||||
"agent_type": settings.AGENT_NAME,
|
||||
"user_api_key": None,
|
||||
"json_schema": None,
|
||||
"default_model_id": "",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ OPENAI_MODELS = [
|
||||
supports_tools=True,
|
||||
supports_structured_output=True,
|
||||
supported_attachment_types=OPENAI_ATTACHMENTS,
|
||||
context_window=400000,
|
||||
context_window=200000,
|
||||
),
|
||||
),
|
||||
AvailableModel(
|
||||
@@ -49,7 +49,7 @@ OPENAI_MODELS = [
|
||||
supports_tools=True,
|
||||
supports_structured_output=True,
|
||||
supported_attachment_types=OPENAI_ATTACHMENTS,
|
||||
context_window=400000,
|
||||
context_window=200000,
|
||||
),
|
||||
)
|
||||
]
|
||||
@@ -133,7 +133,7 @@ GOOGLE_MODELS = [
|
||||
supports_tools=True,
|
||||
supports_structured_output=True,
|
||||
supported_attachment_types=GOOGLE_ATTACHMENTS,
|
||||
context_window=20000, # Set low for testing compression
|
||||
context_window=2000000,
|
||||
),
|
||||
),
|
||||
]
|
||||
|
||||
@@ -146,6 +146,14 @@ def upload_index(full_path, file_data):
|
||||
|
||||
def run_agent_logic(agent_config, input_data):
|
||||
try:
|
||||
from application.core.model_utils import (
|
||||
get_api_key_for_provider,
|
||||
get_default_model_id,
|
||||
get_provider_from_model_id,
|
||||
validate_model_id,
|
||||
)
|
||||
from application.utils import calculate_doc_token_budget
|
||||
|
||||
source = agent_config.get("source")
|
||||
retriever = agent_config.get("retriever", "classic")
|
||||
if isinstance(source, DBRef):
|
||||
@@ -160,31 +168,62 @@ def run_agent_logic(agent_config, input_data):
|
||||
user_api_key = agent_config["key"]
|
||||
agent_type = agent_config.get("agent_type", "classic")
|
||||
decoded_token = {"sub": agent_config.get("user")}
|
||||
json_schema = agent_config.get("json_schema")
|
||||
prompt = get_prompt(prompt_id, db["prompts"])
|
||||
agent = AgentCreator.create_agent(
|
||||
agent_type,
|
||||
endpoint="webhook",
|
||||
llm_name=settings.LLM_PROVIDER,
|
||||
model_id=settings.LLM_NAME,
|
||||
api_key=settings.API_KEY,
|
||||
user_api_key=user_api_key,
|
||||
prompt=prompt,
|
||||
chat_history=[],
|
||||
decoded_token=decoded_token,
|
||||
attachments=[],
|
||||
|
||||
# Determine model_id: check agent's default_model_id, fallback to system default
|
||||
agent_default_model = agent_config.get("default_model_id", "")
|
||||
if agent_default_model and validate_model_id(agent_default_model):
|
||||
model_id = agent_default_model
|
||||
else:
|
||||
model_id = get_default_model_id()
|
||||
|
||||
# Get provider and API key for the selected model
|
||||
provider = get_provider_from_model_id(model_id) if model_id else settings.LLM_PROVIDER
|
||||
system_api_key = get_api_key_for_provider(provider or settings.LLM_PROVIDER)
|
||||
|
||||
# Calculate proper doc_token_limit based on model's context window
|
||||
history_token_limit = 2000 # Default for webhooks
|
||||
doc_token_limit = calculate_doc_token_budget(
|
||||
model_id=model_id, history_token_limit=history_token_limit
|
||||
)
|
||||
|
||||
retriever = RetrieverCreator.create_retriever(
|
||||
retriever,
|
||||
source=source,
|
||||
chat_history=[],
|
||||
prompt=prompt,
|
||||
chunks=chunks,
|
||||
token_limit=settings.DEFAULT_MAX_HISTORY,
|
||||
model_id=settings.LLM_NAME,
|
||||
doc_token_limit=doc_token_limit,
|
||||
model_id=model_id,
|
||||
user_api_key=user_api_key,
|
||||
decoded_token=decoded_token,
|
||||
)
|
||||
answer = agent.gen(query=input_data, retriever=retriever)
|
||||
|
||||
# Pre-fetch documents using the retriever
|
||||
retrieved_docs = []
|
||||
try:
|
||||
docs = retriever.search(input_data)
|
||||
if docs:
|
||||
retrieved_docs = docs
|
||||
except Exception as e:
|
||||
logging.warning(f"Failed to retrieve documents: {e}")
|
||||
|
||||
agent = AgentCreator.create_agent(
|
||||
agent_type,
|
||||
endpoint="webhook",
|
||||
llm_name=provider or settings.LLM_PROVIDER,
|
||||
model_id=model_id,
|
||||
api_key=system_api_key,
|
||||
user_api_key=user_api_key,
|
||||
prompt=prompt,
|
||||
chat_history=[],
|
||||
retrieved_docs=retrieved_docs,
|
||||
decoded_token=decoded_token,
|
||||
attachments=[],
|
||||
json_schema=json_schema,
|
||||
)
|
||||
answer = agent.gen(query=input_data)
|
||||
response_full = ""
|
||||
thought = ""
|
||||
source_log_docs = []
|
||||
|
||||
646
frontend/src/locale/de.json
Normal file
646
frontend/src/locale/de.json
Normal file
@@ -0,0 +1,646 @@
|
||||
{
|
||||
"language": "Deutsch",
|
||||
"chat": "Chat",
|
||||
"chats": "Chats",
|
||||
"newChat": "Neuer Chat",
|
||||
"inputPlaceholder": "Wie kann DocsGPT dir helfen?",
|
||||
"tagline": "DocsGPT verwendet GenAI, bitte überprüfe kritische Informationen anhand der Quellen.",
|
||||
"sourceDocs": "Quelle",
|
||||
"none": "Keine",
|
||||
"cancel": "Abbrechen",
|
||||
"help": "Hilfe",
|
||||
"emailUs": "E-Mail senden",
|
||||
"documentation": "Dokumentation",
|
||||
"manageAgents": "Agenten verwalten",
|
||||
"demo": [
|
||||
{
|
||||
"header": "Über DocsGPT lernen",
|
||||
"query": "Was ist DocsGPT?"
|
||||
},
|
||||
{
|
||||
"header": "Dokumentation zusammenfassen",
|
||||
"query": "Fasse den aktuellen Kontext zusammen"
|
||||
},
|
||||
{
|
||||
"header": "Code schreiben",
|
||||
"query": "Schreibe Code für eine API-Anfrage an /api/answer"
|
||||
},
|
||||
{
|
||||
"header": "Lernunterstützung",
|
||||
"query": "Schreibe mögliche Fragen zum Kontext"
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"label": "Einstellungen",
|
||||
"general": {
|
||||
"label": "Allgemein",
|
||||
"selectTheme": "Design auswählen",
|
||||
"light": "Hell",
|
||||
"dark": "Dunkel",
|
||||
"selectLanguage": "Sprache auswählen",
|
||||
"chunks": "Chunks pro Anfrage",
|
||||
"prompt": "Aktiver Prompt",
|
||||
"deleteAllLabel": "Alle Konversationen löschen",
|
||||
"deleteAllBtn": "Alle löschen",
|
||||
"addNew": "Neu hinzufügen",
|
||||
"convHistory": "Konversationsverlauf",
|
||||
"none": "Keine",
|
||||
"low": "Niedrig",
|
||||
"medium": "Mittel",
|
||||
"high": "Hoch",
|
||||
"unlimited": "Unbegrenzt",
|
||||
"default": "Standard",
|
||||
"add": "Hinzufügen"
|
||||
},
|
||||
"sources": {
|
||||
"title": "Hier kannst du alle verfügbaren Quelldateien verwalten, die dir zur Verfügung stehen und die du hochgeladen hast.",
|
||||
"label": "Quellen",
|
||||
"name": "Quellenname",
|
||||
"date": "Vektor-Datum",
|
||||
"type": "Typ",
|
||||
"tokenUsage": "Token-Verbrauch",
|
||||
"noData": "Keine vorhandenen Quellen",
|
||||
"searchPlaceholder": "Suchen...",
|
||||
"addNew": "Neu hinzufügen",
|
||||
"addSource": "Quelle hinzufügen",
|
||||
"addChunk": "Chunk hinzufügen",
|
||||
"preLoaded": "Vorgeladen",
|
||||
"private": "Privat",
|
||||
"sync": "Synchronisieren",
|
||||
"syncing": "Synchronisiere...",
|
||||
"syncConfirmation": "Bist du sicher, dass du \"{{sourceName}}\" synchronisieren möchtest? Dies aktualisiert den Inhalt mit deinem Cloud-Speicher und kann Änderungen an einzelnen Chunks überschreiben.",
|
||||
"syncFrequency": {
|
||||
"never": "Nie",
|
||||
"daily": "Täglich",
|
||||
"weekly": "Wöchentlich",
|
||||
"monthly": "Monatlich"
|
||||
},
|
||||
"actions": "Aktionen",
|
||||
"view": "Anzeigen",
|
||||
"deleteWarning": "Bist du sicher, dass du \"{{name}}\" löschen möchtest?",
|
||||
"confirmDelete": "Bist du sicher, dass du diese Datei löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"backToAll": "Zurück zu allen Quellen",
|
||||
"chunks": "Chunks",
|
||||
"noChunks": "Keine Chunks gefunden",
|
||||
"noChunksAlt": "Keine Chunks gefunden",
|
||||
"goToSources": "Zu den Quellen",
|
||||
"uploadNew": "Neu hochladen",
|
||||
"searchFiles": "Dateien suchen...",
|
||||
"noResults": "Keine Ergebnisse gefunden",
|
||||
"fileName": "Name",
|
||||
"tokens": "Tokens",
|
||||
"size": "Größe",
|
||||
"fileAlt": "Datei",
|
||||
"folderAlt": "Ordner",
|
||||
"parentFolderAlt": "Übergeordneter Ordner",
|
||||
"menuAlt": "Menü",
|
||||
"tokensUnit": "Tokens",
|
||||
"editAlt": "Bearbeiten",
|
||||
"uploading": "Wird hochgeladen…",
|
||||
"deleting": "Wird gelöscht…",
|
||||
"queued": "In Warteschlange: {{count}}",
|
||||
"addFile": "Datei hinzufügen",
|
||||
"uploadingFilesTitle": "Dateien werden hochgeladen...",
|
||||
"deletingTitle": "Wird gelöscht...",
|
||||
"deleteDirectoryWarning": "Bist du sicher, dass du das Verzeichnis \"{{name}}\" und seinen gesamten Inhalt löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden.",
|
||||
"searchAlt": "Suchen"
|
||||
},
|
||||
"apiKeys": {
|
||||
"label": "Chatbots",
|
||||
"name": "Name",
|
||||
"key": "API-Schlüssel",
|
||||
"sourceDoc": "Quelldokument",
|
||||
"createNew": "Neu erstellen",
|
||||
"noData": "Keine vorhandenen Chatbots",
|
||||
"deleteConfirmation": "Bist du sicher, dass du den API-Schlüssel '{{name}}' löschen möchtest?",
|
||||
"description": "Hier kannst du deine Chatbots erstellen und verwalten. Chatbots können als Widgets auf Websites eingebunden oder in deinen Anwendungen verwendet werden."
|
||||
},
|
||||
"analytics": {
|
||||
"label": "Analytik",
|
||||
"filterByChatbot": "Nach Chatbot filtern",
|
||||
"selectChatbot": "Chatbot auswählen",
|
||||
"filterOptions": {
|
||||
"hour": "Stunde",
|
||||
"last24Hours": "24 Stunden",
|
||||
"last7Days": "7 Tage",
|
||||
"last15Days": "15 Tage",
|
||||
"last30Days": "30 Tage"
|
||||
},
|
||||
"messages": "Nachrichten",
|
||||
"tokenUsage": "Token-Verbrauch",
|
||||
"userFeedback": "Benutzer-Feedback",
|
||||
"filterPlaceholder": "Filter",
|
||||
"none": "Keine",
|
||||
"positiveFeedback": "Positives Feedback",
|
||||
"negativeFeedback": "Negatives Feedback"
|
||||
},
|
||||
"logs": {
|
||||
"label": "Protokolle",
|
||||
"filterByChatbot": "Nach Chatbot filtern",
|
||||
"selectChatbot": "Chatbot auswählen",
|
||||
"none": "Keine",
|
||||
"tableHeader": "API-generierte / Chatbot-Konversationen"
|
||||
},
|
||||
"tools": {
|
||||
"label": "Werkzeuge",
|
||||
"searchPlaceholder": "Werkzeuge suchen...",
|
||||
"addTool": "Werkzeug hinzufügen",
|
||||
"noToolsFound": "Keine Werkzeuge gefunden",
|
||||
"selectToolSetup": "Wähle ein Werkzeug zur Einrichtung",
|
||||
"settingsIconAlt": "Einstellungssymbol",
|
||||
"configureToolAria": "{{toolName}} konfigurieren",
|
||||
"toggleToolAria": "{{toolName}} umschalten",
|
||||
"manageTools": "Zu den Werkzeugen",
|
||||
"edit": "Bearbeiten",
|
||||
"delete": "Löschen",
|
||||
"deleteWarning": "Bist du sicher, dass du das Werkzeug \"{{toolName}}\" löschen möchtest?",
|
||||
"unsavedChanges": "Du hast ungespeicherte Änderungen, die verloren gehen, wenn du ohne Speichern verlässt.",
|
||||
"leaveWithoutSaving": "Ohne Speichern verlassen",
|
||||
"saveAndLeave": "Speichern und verlassen",
|
||||
"customName": "Benutzerdefinierter Name",
|
||||
"customNamePlaceholder": "Gib einen benutzerdefinierten Namen ein (optional)",
|
||||
"authentication": "Authentifizierung",
|
||||
"actions": "Aktionen",
|
||||
"addAction": "Aktion hinzufügen",
|
||||
"noActionsFound": "Keine Aktionen gefunden",
|
||||
"url": "URL",
|
||||
"urlPlaceholder": "URL eingeben",
|
||||
"method": "Methode",
|
||||
"description": "Beschreibung",
|
||||
"descriptionPlaceholder": "Beschreibung eingeben",
|
||||
"headers": "Header",
|
||||
"queryParameters": "Abfrageparameter",
|
||||
"body": "Body",
|
||||
"deleteActionWarning": "Bist du sicher, dass du die Aktion \"{{name}}\" löschen möchtest?",
|
||||
"backToAllTools": "Zurück zu allen Werkzeugen",
|
||||
"save": "Speichern",
|
||||
"fieldName": "Feldname",
|
||||
"fieldType": "Feldtyp",
|
||||
"filledByLLM": "Vom LLM ausgefüllt",
|
||||
"fieldDescription": "Feldbeschreibung",
|
||||
"value": "Wert",
|
||||
"addProperty": "Eigenschaft hinzufügen",
|
||||
"propertyName": "Neuer Eigenschaftsschlüssel",
|
||||
"add": "Hinzufügen",
|
||||
"cancel": "Abbrechen",
|
||||
"addNew": "Neu hinzufügen",
|
||||
"name": "Name",
|
||||
"type": "Typ",
|
||||
"mcp": {
|
||||
"addServer": "MCP-Server hinzufügen",
|
||||
"editServer": "Server bearbeiten",
|
||||
"serverName": "Servername",
|
||||
"serverUrl": "Server-URL",
|
||||
"headerName": "Header-Name",
|
||||
"timeout": "Timeout (Sekunden)",
|
||||
"testConnection": "Verbindung testen",
|
||||
"testing": "Teste...",
|
||||
"saving": "Speichere...",
|
||||
"save": "Speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"noAuth": "Keine Authentifizierung",
|
||||
"oauthInProgress": "Warte auf OAuth-Abschluss...",
|
||||
"oauthCompleted": "OAuth erfolgreich abgeschlossen",
|
||||
"authType": "Authentifizierungstyp",
|
||||
"defaultServerName": "Mein MCP-Server",
|
||||
"authTypes": {
|
||||
"none": "Keine Authentifizierung",
|
||||
"apiKey": "API-Schlüssel",
|
||||
"bearer": "Bearer-Token",
|
||||
"oauth": "OAuth",
|
||||
"basic": "Basis-Authentifizierung"
|
||||
},
|
||||
"placeholders": {
|
||||
"serverUrl": "https://api.beispiel.com",
|
||||
"apiKey": "Dein geheimer API-Schlüssel",
|
||||
"bearerToken": "Dein geheimes Token",
|
||||
"username": "Dein Benutzername",
|
||||
"password": "Dein Passwort",
|
||||
"oauthScopes": "OAuth-Bereiche (kommagetrennt)"
|
||||
},
|
||||
"errors": {
|
||||
"nameRequired": "Servername ist erforderlich",
|
||||
"urlRequired": "Server-URL ist erforderlich",
|
||||
"invalidUrl": "Bitte gib eine gültige URL ein",
|
||||
"apiKeyRequired": "API-Schlüssel ist erforderlich",
|
||||
"tokenRequired": "Bearer-Token ist erforderlich",
|
||||
"usernameRequired": "Benutzername ist erforderlich",
|
||||
"passwordRequired": "Passwort ist erforderlich",
|
||||
"testFailed": "Verbindungstest fehlgeschlagen",
|
||||
"saveFailed": "MCP-Server konnte nicht gespeichert werden",
|
||||
"oauthFailed": "OAuth-Prozess fehlgeschlagen oder abgebrochen",
|
||||
"oauthTimeout": "OAuth-Prozess abgelaufen, bitte erneut versuchen",
|
||||
"timeoutRange": "Timeout muss zwischen 1 und 300 Sekunden liegen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrollTabsLeft": "Tabs nach links scrollen",
|
||||
"tabsAriaLabel": "Einstellungs-Tabs",
|
||||
"scrollTabsRight": "Tabs nach rechts scrollen"
|
||||
},
|
||||
"modals": {
|
||||
"uploadDoc": {
|
||||
"label": "Neues Dokument hochladen",
|
||||
"select": "Wähle, wie du dein Dokument zu DocsGPT hochladen möchtest",
|
||||
"selectSource": "Wähle die Art, wie du deine Quelle hinzufügen möchtest",
|
||||
"selectedFiles": "Ausgewählte Dateien",
|
||||
"noFilesSelected": "Keine Dateien ausgewählt",
|
||||
"file": "Vom Gerät hochladen",
|
||||
"back": "Zurück",
|
||||
"wait": "Bitte warten ...",
|
||||
"remote": "Von Website sammeln",
|
||||
"start": "Chat starten",
|
||||
"name": "Name",
|
||||
"choose": "Dateien auswählen",
|
||||
"info": "Bitte lade .pdf, .txt, .rst, .csv, .xlsx, .docx, .md, .html, .epub, .json, .pptx, .zip hoch (max. 25 MB)",
|
||||
"uploadedFiles": "Hochgeladene Dateien",
|
||||
"cancel": "Abbrechen",
|
||||
"train": "Trainieren",
|
||||
"link": "Link",
|
||||
"urlLink": "URL-Link",
|
||||
"repoUrl": "Repository-URL",
|
||||
"reddit": {
|
||||
"id": "Client-ID",
|
||||
"secret": "Client-Secret",
|
||||
"agent": "User-Agent",
|
||||
"searchQueries": "Suchanfragen",
|
||||
"numberOfPosts": "Anzahl der Beiträge",
|
||||
"addQuery": "Anfrage hinzufügen"
|
||||
},
|
||||
"drag": {
|
||||
"title": "Anhänge hier ablegen",
|
||||
"description": "Loslassen, um deine Anhänge hochzuladen"
|
||||
},
|
||||
"progress": {
|
||||
"upload": "Upload läuft",
|
||||
"training": "Upload läuft",
|
||||
"completed": "Upload abgeschlossen",
|
||||
"failed": "Upload fehlgeschlagen",
|
||||
"wait": "Dies kann einige Minuten dauern",
|
||||
"preparing": "Upload wird vorbereitet",
|
||||
"tokenLimit": "Token-Limit überschritten, bitte lade ein kleineres Dokument hoch",
|
||||
"expandDetails": "Upload-Details erweitern",
|
||||
"collapseDetails": "Upload-Details einklappen",
|
||||
"dismiss": "Upload-Benachrichtigung schließen",
|
||||
"uploadProgress": "Upload-Fortschritt {{progress}}%",
|
||||
"clear": "Löschen"
|
||||
},
|
||||
"showAdvanced": "Erweiterte Optionen anzeigen",
|
||||
"hideAdvanced": "Erweiterte Optionen ausblenden",
|
||||
"ingestors": {
|
||||
"local_file": {
|
||||
"label": "Datei hochladen",
|
||||
"heading": "Neues Dokument hochladen"
|
||||
},
|
||||
"crawler": {
|
||||
"label": "Crawler",
|
||||
"heading": "Inhalt mit Web-Crawler hinzufügen"
|
||||
},
|
||||
"url": {
|
||||
"label": "Link",
|
||||
"heading": "Inhalt von URL hinzufügen"
|
||||
},
|
||||
"github": {
|
||||
"label": "GitHub",
|
||||
"heading": "Inhalt von GitHub hinzufügen"
|
||||
},
|
||||
"reddit": {
|
||||
"label": "Reddit",
|
||||
"heading": "Inhalt von Reddit hinzufügen"
|
||||
},
|
||||
"google_drive": {
|
||||
"label": "Google Drive",
|
||||
"heading": "Von Google Drive hochladen"
|
||||
}
|
||||
},
|
||||
"connectors": {
|
||||
"auth": {
|
||||
"connectedUser": "Verbundener Benutzer",
|
||||
"authFailed": "Authentifizierung fehlgeschlagen",
|
||||
"authUrlFailed": "Autorisierungs-URL konnte nicht abgerufen werden",
|
||||
"popupBlocked": "Authentifizierungsfenster konnte nicht geöffnet werden. Bitte erlaube Popups.",
|
||||
"authCancelled": "Authentifizierung wurde abgebrochen",
|
||||
"connectedAs": "Verbunden als {{email}}",
|
||||
"disconnect": "Trennen"
|
||||
},
|
||||
"googleDrive": {
|
||||
"connect": "Mit Google Drive verbinden",
|
||||
"sessionExpired": "Sitzung abgelaufen. Bitte verbinde dich erneut mit Google Drive.",
|
||||
"sessionExpiredGeneric": "Sitzung abgelaufen. Bitte verbinde dein Konto erneut.",
|
||||
"validateFailed": "Sitzung konnte nicht validiert werden. Bitte verbinde dich erneut.",
|
||||
"noSession": "Keine gültige Sitzung gefunden. Bitte verbinde dich erneut mit Google Drive.",
|
||||
"noAccessToken": "Kein Zugriffstoken verfügbar. Bitte verbinde dich erneut mit Google Drive.",
|
||||
"pickerFailed": "Dateiauswahl konnte nicht geöffnet werden. Bitte versuche es erneut.",
|
||||
"selectedFiles": "Ausgewählte Dateien",
|
||||
"selectFiles": "Dateien auswählen",
|
||||
"loading": "Laden...",
|
||||
"noFilesSelected": "Keine Dateien oder Ordner ausgewählt",
|
||||
"folders": "Ordner",
|
||||
"files": "Dateien",
|
||||
"remove": "Entfernen",
|
||||
"folderAlt": "Ordner",
|
||||
"fileAlt": "Datei"
|
||||
}
|
||||
}
|
||||
},
|
||||
"createAPIKey": {
|
||||
"label": "Neuen API-Schlüssel erstellen",
|
||||
"apiKeyName": "API-Schlüssel-Name",
|
||||
"chunks": "Chunks pro Anfrage",
|
||||
"prompt": "Aktiven Prompt auswählen",
|
||||
"sourceDoc": "Quelldokument",
|
||||
"create": "Erstellen"
|
||||
},
|
||||
"saveKey": {
|
||||
"note": "Bitte speichere deinen Schlüssel",
|
||||
"disclaimer": "Dies ist das einzige Mal, dass dein Schlüssel angezeigt wird.",
|
||||
"copy": "Kopieren",
|
||||
"copied": "Kopiert",
|
||||
"confirm": "Ich habe den Schlüssel gespeichert",
|
||||
"apiKeyLabel": "API-Schlüssel"
|
||||
},
|
||||
"deleteConv": {
|
||||
"confirm": "Bist du sicher, dass du alle Konversationen löschen möchtest?",
|
||||
"delete": "Löschen"
|
||||
},
|
||||
"shareConv": {
|
||||
"label": "Öffentliche Seite zum Teilen erstellen",
|
||||
"note": "Quelldokument, persönliche Informationen und weitere Konversationen bleiben privat",
|
||||
"create": "Erstellen",
|
||||
"option": "Benutzern weitere Eingaben erlauben"
|
||||
},
|
||||
"configTool": {
|
||||
"title": "Werkzeug-Konfiguration",
|
||||
"type": "Typ",
|
||||
"apiKeyLabel": "API-Schlüssel / OAuth",
|
||||
"apiKeyPlaceholder": "API-Schlüssel / OAuth eingeben",
|
||||
"addButton": "Werkzeug hinzufügen",
|
||||
"closeButton": "Schließen",
|
||||
"customNamePlaceholder": "Benutzerdefinierten Namen eingeben (optional)"
|
||||
},
|
||||
"prompts": {
|
||||
"addPrompt": "Prompt hinzufügen",
|
||||
"addDescription": "Füge deinen benutzerdefinierten Prompt hinzu und speichere ihn in DocsGPT",
|
||||
"editPrompt": "Prompt bearbeiten",
|
||||
"editDescription": "Bearbeite deinen benutzerdefinierten Prompt und speichere ihn in DocsGPT",
|
||||
"promptName": "Prompt-Name",
|
||||
"promptText": "Prompt-Text",
|
||||
"save": "Speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"nameExists": "Name existiert bereits",
|
||||
"deleteConfirmation": "Bist du sicher, dass du den Prompt '{{name}}' löschen möchtest?",
|
||||
"placeholderText": "Gib hier deinen Prompt-Text ein...",
|
||||
"addExamplePlaceholder": "Bitte fasse diesen Text zusammen:",
|
||||
"variablesLabel": "Variablen",
|
||||
"variablesSubtext": "Klicken zum Einfügen in den Prompt",
|
||||
"variablesDescription": "Klicken zum Einfügen in den Prompt",
|
||||
"systemVariables": "Klicken zum Einfügen in den Prompt",
|
||||
"toolVariables": "Werkzeug-Variablen",
|
||||
"systemVariablesDropdownLabel": "System-Variablen",
|
||||
"systemVariableOptions": {
|
||||
"sourceContent": "Quelleninhalte",
|
||||
"sourceSummaries": "Alias für Inhalte (abwärtskompatibel)",
|
||||
"sourceDocuments": "Dokumentenobjekte-Liste",
|
||||
"sourceCount": "Anzahl der abgerufenen Dokumente",
|
||||
"systemDate": "Aktuelles Datum (JJJJ-MM-TT)",
|
||||
"systemTime": "Aktuelle Uhrzeit (HH:MM:SS)",
|
||||
"systemTimestamp": "ISO 8601 Zeitstempel",
|
||||
"systemRequestId": "Eindeutige Anfrage-ID",
|
||||
"systemUserId": "Aktuelle Benutzer-ID"
|
||||
},
|
||||
"learnAboutPrompts": "Mehr über Prompts erfahren →",
|
||||
"publicPromptEditDisabled": "Öffentliche Prompts können nicht bearbeitet werden",
|
||||
"promptTypePublic": "öffentlich",
|
||||
"promptTypePrivate": "privat"
|
||||
},
|
||||
"chunk": {
|
||||
"add": "Chunk hinzufügen",
|
||||
"edit": "Bearbeiten",
|
||||
"title": "Titel",
|
||||
"enterTitle": "Titel eingeben",
|
||||
"bodyText": "Textkörper",
|
||||
"promptText": "Prompt-Text",
|
||||
"save": "Speichern",
|
||||
"close": "Schließen",
|
||||
"cancel": "Abbrechen",
|
||||
"delete": "Löschen",
|
||||
"deleteConfirmation": "Bist du sicher, dass du diesen Chunk löschen möchtest?"
|
||||
},
|
||||
"addAction": {
|
||||
"title": "Neue Aktion",
|
||||
"actionNamePlaceholder": "Aktionsname",
|
||||
"invalidFormat": "Ungültiges Funktionsnamenformat. Verwende nur Buchstaben, Zahlen, Unterstriche und Bindestriche.",
|
||||
"formatHelp": "Verwende nur Buchstaben, Zahlen, Unterstriche und Bindestriche (z.B. `get_data`, `send_report`, etc.)",
|
||||
"addButton": "Hinzufügen"
|
||||
},
|
||||
"agentDetails": {
|
||||
"title": "Zugangsdaten",
|
||||
"publicLink": "Öffentlicher Link",
|
||||
"apiKey": "API-Schlüssel",
|
||||
"webhookUrl": "Webhook-URL",
|
||||
"generate": "Generieren",
|
||||
"test": "Testen",
|
||||
"learnMore": "Mehr erfahren"
|
||||
}
|
||||
},
|
||||
"sharedConv": {
|
||||
"subtitle": "Erstellt mit",
|
||||
"button": "Mit DocsGPT starten",
|
||||
"meta": "DocsGPT verwendet GenAI, bitte überprüfe kritische Informationen anhand der Quellen."
|
||||
},
|
||||
"convTile": {
|
||||
"share": "Teilen",
|
||||
"delete": "Löschen",
|
||||
"rename": "Umbenennen",
|
||||
"deleteWarning": "Bist du sicher, dass du diese Konversation löschen möchtest?"
|
||||
},
|
||||
"pagination": {
|
||||
"rowsPerPage": "Zeilen pro Seite",
|
||||
"pageOf": "Seite {{currentPage}} von {{totalPages}}",
|
||||
"firstPage": "Erste Seite",
|
||||
"previousPage": "Vorherige Seite",
|
||||
"nextPage": "Nächste Seite",
|
||||
"lastPage": "Letzte Seite"
|
||||
},
|
||||
"conversation": {
|
||||
"copy": "Kopieren",
|
||||
"copied": "Kopiert",
|
||||
"speak": "Vorlesen",
|
||||
"answer": "Antwort",
|
||||
"edit": {
|
||||
"update": "Aktualisieren",
|
||||
"cancel": "Abbrechen",
|
||||
"placeholder": "Aktualisierte Anfrage eingeben..."
|
||||
},
|
||||
"sources": {
|
||||
"title": "Quellen",
|
||||
"text": "Wähle deine Quellen",
|
||||
"link": "Quellen-Link",
|
||||
"view_more": "{{count}} weitere Quellen",
|
||||
"noSourcesAvailable": "Keine Quellen verfügbar"
|
||||
},
|
||||
"attachments": {
|
||||
"attach": "Anhängen",
|
||||
"remove": "Anhang entfernen"
|
||||
},
|
||||
"retry": "Erneut versuchen",
|
||||
"reasoning": "Begründung"
|
||||
},
|
||||
"agents": {
|
||||
"title": "Agenten",
|
||||
"description": "Entdecke und erstelle benutzerdefinierte Versionen von DocsGPT, die Anweisungen, zusätzliches Wissen und beliebige Kombinationen von Fähigkeiten kombinieren",
|
||||
"newAgent": "Neuer Agent",
|
||||
"backToAll": "Zurück zu allen Agenten",
|
||||
"sections": {
|
||||
"template": {
|
||||
"title": "Von DocsGPT",
|
||||
"description": "Von DocsGPT bereitgestellte Agenten",
|
||||
"emptyState": "Keine Vorlagen-Agenten gefunden."
|
||||
},
|
||||
"user": {
|
||||
"title": "Von mir",
|
||||
"description": "Von dir erstellte oder veröffentlichte Agenten",
|
||||
"emptyState": "Du hast noch keine Agenten erstellt."
|
||||
},
|
||||
"shared": {
|
||||
"title": "Mit mir geteilt",
|
||||
"description": "Über einen öffentlichen Link importierte Agenten",
|
||||
"emptyState": "Keine geteilten Agenten gefunden."
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"headings": {
|
||||
"new": "Neuer Agent",
|
||||
"edit": "Agent bearbeiten",
|
||||
"draft": "Neuer Agent (Entwurf)"
|
||||
},
|
||||
"buttons": {
|
||||
"publish": "Veröffentlichen",
|
||||
"save": "Speichern",
|
||||
"saveDraft": "Entwurf speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"delete": "Löschen",
|
||||
"logs": "Protokolle",
|
||||
"accessDetails": "Zugangsdaten",
|
||||
"add": "Hinzufügen"
|
||||
},
|
||||
"sections": {
|
||||
"meta": "Meta",
|
||||
"source": "Quelle",
|
||||
"prompt": "Prompt",
|
||||
"tools": "Werkzeuge",
|
||||
"agentType": "Agententyp",
|
||||
"models": "Modelle",
|
||||
"advanced": "Erweitert",
|
||||
"preview": "Vorschau"
|
||||
},
|
||||
"placeholders": {
|
||||
"agentName": "Agentenname",
|
||||
"describeAgent": "Beschreibe deinen Agenten",
|
||||
"selectSources": "Quellen auswählen",
|
||||
"chunksPerQuery": "Chunks pro Anfrage",
|
||||
"selectType": "Typ auswählen",
|
||||
"selectTools": "Werkzeuge auswählen",
|
||||
"selectModels": "Modelle für diesen Agenten auswählen",
|
||||
"selectDefaultModel": "Standardmodell auswählen",
|
||||
"enterTokenLimit": "Token-Limit eingeben",
|
||||
"enterRequestLimit": "Anfrage-Limit eingeben"
|
||||
},
|
||||
"sourcePopup": {
|
||||
"title": "Quellen auswählen",
|
||||
"searchPlaceholder": "Quellen suchen...",
|
||||
"noOptionsMessage": "Keine Quellen verfügbar"
|
||||
},
|
||||
"toolsPopup": {
|
||||
"title": "Werkzeuge auswählen",
|
||||
"searchPlaceholder": "Werkzeuge suchen...",
|
||||
"noOptionsMessage": "Keine Werkzeuge verfügbar"
|
||||
},
|
||||
"modelsPopup": {
|
||||
"title": "Modelle auswählen",
|
||||
"searchPlaceholder": "Modelle suchen...",
|
||||
"noOptionsMessage": "Keine Modelle verfügbar"
|
||||
},
|
||||
"upload": {
|
||||
"clickToUpload": "Klicken zum Hochladen",
|
||||
"dragAndDrop": " oder per Drag & Drop"
|
||||
},
|
||||
"agentTypes": {
|
||||
"classic": "Klassisch",
|
||||
"react": "ReAct"
|
||||
},
|
||||
"labels": {
|
||||
"defaultModel": "Standardmodell"
|
||||
},
|
||||
"advanced": {
|
||||
"jsonSchema": "JSON-Antwortschema",
|
||||
"jsonSchemaDescription": "Definiere ein JSON-Schema, um ein strukturiertes Ausgabeformat zu erzwingen",
|
||||
"validJson": "Gültiges JSON",
|
||||
"invalidJson": "Ungültiges JSON - zur Aktivierung des Speicherns beheben",
|
||||
"tokenLimiting": "Token-Limitierung",
|
||||
"tokenLimitingDescription": "Begrenze die täglich von diesem Agenten verwendbaren Tokens",
|
||||
"requestLimiting": "Anfrage-Limitierung",
|
||||
"requestLimitingDescription": "Begrenze die täglich an diesen Agenten gestellten Anfragen"
|
||||
},
|
||||
"preview": {
|
||||
"publishedPreview": "Veröffentlichte Agenten können hier in der Vorschau angezeigt werden"
|
||||
},
|
||||
"externalKb": "Externe KB"
|
||||
},
|
||||
"logs": {
|
||||
"title": "Agenten-Protokolle",
|
||||
"lastUsedAt": "Zuletzt verwendet am",
|
||||
"noUsageHistory": "Kein Nutzungsverlauf",
|
||||
"tableHeader": "Agenten-Endpunkt-Protokolle"
|
||||
},
|
||||
"shared": {
|
||||
"notFound": "Kein Agent gefunden. Bitte stelle sicher, dass der Agent geteilt ist."
|
||||
},
|
||||
"preview": {
|
||||
"testMessage": "Teste deinen Agenten hier. Veröffentlichte Agenten können in Konversationen verwendet werden."
|
||||
},
|
||||
"deleteConfirmation": "Bist du sicher, dass du diesen Agenten löschen möchtest?"
|
||||
},
|
||||
"components": {
|
||||
"fileUpload": {
|
||||
"clickToUpload": "Klicken zum Hochladen oder per Drag & Drop",
|
||||
"dropFiles": "Dateien hier ablegen",
|
||||
"fileTypes": "PNG, JPG, JPEG bis zu",
|
||||
"sizeLimitUnit": "MB",
|
||||
"fileSizeError": "Datei überschreitet {{size}}MB-Limit"
|
||||
}
|
||||
},
|
||||
"pageNotFound": {
|
||||
"title": "404",
|
||||
"message": "Die gesuchte Seite existiert nicht.",
|
||||
"goHome": "Zur Startseite"
|
||||
},
|
||||
"filePicker": {
|
||||
"searchPlaceholder": "Dateien und Ordner suchen...",
|
||||
"itemsSelected": "{{count}} ausgewählt",
|
||||
"name": "Name",
|
||||
"lastModified": "Zuletzt geändert",
|
||||
"size": "Größe"
|
||||
},
|
||||
"actionButtons": {
|
||||
"openNewChat": "Neuen Chat öffnen",
|
||||
"share": "Teilen"
|
||||
},
|
||||
"mermaid": {
|
||||
"downloadOptions": "Download-Optionen",
|
||||
"viewCode": "Code anzeigen",
|
||||
"decreaseZoom": "Verkleinern",
|
||||
"resetZoom": "Zoom zurücksetzen",
|
||||
"increaseZoom": "Vergrößern"
|
||||
},
|
||||
"navigation": {
|
||||
"agents": "Agenten"
|
||||
},
|
||||
"notification": {
|
||||
"ariaLabel": "Benachrichtigung",
|
||||
"closeAriaLabel": "Benachrichtigung schließen"
|
||||
},
|
||||
"prompts": {
|
||||
"textAriaLabel": "Prompt-Text"
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import jp from './jp.json'; //Japanese
|
||||
import zh from './zh.json'; //Mandarin
|
||||
import zhTW from './zh-TW.json'; //Traditional Chinese
|
||||
import ru from './ru.json'; //Russian
|
||||
import de from './de.json'; //German
|
||||
|
||||
i18n
|
||||
.use(LanguageDetector)
|
||||
@@ -32,6 +33,9 @@ i18n
|
||||
ru: {
|
||||
translation: ru,
|
||||
},
|
||||
de: {
|
||||
translation: de,
|
||||
},
|
||||
},
|
||||
fallbackLng: 'en',
|
||||
detection: {
|
||||
|
||||
@@ -191,7 +191,7 @@ const useToolVariables = () => {
|
||||
}
|
||||
filteredActions.push({
|
||||
label: `${action.name} (${tool.displayName || tool.name})`,
|
||||
value: `tools.${toolIdentifier}.${action.name}`,
|
||||
value: `tools['${toolIdentifier}'].${action.name}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ export default function General() {
|
||||
|
||||
const languageOptions = [
|
||||
{ label: 'English', value: 'en' },
|
||||
{ label: 'Deutsch', value: 'de' },
|
||||
{ label: 'Español', value: 'es' },
|
||||
{ label: '日本語', value: 'jp' },
|
||||
{ label: '普通话', value: 'zh' },
|
||||
|
||||
Reference in New Issue
Block a user