diff --git a/packages/global/common/string/textSplitter.ts b/packages/global/common/string/textSplitter.ts index c59237e30..f76bd2f49 100644 --- a/packages/global/common/string/textSplitter.ts +++ b/packages/global/common/string/textSplitter.ts @@ -91,6 +91,13 @@ ${mdSplitString} }; }; +/* + 1. 自定义分隔符:不需要重叠 + 2. Markdown 标题:不需要重叠;标题嵌套共享。 + 3. 特殊 markdown 语法:不需要重叠 + 4. 段落:尽可能保证它是一个完整的段落。 + 5. 标点分割:重叠 +*/ const commonSplit = (props: SplitProps): SplitResponse => { let { text = '', chunkLen, overlapRatio = 0.2, customReg = [] } = props; diff --git a/packages/service/support/wallet/sub/schema.ts b/packages/service/support/wallet/sub/schema.ts index aa838e25b..25a9c155c 100644 --- a/packages/service/support/wallet/sub/schema.ts +++ b/packages/service/support/wallet/sub/schema.ts @@ -76,6 +76,9 @@ try { SubSchema.index({ teamId: 1, type: 1, expiredTime: -1 }); // timer task. Get standard plan;Get free plan;Clear expired extract plan SubSchema.index({ type: 1, expiredTime: -1, currentSubLevel: 1 }); + + // unique + SubSchema.index({ teamId: 1, type: 1, currentSubLevel: 1 }, { unique: true }); } catch (error) { console.log(error); } diff --git a/packages/web/i18n/en/app.json b/packages/web/i18n/en/app.json index 735555197..86608913c 100644 --- a/packages/web/i18n/en/app.json +++ b/packages/web/i18n/en/app.json @@ -2,21 +2,17 @@ "Run": "Execute", "ai_settings": "AI Configuration", "all_apps": "All Applications", - "app": { - "Version name": "Version Name", - "modules": { - "click to update": "Click to Refresh", - "has new version": "New Version Available" - }, - "version_back": "Revert to Original State", - "version_copy": "Duplicate", - "version_current": "Current Version", - "version_initial": "Initial Version", - "version_initial_copy": "Duplicate - Original State", - "version_name_tips": "Version name cannot be empty", - "version_past": "Previously Published", - "version_publish_tips": "This version will be saved to the team cloud, synchronized with the entire team, and update the app version on all release channels." - }, + "app.Version name": "Version Name", + "app.modules.click to update": "Click to Refresh", + "app.modules.has new version": "New Version Available", + "app.version_back": "Revert to Original State", + "app.version_copy": "Duplicate", + "app.version_current": "Current Version", + "app.version_initial": "Initial Version", + "app.version_initial_copy": "Duplicate - Original State", + "app.version_name_tips": "Version name cannot be empty", + "app.version_past": "Previously Published", + "app.version_publish_tips": "This version will be saved to the team cloud, synchronized with the entire team, and update the app version on all release channels.", "app_detail": "Application Details", "chat_debug": "Chat Preview", "chat_logs": "Conversation Logs", @@ -30,12 +26,10 @@ "create_empty_app": "Create Default App", "create_empty_plugin": "Create Default Plugin", "create_empty_workflow": "Create Default Workflow", - "cron": { - "every_day": "Run Daily", - "every_month": "Run Monthly", - "every_week": "Run Weekly", - "interval": "Run at Intervals" - }, + "cron.every_day": "Run Daily", + "cron.every_month": "Run Monthly", + "cron.every_week": "Run Weekly", + "cron.interval": "Run at Intervals", "current_settings": "Current Configuration", "day": "Day", "document_quote": "Document Reference", @@ -57,14 +51,12 @@ "import_configs": "Import Configurations", "import_configs_failed": "Import configuration failed, please ensure the configuration is correct!", "import_configs_success": "Import Successful", - "interval": { - "12_hours": "Every 12 Hours", - "2_hours": "Every 2 Hours", - "3_hours": "Every 3 Hours", - "4_hours": "Every 4 Hours", - "6_hours": "Every 6 Hours", - "per_hour": "Every Hour" - }, + "interval.12_hours": "Every 12 Hours", + "interval.2_hours": "Every 2 Hours", + "interval.3_hours": "Every 3 Hours", + "interval.4_hours": "Every 4 Hours", + "interval.6_hours": "Every 6 Hours", + "interval.per_hour": "Every Hour", "intro": "A comprehensive model application orchestration system that offers out-of-the-box data processing and model invocation capabilities. It allows for rapid Dataset construction and workflow orchestration through Flow visualization, enabling complex Dataset scenarios!", "llm_not_support_vision": "This model does not support image recognition", "llm_use_vision": "Enable Image Recognition", @@ -73,29 +65,19 @@ "logs_message_total": "Total Messages", "logs_title": "Title", "mark_count": "Number of Marked Answers", - "module": { - "Confirm Sync": "Will update to the latest template configuration. Fields not in the template will be deleted (including all custom fields). It is recommended to copy a node first, then update the original node version.", - "Custom Title Tip": "This title will be displayed during the conversation.", - "No Modules": "No Plugins Found", - "type": "\"{{type}}\" type\n{{description}}" - }, - "modules": { - "Title is required": "Module name cannot be empty" - }, - "month": { - "unit": "Day" - }, + "module.Confirm Sync": "Will update to the latest template configuration. Fields not in the template will be deleted (including all custom fields). It is recommended to copy a node first, then update the original node version.", + "module.Custom Title Tip": "This title will be displayed during the conversation.", + "module.No Modules": "No Plugins Found", + "module.type": "\"{{type}}\" type\n{{description}}", + "modules.Title is required": "Module name cannot be empty", + "month.unit": "Day", "move_app": "Move Application", "not_json_file": "Please select a JSON file", "or_drag_JSON": "or drag in JSON file", "paste_config": "Paste Configuration", - "permission": { - "des": { - "manage": "Based on write permissions, you can configure publishing channels, view conversation logs, and assign permissions to the application.", - "read": "Use the app to have conversations", - "write": "Can view and edit apps" - } - }, + "permission.des.manage": "Based on write permissions, you can configure publishing channels, view conversation logs, and assign permissions to the application.", + "permission.des.read": "Use the app to have conversations", + "permission.des.write": "Can view and edit apps", "plugin_cost_per_times": "{{cost}}/time", "plugin_dispatch": "Plugin Invocation", "plugin_dispatch_tip": "Adds extra capabilities to the model. The specific plugins to be invoked will be autonomously decided by the model.\nIf a plugin is selected, the Dataset invocation will automatically be treated as a special plugin.", @@ -105,32 +87,25 @@ "search_app": "Search Application", "setting_app": "Application Settings", "setting_plugin": "Plugin Settings", - "template": { - "simple_robot": "Simple Robot" - }, + "template.simple_robot": "Simple robot", "template.hard_strict": "Strict Q&A template", "template.hard_strict_des": "Based on the question and answer template, stricter requirements are imposed on the model's answers.", "template.qa_template": "Q&A template", "template.qa_template_des": "A knowledge base suitable for QA question and answer structure, which allows AI to answer strictly according to preset content", - "template.simple_robot": "Simple robot", "template.standard_strict": "Standard strict template", "template.standard_strict_des": "Based on the standard template, stricter requirements are imposed on the model's answers.", "template.standard_template": "Standard template", "template.standard_template_des": "Standard prompt words for knowledge bases with unfixed structures.", - "templateMarket": { - "Search_template": "Search Template", - "Template_market": "Template Market", - "Use": "Use", - "no_intro": "No introduction yet~", - "templateTags": { - "Image_generation": "Image Generation", - "Office_services": "Office Services", - "Recommendation": "Recommendation", - "Roleplay": "Roleplay", - "Web_search": "Web Search", - "Writing": "Writing" - } - }, + "templateMarket.Search_template": "Search Template", + "templateMarket.Template_market": "Template Market", + "templateMarket.Use": "Use", + "templateMarket.no_intro": "No introduction yet~", + "templateMarket.templateTags.Image_generation": "Image Generation", + "templateMarket.templateTags.Office_services": "Office Services", + "templateMarket.templateTags.Recommendation": "Recommendation", + "templateMarket.templateTags.Roleplay": "Roleplay", + "templateMarket.templateTags.Web_search": "Web Search", + "templateMarket.templateTags.Writing": "Writing", "template_market": "Template Market", "template_market_description": "Explore more features in the template market, with configuration tutorials and usage guides to help you understand and get started with various applications.", "template_market_empty_data": "No suitable templates found", @@ -139,56 +114,44 @@ "transition_to_workflow": "Convert to Workflow", "transition_to_workflow_create_new_placeholder": "Create a new app instead of modifying the current app", "transition_to_workflow_create_new_tip": "Once converted to a workflow, it cannot be reverted to simple mode. Please confirm!", - "type": { - "All": "All", - "Create http plugin tip": "Batch create plugins through OpenAPI Schema, compatible with GPTs format.", - "Create one plugin tip": "Customizable input and output workflows, usually used to encapsulate reusable workflows.", - "Create plugin bot": "Create Plugin", - "Create simple bot": "Create Simple App", - "Create simple bot tip": "Create a simple AI app by filling out a form, suitable for beginners.", - "Create workflow bot": "Create Workflow", - "Create workflow tip": "Build complex multi-turn dialogue AI applications through low-code methods, recommended for advanced users.", - "Http plugin": "HTTP Plugin", - "Plugin": "Plugin", - "Simple bot": "Simple App", - "Workflow bot": "Workflow" - }, + "type.All": "All", + "type.Create http plugin tip": "Batch create plugins through OpenAPI Schema, compatible with GPTs format.", + "type.Create one plugin tip": "Customizable input and output workflows, usually used to encapsulate reusable workflows.", + "type.Create plugin bot": "Create Plugin", + "type.Create simple bot": "Create Simple App", + "type.Create simple bot tip": "Create a simple AI app by filling out a form, suitable for beginners.", + "type.Create workflow bot": "Create Workflow", + "type.Create workflow tip": "Build complex multi-turn dialogue AI applications through low-code methods, recommended for advanced users.", + "type.Http plugin": "HTTP Plugin", + "type.Plugin": "Plugin", + "type.Simple bot": "Simple App", + "type.Workflow bot": "Workflow", "upload_file_max_amount": "Maximum File Quantity", "upload_file_max_amount_tip": "1. The maximum number of files that can be uploaded at one time.\n2. The maximum number of files remembered by the chat window: each round of dialogue will automatically retrieve files from history, files beyond the range will be forgotten.", - "variable": { - "select type_desc": "A global variable that does not require user input can be defined.\nThe value of this variable can come from an API interface, a query in a shared link, or be assigned through the [Variable Update] module.", - "textarea_type_desc": "Allows users to input up to 4000 characters in the dialogue box." - }, - "version": { - "Revert success": "Revert Successful" - }, + "variable.select type_desc": "You can define a global variable that does not need to be filled in by the user.\n\nThe value of this variable can come from the API interface, the Query of the shared link, or assigned through the [Variable Update] module.", + "variable.textarea_type_desc": "Allows users to input up to 4000 characters in the dialogue box.", + "version.Revert success": "Revert Successful", "vision_model_title": "Enable Image Recognition", - "week": { - "Friday": "Friday", - "Monday": "Monday", - "Saturday": "Saturday", - "Sunday": "Sunday", - "Thursday": "Thursday", - "Tuesday": "Tuesday", - "Wednesday": "Wednesday" - }, - "workflow": { - "Input guide": "Input Guide", - "file_url": "Document Link", - "read_files": "Document Parsing", - "read_files_result": "Document Parsing Result", - "read_files_result_desc": "Original document text, consisting of file names and document content, separated by hyphens between multiple files.", - "read_files_tip": "Parse all uploaded documents in the dialogue and return the corresponding document content.", - "select_description": "Description Text", - "select_description_placeholder": "For example: \nAre there tomatoes in the fridge?", - "select_description_tip": "You can add a description text to explain the meaning of each option to the user.", - "select_result": "Selected Result", - "template": { - "communication": "Communication" - }, - "user_file_input": "File Link", - "user_file_input_desc": "Links to documents and images uploaded by users.", - "user_select": "User Selection", - "user_select_tip": "This module can configure multiple options for selection during the dialogue. Different options can lead to different workflow branches." - } + "week.Friday": "Friday", + "week.Monday": "Monday", + "week.Saturday": "Saturday", + "week.Sunday": "Sunday", + "week.Thursday": "Thursday", + "week.Tuesday": "Tuesday", + "week.Wednesday": "Wednesday", + "workflow.Input guide": "Input Guide", + "workflow.file_url": "Document Link", + "workflow.read_files": "Document Parsing", + "workflow.read_files_result": "Document Parsing Result", + "workflow.read_files_result_desc": "Original document text, consisting of file names and document content, separated by hyphens between multiple files.", + "workflow.read_files_tip": "Parse all uploaded documents in the dialogue and return the corresponding document content.", + "workflow.select_description": "Description Text", + "workflow.select_description_placeholder": "For example: \nAre there tomatoes in the fridge?", + "workflow.select_description_tip": "You can add a description text to explain the meaning of each option to the user.", + "workflow.select_result": "Selected Result", + "workflow.template.communication": "Communication", + "workflow.user_file_input": "File Link", + "workflow.user_file_input_desc": "Links to documents and images uploaded by users.", + "workflow.user_select": "User Selection", + "workflow.user_select_tip": "This module can configure multiple options for selection during the dialogue. Different options can lead to different workflow branches." } \ No newline at end of file diff --git a/packages/web/i18n/en/chat.json b/packages/web/i18n/en/chat.json index cb27f805d..6c5c7c5e7 100644 --- a/packages/web/i18n/en/chat.json +++ b/packages/web/i18n/en/chat.json @@ -31,9 +31,7 @@ "no_workflow_response": "No workflow data", "plugins_output": "Plugin Output", "question_tip": "From top to bottom, the response order of each module", - "response": { - "node_inputs": "Node Inputs" - }, + "response.node_inputs": "Node Inputs", "select": "Select", "select_file": "Upload File", "select_file_img": "Upload file / image", diff --git a/packages/web/i18n/en/common.json b/packages/web/i18n/en/common.json index cf1a3fdac..f70d57739 100644 --- a/packages/web/i18n/en/common.json +++ b/packages/web/i18n/en/common.json @@ -1,24 +1,22 @@ { "App": "Application", "Export": "Export", - "FAQ": { - "ai_point_a": "Each time you use the AI model, a certain amount of AI points will be deducted. For detailed calculation standards, please refer to the 'AI Points Calculation Standards' above.\nToken calculation uses the same formula as GPT-3.5, where 1 Token ≈ 0.7 Chinese characters ≈ 0.9 English words. Consecutive characters may be considered as 1 Token.", - "ai_point_expire_a": "Yes, they will expire. After the current package expires, the AI points will be reset to the new package's AI points. Annual package AI points are valid for one year, not monthly.", - "ai_point_expire_q": "Do AI points expire?", - "ai_point_q": "What are AI points?", - "check_subscription_a": "Go to Account - Personal Information - Package Details - Usage. You can view the effective and expiration dates of your subscribed packages. After the paid package expires, it will automatically switch to the free version.", - "check_subscription_q": "Where can I view my subscribed packages?", - "dataset_compute_a": "1 Dataset storage equals 1 Dataset index. A piece of Dataset data can contain one or more Dataset indexes. In enhanced training, 1 piece of data generates 5 indexes.", - "dataset_compute_q": "How is Dataset storage calculated?", - "dataset_index_a": "No, but if the Dataset index exceeds the limit, you cannot insert or update Dataset content.", - "dataset_index_q": "Will the Dataset index be deleted if it exceeds the limit?", - "free_user_clean_a": "If a free team (free version and has not purchased additional packages) does not log in to the system for 30 consecutive days, the system will automatically clear all Dataset content under that team.", - "free_user_clean_q": "Will the data of the free version be cleared?", - "package_overlay_a": "Yes, each purchased resource pack is independent and will be used in an overlapping manner within its validity period. AI points will be deducted from the resource pack that expires first.", - "package_overlay_q": "Can additional resource packs be stacked?", - "switch_package_a": "The package usage rule is to prioritize the use of higher-level packages. Therefore, if the newly purchased package is higher than the current package, the new package will take effect immediately; otherwise, the current package will continue to be used.", - "switch_package_q": "Will the subscription package be switched?" - }, + "FAQ.ai_point_a": "Each time you use the AI model, a certain amount of AI points will be deducted. For detailed calculation standards, please refer to the 'AI Points Calculation Standards' above.\nToken calculation uses the same formula as GPT-3.5, where 1 Token ≈ 0.7 Chinese characters ≈ 0.9 English words. Consecutive characters may be considered as 1 Token.", + "FAQ.ai_point_expire_a": "Yes, they will expire. After the current package expires, the AI points will be reset to the new package's AI points. Annual package AI points are valid for one year, not monthly.", + "FAQ.ai_point_expire_q": "Do AI points expire?", + "FAQ.ai_point_q": "What are AI points?", + "FAQ.check_subscription_a": "Go to Account - Personal Information - Package Details - Usage. You can view the effective and expiration dates of your subscribed packages. After the paid package expires, it will automatically switch to the free version.", + "FAQ.check_subscription_q": "Where can I view my subscribed packages?", + "FAQ.dataset_compute_a": "1 Dataset storage equals 1 Dataset index. A piece of Dataset data can contain one or more Dataset indexes. In enhanced training, 1 piece of data generates 5 indexes.", + "FAQ.dataset_compute_q": "How is Dataset storage calculated?", + "FAQ.dataset_index_a": "No, but if the Dataset index exceeds the limit, you cannot insert or update Dataset content.", + "FAQ.dataset_index_q": "Will the Dataset index be deleted if it exceeds the limit?", + "FAQ.free_user_clean_a": "If a free team (free version and has not purchased additional packages) does not log in to the system for 30 consecutive days, the system will automatically clear all Dataset content under that team.", + "FAQ.free_user_clean_q": "Will the data of the free version be cleared?", + "FAQ.package_overlay_a": "Yes, each purchased resource pack is independent and will be used in an overlapping manner within its validity period. AI points will be deducted from the resource pack that expires first.", + "FAQ.package_overlay_q": "Can additional resource packs be stacked?", + "FAQ.switch_package_a": "The package usage rule is to prioritize the use of higher-level packages. Therefore, if the newly purchased package is higher than the current package, the new package will take effect immediately; otherwise, the current package will continue to be used.", + "FAQ.switch_package_q": "Will the subscription package be switched?", "Folder": "Folder", "Login": "Login", "Move": "Move", @@ -35,1026 +33,819 @@ "classification": "Classification", "click_to_resume": "Click to Resume", "code_editor": "Code Editor", - "code_error": { - "app_error": { - "invalid_app_type": "Invalid Application Type", - "invalid_owner": "Unauthorized Application Owner", - "not_exist": "Application Does Not Exist", - "un_auth_app": "Unauthorized to Operate This Application" - }, - "chat_error": { - "un_auth": "Unauthorized to Operate This Chat Record" - }, - "error_code": { - "400": "Request Failed", - "401": "No Access Permission", - "403": "Access Forbidden", - "404": "Request Not Found", - "405": "Request Method Error", - "406": "Request Format Error", - "410": "Resource Deleted", - "422": "Validation Error", - "500": "Server Error", - "502": "Gateway Error", - "503": "Server Overloaded or Under Maintenance", - "504": "Gateway Timeout" - }, - "error_message": { - "403": "Credential Error", - "510": "Insufficient Account Balance", - "511": "Unauthorized to Operate This Model", - "513": "Unauthorized to Read This File", - "514": "Invalid API Key" - }, - "openapi_error": { - "api_key_not_exist": "API Key Does Not Exist", - "exceed_limit": "Up to 10 API Keys", - "un_auth": "Unauthorized to Operate This API Key" - }, - "outlink_error": { - "invalid_link": "Invalid Share Link", - "link_not_exist": "Share Link Does Not Exist", - "un_auth_user": "Identity Verification Failed" - }, - "plugin_error": { - "not_exist": "Plugin Does Not Exist", - "un_auth": "Unauthorized to Operate This Plugin" - }, - "system_error": { - "community_version_num_limit": "Exceeded Open Source Version Limit, Please Upgrade to Commercial Version: https://tryfastgpt.ai" - }, - "team_error": { - "ai_points_not_enough": "Insufficient AI Points", - "app_amount_not_enough": "Application Limit Reached", - "dataset_amount_not_enough": "Dataset Limit Reached", - "dataset_size_not_enough": "Insufficient Dataset Capacity, Please Expand", - "over_size": "error.team.overSize", - "plugin_amount_not_enough": "Plugin Limit Reached", - "re_rank_not_enough": "Unauthorized to Use Re-Rank", - "un_auth": "Unauthorized to Operate This Team", - "website_sync_not_enough": "Unauthorized to Use Website Sync" - }, - "token_error_code": { - "403": "Invalid Login Status, Please Re-login" - }, - "user_error": { - "balance_not_enough": "Insufficient Account Balance", - "bin_visitor": "Identity Verification Failed", - "bin_visitor_guest": "You Are Currently a Guest, Unauthorized to Operate", - "un_auth_user": "User Not Found" - } - }, - "common": { - "Action": "Action", - "Add": "Add", - "Add New": "Add New", - "Add Success": "Added Successfully", - "All": "All", - "Cancel": "Cancel", - "Choose": "Choose", - "Close": "Close", - "Config": "Configuration", - "Confirm": "Confirm", - "Confirm Create": "Confirm Creation", - "Confirm Import": "Confirm Import", - "Confirm Move": "Move Here", - "Confirm Update": "Confirm Update", - "Confirm to leave the page": "Confirm to Leave This Page?", - "Copy": "Copy", - "Copy Successful": "Copied Successfully", - "Copy_failed": "Copy Failed, Please Copy Manually", - "Create Failed": "Creation Failed", - "Create New": "Create New", - "Create Success": "Created Successfully", - "Create Time": "Creation Time", - "Creating": "Creating", - "Custom Title": "Custom Title", - "Delete": "Delete", - "Delete Failed": "Deletion Failed", - "Delete Success": "Deleted Successfully", - "Delete Warning": "Deletion Warning", - "Delete folder": "Delete Folder", - "Detail": "Detail", - "Documents": "Documents", - "Done": "Done", - "Edit": "Edit", - "Exit": "Exit", - "Exit Directly": "Exit Directly", - "Expired Time": "Expiration Time", - "File": "File", - "Finish": "Finish", - "Import": "Import", - "Import failed": "Import Failed", - "Import success": "Imported Successfully", - "Input": "Input", - "Input folder description": "Folder Description", - "Input name": "Enter a Name", - "Intro": "Introduction", - "Last Step": "Previous Step", - "Last use time": "Last Use Time", - "Load Failed": "Load Failed", - "Loading": "Loading...", - "More": "More", - "Move": "Move", - "MultipleRowSelect": { - "No data": "No Data Available" - }, - "Name": "Name", - "Next Step": "Next Step", - "No more data": "No More Data", - "Not open": "Not Open", - "OK": "OK", - "Open": "Open", - "Operation": "Operation", - "Other": "Other", - "Output": "Output", - "Params": "Parameters", - "Password inconsistency": "Passwords Do Not Match", - "Permission": "Permission", - "Please Input Name": "Please Enter a Name", - "Read document": "Read Document", - "Read intro": "Read Introduction", - "Remove": "Remove", - "Rename": "Rename", - "Request Error": "Request Error", - "Require Input": "Required", - "Restart": "Restart", - "Role": "Permission", - "Root folder": "Root Folder", - "Run": "Run", - "Save": "Save", - "Save Failed": "Save Failed", - "Save Success": "Saved Successfully", - "Save_and_exit": "Save and Exit", - "Search": "Search", - "Select File Failed": "File Selection Failed", - "Select template": "Select Template", - "Set Avatar": "Click to Set Avatar", - "Set Name": "Enter a Name", - "Setting": "Setting", - "Status": "Status", - "Submit failed": "Submission Failed", - "Success": "Success", - "Sync success": "Synced Successfully", - "Team": "Team", - "Team Tags Set": "Tags", - "Un used": "Unused", - "UnKnow": "Unknown", - "UnKnow Source": "Unknown Source", - "Unlimited": "Unlimited", - "Update": "Update", - "Update Failed": "Update Failed", - "Update Success": "Updated Successfully", - "Update Successful": "Updated Successfully", - "Username": "Username", - "Waiting": "Waiting", - "Warning": "Warning", - "Website": "Website", - "all_result": "Full Results", - "avatar": { - "Select Avatar": "Click to Select Avatar", - "Select Failed": "Avatar Selection Failed" - }, - "base_config": "Basic Configuration", - "choosable": "Choosable", - "confirm": { - "Common Tip": "Confirm" - }, - "copy_to_clipboard": "Copy to Clipboard", - "course": { - "Read Course": "Read Course" - }, - "empty": { - "Common Tip": "No Data Available" - }, - "error": { - "Select avatar failed": "Avatar Selection Failed", - "unKnow": "An Unexpected Error Occurred" - }, - "export_to_json": "Export to JSON", - "failed": "Failed", - "folder": { - "Drag Tip": "Click to Drag", - "Move Success": "Moved Successfully", - "Move to": "Move to", - "No Folder": "No Subdirectories, Place Here", - "Open folder": "Open Folder", - "Root Path": "Root Directory", - "empty": "No More Items in This Directory", - "open_dataset": "Open Dataset" - }, - "have_done": "Completed", - "input": { - "Repeat Value": "Duplicate Value" - }, - "is_requesting": "Requesting...", - "jsonEditor": { - "Parse error": "Possible JSON Error, Please Check Carefully" - }, - "json_config": "JSON Configuration", - "link": { - "UnValid": "Invalid Link" - }, - "month": "Month", - "name_is_empty": "Name Cannot Be Empty", - "no_intro": "No Introduction Available", - "not_support": "Not Supported", - "page_center": "Page Center", - "redo_tip": "Redo ctrl shift z", - "redo_tip_mac": "Redo ⌘ shift z", - "request_end": "All Loaded", - "request_more": "Click to Load More", - "speech": { - "error tip": "Speech to Text Failed", - "not support": "Your Browser Does Not Support Speech Input" - }, - "submit_success": "Submitted Successfully", - "submitted": "Submitted", - "support": "Support", - "system": { - "Commercial version function": "Please Upgrade to the Commercial Version to Use This Feature: https://tryfastgpt.ai", - "Help Chatbot": "Help Chatbot", - "Use Helper": "Use Helper" - }, - "ui": { - "textarea": { - "Magnifying": "Magnifying" - } - }, - "undo_tip": "Undo ctrl z", - "undo_tip_mac": "Undo ⌘ z ", - "upload_file": "Upload File", - "zoomin_tip": "Zoom Out ctrl -", - "zoomin_tip_mac": "Zoom Out ⌘ -", - "zoomout_tip": "Zoom In ctrl +", - "zoomout_tip_mac": "Zoom In ⌘ +" - }, - "comon": { - "Continue_Adding": "Continue Adding" - }, - "compliance": { - "chat": "The content is generated by third-party AI and cannot be guaranteed to be true and accurate. It is for reference only.", - "compliance.dataset": "Please ensure that your content strictly complies with relevant laws and regulations and avoid containing any illegal or infringing content. \nPlease be careful when uploading materials that may contain sensitive information." - }, + "code_error.app_error.invalid_app_type": "Invalid Application Type", + "code_error.app_error.invalid_owner": "Unauthorized Application Owner", + "code_error.app_error.not_exist": "Application Does Not Exist", + "code_error.app_error.un_auth_app": "Unauthorized to Operate This Application", + "code_error.chat_error.un_auth": "Unauthorized to Operate This Chat Record", + "code_error.error_code.400": "Request Failed", + "code_error.error_code.401": "No Access Permission", + "code_error.error_code.403": "Access Forbidden", + "code_error.error_code.404": "Request Not Found", + "code_error.error_code.405": "Request Method Error", + "code_error.error_code.406": "Request Format Error", + "code_error.error_code.410": "Resource Deleted", + "code_error.error_code.422": "Validation Error", + "code_error.error_code.500": "Server Error", + "code_error.error_code.502": "Gateway Error", + "code_error.error_code.503": "Server Overloaded or Under Maintenance", + "code_error.error_code.504": "Gateway Timeout", + "code_error.error_message.403": "Credential Error", + "code_error.error_message.510": "Insufficient Account Balance", + "code_error.error_message.511": "Unauthorized to Operate This Model", + "code_error.error_message.513": "Unauthorized to Read This File", + "code_error.error_message.514": "Invalid API Key", + "code_error.openapi_error.api_key_not_exist": "API Key Does Not Exist", + "code_error.openapi_error.exceed_limit": "Up to 10 API Keys", + "code_error.openapi_error.un_auth": "Unauthorized to Operate This API Key", + "code_error.outlink_error.invalid_link": "Invalid Share Link", + "code_error.outlink_error.link_not_exist": "Share Link Does Not Exist", + "code_error.outlink_error.un_auth_user": "Identity Verification Failed", + "code_error.plugin_error.not_exist": "Plugin Does Not Exist", + "code_error.plugin_error.un_auth": "Unauthorized to Operate This Plugin", + "code_error.system_error.community_version_num_limit": "Exceeded Open Source Version Limit, Please Upgrade to Commercial Version: https://tryfastgpt.ai", + "code_error.team_error.ai_points_not_enough": "Insufficient AI Points", + "code_error.team_error.app_amount_not_enough": "Application Limit Reached", + "code_error.team_error.dataset_amount_not_enough": "Dataset Limit Reached", + "code_error.team_error.dataset_size_not_enough": "Insufficient Dataset Capacity, Please Expand", + "code_error.team_error.over_size": "error.team.overSize", + "code_error.team_error.plugin_amount_not_enough": "Plugin Limit Reached", + "code_error.team_error.re_rank_not_enough": "Unauthorized to Use Re-Rank", + "code_error.team_error.un_auth": "Unauthorized to Operate This Team", + "code_error.team_error.website_sync_not_enough": "Unauthorized to Use Website Sync", + "code_error.token_error_code.403": "Invalid Login Status, Please Re-login", + "code_error.user_error.balance_not_enough": "Insufficient Account Balance", + "code_error.user_error.bin_visitor": "Identity Verification Failed", + "code_error.user_error.bin_visitor_guest": "You Are Currently a Guest, Unauthorized to Operate", + "code_error.user_error.un_auth_user": "User Not Found", + "common.Action": "Action", + "common.Add": "Add", + "common.Add New": "Add New", + "common.Add Success": "Added Successfully", + "common.All": "All", + "common.Cancel": "Cancel", + "common.Choose": "Choose", + "common.Close": "Close", + "common.Config": "Configuration", + "common.Confirm": "Confirm", + "common.Confirm Create": "Confirm Creation", + "common.Confirm Import": "Confirm Import", + "common.Confirm Move": "Move Here", + "common.Confirm Update": "Confirm Update", + "common.Confirm to leave the page": "Confirm to Leave This Page?", + "common.Copy": "Copy", + "common.Copy Successful": "Copied Successfully", + "common.Copy_failed": "Copy Failed, Please Copy Manually", + "common.Create Failed": "Creation Failed", + "common.Create New": "Create New", + "common.Create Success": "Created Successfully", + "common.Create Time": "Creation Time", + "common.Creating": "Creating", + "common.Custom Title": "Custom Title", + "common.Delete": "Delete", + "common.Delete Failed": "Deletion Failed", + "common.Delete Success": "Deleted Successfully", + "common.Delete Warning": "Deletion Warning", + "common.Delete folder": "Delete Folder", + "common.Detail": "Detail", + "common.Documents": "Documents", + "common.Done": "Done", + "common.Edit": "Edit", + "common.Exit": "Exit", + "common.Exit Directly": "Exit Directly", + "common.Expired Time": "Expiration Time", + "common.File": "File", + "common.Finish": "Finish", + "common.Import": "Import", + "common.Import failed": "Import Failed", + "common.Import success": "Imported Successfully", + "common.Input": "Input", + "common.Input folder description": "Folder Description", + "common.Input name": "Enter a Name", + "common.Intro": "Introduction", + "common.Last Step": "Previous Step", + "common.Last use time": "Last Use Time", + "common.Load Failed": "Load Failed", + "common.Loading": "Loading...", + "common.More": "More", + "common.Move": "Move", + "common.MultipleRowSelect.No data": "No Data Available", + "common.Name": "Name", + "common.Next Step": "Next Step", + "common.No more data": "No More Data", + "common.Not open": "Not Open", + "common.OK": "OK", + "common.Open": "Open", + "common.Operation": "Operation", + "common.Other": "Other", + "common.Output": "Output", + "common.Params": "Parameters", + "common.Password inconsistency": "Passwords Do Not Match", + "common.Permission": "Permission", + "common.Please Input Name": "Please Enter a Name", + "common.Read document": "Read Document", + "common.Read intro": "Read Introduction", + "common.Remove": "Remove", + "common.Rename": "Rename", + "common.Request Error": "Request Error", + "common.Require Input": "Required", + "common.Restart": "Restart", + "common.Role": "Permission", + "common.Root folder": "Root Folder", + "common.Run": "Run", + "common.Save": "Save", + "common.Save Failed": "Save Failed", + "common.Save Success": "Saved Successfully", + "common.Save_and_exit": "Save and Exit", + "common.Search": "Search", + "common.Select File Failed": "File Selection Failed", + "common.Select template": "Select Template", + "common.Set Avatar": "Click to Set Avatar", + "common.Set Name": "Enter a Name", + "common.Setting": "Setting", + "common.Status": "Status", + "common.Submit failed": "Submission Failed", + "common.Success": "Success", + "common.Sync success": "Synced Successfully", + "common.Team": "Team", + "common.Team Tags Set": "Tags", + "common.Un used": "Unused", + "common.UnKnow": "Unknown", + "common.UnKnow Source": "Unknown Source", + "common.Unlimited": "Unlimited", + "common.Update": "Update", + "common.Update Failed": "Update Failed", + "common.Update Success": "Updated Successfully", + "common.Update Successful": "Updated Successfully", + "common.Username": "Username", + "common.Waiting": "Waiting", + "common.Warning": "Warning", + "common.Website": "Website", + "common.all_result": "Full Results", + "common.avatar.Select Avatar": "Click to Select Avatar", + "common.avatar.Select Failed": "Avatar Selection Failed", + "common.base_config": "Basic Configuration", + "common.choosable": "Choosable", + "common.confirm.Common Tip": "Confirm", + "common.copy_to_clipboard": "Copy to Clipboard", + "common.course.Read Course": "Read Course", + "common.empty.Common Tip": "No Data Available", + "common.error.Select avatar failed": "Avatar Selection Failed", + "common.error.unKnow": "An Unexpected Error Occurred", + "common.export_to_json": "Export to JSON", + "common.failed": "Failed", + "common.folder.Drag Tip": "Click to Drag", + "common.folder.Move Success": "Moved Successfully", + "common.folder.Move to": "Move to", + "common.folder.No Folder": "No Subdirectories, Place Here", + "common.folder.Open folder": "Open Folder", + "common.folder.Root Path": "Root Directory", + "common.folder.empty": "No More Items in This Directory", + "common.folder.open_dataset": "Open Dataset", + "common.have_done": "Completed", + "common.input.Repeat Value": "Duplicate Value", + "common.is_requesting": "Requesting...", + "common.jsonEditor.Parse error": "Possible JSON Error, Please Check Carefully", + "common.json_config": "JSON Configuration", + "common.link.UnValid": "Invalid Link", + "common.month": "Month", + "common.name_is_empty": "Name Cannot Be Empty", + "common.no_intro": "No Introduction Available", + "common.not_support": "Not Supported", + "common.page_center": "Page Center", + "common.redo_tip": "Redo ctrl shift z", + "common.redo_tip_mac": "Redo ⌘ shift z", + "common.request_end": "All Loaded", + "common.request_more": "Click to Load More", + "common.speech.error tip": "Speech to Text Failed", + "common.speech.not support": "Your Browser Does Not Support Speech Input", + "common.submit_success": "Submitted Successfully", + "common.submitted": "Submitted", + "common.support": "Support", + "common.system.Commercial version function": "Please Upgrade to the Commercial Version to Use This Feature: https://tryfastgpt.ai", + "common.system.Help Chatbot": "Help Chatbot", + "common.system.Use Helper": "Use Helper", + "common.ui.textarea.Magnifying": "Magnifying", + "common.undo_tip": "Undo ctrl z", + "common.undo_tip_mac": "Undo ⌘ z ", + "common.upload_file": "Upload File", + "common.zoomin_tip": "Zoom Out ctrl -", + "common.zoomin_tip_mac": "Zoom Out ⌘ -", + "common.zoomout_tip": "Zoom In ctrl +", + "common.zoomout_tip_mac": "Zoom In ⌘ +", + "comon.Continue_Adding": "Continue Adding", + "compliance.chat": "The content is generated by third-party AI and cannot be guaranteed to be true and accurate. It is for reference only.", + "compliance.compliance.dataset": "Please ensure that your content strictly complies with relevant laws and regulations and avoid containing any illegal or infringing content. \nPlease be careful when uploading materials that may contain sensitive information.", "confirm_choice": "Confirm Choice", "contribute_app_template": "Contribute Template", - "core": { - "Chat": "Chat", - "Max Token": "Max Token", - "ai": { - "AI settings": "AI Settings", - "Ai point price": "AI Points Consumption", - "Max context": "Max Context", - "Model": "AI Model", - "Not deploy rerank model": "Re-rank Model Not Deployed", - "Prompt": "Prompt", - "Support tool": "Function Call", - "model": { - "Dataset Agent Model": "File Processing Model", - "Vector Model": "Index Model", - "doc_index_and_dialog": "Document Index & Dialog Index" - } - }, - "app": { - "Ai response": "AI Response", - "Api request": "API Request", - "Api request desc": "Integrate into existing systems through API, or WeChat Work, Feishu, etc.", - "App intro": "App Introduction", - "Chat Variable": "Chat Variable", - "Config schedule plan": "Configure Scheduled Execution", - "Config whisper": "Configure Voice Input", - "Interval timer config": "Scheduled Execution Configuration", - "Interval timer run": "Scheduled Execution", - "Interval timer tip": "Can Execute App on Schedule", - "Make a brief introduction of your app": "Give Your AI App an Introduction", - "Max histories": "Number of Chat Histories", - "Max tokens": "Response Limit", - "Name and avatar": "Avatar & Name", - "Publish": "Publish", - "Publish Confirm": "Confirm to Publish App? This Will Immediately Update the App Status on All Publishing Channels.", - "Publish app tip": "After Publishing the App, All Publishing Channels Will Immediately Use This Version", - "Question Guide": "Guess What You Want to Ask", - "Question Guide Tip": "After the conversation ends, 3 guiding questions will be generated.", - "Quote prompt": "Quote Template Prompt", - "Quote templates": "Quote Content Templates", - "Random": "Divergent", - "Search team tags": "Search Tags", - "Select TTS": "Select Voice Playback Mode", - "Select app from template": "Template", - "Select quote template": "Select Quote Prompt Template", - "Set a name for your app": "Set a Name for Your App", - "Setting ai property": "Click to Configure AI Model Properties", - "Share link": "Login-Free Window", - "Share link desc": "Share the link with other users, they can use it directly without logging in", - "Share link desc detail": "You can directly share this model with other users for conversation, they can use it directly without logging in. Note, this feature will consume your account balance, please keep the link safe!", - "TTS": "Voice Playback", - "TTS Tip": "After enabling, you can use the voice playback function after each conversation. Using this feature may incur additional costs.", - "TTS start": "Read Content", - "Team tags": "Team Tags", - "Temperature": "Temperature", - "Tool call": "Tool Call", - "ToolCall": { - "No plugin": "No Available Plugins", - "Parameter setting": "Input Parameters", - "System": "System", - "Team": "Team" - }, - "Welcome Text": "Conversation Opening", - "Whisper": "Voice Input", - "Whisper config": "Voice Input Configuration", - "deterministic": "Deterministic", - "edit": { - "Prompt Editor": "Prompt Editor", - "Query extension background prompt": "Conversation Background Description", - "Query extension background tip": "Describe the scope of the current conversation to help the AI complete and extend the current question. The content you fill in is usually for this assistant." - }, - "edit_content": "Edit App Information", - "error": { - "App name can not be empty": "App Name Cannot Be Empty", - "Get app failed": "Failed to Retrieve App" - }, - "feedback": { - "Custom feedback": "Custom Feedback", - "close custom feedback": "Close Feedback" - }, - "have_saved": "Saved", - "logs": { - "Source And Time": "Source & Time" - }, - "more": "View More", - "no_app": "No Apps Yet, Create One Now!", - "not_saved": "Not Saved", - "outLink": { - "Can Drag": "Icon Can Be Dragged", - "Default open": "Default Open", - "Iframe block title": "Copy the iframe below to add to your website", - "Link block title": "Copy the link below to open in the browser", - "Script Close Icon": "Close Icon", - "Script Open Icon": "Open Icon", - "Script block title": "Add the code below to your website", - "Select Mode": "Start Using", - "Select Using Way": "Select Usage Method", - "Show History": "Show Chat History" - }, - "publish": { - "Fei shu bot": "Feishu", - "Fei shu bot publish": "Publish to Feishu Bot" - }, - "schedule": { - "Default prompt": "Default Question", - "Default prompt placeholder": "Default question when executing the app", - "Every day": "Every day at {{hour}}:00", - "Every month": "Every month on the {{day}} at {{hour}}:00", - "Every week": "Every week on {{day}} at {{hour}}:00", - "Interval": "Every {{interval}} hours", - "Open schedule": "Scheduled Execution" - }, - "setting": "App Information Settings", - "share": { - "Amount limit tip": "Up to 10 groups", - "Create link": "Create New Link", - "Create link tip": "Creation successful. The share address has been copied and can be shared directly.", - "Ip limit title": "IP Rate Limit (people/minute)", - "Is response quote": "Return Quote", - "Not share link": "No Share Link Created", - "Role check": "Identity Verification" - }, - "tip": { - "Add a intro to app": "Give the app an introduction", - "chatNodeSystemPromptTip": "Fixed guide words for the model. By adjusting this content, you can guide the model's chat direction. This content will be fixed at the beginning of the context. You can use / to insert variables.\nIf a Dataset is associated, you can also guide the model when to call the Dataset search by appropriate description. For example:\nYou are an assistant for the movie 'Interstellar'. When users ask about content related to 'Interstellar', please search the Dataset and answer based on the search results.", - "variableTip": "Before the conversation starts, you can ask the user to fill in some content as specific variables for this round of conversation. This module is located after the opening guide.\nVariables can be injected into other modules' string type inputs in the form of {{variable key}}, such as prompts, delimiters, etc.", - "welcomeTextTip": "Before each conversation starts, send an initial content. Supports standard Markdown syntax. Additional tags that can be used:\n[Quick Key]: Users can directly send the question by clicking" - }, - "tool_label": { - "doc": "Documentation", - "github": "GitHub Address", - "price": "Pricing", - "view_doc": "View Documentation" - }, - "tts": { - "Close": "Do Not Use", - "Speech model": "Speech Model", - "Speech speed": "Speech Speed", - "Test Listen": "Test Listen", - "Test Listen Text": "Hello, this is a voice test. If you can hear this sentence, the voice playback function is normal.", - "Web": "Browser Built-in (Free)" - }, - "whisper": { - "Auto send": "Auto Send", - "Auto send tip": "Automatically send after voice input is completed, no need to click the send button manually", - "Auto tts response": "Auto Voice Response", - "Auto tts response tip": "The question sent by voice input will be directly responded to in voice form. Please ensure that the voice playback function is enabled.", - "Close": "Close", - "Not tts tip": "You have not enabled voice playback, this feature cannot be used", - "Open": "Open", - "Switch": "Enable Voice Input" - } - }, - "chat": { - "Admin Mark Content": "Corrected Reply", - "Audio Not Support": "Device Does Not Support Voice Playback", - "Audio Speech Error": "Voice Playback Error", - "Cancel Speak": "Cancel Voice Input", - "Confirm to clear history": "Confirm to Clear Online Chat History for This App? Share and API Call Records Will Not Be Cleared.", - "Confirm to clear share chat history": "Confirm to Delete All Chat Records?", - "Converting to text": "Converting to Text...", - "Custom History Title": "Custom History Title", - "Custom History Title Description": "If set to empty, it will automatically follow the chat record.", - "Exit Chat": "Exit Chat", - "Failed to initialize chat": "Failed to Initialize Chat", - "Feedback Failed": "Feedback Submission Failed", - "Feedback Modal": "Result Feedback", - "Feedback Modal Tip": "Enter the part you are not satisfied with the answer", - "Feedback Submit": "Submit Feedback", - "Feedback Success": "Feedback Successful!", - "Finish Speak": "Voice Input Completed", - "History": "History", - "History Amount": "{{amount}} Records", - "Mark": "Mark Expected Answer", - "Mark Description": "The current marking function is in beta.\n\nAfter clicking to add a mark, you need to select a Dataset to store the marked data. You can quickly mark questions and expected answers through this function to guide the model's next answer.\n\nCurrently, the marking function is the same as other data in the Dataset and is affected by the model, which does not mean that it will 100% meet expectations after marking.\n\nMarking data is only synchronized with the Dataset in one direction. If the Dataset modifies the marked data, the marked data displayed in the log cannot be synchronized.", - "Mark Description Title": "Marking Function Introduction", - "New Chat": "New Chat", - "Pin": "Pin", - "Question Guide": "Guess What You Want to Ask", - "Quote": "Quote", - "Quote Amount": "Dataset Quotes ({{amount}} Records)", - "Read Mark Description": "View Marking Function Introduction", - "Recent use": "Recently Used", - "Record": "Voice Input", - "Restart": "Restart Chat", - "Run test": "Run Preview", - "Select dataset": "Select Dataset", - "Select dataset Desc": "Select a Dataset to store the expected answer", - "Send Message": "Send", - "Speaking": "I'm Listening, Please Speak...", - "Start Chat": "Start Chat", - "Type a message": "Enter a Question, Press [Enter] to Send / Press [Ctrl(Alt/Shift) + Enter] for New Line", - "Unpin": "Unpin", - "You need to a chat app": "You Do Not Have an Available App", - "error": { - "Chat error": "Chat Error", - "Messages empty": "API Content is Empty, Possibly Due to Text Being Too Long", - "Select dataset empty": "You Have Not Selected a Dataset", - "User input empty": "User Question Input is Empty", - "data_error": "Data Retrieval Error" - }, - "feedback": { - "Close User Like": "User Agrees\nClick to Close This Mark", - "Feedback Close": "Close Feedback", - "No Content": "User Did Not Provide Specific Feedback Content", - "Read User dislike": "User Disagrees\nClick to View Content" - }, - "logs": { - "api": "API Call", - "feishu": "Feishu", - "free_login": "No login link", - "official_account": "Official Account", - "online": "Online Use", - "share": "External Link Call", - "team": "Team Space Chat", - "test": "Test", - "wecom": "WeChat Work" - }, - "markdown": { - "Edit Question": "Edit Question", - "Quick Question": "Click to Ask Immediately", - "Send Question": "Send Question" - }, - "quote": { - "Quote Tip": "Only the actual quoted content is displayed here. If the data is updated, it will not be updated in real-time here.", - "Read Quote": "View Quote" - }, - "response": { - "Complete Response": "Complete Response", - "Extension model": "Question Optimization Model", - "Read complete response": "View Details", - "Read complete response tips": "Click to View Detailed Process", - "Tool call tokens": "Tool Call Tokens Consumption", - "context total length": "Total Context Length", - "module cq": "Question Classification List", - "module cq result": "Classification Result", - "module extract description": "Extract Background Description", - "module extract result": "Extraction Result", - "module historyPreview": "History Preview (Only Partial Content Displayed)", - "module http result": "Response Body", - "module if else Result": "Condition Result", - "module limit": "Single Search Limit", - "module maxToken": "Max Response Tokens", - "module model": "Model", - "module name": "Model Name", - "module query": "Question/Search Term", - "module quoteList": "Quote Content", - "module similarity": "Similarity", - "module temperature": "Temperature", - "module time": "Run Time", - "module tokens": "Total Tokens", - "plugin output": "Plugin Output Value", - "search using reRank": "Result Re-Rank", - "text output": "Text Output", - "update_var_result": "Variable Update Result (Displays Multiple Variable Update Results in Order)", - "user_select_result": "User Selection Result", - "loop_input": "Loop Input Array", - "loop_output": "Loop Output Array", - "loop_input_element": "Loop Input Element", - "loop_output_element": "Loop Output Element" - }, - "retry": "Regenerate", - "tts": { - "Stop Speech": "Stop" - } - }, - "common": { - "tip": { - "leave page": "Content has been modified, confirm to leave the page?" - } - }, - "dataset": { - "Choose Dataset": "Associate Dataset", - "Collection": "Dataset", - "Create dataset": "Create a {{name}}", - "Dataset": "Dataset", - "Dataset ID": "Dataset ID", - "Delete Confirm": "Confirm to Delete This Dataset? Data Cannot Be Recovered After Deletion, Please Confirm!", - "Empty Dataset": "Empty Dataset", - "Empty Dataset Tips": "No Dataset Yet, Create One Now!", - "Folder placeholder": "This is a Directory", - "Go Dataset": "Go to Dataset", - "Intro Placeholder": "This Dataset Has No Introduction Yet", - "Manual collection": "Manual Dataset", - "My Dataset": "My Dataset", - "Query extension intro": "Enabling the question optimization function can improve the accuracy of Dataset searches during continuous conversations. After enabling this function, when performing Dataset searches, the AI will complete the missing information of the question based on the conversation history.", - "Quote Length": "Quote Content Length", - "Read Dataset": "View Dataset Details", - "Set Website Config": "Start Configuring Website Information", - "Start export": "Export Started", - "Table collection": "Table Dataset", - "Text collection": "Text Dataset", - "collection": { - "Click top config website": "Click to Configure Website", - "Collection name": "Dataset Name", - "Collection raw text": "Dataset Content", - "Empty Tip": "The Dataset is Empty", - "QA Prompt": "QA Split Prompt", - "Start Sync Tip": "Confirm to Start Syncing Data? Old Data Will Be Deleted and Re-fetched, Please Confirm!", - "Sync": "Sync Data", - "Sync Collection": "Data Sync", - "Website Empty Tip": "No Website Associated Yet", - "Website Link": "Website Address", - "id": "Collection ID", - "metadata": { - "Chunk Size": "Chunk Size", - "Createtime": "Creation Time", - "Raw text length": "Raw Text Length", - "Training Type": "Training Mode", - "Updatetime": "Update Time", - "Web page selector": "Web Page Selector", - "metadata": "Metadata", - "read source": "View Original Content", - "source": "Data Source", - "source name": "Source Name", - "source size": "Source Size" - }, - "status": { - "active": "Ready" - }, - "sync": { - "result": { - "sameRaw": "Content Unchanged, No Update Needed", - "success": "Sync Started" - } - }, - "training": {} - }, - "data": { - "Auxiliary Data": "Auxiliary Data", - "Auxiliary Data Placeholder": "This part is optional and is usually used to construct structured prompts in conjunction with the 'Data Content' above for special scenarios, up to {{maxToken}} characters.", - "Auxiliary Data Tip": "This part is optional\nThis content is usually used to construct structured prompts in conjunction with the data content above for special scenarios", - "Data Content": "Related Data Content", - "Data Content Placeholder": "This input box is required. This content is usually a description of the knowledge point or a user's question, up to {{maxToken}} characters.", - "Data Content Tip": "This input box is required\nThis content is usually a description of the knowledge point or a user's question.", - "Default Index Tip": "Cannot be edited. The default index will use the text of 'Related Data Content' and 'Auxiliary Data' to generate the index directly.", - "Edit": "Edit Data", - "Empty Tip": "This collection has no data yet", - "Main Content": "Main Content", - "Search data placeholder": "Search Related Data", - "Too Long": "Total Length Exceeded", - "Total Amount": "{{total}} Groups", - "group": "Group", - "unit": "Items" - }, - "embedding model tip": "The index model can convert natural language into vectors for semantic search.\nNote that different index models cannot be used together. Once an index model is selected, it cannot be changed.", - "error": { - "Data not found": "Data Not Found or Deleted", - "Start Sync Failed": "Failed to Start Sync", - "invalidVectorModelOrQAModel": "Invalid Vector Model or QA Model", - "unAuthDataset": "Unauthorized to Operate This Dataset", - "unAuthDatasetCollection": "Unauthorized to Operate This Dataset", - "unAuthDatasetData": "Unauthorized to Operate This Data", - "unAuthDatasetFile": "Unauthorized to Operate This File", - "unCreateCollection": "Unauthorized to Operate This Data", - "unLinkCollection": "Not a Web Link Collection" - }, - "externalFile": "External File Library", - "file": "File", - "folder": "Directory", - "import": { - "Auto mode Estimated Price Tips": "Requires calling the file processing model, which consumes a lot of tokens: {{price}} points/1K tokens", - "Auto process": "Automatic", - "Auto process desc": "Automatically set segmentation and preprocessing rules", - "Chunk Range": "Range: {{min}}~{{max}}", - "Chunk Split": "Direct Segmentation", - "Chunk Split Tip": "Segment the text according to certain rules and convert it into a format that can be semantically searched. Suitable for most scenarios. No additional model processing is required, and the cost is low.", - "Custom process": "Custom Rules", - "Custom process desc": "Customize segmentation and preprocessing rules", - "Custom prompt": "Custom Prompt", - "Custom split char": "Custom Separator", - "Custom split char Tips": "Allows you to segment based on custom separators. Usually used for pre-processed data, using specific separators for precise segmentation.", - "Custom text": "Custom Text", - "Custom text desc": "Manually enter a piece of text as a dataset", - "Data Preprocessing": "Data Processing", - "Data process params": "Data Processing Parameters", - "Down load csv template": "Click to Download CSV Template", - "Embedding Estimated Price Tips": "Only use the index model, consuming a small amount of AI points: {{price}} points/1K tokens", - "Ideal chunk length": "Ideal Chunk Length", - "Ideal chunk length Tips": "Segment according to ending symbols and combine multiple segments into one chunk. This value determines the estimated size of the chunk.", - "Import success": "Import Successful, Please Wait for Training", - "Link name": "Web Link", - "Link name placeholder": "Only supports static links. If the data is empty after uploading, the link may not be readable\nEach line one, up to 10 links at a time", - "Local file": "Local File", - "Local file desc": "Upload files in PDF, TXT, DOCX, etc. formats", - "Preview chunks": "Preview Segments (up to 5 segments)", - "Preview raw text": "Preview Raw Text (up to 3000 characters)", - "Process way": "Processing Method", - "QA Estimated Price Tips": "Requires calling the file processing model, which consumes a lot of AI points: {{price}} points/1K tokens", - "QA Import": "QA Split", - "QA Import Tip": "According to certain rules, split the text into larger paragraphs and call AI to generate Q&A pairs for the paragraph. It has very high retrieval accuracy but may lose a lot of content details.", - "Select file": "Select File", - "Select source": "Select Source", - "Source name": "Source Name", - "Sources list": "Source List", - "Start upload": "Start Upload", - "Total files": "Total {{total}} Files", - "Training mode": "Training Mode", - "Upload data": "Upload Data", - "Upload file progress": "File Upload Progress", - "Upload status": "Status", - "Web link": "Web Link", - "Web link desc": "Read static web page content as a dataset" - }, - "link": "Link", - "search": { - "Dataset Search Params": "Dataset Search Configuration", - "Empty result response": "Empty Search Response", - "Filter": "Search Filter", - "Max Tokens": "Quote Limit", - "Max Tokens Tips": "The maximum number of tokens for a single search. About 1 Chinese character = 1.7 tokens, 1 English word = 1 token", - "Min Similarity": "Minimum Similarity", - "Min Similarity Tips": "The similarity of different index models varies. Please choose an appropriate value through search testing. When using Re-rank, the similarity may be very low.", - "No support similarity": "Only supported when using result re-rank or semantic search", - "Nonsupport": "Not Supported", - "Params Setting": "Search Parameter Settings", - "Quote index": "Quote Index", - "ReRank": "Result Re-rank", - "ReRank desc": "Use the re-rank model for secondary sorting to enhance the comprehensive ranking.", - "Source id": "Source ID", - "Source name": "Quote Source Name", - "Using query extension": "Use Question Optimization", - "mode": { - "embedding": "Semantic Search", - "embedding desc": "Use vectors for text relevance queries", - "fullTextRecall": "Full Text Search", - "fullTextRecall desc": "Use traditional full-text search, suitable for finding some keywords and subject-predicate special data", - "mixedRecall": "Mixed Search", - "mixedRecall desc": "Use a combination of vector search and full-text search results, sorted using the RRF algorithm." - }, - "score": { - "embedding": "Semantic Search", - "embedding desc": "Get scores by calculating the distance between vectors, ranging from 0 to 1.", - "fullText": "Full Text Search", - "fullText desc": "Calculate the score of the same keywords, ranging from 0 to infinity.", - "reRank": "Result Re-rank", - "reRank desc": "Calculate the relevance between sentences using the re-rank model, ranging from 0 to 1.", - "rrf": "Comprehensive Ranking", - "rrf desc": "Merge multiple search results using the reciprocal rank fusion method." - }, - "search mode": "Search Mode" - }, - "status": { - "active": "Ready", - "syncing": "Syncing" - }, - "test": { - "Batch test": "Batch Test", - "Batch test Placeholder": "Select a CSV File", - "Search Test": "Search Test", - "Test": "Test", - "Test Result": "Test Result", - "Test Text": "Single Text Test", - "Test Text Placeholder": "Enter the text to be tested", - "Test params": "Test Parameters", - "delete test history": "Delete This Test Result", - "test history": "Test History", - "test result placeholder": "Test results will be displayed here", - "test result tip": "Sort based on the similarity between the Dataset content and the test text. You can adjust the corresponding text based on the test results.\nNote: The data in the test records may have been modified. Clicking on a test data will display the latest data." - }, - "training": { - "Agent queue": "QA Training Queue", - "Auto mode": "Enhanced Processing (Experimental)", - "Auto mode Tip": "Increase the semantic richness of data blocks by generating related questions and summaries through sub-indexes and calling models, making it more conducive to retrieval. Requires more storage space and increases AI call times.", - "Chunk mode": "Direct Segmentation", - "Full": "Estimated Over 5 Minutes", - "Leisure": "Idle", - "QA mode": "QA Split", - "Vector queue": "Index Queue", - "Waiting": "Estimated 5 Minutes", - "Website Sync": "Website Sync", - "tag": "Queue Status" - }, - "website": { - "Base Url": "Base URL", - "Config": "Website Configuration", - "Config Description": "The website sync function allows you to fill in the root address of a website. The system will automatically crawl related web pages for Dataset training. Only static websites will be crawled, mainly project documentation and blogs.", - "Confirm Create Tips": "Confirm to sync this site. The sync task will start shortly. Please confirm!", - "Confirm Update Tips": "Confirm to update the site configuration? The sync will start immediately according to the new configuration. Please confirm!", - "Selector": "Selector", - "Selector Course": "Usage Tutorial", - "Start Sync": "Start Sync", - "UnValid Website Tip": "Your site may not be a static site and cannot be synced" - } - }, - "module": { - "Add question type": "Add Question Type", - "Add_option": "Add Option", - "Can not connect self": "Cannot Connect to Itself", - "Data Type": "Data Type", - "Dataset quote": { - "label": "Dataset Quote", - "select": "Select Dataset Quote" - }, - "Default Value": "Default Value", - "Default value": "Default Value", - "Default value placeholder": "Leave blank to return an empty string by default", - "Diagram": "Diagram", - "Edit intro": "Edit Description", - "Field Description": "Field Description", - "Field Name": "Field Name", - "Http request props": "Request Parameters", - "Http request settings": "Request Configuration", - "Http timeout": "Timeout Duration", - "Input Type": "Input Type", - "Laf sync params": "Sync Parameters", - "Max Length": "Max Length", - "Max Length placeholder": "Maximum length of input text", - "Max Value": "Max Value", - "Min Value": "Min Value", - "QueryExtension": { - "placeholder": "For example:\nQuestions about the introduction and use of Python.\nThe current conversation is related to the game 'GTA5'." - }, - "Select app": "Select App", - "Setting quote prompt": "Configure Quote Prompt", - "Variable": "Global Variable", - "Variable Setting": "Variable Setting", - "edit": { - "Field Name Cannot Be Empty": "Field Name Cannot Be Empty" - }, - "extract": { - "Add field": "Add Field", - "Enum Description": "List the possible values of this field, one per line", - "Enum Value": "Enum Value", - "Field Description Placeholder": "Name/Age/SQL Statement...", - "Field Setting Title": "Extract Field Configuration", - "Required": "Must Return", - "Required Description": "Even if the field cannot be extracted, it will be returned using the default value", - "Target field": "Target Field" - }, - "http": { - "Add props": "Add Parameter", - "AppId": "App ID", - "ChatId": "Current Chat ID", - "Current time": "Current Time", - "Histories": "History Records", - "Key already exists": "Key Already Exists", - "Key cannot be empty": "Parameter Name Cannot Be Empty", - "Props name": "Parameter Name", - "Props tip": "You can set related parameters for the HTTP request\nYou can call global variables or external parameter inputs through {{key}}, currently available variables:\n{{variable}}", - "Props value": "Parameter Value", - "ResponseChatItemId": "AI Response ID", - "Url and params have been split": "Path parameters have been automatically added to Params", - "curl import": "cURL Import", - "curl import placeholder": "Please enter the cURL format content, the request information of the first interface will be extracted." - }, - "input": { - "Add Branch": "Add Branch", - "add": "Add Condition", - "description": { - "Background": "You can add some specific content introductions to better identify the type of user questions. This content is usually to introduce something the model does not know.", - "HTTP Dynamic Input": "Receive the output value of the previous node as a variable, which can be used by the HTTP request parameters.", - "Http Request Header": "Custom request headers, please strictly fill in the JSON string.\n1. Ensure that the last attribute has no comma\n2. Ensure that the key contains double quotes\nFor example: {\"Authorization\":\"Bearer xxx\"}", - "Http Request Url": "New HTTP request address. If there are two 'request addresses', you can delete this module and re-add it to pull the latest module configuration.", - "Response content": "You can use \\n to achieve continuous line breaks.\nYou can achieve replies through external module input, and the content filled in here will be overwritten by external module input.\nIf non-string type data is passed in, it will be automatically converted to a string" - }, - "label": { - "Background": "Background Knowledge", - "Http Request Url": "Request Address", - "Response content": "Response Content", - "Select dataset": "Select Dataset", - "aiModel": "AI Model", - "chat history": "Chat History", - "user question": "User Question" - }, - "placeholder": { - "Classify background": "For example:\n1. AIGC (Artificial Intelligence Generated Content) refers to the use of artificial intelligence technology to automatically or semi-automatically generate digital content, such as text, images, music, videos, etc.\n2. AIGC technology includes but is not limited to natural language processing, computer vision, machine learning, and deep learning. These technologies can create new content or modify existing content to meet specific creative, educational, entertainment, or informational needs." - } - }, - "laf": { - "Select laf function": "Select LAF Function" - }, - "output": { - "description": { - "Ai response content": "Will be triggered after the stream reply is completed", - "New context": "Splice the current reply content with the history records and return it as the new context", - "query extension result": "Output as a string array, which can be directly connected to the 'User Question' of 'Dataset Search'. It is recommended not to connect to the 'User Question' of 'AI Chat'" - }, - "label": { - "Ai response content": "AI Response Content", - "New context": "New Context", - "query extension result": "Optimization Result" - } - }, - "template": { - "AI function": "AI Capability", - "AI response switch tip": "If you want the current node not to output content, you can turn off this switch. The content output by AI will not be displayed to the user, and you can manually use 'AI Response Content' for special processing.", - "AI support tool tip": "Models that support function calls can better use tool calls.", - "Basic Node": "Basic Function", - "Query extension": "Question Optimization", - "System Plugin": "System Plugin", - "System input module": "System Input", - "Team app": "Team App", - "Tool module": "Tool", - "UnKnow Module": "Unknown Module", - "ai_chat": "AI conversation", - "ai_chat_intro": "AI large model dialogue", - "config_params": "Can configure application system parameters", - "empty_plugin": "Blank plugin", - "empty_workflow": "Blank workflow", - "http body placeholder": "Same syntax as Apifox", - "self_output": "Custom plug-in output", - "system_config": "System configuration", - "system_config_info": "Can configure application system parameters", - "work_start": "Process starts" - }, - "templates": { - "Load plugin error": "Failed to Load Plugin" - }, - "variable": { - "Custom type": "Custom Variable", - "add option": "Add Option", - "input type": "Text", - "key": "Variable Key", - "key already exists": "Key Already Exists", - "key is required": "Variable Key is Required", - "select type": "Dropdown Single Select", - "text max length": "Max Length", - "textarea type": "Paragraph", - "variable name": "Variable Name", - "variable name is required": "Variable Name Cannot Be Empty", - "variable option is required": "Options Cannot Be All Empty", - "variable option is value is required": "Option Content Cannot Be Empty", - "variable options": "Options" - }, - "variable add option": "Add Option" - }, - "plugin": { - "Custom headers": "Custom Request Headers", - "Free": "This plugin does not consume points", - "Get Plugin Module Detail Failed": "Failed to Retrieve Plugin Information", - "Http plugin intro placeholder": "For display only, no actual effect", - "cost": "Points Consumption:" - }, - "view_chat_detail": "View Chat Details", - "workflow": { - "Can not delete node": "This Node Cannot Be Deleted", - "Change input type tip": "Changing the input type will clear the filled values, please confirm!", - "Check Failed": "Workflow Validation Failed, Please Check If the Nodes Are Correctly Filled and the Connections Are Normal", - "Confirm stop debug": "Confirm to Stop Debugging? Debug Information Will Not Be Retained.", - "Copy node": "Node Copied", - "Custom inputs": "Custom Inputs", - "Custom outputs": "Custom Outputs", - "Dataset quote": "Dataset Quote", - "Debug": "Debug", - "Debug Node": "Debug Mode", - "Failed": "Run Failed", - "Not intro": "This Node Has No Introduction", - "Run": "Run", - "Running": "Running", - "Save and publish": "Save and Publish", - "Save to cloud": "Save Only", - "Skipped": "Skipped", - "Stop debug": "Stop Debugging", - "Success": "Run Successful", - "Value type": "Data Type", - "Variable": { - "Variable type": "Variable Type" - }, - "debug": { - "Done": "Debugging Completed", - "Hide result": "Hide Result", - "Not result": "No Run Result", - "Run result": "Run Result", - "Show result": "Show Result" - }, - "dynamic_input": "dynamic input", - "inputType": { - "JSON Editor": "JSON Input Box", - "Manual input": "Manual Input", - "Manual select": "Manual Select", - "Reference": "Variable Reference", - "custom": "Custom Variable", - "dynamicTargetInput": "Dynamic External Data", - "input": "Single Line Input Box", - "number input": "Number Input Box", - "select": "Single Select Box", - "selectApp": "App Select", - "selectDataset": "Dataset Select", - "selectLLMModel": "Chat Model Select", - "switch": "Switch", - "textarea": "Multi-line Input Box" - }, - "publish": { - "OnRevert version": "Click to Revert to This Version", - "OnRevert version confirm": "Confirm to Revert to This Version? The configuration of the editing version will be saved, and a new release version will be created for the reverted version.", - "histories": "Release Records" - }, - "template": { - "Interactive": "Interactive", - "Multimodal": "Multimodal", - "Search": "Search" - }, - "tool": { - "Handle": "Tool Connector", - "Select Tool": "Select Tool" - }, - "value": "Value", - "variable": "Variable" - } - }, + "core.Chat": "Chat", + "core.Max Token": "Max Token", + "core.ai.AI settings": "AI Settings", + "core.ai.Ai point price": "AI Points Consumption", + "core.ai.Max context": "Max Context", + "core.ai.Model": "AI Model", + "core.ai.Not deploy rerank model": "Re-rank Model Not Deployed", + "core.ai.Prompt": "Prompt", + "core.ai.Support tool": "Function Call", + "core.ai.model.Dataset Agent Model": "File Processing Model", + "core.ai.model.Vector Model": "Index Model", + "core.ai.model.doc_index_and_dialog": "Document Index & Dialog Index", + "core.app.Ai response": "AI Response", + "core.app.Api request": "API Request", + "core.app.Api request desc": "Integrate into existing systems through API, or WeChat Work, Feishu, etc.", + "core.app.App intro": "App Introduction", + "core.app.Chat Variable": "Chat Variable", + "core.app.Config schedule plan": "Configure Scheduled Execution", + "core.app.Config whisper": "Configure Voice Input", + "core.app.Interval timer config": "Scheduled Execution Configuration", + "core.app.Interval timer run": "Scheduled Execution", + "core.app.Interval timer tip": "Can Execute App on Schedule", + "core.app.Make a brief introduction of your app": "Give Your AI App an Introduction", + "core.app.Max histories": "Number of Chat Histories", + "core.app.Max tokens": "Response Limit", + "core.app.Name and avatar": "Avatar & Name", + "core.app.Publish": "Publish", + "core.app.Publish Confirm": "Confirm to Publish App? This Will Immediately Update the App Status on All Publishing Channels.", + "core.app.Publish app tip": "After Publishing the App, All Publishing Channels Will Immediately Use This Version", + "core.app.Question Guide": "Guess What You Want to Ask", + "core.app.Question Guide Tip": "After the conversation ends, 3 guiding questions will be generated.", + "core.app.Quote prompt": "Quote Template Prompt", + "core.app.Quote templates": "Quote Content Templates", + "core.app.Random": "Divergent", + "core.app.Search team tags": "Search Tags", + "core.app.Select TTS": "Select Voice Playback Mode", + "core.app.Select app from template": "Template", + "core.app.Select quote template": "Select Quote Prompt Template", + "core.app.Set a name for your app": "Set a Name for Your App", + "core.app.Setting ai property": "Click to Configure AI Model Properties", + "core.app.Share link": "Login-Free Window", + "core.app.Share link desc": "Share the link with other users, they can use it directly without logging in", + "core.app.Share link desc detail": "You can directly share this model with other users for conversation, they can use it directly without logging in. Note, this feature will consume your account balance, please keep the link safe!", + "core.app.TTS": "Voice Playback", + "core.app.TTS Tip": "After enabling, you can use the voice playback function after each conversation. Using this feature may incur additional costs.", + "core.app.TTS start": "Read Content", + "core.app.Team tags": "Team Tags", + "core.app.Temperature": "Temperature", + "core.app.Tool call": "Tool Call", + "core.app.ToolCall.No plugin": "No Available Plugins", + "core.app.ToolCall.Parameter setting": "Input Parameters", + "core.app.ToolCall.System": "System", + "core.app.ToolCall.Team": "Team", + "core.app.Welcome Text": "Conversation Opening", + "core.app.Whisper": "Voice Input", + "core.app.Whisper config": "Voice Input Configuration", + "core.app.deterministic": "Deterministic", + "core.app.edit.Prompt Editor": "Prompt Editor", + "core.app.edit.Query extension background prompt": "Conversation Background Description", + "core.app.edit.Query extension background tip": "Describe the scope of the current conversation to help the AI complete and extend the current question. The content you fill in is usually for this assistant.", + "core.app.edit_content": "Edit App Information", + "core.app.error.App name can not be empty": "App Name Cannot Be Empty", + "core.app.error.Get app failed": "Failed to Retrieve App", + "core.app.feedback.Custom feedback": "Custom Feedback", + "core.app.feedback.close custom feedback": "Close Feedback", + "core.app.have_saved": "Saved", + "core.app.logs.Source And Time": "Source & Time", + "core.app.more": "View More", + "core.app.no_app": "No Apps Yet, Create One Now!", + "core.app.not_saved": "Not Saved", + "core.app.outLink.Can Drag": "Icon Can Be Dragged", + "core.app.outLink.Default open": "Default Open", + "core.app.outLink.Iframe block title": "Copy the iframe below to add to your website", + "core.app.outLink.Link block title": "Copy the link below to open in the browser", + "core.app.outLink.Script Close Icon": "Close Icon", + "core.app.outLink.Script Open Icon": "Open Icon", + "core.app.outLink.Script block title": "Add the code below to your website", + "core.app.outLink.Select Mode": "Start Using", + "core.app.outLink.Select Using Way": "Select Usage Method", + "core.app.outLink.Show History": "Show Chat History", + "core.app.publish.Fei shu bot": "Feishu", + "core.app.publish.Fei shu bot publish": "Publish to Feishu Bot", + "core.app.schedule.Default prompt": "Default Question", + "core.app.schedule.Default prompt placeholder": "Default question when executing the app", + "core.app.schedule.Every day": "Every day at {{hour}}:00", + "core.app.schedule.Every month": "Every month on the {{day}} at {{hour}}:00", + "core.app.schedule.Every week": "Every week on {{day}} at {{hour}}:00", + "core.app.schedule.Interval": "Every {{interval}} hours", + "core.app.schedule.Open schedule": "Scheduled Execution", + "core.app.setting": "App Information Settings", + "core.app.share.Amount limit tip": "Up to 10 groups", + "core.app.share.Create link": "Create New Link", + "core.app.share.Create link tip": "Creation successful. The share address has been copied and can be shared directly.", + "core.app.share.Ip limit title": "IP Rate Limit (people/minute)", + "core.app.share.Is response quote": "Return Quote", + "core.app.share.Not share link": "No Share Link Created", + "core.app.share.Role check": "Identity Verification", + "core.app.tip.Add a intro to app": "Give the app an introduction", + "core.app.tip.chatNodeSystemPromptTip": "Fixed guide words for the model. By adjusting this content, you can guide the model's chat direction. This content will be fixed at the beginning of the context. You can use / to insert variables.\nIf a Dataset is associated, you can also guide the model when to call the Dataset search by appropriate description. For example:\nYou are an assistant for the movie 'Interstellar'. When users ask about content related to 'Interstellar', please search the Dataset and answer based on the search results.", + "core.app.tip.variableTip": "Before the conversation starts, you can ask the user to fill in some content as specific variables for this round of conversation. This module is located after the opening guide.\nVariables can be injected into other modules' string type inputs in the form of {{variable key}}, such as prompts, delimiters, etc.", + "core.app.tip.welcomeTextTip": "Before each conversation starts, send an initial content. Supports standard Markdown syntax. Additional tags that can be used:\n[Quick Key]: Users can directly send the question by clicking", + "core.app.tool_label.doc": "Documentation", + "core.app.tool_label.github": "GitHub Address", + "core.app.tool_label.price": "Pricing", + "core.app.tool_label.view_doc": "View Documentation", + "core.app.tts.Close": "Do Not Use", + "core.app.tts.Speech model": "Speech Model", + "core.app.tts.Speech speed": "Speech Speed", + "core.app.tts.Test Listen": "Test Listen", + "core.app.tts.Test Listen Text": "Hello, this is a voice test. If you can hear this sentence, the voice playback function is normal.", + "core.app.tts.Web": "Browser Built-in (Free)", + "core.app.whisper.Auto send": "Auto Send", + "core.app.whisper.Auto send tip": "Automatically send after voice input is completed, no need to click the send button manually", + "core.app.whisper.Auto tts response": "Auto Voice Response", + "core.app.whisper.Auto tts response tip": "The question sent by voice input will be directly responded to in voice form. Please ensure that the voice playback function is enabled.", + "core.app.whisper.Close": "Close", + "core.app.whisper.Not tts tip": "You have not enabled voice playback, this feature cannot be used", + "core.app.whisper.Open": "Open", + "core.app.whisper.Switch": "Enable Voice Input", + "core.chat.Admin Mark Content": "Corrected Reply", + "core.chat.Audio Not Support": "Device Does Not Support Voice Playback", + "core.chat.Audio Speech Error": "Voice Playback Error", + "core.chat.Cancel Speak": "Cancel Voice Input", + "core.chat.Confirm to clear history": "Confirm to Clear Online Chat History for This App? Share and API Call Records Will Not Be Cleared.", + "core.chat.Confirm to clear share chat history": "Confirm to Delete All Chat Records?", + "core.chat.Converting to text": "Converting to Text...", + "core.chat.Custom History Title": "Custom History Title", + "core.chat.Custom History Title Description": "If set to empty, it will automatically follow the chat record.", + "core.chat.Exit Chat": "Exit Chat", + "core.chat.Failed to initialize chat": "Failed to Initialize Chat", + "core.chat.Feedback Failed": "Feedback Submission Failed", + "core.chat.Feedback Modal": "Result Feedback", + "core.chat.Feedback Modal Tip": "Enter the part you are not satisfied with the answer", + "core.chat.Feedback Submit": "Submit Feedback", + "core.chat.Feedback Success": "Feedback Successful!", + "core.chat.Finish Speak": "Voice Input Completed", + "core.chat.History": "History", + "core.chat.History Amount": "{{amount}} Records", + "core.chat.Mark": "Mark Expected Answer", + "core.chat.Mark Description": "The current marking function is in beta.\n\nAfter clicking to add a mark, you need to select a Dataset to store the marked data. You can quickly mark questions and expected answers through this function to guide the model's next answer.\n\nCurrently, the marking function is the same as other data in the Dataset and is affected by the model, which does not mean that it will 100% meet expectations after marking.\n\nMarking data is only synchronized with the Dataset in one direction. If the Dataset modifies the marked data, the marked data displayed in the log cannot be synchronized.", + "core.chat.Mark Description Title": "Marking Function Introduction", + "core.chat.New Chat": "New Chat", + "core.chat.Pin": "Pin", + "core.chat.Question Guide": "Guess What You Want to Ask", + "core.chat.Quote": "Quote", + "core.chat.Quote Amount": "Dataset Quotes ({{amount}} Records)", + "core.chat.Read Mark Description": "View Marking Function Introduction", + "core.chat.Recent use": "Recently Used", + "core.chat.Record": "Voice Input", + "core.chat.Restart": "Restart Chat", + "core.chat.Run test": "Run Preview", + "core.chat.Select dataset": "Select Dataset", + "core.chat.Select dataset Desc": "Select a Dataset to store the expected answer", + "core.chat.Send Message": "Send", + "core.chat.Speaking": "I'm Listening, Please Speak...", + "core.chat.Start Chat": "Start Chat", + "core.chat.Type a message": "Enter a Question, Press [Enter] to Send / Press [Ctrl(Alt/Shift) + Enter] for New Line", + "core.chat.Unpin": "Unpin", + "core.chat.You need to a chat app": "You Do Not Have an Available App", + "core.chat.error.Chat error": "Chat Error", + "core.chat.error.Messages empty": "API Content is Empty, Possibly Due to Text Being Too Long", + "core.chat.error.Select dataset empty": "You Have Not Selected a Dataset", + "core.chat.error.User input empty": "User Question Input is Empty", + "core.chat.error.data_error": "Data Retrieval Error", + "core.chat.feedback.Close User Like": "User Agrees\nClick to Close This Mark", + "core.chat.feedback.Feedback Close": "Close Feedback", + "core.chat.feedback.No Content": "User Did Not Provide Specific Feedback Content", + "core.chat.feedback.Read User dislike": "User Disagrees\nClick to View Content", + "core.chat.logs.api": "API Call", + "core.chat.logs.feishu": "Feishu", + "core.chat.logs.free_login": "No login link", + "core.chat.logs.official_account": "Official Account", + "core.chat.logs.online": "Online Use", + "core.chat.logs.share": "External Link Call", + "core.chat.logs.team": "Team Space Chat", + "core.chat.logs.test": "Test", + "core.chat.logs.wecom": "WeChat Work", + "core.chat.markdown.Edit Question": "Edit Question", + "core.chat.markdown.Quick Question": "Click to Ask Immediately", + "core.chat.markdown.Send Question": "Send Question", + "core.chat.quote.Quote Tip": "Only the actual quoted content is displayed here. If the data is updated, it will not be updated in real-time here.", + "core.chat.quote.Read Quote": "View Quote", + "core.chat.response.Complete Response": "Complete Response", + "core.chat.response.Extension model": "Question Optimization Model", + "core.chat.response.Read complete response": "View Details", + "core.chat.response.Read complete response tips": "Click to View Detailed Process", + "core.chat.response.Tool call tokens": "Tool Call Tokens Consumption", + "core.chat.response.context total length": "Total Context Length", + "core.chat.response.module cq": "Question Classification List", + "core.chat.response.module cq result": "Classification Result", + "core.chat.response.module extract description": "Extract Background Description", + "core.chat.response.module extract result": "Extraction Result", + "core.chat.response.module historyPreview": "History Preview (Only Partial Content Displayed)", + "core.chat.response.module http result": "Response Body", + "core.chat.response.module if else Result": "Condition Result", + "core.chat.response.module limit": "Single Search Limit", + "core.chat.response.module maxToken": "Max Response Tokens", + "core.chat.response.module model": "Model", + "core.chat.response.module name": "Model Name", + "core.chat.response.module query": "Question/Search Term", + "core.chat.response.module quoteList": "Quote Content", + "core.chat.response.module similarity": "Similarity", + "core.chat.response.module temperature": "Temperature", + "core.chat.response.module time": "Run Time", + "core.chat.response.module tokens": "Total Tokens", + "core.chat.response.plugin output": "Plugin Output Value", + "core.chat.response.search using reRank": "Result Re-Rank", + "core.chat.response.text output": "Text Output", + "core.chat.response.update_var_result": "Variable Update Result (Displays Multiple Variable Update Results in Order)", + "core.chat.response.user_select_result": "User Selection Result", + "core.chat.response.loop_input": "Loop Input Array", + "core.chat.response.loop_output": "Loop Output Array", + "core.chat.response.loop_input_element": "Loop Input Element", + "core.chat.response.loop_output_element": "Loop Output Element", + "core.chat.retry": "Regenerate", + "core.chat.tts.Stop Speech": "Stop", + "core.common.tip.leave page": "Content has been modified, confirm to leave the page?", + "core.dataset.Choose Dataset": "Associate Dataset", + "core.dataset.Collection": "Dataset", + "core.dataset.Create dataset": "Create a {{name}}", + "core.dataset.Dataset": "Dataset", + "core.dataset.Dataset ID": "Dataset ID", + "core.dataset.Delete Confirm": "Confirm to Delete This Dataset? Data Cannot Be Recovered After Deletion, Please Confirm!", + "core.dataset.Empty Dataset": "Empty Dataset", + "core.dataset.Empty Dataset Tips": "No Dataset Yet, Create One Now!", + "core.dataset.Folder placeholder": "This is a Directory", + "core.dataset.Go Dataset": "Go to Dataset", + "core.dataset.Intro Placeholder": "This Dataset Has No Introduction Yet", + "core.dataset.Manual collection": "Manual Dataset", + "core.dataset.My Dataset": "My Dataset", + "core.dataset.Query extension intro": "Enabling the question optimization function can improve the accuracy of Dataset searches during continuous conversations. After enabling this function, when performing Dataset searches, the AI will complete the missing information of the question based on the conversation history.", + "core.dataset.Quote Length": "Quote Content Length", + "core.dataset.Read Dataset": "View Dataset Details", + "core.dataset.Set Website Config": "Start Configuring Website Information", + "core.dataset.Start export": "Export Started", + "core.dataset.Table collection": "Table Dataset", + "core.dataset.Text collection": "Text Dataset", + "core.dataset.collection.Click top config website": "Click to Configure Website", + "core.dataset.collection.Collection name": "Dataset Name", + "core.dataset.collection.Collection raw text": "Dataset Content", + "core.dataset.collection.Empty Tip": "The Dataset is Empty", + "core.dataset.collection.QA Prompt": "QA Split Prompt", + "core.dataset.collection.Start Sync Tip": "Confirm to Start Syncing Data? Old Data Will Be Deleted and Re-fetched, Please Confirm!", + "core.dataset.collection.Sync": "Sync Data", + "core.dataset.collection.Sync Collection": "Data Sync", + "core.dataset.collection.Website Empty Tip": "No Website Associated Yet", + "core.dataset.collection.Website Link": "Website Address", + "core.dataset.collection.id": "Collection ID", + "core.dataset.collection.metadata.Chunk Size": "Chunk Size", + "core.dataset.collection.metadata.Createtime": "Creation Time", + "core.dataset.collection.metadata.Raw text length": "Raw Text Length", + "core.dataset.collection.metadata.Training Type": "Training Mode", + "core.dataset.collection.metadata.Updatetime": "Update Time", + "core.dataset.collection.metadata.Web page selector": "Web Page Selector", + "core.dataset.collection.metadata.metadata": "Metadata", + "core.dataset.collection.metadata.read source": "View Original Content", + "core.dataset.collection.metadata.source": "Data Source", + "core.dataset.collection.metadata.source name": "Source Name", + "core.dataset.collection.metadata.source size": "Source Size", + "core.dataset.collection.status.active": "Ready", + "core.dataset.collection.sync.result.sameRaw": "Content Unchanged, No Update Needed", + "core.dataset.collection.sync.result.success": "Sync Started", + "core.dataset.data.Auxiliary Data": "Auxiliary Data", + "core.dataset.data.Auxiliary Data Placeholder": "This part is optional and is usually used to construct structured prompts in conjunction with the 'Data Content' above for special scenarios, up to {{maxToken}} characters.", + "core.dataset.data.Auxiliary Data Tip": "This part is optional\nThis content is usually used to construct structured prompts in conjunction with the data content above for special scenarios", + "core.dataset.data.Data Content": "Related Data Content", + "core.dataset.data.Data Content Placeholder": "This input box is required. This content is usually a description of the knowledge point or a user's question, up to {{maxToken}} characters.", + "core.dataset.data.Data Content Tip": "This input box is required\nThis content is usually a description of the knowledge point or a user's question.", + "core.dataset.data.Default Index Tip": "Cannot be edited. The default index will use the text of 'Related Data Content' and 'Auxiliary Data' to generate the index directly.", + "core.dataset.data.Edit": "Edit Data", + "core.dataset.data.Empty Tip": "This collection has no data yet", + "core.dataset.data.Main Content": "Main Content", + "core.dataset.data.Search data placeholder": "Search Related Data", + "core.dataset.data.Too Long": "Total Length Exceeded", + "core.dataset.data.Total Amount": "{{total}} Groups", + "core.dataset.data.group": "Group", + "core.dataset.data.unit": "Items", + "core.dataset.embedding model tip": "The index model can convert natural language into vectors for semantic search.\nNote that different index models cannot be used together. Once an index model is selected, it cannot be changed.", + "core.dataset.error.Data not found": "Data Not Found or Deleted", + "core.dataset.error.Start Sync Failed": "Failed to Start Sync", + "core.dataset.error.invalidVectorModelOrQAModel": "Invalid Vector Model or QA Model", + "core.dataset.error.unAuthDataset": "Unauthorized to Operate This Dataset", + "core.dataset.error.unAuthDatasetCollection": "Unauthorized to Operate This Dataset", + "core.dataset.error.unAuthDatasetData": "Unauthorized to Operate This Data", + "core.dataset.error.unAuthDatasetFile": "Unauthorized to Operate This File", + "core.dataset.error.unCreateCollection": "Unauthorized to Operate This Data", + "core.dataset.error.unLinkCollection": "Not a Web Link Collection", + "core.dataset.externalFile": "External File Library", + "core.dataset.file": "File", + "core.dataset.folder": "Directory", + "core.dataset.import.Auto mode Estimated Price Tips": "Requires calling the file processing model, which consumes a lot of tokens: {{price}} points/1K tokens", + "core.dataset.import.Auto process": "Automatic", + "core.dataset.import.Auto process desc": "Automatically set segmentation and preprocessing rules", + "core.dataset.import.Chunk Range": "Range: {{min}}~{{max}}", + "core.dataset.import.Chunk Split": "Direct Segmentation", + "core.dataset.import.Chunk Split Tip": "Segment the text according to certain rules and convert it into a format that can be semantically searched. Suitable for most scenarios. No additional model processing is required, and the cost is low.", + "core.dataset.import.Custom process": "Custom Rules", + "core.dataset.import.Custom process desc": "Customize segmentation and preprocessing rules", + "core.dataset.import.Custom prompt": "Custom Prompt", + "core.dataset.import.Custom split char": "Custom Separator", + "core.dataset.import.Custom split char Tips": "Allows you to segment based on custom separators. Usually used for pre-processed data, using specific separators for precise segmentation.", + "core.dataset.import.Custom text": "Custom Text", + "core.dataset.import.Custom text desc": "Manually enter a piece of text as a dataset", + "core.dataset.import.Data Preprocessing": "Data Processing", + "core.dataset.import.Data process params": "Data Processing Parameters", + "core.dataset.import.Down load csv template": "Click to Download CSV Template", + "core.dataset.import.Embedding Estimated Price Tips": "Only use the index model, consuming a small amount of AI points: {{price}} points/1K tokens", + "core.dataset.import.Ideal chunk length": "Ideal Chunk Length", + "core.dataset.import.Ideal chunk length Tips": "Segment according to ending symbols and combine multiple segments into one chunk. This value determines the estimated size of the chunk.", + "core.dataset.import.Import success": "Import Successful, Please Wait for Training", + "core.dataset.import.Link name": "Web Link", + "core.dataset.import.Link name placeholder": "Only supports static links. If the data is empty after uploading, the link may not be readable\nEach line one, up to 10 links at a time", + "core.dataset.import.Local file": "Local File", + "core.dataset.import.Local file desc": "Upload files in PDF, TXT, DOCX, etc. formats", + "core.dataset.import.Preview chunks": "Preview Segments (up to 5 segments)", + "core.dataset.import.Preview raw text": "Preview Raw Text (up to 3000 characters)", + "core.dataset.import.Process way": "Processing Method", + "core.dataset.import.QA Estimated Price Tips": "Requires calling the file processing model, which consumes a lot of AI points: {{price}} points/1K tokens", + "core.dataset.import.QA Import": "QA Split", + "core.dataset.import.QA Import Tip": "According to certain rules, split the text into larger paragraphs and call AI to generate Q&A pairs for the paragraph. It has very high retrieval accuracy but may lose a lot of content details.", + "core.dataset.import.Select file": "Select File", + "core.dataset.import.Select source": "Select Source", + "core.dataset.import.Source name": "Source Name", + "core.dataset.import.Sources list": "Source List", + "core.dataset.import.Start upload": "Start Upload", + "core.dataset.import.Total files": "Total {{total}} Files", + "core.dataset.import.Training mode": "Training Mode", + "core.dataset.import.Upload data": "Upload Data", + "core.dataset.import.Upload file progress": "File Upload Progress", + "core.dataset.import.Upload status": "Status", + "core.dataset.import.Web link": "Web Link", + "core.dataset.import.Web link desc": "Read static web page content as a dataset", + "core.dataset.link": "Link", + "core.dataset.search.Dataset Search Params": "Dataset Search Configuration", + "core.dataset.search.Empty result response": "Empty Search Response", + "core.dataset.search.Filter": "Search Filter", + "core.dataset.search.Max Tokens": "Quote Limit", + "core.dataset.search.Max Tokens Tips": "The maximum number of tokens for a single search. About 1 Chinese character = 1.7 tokens, 1 English word = 1 token", + "core.dataset.search.Min Similarity": "Minimum Similarity", + "core.dataset.search.Min Similarity Tips": "The similarity of different index models varies. Please choose an appropriate value through search testing. When using Re-rank, the similarity may be very low.", + "core.dataset.search.No support similarity": "Only supported when using result re-rank or semantic search", + "core.dataset.search.Nonsupport": "Not Supported", + "core.dataset.search.Params Setting": "Search Parameter Settings", + "core.dataset.search.Quote index": "Quote Index", + "core.dataset.search.ReRank": "Result Re-rank", + "core.dataset.search.ReRank desc": "Use the re-rank model for secondary sorting to enhance the comprehensive ranking.", + "core.dataset.search.Source id": "Source ID", + "core.dataset.search.Source name": "Quote Source Name", + "core.dataset.search.Using query extension": "Use Question Optimization", + "core.dataset.search.mode.embedding": "Semantic Search", + "core.dataset.search.mode.embedding desc": "Use vectors for text relevance queries", + "core.dataset.search.mode.fullTextRecall": "Full Text Search", + "core.dataset.search.mode.fullTextRecall desc": "Use traditional full-text search, suitable for finding some keywords and subject-predicate special data", + "core.dataset.search.mode.mixedRecall": "Mixed Search", + "core.dataset.search.mode.mixedRecall desc": "Use a combination of vector search and full-text search results, sorted using the RRF algorithm.", + "core.dataset.search.score.embedding": "Semantic Search", + "core.dataset.search.score.embedding desc": "Get scores by calculating the distance between vectors, ranging from 0 to 1.", + "core.dataset.search.score.fullText": "Full Text Search", + "core.dataset.search.score.fullText desc": "Calculate the score of the same keywords, ranging from 0 to infinity.", + "core.dataset.search.score.reRank": "Result Re-rank", + "core.dataset.search.score.reRank desc": "Calculate the relevance between sentences using the re-rank model, ranging from 0 to 1.", + "core.dataset.search.score.rrf": "Comprehensive Ranking", + "core.dataset.search.score.rrf desc": "Merge multiple search results using the reciprocal rank fusion method.", + "core.dataset.search.search mode": "Search Mode", + "core.dataset.status.active": "Ready", + "core.dataset.status.syncing": "Syncing", + "core.dataset.test.Batch test": "Batch Test", + "core.dataset.test.Batch test Placeholder": "Select a CSV File", + "core.dataset.test.Search Test": "Search Test", + "core.dataset.test.Test": "Test", + "core.dataset.test.Test Result": "Test Result", + "core.dataset.test.Test Text": "Single Text Test", + "core.dataset.test.Test Text Placeholder": "Enter the text to be tested", + "core.dataset.test.Test params": "Test Parameters", + "core.dataset.test.delete test history": "Delete This Test Result", + "core.dataset.test.test history": "Test History", + "core.dataset.test.test result placeholder": "Test results will be displayed here", + "core.dataset.test.test result tip": "Sort based on the similarity between the Dataset content and the test text. You can adjust the corresponding text based on the test results.\nNote: The data in the test records may have been modified. Clicking on a test data will display the latest data.", + "core.dataset.training.Agent queue": "QA Training Queue", + "core.dataset.training.Auto mode": "Enhanced Processing (Experimental)", + "core.dataset.training.Auto mode Tip": "Increase the semantic richness of data blocks by generating related questions and summaries through sub-indexes and calling models, making it more conducive to retrieval. Requires more storage space and increases AI call times.", + "core.dataset.training.Chunk mode": "Direct Segmentation", + "core.dataset.training.Full": "Estimated Over 5 Minutes", + "core.dataset.training.Leisure": "Idle", + "core.dataset.training.QA mode": "QA Split", + "core.dataset.training.Vector queue": "Index Queue", + "core.dataset.training.Waiting": "Estimated 5 Minutes", + "core.dataset.training.Website Sync": "Website Sync", + "core.dataset.training.tag": "Queue Status", + "core.dataset.website.Base Url": "Base URL", + "core.dataset.website.Config": "Website Configuration", + "core.dataset.website.Config Description": "The website sync function allows you to fill in the root address of a website. The system will automatically crawl related web pages for Dataset training. Only static websites will be crawled, mainly project documentation and blogs.", + "core.dataset.website.Confirm Create Tips": "Confirm to sync this site. The sync task will start shortly. Please confirm!", + "core.dataset.website.Confirm Update Tips": "Confirm to update the site configuration? The sync will start immediately according to the new configuration. Please confirm!", + "core.dataset.website.Selector": "Selector", + "core.dataset.website.Selector Course": "Usage Tutorial", + "core.dataset.website.Start Sync": "Start Sync", + "core.dataset.website.UnValid Website Tip": "Your site may not be a static site and cannot be synced", + "core.module.Add question type": "Add Question Type", + "core.module.Add_option": "Add Option", + "core.module.Can not connect self": "Cannot Connect to Itself", + "core.module.Data Type": "Data Type", + "core.module.Dataset quote.label": "Dataset Quote", + "core.module.Dataset quote.select": "Select Dataset Quote", + "core.module.Default Value": "Default Value", + "core.module.Default value": "Default Value", + "core.module.Default value placeholder": "Leave blank to return an empty string by default", + "core.module.Diagram": "Diagram", + "core.module.Edit intro": "Edit Description", + "core.module.Field Description": "Field Description", + "core.module.Field Name": "Field Name", + "core.module.Http request props": "Request Parameters", + "core.module.Http request settings": "Request Configuration", + "core.module.Http timeout": "Timeout Duration", + "core.module.Input Type": "Input Type", + "core.module.Laf sync params": "Sync Parameters", + "core.module.Max Length": "Max Length", + "core.module.Max Length placeholder": "Maximum length of input text", + "core.module.Max Value": "Max Value", + "core.module.Min Value": "Min Value", + "core.module.QueryExtension.placeholder": "For example:\nQuestions about the introduction and use of Python.\nThe current conversation is related to the game 'GTA5'.", + "core.module.Select app": "Select App", + "core.module.Setting quote prompt": "Configure Quote Prompt", + "core.module.Variable": "Global Variable", + "core.module.Variable Setting": "Variable Setting", + "core.module.edit.Field Name Cannot Be Empty": "Field Name Cannot Be Empty", + "core.module.extract.Add field": "Add Field", + "core.module.extract.Enum Description": "List the possible values of this field, one per line", + "core.module.extract.Enum Value": "Enum Value", + "core.module.extract.Field Description Placeholder": "Name/Age/SQL Statement...", + "core.module.extract.Field Setting Title": "Extract Field Configuration", + "core.module.extract.Required": "Must Return", + "core.module.extract.Required Description": "Even if the field cannot be extracted, it will be returned using the default value", + "core.module.extract.Target field": "Target Field", + "core.module.http.Add props": "Add Parameter", + "core.module.http.AppId": "App ID", + "core.module.http.ChatId": "Current Chat ID", + "core.module.http.Current time": "Current Time", + "core.module.http.Histories": "History Records", + "core.module.http.Key already exists": "Key Already Exists", + "core.module.http.Key cannot be empty": "Parameter Name Cannot Be Empty", + "core.module.http.Props name": "Parameter Name", + "core.module.http.Props tip": "You can set related parameters for the HTTP request\nYou can call global variables or external parameter inputs through {{key}}, currently available variables:\n{{variable}}", + "core.module.http.Props value": "Parameter Value", + "core.module.http.ResponseChatItemId": "AI Response ID", + "core.module.http.Url and params have been split": "Path parameters have been automatically added to Params", + "core.module.http.curl import": "cURL Import", + "core.module.http.curl import placeholder": "Please enter the cURL format content, the request information of the first interface will be extracted.", + "core.module.input.Add Branch": "Add Branch", + "core.module.input.add": "Add Condition", + "core.module.input.description.Background": "You can add some specific content introductions to better identify the type of user questions. This content is usually to introduce something the model does not know.", + "core.module.input.description.HTTP Dynamic Input": "Receive the output value of the previous node as a variable, which can be used by the HTTP request parameters.", + "core.module.input.description.Http Request Header": "Custom request headers, please strictly fill in the JSON string.\n1. Ensure that the last attribute has no comma\n2. Ensure that the key contains double quotes\nFor example: {\"Authorization\":\"Bearer xxx\"}", + "core.module.input.description.Http Request Url": "New HTTP request address. If there are two 'request addresses', you can delete this module and re-add it to pull the latest module configuration.", + "core.module.input.description.Response content": "You can use \\n to achieve continuous line breaks.\nYou can achieve replies through external module input, and the content filled in here will be overwritten by external module input.\nIf non-string type data is passed in, it will be automatically converted to a string", + "core.module.input.label.Background": "Background Knowledge", + "core.module.input.label.Http Request Url": "Request Address", + "core.module.input.label.Response content": "Response Content", + "core.module.input.label.Select dataset": "Select Dataset", + "core.module.input.label.aiModel": "AI Model", + "core.module.input.label.chat history": "Chat History", + "core.module.input.label.user question": "User Question", + "core.module.input.placeholder.Classify background": "For example:\n1. AIGC (Artificial Intelligence Generated Content) refers to the use of artificial intelligence technology to automatically or semi-automatically generate digital content, such as text, images, music, videos, etc.\n2. AIGC technology includes but is not limited to natural language processing, computer vision, machine learning, and deep learning. These technologies can create new content or modify existing content to meet specific creative, educational, entertainment, or informational needs.", + "core.module.laf.Select laf function": "Select LAF Function", + "core.module.output.description.Ai response content": "Will be triggered after the stream reply is completed", + "core.module.output.description.New context": "Splice the current reply content with the history records and return it as the new context", + "core.module.output.description.query extension result": "Output as a string array, which can be directly connected to the 'User Question' of 'Dataset Search'. It is recommended not to connect to the 'User Question' of 'AI Chat'", + "core.module.output.label.Ai response content": "AI Response Content", + "core.module.output.label.New context": "New Context", + "core.module.output.label.query extension result": "Optimization Result", + "core.module.template.AI function": "AI Capability", + "core.module.template.AI response switch tip": "If you want the current node not to output content, you can turn off this switch. The content output by AI will not be displayed to the user, and you can manually use 'AI Response Content' for special processing.", + "core.module.template.AI support tool tip": "Models that support function calls can better use tool calls.", + "core.module.template.Basic Node": "Basic Function", + "core.module.template.Query extension": "Question Optimization", + "core.module.template.System Plugin": "System Plugin", + "core.module.template.System input module": "System Input", + "core.module.template.Team app": "Team App", + "core.module.template.Tool module": "Tool", + "core.module.template.UnKnow Module": "Unknown Module", + "core.module.template.ai_chat": "AI conversation", + "core.module.template.ai_chat_intro": "AI large model dialogue", + "core.module.template.config_params": "Can configure application system parameters", + "core.module.template.empty_plugin": "Blank plugin", + "core.module.template.empty_workflow": "Blank workflow", + "core.module.template.http body placeholder": "Same syntax as Apifox", + "core.module.template.self_output": "Custom plug-in output", + "core.module.template.system_config": "System configuration", + "core.module.template.system_config_info": "Can configure application system parameters", + "core.module.template.work_start": "Process starts", + "core.module.templates.Load plugin error": "Failed to Load Plugin", + "core.module.variable.Custom type": "Custom Variable", + "core.module.variable.add option": "Add Option", + "core.module.variable.input type": "Text", + "core.module.variable.key": "Variable Key", + "core.module.variable.key already exists": "Key Already Exists", + "core.module.variable.key is required": "Variable Key is Required", + "core.module.variable.select type": "Dropdown Single Select", + "core.module.variable.text max length": "Max Length", + "core.module.variable.textarea type": "Paragraph", + "core.module.variable.variable name": "Variable Name", + "core.module.variable.variable name is required": "Variable Name Cannot Be Empty", + "core.module.variable.variable option is required": "Options Cannot Be All Empty", + "core.module.variable.variable option is value is required": "Option Content Cannot Be Empty", + "core.module.variable.variable options": "Options", + "core.module.variable add option": "Add Option", + "core.plugin.Custom headers": "Custom Request Headers", + "core.plugin.Free": "This plugin does not consume points", + "core.plugin.Get Plugin Module Detail Failed": "Failed to Retrieve Plugin Information", + "core.plugin.Http plugin intro placeholder": "For display only, no actual effect", + "core.plugin.cost": "Points Consumption:", + "core.view_chat_detail": "View Chat Details", + "core.workflow.Can not delete node": "This Node Cannot Be Deleted", + "core.workflow.Change input type tip": "Changing the input type will clear the filled values, please confirm!", + "core.workflow.Check Failed": "Workflow Validation Failed, Please Check If the Nodes Are Correctly Filled and the Connections Are Normal", + "core.workflow.Confirm stop debug": "Confirm to Stop Debugging? Debug Information Will Not Be Retained.", + "core.workflow.Copy node": "Node Copied", + "core.workflow.Custom inputs": "Custom Inputs", + "core.workflow.Custom outputs": "Custom Outputs", + "core.workflow.Dataset quote": "Dataset Quote", + "core.workflow.Debug": "Debug", + "core.workflow.Debug Node": "Debug Mode", + "core.workflow.Failed": "Run Failed", + "core.workflow.Not intro": "This Node Has No Introduction", + "core.workflow.Run": "Run", + "core.workflow.Running": "Running", + "core.workflow.Save and publish": "Save and Publish", + "core.workflow.Save to cloud": "Save Only", + "core.workflow.Skipped": "Skipped", + "core.workflow.Stop debug": "Stop Debugging", + "core.workflow.Success": "Run Successful", + "core.workflow.Value type": "Data Type", + "core.workflow.Variable.Variable type": "Variable Type", + "core.workflow.debug.Done": "Debugging Completed", + "core.workflow.debug.Hide result": "Hide Result", + "core.workflow.debug.Not result": "No Run Result", + "core.workflow.debug.Run result": "Run Result", + "core.workflow.debug.Show result": "Show Result", + "core.workflow.dynamic_input": "dynamic input", + "core.workflow.inputType.JSON Editor": "JSON Input Box", + "core.workflow.inputType.Manual input": "Manual Input", + "core.workflow.inputType.Manual select": "Manual Select", + "core.workflow.inputType.Reference": "Variable Reference", + "core.workflow.inputType.custom": "Custom Variable", + "core.workflow.inputType.dynamicTargetInput": "Dynamic External Data", + "core.workflow.inputType.input": "Single Line Input Box", + "core.workflow.inputType.number input": "Number Input Box", + "core.workflow.inputType.select": "Single Select Box", + "core.workflow.inputType.selectApp": "App Select", + "core.workflow.inputType.selectDataset": "Dataset Select", + "core.workflow.inputType.selectLLMModel": "Chat Model Select", + "core.workflow.inputType.switch": "Switch", + "core.workflow.inputType.textarea": "Multi-line Input Box", + "core.workflow.publish.OnRevert version": "Click to Revert to This Version", + "core.workflow.publish.OnRevert version confirm": "Confirm to Revert to This Version? The configuration of the editing version will be saved, and a new release version will be created for the reverted version.", + "core.workflow.publish.histories": "Release Records", + "core.workflow.template.Interactive": "Interactive", + "core.workflow.template.Multimodal": "Multimodal", + "core.workflow.template.Search": "Search", + "core.workflow.tool.Handle": "Tool Connector", + "core.workflow.tool.Select Tool": "Select Tool", + "core.workflow.value": "Value", + "core.workflow.variable": "Variable", "create": "Create", "cron_job_run_app": "Scheduled Task", - "dataset": { - "Confirm move the folder": "Confirm to Move to This Directory", - "Confirm to delete the data": "Confirm to Delete This Data?", - "Confirm to delete the file": "Confirm to Delete This File and All Its Data?", - "Create Folder": "Create Folder", - "Create manual collection": "Create Manual Dataset", - "Delete Dataset Error": "Delete Dataset Error", - "Edit Folder": "Edit Folder", - "Edit Info": "Edit Information", - "Export": "Export", - "Export Dataset Limit Error": "Export Data Failed", - "Folder Name": "Enter Folder Name", - "Insert Data": "Insert", - "Manual collection Tip": "Manual datasets allow you to create an empty container to hold data", - "Move Failed": "Move Error", - "Select Dataset": "Select This Dataset", - "Select Dataset Tips": "Only Datasets with the same index model can be selected", - "Select Folder": "Enter Folder", - "Training Name": "Data Training", - "collections": { - "Collection Embedding": "{{total}} Indexes", - "Confirm to delete the folder": "Confirm to Delete This Folder and All Its Contents?", - "Create And Import": "Create/Import", - "Data Amount": "Total Data", - "Select Collection": "Select File", - "Select One Collection To Store": "Select a File to Store" - }, - "data": { - "Can not edit": "No Edit Permission", - "Custom Index Number": "Custom Index {{number}}", - "Default Index": "Default Index", - "Delete Tip": "Confirm to Delete This Data?", - "Index Placeholder": "Enter Index Text Content", - "Input Success Tip": "Data Imported Successfully", - "Update Success Tip": "Data Updated Successfully", - "edit": { - "Index": "Data Index ({{amount}})", - "divide_content": "Segment Content" - }, - "input is empty": "Data Content Cannot Be Empty" - }, - "dataset_name": "Dataset Name", - "deleteFolderTips": "Confirm to Delete This Folder and All Its Contained Datasets? Data Cannot Be Recovered After Deletion, Please Confirm!", - "test": { - "noResult": "No Search Results" - } - }, - "error": { - "Create failed": "Create failed", - "fileNotFound": "File not found~", - "inheritPermissionError": "Inherit permission Error", - "missingParams": "Insufficient parameters", - "upload_file_error_filename": "{{name}} Upload Failed", - "username_empty": "Account cannot be empty" - }, + "dataset.Confirm move the folder": "Confirm to Move to This Directory", + "dataset.Confirm to delete the data": "Confirm to Delete This Data?", + "dataset.Confirm to delete the file": "Confirm to Delete This File and All Its Data?", + "dataset.Create Folder": "Create Folder", + "dataset.Create manual collection": "Create Manual Dataset", + "dataset.Delete Dataset Error": "Delete Dataset Error", + "dataset.Edit Folder": "Edit Folder", + "dataset.Edit Info": "Edit Information", + "dataset.Export": "Export", + "dataset.Export Dataset Limit Error": "Export Data Failed", + "dataset.Folder Name": "Enter Folder Name", + "dataset.Insert Data": "Insert", + "dataset.Manual collection Tip": "Manual datasets allow you to create an empty container to hold data", + "dataset.Move Failed": "Move Error", + "dataset.Select Dataset": "Select This Dataset", + "dataset.Select Dataset Tips": "Only Datasets with the same index model can be selected", + "dataset.Select Folder": "Enter Folder", + "dataset.Training Name": "Data Training", + "dataset.collections.Collection Embedding": "{{total}} Indexes", + "dataset.collections.Confirm to delete the folder": "Confirm to Delete This Folder and All Its Contents?", + "dataset.collections.Create And Import": "Create/Import", + "dataset.collections.Data Amount": "Total Data", + "dataset.collections.Select Collection": "Select File", + "dataset.collections.Select One Collection To Store": "Select a File to Store", + "dataset.data.Can not edit": "No Edit Permission", + "dataset.data.Custom Index Number": "Custom Index {{number}}", + "dataset.data.Default Index": "Default Index", + "dataset.data.Delete Tip": "Confirm to Delete This Data?", + "dataset.data.Index Placeholder": "Enter Index Text Content", + "dataset.data.Input Success Tip": "Data Imported Successfully", + "dataset.data.Update Success Tip": "Data Updated Successfully", + "dataset.data.edit.Index": "Data Index ({{amount}})", + "dataset.data.edit.divide_content": "Segment Content", + "dataset.data.input is empty": "Data Content Cannot Be Empty", + "dataset.dataset_name": "Dataset Name", + "dataset.deleteFolderTips": "Confirm to Delete This Folder and All Its Contained Datasets? Data Cannot Be Recovered After Deletion, Please Confirm!", + "dataset.test.noResult": "No Search Results", + "error.Create failed": "Create failed", + "error.fileNotFound": "File not found~", + "error.inheritPermissionError": "Inherit permission Error", + "error.missingParams": "Insufficient parameters", + "error.upload_file_error_filename": "{{name}} Upload Failed", + "error.username_empty": "Account cannot be empty", "error.code_error": "Verification code error", "extraction_results": "Extraction Results", "field_name": "Field Name", @@ -1063,424 +854,336 @@ "get_app_failed": "Failed to Retrieve App", "get_laf_failed": "Failed to Retrieve Laf Function List", "has_verification": "Verified, Click to Unbind", - "info": { - "buy_extra": "Buy Extra Package", - "csv_download": "Click to Download Batch Test Template", - "csv_message": "Read the first column of the CSV file for batch testing, supporting up to 100 groups of data at a time.", - "felid_message": "Field key must be pure English letters or numbers and cannot start with a number.", - "free_plan": "If a free team does not log in to the system for 30 consecutive days, the system will automatically clear the account's Dataset.", - "include": "Includes Standard Package and Extra Resource Pack", - "node_info": "Adjusting this module will affect the timing of tool calls.\nYou can guide the model to call tools by accurately describing the function of this module.", - "old_version_attention": "Detected that your advanced orchestration is an old version. The system will automatically format it into the new workflow version.\n\nDue to significant version differences, some workflows may not be arranged correctly. Please manually reconnect the workflow. If it is still abnormal, try deleting the corresponding node and re-adding it.\n\nYou can directly click debug to test the workflow. After debugging, click publish. The new workflow will only be saved and take effect after you click publish.\n\nBefore you publish the new workflow, auto-save will not take effect.", - "open_api_notice": "You can fill in the relevant keys of OpenAI/OneAPI. If you fill in this content, the 'AI Chat', 'Question Classification', and 'Content Extraction' on the online platform will use the key you filled in and will not be charged. Please check if your key has access to the corresponding model. GPT models can choose FastAI.", - "open_api_placeholder": "Request address, default is the official OpenAI. You can fill in the transit address, 'v1' will not be automatically completed", - "resource": "Resource Usage" - }, + "info.buy_extra": "Buy Extra Package", + "info.csv_download": "Click to Download Batch Test Template", + "info.csv_message": "Read the first column of the CSV file for batch testing, supporting up to 100 groups of data at a time.", + "info.felid_message": "Field key must be pure English letters or numbers and cannot start with a number.", + "info.free_plan": "If a free team does not log in to the system for 30 consecutive days, the system will automatically clear the account's Dataset.", + "info.include": "Includes Standard Package and Extra Resource Pack", + "info.node_info": "Adjusting this module will affect the timing of tool calls.\nYou can guide the model to call tools by accurately describing the function of this module.", + "info.old_version_attention": "Detected that your advanced orchestration is an old version. The system will automatically format it into the new workflow version.\n\nDue to significant version differences, some workflows may not be arranged correctly. Please manually reconnect the workflow. If it is still abnormal, try deleting the corresponding node and re-adding it.\n\nYou can directly click debug to test the workflow. After debugging, click publish. The new workflow will only be saved and take effect after you click publish.\n\nBefore you publish the new workflow, auto-save will not take effect.", + "info.open_api_notice": "You can fill in the relevant keys of OpenAI/OneAPI. If you fill in this content, the 'AI Chat', 'Question Classification', and 'Content Extraction' on the online platform will use the key you filled in and will not be charged. Please check if your key has access to the corresponding model. GPT models can choose FastAI.", + "info.open_api_placeholder": "Request address, default is the official OpenAI. You can fill in the transit address, 'v1' will not be automatically completed", + "info.resource": "Resource Usage", "invalid_variable": "Invalid Variable", "is_open": "Is Open", "is_using": "In Use", "item_description": "Field Description", "item_name": "Field Name", "key_repetition": "Key Repetition", - "navbar": { - "Account": "Account", - "Chat": "Chat", - "Datasets": "Datasets", - "Studio": "Studio", - "Tools": "Tools" - }, + "navbar.Account": "Account", + "navbar.Chat": "Chat", + "navbar.Datasets": "Datasets", + "navbar.Studio": "Studio", + "navbar.Tools": "Tools", "new_create": "Create New", "no": "No", "no_laf_env": "System Not Configured with Laf Environment", "not_yet_introduced": "No Introduction Yet", "option": "Option", - "pay": { - "amount": "Amount", - "package_tip": { - "buy": "The package you purchased is lower than the current package. This package will take effect after the current package expires.\nYou can view the package usage in Account - Personal Information - Package Details.", - "renewal": "You are renewing the package. You can view the package usage in Account - Personal Information - Package Details.", - "upgrade": "The package you purchased is higher than the current package. This package will take effect immediately, and the current package will take effect later. You can view the package usage in Account - Personal Information - Package Details." - }, - "wechat": "Please Scan the QR Code with WeChat to Pay: {{price}} Yuan\nPlease Do Not Close the Page", - "yuan": "{{amount}} Yuan" - }, - "permission": { - "Collaborator": "Collaborator", - "Default permission": "Default Permission", - "Manage": "Manage", - "No InheritPermission": "Permission Inheritance Restricted", - "Not collaborator": "No Collaborator", - "Owner": "Owner", - "Permission": "Permission", - "Permission config": "Permission Configuration", - "Private": "Private", - "Private Tip": "Only Available to Yourself", - "Public": "Team", - "Public Tip": "Available to All Team Members", - "Remove InheritPermission Confirm": "This operation will invalidate permission inheritance. Proceed?", - "Resume InheritPermission Confirm": "Resume inheriting permissions from the parent folder?", - "Resume InheritPermission Failed": "Resume Failed", - "Resume InheritPermission Success": "Resume Successful", - "change_owner": "Transfer Ownership", - "change_owner_failed": "Transfer Ownership Failed", - "change_owner_placeholder": "Enter Username to Search Account", - "change_owner_success": "Ownership Transferred Successfully", - "change_owner_tip": "Your permissions will not be retained after the transfer", - "change_owner_to": "Transfer to", - "manager": "administrator", - "read": "Read permission", - "write": "write permission" - }, - "plugin": { - "App": "Select App", - "Currentapp": "Current App", - "Description": "Description", - "Edit Http Plugin": "Edit HTTP Plugin", - "Enter PAT": "Enter Personal Access Token (PAT)", - "Get Plugin Module Detail Failed": "Failed to Retrieve Plugin Information", - "Import Plugin": "Import HTTP Plugin", - "Import from URL": "Import from URL. https://xxxx", - "Intro": "Plugin Introduction", - "Invalid Env": "Invalid Laf Environment", - "Invalid Schema": "Invalid Schema", - "Invalid URL": "Invalid URL", - "Method": "Method", - "Path": "Path", - "Please bind laf accout first": "Please Bind Laf Account First", - "Plugin List": "Plugin List", - "Search plugin": "Search Plugin", - "Search_app": "Search App", - "Set Name": "Name the Plugin", - "contribute": "Contribute Plugin", - "go to laf": "Go to Write", - "path": "Path" - }, + "pay.amount": "Amount", + "pay.package_tip.buy": "The package you purchased is lower than the current package. This package will take effect after the current package expires.\nYou can view the package usage in Account - Personal Information - Package Details.", + "pay.package_tip.renewal": "You are renewing the package. You can view the package usage in Account - Personal Information - Package Details.", + "pay.package_tip.upgrade": "The package you purchased is higher than the current package. This package will take effect immediately, and the current package will take effect later. You can view the package usage in Account - Personal Information - Package Details.", + "pay.wechat": "Please Scan the QR Code with WeChat to Pay: {{price}} Yuan\nPlease Do Not Close the Page", + "pay.yuan": "{{amount}} Yuan", + "permission.Collaborator": "Collaborator", + "permission.Default permission": "Default Permission", + "permission.Manage": "Manage", + "permission.No InheritPermission": "Permission Inheritance Restricted", + "permission.Not collaborator": "No Collaborator", + "permission.Owner": "Owner", + "permission.Permission": "Permission", + "permission.Permission config": "Permission Configuration", + "permission.Private": "Private", + "permission.Private Tip": "Only Available to Yourself", + "permission.Public": "Team", + "permission.Public Tip": "Available to All Team Members", + "permission.Remove InheritPermission Confirm": "This operation will invalidate permission inheritance. Proceed?", + "permission.Resume InheritPermission Confirm": "Resume inheriting permissions from the parent folder?", + "permission.Resume InheritPermission Failed": "Resume Failed", + "permission.Resume InheritPermission Success": "Resume Successful", + "permission.change_owner": "Transfer Ownership", + "permission.change_owner_failed": "Transfer Ownership Failed", + "permission.change_owner_placeholder": "Enter Username to Search Account", + "permission.change_owner_success": "Ownership Transferred Successfully", + "permission.change_owner_tip": "Your permissions will not be retained after the transfer", + "permission.change_owner_to": "Transfer to", + "permission.manager": "administrator", + "permission.read": "Read permission", + "permission.write": "write permission", + "plugin.App": "Select App", + "plugin.Currentapp": "Current App", + "plugin.Description": "Description", + "plugin.Edit Http Plugin": "Edit HTTP Plugin", + "plugin.Enter PAT": "Enter Personal Access Token (PAT)", + "plugin.Get Plugin Module Detail Failed": "Failed to Retrieve Plugin Information", + "plugin.Import Plugin": "Import HTTP Plugin", + "plugin.Import from URL": "Import from URL. https://xxxx", + "plugin.Intro": "Plugin Introduction", + "plugin.Invalid Env": "Invalid Laf Environment", + "plugin.Invalid Schema": "Invalid Schema", + "plugin.Invalid URL": "Invalid URL", + "plugin.Method": "Method", + "plugin.Path": "Path", + "plugin.Please bind laf accout first": "Please Bind Laf Account First", + "plugin.Plugin List": "Plugin List", + "plugin.Search plugin": "Search Plugin", + "plugin.Search_app": "Search App", + "plugin.Set Name": "Name the Plugin", + "plugin.contribute": "Contribute Plugin", + "plugin.go to laf": "Go to Write", + "plugin.path": "Path", "required": "Required", "resume_failed": "Resume Failed", "select_reference_variable": "Select Reference Variable", "share_link": "Share Link", - "support": { - "account": { - "Individuation": "Personalization" - }, - "inform": { - "Read": "Read" - }, - "openapi": { - "Api baseurl": "API Base URL", - "Api manager": "API Key Management", - "Copy success": "API Address Copied", - "New api key": "New API Key", - "New api key tip": "Please keep your key safe, it will not be displayed again" - }, - "outlink": { - "Delete link tip": "Confirm to Delete This Login-Free Link? The link will become invalid immediately after deletion, but the chat logs will be retained. Please confirm!", - "Max usage points": "Points Limit", - "Max usage points tip": "The maximum number of points allowed for this link. It cannot be used after exceeding the limit. -1 means unlimited.", - "Usage points": "Points Consumption", - "share": { - "Response Quote": "Return Quote", - "Response Quote tips": "Return quoted content in the share link, but do not allow users to download the original document" - } - }, - "permission": { - "Permission": "Permission" - }, - "standard": { - "AI Bonus Points": "AI Points", - "due_date": "Due Date", - "storage": "Storage", - "type": "Type" - }, - "team": { - "limit": { - "No permission rerank": "No Permission to Use Result Re-rank, Please Upgrade Your Package" - } - }, - "user": { - "Avatar": "Avatar", - "Go laf env": "Click to Go to {{env}} to Get PAT Token.", - "Laf account course": "View the Tutorial for Binding Laf Account.", - "Laf account intro": "After binding your Laf account, you can use the Laf module in the workflow to write code online.", - "Need to login": "Please Log In First", - "Price": "Pricing", - "User self info": "Profile", - "auth": { - "Sending Code": "Sending Code" - }, - "captcha_placeholder": "Please enter the verification code", - "inform": { - "System message": "System Message" - }, - "login": { - "Email": "Email", - "Github": "GitHub Login", - "Google": "Google Login", - "Password": "Password", - "Password login": "Password Login", - "Phone": "Phone Login", - "Phone number": "Phone Number", - "Provider error": "Login Error, Please Try Again", - "Username": "Username", - "Wechat": "WeChat Login", - "can_not_login": "Cannot Log In, Click to Contact", - "error": "Login Error", - "security_failed": "Security Verification Failed", - "wx_qr_login": "WeChat QR Code Login" - }, - "logout": { - "confirm": "Confirm to Log Out?" - }, - "team": { - "Dataset usage": "Dataset Capacity", - "Team Tags Async Success": "Sync Completed", - "member": "Member" - } - }, - "wallet": { - "Ai point every thousand tokens": "{{points}} Points/1K Tokens", - "Amount": "Amount", - "Buy": "Buy", - "Not sufficient": "Insufficient AI Points, Please Upgrade Your Package or Purchase Additional AI Points to Continue Using.", - "Plan expired time": "Package Expiration Time", - "Standard Plan Detail": "Package Details", - "To read plan": "View Package", - "amount_0": "Purchase Quantity Cannot Be 0", - "apply_invoice": "Apply for Invoice", - "bill": { - "Number": "Order Number", - "Status": "Status", - "Type": "Order Type", - "payWay": { - "Way": "Payment Method", - "balance": "Balance Payment", - "wx": "WeChat Payment" - }, - "status": { - "closed": "Closed", - "notpay": "Unpaid", - "refund": "Refunded", - "success": "Payment Successful" - } - }, - "bill_detail": "Bill Details", - "bill_tag": { - "bill": "Bill Records", - "default_header": "Default Header", - "invoice": "Invoice Records" - }, - "billable_invoice": "Billable Invoice", - "buy_resource": "Buy Resource Pack", - "has_invoice": "Invoiced", - "invoice_amount": "Invoice Amount", - "invoice_data": { - "bank": "Bank", - "bank_account": "Bank Account", - "company_address": "Company Address", - "company_phone": "Company Phone", - "email": "Email Address", - "need_special_invoice": "Need Special Invoice", - "organization_name": "Organization Name", - "unit_code": "Unified Credit Code" - }, - "invoice_detail": "Invoice Details", - "invoice_info": "The invoice will be sent to the email within 3-7 working days, please wait patiently", - "invoicing": "Invoicing", - "moduleName": { - "index": "Index Generation", - "qa": "QA Split" - }, - "noBill": "No Bill Records", - "no_invoice": "No Invoice Records", - "subscription": { - "AI points": "AI Points", - "AI points click to read tip": "Each time the AI model is called, a certain amount of AI points (similar to tokens) will be consumed. Click to view detailed calculation rules.", - "AI points usage": "AI Points Usage", - "AI points usage tip": "Each time the AI model is called, a certain amount of AI points will be consumed. For specific calculation standards, please refer to the 'Pricing' above.", - "Ai points": "AI Points Calculation Standards", - "Current plan": "Current Package", - "Extra ai points": "Extra AI Points", - "Extra dataset size": "Extra Dataset Capacity", - "Extra plan": "Extra Resource Pack", - "Extra plan tip": "When the standard package is not enough, you can purchase extra resource packs to continue using", - "FAQ": "FAQ", - "Month amount": "Months", - "Next plan": "Future Package", - "Stand plan level": "Subscription Package", - "Sub plan": "Subscription Package", - "Sub plan tip": "Free to use {{title}} or upgrade to a higher package", - "Team plan and usage": "Package and Usage", - "Training weight": "Training Priority: {{weight}}", - "Update extra ai points": "Extra AI Points", - "Update extra dataset size": "Extra Storage", - "Upgrade plan": "Upgrade Package", - "ai_model": "AI Language Model", - "function": { - "History store": "{{amount}} Days of Chat History Retention", - "Max app": "{{amount}} Apps & Plugins", - "Max dataset": "{{amount}} Datasets", - "Max dataset size": "{{amount}} Dataset Indexes", - "Max members": "{{amount}} Team Members", - "Points": "{{amount}} AI Points" - }, - "mode": { - "Month": "Monthly", - "Period": "Subscription Period", - "Year": "Yearly", - "Year sale": "Two Months Free" - }, - "point": "Points", - "rerank": "Result Re-rank", - "standardSubLevel": { - "custom": "Custom Version", - "enterprise": "Enterprise Version", - "enterprise_desc": "Suitable for small and medium-sized enterprises to build Dataset applications in production environments", - "experience": "Experience Version", - "experience_desc": "Unlock the full functionality of FastGPT", - "free": "Free Version", - "free desc": "Basic functions can be used for free every month. If the system is not logged in for 30 consecutive days, the Dataset will be automatically cleared.", - "team": "Team Version", - "team_desc": "Suitable for small teams to build Dataset applications and provide external services" - }, - "status": { - "active": "Active", - "expired": "Expired", - "inactive": "Inactive" - }, - "token_compute": "Click to View Online Tokens Calculator", - "type": { - "balance": "Balance Recharge", - "extraDatasetSize": "Dataset Expansion", - "extraPoints": "AI Points Package", - "standard": "Package Subscription" - }, - "web_site_sync": "Website Sync" - }, - "usage": { - "Ai model": "AI Model", - "App name": "App Name", - "Audio Speech": "Voice Playback", - "Bill Module": "Billing Module", - "Duration": "Duration (seconds)", - "Extension result": "Question Optimization Result", - "Module name": "Module Name", - "Source": "Source", - "Text Length": "Text Length", - "Time": "Generation Time", - "Token Length": "Token Length", - "Total": "Total Amount", - "Total points": "AI Points Consumption", - "Usage Detail": "Usage Details", - "Whisper": "Voice Input" - } - } - }, + "support.account.Individuation": "Personalization", + "support.inform.Read": "Read", + "support.openapi.Api baseurl": "API Base URL", + "support.openapi.Api manager": "API Key Management", + "support.openapi.Copy success": "API Address Copied", + "support.openapi.New api key": "New API Key", + "support.openapi.New api key tip": "Please keep your key safe, it will not be displayed again", + "support.outlink.Delete link tip": "Confirm to Delete This Login-Free Link? The link will become invalid immediately after deletion, but the chat logs will be retained. Please confirm!", + "support.outlink.Max usage points": "Points Limit", + "support.outlink.Max usage points tip": "The maximum number of points allowed for this link. It cannot be used after exceeding the limit. -1 means unlimited.", + "support.outlink.Usage points": "Points Consumption", + "support.outlink.share.Response Quote": "Return Quote", + "support.outlink.share.Response Quote tips": "Return quoted content in the share link, but do not allow users to download the original document", + "support.permission.Permission": "Permission", + "support.standard.AI Bonus Points": "AI Points", + "support.standard.due_date": "Due Date", + "support.standard.storage": "Storage", + "support.standard.type": "Type", + "support.team.limit.No permission rerank": "No Permission to Use Result Re-rank, Please Upgrade Your Package", + "support.user.Avatar": "Avatar", + "support.user.Go laf env": "Click to Go to {{env}} to Get PAT Token.", + "support.user.Laf account course": "View the Tutorial for Binding Laf Account.", + "support.user.Laf account intro": "After binding your Laf account, you can use the Laf module in the workflow to write code online.", + "support.user.Need to login": "Please Log In First", + "support.user.Price": "Pricing", + "support.user.User self info": "Profile", + "support.user.auth.Sending Code": "Sending Code", + "support.user.captcha_placeholder": "Please enter the verification code", + "support.user.inform.System message": "System Message", + "support.user.login.Email": "Email", + "support.user.login.Github": "GitHub Login", + "support.user.login.Google": "Google Login", + "support.user.login.Password": "Password", + "support.user.login.Password login": "Password Login", + "support.user.login.Phone": "Phone Login", + "support.user.login.Phone number": "Phone Number", + "support.user.login.Provider error": "Login Error, Please Try Again", + "support.user.login.Username": "Username", + "support.user.login.Wechat": "WeChat Login", + "support.user.login.can_not_login": "Cannot Log In, Click to Contact", + "support.user.login.error": "Login Error", + "support.user.login.security_failed": "Security Verification Failed", + "support.user.login.wx_qr_login": "WeChat QR Code Login", + "support.user.logout.confirm": "Confirm to Log Out?", + "support.user.team.Dataset usage": "Dataset Capacity", + "support.user.team.Team Tags Async Success": "Sync Completed", + "support.user.team.member": "Member", + "support.wallet.Ai point every thousand tokens": "{{points}} Points/1K Tokens", + "support.wallet.Amount": "Amount", + "support.wallet.Buy": "Buy", + "support.wallet.Not sufficient": "Insufficient AI Points, Please Upgrade Your Package or Purchase Additional AI Points to Continue Using.", + "support.wallet.Plan expired time": "Package Expiration Time", + "support.wallet.Standard Plan Detail": "Package Details", + "support.wallet.To read plan": "View Package", + "support.wallet.amount_0": "Purchase Quantity Cannot Be 0", + "support.wallet.apply_invoice": "Apply for Invoice", + "support.wallet.bill.Number": "Order Number", + "support.wallet.bill.Status": "Status", + "support.wallet.bill.Type": "Order Type", + "support.wallet.bill.payWay.Way": "Payment Method", + "support.wallet.bill.payWay.balance": "Balance Payment", + "support.wallet.bill.payWay.wx": "WeChat Payment", + "support.wallet.bill.status.closed": "Closed", + "support.wallet.bill.status.notpay": "Unpaid", + "support.wallet.bill.status.refund": "Refunded", + "support.wallet.bill.status.success": "Payment Successful", + "support.wallet.bill_detail": "Bill Details", + "support.wallet.bill_tag.bill": "Bill Records", + "support.wallet.bill_tag.default_header": "Default Header", + "support.wallet.bill_tag.invoice": "Invoice Records", + "support.wallet.billable_invoice": "Billable Invoice", + "support.wallet.buy_resource": "Buy Resource Pack", + "support.wallet.has_invoice": "Invoiced", + "support.wallet.invoice_amount": "Invoice Amount", + "support.wallet.invoice_data.bank": "Bank", + "support.wallet.invoice_data.bank_account": "Bank Account", + "support.wallet.invoice_data.company_address": "Company Address", + "support.wallet.invoice_data.company_phone": "Company Phone", + "support.wallet.invoice_data.email": "Email Address", + "support.wallet.invoice_data.need_special_invoice": "Need Special Invoice", + "support.wallet.invoice_data.organization_name": "Organization Name", + "support.wallet.invoice_data.unit_code": "Unified Credit Code", + "support.wallet.invoice_detail": "Invoice Details", + "support.wallet.invoice_info": "The invoice will be sent to the email within 3-7 working days, please wait patiently", + "support.wallet.invoicing": "Invoicing", + "support.wallet.moduleName.index": "Index Generation", + "support.wallet.moduleName.qa": "QA Split", + "support.wallet.noBill": "No Bill Records", + "support.wallet.no_invoice": "No Invoice Records", + "support.wallet.subscription.AI points": "AI Points", + "support.wallet.subscription.AI points click to read tip": "Each time the AI model is called, a certain amount of AI points (similar to tokens) will be consumed. Click to view detailed calculation rules.", + "support.wallet.subscription.AI points usage": "AI Points Usage", + "support.wallet.subscription.AI points usage tip": "Each time the AI model is called, a certain amount of AI points will be consumed. For specific calculation standards, please refer to the 'Pricing' above.", + "support.wallet.subscription.Ai points": "AI Points Calculation Standards", + "support.wallet.subscription.Current plan": "Current Package", + "support.wallet.subscription.Extra ai points": "Extra AI Points", + "support.wallet.subscription.Extra dataset size": "Extra Dataset Capacity", + "support.wallet.subscription.Extra plan": "Extra Resource Pack", + "support.wallet.subscription.Extra plan tip": "When the standard package is not enough, you can purchase extra resource packs to continue using", + "support.wallet.subscription.FAQ": "FAQ", + "support.wallet.subscription.Month amount": "Months", + "support.wallet.subscription.Next plan": "Future Package", + "support.wallet.subscription.Stand plan level": "Subscription Package", + "support.wallet.subscription.Sub plan": "Subscription Package", + "support.wallet.subscription.Sub plan tip": "Free to use {{title}} or upgrade to a higher package", + "support.wallet.subscription.Team plan and usage": "Package and Usage", + "support.wallet.subscription.Training weight": "Training Priority: {{weight}}", + "support.wallet.subscription.Update extra ai points": "Extra AI Points", + "support.wallet.subscription.Update extra dataset size": "Extra Storage", + "support.wallet.subscription.Upgrade plan": "Upgrade Package", + "support.wallet.subscription.ai_model": "AI Language Model", + "support.wallet.subscription.function.History store": "{{amount}} Days of Chat History Retention", + "support.wallet.subscription.function.Max app": "{{amount}} Apps & Plugins", + "support.wallet.subscription.function.Max dataset": "{{amount}} Datasets", + "support.wallet.subscription.function.Max dataset size": "{{amount}} Dataset Indexes", + "support.wallet.subscription.function.Max members": "{{amount}} Team Members", + "support.wallet.subscription.function.Points": "{{amount}} AI Points", + "support.wallet.subscription.mode.Month": "Monthly", + "support.wallet.subscription.mode.Period": "Subscription Period", + "support.wallet.subscription.mode.Year": "Yearly", + "support.wallet.subscription.mode.Year sale": "Two Months Free", + "support.wallet.subscription.point": "Points", + "support.wallet.subscription.rerank": "Result Re-rank", + "support.wallet.subscription.standardSubLevel.custom": "Custom Version", + "support.wallet.subscription.standardSubLevel.enterprise": "Enterprise Version", + "support.wallet.subscription.standardSubLevel.enterprise_desc": "Suitable for small and medium-sized enterprises to build Dataset applications in production environments", + "support.wallet.subscription.standardSubLevel.experience": "Experience Version", + "support.wallet.subscription.standardSubLevel.experience_desc": "Unlock the full functionality of FastGPT", + "support.wallet.subscription.standardSubLevel.free": "Free Version", + "support.wallet.subscription.standardSubLevel.free desc": "Basic functions can be used for free every month. If the system is not logged in for 30 consecutive days, the Dataset will be automatically cleared.", + "support.wallet.subscription.standardSubLevel.team": "Team Version", + "support.wallet.subscription.standardSubLevel.team_desc": "Suitable for small teams to build Dataset applications and provide external services", + "support.wallet.subscription.status.active": "Active", + "support.wallet.subscription.status.expired": "Expired", + "support.wallet.subscription.status.inactive": "Inactive", + "support.wallet.subscription.token_compute": "Click to View Online Tokens Calculator", + "support.wallet.subscription.type.balance": "Balance Recharge", + "support.wallet.subscription.type.extraDatasetSize": "Dataset Expansion", + "support.wallet.subscription.type.extraPoints": "AI Points Package", + "support.wallet.subscription.type.standard": "Package Subscription", + "support.wallet.subscription.web_site_sync": "Website Sync", + "support.wallet.usage.Ai model": "AI Model", + "support.wallet.usage.App name": "App Name", + "support.wallet.usage.Audio Speech": "Voice Playback", + "support.wallet.usage.Bill Module": "Billing Module", + "support.wallet.usage.Duration": "Duration (seconds)", + "support.wallet.usage.Extension result": "Question Optimization Result", + "support.wallet.usage.Module name": "Module Name", + "support.wallet.usage.Source": "Source", + "support.wallet.usage.Text Length": "Text Length", + "support.wallet.usage.Time": "Generation Time", + "support.wallet.usage.Token Length": "Token Length", + "support.wallet.usage.Total": "Total Amount", + "support.wallet.usage.Total points": "AI Points Consumption", + "support.wallet.usage.Usage Detail": "Usage Details", + "support.wallet.usage.Whisper": "Voice Input", "sync_link": "Sync Link", - "system": { - "Concat us": "Contact Us", - "Help Document": "Help Document" - }, + "system.Concat us": "Contact Us", + "system.Help Document": "Help Document", "tag_list": "Tag List", "team_tag": "Team Tag", "textarea_variable_picker_tip": "Enter \"/\" to select a variable", "tool_field": "Tool Field Parameter Configuration", "undefined_var": "Referenced an undefined variable, add it automatically?", - "unit": { - "character": "Character", - "minute": "Minute" - }, + "unit.character": "Character", + "unit.minute": "Minute", "unusable_variable": "No Usable Variables", "upload_file_error": "File Upload Failed", - "user": { - "Account": "Account", - "Amount of earnings": "Earnings (¥)", - "Amount of inviter": "Total Number of Invites", - "Application Name": "Project Name", - "Avatar": "Avatar", - "Change": "Change", - "Copy invite url": "Copy Invite Link", - "Edit name": "Click to Edit Nickname", - "Invite Url": "Invite Link", - "Invite url tip": "Friends registered through this link will be permanently bound to you, and you will receive a balance reward when they recharge.\nAdditionally, you will immediately receive a 5 yuan reward when friends register with their phone number.\nThe reward will be sent to your default team.", - "Laf Account Setting": "Laf Account Configuration", - "Language": "Language", - "Member Name": "Nickname", - "Notification Receive": "Notification Receive", - "Notification Receive Bind": "Please bind the notification receive method first", - "Old password is error": "Old Password is Incorrect", - "OpenAI Account Setting": "OpenAI Account Configuration", - "Password": "Password", - "Pay": "Recharge", - "Promotion": "Promotion", - "Promotion Rate": "Cashback Rate", - "Promotion rate tip": "You will receive a balance reward when friends recharge", - "Replace": "Replace", - "Set OpenAI Account Failed": "Failed to Set OpenAI Account", - "Team": "Team", - "Time": "Time", - "Timezone": "Timezone", - "Update Password": "Update Password", - "Update password failed": "Failed to Update Password", - "Update password successful": "Password Updated Successfully", - "apikey": { - "key": "API Key" - }, - "confirm_password": "Confirm Password", - "new_password": "New Password", - "no_invite_records": "No Invite Records", - "no_notice": "No Notices", - "no_usage_records": "No Usage Records", - "old_password": "Old Password", - "password_message": "Password must be at least 4 characters and at most 60 characters", - "team": { - "Balance": "Team Balance", - "Check Team": "Switch", - "Confirm Invite": "Confirm Invite", - "Create Team": "Create New Team", - "Invite Member": "Invite Member", - "Invite Member Failed Tip": "Failed to Invite Member", - "Invite Member Result Tip": "Invite Result Tip", - "Invite Member Success Tip": "Member Invitation Completed\nSuccess: {{success}} people\nInvalid Username: {{inValid}}\nAlready in Team: {{inTeam}}", - "Invite Member Tips": "The other party can view or use other resources within the team", - "Leave Team": "Leave Team", - "Leave Team Failed": "Failed to Leave Team", - "Member": "Member", - "Member Name": "Member Name", - "Over Max Member Tip": "The team can have up to {{max}} people", - "Personal Team": "Personal Team", - "Processing invitations": "Processing Invitations", - "Processing invitations Tips": "You have {{amount}} team invitations to process", - "Remove Member Confirm Tip": "Confirm to remove {{username}} from the team?", - "Select Team": "Select Team", - "Set Name": "Name the Team", - "Switch Team Failed": "Failed to Switch Team", - "Tags Async": "Save", - "Team Name": "Team Name", - "Team Tags Async": "Tag Sync", - "Team Tags Async Success": "Link Error Successful, Tag Information Updated", - "Update Team": "Update Team Information", - "invite": { - "Accept Confirm": "Confirm to join this team?", - "Accepted": "Joined Team", - "Deal Width Footer Tip": "It will automatically close after processing", - "Reject": "Invitation Rejected", - "Reject Confirm": "Confirm to reject this invitation?", - "accept": "Accept", - "reject": "Reject" - }, - "member": { - "Confirm Leave": "Confirm to leave this team?", - "active": "Joined", - "reject": "Rejected", - "waiting": "Pending Acceptance" - }, - "role": { - "Admin": "Admin", - "Owner": "Owner" - } - }, - "type": "Type" - }, + "user.Account": "Account", + "user.Amount of earnings": "Earnings (¥)", + "user.Amount of inviter": "Total Number of Invites", + "user.Application Name": "Project Name", + "user.Avatar": "Avatar", + "user.Change": "Change", + "user.Copy invite url": "Copy Invite Link", + "user.Edit name": "Click to Edit Nickname", + "user.Invite Url": "Invite Link", + "user.Invite url tip": "Friends registered through this link will be permanently bound to you, and you will receive a balance reward when they recharge.\nAdditionally, you will immediately receive a 5 yuan reward when friends register with their phone number.\nThe reward will be sent to your default team.", + "user.Laf Account Setting": "Laf Account Configuration", + "user.Language": "Language", + "user.Member Name": "Nickname", + "user.Notification Receive": "Notification Receive", + "user.Notification Receive Bind": "Please bind the notification receive method first", + "user.Old password is error": "Old Password is Incorrect", + "user.OpenAI Account Setting": "OpenAI Account Configuration", + "user.Password": "Password", + "user.Pay": "Recharge", + "user.Promotion": "Promotion", + "user.Promotion Rate": "Cashback Rate", + "user.Promotion rate tip": "You will receive a balance reward when friends recharge", + "user.Replace": "Replace", + "user.Set OpenAI Account Failed": "Failed to Set OpenAI Account", + "user.Team": "Team", + "user.Time": "Time", + "user.Timezone": "Timezone", + "user.Update Password": "Update Password", + "user.Update password failed": "Failed to Update Password", + "user.Update password successful": "Password Updated Successfully", + "user.apikey.key": "API Key", + "user.confirm_password": "Confirm Password", + "user.new_password": "New Password", + "user.no_invite_records": "No Invite Records", + "user.no_notice": "No Notices", + "user.no_usage_records": "No Usage Records", + "user.old_password": "Old Password", + "user.password_message": "Password must be at least 4 characters and at most 60 characters", + "user.team.Balance": "Team Balance", + "user.team.Check Team": "Switch", + "user.team.Confirm Invite": "Confirm Invite", + "user.team.Create Team": "Create New Team", + "user.team.Invite Member": "Invite Member", + "user.team.Invite Member Failed Tip": "Failed to Invite Member", + "user.team.Invite Member Result Tip": "Invite Result Tip", + "user.team.Invite Member Success Tip": "Member Invitation Completed\nSuccess: {{success}} people\nInvalid Username: {{inValid}}\nAlready in Team: {{inTeam}}", + "user.team.Invite Member Tips": "The other party can view or use other resources within the team", + "user.team.Leave Team": "Leave Team", + "user.team.Leave Team Failed": "Failed to Leave Team", + "user.team.Member": "Member", + "user.team.Member Name": "Member Name", + "user.team.Over Max Member Tip": "The team can have up to {{max}} people", + "user.team.Personal Team": "Personal Team", + "user.team.Processing invitations": "Processing Invitations", + "user.team.Processing invitations Tips": "You have {{amount}} team invitations to process", + "user.team.Remove Member Confirm Tip": "Confirm to remove {{username}} from the team?", + "user.team.Select Team": "Select Team", + "user.team.Set Name": "Name the Team", + "user.team.Switch Team Failed": "Failed to Switch Team", + "user.team.Tags Async": "Save", + "user.team.Team Name": "Team Name", + "user.team.Team Tags Async": "Tag Sync", + "user.team.Team Tags Async Success": "Link Error Successful, Tag Information Updated", + "user.team.Update Team": "Update Team Information", + "user.team.invite.Accept Confirm": "Confirm to join this team?", + "user.team.invite.Accepted": "Joined Team", + "user.team.invite.Deal Width Footer Tip": "It will automatically close after processing", + "user.team.invite.Reject": "Invitation Rejected", + "user.team.invite.Reject Confirm": "Confirm to reject this invitation?", + "user.team.invite.accept": "Accept", + "user.team.invite.reject": "Reject", + "user.team.member.Confirm Leave": "Confirm to leave this team?", + "user.team.member.active": "Joined", + "user.team.member.reject": "Rejected", + "user.team.member.waiting": "Pending Acceptance", + "user.team.role.Admin": "Admin", + "user.team.role.Owner": "Owner", + "user.type": "Type", "verification": "Verification", "xx_search_result": "{{key}} Search Results", "yes": "Yes" diff --git a/packages/web/i18n/en/dataset.json b/packages/web/i18n/en/dataset.json index 1ce173579..b1b8115e2 100644 --- a/packages/web/i18n/en/dataset.json +++ b/packages/web/i18n/en/dataset.json @@ -1,17 +1,13 @@ { "Enable": "Enable", - "collection": { - "Create update time": "Creation/Update Time", - "Training type": "Training Mode" - }, + "collection.Create update time": "Creation/Update Time", + "collection.Training type": "Training Mode", "collection_tags": "Collection Tags", "common_dataset": "General Dataset", "common_dataset_desc": "Build a Dataset by importing files, web links, or manual input.", "confirm_to_rebuild_embedding_tip": "Are you sure you want to switch the index for the Dataset?\nSwitching the index is a significant operation that requires re-indexing all data in your Dataset, which may take a long time. Please ensure your account has sufficient remaining points.\n\nAdditionally, you need to update the applications that use this Dataset to avoid conflicts with other indexed model Datasets.", - "dataset": { - "no_collections": "No datasets available", - "no_tags": "No tags available" - }, + "dataset.no_collections": "No datasets available", + "dataset.no_tags": "No tags available", "external_file": "External File Library", "external_file_dataset_desc": "Import files from an external file library to build a Dataset. The files will not be stored again.", "external_id": "File Reading ID", @@ -21,27 +17,21 @@ "file_model_function_tip": "Enhances indexing and QA generation", "filename": "Filename", "folder_dataset": "Folder", - "permission": { - "des": { - "manage": "Can manage the entire knowledge base data and information", - "read": "View knowledge base content", - "write": "Ability to add and change knowledge base content" - } - }, + "permission.des.manage": "Can manage the entire knowledge base data and information", + "permission.des.read": "View knowledge base content", + "permission.des.write": "Ability to add and change knowledge base content", "rebuild_embedding_start_tip": "Index model switching task has started", "rebuilding_index_count": "Number of indexes being rebuilt: {{count}}", - "tag": { - "Add New": "Add New", - "Add_new_tag": "Add New Tag", - "Edit_tag": "Edit Tag", - "add": "Create", - "cancel": "Cancel", - "delete_tag_confirm": "Confirm to delete the tag?", - "manage": "Tagging", - "searchOrAddTag": "Search or Add Tag", - "tags": "Tags", - "total_tags": "Total {{total}} tags" - }, + "tag.Add New": "Add New", + "tag.Add_new_tag": "Add New Tag", + "tag.Edit_tag": "Edit Tag", + "tag.add": "Create", + "tag.cancel": "Cancel", + "tag.delete_tag_confirm": "Confirm to delete the tag?", + "tag.manage": "Tagging", + "tag.searchOrAddTag": "Search or Add Tag", + "tag.tags": "Tags", + "tag.total_tags": "Total {{total}} tags", "the_knowledge_base_has_indexes_that_are_being_trained_or_being_rebuilt": "The Dataset has indexes that are being trained or rebuilt", "website_dataset": "Website Sync", "website_dataset_desc": "Website sync allows you to build a Dataset directly using a web link." diff --git a/packages/web/i18n/en/publish.json b/packages/web/i18n/en/publish.json index 03f0ebbe5..f0b2e00cf 100644 --- a/packages/web/i18n/en/publish.json +++ b/packages/web/i18n/en/publish.json @@ -14,13 +14,11 @@ "key_tips": "You can use the API key to access specific interfaces (cannot access the application, use the in-app API key for that)", "link_name": "Share Link Name", "new_feishu_bot": "Add New Feishu Bot", - "official_account": { - "create_modal_title": "Create WeChat Official Account Integration", - "desc": "Connect to WeChat Official Account directly via API", - "edit_modal_title": "Edit WeChat Official Account Integration", - "name": "WeChat Official Account Integration", - "params": "WeChat Official Account Parameters" - }, + "official_account.create_modal_title": "Create WeChat Official Account Integration", + "official_account.desc": "Connect to WeChat Official Account directly via API", + "official_account.edit_modal_title": "Edit WeChat Official Account Integration", + "official_account.name": "WeChat Official Account Integration", + "official_account.params": "WeChat Official Account Parameters", "publish_name": "Name", "qpm_is_empty": "QPM cannot be empty", "qpm_tips": "Maximum number of queries per minute per IP", @@ -29,12 +27,10 @@ "token_auth": "Token Authentication", "token_auth_tips": "Token authentication server URL. If provided, a request will be sent to the specified server for authentication before each conversation.", "token_auth_use_cases": "View Token Authentication Guide", - "wecom": { - "api": "WeCom API", - "bot": "WeCom Bot", - "bot_desc": "Connect to WeCom Bot directly via API", - "create_modal_title": "Create WeCom Bot", - "edit_modal_title": "Edit WeCom Bot", - "title": "Publish to WeCom Bot" - } + "wecom.api": "WeCom API", + "wecom.bot": "WeCom Bot", + "wecom.bot_desc": "Connect to WeCom Bot directly via API", + "wecom.create_modal_title": "Create WeCom Bot", + "wecom.edit_modal_title": "Edit WeCom Bot", + "wecom.title": "Publish to WeCom Bot" } \ No newline at end of file diff --git a/packages/web/i18n/en/user.json b/packages/web/i18n/en/user.json index 314115dd5..df4f96b85 100644 --- a/packages/web/i18n/en/user.json +++ b/packages/web/i18n/en/user.json @@ -1,108 +1,86 @@ { - "bill": { - "balance": "Balance", - "buy_plan": "Purchase Plan", - "contact_customer_service": "Contact Support", - "conversion": "Conversion", - "convert_error": "Conversion Failed", - "convert_success": "Conversion Successful", - "current_token_price": "Current Token Price", - "not_need_invoice": "Balance payment, invoice not available", - "price": "Price", - "renew_plan": "Renew Plan", - "standard_valid_tip": "Plan Usage Rules: Higher-level plans will be used first. Unused plans will be activated later.", - "token_expire_1year": "Tokens are valid for one year", - "tokens": "Tokens", - "use_balance": "Use Balance", - "use_balance_hint": "Due to system upgrade, the 'Auto-renewal from balance' mode is canceled, and the balance recharge option is closed. Your balance can be used to purchase tokens.", - "valid_time": "Effective Time", - "you_can_convert": "You can convert", - "yuan": "Yuan" - }, + "bill.balance": "Balance", + "bill.buy_plan": "Purchase Plan", + "bill.contact_customer_service": "Contact Support", + "bill.conversion": "Conversion", + "bill.convert_error": "Conversion Failed", + "bill.convert_success": "Conversion Successful", + "bill.current_token_price": "Current Token Price", + "bill.not_need_invoice": "Balance payment, invoice not available", + "bill.price": "Price", + "bill.renew_plan": "Renew Plan", + "bill.standard_valid_tip": "Plan Usage Rules: Higher-level plans will be used first. Unused plans will be activated later.", + "bill.token_expire_1year": "Tokens are valid for one year", + "bill.tokens": "Tokens", + "bill.use_balance": "Use Balance", + "bill.use_balance_hint": "Due to system upgrade, the 'Auto-renewal from balance' mode is canceled, and the balance recharge option is closed. Your balance can be used to purchase tokens.", + "bill.valid_time": "Effective Time", + "bill.you_can_convert": "You can convert", + "bill.yuan": "Yuan", "bill_and_invoices": "Bill & Invoice", "bind_inform_account_error": "Failed to Bind Notification Account", "bind_inform_account_success": "Notification Account Bound Successfully", - "delete": { - "admin_failed": "Failed to Delete Admin", - "admin_success": "Admin Deleted Successfully" - }, + "delete.admin_failed": "Failed to Delete Admin", + "delete.admin_success": "Admin Deleted Successfully", "has_chosen": "Selected", "individuation": "Individuation", - "login": { - "error": "Login Error", - "password_condition": "Password can be up to 60 characters", - "success": "Login Successful" - }, + "login.error": "Login Error", + "login.password_condition": "Password can be up to 60 characters", + "login.success": "Login Successful", "name": "Name", "notice": "Notice", - "notification": { - "Bind Notification Pipe Hint": "Please bind a notification receiving account to ensure you receive notifications such as plan expiration reminders, ensuring your service runs smoothly.", - "remind_owner_bind": "Please remind the creator to bind a notification account" - }, + "notification.Bind Notification Pipe Hint": "Please bind a notification receiving account to ensure you receive notifications such as plan expiration reminders, ensuring your service runs smoothly.", + "notification.remind_owner_bind": "Please remind the creator to bind a notification account", "operations": "Actions", - "password": { - "code_required": "Verification Code Required", - "code_send_error": "Failed to Send Verification Code", - "code_sended": "Verification Code Sent", - "confirm": "Confirm Password", - "email_phone_error": "Invalid Email/Phone Number Format", - "email_phone_void": "Email/Phone Number Cannot Be Empty", - "get_code": "Get Verification Code", - "get_code_again": "Get Again in s", - "new_password": "New Password (4-20 characters)", - "not_match": "Passwords Do Not Match", - "password_condition": "Password must be between 4 and 20 characters", - "password_required": "Password Cannot Be Empty", - "retrieve": "Retrieve Password", - "retrieved": "Password Retrieved", - "retrieved_account": "Retrieve {{account}} Account", - "to_login": "Go to Login", - "verification_code": "Verification Code" - }, - "permission": { - "Manage": "Admin", - "Manage tip": "Team admin with full permissions", - "Read": "Read Only", - "Read desc": "Members can only read related resources, cannot create new resources", - "Write": "Write", - "Write tip": "In addition to read access, can create new resources", - "only_collaborators": "Collaborators Only", - "team_read": "Team Read Access", - "team_write": "Team Write Access" - }, - "permission_des": { - "manage": "Can create resources, invite, and delete members", - "read": "Members can only read related resources and cannot create new resources.", - "write": "In addition to readable resources, you can also create new resources" - }, + "password.code_required": "Verification Code Required", + "password.code_send_error": "Failed to Send Verification Code", + "password.code_sended": "Verification Code Sent", + "password.confirm": "Confirm Password", + "password.email_phone_error": "Invalid Email/Phone Number Format", + "password.email_phone_void": "Email/Phone Number Cannot Be Empty", + "password.get_code": "Get Verification Code", + "password.get_code_again": "Get Again in s", + "password.new_password": "New Password (4-20 characters)", + "password.not_match": "Passwords Do Not Match", + "password.password_condition": "Password must be between 4 and 20 characters", + "password.password_required": "Password Cannot Be Empty", + "password.retrieve": "Retrieve Password", + "password.retrieved": "Password Retrieved", + "password.retrieved_account": "Retrieve {{account}} Account", + "password.to_login": "Go to Login", + "password.verification_code": "Verification Code", + "permission.Manage": "Admin", + "permission.Manage tip": "Team admin with full permissions", + "permission.Read": "Read Only", + "permission.Read desc": "Members can only read related resources, cannot create new resources", + "permission.Write": "Write", + "permission.Write tip": "In addition to read access, can create new resources", + "permission.only_collaborators": "Collaborators Only", + "permission.team_read": "Team Read Access", + "permission.team_write": "Team Write Access", + "permission_des.manage": "Can create resources, invite, and delete members", + "permission_des.read": "Members can only read related resources and cannot create new resources.", + "permission_des.write": "In addition to readable resources, you can also create new resources", "permissions": "Permissions", "personal_information": "Me", "personalization": "Personalization", "promotion_records": "Promotion", - "register": { - "confirm": "Confirm Registration", - "register_account": "Register {{account}} Account", - "success": "Registration Successful", - "to_login": "Already have an account? Login" - }, + "register.confirm": "Confirm Registration", + "register.register_account": "Register {{account}} Account", + "register.success": "Registration Successful", + "register.to_login": "Already have an account? Login", "search_user": "Search Username", "sign_out": "Sign out", - "synchronization": { - "button": "Sync Now", - "placeholder": "Enter Sync Tag", - "title": "Enter the sync tag link and click the sync button to synchronize" - }, - "team": { - "Add manager": "Add Admin", - "add_collaborator": "Add Collaborator", - "manage_collaborators": "Manage Collaborators", - "no_collaborators": "No Collaborators" - }, - "usage": { - "feishu": "Feishu", - "official_account": "Official Account", - "share": "Share Link", - "wecom": "WeCom" - }, + "synchronization.button": "Sync Now", + "synchronization.placeholder": "Enter Sync Tag", + "synchronization.title": "Enter the sync tag link and click the sync button to synchronize", + "team.Add manager": "Add Admin", + "team.add_collaborator": "Add Collaborator", + "team.manage_collaborators": "Manage Collaborators", + "team.no_collaborators": "No Collaborators", + "usage.feishu": "Feishu", + "usage.official_account": "Official Account", + "usage.share": "Share Link", + "usage.wecom": "WeCom", "usage_record": "Usages" } \ No newline at end of file diff --git a/packages/web/i18n/en/workflow.json b/packages/web/i18n/en/workflow.json index 4032b87eb..7b0f627ae 100644 --- a/packages/web/i18n/en/workflow.json +++ b/packages/web/i18n/en/workflow.json @@ -9,10 +9,8 @@ "can_not_loop": "This node can't loop.", "choose_another_application_to_call": "Select another application to call", "classification_result": "Classification Result", - "code": { - "Reset template": "Reset Template", - "Reset template confirm": "Confirm reset code template? This will reset all inputs and outputs to template values. Please save your current code." - }, + "code.Reset template": "Reset Template", + "code.Reset template confirm": "Confirm reset code template? This will reset all inputs and outputs to template values. Please save your current code.", "code_execution": "Code Execution", "collection_metadata_filter": "Collection Metadata Filter", "complete_extraction_result": "Complete Extraction Result", @@ -58,10 +56,8 @@ "http_raw_response_description": "Raw HTTP response. Only accepts string or JSON type response data.", "http_request": "HTTP Request", "http_request_error_info": "HTTP request error information, returns empty on success", - "ifelse": { - "Input value": "Input Value", - "Select value": "Select Value" - }, + "ifelse.Input value": "Input Value", + "ifelse.Select value": "Select Value", "input_description": "Field Description", "input_variable_list": "Type / to invoke variable list", "intro_assigned_reply": "This module can directly reply with a specified content. Commonly used for guidance or prompts. Non-string content will be converted to string for output.", @@ -104,10 +100,8 @@ "optional_value_type_tip": "You can specify one or more data types. When dynamically adding fields, users can only select the configured types.", "pan_priority": "Touchpad first", "pass_returned_object_as_output_to_next_nodes": "Pass the object returned in the code as output to the next nodes. The variable name needs to correspond to the return key.", - "plugin": { - "Instruction_Tip": "You can configure an instruction to explain the purpose of the plugin. This instruction will be displayed each time the plugin is used. Supports standard Markdown syntax.", - "Instructions": "Instructions" - }, + "plugin.Instruction_Tip": "You can configure an instruction to explain the purpose of the plugin. This instruction will be displayed each time the plugin is used. Supports standard Markdown syntax.", + "plugin.Instructions": "Instructions", "plugin_input": "Plugin Input", "question_classification": "Question Classification", "question_optimization": "Question Optimization", @@ -121,29 +115,25 @@ "regex": "Regex", "reply_text": "Reply Text", "request_error": "Request Error", - "response": { - "Code log": "Code Log", - "Custom inputs": "Custom Inputs", - "Custom outputs": "Custom Outputs", - "Error": "Error", - "Read file result": "Read File Result", - "read files": "Read Files" - }, + "response.Code log": "Code Log", + "response.Custom inputs": "Custom Inputs", + "response.Custom outputs": "Custom Outputs", + "response.Error": "Error", + "response.Read file result": "Read File Result", + "response.read files": "Read Files", "select_an_application": "Select an Application", "select_another_application_to_call": "You can choose another application to call", "special_array_format": "Special array format, returns an empty array when the search result is empty.", "start_with": "Starts With", "target_fields_description": "A target field consists of 'description' and 'key'. Multiple target fields can be extracted.", - "template": { - "ai_chat": "AI Chat", - "ai_chat_intro": "AI Large Model Chat", - "dataset_search": "Dataset Search", - "dataset_search_intro": "Use 'semantic search' and 'full-text search' capabilities to find potentially relevant reference content from the 'Dataset'.", - "system_config": "System Configuration", - "tool_call": "Tool Call", - "tool_call_intro": "Automatically select one or more functional blocks for calling through the AI model, or call plugins.", - "workflow_start": "Workflow Start" - }, + "template.ai_chat": "AI Chat", + "template.ai_chat_intro": "AI Large Model Chat", + "template.dataset_search": "Dataset Search", + "template.dataset_search_intro": "Use 'semantic search' and 'full-text search' capabilities to find potentially relevant reference content from the 'Dataset'.", + "template.system_config": "System Configuration", + "template.tool_call": "Tool Call", + "template.tool_call_intro": "Automatically select one or more functional blocks for calling through the AI model, or call plugins.", + "template.workflow_start": "Workflow Start", "template.plugin_output": "Plugin output", "template.plugin_start": "Plugin start", "text_concatenation": "Text Concatenation", @@ -157,12 +147,11 @@ "update_specified_node_output_or_global_variable": "Can update the output value of a specified node or update global variables", "use_user_id": "User ID", "user_question": "User Question", + "value_type": "Value type", "variable_picker_tips": "Type node name or variable name to search", "variable_update": "Variable Update", - "workflow": { - "My edit": "My Edit", - "Switch_success": "Switch Successful", - "Team cloud": "Team Cloud", - "exit_tips": "Your changes have not been saved. 'Exit directly' will not save your edits." - } + "workflow.My edit": "My Edit", + "workflow.Switch_success": "Switch Successful", + "workflow.Team cloud": "Team Cloud", + "workflow.exit_tips": "Your changes have not been saved. 'Exit directly' will not save your edits." } \ No newline at end of file diff --git a/packages/web/i18n/zh/app.json b/packages/web/i18n/zh/app.json index 2db5ca983..5fd003b8c 100644 --- a/packages/web/i18n/zh/app.json +++ b/packages/web/i18n/zh/app.json @@ -2,21 +2,17 @@ "Run": "运行", "ai_settings": "AI 配置", "all_apps": "全部应用", - "app": { - "Version name": "版本名称", - "modules": { - "click to update": "点击更新", - "has new version": "有新版本" - }, - "version_back": "回到初始状态", - "version_copy": "副本", - "version_current": "当前版本", - "version_initial": "初始版本", - "version_initial_copy": "副本-初始状态", - "version_name_tips": "版本名称不能为空", - "version_past": "发布过", - "version_publish_tips": "该版本将被保存至团队云端,同步给整个团队,同时更新所有发布渠道的应用版本" - }, + "app.Version name": "版本名称", + "app.modules.click to update": "点击更新", + "app.modules.has new version": "有新版本", + "app.version_back": "回到初始状态", + "app.version_copy": "副本", + "app.version_current": "当前版本", + "app.version_initial": "初始版本", + "app.version_initial_copy": "副本-初始状态", + "app.version_name_tips": "版本名称不能为空", + "app.version_past": "发布过", + "app.version_publish_tips": "该版本将被保存至团队云端,同步给整个团队,同时更新所有发布渠道的应用版本", "app_detail": "应用详情", "chat_debug": "调试预览", "chat_logs": "对话日志", @@ -30,12 +26,10 @@ "create_empty_app": "创建空白应用", "create_empty_plugin": "创建空白插件", "create_empty_workflow": "创建空白工作流", - "cron": { - "every_day": "每天执行", - "every_month": "每月执行", - "every_week": "每周执行", - "interval": "间隔执行" - }, + "cron.every_day": "每天执行", + "cron.every_month": "每月执行", + "cron.every_week": "每周执行", + "cron.interval": "间隔执行", "current_settings": "当前配置", "day": "日", "document_quote": "文档引用", @@ -57,39 +51,34 @@ "import_configs": "导入配置", "import_configs_failed": "导入配置失败,请确保配置正常!", "import_configs_success": "导入成功", - "interval": { - "12_hours": "每12小时", - "2_hours": "每2小时", - "3_hours": "每3小时", - "4_hours": "每4小时", - "6_hours": "每6小时", - "per_hour": "每小时" - }, + "interval.12_hours": "每12小时", + "interval.2_hours": "每2小时", + "interval.3_hours": "每3小时", + "interval.4_hours": "每4小时", + "interval.6_hours": "每6小时", + "interval.per_hour": "每小时", "intro": "是一个大模型应用编排系统,提供开箱即用的数据处理、模型调用等能力,可以快速的构建知识库并通过 Flow 可视化进行工作流编排,实现复杂的知识库场景!", "llm_not_support_vision": "该模型不支持图片识别", "llm_use_vision": "启用图片识别", "llm_use_vision_tip": "启用图片识别后,该模型会自动接收来自“对话框上传”的图片,以及“用户问题”中的图片链接。", + "logs_chat_user": "使用者", "logs_empty": "还没有日志噢~", "logs_message_total": "消息总数", "logs_title": "标题", - "logs_chat_user": "使用者", "mark_count": "标注答案数量", - "module": { - "Confirm Sync": "将会更新至最新的模板配置,不存在模板中的字段将会被删除(包括所有自定义字段),建议您先复制一份节点,再更新原来节点的版本。", - "Custom Title Tip": "该标题名字会展示在对话过程中", - "No Modules": "没找到插件", - "type": "\"{{type}}\"类型\n{{description}}" - }, - "modules": { - "Title is required": "模块名不能为空" - }, - "month": { - "unit": "号" - }, + "module.Confirm Sync": "将会更新至最新的模板配置,不存在模板中的字段将会被删除(包括所有自定义字段),建议您先复制一份节点,再更新原来节点的版本。", + "module.Custom Title Tip": "该标题名字会展示在对话过程中", + "module.No Modules": "没找到插件", + "module.type": "\"{{type}}\"类型\n{{description}}", + "modules.Title is required": "模块名不能为空", + "month.unit": "号", "move_app": "移动应用", "not_json_file": "请选择JSON文件", - "paste_config": "粘贴配置", "or_drag_JSON": "或拖入JSON文件", + "paste_config": "粘贴配置", + "permission.des.manage": "写权限基础上,可配置发布渠道、查看对话日志、分配该应用权限", + "permission.des.read": "可使用该应用进行对话", + "permission.des.write": "可查看和编辑应用", "plugin_cost_per_times": "{{cost}}/次", "plugin_dispatch": "插件调用", "plugin_dispatch_tip": "给模型附加额外的能力,具体调用哪些插件,将由模型自主决定。\n若选择了插件,知识库调用将自动作为一个特殊的插件。", @@ -99,31 +88,25 @@ "search_app": "搜索应用", "setting_app": "应用配置", "setting_plugin": "插件配置", - "template": { - "simple_robot": "简易机器人", - "standard_template": "标准模板", - "standard_template_des": "标准提示词,用于结构不固定的知识库。", - "qa_template": "问答模板", - "qa_template_des": "适合 QA 问答结构的知识库,可以让AI较为严格的按预设内容回答", - "standard_strict": "标准严格模板", - "standard_strict_des": "在标准模板基础上,对模型的回答做更严格的要求。", - "hard_strict": "严格问答模板", - "hard_strict_des": "在问答模板基础上,对模型的回答做更严格的要求。" - }, - "templateMarket": { - "Search_template": "搜索模板", - "Template_market": "模板市场", - "Use": "使用", - "no_intro": "还没有介绍~", - "templateTags": { - "Image_generation": "图片生成", - "Office_services": "办公服务", - "Recommendation": "推荐", - "Roleplay": "角色扮演", - "Web_search": "联网搜索", - "Writing": "文本创作" - } - }, + "template.hard_strict": "严格问答模板", + "template.hard_strict_des": "在问答模板基础上,对模型的回答做更严格的要求。", + "template.qa_template": "问答模板", + "template.qa_template_des": "适合 QA 问答结构的知识库,可以让AI较为严格的按预设内容回答", + "template.simple_robot": "简易机器人", + "template.standard_strict": "标准严格模板", + "template.standard_strict_des": "在标准模板基础上,对模型的回答做更严格的要求。", + "template.standard_template": "标准模板", + "template.standard_template_des": "标准提示词,用于结构不固定的知识库。", + "templateMarket.Search_template": "搜索模板", + "templateMarket.Template_market": "模板市场", + "templateMarket.Use": "使用", + "templateMarket.no_intro": "还没有介绍~", + "templateMarket.templateTags.Image_generation": "图片生成", + "templateMarket.templateTags.Office_services": "办公服务", + "templateMarket.templateTags.Recommendation": "推荐", + "templateMarket.templateTags.Roleplay": "角色扮演", + "templateMarket.templateTags.Web_search": "联网搜索", + "templateMarket.templateTags.Writing": "文本创作", "template_market": "模板市场", "template_market_description": "在模板市场探索更多玩法,配置教程与使用引导,带你理解并上手各种应用", "template_market_empty_data": "找不到合适的模板", @@ -132,63 +115,44 @@ "transition_to_workflow": "转成工作流", "transition_to_workflow_create_new_placeholder": "创建一个新的应用,而不是修改当前应用", "transition_to_workflow_create_new_tip": "转化成工作流后,将无法转化回简易模式,请确认!", - "type": { - "All": "全部", - "Create http plugin tip": "通过 OpenAPI Schema 批量创建插件,兼容 GPTs 格式", - "Create one plugin tip": "可以自定义输入和输出的工作流,通常用于封装重复使用的工作流", - "Create plugin bot": "创建插件", - "Create simple bot": "创建简易应用", - "Create simple bot tip": "通过填表单形式,创建简单的 AI 应用,适合新手", - "Create workflow bot": "创建工作流", - "Create workflow tip": "通过低代码的方式,构建逻辑复杂的多轮对话 AI 应用,推荐高级玩家使用", - "Http plugin": "HTTP 插件", - "Plugin": "插件", - "Simple bot": "简易应用", - "Workflow bot": "工作流" - }, + "type.All": "全部", + "type.Create http plugin tip": "通过 OpenAPI Schema 批量创建插件,兼容 GPTs 格式", + "type.Create one plugin tip": "可以自定义输入和输出的工作流,通常用于封装重复使用的工作流", + "type.Create plugin bot": "创建插件", + "type.Create simple bot": "创建简易应用", + "type.Create simple bot tip": "通过填表单形式,创建简单的 AI 应用,适合新手", + "type.Create workflow bot": "创建工作流", + "type.Create workflow tip": "通过低代码的方式,构建逻辑复杂的多轮对话 AI 应用,推荐高级玩家使用", + "type.Http plugin": "HTTP 插件", + "type.Plugin": "插件", + "type.Simple bot": "简易应用", + "type.Workflow bot": "工作流", "upload_file_max_amount": "最大文件数量", "upload_file_max_amount_tip": "1.单次上传文件的最大数量。\n2.对话窗口记忆的最大文件数量:每轮对话会自动获取历史中的文件,超出范围的文件会被遗忘。", - "variable": { - "select type_desc": "可以定义一个无需用户填写的全局变量。\n该变量的值可以来自于 API 接口,分享链接的 Query 或通过【变量更新】模块进行赋值。", - "textarea_type_desc": "允许用户最多输入4000字的对话框。" - }, - "version": { - "Revert success": "回滚成功" - }, + "variable.select type_desc": "可以为工作流定义全局变量,常用临时缓存。赋值的方式包括:\n1. 从对话页面的 query 参数获取。\n2. 通过 API 的 variables 对象传递。\n3. 通过【变量更新】节点进行赋值。", + "variable.textarea_type_desc": "允许用户最多输入4000字的对话框。", + "version.Revert success": "回滚成功", "vision_model_title": "启用图片识别", - "week": { - "Friday": "星期五", - "Monday": "星期一", - "Saturday": "星期六", - "Sunday": "星期日", - "Thursday": "星期四", - "Tuesday": "星期二", - "Wednesday": "星期三" - }, - "workflow": { - "Input guide": "填写说明", - "file_url": "文档链接", - "read_files": "文档解析", - "read_files_result": "文档解析结果", - "read_files_result_desc": "文档原文,由文件名和文档内容组成,多个文件之间通过横线隔开。", - "read_files_tip": "解析对话中所有上传的文档,并返回对应文档内容", - "select_description": "说明文字", - "select_description_placeholder": "例如: \n冰箱里是否有西红柿?", - "select_description_tip": "你可以添加一段说明文字,用以向用户说明每个选项代表的含义。", - "select_result": "选择的结果", - "template": { - "communication": "通信" - }, - "user_file_input": "文件链接", - "user_file_input_desc": "用户上传的文档和图片链接", - "user_select": "用户选择", - "user_select_tip": "该模块可配置多个选项,以供对话时选择。不同选项可导向不同工作流支线" - }, - "permission": { - "des": { - "read": "可使用该应用进行对话", - "write": "可查看和编辑应用", - "manage": "写权限基础上,可配置发布渠道、查看对话日志、分配该应用权限" - } - } + "week.Friday": "星期五", + "week.Monday": "星期一", + "week.Saturday": "星期六", + "week.Sunday": "星期日", + "week.Thursday": "星期四", + "week.Tuesday": "星期二", + "week.Wednesday": "星期三", + "workflow.Input guide": "填写说明", + "workflow.file_url": "文档链接", + "workflow.read_files": "文档解析", + "workflow.read_files_result": "文档解析结果", + "workflow.read_files_result_desc": "文档原文,由文件名和文档内容组成,多个文件之间通过横线隔开。", + "workflow.read_files_tip": "解析对话中所有上传的文档,并返回对应文档内容", + "workflow.select_description": "说明文字", + "workflow.select_description_placeholder": "例如: \n冰箱里是否有西红柿?", + "workflow.select_description_tip": "你可以添加一段说明文字,用以向用户说明每个选项代表的含义。", + "workflow.select_result": "选择的结果", + "workflow.template.communication": "通信", + "workflow.user_file_input": "文件链接", + "workflow.user_file_input_desc": "用户上传的文档和图片链接", + "workflow.user_select": "用户选择", + "workflow.user_select_tip": "该模块可配置多个选项,以供对话时选择。不同选项可导向不同工作流支线" } \ No newline at end of file diff --git a/packages/web/i18n/zh/chat.json b/packages/web/i18n/zh/chat.json index d6f87ae14..917a58517 100644 --- a/packages/web/i18n/zh/chat.json +++ b/packages/web/i18n/zh/chat.json @@ -31,9 +31,7 @@ "no_workflow_response": "没有运行数据", "plugins_output": "插件输出", "question_tip": "从上到下,为各个模块的响应顺序", - "response": { - "node_inputs": "节点输入" - }, + "response.node_inputs": "节点输入", "select": "选择", "select_file": "上传文件", "select_file_img": "上传文件/图片", diff --git a/packages/web/i18n/zh/common.json b/packages/web/i18n/zh/common.json index 6c6f32b2d..a9557fb74 100644 --- a/packages/web/i18n/zh/common.json +++ b/packages/web/i18n/zh/common.json @@ -1,24 +1,22 @@ { "App": "应用", "Export": "导出", - "FAQ": { - "ai_point_a": "每次调用AI模型时,都会消耗一定的AI积分。具体的计算标准可参考上方的“AI 积分计算标准”。\nToken计算采用GPT3.5相同公式,1Token≈0.7中文字符≈0.9英文单词,连续出现的字符可能被认为是1个Tokens。", - "ai_point_expire_a": "会过期。当前套餐过期后,AI积分将会清空,并更新为新套餐的AI积分。年度套餐的AI积分时长为1年,而不是每个月。", - "ai_point_expire_q": "AI积分会过期么?", - "ai_point_q": "什么是AI积分?", - "check_subscription_a": "账号-个人信息-套餐详情-使用情况。您可以查看所拥有套餐的生效和到期时间。当付费套餐到期后将自动切换免费版。", - "check_subscription_q": "在哪里查看已订阅的套餐?", - "dataset_compute_a": "1条知识库存储等于1条知识库索引。一条知识库数据可以包含1条或多条知识库索引。增强训练中,1条数据会生成5条索引。", - "dataset_compute_q": "知识库存储怎么计算?", - "dataset_index_a": "不会。但知识库索引超出时,无法插入和更新知识库内容。", - "dataset_index_q": "知识库索引超出会删除么?", - "free_user_clean_a": "免费版团队(免费版且未购买额外套餐)连续 30 天未登录系统,系统会自动清除该团队下所有知识库内容。", - "free_user_clean_q": "免费版数据会清除么?", - "package_overlay_a": "可以的。每次购买的资源包都是独立的,在其有效期内将会叠加使用。AI积分会优先扣除最先过期的资源包。", - "package_overlay_q": "额外资源包可以叠加么?", - "switch_package_a": "套餐使用规则为优先使用更高级的套餐,因此,购买的新套餐若比当前套餐更高级,则新套餐立即生效:否则将继续使用当前套餐。", - "switch_package_q": "是否切换订阅套餐?" - }, + "FAQ.ai_point_a": "每次调用AI模型时,都会消耗一定的AI积分。具体的计算标准可参考上方的“AI 积分计算标准”。\nToken计算采用GPT3.5相同公式,1Token≈0.7中文字符≈0.9英文单词,连续出现的字符可能被认为是1个Tokens。", + "FAQ.ai_point_expire_a": "会过期。当前套餐过期后,AI积分将会清空,并更新为新套餐的AI积分。年度套餐的AI积分时长为1年,而不是每个月。", + "FAQ.ai_point_expire_q": "AI积分会过期么?", + "FAQ.ai_point_q": "什么是AI积分?", + "FAQ.check_subscription_a": "账号-个人信息-套餐详情-使用情况。您可以查看所拥有套餐的生效和到期时间。当付费套餐到期后将自动切换免费版。", + "FAQ.check_subscription_q": "在哪里查看已订阅的套餐?", + "FAQ.dataset_compute_a": "1条知识库存储等于1条知识库索引。一条知识库数据可以包含1条或多条知识库索引。增强训练中,1条数据会生成5条索引。", + "FAQ.dataset_compute_q": "知识库存储怎么计算?", + "FAQ.dataset_index_a": "不会。但知识库索引超出时,无法插入和更新知识库内容。", + "FAQ.dataset_index_q": "知识库索引超出会删除么?", + "FAQ.free_user_clean_a": "免费版团队(免费版且未购买额外套餐)连续 30 天未登录系统,系统会自动清除该团队下所有知识库内容。", + "FAQ.free_user_clean_q": "免费版数据会清除么?", + "FAQ.package_overlay_a": "可以的。每次购买的资源包都是独立的,在其有效期内将会叠加使用。AI积分会优先扣除最先过期的资源包。", + "FAQ.package_overlay_q": "额外资源包可以叠加么?", + "FAQ.switch_package_a": "套餐使用规则为优先使用更高级的套餐,因此,购买的新套餐若比当前套餐更高级,则新套餐立即生效:否则将继续使用当前套餐。", + "FAQ.switch_package_q": "是否切换订阅套餐?", "Folder": "文件夹", "Login": "登录", "Move": "移动", @@ -35,1026 +33,819 @@ "classification": "分类", "click_to_resume": "点击恢复", "code_editor": "代码编辑", - "code_error": { - "app_error": { - "invalid_app_type": "错误的应用类型", - "invalid_owner": "非法的应用所有者", - "not_exist": "应用不存在", - "un_auth_app": "无权操作该应用" - }, - "chat_error": { - "un_auth": "没有权限操作此对话记录" - }, - "error_code": { - "400": "请求失败", - "401": "无访问权限", - "403": "紧张访问", - "404": "请求不存在", - "405": "请求方法错误", - "406": "请求格式错误", - "410": "资源已删除", - "422": "验证错误", - "500": "服务器发生错误", - "502": "网关错误", - "503": "服务器暂时过载或正在维护", - "504": "网关超时" - }, - "error_message": { - "403": "凭证错误", - "510": "账户余额不足", - "511": "没有权限操作此模型", - "513": "没有权限读取该文件", - "514": "Api Key 不合法" - }, - "openapi_error": { - "api_key_not_exist": "Api Key 不存在", - "exceed_limit": "最多 10 组 API 密钥", - "un_auth": "无权操作该 Api Key" - }, - "outlink_error": { - "invalid_link": "分享链接无效", - "link_not_exist": "分享链接不存在", - "un_auth_user": "身份校验失败" - }, - "plugin_error": { - "not_exist": "插件不存在", - "un_auth": "无权操作该插件" - }, - "system_error": { - "community_version_num_limit": "超出开源版数量限制,请升级商业版: https://tryfastgpt.ai" - }, - "team_error": { - "ai_points_not_enough": "", - "app_amount_not_enough": "应用数量已达上限~", - "dataset_amount_not_enough": "知识库数量已达上限~", - "dataset_size_not_enough": "知识库容量不足,请先扩容~", - "over_size": "error.team.overSize", - "plugin_amount_not_enough": "插件数量已达上限~", - "re_rank_not_enough": "无权使用检索重排~", - "un_auth": "无权操作该团队", - "website_sync_not_enough": "无权使用Web站点同步~" - }, - "token_error_code": { - "403": "登录状态无效,请重新登录" - }, - "user_error": { - "balance_not_enough": "账号余额不足~", - "bin_visitor": "您的身份校验未通过", - "bin_visitor_guest": "您当前身份为游客,无权操作", - "un_auth_user": "找不到该用户" - } - }, - "common": { - "Action": "操作", - "Add": "添加", - "Add New": "新增", - "Add Success": "添加成功", - "All": "全部", - "Cancel": "取消", - "Choose": "选择", - "Close": "关闭", - "Config": "配置", - "Confirm": "确认", - "Confirm Create": "确认创建", - "Confirm Import": "确认导入", - "Confirm Move": "移动到这", - "Confirm Update": "确认更新", - "Confirm to leave the page": "确认离开该页面?", - "Copy": "复制", - "Copy Successful": "复制成功", - "Copy_failed": "复制失败,请手动复制", - "Create Failed": "创建异常", - "Create New": "新建", - "Create Success": "创建成功", - "Create Time": "创建时间", - "Creating": "创建中", - "Custom Title": "自定义标题", - "Delete": "删除", - "Delete Failed": "删除失败", - "Delete Success": "删除成功", - "Delete Warning": "删除警告", - "Delete folder": "删除文件夹", - "Detail": "详情", - "Documents": "文档", - "Done": "完成", - "Edit": "编辑", - "Exit": "退出", - "Exit Directly": "直接退出", - "Expired Time": "过期时间", - "File": "文件", - "Finish": "完成", - "Import": "导入", - "Import failed": "导入失败", - "Import success": "导入成功", - "Input": "输入", - "Input folder description": "文件夹描述", - "Input name": "取个名字", - "Intro": "介绍", - "Last Step": "上一步", - "Last use time": "最后使用时间", - "Load Failed": "加载失败", - "Loading": "加载中...", - "More": "更多", - "Move": "移动", - "MultipleRowSelect": { - "No data": "没有可选值" - }, - "Name": "名称", - "Next Step": "下一步", - "No more data": "没有更多了~", - "Not open": "未开启", - "OK": "好的", - "Open": "打开", - "Operation": "操作", - "Other": "其他", - "Output": "输出", - "Params": "参数", - "Password inconsistency": "两次密码不一致", - "Permission": "权限", - "Please Input Name": "请输入名称", - "Read document": "查看文档", - "Read intro": "查看说明", - "Remove": "移除", - "Rename": "重命名", - "Request Error": "请求异常", - "Require Input": "必填", - "Restart": "重新开始", - "Role": "权限", - "Root folder": "根目录", - "Run": "运行", - "Save": "保存", - "Save Failed": "保存异常", - "Save Success": "保存成功", - "Save_and_exit": "保存并退出", - "Search": "搜索", - "Select File Failed": "选择文件异常", - "Select template": "选择模板", - "Set Avatar": "点击设置头像", - "Set Name": "取个名字", - "Setting": "设置", - "Status": "状态", - "Submit failed": "提交失败", - "Success": "成功", - "Sync success": "同步成功", - "Team": "团队", - "Team Tags Set": "标签", - "Un used": "未使用", - "UnKnow": "未知", - "UnKnow Source": "未知来源", - "Unlimited": "无限制", - "Update": "更新", - "Update Failed": "更新异常", - "Update Success": "更新成功", - "Update Successful": "更新成功", - "Username": "用户名", - "Waiting": "等待中", - "Warning": "警告", - "Website": "网站", - "all_result": "完整结果", - "avatar": { - "Select Avatar": "点击选择头像", - "Select Failed": "选择头像异常" - }, - "base_config": "基础配置", - "choosable": "可选", - "confirm": { - "Common Tip": "操作确认" - }, - "copy_to_clipboard": "复制到剪贴板", - "course": { - "Read Course": "查看教程" - }, - "empty": { - "Common Tip": "没有什么数据噢~" - }, - "error": { - "Select avatar failed": "头像选择异常", - "unKnow": "出现了点意外~" - }, - "export_to_json": "导出为 JSON", - "failed": "失败", - "folder": { - "Drag Tip": "点我可拖动", - "Move Success": "移动成功", - "Move to": "移动到", - "No Folder": "没有子目录了,就放这里吧", - "Open folder": "打开文件夹", - "Root Path": "根目录", - "empty": "这个目录已经没东西可选了~", - "open_dataset": "打开知识库" - }, - "have_done": "已完成", - "input": { - "Repeat Value": "有重复的值" - }, - "is_requesting": "请求中……", - "jsonEditor": { - "Parse error": "JSON 可能有误,请仔细检查" - }, - "json_config": "JSON 配置", - "link": { - "UnValid": "无效的链接" - }, - "month": "月", - "name_is_empty": "名称不能为空", - "no_intro": "暂无介绍", - "not_support": "不支持", - "page_center": "页面居中", - "redo_tip": "恢复 ctrl shift z", - "redo_tip_mac": "恢复 ⌘ shift z", - "request_end": "已加载全部", - "request_more": "点击加载更多", - "speech": { - "error tip": "语音转文字失败", - "not support": "您的浏览器不支持语音输入" - }, - "submit_success": "提交成功", - "submitted": "已提交", - "support": "支持", - "system": { - "Commercial version function": "请升级商业版后使用该功能:https://tryfastgpt.ai", - "Help Chatbot": "机器人助手", - "Use Helper": "使用帮助" - }, - "ui": { - "textarea": { - "Magnifying": "放大" - } - }, - "undo_tip": "撤销 ctrl z", - "undo_tip_mac": "撤销 ⌘ z ", - "upload_file": "上传文件", - "zoomin_tip": "缩小 ctrl -", - "zoomin_tip_mac": "缩小 ⌘ -", - "zoomout_tip": "放大 ctrl +", - "zoomout_tip_mac": "放大 ⌘ +" - }, - "comon": { - "Continue_Adding": "继续添加" - }, - "compliance": { - "chat": "内容由第三方 AI 生成,无法确保真实准确,仅供参考", - "dataset": "请确保您的内容严格遵守相关法律法规,避免包含任何违法或侵权的内容。请谨慎上传可能涉及敏感信息的资料。" - }, + "code_error.app_error.invalid_app_type": "错误的应用类型", + "code_error.app_error.invalid_owner": "非法的应用所有者", + "code_error.app_error.not_exist": "应用不存在", + "code_error.app_error.un_auth_app": "无权操作该应用", + "code_error.chat_error.un_auth": "没有权限操作此对话记录", + "code_error.error_code.400": "请求失败", + "code_error.error_code.401": "无访问权限", + "code_error.error_code.403": "紧张访问", + "code_error.error_code.404": "请求不存在", + "code_error.error_code.405": "请求方法错误", + "code_error.error_code.406": "请求格式错误", + "code_error.error_code.410": "资源已删除", + "code_error.error_code.422": "验证错误", + "code_error.error_code.500": "服务器发生错误", + "code_error.error_code.502": "网关错误", + "code_error.error_code.503": "服务器暂时过载或正在维护", + "code_error.error_code.504": "网关超时", + "code_error.error_message.403": "凭证错误", + "code_error.error_message.510": "账户余额不足", + "code_error.error_message.511": "没有权限操作此模型", + "code_error.error_message.513": "没有权限读取该文件", + "code_error.error_message.514": "Api Key 不合法", + "code_error.openapi_error.api_key_not_exist": "Api Key 不存在", + "code_error.openapi_error.exceed_limit": "最多 10 组 API 密钥", + "code_error.openapi_error.un_auth": "无权操作该 Api Key", + "code_error.outlink_error.invalid_link": "分享链接无效", + "code_error.outlink_error.link_not_exist": "分享链接不存在", + "code_error.outlink_error.un_auth_user": "身份校验失败", + "code_error.plugin_error.not_exist": "插件不存在", + "code_error.plugin_error.un_auth": "无权操作该插件", + "code_error.system_error.community_version_num_limit": "超出开源版数量限制,请升级商业版: https://tryfastgpt.ai", + "code_error.team_error.ai_points_not_enough": "", + "code_error.team_error.app_amount_not_enough": "应用数量已达上限~", + "code_error.team_error.dataset_amount_not_enough": "知识库数量已达上限~", + "code_error.team_error.dataset_size_not_enough": "知识库容量不足,请先扩容~", + "code_error.team_error.over_size": "error.team.overSize", + "code_error.team_error.plugin_amount_not_enough": "插件数量已达上限~", + "code_error.team_error.re_rank_not_enough": "无权使用检索重排~", + "code_error.team_error.un_auth": "无权操作该团队", + "code_error.team_error.website_sync_not_enough": "无权使用Web站点同步~", + "code_error.token_error_code.403": "登录状态无效,请重新登录", + "code_error.user_error.balance_not_enough": "账号余额不足~", + "code_error.user_error.bin_visitor": "您的身份校验未通过", + "code_error.user_error.bin_visitor_guest": "您当前身份为游客,无权操作", + "code_error.user_error.un_auth_user": "找不到该用户", + "common.Action": "操作", + "common.Add": "添加", + "common.Add New": "新增", + "common.Add Success": "添加成功", + "common.All": "全部", + "common.Cancel": "取消", + "common.Choose": "选择", + "common.Close": "关闭", + "common.Config": "配置", + "common.Confirm": "确认", + "common.Confirm Create": "确认创建", + "common.Confirm Import": "确认导入", + "common.Confirm Move": "移动到这", + "common.Confirm Update": "确认更新", + "common.Confirm to leave the page": "确认离开该页面?", + "common.Copy": "复制", + "common.Copy Successful": "复制成功", + "common.Copy_failed": "复制失败,请手动复制", + "common.Create Failed": "创建异常", + "common.Create New": "新建", + "common.Create Success": "创建成功", + "common.Create Time": "创建时间", + "common.Creating": "创建中", + "common.Custom Title": "自定义标题", + "common.Delete": "删除", + "common.Delete Failed": "删除失败", + "common.Delete Success": "删除成功", + "common.Delete Warning": "删除警告", + "common.Delete folder": "删除文件夹", + "common.Detail": "详情", + "common.Documents": "文档", + "common.Done": "完成", + "common.Edit": "编辑", + "common.Exit": "退出", + "common.Exit Directly": "直接退出", + "common.Expired Time": "过期时间", + "common.File": "文件", + "common.Finish": "完成", + "common.Import": "导入", + "common.Import failed": "导入失败", + "common.Import success": "导入成功", + "common.Input": "输入", + "common.Input folder description": "文件夹描述", + "common.Input name": "取个名字", + "common.Intro": "介绍", + "common.Last Step": "上一步", + "common.Last use time": "最后使用时间", + "common.Load Failed": "加载失败", + "common.Loading": "加载中...", + "common.More": "更多", + "common.Move": "移动", + "common.MultipleRowSelect.No data": "没有可选值", + "common.Name": "名称", + "common.Next Step": "下一步", + "common.No more data": "没有更多了~", + "common.Not open": "未开启", + "common.OK": "好的", + "common.Open": "打开", + "common.Operation": "操作", + "common.Other": "其他", + "common.Output": "输出", + "common.Params": "参数", + "common.Password inconsistency": "两次密码不一致", + "common.Permission": "权限", + "common.Please Input Name": "请输入名称", + "common.Read document": "查看文档", + "common.Read intro": "查看说明", + "common.Remove": "移除", + "common.Rename": "重命名", + "common.Request Error": "请求异常", + "common.Require Input": "必填", + "common.Restart": "重新开始", + "common.Role": "权限", + "common.Root folder": "根目录", + "common.Run": "运行", + "common.Save": "保存", + "common.Save Failed": "保存异常", + "common.Save Success": "保存成功", + "common.Save_and_exit": "保存并退出", + "common.Search": "搜索", + "common.Select File Failed": "选择文件异常", + "common.Select template": "选择模板", + "common.Set Avatar": "点击设置头像", + "common.Set Name": "取个名字", + "common.Setting": "设置", + "common.Status": "状态", + "common.Submit failed": "提交失败", + "common.Success": "成功", + "common.Sync success": "同步成功", + "common.Team": "团队", + "common.Team Tags Set": "标签", + "common.Un used": "未使用", + "common.UnKnow": "未知", + "common.UnKnow Source": "未知来源", + "common.Unlimited": "无限制", + "common.Update": "更新", + "common.Update Failed": "更新异常", + "common.Update Success": "更新成功", + "common.Update Successful": "更新成功", + "common.Username": "用户名", + "common.Waiting": "等待中", + "common.Warning": "警告", + "common.Website": "网站", + "common.all_result": "完整结果", + "common.avatar.Select Avatar": "点击选择头像", + "common.avatar.Select Failed": "选择头像异常", + "common.base_config": "基础配置", + "common.choosable": "可选", + "common.confirm.Common Tip": "操作确认", + "common.copy_to_clipboard": "复制到剪贴板", + "common.course.Read Course": "查看教程", + "common.empty.Common Tip": "没有什么数据噢~", + "common.error.Select avatar failed": "头像选择异常", + "common.error.unKnow": "出现了点意外~", + "common.export_to_json": "导出为 JSON", + "common.failed": "失败", + "common.folder.Drag Tip": "点我可拖动", + "common.folder.Move Success": "移动成功", + "common.folder.Move to": "移动到", + "common.folder.No Folder": "没有子目录了,就放这里吧", + "common.folder.Open folder": "打开文件夹", + "common.folder.Root Path": "根目录", + "common.folder.empty": "这个目录已经没东西可选了~", + "common.folder.open_dataset": "打开知识库", + "common.have_done": "已完成", + "common.input.Repeat Value": "有重复的值", + "common.is_requesting": "请求中……", + "common.jsonEditor.Parse error": "JSON 可能有误,请仔细检查", + "common.json_config": "JSON 配置", + "common.link.UnValid": "无效的链接", + "common.month": "月", + "common.name_is_empty": "名称不能为空", + "common.no_intro": "暂无介绍", + "common.not_support": "不支持", + "common.page_center": "页面居中", + "common.redo_tip": "恢复 ctrl shift z", + "common.redo_tip_mac": "恢复 ⌘ shift z", + "common.request_end": "已加载全部", + "common.request_more": "点击加载更多", + "common.speech.error tip": "语音转文字失败", + "common.speech.not support": "您的浏览器不支持语音输入", + "common.submit_success": "提交成功", + "common.submitted": "已提交", + "common.support": "支持", + "common.system.Commercial version function": "请升级商业版后使用该功能:https://tryfastgpt.ai", + "common.system.Help Chatbot": "机器人助手", + "common.system.Use Helper": "使用帮助", + "common.ui.textarea.Magnifying": "放大", + "common.undo_tip": "撤销 ctrl z", + "common.undo_tip_mac": "撤销 ⌘ z ", + "common.upload_file": "上传文件", + "common.zoomin_tip": "缩小 ctrl -", + "common.zoomin_tip_mac": "缩小 ⌘ -", + "common.zoomout_tip": "放大 ctrl +", + "common.zoomout_tip_mac": "放大 ⌘ +", + "comon.Continue_Adding": "继续添加", + "compliance.chat": "内容由第三方 AI 生成,无法确保真实准确,仅供参考", + "compliance.dataset": "请确保您的内容严格遵守相关法律法规,避免包含任何违法或侵权的内容。请谨慎上传可能涉及敏感信息的资料。", "confirm_choice": "确认选择", "contribute_app_template": "贡献模板", - "core": { - "Chat": "对话", - "Max Token": "单条数据上限", - "ai": { - "AI settings": "AI 配置", - "Ai point price": "AI 积分消耗", - "Max context": "最大上下文", - "Model": "AI 模型", - "Not deploy rerank model": "未部署重排模型", - "Prompt": "提示词", - "Support tool": "函数调用", - "model": { - "Dataset Agent Model": "文件处理模型", - "Vector Model": "索引模型", - "doc_index_and_dialog": "文档索引 & 对话索引" - } - }, - "app": { - "Ai response": "返回 AI 内容", - "Api request": "API 访问", - "Api request desc": "通过 API 接入到已有系统中,或企微、飞书等", - "App intro": "应用介绍", - "Chat Variable": "对话框变量", - "Config schedule plan": "配置定时执行", - "Config whisper": "配置语音输入", - "Interval timer config": "定时执行配置", - "Interval timer run": "定时执行", - "Interval timer tip": "可定时执行应用", - "Make a brief introduction of your app": "给你的 AI 应用一个介绍", - "Max histories": "聊天记录数量", - "Max tokens": "回复上限", - "Name and avatar": "头像 & 名称", - "Publish": "发布", - "Publish Confirm": "确认发布应用?会立即更新所有发布渠道的应用状态。", - "Publish app tip": "发布应用后,所有发布渠道将会立即使用该版本", - "Question Guide": "猜你想问", - "Question Guide Tip": "对话结束后,会为生成 3 个引导性问题。", - "Quote prompt": "引用模板提示词", - "Quote templates": "引用内容模板", - "Random": "发散", - "Search team tags": "搜索标签", - "Select TTS": "选择语音播放模式", - "Select app from template": "从模板中选择", - "Select quote template": "选择引用提示模板", - "Set a name for your app": "给应用设置一个名称", - "Setting ai property": "点击配置 AI 模型相关属性", - "Share link": "免登录窗口", - "Share link desc": "分享链接给其他用户,无需登录即可直接进行使用", - "Share link desc detail": "可以直接分享该模型给其他用户去进行对话,对方无需登录即可直接进行对话。注意,这个功能会消耗你账号的余额,请保管好链接!", - "TTS": "语音播放", - "TTS Tip": "开启后,每次对话后可使用语音播放功能。使用该功能可能产生额外费用。", - "TTS start": "朗读内容", - "Team tags": "团队标签", - "Temperature": "温度", - "Tool call": "工具调用", - "ToolCall": { - "No plugin": "没有可用的插件", - "Parameter setting": "输入参数", - "System": "系统", - "Team": "团队" - }, - "Welcome Text": "对话开场白", - "Whisper": "语音输入", - "Whisper config": "语音输入配置", - "deterministic": "严谨", - "edit": { - "Prompt Editor": "提示词编辑", - "Query extension background prompt": "对话背景描述", - "Query extension background tip": "描述当前对话的范围,便于 AI 为当前问题进行补全和扩展。填写的内容,通常为该助手" - }, - "edit_content": "应用信息编辑", - "error": { - "App name can not be empty": "应用名不能为空", - "Get app failed": "获取应用异常" - }, - "feedback": { - "Custom feedback": "自定义反馈", - "close custom feedback": "关闭反馈" - }, - "have_saved": "已保存", - "logs": { - "Source And Time": "来源 & 时间" - }, - "more": "查看更多", - "no_app": "还没有应用,快去创建一个吧!", - "not_saved": "未保存", - "outLink": { - "Can Drag": "图标可拖拽", - "Default open": "默认打开", - "Iframe block title": "复制下面 iframe 加入到你的网站中", - "Link block title": "将下面链接复制到浏览器打开", - "Script Close Icon": "关闭图标", - "Script Open Icon": "打开图标", - "Script block title": "将下面代码加入到你的网站中", - "Select Mode": "开始使用", - "Select Using Way": "选择使用方式", - "Show History": "展示历史对话" - }, - "publish": { - "Fei shu bot": "飞书", - "Fei shu bot publish": "发布到飞书机器人" - }, - "schedule": { - "Default prompt": "默认问题", - "Default prompt placeholder": "执行应用时的默认问题", - "Every day": "每天 {{hour}}:00", - "Every month": "每月 {{day}} 号 {{hour}}:00", - "Every week": "每周{{day}} {{hour}}:00", - "Interval": "每 {{interval}} 小时", - "Open schedule": "定时执行" - }, - "setting": "应用信息设置", - "share": { - "Amount limit tip": "最多创建 10 组", - "Create link": "创建新链接", - "Create link tip": "创建成功。已复制分享地址,可直接分享使用", - "Ip limit title": "IP 限流(人/分钟)", - "Is response quote": "返回引用", - "Not share link": "没有创建分享链接", - "Role check": "身份校验" - }, - "tip": { - "Add a intro to app": "快来给应用一个介绍~", - "chatNodeSystemPromptTip": "模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。可通过输入 / 插入选择变量\n如果关联了知识库,你还可以通过适当的描述,来引导模型何时去调用知识库搜索。例如:\n你是电影《星际穿越》的助手,当用户询问与《星际穿越》相关的内容时,请搜索知识库并结合搜索结果进行回答。", - "variableTip": "可以在对话开始前,要求用户填写一些内容作为本轮对话的特定变量。该模块位于开场引导之后。\n变量可以通过 {{变量key}} 的形式注入到其他模块 string 类型的输入中,例如:提示词、限定词等", - "welcomeTextTip": "每次对话开始前,发送一个初始内容。支持标准 Markdown 语法,可使用的额外标记:\n[快捷按键]:用户点击后可以直接发送该问题" - }, - "tool_label": { - "doc": "使用文档", - "github": "GitHub地址", - "price": "计费说明", - "view_doc": "查看说明文档" - }, - "tts": { - "Close": "不使用", - "Speech model": "语音模型", - "Speech speed": "语速", - "Test Listen": "试听", - "Test Listen Text": "你好,这是语音测试,如果你能听到这句话,说明语音播放功能正常", - "Web": "浏览器自带(免费)" - }, - "whisper": { - "Auto send": "自动发送", - "Auto send tip": "语音输入完毕后直接发送,不需要再手动点击发送按键", - "Auto tts response": "自动语音回复", - "Auto tts response tip": "通过语音输入发送的问题,会直接以语音的形式响应,请确保打开了语音播报功能。", - "Close": "关闭", - "Not tts tip": "你没有开启语音播放,该功能无法使用", - "Open": "开启", - "Switch": "开启语音输入" - } - }, - "chat": { - "Admin Mark Content": "纠正后的回复", - "Audio Not Support": "设备不支持语音播放", - "Audio Speech Error": "语音播报异常", - "Cancel Speak": "取消语音输入", - "Confirm to clear history": "确认清空该应用的在线聊天记录?分享和 API 调用的记录不会被清空。", - "Confirm to clear share chat history": "确认删除所有聊天记录?", - "Converting to text": "正在转换为文本...", - "Custom History Title": "自定义历史记录标题", - "Custom History Title Description": "如果设置为空,会自动跟随聊天记录。", - "Exit Chat": "退出聊天", - "Failed to initialize chat": "初始化聊天失败", - "Feedback Failed": "提交反馈异常", - "Feedback Modal": "结果反馈", - "Feedback Modal Tip": "输入你觉得回答不满意的地方", - "Feedback Submit": "提交反馈", - "Feedback Success": "反馈成功!", - "Finish Speak": "语音输入完成", - "History": "记录", - "History Amount": "{{amount}} 条记录", - "Mark": "标注预期回答", - "Mark Description": "当前标注功能为测试版。\n\n点击添加标注后,需要选择一个知识库,以便存储标注数据。你可以通过该功能快速的标注问题和预期回答,以便引导模型下次的回答。\n\n目前,标注功能同知识库其他数据一样,受模型的影响,不代表标注后 100% 符合预期。\n\n标注数据仅单向与知识库同步,如果知识库修改了该标注数据,日志展示的标注数据无法同步。", - "Mark Description Title": "标注功能介绍", - "New Chat": "新对话", - "Pin": "置顶", - "Question Guide": "猜你想问", - "Quote": "引用", - "Quote Amount": "知识库引用({{amount}} 条)", - "Read Mark Description": "查看标注功能介绍", - "Recent use": "最近使用", - "Record": "语音输入", - "Restart": "重开对话", - "Run test": "运行预览", - "Select dataset": "选择知识库", - "Select dataset Desc": "选择一个知识库存储预期答案", - "Send Message": "发送", - "Speaking": "我在听,请说...", - "Start Chat": "开始对话", - "Type a message": "输入问题,发送 [Enter]/换行 [Ctrl(Alt/Shift) + Enter]", - "Unpin": "取消置顶", - "You need to a chat app": "你没有可用的应用", - "error": { - "Chat error": "对话出现异常", - "Messages empty": "接口内容为空,可能文本超长了~", - "Select dataset empty": "你没有选择知识库", - "User input empty": "传入的用户问题为空", - "data_error": "获取数据异常" - }, - "feedback": { - "Close User Like": "用户表示赞同\n点击关闭该标记", - "Feedback Close": "关闭反馈", - "No Content": "用户没有填写具体反馈内容", - "Read User dislike": "用户表示反对\n点击查看内容" - }, - "logs": { - "api": "API 调用", - "feishu": "飞书", - "free_login": "免登录链接", - "official_account": "公众号", - "online": "在线使用", - "share": "外部链接调用", - "team": "团队空间对话", - "test": "测试", - "wecom": "企业微信" - }, - "markdown": { - "Edit Question": "编辑问题", - "Quick Question": "点我立即提问", - "Send Question": "发送问题" - }, - "quote": { - "Quote Tip": "此处仅显示实际引用内容,若数据有更新,此处不会实时更新", - "Read Quote": "查看引用" - }, - "response": { - "Complete Response": "完整响应", - "Extension model": "问题优化模型", - "Read complete response": "查看详情", - "Read complete response tips": "点击查看详细流程", - "Tool call tokens": "工具调用 tokens 消耗", - "context total length": "上下文总长度", - "loop_input": "输入数组", - "loop_input_element": "输入数组元素", - "loop_output": "输出数组", - "loop_output_element": "输出数组元素", - "module cq": "问题分类列表", - "module cq result": "分类结果", - "module extract description": "提取背景描述", - "module extract result": "提取结果", - "module historyPreview": "记录预览(仅展示部分内容)", - "module http result": "响应体", - "module if else Result": "判断器结果", - "module limit": "单次搜索上限", - "module maxToken": "最大响应 tokens", - "module model": "模型", - "module name": "模型名", - "module query": "问题/检索词", - "module quoteList": "引用内容", - "module similarity": "相似度", - "module temperature": "温度", - "module time": "运行时长", - "module tokens": "AI Tokens 消耗", - "plugin output": "插件输出值", - "search using reRank": "结果重排", - "text output": "文本输出", - "update_var_result": "变量更新结果(按顺序展示多个变量更新结果)", - "user_select_result": "用户选择结果" - }, - "retry": "重新生成", - "tts": { - "Stop Speech": "停止" - } - }, - "common": { - "tip": { - "leave page": "内容已修改,确认离开页面吗?" - } - }, - "dataset": { - "Choose Dataset": "关联知识库", - "Collection": "数据集", - "Create dataset": "创建一个{{name}}", - "Dataset": "知识库", - "Dataset ID": "知识库 ID", - "Delete Confirm": "确认删除该知识库?删除后数据无法恢复,请确认!", - "Empty Dataset": "空数据集", - "Empty Dataset Tips": "还没有知识库,快去创建一个吧!", - "Folder placeholder": "这是一个目录", - "Go Dataset": "前往知识库", - "Intro Placeholder": "这个知识库还没有介绍~", - "Manual collection": "手动数据集", - "My Dataset": "我的知识库", - "Query extension intro": "开启问题优化功能,可以提高提高连续对话时,知识库搜索的精度。开启该功能后,在进行知识库搜索时,会根据对话记录,利用 AI 补全问题缺失的信息。", - "Quote Length": "引用内容长度", - "Read Dataset": "查看知识库详情", - "Set Website Config": "开始配置网站信息", - "Start export": "已开始导出", - "Table collection": "表格数据集", - "Text collection": "文本数据集", - "collection": { - "Click top config website": "点击配置网站", - "Collection name": "数据集名称", - "Collection raw text": "数据集内容", - "Empty Tip": "数据集空空如也", - "QA Prompt": "QA 拆分引导词", - "Start Sync Tip": "确认开始同步数据?将会删除旧数据后重新获取,请确认!", - "Sync": "同步数据", - "Sync Collection": "数据同步", - "Website Empty Tip": "还没有关联网站", - "Website Link": "Web 站点地址", - "id": "集合 ID", - "metadata": { - "Chunk Size": "分割大小", - "Createtime": "创建时间", - "Raw text length": "原文长度", - "Training Type": "训练模式", - "Updatetime": "更新时间", - "Web page selector": "网站选择器", - "metadata": "元数据", - "read source": "查看原始内容", - "source": "数据来源", - "source name": "来源名", - "source size": "来源大小" - }, - "status": { - "active": "已就绪" - }, - "sync": { - "result": { - "sameRaw": "内容未变动,无需更新", - "success": "开始同步" - } - }, - "training": {} - }, - "data": { - "Auxiliary Data": "辅助数据", - "Auxiliary Data Placeholder": "该部分为可选填项,通常是为了与前面的【数据内容】配合,构建结构化提示词,用于特殊场景,最多 {{maxToken}} 字。", - "Auxiliary Data Tip": "该部分为可选填项\n该内容通常是为了与前面的数据内容配合,构建结构化提示词,用于特殊场景", - "Data Content": "相关数据内容", - "Data Content Placeholder": "该输入框是必填项,该内容通常是对于知识点的描述,也可以是用户的问题,最多 {{maxToken}} 字。", - "Data Content Tip": "该输入框是必填项\n该内容通常是对于知识点的描述,也可以是用户的问题。", - "Default Index Tip": "无法编辑,默认索引会使用【相关数据内容】与【辅助数据】的文本直接生成索引。", - "Edit": "编辑数据", - "Empty Tip": "这个集合还没有数据~", - "Main Content": "主要内容", - "Search data placeholder": "搜索相关数据", - "Too Long": "总长度超长了", - "Total Amount": "{{total}} 组", - "group": "组", - "unit": "条" - }, - "embedding model tip": "索引模型可以将自然语言转成向量,用于进行语义检索。\n注意,不同索引模型无法一起使用,选择完索引模型后将无法修改。", - "error": { - "Data not found": "数据不存在或已被删除", - "Start Sync Failed": "开始同步失败", - "invalidVectorModelOrQAModel": "VectorModel 或 QA 模型错误", - "unAuthDataset": "无权操作该知识库", - "unAuthDatasetCollection": "无权操作该数据集", - "unAuthDatasetData": "无权操作该数据", - "unAuthDatasetFile": "无权操作该文件", - "unCreateCollection": "无权操作该数据", - "unLinkCollection": "不是网络链接集合" - }, - "externalFile": "外部文件库", - "file": "文件", - "folder": "目录", - "import": { - "Auto mode Estimated Price Tips": "需调用文件处理模型,需要消耗较多 tokens:{{price}} 积分/1K tokens", - "Auto process": "自动", - "Auto process desc": "自动设置分割和预处理规则", - "Chunk Range": "范围:{{min}}~{{max}}", - "Chunk Split": "直接分段", - "Chunk Split Tip": "将文本按一定的规则进行分段处理后,转成可进行语义搜索的格式,适合绝大多数场景。不需要调用模型额外处理,成本低。", - "Custom process": "自定义规则", - "Custom process desc": "自定义设置分制和预处理规则", - "Custom prompt": "自定义提示词", - "Custom split char": "自定义分隔符", - "Custom split char Tips": "允许你根据自定义的分隔符进行分块。通常用于已处理好的数据,使用特定的分隔符来精确分块。", - "Custom text": "自定义文本", - "Custom text desc": "手动输入一段文本作为数据集", - "Data Preprocessing": "数据处理", - "Data process params": "数据处理参数", - "Down load csv template": "点击下载 CSV 模板", - "Embedding Estimated Price Tips": "仅使用索引模型,消耗少量 AI 积分:{{price}} 积分/1K tokens", - "Ideal chunk length": "理想分块长度", - "Ideal chunk length Tips": "按结束符号进行分段,并将多个分段组成一个分块,该值决定了分块的预估大小。", - "Import success": "导入成功,请等待训练", - "Link name": "网络链接", - "Link name placeholder": "仅支持静态链接,如果上传后数据为空,可能该链接无法被读取\n每行一个,每次最多 10 个链接", - "Local file": "本地文件", - "Local file desc": "上传 PDF、TXT、DOCX 等格式的文件", - "Preview chunks": "预览分段(最多 5 段)", - "Preview raw text": "预览源文本(最多 3000 字)", - "Process way": "处理方式", - "QA Estimated Price Tips": "需调用文件处理模型,需要消耗较多 AI 积分:{{price}} 积分/1K tokens", - "QA Import": "QA 拆分", - "QA Import Tip": "根据一定规则,将文本拆成一段较大的段落,调用 AI 为该段落生成问答对。有非常高的检索精度,但是会丢失很多内容细节。", - "Select file": "选择文件", - "Select source": "选择来源", - "Source name": "来源名", - "Sources list": "来源列表", - "Start upload": "开始上传", - "Total files": "共 {{total}} 个文件", - "Training mode": "训练模式", - "Upload data": "上传数据", - "Upload file progress": "文件上传进度", - "Upload status": "状态", - "Web link": "网页链接", - "Web link desc": "读取静态网页内容作为数据集" - }, - "link": "链接", - "search": { - "Dataset Search Params": "知识库搜索配置", - "Empty result response": "空搜索回复", - "Filter": "搜索过滤", - "Max Tokens": "引用上限", - "Max Tokens Tips": "单次搜索最大的 token 数量,中文约 1 字=1.7 tokens,英文约 1 字=1 token", - "Min Similarity": "最低相关度", - "Min Similarity Tips": "不同索引模型的相关度有区别,请通过搜索测试来选择合适的数值,使用 Rerank 时,相关度可能会很低。", - "No support similarity": "仅使用结果重排或语义检索时,支持相关度过滤", - "Nonsupport": "不支持", - "Params Setting": "搜索参数设置", - "Quote index": "第几个引用", - "ReRank": "结果重排", - "ReRank desc": "使用重排模型来进行二次排序,可增强综合排名。", - "Source id": "来源 ID", - "Source name": "引用来源名", - "Using query extension": "使用问题优化", - "mode": { - "embedding": "语义检索", - "embedding desc": "使用向量进行文本相关性查询", - "fullTextRecall": "全文检索", - "fullTextRecall desc": "使用传统的全文检索,适合查找一些关键词和主谓语特殊的数据", - "mixedRecall": "混合检索", - "mixedRecall desc": "使用向量检索与全文检索的综合结果返回,使用 RRF 算法进行排序。" - }, - "score": { - "embedding": "语义检索", - "embedding desc": "通过计算向量之间的距离获取得分,范围为 0~1。", - "fullText": "全文检索", - "fullText desc": "计算相同关键词的得分,范围为 0~无穷。", - "reRank": "结果重排", - "reRank desc": "通过 Rerank 模型计算句子之间的关联度,范围为 0~1。", - "rrf": "综合排名", - "rrf desc": "通过倒排计算的方式,合并多个检索结果。" - }, - "search mode": "搜索模式" - }, - "status": { - "active": "已就绪", - "syncing": "同步中" - }, - "test": { - "Batch test": "批量测试", - "Batch test Placeholder": "选择一个 CSV 文件", - "Search Test": "搜索测试", - "Test": "测试", - "Test Result": "测试结果", - "Test Text": "单个文本测试", - "Test Text Placeholder": "输入需要测试的文本", - "Test params": "测试参数", - "delete test history": "删除该测试结果", - "test history": "测试历史", - "test result placeholder": "测试结果将在这里展示", - "test result tip": "根据知识库内容与测试文本的相似度进行排序,你可以根据测试结果调整对应的文本。\n注意:测试记录中的数据可能已经被修改过,点击某条测试数据后将展示最新的数据。" - }, - "training": { - "Agent queue": "QA 训练排队", - "Auto mode": "增强处理(实验)", - "Auto mode Tip": "通过子索引以及调用模型生成相关问题与摘要,来增加数据块的语义丰富度,更利于检索。需要消耗更多的存储空间和增加 AI 调用次数。", - "Chunk mode": "直接分段", - "Full": "预计 5 分钟以上", - "Leisure": "空闲", - "QA mode": "问答拆分", - "Vector queue": "索引排队", - "Waiting": "预计 5 分钟", - "Website Sync": "Web 站点同步", - "tag": "排队情况" - }, - "website": { - "Base Url": "根地址", - "Config": "Web 站点配置", - "Config Description": "Web 站点同步功能允许你填写一个网站的根地址,系统会自动深度抓取相关的网页进行知识库训练。仅会抓取静态的网站,以项目文档、博客为主。", - "Confirm Create Tips": "确认同步该站点,同步任务将随后开启,请确认!", - "Confirm Update Tips": "确认更新站点配置?会立即按新的配置开始同步,请确认!", - "Selector": "选择器", - "Selector Course": "使用教程", - "Start Sync": "开始同步", - "UnValid Website Tip": "您的站点可能非静态站点,无法同步" - } - }, - "module": { - "Add question type": "添加问题类型", - "Add_option": "添加选项", - "Can not connect self": "不能连接自身", - "Data Type": "数据类型", - "Dataset quote": { - "label": "知识库引用", - "select": "选择知识库引用" - }, - "Default Value": "默认值", - "Default value": "默认值", - "Default value placeholder": "不填则默认返回空字符", - "Diagram": "示意图", - "Edit intro": "编辑描述", - "Field Description": "字段描述", - "Field Name": "字段名", - "Http request props": "请求参数", - "Http request settings": "请求配置", - "Http timeout": "超时时长", - "Input Type": "输入类型", - "Laf sync params": "同步参数", - "Max Length": "最大长度", - "Max Length placeholder": "输入文本的最大长度", - "Max Value": "最大值", - "Min Value": "最小值", - "QueryExtension": { - "placeholder": "例如:\n关于 Python 的介绍和使用等问题。\n当前对话与游戏《GTA5》有关。" - }, - "Select app": "选择应用", - "Setting quote prompt": "配置引用提示词", - "Variable": "全局变量", - "Variable Setting": "变量设置", - "edit": { - "Field Name Cannot Be Empty": "字段名不能为空" - }, - "extract": { - "Add field": "新增字段", - "Enum Description": "列举出该字段可能的值,每行一个", - "Enum Value": "枚举值", - "Field Description Placeholder": "姓名/年龄/SQL 语句……", - "Field Setting Title": "提取字段配置", - "Required": "必须返回", - "Required Description": "即使无法提取该字段,也会使用默认值进行返回", - "Target field": "目标字段" - }, - "http": { - "Add props": "添加参数", - "AppId": "应用 ID", - "ChatId": "当前对话 ID", - "Current time": "当前时间", - "Histories": "历史记录", - "Key already exists": "Key 已经存在", - "Key cannot be empty": "参数名不能为空", - "Props name": "参数名", - "Props tip": "可以设置 HTTP 请求的相关参数\n可通过输入 / 来调用变量,当前可使用变量:\n{{variable}}", - "Props value": "参数值", - "ResponseChatItemId": "AI 回复的 ID", - "Url and params have been split": "路径参数已被自动加入 Params 中", - "curl import": "cURL 导入", - "curl import placeholder": "请输入 cURL 格式内容,将会提取第一个接口的请求信息。" - }, - "input": { - "Add Branch": "添加分支", - "add": "添加条件", - "description": { - "Background": "你可以添加一些特定内容的介绍,从而更好的识别用户的问题类型。这个内容通常是给模型介绍一个它不知道的内容。", - "HTTP Dynamic Input": "接收前方节点的输出值作为变量,这些变量可以被 HTTP 请求参数使用。", - "Http Request Header": "自定义请求头,请严格填入 JSON 字符串。\n1. 确保最后一个属性没有逗号\n2. 确保 key 包含双引号\n例如:{\"Authorization\":\"Bearer xxx\"}", - "Http Request Url": "新的 HTTP 请求地址。如果出现两个“请求地址”,可以删除该模块重新加入,会拉取最新的模块配置。", - "Response content": "可以使用 \\n 来实现连续换行。\n可以通过外部模块输入实现回复,外部模块输入时会覆盖当前填写的内容。\n如传入非字符串类型数据将会自动转成字符串" - }, - "label": { - "Background": "背景知识", - "Http Request Url": "请求地址", - "Response content": "回复的内容", - "Select dataset": "选择知识库", - "aiModel": "AI 模型", - "chat history": "聊天记录", - "user question": "用户问题" - }, - "placeholder": { - "Classify background": "例如:\n1. AIGC(人工智能生成内容)是指使用人工智能技术自动或半自动地生成数字内容,如文本、图像、音乐、视频等。\n2. AIGC 技术包括但不限于自然语言处理、计算机视觉、机器学习和深度学习。这些技术可以创建新内容或修改现有内容,以满足特定的创意、教育、娱乐或信息需求。" - } - }, - "laf": { - "Select laf function": "选择 laf 函数" - }, - "output": { - "description": { - "Ai response content": "将在 stream 回复完毕后触发", - "New context": "将本次回复内容拼接上历史记录,作为新的上下文返回", - "query extension result": "以字符串数组的形式输出,可将该结果直接连接到“知识库搜索”的“用户问题”中,建议不要连接到“AI 对话”的“用户问题”中" - }, - "label": { - "Ai response content": "AI 回复内容", - "New context": "新的上下文", - "query extension result": "优化结果" - } - }, - "template": { - "AI function": "AI能力", - "AI response switch tip": "如果你希望当前节点不输出内容,可以关闭该开关。AI 输出的内容不会展示给用户,你可以手动的使用“AI 回复内容”进行特殊处理。", - "AI support tool tip": "支持函数调用的模型,可以更好的使用工具调用。", - "Basic Node": "基础功能", - "Query extension": "问题优化", - "System Plugin": "系统插件", - "System input module": "系统输入", - "Team app": "团队应用", - "Tool module": "工具", - "UnKnow Module": "未知模块", - "ai_chat": "AI 对话", - "ai_chat_intro": "AI 大模型对话", - "config_params": "可以配置应用的系统参数", - "empty_plugin": "空白插件", - "empty_workflow": "空白工作流", - "http body placeholder": "与 Apifox 相同的语法", - "self_output": "插件输出", - "system_config": "系统配置", - "system_config_info": "可以配置应用的系统参数", - "work_start": "流程开始" - }, - "templates": { - "Load plugin error": "加载插件失败" - }, - "variable": { - "Custom type": "自定义变量", - "add option": "添加选项", - "input type": "文本", - "key": "变量 key", - "key already exists": "Key 已经存在", - "key is required": "变量 key 是必须的", - "select type": "下拉单选", - "text max length": "最大长度", - "textarea type": "段落", - "variable name": "变量名", - "variable name is required": "变量名不能为空", - "variable option is required": "选项不能全空", - "variable option is value is required": "选项内容不能为空", - "variable options": "选项" - }, - "variable add option": "添加选项" - }, - "plugin": { - "Custom headers": "自定义请求头", - "Free": "该插件无需积分消耗~", - "Get Plugin Module Detail Failed": "加载插件异常", - "Http plugin intro placeholder": "仅做展示,无实际效果", - "cost": "积分消耗:" - }, - "view_chat_detail": "查看对话详情", - "workflow": { - "Can not delete node": "该节点不允许删除", - "Change input type tip": "修改输入类型会清空已填写的值,请确认!", - "Check Failed": "工作流校验失败,请检查节点是否正确填值,以及连线是否正常", - "Confirm stop debug": "确认终止调试?调试信息将会不保留。", - "Copy node": "已复制节点", - "Custom inputs": "自定义输入", - "Custom outputs": "自定义输出", - "Dataset quote": "知识库引用", - "Debug": "调试", - "Debug Node": "Debug 模式", - "Failed": "运行失败", - "Not intro": "这个节点没有介绍~", - "Run": "运行", - "Running": "运行中", - "Save and publish": "保存并发布", - "Save to cloud": "仅保存", - "Skipped": "跳过运行", - "Stop debug": "停止调试", - "Success": "运行成功", - "Value type": "数据类型", - "Variable": { - "Variable type": "变量类型" - }, - "debug": { - "Done": "完成调试", - "Hide result": "隐藏结果", - "Not result": "无运行结果", - "Run result": "运行结果", - "Show result": "展示结果" - }, - "dynamic_input": "动态输入", - "inputType": { - "JSON Editor": "JSON 输入框", - "Manual input": "手动输入", - "Manual select": "手动选择", - "Reference": "变量引用", - "custom": "自定义变量", - "dynamicTargetInput": "动态外部数据", - "input": "单行输入框", - "number input": "数字输入框", - "select": "单选框", - "selectApp": "应用选择", - "selectDataset": "知识库选择", - "selectLLMModel": "对话模型选择", - "switch": "开关", - "textarea": "多行输入框" - }, - "publish": { - "OnRevert version": "点击回退到该版本", - "OnRevert version confirm": "确认回退至该版本?会为您保存编辑中版本的配置,并为回退版本创建一个新的发布版本。", - "histories": "发布记录" - }, - "template": { - "Interactive": "交互", - "Multimodal": "多模态", - "Search": "搜索" - }, - "tool": { - "Handle": "工具连接器", - "Select Tool": "选择工具" - }, - "value": "值", - "variable": "变量" - } - }, + "core.Chat": "对话", + "core.Max Token": "单条数据上限", + "core.ai.AI settings": "AI 配置", + "core.ai.Ai point price": "AI 积分消耗", + "core.ai.Max context": "最大上下文", + "core.ai.Model": "AI 模型", + "core.ai.Not deploy rerank model": "未部署重排模型", + "core.ai.Prompt": "提示词", + "core.ai.Support tool": "函数调用", + "core.ai.model.Dataset Agent Model": "文件处理模型", + "core.ai.model.Vector Model": "索引模型", + "core.ai.model.doc_index_and_dialog": "文档索引 & 对话索引", + "core.app.Ai response": "返回 AI 内容", + "core.app.Api request": "API 访问", + "core.app.Api request desc": "通过 API 接入到已有系统中,或企微、飞书等", + "core.app.App intro": "应用介绍", + "core.app.Chat Variable": "对话框变量", + "core.app.Config schedule plan": "配置定时执行", + "core.app.Config whisper": "配置语音输入", + "core.app.Interval timer config": "定时执行配置", + "core.app.Interval timer run": "定时执行", + "core.app.Interval timer tip": "可定时执行应用", + "core.app.Make a brief introduction of your app": "给你的 AI 应用一个介绍", + "core.app.Max histories": "聊天记录数量", + "core.app.Max tokens": "回复上限", + "core.app.Name and avatar": "头像 & 名称", + "core.app.Publish": "发布", + "core.app.Publish Confirm": "确认发布应用?会立即更新所有发布渠道的应用状态。", + "core.app.Publish app tip": "发布应用后,所有发布渠道将会立即使用该版本", + "core.app.Question Guide": "猜你想问", + "core.app.Question Guide Tip": "对话结束后,会为生成 3 个引导性问题。", + "core.app.Quote prompt": "引用模板提示词", + "core.app.Quote templates": "引用内容模板", + "core.app.Random": "发散", + "core.app.Search team tags": "搜索标签", + "core.app.Select TTS": "选择语音播放模式", + "core.app.Select app from template": "从模板中选择", + "core.app.Select quote template": "选择引用提示模板", + "core.app.Set a name for your app": "给应用设置一个名称", + "core.app.Setting ai property": "点击配置 AI 模型相关属性", + "core.app.Share link": "免登录窗口", + "core.app.Share link desc": "分享链接给其他用户,无需登录即可直接进行使用", + "core.app.Share link desc detail": "可以直接分享该模型给其他用户去进行对话,对方无需登录即可直接进行对话。注意,这个功能会消耗你账号的余额,请保管好链接!", + "core.app.TTS": "语音播放", + "core.app.TTS Tip": "开启后,每次对话后可使用语音播放功能。使用该功能可能产生额外费用。", + "core.app.TTS start": "朗读内容", + "core.app.Team tags": "团队标签", + "core.app.Temperature": "温度", + "core.app.Tool call": "工具调用", + "core.app.ToolCall.No plugin": "没有可用的插件", + "core.app.ToolCall.Parameter setting": "输入参数", + "core.app.ToolCall.System": "系统", + "core.app.ToolCall.Team": "团队", + "core.app.Welcome Text": "对话开场白", + "core.app.Whisper": "语音输入", + "core.app.Whisper config": "语音输入配置", + "core.app.deterministic": "严谨", + "core.app.edit.Prompt Editor": "提示词编辑", + "core.app.edit.Query extension background prompt": "对话背景描述", + "core.app.edit.Query extension background tip": "描述当前对话的范围,便于 AI 为当前问题进行补全和扩展。填写的内容,通常为该助手", + "core.app.edit_content": "应用信息编辑", + "core.app.error.App name can not be empty": "应用名不能为空", + "core.app.error.Get app failed": "获取应用异常", + "core.app.feedback.Custom feedback": "自定义反馈", + "core.app.feedback.close custom feedback": "关闭反馈", + "core.app.have_saved": "已保存", + "core.app.logs.Source And Time": "来源 & 时间", + "core.app.more": "查看更多", + "core.app.no_app": "还没有应用,快去创建一个吧!", + "core.app.not_saved": "未保存", + "core.app.outLink.Can Drag": "图标可拖拽", + "core.app.outLink.Default open": "默认打开", + "core.app.outLink.Iframe block title": "复制下面 iframe 加入到你的网站中", + "core.app.outLink.Link block title": "将下面链接复制到浏览器打开", + "core.app.outLink.Script Close Icon": "关闭图标", + "core.app.outLink.Script Open Icon": "打开图标", + "core.app.outLink.Script block title": "将下面代码加入到你的网站中", + "core.app.outLink.Select Mode": "开始使用", + "core.app.outLink.Select Using Way": "选择使用方式", + "core.app.outLink.Show History": "展示历史对话", + "core.app.publish.Fei shu bot": "飞书", + "core.app.publish.Fei shu bot publish": "发布到飞书机器人", + "core.app.schedule.Default prompt": "默认问题", + "core.app.schedule.Default prompt placeholder": "执行应用时的默认问题", + "core.app.schedule.Every day": "每天 {{hour}}:00", + "core.app.schedule.Every month": "每月 {{day}} 号 {{hour}}:00", + "core.app.schedule.Every week": "每周{{day}} {{hour}}:00", + "core.app.schedule.Interval": "每 {{interval}} 小时", + "core.app.schedule.Open schedule": "定时执行", + "core.app.setting": "应用信息设置", + "core.app.share.Amount limit tip": "最多创建 10 组", + "core.app.share.Create link": "创建新链接", + "core.app.share.Create link tip": "创建成功。已复制分享地址,可直接分享使用", + "core.app.share.Ip limit title": "IP 限流(人/分钟)", + "core.app.share.Is response quote": "返回引用", + "core.app.share.Not share link": "没有创建分享链接", + "core.app.share.Role check": "身份校验", + "core.app.tip.Add a intro to app": "快来给应用一个介绍~", + "core.app.tip.chatNodeSystemPromptTip": "模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。可通过输入 / 插入选择变量\n如果关联了知识库,你还可以通过适当的描述,来引导模型何时去调用知识库搜索。例如:\n你是电影《星际穿越》的助手,当用户询问与《星际穿越》相关的内容时,请搜索知识库并结合搜索结果进行回答。", + "core.app.tip.variableTip": "可以在对话开始前,要求用户填写一些内容作为本轮对话的特定变量。该模块位于开场引导之后。\n变量可以通过 {{变量key}} 的形式注入到其他模块 string 类型的输入中,例如:提示词、限定词等", + "core.app.tip.welcomeTextTip": "每次对话开始前,发送一个初始内容。支持标准 Markdown 语法,可使用的额外标记:\n[快捷按键]:用户点击后可以直接发送该问题", + "core.app.tool_label.doc": "使用文档", + "core.app.tool_label.github": "GitHub地址", + "core.app.tool_label.price": "计费说明", + "core.app.tool_label.view_doc": "查看说明文档", + "core.app.tts.Close": "不使用", + "core.app.tts.Speech model": "语音模型", + "core.app.tts.Speech speed": "语速", + "core.app.tts.Test Listen": "试听", + "core.app.tts.Test Listen Text": "你好,这是语音测试,如果你能听到这句话,说明语音播放功能正常", + "core.app.tts.Web": "浏览器自带(免费)", + "core.app.whisper.Auto send": "自动发送", + "core.app.whisper.Auto send tip": "语音输入完毕后直接发送,不需要再手动点击发送按键", + "core.app.whisper.Auto tts response": "自动语音回复", + "core.app.whisper.Auto tts response tip": "通过语音输入发送的问题,会直接以语音的形式响应,请确保打开了语音播报功能。", + "core.app.whisper.Close": "关闭", + "core.app.whisper.Not tts tip": "你没有开启语音播放,该功能无法使用", + "core.app.whisper.Open": "开启", + "core.app.whisper.Switch": "开启语音输入", + "core.chat.Admin Mark Content": "纠正后的回复", + "core.chat.Audio Not Support": "设备不支持语音播放", + "core.chat.Audio Speech Error": "语音播报异常", + "core.chat.Cancel Speak": "取消语音输入", + "core.chat.Confirm to clear history": "确认清空该应用的在线聊天记录?分享和 API 调用的记录不会被清空。", + "core.chat.Confirm to clear share chat history": "确认删除所有聊天记录?", + "core.chat.Converting to text": "正在转换为文本...", + "core.chat.Custom History Title": "自定义历史记录标题", + "core.chat.Custom History Title Description": "如果设置为空,会自动跟随聊天记录。", + "core.chat.Exit Chat": "退出聊天", + "core.chat.Failed to initialize chat": "初始化聊天失败", + "core.chat.Feedback Failed": "提交反馈异常", + "core.chat.Feedback Modal": "结果反馈", + "core.chat.Feedback Modal Tip": "输入你觉得回答不满意的地方", + "core.chat.Feedback Submit": "提交反馈", + "core.chat.Feedback Success": "反馈成功!", + "core.chat.Finish Speak": "语音输入完成", + "core.chat.History": "历史记录", + "core.chat.History Amount": "{{amount}} 条记录", + "core.chat.Mark": "标注预期回答", + "core.chat.Mark Description": "当前标注功能为测试版。\n\n点击添加标注后,需要选择一个知识库,以便存储标注数据。你可以通过该功能快速的标注问题和预期回答,以便引导模型下次的回答。\n\n目前,标注功能同知识库其他数据一样,受模型的影响,不代表标注后 100% 符合预期。\n\n标注数据仅单向与知识库同步,如果知识库修改了该标注数据,日志展示的标注数据无法同步。", + "core.chat.Mark Description Title": "标注功能介绍", + "core.chat.New Chat": "新对话", + "core.chat.Pin": "置顶", + "core.chat.Question Guide": "猜你想问", + "core.chat.Quote": "引用", + "core.chat.Quote Amount": "知识库引用({{amount}} 条)", + "core.chat.Read Mark Description": "查看标注功能介绍", + "core.chat.Recent use": "最近使用", + "core.chat.Record": "语音输入", + "core.chat.Restart": "重开对话", + "core.chat.Run test": "运行预览", + "core.chat.Select dataset": "选择知识库", + "core.chat.Select dataset Desc": "选择一个知识库存储预期答案", + "core.chat.Send Message": "发送", + "core.chat.Speaking": "我在听,请说...", + "core.chat.Start Chat": "开始对话", + "core.chat.Type a message": "输入问题,发送 [Enter]/换行 [Ctrl(Alt/Shift) + Enter]", + "core.chat.Unpin": "取消置顶", + "core.chat.You need to a chat app": "你没有可用的应用", + "core.chat.error.Chat error": "对话出现异常", + "core.chat.error.Messages empty": "接口内容为空,可能文本超长了~", + "core.chat.error.Select dataset empty": "你没有选择知识库", + "core.chat.error.User input empty": "传入的用户问题为空", + "core.chat.error.data_error": "获取数据异常", + "core.chat.feedback.Close User Like": "用户表示赞同\n点击关闭该标记", + "core.chat.feedback.Feedback Close": "关闭反馈", + "core.chat.feedback.No Content": "用户没有填写具体反馈内容", + "core.chat.feedback.Read User dislike": "用户表示反对\n点击查看内容", + "core.chat.logs.api": "API 调用", + "core.chat.logs.feishu": "飞书", + "core.chat.logs.free_login": "免登录链接", + "core.chat.logs.official_account": "公众号", + "core.chat.logs.online": "在线使用", + "core.chat.logs.share": "外部链接调用", + "core.chat.logs.team": "团队空间对话", + "core.chat.logs.test": "测试", + "core.chat.logs.wecom": "企业微信", + "core.chat.markdown.Edit Question": "编辑问题", + "core.chat.markdown.Quick Question": "点我立即提问", + "core.chat.markdown.Send Question": "发送问题", + "core.chat.quote.Quote Tip": "此处仅显示实际引用内容,若数据有更新,此处不会实时更新", + "core.chat.quote.Read Quote": "查看引用", + "core.chat.response.Complete Response": "完整响应", + "core.chat.response.Extension model": "问题优化模型", + "core.chat.response.Read complete response": "查看详情", + "core.chat.response.Read complete response tips": "点击查看详细流程", + "core.chat.response.Tool call tokens": "工具调用 tokens 消耗", + "core.chat.response.context total length": "上下文总长度", + "core.chat.response.loop_input": "输入数组", + "core.chat.response.loop_input_element": "输入数组元素", + "core.chat.response.loop_output": "输出数组", + "core.chat.response.loop_output_element": "输出数组元素", + "core.chat.response.module cq": "问题分类列表", + "core.chat.response.module cq result": "分类结果", + "core.chat.response.module extract description": "提取背景描述", + "core.chat.response.module extract result": "提取结果", + "core.chat.response.module historyPreview": "记录预览(仅展示部分内容)", + "core.chat.response.module http result": "响应体", + "core.chat.response.module if else Result": "判断器结果", + "core.chat.response.module limit": "单次搜索上限", + "core.chat.response.module maxToken": "最大响应 tokens", + "core.chat.response.module model": "模型", + "core.chat.response.module name": "模型名", + "core.chat.response.module query": "问题/检索词", + "core.chat.response.module quoteList": "引用内容", + "core.chat.response.module similarity": "相似度", + "core.chat.response.module temperature": "温度", + "core.chat.response.module time": "运行时长", + "core.chat.response.module tokens": "AI Tokens 消耗", + "core.chat.response.plugin output": "插件输出值", + "core.chat.response.search using reRank": "结果重排", + "core.chat.response.text output": "文本输出", + "core.chat.response.update_var_result": "变量更新结果(按顺序展示多个变量更新结果)", + "core.chat.response.user_select_result": "用户选择结果", + "core.chat.retry": "重新生成", + "core.chat.tts.Stop Speech": "停止", + "core.common.tip.leave page": "内容已修改,确认离开页面吗?", + "core.dataset.Choose Dataset": "关联知识库", + "core.dataset.Collection": "数据集", + "core.dataset.Create dataset": "创建一个{{name}}", + "core.dataset.Dataset": "知识库", + "core.dataset.Dataset ID": "知识库 ID", + "core.dataset.Delete Confirm": "确认删除该知识库?删除后数据无法恢复,请确认!", + "core.dataset.Empty Dataset": "空数据集", + "core.dataset.Empty Dataset Tips": "还没有知识库,快去创建一个吧!", + "core.dataset.Folder placeholder": "这是一个目录", + "core.dataset.Go Dataset": "前往知识库", + "core.dataset.Intro Placeholder": "这个知识库还没有介绍~", + "core.dataset.Manual collection": "手动数据集", + "core.dataset.My Dataset": "我的知识库", + "core.dataset.Query extension intro": "开启问题优化功能,可以提高提高连续对话时,知识库搜索的精度。开启该功能后,在进行知识库搜索时,会根据对话记录,利用 AI 补全问题缺失的信息。", + "core.dataset.Quote Length": "引用内容长度", + "core.dataset.Read Dataset": "查看知识库详情", + "core.dataset.Set Website Config": "开始配置网站信息", + "core.dataset.Start export": "已开始导出", + "core.dataset.Table collection": "表格数据集", + "core.dataset.Text collection": "文本数据集", + "core.dataset.collection.Click top config website": "点击配置网站", + "core.dataset.collection.Collection name": "数据集名称", + "core.dataset.collection.Collection raw text": "数据集内容", + "core.dataset.collection.Empty Tip": "数据集空空如也", + "core.dataset.collection.QA Prompt": "QA 拆分引导词", + "core.dataset.collection.Start Sync Tip": "确认开始同步数据?将会删除旧数据后重新获取,请确认!", + "core.dataset.collection.Sync": "同步数据", + "core.dataset.collection.Sync Collection": "数据同步", + "core.dataset.collection.Website Empty Tip": "还没有关联网站", + "core.dataset.collection.Website Link": "Web 站点地址", + "core.dataset.collection.id": "集合 ID", + "core.dataset.collection.metadata.Chunk Size": "分割大小", + "core.dataset.collection.metadata.Createtime": "创建时间", + "core.dataset.collection.metadata.Raw text length": "原文长度", + "core.dataset.collection.metadata.Training Type": "训练模式", + "core.dataset.collection.metadata.Updatetime": "更新时间", + "core.dataset.collection.metadata.Web page selector": "网站选择器", + "core.dataset.collection.metadata.metadata": "元数据", + "core.dataset.collection.metadata.read source": "查看原始内容", + "core.dataset.collection.metadata.source": "数据来源", + "core.dataset.collection.metadata.source name": "来源名", + "core.dataset.collection.metadata.source size": "来源大小", + "core.dataset.collection.status.active": "已就绪", + "core.dataset.collection.sync.result.sameRaw": "内容未变动,无需更新", + "core.dataset.collection.sync.result.success": "开始同步", + "core.dataset.data.Auxiliary Data": "辅助数据", + "core.dataset.data.Auxiliary Data Placeholder": "该部分为可选填项,通常是为了与前面的【数据内容】配合,构建结构化提示词,用于特殊场景,最多 {{maxToken}} 字。", + "core.dataset.data.Auxiliary Data Tip": "该部分为可选填项\n该内容通常是为了与前面的数据内容配合,构建结构化提示词,用于特殊场景", + "core.dataset.data.Data Content": "相关数据内容", + "core.dataset.data.Data Content Placeholder": "该输入框是必填项,该内容通常是对于知识点的描述,也可以是用户的问题,最多 {{maxToken}} 字。", + "core.dataset.data.Data Content Tip": "该输入框是必填项\n该内容通常是对于知识点的描述,也可以是用户的问题。", + "core.dataset.data.Default Index Tip": "无法编辑,默认索引会使用【相关数据内容】与【辅助数据】的文本直接生成索引。", + "core.dataset.data.Edit": "编辑数据", + "core.dataset.data.Empty Tip": "这个集合还没有数据~", + "core.dataset.data.Main Content": "主要内容", + "core.dataset.data.Search data placeholder": "搜索相关数据", + "core.dataset.data.Too Long": "总长度超长了", + "core.dataset.data.Total Amount": "{{total}} 组", + "core.dataset.data.group": "组", + "core.dataset.data.unit": "条", + "core.dataset.embedding model tip": "索引模型可以将自然语言转成向量,用于进行语义检索。\n注意,不同索引模型无法一起使用,选择完索引模型后将无法修改。", + "core.dataset.error.Data not found": "数据不存在或已被删除", + "core.dataset.error.Start Sync Failed": "开始同步失败", + "core.dataset.error.invalidVectorModelOrQAModel": "VectorModel 或 QA 模型错误", + "core.dataset.error.unAuthDataset": "无权操作该知识库", + "core.dataset.error.unAuthDatasetCollection": "无权操作该数据集", + "core.dataset.error.unAuthDatasetData": "无权操作该数据", + "core.dataset.error.unAuthDatasetFile": "无权操作该文件", + "core.dataset.error.unCreateCollection": "无权操作该数据", + "core.dataset.error.unLinkCollection": "不是网络链接集合", + "core.dataset.externalFile": "外部文件库", + "core.dataset.file": "文件", + "core.dataset.folder": "目录", + "core.dataset.import.Auto mode Estimated Price Tips": "需调用文件处理模型,需要消耗较多 tokens:{{price}} 积分/1K tokens", + "core.dataset.import.Auto process": "自动", + "core.dataset.import.Auto process desc": "自动设置分割和预处理规则", + "core.dataset.import.Chunk Range": "范围:{{min}}~{{max}}", + "core.dataset.import.Chunk Split": "直接分段", + "core.dataset.import.Chunk Split Tip": "将文本按一定的规则进行分段处理后,转成可进行语义搜索的格式,适合绝大多数场景。不需要调用模型额外处理,成本低。", + "core.dataset.import.Custom process": "自定义规则", + "core.dataset.import.Custom process desc": "自定义设置分制和预处理规则", + "core.dataset.import.Custom prompt": "自定义提示词", + "core.dataset.import.Custom split char": "自定义分隔符", + "core.dataset.import.Custom split char Tips": "允许你根据自定义的分隔符进行分块。通常用于已处理好的数据,使用特定的分隔符来精确分块。", + "core.dataset.import.Custom text": "自定义文本", + "core.dataset.import.Custom text desc": "手动输入一段文本作为数据集", + "core.dataset.import.Data Preprocessing": "数据处理", + "core.dataset.import.Data process params": "数据处理参数", + "core.dataset.import.Down load csv template": "点击下载 CSV 模板", + "core.dataset.import.Embedding Estimated Price Tips": "仅使用索引模型,消耗少量 AI 积分:{{price}} 积分/1K tokens", + "core.dataset.import.Ideal chunk length": "理想分块长度", + "core.dataset.import.Ideal chunk length Tips": "按结束符号进行分段,并将多个分段组成一个分块,该值决定了分块的预估大小。", + "core.dataset.import.Import success": "导入成功,请等待训练", + "core.dataset.import.Link name": "网络链接", + "core.dataset.import.Link name placeholder": "仅支持静态链接,如果上传后数据为空,可能该链接无法被读取\n每行一个,每次最多 10 个链接", + "core.dataset.import.Local file": "本地文件", + "core.dataset.import.Local file desc": "上传 PDF、TXT、DOCX 等格式的文件", + "core.dataset.import.Preview chunks": "预览分段(最多 5 段)", + "core.dataset.import.Preview raw text": "预览源文本(最多 3000 字)", + "core.dataset.import.Process way": "处理方式", + "core.dataset.import.QA Estimated Price Tips": "需调用文件处理模型,需要消耗较多 AI 积分:{{price}} 积分/1K tokens", + "core.dataset.import.QA Import": "QA 拆分", + "core.dataset.import.QA Import Tip": "根据一定规则,将文本拆成一段较大的段落,调用 AI 为该段落生成问答对。有非常高的检索精度,但是会丢失很多内容细节。", + "core.dataset.import.Select file": "选择文件", + "core.dataset.import.Select source": "选择来源", + "core.dataset.import.Source name": "来源名", + "core.dataset.import.Sources list": "来源列表", + "core.dataset.import.Start upload": "开始上传", + "core.dataset.import.Total files": "共 {{total}} 个文件", + "core.dataset.import.Training mode": "训练模式", + "core.dataset.import.Upload data": "上传数据", + "core.dataset.import.Upload file progress": "文件上传进度", + "core.dataset.import.Upload status": "状态", + "core.dataset.import.Web link": "网页链接", + "core.dataset.import.Web link desc": "读取静态网页内容作为数据集", + "core.dataset.link": "链接", + "core.dataset.search.Dataset Search Params": "知识库搜索配置", + "core.dataset.search.Empty result response": "空搜索回复", + "core.dataset.search.Filter": "搜索过滤", + "core.dataset.search.Max Tokens": "引用上限", + "core.dataset.search.Max Tokens Tips": "单次搜索最大的 token 数量,中文约 1 字=1.7 tokens,英文约 1 字=1 token", + "core.dataset.search.Min Similarity": "最低相关度", + "core.dataset.search.Min Similarity Tips": "不同索引模型的相关度有区别,请通过搜索测试来选择合适的数值,使用 Rerank 时,相关度可能会很低。", + "core.dataset.search.No support similarity": "仅使用结果重排或语义检索时,支持相关度过滤", + "core.dataset.search.Nonsupport": "不支持", + "core.dataset.search.Params Setting": "搜索参数设置", + "core.dataset.search.Quote index": "第几个引用", + "core.dataset.search.ReRank": "结果重排", + "core.dataset.search.ReRank desc": "使用重排模型来进行二次排序,可增强综合排名。", + "core.dataset.search.Source id": "来源 ID", + "core.dataset.search.Source name": "引用来源名", + "core.dataset.search.Using query extension": "使用问题优化", + "core.dataset.search.mode.embedding": "语义检索", + "core.dataset.search.mode.embedding desc": "使用向量进行文本相关性查询", + "core.dataset.search.mode.fullTextRecall": "全文检索", + "core.dataset.search.mode.fullTextRecall desc": "使用传统的全文检索,适合查找一些关键词和主谓语特殊的数据", + "core.dataset.search.mode.mixedRecall": "混合检索", + "core.dataset.search.mode.mixedRecall desc": "使用向量检索与全文检索的综合结果返回,使用 RRF 算法进行排序。", + "core.dataset.search.score.embedding": "语义检索", + "core.dataset.search.score.embedding desc": "通过计算向量之间的距离获取得分,范围为 0~1。", + "core.dataset.search.score.fullText": "全文检索", + "core.dataset.search.score.fullText desc": "计算相同关键词的得分,范围为 0~无穷。", + "core.dataset.search.score.reRank": "结果重排", + "core.dataset.search.score.reRank desc": "通过 Rerank 模型计算句子之间的关联度,范围为 0~1。", + "core.dataset.search.score.rrf": "综合排名", + "core.dataset.search.score.rrf desc": "通过倒排计算的方式,合并多个检索结果。", + "core.dataset.search.search mode": "搜索模式", + "core.dataset.status.active": "已就绪", + "core.dataset.status.syncing": "同步中", + "core.dataset.test.Batch test": "批量测试", + "core.dataset.test.Batch test Placeholder": "选择一个 CSV 文件", + "core.dataset.test.Search Test": "搜索测试", + "core.dataset.test.Test": "测试", + "core.dataset.test.Test Result": "测试结果", + "core.dataset.test.Test Text": "单个文本测试", + "core.dataset.test.Test Text Placeholder": "输入需要测试的文本", + "core.dataset.test.Test params": "测试参数", + "core.dataset.test.delete test history": "删除该测试结果", + "core.dataset.test.test history": "测试历史", + "core.dataset.test.test result placeholder": "测试结果将在这里展示", + "core.dataset.test.test result tip": "根据知识库内容与测试文本的相似度进行排序,你可以根据测试结果调整对应的文本。\n注意:测试记录中的数据可能已经被修改过,点击某条测试数据后将展示最新的数据。", + "core.dataset.training.Agent queue": "QA 训练排队", + "core.dataset.training.Auto mode": "增强处理(实验)", + "core.dataset.training.Auto mode Tip": "通过子索引以及调用模型生成相关问题与摘要,来增加数据块的语义丰富度,更利于检索。需要消耗更多的存储空间和增加 AI 调用次数。", + "core.dataset.training.Chunk mode": "直接分段", + "core.dataset.training.Full": "预计 5 分钟以上", + "core.dataset.training.Leisure": "空闲", + "core.dataset.training.QA mode": "问答拆分", + "core.dataset.training.Vector queue": "索引排队", + "core.dataset.training.Waiting": "预计 5 分钟", + "core.dataset.training.Website Sync": "Web 站点同步", + "core.dataset.training.tag": "排队情况", + "core.dataset.website.Base Url": "根地址", + "core.dataset.website.Config": "Web 站点配置", + "core.dataset.website.Config Description": "Web 站点同步功能允许你填写一个网站的根地址,系统会自动深度抓取相关的网页进行知识库训练。仅会抓取静态的网站,以项目文档、博客为主。", + "core.dataset.website.Confirm Create Tips": "确认同步该站点,同步任务将随后开启,请确认!", + "core.dataset.website.Confirm Update Tips": "确认更新站点配置?会立即按新的配置开始同步,请确认!", + "core.dataset.website.Selector": "选择器", + "core.dataset.website.Selector Course": "使用教程", + "core.dataset.website.Start Sync": "开始同步", + "core.dataset.website.UnValid Website Tip": "您的站点可能非静态站点,无法同步", + "core.module.Add question type": "添加问题类型", + "core.module.Add_option": "添加选项", + "core.module.Can not connect self": "不能连接自身", + "core.module.Data Type": "数据类型", + "core.module.Dataset quote.label": "知识库引用", + "core.module.Dataset quote.select": "选择知识库引用", + "core.module.Default Value": "默认值", + "core.module.Default value": "默认值", + "core.module.Default value placeholder": "不填则默认返回空字符", + "core.module.Diagram": "示意图", + "core.module.Edit intro": "编辑描述", + "core.module.Field Description": "字段描述", + "core.module.Field Name": "字段名", + "core.module.Http request props": "请求参数", + "core.module.Http request settings": "请求配置", + "core.module.Http timeout": "超时时长", + "core.module.Input Type": "输入类型", + "core.module.Laf sync params": "同步参数", + "core.module.Max Length": "最大长度", + "core.module.Max Length placeholder": "输入文本的最大长度", + "core.module.Max Value": "最大值", + "core.module.Min Value": "最小值", + "core.module.QueryExtension.placeholder": "例如:\n关于 Python 的介绍和使用等问题。\n当前对话与游戏《GTA5》有关。", + "core.module.Select app": "选择应用", + "core.module.Setting quote prompt": "配置引用提示词", + "core.module.Variable": "全局变量", + "core.module.Variable Setting": "变量设置", + "core.module.edit.Field Name Cannot Be Empty": "字段名不能为空", + "core.module.extract.Add field": "新增字段", + "core.module.extract.Enum Description": "列举出该字段可能的值,每行一个", + "core.module.extract.Enum Value": "枚举值", + "core.module.extract.Field Description Placeholder": "姓名/年龄/SQL 语句……", + "core.module.extract.Field Setting Title": "提取字段配置", + "core.module.extract.Required": "必须返回", + "core.module.extract.Required Description": "即使无法提取该字段,也会使用默认值进行返回", + "core.module.extract.Target field": "目标字段", + "core.module.http.Add props": "添加参数", + "core.module.http.AppId": "应用 ID", + "core.module.http.ChatId": "当前对话 ID", + "core.module.http.Current time": "当前时间", + "core.module.http.Histories": "历史记录", + "core.module.http.Key already exists": "Key 已经存在", + "core.module.http.Key cannot be empty": "参数名不能为空", + "core.module.http.Props name": "参数名", + "core.module.http.Props tip": "可以设置 HTTP 请求的相关参数\n可通过输入 / 来调用变量,当前可使用变量:\n{{variable}}", + "core.module.http.Props value": "参数值", + "core.module.http.ResponseChatItemId": "AI 回复的 ID", + "core.module.http.Url and params have been split": "路径参数已被自动加入 Params 中", + "core.module.http.curl import": "cURL 导入", + "core.module.http.curl import placeholder": "请输入 cURL 格式内容,将会提取第一个接口的请求信息。", + "core.module.input.Add Branch": "添加分支", + "core.module.input.add": "添加条件", + "core.module.input.description.Background": "你可以添加一些特定内容的介绍,从而更好的识别用户的问题类型。这个内容通常是给模型介绍一个它不知道的内容。", + "core.module.input.description.HTTP Dynamic Input": "接收前方节点的输出值作为变量,这些变量可以被 HTTP 请求参数使用。", + "core.module.input.description.Http Request Header": "自定义请求头,请严格填入 JSON 字符串。\n1. 确保最后一个属性没有逗号\n2. 确保 key 包含双引号\n例如:{\"Authorization\":\"Bearer xxx\"}", + "core.module.input.description.Http Request Url": "新的 HTTP 请求地址。如果出现两个“请求地址”,可以删除该模块重新加入,会拉取最新的模块配置。", + "core.module.input.description.Response content": "可以使用 \\n 来实现连续换行。\n可以通过外部模块输入实现回复,外部模块输入时会覆盖当前填写的内容。\n如传入非字符串类型数据将会自动转成字符串", + "core.module.input.label.Background": "背景知识", + "core.module.input.label.Http Request Url": "请求地址", + "core.module.input.label.Response content": "回复的内容", + "core.module.input.label.Select dataset": "选择知识库", + "core.module.input.label.aiModel": "AI 模型", + "core.module.input.label.chat history": "聊天记录", + "core.module.input.label.user question": "用户问题", + "core.module.input.placeholder.Classify background": "例如:\n1. AIGC(人工智能生成内容)是指使用人工智能技术自动或半自动地生成数字内容,如文本、图像、音乐、视频等。\n2. AIGC 技术包括但不限于自然语言处理、计算机视觉、机器学习和深度学习。这些技术可以创建新内容或修改现有内容,以满足特定的创意、教育、娱乐或信息需求。", + "core.module.laf.Select laf function": "选择 laf 函数", + "core.module.output.description.Ai response content": "将在 stream 回复完毕后触发", + "core.module.output.description.New context": "将本次回复内容拼接上历史记录,作为新的上下文返回", + "core.module.output.description.query extension result": "以字符串数组的形式输出,可将该结果直接连接到“知识库搜索”的“用户问题”中,建议不要连接到“AI 对话”的“用户问题”中", + "core.module.output.label.Ai response content": "AI 回复内容", + "core.module.output.label.New context": "新的上下文", + "core.module.output.label.query extension result": "优化结果", + "core.module.template.AI function": "AI能力", + "core.module.template.AI response switch tip": "如果你希望当前节点不输出内容,可以关闭该开关。AI 输出的内容不会展示给用户,你可以手动的使用“AI 回复内容”进行特殊处理。", + "core.module.template.AI support tool tip": "支持函数调用的模型,可以更好的使用工具调用。", + "core.module.template.Basic Node": "基础功能", + "core.module.template.Query extension": "问题优化", + "core.module.template.System Plugin": "系统插件", + "core.module.template.System input module": "系统输入", + "core.module.template.Team app": "团队应用", + "core.module.template.Tool module": "工具", + "core.module.template.UnKnow Module": "未知模块", + "core.module.template.ai_chat": "AI 对话", + "core.module.template.ai_chat_intro": "AI 大模型对话", + "core.module.template.config_params": "可以配置应用的系统参数", + "core.module.template.empty_plugin": "空白插件", + "core.module.template.empty_workflow": "空白工作流", + "core.module.template.http body placeholder": "与 Apifox 相同的语法", + "core.module.template.self_output": "插件输出", + "core.module.template.system_config": "系统配置", + "core.module.template.system_config_info": "可以配置应用的系统参数", + "core.module.template.work_start": "流程开始", + "core.module.templates.Load plugin error": "加载插件失败", + "core.module.variable.Custom type": "自定义变量", + "core.module.variable.add option": "添加选项", + "core.module.variable.input type": "文本", + "core.module.variable.key": "变量 key", + "core.module.variable.key already exists": "Key 已经存在", + "core.module.variable.key is required": "变量 key 是必须的", + "core.module.variable.select type": "下拉单选", + "core.module.variable.text max length": "最大长度", + "core.module.variable.textarea type": "段落", + "core.module.variable.variable name": "变量名", + "core.module.variable.variable name is required": "变量名不能为空", + "core.module.variable.variable option is required": "选项不能全空", + "core.module.variable.variable option is value is required": "选项内容不能为空", + "core.module.variable.variable options": "选项", + "core.module.variable add option": "添加选项", + "core.plugin.Custom headers": "自定义请求头", + "core.plugin.Free": "该插件无需积分消耗~", + "core.plugin.Get Plugin Module Detail Failed": "加载插件异常", + "core.plugin.Http plugin intro placeholder": "仅做展示,无实际效果", + "core.plugin.cost": "积分消耗:", + "core.view_chat_detail": "查看对话详情", + "core.workflow.Can not delete node": "该节点不允许删除", + "core.workflow.Change input type tip": "修改输入类型会清空已填写的值,请确认!", + "core.workflow.Check Failed": "工作流校验失败,请检查节点是否正确填值,以及连线是否正常", + "core.workflow.Confirm stop debug": "确认终止调试?调试信息将会不保留。", + "core.workflow.Copy node": "已复制节点", + "core.workflow.Custom inputs": "自定义输入", + "core.workflow.Custom outputs": "自定义输出", + "core.workflow.Dataset quote": "知识库引用", + "core.workflow.Debug": "调试", + "core.workflow.Debug Node": "Debug 模式", + "core.workflow.Failed": "运行失败", + "core.workflow.Not intro": "这个节点没有介绍~", + "core.workflow.Run": "运行", + "core.workflow.Running": "运行中", + "core.workflow.Save and publish": "保存并发布", + "core.workflow.Save to cloud": "仅保存", + "core.workflow.Skipped": "跳过运行", + "core.workflow.Stop debug": "停止调试", + "core.workflow.Success": "运行成功", + "core.workflow.Value type": "数据类型", + "core.workflow.Variable.Variable type": "变量类型", + "core.workflow.debug.Done": "完成调试", + "core.workflow.debug.Hide result": "隐藏结果", + "core.workflow.debug.Not result": "无运行结果", + "core.workflow.debug.Run result": "运行结果", + "core.workflow.debug.Show result": "展示结果", + "core.workflow.dynamic_input": "动态输入", + "core.workflow.inputType.JSON Editor": "JSON 输入框", + "core.workflow.inputType.Manual input": "手动输入", + "core.workflow.inputType.Manual select": "手动选择", + "core.workflow.inputType.Reference": "变量引用", + "core.workflow.inputType.custom": "自定义变量", + "core.workflow.inputType.dynamicTargetInput": "动态外部数据", + "core.workflow.inputType.input": "单行输入框", + "core.workflow.inputType.number input": "数字输入框", + "core.workflow.inputType.select": "单选框", + "core.workflow.inputType.selectApp": "应用选择", + "core.workflow.inputType.selectDataset": "知识库选择", + "core.workflow.inputType.selectLLMModel": "对话模型选择", + "core.workflow.inputType.switch": "开关", + "core.workflow.inputType.textarea": "多行输入框", + "core.workflow.publish.OnRevert version": "点击回退到该版本", + "core.workflow.publish.OnRevert version confirm": "确认回退至该版本?会为您保存编辑中版本的配置,并为回退版本创建一个新的发布版本。", + "core.workflow.publish.histories": "发布记录", + "core.workflow.template.Interactive": "交互", + "core.workflow.template.Multimodal": "多模态", + "core.workflow.template.Search": "搜索", + "core.workflow.tool.Handle": "工具连接器", + "core.workflow.tool.Select Tool": "选择工具", + "core.workflow.value": "值", + "core.workflow.variable": "变量", "create": "去创建", "cron_job_run_app": "定时任务", - "dataset": { - "Confirm move the folder": "确认移动到该目录", - "Confirm to delete the data": "确认删除该数据?", - "Confirm to delete the file": "确认删除该文件及其所有数据?", - "Create Folder": "创建文件夹", - "Create manual collection": "创建手动数据集", - "Delete Dataset Error": "删除知识库异常", - "Edit Folder": "编辑文件夹", - "Edit Info": "编辑信息", - "Export": "导出", - "Export Dataset Limit Error": "导出数据失败", - "Folder Name": "输入文件夹名称", - "Insert Data": "插入", - "Manual collection Tip": "手动数据集允许创建一个空的容器装入数据", - "Move Failed": "移动出现错误~", - "Select Dataset": "选择该知识库", - "Select Dataset Tips": "仅能选择同一个索引模型的知识库", - "Select Folder": "进入文件夹", - "Training Name": "数据训练", - "collections": { - "Collection Embedding": "{{total}} 组索引中", - "Confirm to delete the folder": "确认删除该文件夹及里面所有内容?", - "Create And Import": "新建/导入", - "Data Amount": "数据总量", - "Select Collection": "选择文件", - "Select One Collection To Store": "选择一个文件进行存储" - }, - "data": { - "Can not edit": "无编辑权限", - "Custom Index Number": "自定义索引{{number}}", - "Default Index": "默认索引", - "Delete Tip": "确认删除该条数据?", - "Index Placeholder": "输入索引文本内容", - "Input Success Tip": "导入数据成功", - "Update Success Tip": "更新数据成功", - "edit": { - "Index": "数据索引({{amount}})", - "divide_content": "分块内容" - }, - "input is empty": "数据内容不能为空 " - }, - "dataset_name": "知识库名称", - "deleteFolderTips": "确认删除该文件夹及其包含的所有知识库?删除后数据无法恢复,请确认!", - "test": { - "noResult": "搜索结果为空" - } - }, - "error": { - "Create failed": "创建失败", - "fileNotFound": "文件找不到了~", - "inheritPermissionError": "权限继承错误", - "missingParams": "参数缺失", - "upload_file_error_filename": "{{name}} 上传失败", - "username_empty": "账号不能为空" - }, + "dataset.Confirm move the folder": "确认移动到该目录", + "dataset.Confirm to delete the data": "确认删除该数据?", + "dataset.Confirm to delete the file": "确认删除该文件及其所有数据?", + "dataset.Create Folder": "创建文件夹", + "dataset.Create manual collection": "创建手动数据集", + "dataset.Delete Dataset Error": "删除知识库异常", + "dataset.Edit Folder": "编辑文件夹", + "dataset.Edit Info": "编辑信息", + "dataset.Export": "导出", + "dataset.Export Dataset Limit Error": "导出数据失败", + "dataset.Folder Name": "输入文件夹名称", + "dataset.Insert Data": "插入", + "dataset.Manual collection Tip": "手动数据集允许创建一个空的容器装入数据", + "dataset.Move Failed": "移动出现错误~", + "dataset.Select Dataset": "选择该知识库", + "dataset.Select Dataset Tips": "仅能选择同一个索引模型的知识库", + "dataset.Select Folder": "进入文件夹", + "dataset.Training Name": "数据训练", + "dataset.collections.Collection Embedding": "{{total}} 组索引中", + "dataset.collections.Confirm to delete the folder": "确认删除该文件夹及里面所有内容?", + "dataset.collections.Create And Import": "新建/导入", + "dataset.collections.Data Amount": "数据总量", + "dataset.collections.Select Collection": "选择文件", + "dataset.collections.Select One Collection To Store": "选择一个文件进行存储", + "dataset.data.Can not edit": "无编辑权限", + "dataset.data.Custom Index Number": "自定义索引{{number}}", + "dataset.data.Default Index": "默认索引", + "dataset.data.Delete Tip": "确认删除该条数据?", + "dataset.data.Index Placeholder": "输入索引文本内容", + "dataset.data.Input Success Tip": "导入数据成功", + "dataset.data.Update Success Tip": "更新数据成功", + "dataset.data.edit.Index": "数据索引({{amount}})", + "dataset.data.edit.divide_content": "分块内容", + "dataset.data.input is empty": "数据内容不能为空 ", + "dataset.dataset_name": "知识库名称", + "dataset.deleteFolderTips": "确认删除该文件夹及其包含的所有知识库?删除后数据无法恢复,请确认!", + "dataset.test.noResult": "搜索结果为空", + "error.Create failed": "创建失败", + "error.fileNotFound": "文件找不到了~", + "error.inheritPermissionError": "权限继承错误", + "error.missingParams": "参数缺失", + "error.upload_file_error_filename": "{{name}} 上传失败", + "error.username_empty": "账号不能为空", "error.code_error": "验证码错误", "extraction_results": "提取结果", "field_name": "字段名", @@ -1063,424 +854,336 @@ "get_app_failed": "获取应用失败", "get_laf_failed": "获取Laf函数列表失败", "has_verification": "已验证,点击取消绑定", - "info": { - "buy_extra": "购买额外套餐", - "csv_download": "点击下载批量测试模板", - "csv_message": "读取 CSV 文件第一列进行批量测试,单次最多支持 100 组数据。", - "felid_message": "字段key必须是纯英文字母或数字,并且不能以数字开头。", - "free_plan": "免费版团队连续30天未登录系统时,系统会自动清理账号知识库。", - "include": "包含标准套餐与额外资源包", - "node_info": "调整该模块会对工具调用时机有影响。\n你可以通过精确的描述该模块功能,引导模型进行工具调用。", - "old_version_attention": "检测到您的高级编排为旧版,系统将为您自动格式化成新版工作流。\n\n由于版本差异较大,会导致一些工作流无法正常排布,请重新手动连接工作流。如仍异常,可尝试删除对应节点后重新添加。\n\n你可以直接点击调试进行工作流测试,调试完毕后点击发布。直到你点击发布,新工作流才会真正保存生效。\n\n在你发布新工作流前,自动保存不会生效。", - "open_api_notice": "可以填写 OpenAI/OneAPI的相关密钥。如果你填写了该内容,在线上平台使用【AI对话】、【问题分类】和【内容提取】将会走你填写的Key,不会计费。请注意你的Key 是否有访问对应模型的权限。GPT模型可以选择 FastAI。", - "open_api_placeholder": "请求地址,默认为 openai 官方。可填中转地址,未自动补全 \"v1\"", - "resource": "资源用量" - }, + "info.buy_extra": "购买额外套餐", + "info.csv_download": "点击下载批量测试模板", + "info.csv_message": "读取 CSV 文件第一列进行批量测试,单次最多支持 100 组数据。", + "info.felid_message": "字段key必须是纯英文字母或数字,并且不能以数字开头。", + "info.free_plan": "免费版团队连续30天未登录系统时,系统会自动清理账号知识库。", + "info.include": "包含标准套餐与额外资源包", + "info.node_info": "调整该模块会对工具调用时机有影响。\n你可以通过精确的描述该模块功能,引导模型进行工具调用。", + "info.old_version_attention": "检测到您的高级编排为旧版,系统将为您自动格式化成新版工作流。\n\n由于版本差异较大,会导致一些工作流无法正常排布,请重新手动连接工作流。如仍异常,可尝试删除对应节点后重新添加。\n\n你可以直接点击调试进行工作流测试,调试完毕后点击发布。直到你点击发布,新工作流才会真正保存生效。\n\n在你发布新工作流前,自动保存不会生效。", + "info.open_api_notice": "可以填写 OpenAI/OneAPI的相关密钥。如果你填写了该内容,在线上平台使用【AI对话】、【问题分类】和【内容提取】将会走你填写的Key,不会计费。请注意你的Key 是否有访问对应模型的权限。GPT模型可以选择 FastAI。", + "info.open_api_placeholder": "请求地址,默认为 openai 官方。可填中转地址,未自动补全 \"v1\"", + "info.resource": "资源用量", "invalid_variable": "无效变量", "is_open": "是否开启", "is_using": "正在使用", "item_description": "字段描述", "item_name": "字段名", "key_repetition": "key 重复", - "navbar": { - "Account": "账号", - "Chat": "聊天", - "Datasets": "知识库", - "Studio": "工作台", - "Tools": "工具" - }, + "navbar.Account": "账号", + "navbar.Chat": "聊天", + "navbar.Datasets": "知识库", + "navbar.Studio": "工作台", + "navbar.Tools": "工具", "new_create": "新建", "no": "否", "no_laf_env": "系统未配置Laf环境", "not_yet_introduced": "暂无介绍", "option": "选项", - "pay": { - "amount": "金额", - "package_tip": { - "buy": "您购买的套餐等级低于当前套餐,该套餐将在当前套餐过期后生效。\n您可在账号—个人信息—套餐详情里,查看套餐使用情况。", - "renewal": "您正在续费套餐。您可在账号—个人信息—套餐详情里,查看套餐使用情况。", - "upgrade": "您购买的套餐等级高于当前套餐,该套餐将即刻生效,当前套餐将延后生效。您可在账号—个人信息—套餐详情里,查看套餐使用情况。" - }, - "wechat": "请微信扫码支付: {{price}}元\n请勿关闭页面", - "yuan": "{{amount}}元" - }, - "permission": { - "Collaborator": "协作者", - "Default permission": "默认权限", - "Manage": "管理", - "No InheritPermission": "已限制权限,不再继承父级文件夹的权限,", - "Not collaborator": "暂无协作者", - "Owner": "创建者", - "Permission": "权限", - "Permission config": "权限配置", - "Private": "私有", - "Private Tip": "仅自己可用", - "Public": "团队", - "Public Tip": "团队所有成员可使用", - "Remove InheritPermission Confirm": "此操作会导致权限继承失效,是否进行?", - "Resume InheritPermission Confirm": "是否恢复为继承父级文件夹的权限?", - "Resume InheritPermission Failed": "恢复失败", - "Resume InheritPermission Success": "恢复成功", - "change_owner": "转移所有权", - "change_owner_failed": "转移所有权失败", - "change_owner_placeholder": "输入用户名查找账号", - "change_owner_success": "成功转移所有权", - "change_owner_tip": "转移后您的权限不会保留", - "change_owner_to": "转移给", - "manager": "管理员", - "read": "读权限", - "write": "写权限" - }, - "plugin": { - "App": "选择应用", - "Currentapp": "当前应用", - "Description": "描述", - "Edit Http Plugin": "编辑 HTTP 插件", - "Enter PAT": "请输入访问凭证(PAT)", - "Get Plugin Module Detail Failed": "获取插件信息异常", - "Import Plugin": "导入 HTTP 插件", - "Import from URL": "从 URL 导入。https://xxxx", - "Intro": "插件介绍", - "Invalid Env": "laf 环境错误", - "Invalid Schema": "Schema 无效", - "Invalid URL": "URL 无效", - "Method": "方法", - "Path": "路径", - "Please bind laf accout first": "请先绑定 laf 账号", - "Plugin List": "插件列表", - "Search plugin": "搜索插件", - "Search_app": "搜索应用", - "Set Name": "给插件取个名字", - "contribute": "贡献插件", - "go to laf": "去编写", - "path": "路径" - }, + "pay.amount": "金额", + "pay.package_tip.buy": "您购买的套餐等级低于当前套餐,该套餐将在当前套餐过期后生效。\n您可在账号—个人信息—套餐详情里,查看套餐使用情况。", + "pay.package_tip.renewal": "您正在续费套餐。您可在账号—个人信息—套餐详情里,查看套餐使用情况。", + "pay.package_tip.upgrade": "您购买的套餐等级高于当前套餐,该套餐将即刻生效,当前套餐将延后生效。您可在账号—个人信息—套餐详情里,查看套餐使用情况。", + "pay.wechat": "请微信扫码支付: {{price}}元\n请勿关闭页面", + "pay.yuan": "{{amount}}元", + "permission.Collaborator": "协作者", + "permission.Default permission": "默认权限", + "permission.Manage": "管理", + "permission.No InheritPermission": "已限制权限,不再继承父级文件夹的权限,", + "permission.Not collaborator": "暂无协作者", + "permission.Owner": "创建者", + "permission.Permission": "权限", + "permission.Permission config": "权限配置", + "permission.Private": "私有", + "permission.Private Tip": "仅自己可用", + "permission.Public": "团队", + "permission.Public Tip": "团队所有成员可使用", + "permission.Remove InheritPermission Confirm": "此操作会导致权限继承失效,是否进行?", + "permission.Resume InheritPermission Confirm": "是否恢复为继承父级文件夹的权限?", + "permission.Resume InheritPermission Failed": "恢复失败", + "permission.Resume InheritPermission Success": "恢复成功", + "permission.change_owner": "转移所有权", + "permission.change_owner_failed": "转移所有权失败", + "permission.change_owner_placeholder": "输入用户名查找账号", + "permission.change_owner_success": "成功转移所有权", + "permission.change_owner_tip": "转移后您的权限不会保留", + "permission.change_owner_to": "转移给", + "permission.manager": "管理员", + "permission.read": "读权限", + "permission.write": "写权限", + "plugin.App": "选择应用", + "plugin.Currentapp": "当前应用", + "plugin.Description": "描述", + "plugin.Edit Http Plugin": "编辑 HTTP 插件", + "plugin.Enter PAT": "请输入访问凭证(PAT)", + "plugin.Get Plugin Module Detail Failed": "获取插件信息异常", + "plugin.Import Plugin": "导入 HTTP 插件", + "plugin.Import from URL": "从 URL 导入。https://xxxx", + "plugin.Intro": "插件介绍", + "plugin.Invalid Env": "laf 环境错误", + "plugin.Invalid Schema": "Schema 无效", + "plugin.Invalid URL": "URL 无效", + "plugin.Method": "方法", + "plugin.Path": "路径", + "plugin.Please bind laf accout first": "请先绑定 laf 账号", + "plugin.Plugin List": "插件列表", + "plugin.Search plugin": "搜索插件", + "plugin.Search_app": "搜索应用", + "plugin.Set Name": "给插件取个名字", + "plugin.contribute": "贡献插件", + "plugin.go to laf": "去编写", + "plugin.path": "路径", "required": "必须", "resume_failed": "恢复失败", "select_reference_variable": "选择引用变量", "share_link": "分享链接", - "support": { - "account": { - "Individuation": "个性化" - }, - "inform": { - "Read": "已读" - }, - "openapi": { - "Api baseurl": "API 根地址", - "Api manager": "API 密钥管理", - "Copy success": "已复制 API 地址", - "New api key": "新的 API 密钥", - "New api key tip": "请保管好你的密钥,密钥不会再次展示~" - }, - "outlink": { - "Delete link tip": "确认删除该免登录链接?删除后,该链接将会立即失效,对话日志仍会保留,请确认!", - "Max usage points": "积分上限", - "Max usage points tip": "该链接最多允许使用多少积分,超出后将无法使用。-1 代表无限制。", - "Usage points": "积分消耗", - "share": { - "Response Quote": "返回引用", - "Response Quote tips": "在分享链接中返回引用内容,但不会允许用户下载原文档" - } - }, - "permission": { - "Permission": "权限" - }, - "standard": { - "AI Bonus Points": "AI 积分", - "due_date": "到期时间", - "storage": "存储量", - "type": "类型" - }, - "team": { - "limit": { - "No permission rerank": "无权使用结果重排,请升级您的套餐" - } - }, - "user": { - "Avatar": "头像", - "Go laf env": "点击前往 {{env}} 获取 PAT 凭证。", - "Laf account course": "查看绑定 laf 账号教程。", - "Laf account intro": "绑定你的 laf 账号后,你将可以在工作流中使用 laf 模块,实现在线编写代码。", - "Need to login": "请先登录", - "Price": "计费标准", - "User self info": "个人信息", - "auth": { - "Sending Code": "正在发送" - }, - "captcha_placeholder": "请输入验证码", - "inform": { - "System message": "系统消息" - }, - "login": { - "Email": "邮箱", - "Github": "GitHub 登录", - "Google": "Google 登录", - "Password": "密码", - "Password login": "密码登录", - "Phone": "手机号登录", - "Phone number": "手机号", - "Provider error": "登录异常,请重试", - "Username": "用户名", - "Wechat": "微信登录", - "can_not_login": "无法登录,点击联系", - "error": "登录异常", - "security_failed": "安全校验失败", - "wx_qr_login": "微信扫码登录" - }, - "logout": { - "confirm": "确认退出登录?" - }, - "team": { - "Dataset usage": "知识库容量", - "Team Tags Async Success": "同步完成", - "member": "成员" - } - }, - "wallet": { - "Ai point every thousand tokens": "{{points}} 积分/1K tokens", - "Amount": "金额", - "Buy": "购买", - "Not sufficient": "您的 AI 积分不足,请先升级套餐或购买额外 AI 积分后继续使用。", - "Plan expired time": "套餐到期时间", - "Standard Plan Detail": "套餐详情", - "To read plan": "查看套餐", - "amount_0": "购买数量不能为0", - "apply_invoice": "申请开票", - "bill": { - "Number": "订单号", - "Status": "状态", - "Type": "订单类型", - "payWay": { - "Way": "支付方式", - "balance": "余额支付", - "wx": "微信支付" - }, - "status": { - "closed": "已关闭", - "notpay": "未支付", - "refund": "已退款", - "success": "支付成功" - } - }, - "bill_detail": "账单详情", - "bill_tag": { - "bill": "账单记录", - "default_header": "默认抬头", - "invoice": "开票记录" - }, - "billable_invoice": "可开票账单", - "buy_resource": "购买资源包", - "has_invoice": "是否已开票", - "invoice_amount": "开票金额", - "invoice_data": { - "bank": "开户银行", - "bank_account": "开户账号", - "company_address": "公司地址", - "company_phone": "公司电话", - "email": "邮箱地址", - "need_special_invoice": "是否需要专票", - "organization_name": "组织名称", - "unit_code": "统一信用代码" - }, - "invoice_detail": "发票详情", - "invoice_info": "发票将在 3-7 个工作日内发送至邮箱,请耐心等待", - "invoicing": "开票", - "moduleName": { - "index": "索引生成", - "qa": "QA 拆分" - }, - "noBill": "无账单记录~", - "no_invoice": "暂无开票记录", - "subscription": { - "AI points": "AI 积分", - "AI points click to read tip": "每次调用 AI 模型时,都会消耗一定的 AI 积分(类似于 token)。点击可查看详细计算规则。", - "AI points usage": "AI 积分使用量", - "AI points usage tip": "每次调用 AI 模型时,都会消耗一定的 AI 积分。具体的计算标准可参考上方的“计费标准”", - "Ai points": "AI 积分计算标准", - "Current plan": "当前套餐", - "Extra ai points": "额外 AI 积分", - "Extra dataset size": "额外知识库容量", - "Extra plan": "额外资源包", - "Extra plan tip": "标准套餐不够时,您可以购买额外资源包继续使用", - "FAQ": "常见问题", - "Month amount": "月数", - "Next plan": "未来套餐", - "Stand plan level": "订阅套餐", - "Sub plan": "订阅套餐", - "Sub plan tip": "免费使用 {{title}} 或升级更高的套餐", - "Team plan and usage": "套餐与用量", - "Training weight": "训练优先级:{{weight}}", - "Update extra ai points": "额外 AI 积分", - "Update extra dataset size": "额外存储量", - "Upgrade plan": "升级套餐", - "ai_model": "AI语言模型", - "function": { - "History store": "{{amount}} 天对话记录保留", - "Max app": "{{amount}} 个应用&插件", - "Max dataset": "{{amount}} 个知识库", - "Max dataset size": "{{amount}} 组知识库索引", - "Max members": "{{amount}} 个团队成员", - "Points": "{{amount}} AI 积分" - }, - "mode": { - "Month": "按月", - "Period": "订阅周期", - "Year": "按年", - "Year sale": "赠送两个月" - }, - "point": "积分", - "rerank": "检索结果重排", - "standardSubLevel": { - "custom": "自定义版", - "enterprise": "企业版", - "enterprise_desc": "适合中小企业在生产环境构建知识库应用", - "experience": "体验版", - "experience_desc": "可解锁 FastGPT 完整功能", - "free": "免费版", - "free desc": "每月均可免费使用基础功能,连续 30 天未登录系统,将会自动清除知识库", - "team": "团队版", - "team_desc": "适合小团队构建知识库应用并提供对外服务" - }, - "status": { - "active": "生效中", - "expired": "已过期", - "inactive": "待使用" - }, - "token_compute": "点击查看在线 Tokens 计算器", - "type": { - "balance": "余额充值", - "extraDatasetSize": "知识库扩容", - "extraPoints": "AI 积分套餐", - "standard": "套餐订阅" - }, - "web_site_sync": "Web 站点同步" - }, - "usage": { - "Ai model": "AI 模型", - "App name": "应用名", - "Audio Speech": "语音播放", - "Bill Module": "扣费模块", - "Duration": "时长(秒)", - "Extension result": "问题优化结果", - "Module name": "模块名", - "Source": "来源", - "Text Length": "文本长度", - "Time": "生成时间", - "Token Length": "token 长度", - "Total": "总金额", - "Total points": "AI 积分消耗", - "Usage Detail": "使用详情", - "Whisper": "语音输入" - } - } - }, + "support.account.Individuation": "个性化", + "support.inform.Read": "已读", + "support.openapi.Api baseurl": "API 根地址", + "support.openapi.Api manager": "API 密钥管理", + "support.openapi.Copy success": "已复制 API 地址", + "support.openapi.New api key": "新的 API 密钥", + "support.openapi.New api key tip": "请保管好你的密钥,密钥不会再次展示~", + "support.outlink.Delete link tip": "确认删除该免登录链接?删除后,该链接将会立即失效,对话日志仍会保留,请确认!", + "support.outlink.Max usage points": "积分上限", + "support.outlink.Max usage points tip": "该链接最多允许使用多少积分,超出后将无法使用。-1 代表无限制。", + "support.outlink.Usage points": "积分消耗", + "support.outlink.share.Response Quote": "返回引用", + "support.outlink.share.Response Quote tips": "在分享链接中返回引用内容,但不会允许用户下载原文档", + "support.permission.Permission": "权限", + "support.standard.AI Bonus Points": "AI 积分", + "support.standard.due_date": "到期时间", + "support.standard.storage": "存储量", + "support.standard.type": "类型", + "support.team.limit.No permission rerank": "无权使用结果重排,请升级您的套餐", + "support.user.Avatar": "头像", + "support.user.Go laf env": "点击前往 {{env}} 获取 PAT 凭证。", + "support.user.Laf account course": "查看绑定 laf 账号教程。", + "support.user.Laf account intro": "绑定你的 laf 账号后,你将可以在工作流中使用 laf 模块,实现在线编写代码。", + "support.user.Need to login": "请先登录", + "support.user.Price": "计费标准", + "support.user.User self info": "个人信息", + "support.user.auth.Sending Code": "正在发送", + "support.user.captcha_placeholder": "请输入验证码", + "support.user.inform.System message": "系统消息", + "support.user.login.Email": "邮箱", + "support.user.login.Github": "GitHub 登录", + "support.user.login.Google": "Google 登录", + "support.user.login.Password": "密码", + "support.user.login.Password login": "密码登录", + "support.user.login.Phone": "手机号登录", + "support.user.login.Phone number": "手机号", + "support.user.login.Provider error": "登录异常,请重试", + "support.user.login.Username": "用户名", + "support.user.login.Wechat": "微信登录", + "support.user.login.can_not_login": "无法登录,点击联系", + "support.user.login.error": "登录异常", + "support.user.login.security_failed": "安全校验失败", + "support.user.login.wx_qr_login": "微信扫码登录", + "support.user.logout.confirm": "确认退出登录?", + "support.user.team.Dataset usage": "知识库容量", + "support.user.team.Team Tags Async Success": "同步完成", + "support.user.team.member": "成员", + "support.wallet.Ai point every thousand tokens": "{{points}} 积分/1K tokens", + "support.wallet.Amount": "金额", + "support.wallet.Buy": "购买", + "support.wallet.Not sufficient": "您的 AI 积分不足,请先升级套餐或购买额外 AI 积分后继续使用。", + "support.wallet.Plan expired time": "套餐到期时间", + "support.wallet.Standard Plan Detail": "套餐详情", + "support.wallet.To read plan": "查看套餐", + "support.wallet.amount_0": "购买数量不能为0", + "support.wallet.apply_invoice": "申请开票", + "support.wallet.bill.Number": "订单号", + "support.wallet.bill.Status": "状态", + "support.wallet.bill.Type": "订单类型", + "support.wallet.bill.payWay.Way": "支付方式", + "support.wallet.bill.payWay.balance": "余额支付", + "support.wallet.bill.payWay.wx": "微信支付", + "support.wallet.bill.status.closed": "已关闭", + "support.wallet.bill.status.notpay": "未支付", + "support.wallet.bill.status.refund": "已退款", + "support.wallet.bill.status.success": "支付成功", + "support.wallet.bill_detail": "账单详情", + "support.wallet.bill_tag.bill": "账单记录", + "support.wallet.bill_tag.default_header": "默认抬头", + "support.wallet.bill_tag.invoice": "开票记录", + "support.wallet.billable_invoice": "可开票账单", + "support.wallet.buy_resource": "购买资源包", + "support.wallet.has_invoice": "是否已开票", + "support.wallet.invoice_amount": "开票金额", + "support.wallet.invoice_data.bank": "开户银行", + "support.wallet.invoice_data.bank_account": "开户账号", + "support.wallet.invoice_data.company_address": "公司地址", + "support.wallet.invoice_data.company_phone": "公司电话", + "support.wallet.invoice_data.email": "邮箱地址", + "support.wallet.invoice_data.need_special_invoice": "是否需要专票", + "support.wallet.invoice_data.organization_name": "组织名称", + "support.wallet.invoice_data.unit_code": "统一信用代码", + "support.wallet.invoice_detail": "发票详情", + "support.wallet.invoice_info": "发票将在 3-7 个工作日内发送至邮箱,请耐心等待", + "support.wallet.invoicing": "开票", + "support.wallet.moduleName.index": "索引生成", + "support.wallet.moduleName.qa": "QA 拆分", + "support.wallet.noBill": "无账单记录~", + "support.wallet.no_invoice": "暂无开票记录", + "support.wallet.subscription.AI points": "AI 积分", + "support.wallet.subscription.AI points click to read tip": "每次调用 AI 模型时,都会消耗一定的 AI 积分(类似于 token)。点击可查看详细计算规则。", + "support.wallet.subscription.AI points usage": "AI 积分使用量", + "support.wallet.subscription.AI points usage tip": "每次调用 AI 模型时,都会消耗一定的 AI 积分。具体的计算标准可参考上方的“计费标准”", + "support.wallet.subscription.Ai points": "AI 积分计算标准", + "support.wallet.subscription.Current plan": "当前套餐", + "support.wallet.subscription.Extra ai points": "额外 AI 积分", + "support.wallet.subscription.Extra dataset size": "额外知识库容量", + "support.wallet.subscription.Extra plan": "额外资源包", + "support.wallet.subscription.Extra plan tip": "标准套餐不够时,您可以购买额外资源包继续使用", + "support.wallet.subscription.FAQ": "常见问题", + "support.wallet.subscription.Month amount": "月数", + "support.wallet.subscription.Next plan": "未来套餐", + "support.wallet.subscription.Stand plan level": "订阅套餐", + "support.wallet.subscription.Sub plan": "订阅套餐", + "support.wallet.subscription.Sub plan tip": "免费使用 {{title}} 或升级更高的套餐", + "support.wallet.subscription.Team plan and usage": "套餐与用量", + "support.wallet.subscription.Training weight": "训练优先级:{{weight}}", + "support.wallet.subscription.Update extra ai points": "额外 AI 积分", + "support.wallet.subscription.Update extra dataset size": "额外存储量", + "support.wallet.subscription.Upgrade plan": "升级套餐", + "support.wallet.subscription.ai_model": "AI语言模型", + "support.wallet.subscription.function.History store": "{{amount}} 天对话记录保留", + "support.wallet.subscription.function.Max app": "{{amount}} 个应用&插件", + "support.wallet.subscription.function.Max dataset": "{{amount}} 个知识库", + "support.wallet.subscription.function.Max dataset size": "{{amount}} 组知识库索引", + "support.wallet.subscription.function.Max members": "{{amount}} 个团队成员", + "support.wallet.subscription.function.Points": "{{amount}} AI 积分", + "support.wallet.subscription.mode.Month": "按月", + "support.wallet.subscription.mode.Period": "订阅周期", + "support.wallet.subscription.mode.Year": "按年", + "support.wallet.subscription.mode.Year sale": "赠送两个月", + "support.wallet.subscription.point": "积分", + "support.wallet.subscription.rerank": "检索结果重排", + "support.wallet.subscription.standardSubLevel.custom": "自定义版", + "support.wallet.subscription.standardSubLevel.enterprise": "企业版", + "support.wallet.subscription.standardSubLevel.enterprise_desc": "适合中小企业在生产环境构建知识库应用", + "support.wallet.subscription.standardSubLevel.experience": "体验版", + "support.wallet.subscription.standardSubLevel.experience_desc": "可解锁 FastGPT 完整功能", + "support.wallet.subscription.standardSubLevel.free": "免费版", + "support.wallet.subscription.standardSubLevel.free desc": "每月均可免费使用基础功能,连续 30 天未登录系统,将会自动清除知识库", + "support.wallet.subscription.standardSubLevel.team": "团队版", + "support.wallet.subscription.standardSubLevel.team_desc": "适合小团队构建知识库应用并提供对外服务", + "support.wallet.subscription.status.active": "生效中", + "support.wallet.subscription.status.expired": "已过期", + "support.wallet.subscription.status.inactive": "待使用", + "support.wallet.subscription.token_compute": "点击查看在线 Tokens 计算器", + "support.wallet.subscription.type.balance": "余额充值", + "support.wallet.subscription.type.extraDatasetSize": "知识库扩容", + "support.wallet.subscription.type.extraPoints": "AI 积分套餐", + "support.wallet.subscription.type.standard": "套餐订阅", + "support.wallet.subscription.web_site_sync": "Web 站点同步", + "support.wallet.usage.Ai model": "AI 模型", + "support.wallet.usage.App name": "应用名", + "support.wallet.usage.Audio Speech": "语音播放", + "support.wallet.usage.Bill Module": "扣费模块", + "support.wallet.usage.Duration": "时长(秒)", + "support.wallet.usage.Extension result": "问题优化结果", + "support.wallet.usage.Module name": "模块名", + "support.wallet.usage.Source": "来源", + "support.wallet.usage.Text Length": "文本长度", + "support.wallet.usage.Time": "生成时间", + "support.wallet.usage.Token Length": "token 长度", + "support.wallet.usage.Total": "总金额", + "support.wallet.usage.Total points": "AI 积分消耗", + "support.wallet.usage.Usage Detail": "使用详情", + "support.wallet.usage.Whisper": "语音输入", "sync_link": "同步链接", - "system": { - "Concat us": "联系我们", - "Help Document": "帮助文档" - }, + "system.Concat us": "联系我们", + "system.Help Document": "帮助文档", "tag_list": "标签列表", "team_tag": "团队标签", "textarea_variable_picker_tip": "输入\"/\"可选择变量", "tool_field": "工具字段参数配置", "undefined_var": "引用了未定义的变量,是否自动添加?", - "unit": { - "character": "字符", - "minute": "分钟" - }, + "unit.character": "字符", + "unit.minute": "分钟", "unusable_variable": "无可用变量", "upload_file_error": "上传文件失败", - "user": { - "Account": "账号", - "Amount of earnings": "收益(¥)", - "Amount of inviter": "累计邀请人数", - "Application Name": "项目名", - "Avatar": "头像", - "Change": "变更", - "Copy invite url": "复制邀请链接", - "Edit name": "点击修改昵称", - "Invite Url": "邀请链接", - "Invite url tip": "通过该链接注册的好友将永久与你绑定,其充值时你会获得一定余额奖励。\n此外,好友使用手机号注册时,你将立即获得 5 元奖励。\n奖励会发送到您的默认团队中。", - "Laf Account Setting": "laf 账号配置", - "Language": "语言", - "Member Name": "昵称", - "Notification Receive": "通知接收", - "Notification Receive Bind": "请先绑定通知接收途径", - "Old password is error": "旧密码错误", - "OpenAI Account Setting": "OpenAI 账号配置", - "Password": "密码", - "Pay": "充值", - "Promotion": "促销", - "Promotion Rate": "返现比例", - "Promotion rate tip": "好友充值时你将获得一定比例的余额奖励", - "Replace": "更换", - "Set OpenAI Account Failed": "设置 OpenAI 账号异常", - "Team": "团队", - "Time": "时间", - "Timezone": "时区", - "Update Password": "修改密码", - "Update password failed": "修改密码异常", - "Update password successful": "修改密码成功", - "apikey": { - "key": "API 密钥" - }, - "confirm_password": "确认密码", - "new_password": "新密码", - "no_invite_records": "暂无邀请记录", - "no_notice": "暂无通知", - "no_usage_records": "暂无使用记录", - "old_password": "旧密码", - "password_message": "密码最少 4 位最多 60 位", - "team": { - "Balance": "团队余额", - "Check Team": "切换", - "Confirm Invite": "确认邀请", - "Create Team": "创建新团队", - "Invite Member": "邀请成员", - "Invite Member Failed Tip": "邀请成员出现异常", - "Invite Member Result Tip": "邀请结果提示", - "Invite Member Success Tip": "邀请成员完成\n成功:{{success}} 人\n用户名无效:{{inValid}}\n已在团队中:{{inTeam}}", - "Invite Member Tips": "对方可查阅或使用团队内的其他资源", - "Leave Team": "离开团队", - "Leave Team Failed": "离开团队异常", - "Member": "成员", - "Member Name": "成员名", - "Over Max Member Tip": "团队最多 {{max}} 人", - "Personal Team": "个人团队", - "Processing invitations": "处理邀请", - "Processing invitations Tips": "你有 {{amount}} 个需要处理的团队邀请", - "Remove Member Confirm Tip": "确认将 {{username}} 移出团队?", - "Select Team": "团队选择", - "Set Name": "给团队取个名字", - "Switch Team Failed": "切换团队异常", - "Tags Async": "保存", - "Team Name": "团队名", - "Team Tags Async": "标签同步", - "Team Tags Async Success": "链接报错成功,标签信息更新", - "Update Team": "更新团队信息", - "invite": { - "Accept Confirm": "确认加入该团队?", - "Accepted": "已加入团队", - "Deal Width Footer Tip": "处理完会自动关闭噢~", - "Reject": "已拒绝邀请", - "Reject Confirm": "确认拒绝该邀请?", - "accept": "接受", - "reject": "拒绝" - }, - "member": { - "Confirm Leave": "确认离开该团队?", - "active": "已加入", - "reject": "拒绝", - "waiting": "待接受" - }, - "role": { - "Admin": "管理员", - "Owner": "创建者" - } - }, - "type": "类型" - }, + "user.Account": "账号", + "user.Amount of earnings": "收益(¥)", + "user.Amount of inviter": "累计邀请人数", + "user.Application Name": "项目名", + "user.Avatar": "头像", + "user.Change": "变更", + "user.Copy invite url": "复制邀请链接", + "user.Edit name": "点击修改昵称", + "user.Invite Url": "邀请链接", + "user.Invite url tip": "通过该链接注册的好友将永久与你绑定,其充值时你会获得一定余额奖励。\n此外,好友使用手机号注册时,你将立即获得 5 元奖励。\n奖励会发送到您的默认团队中。", + "user.Laf Account Setting": "laf 账号配置", + "user.Language": "语言", + "user.Member Name": "昵称", + "user.Notification Receive": "通知接收", + "user.Notification Receive Bind": "请先绑定通知接收途径", + "user.Old password is error": "旧密码错误", + "user.OpenAI Account Setting": "OpenAI 账号配置", + "user.Password": "密码", + "user.Pay": "充值", + "user.Promotion": "促销", + "user.Promotion Rate": "返现比例", + "user.Promotion rate tip": "好友充值时你将获得一定比例的余额奖励", + "user.Replace": "更换", + "user.Set OpenAI Account Failed": "设置 OpenAI 账号异常", + "user.Team": "团队", + "user.Time": "时间", + "user.Timezone": "时区", + "user.Update Password": "修改密码", + "user.Update password failed": "修改密码异常", + "user.Update password successful": "修改密码成功", + "user.apikey.key": "API 密钥", + "user.confirm_password": "确认密码", + "user.new_password": "新密码", + "user.no_invite_records": "暂无邀请记录", + "user.no_notice": "暂无通知", + "user.no_usage_records": "暂无使用记录", + "user.old_password": "旧密码", + "user.password_message": "密码最少 4 位最多 60 位", + "user.team.Balance": "团队余额", + "user.team.Check Team": "切换", + "user.team.Confirm Invite": "确认邀请", + "user.team.Create Team": "创建新团队", + "user.team.Invite Member": "邀请成员", + "user.team.Invite Member Failed Tip": "邀请成员出现异常", + "user.team.Invite Member Result Tip": "邀请结果提示", + "user.team.Invite Member Success Tip": "邀请成员完成\n成功:{{success}} 人\n用户名无效:{{inValid}}\n已在团队中:{{inTeam}}", + "user.team.Invite Member Tips": "对方可查阅或使用团队内的其他资源", + "user.team.Leave Team": "离开团队", + "user.team.Leave Team Failed": "离开团队异常", + "user.team.Member": "成员", + "user.team.Member Name": "成员名", + "user.team.Over Max Member Tip": "团队最多 {{max}} 人", + "user.team.Personal Team": "个人团队", + "user.team.Processing invitations": "处理邀请", + "user.team.Processing invitations Tips": "你有 {{amount}} 个需要处理的团队邀请", + "user.team.Remove Member Confirm Tip": "确认将 {{username}} 移出团队?", + "user.team.Select Team": "团队选择", + "user.team.Set Name": "给团队取个名字", + "user.team.Switch Team Failed": "切换团队异常", + "user.team.Tags Async": "保存", + "user.team.Team Name": "团队名", + "user.team.Team Tags Async": "标签同步", + "user.team.Team Tags Async Success": "链接报错成功,标签信息更新", + "user.team.Update Team": "更新团队信息", + "user.team.invite.Accept Confirm": "确认加入该团队?", + "user.team.invite.Accepted": "已加入团队", + "user.team.invite.Deal Width Footer Tip": "处理完会自动关闭噢~", + "user.team.invite.Reject": "已拒绝邀请", + "user.team.invite.Reject Confirm": "确认拒绝该邀请?", + "user.team.invite.accept": "接受", + "user.team.invite.reject": "拒绝", + "user.team.member.Confirm Leave": "确认离开该团队?", + "user.team.member.active": "已加入", + "user.team.member.reject": "拒绝", + "user.team.member.waiting": "待接受", + "user.team.role.Admin": "管理员", + "user.team.role.Owner": "创建者", + "user.type": "类型", "verification": "验证", "xx_search_result": "{{key}} 的搜索结果", "yes": "是" diff --git a/packages/web/i18n/zh/dataset.json b/packages/web/i18n/zh/dataset.json index 253d36e34..29582f8ec 100644 --- a/packages/web/i18n/zh/dataset.json +++ b/packages/web/i18n/zh/dataset.json @@ -1,17 +1,13 @@ { "Enable": "启用", - "collection": { - "Create update time": "创建/更新时间", - "Training type": "训练模式" - }, + "collection.Create update time": "创建/更新时间", + "collection.Training type": "训练模式", "collection_tags": "集合标签", "common_dataset": "通用知识库", "common_dataset_desc": "可通过导入文件、网页链接或手动录入形式构建知识库", "confirm_to_rebuild_embedding_tip": "确认为知识库切换索引?\n切换索引是一个非常重量的操作,需要对您知识库内所有数据进行重新索引,时间可能较长,请确保账号内剩余积分充足。\n\n此外,你还需要注意修改选择该知识库的应用,避免它们与其他索引模型知识库混用。", - "dataset": { - "no_collections": "暂无数据集", - "no_tags": "暂无标签" - }, + "dataset.no_collections": "暂无数据集", + "dataset.no_tags": "暂无标签", "external_file": "外部文件库", "external_file_dataset_desc": "可以从外部文件库导入文件构建知识库,文件不会进行二次存储", "external_id": "文件阅读 ID", @@ -23,26 +19,20 @@ "folder_dataset": "文件夹", "rebuild_embedding_start_tip": "切换索引模型任务已开始", "rebuilding_index_count": "重建中索引数量:{{count}}", - "tag": { - "Add New": "新建", - "Add_new_tag": "新建标签", - "Edit_tag": "编辑标签", - "add": "创建", - "cancel": "取消选择", - "delete_tag_confirm": "确定删除标签?", - "manage": "标签管理", - "searchOrAddTag": "搜索或添加标签", - "tags": "标签", - "total_tags": "共{{total}}个标签" - }, + "tag.Add New": "新建", + "tag.Add_new_tag": "新建标签", + "tag.Edit_tag": "编辑标签", + "tag.add": "创建", + "tag.cancel": "取消选择", + "tag.delete_tag_confirm": "确定删除标签?", + "tag.manage": "标签管理", + "tag.searchOrAddTag": "搜索或添加标签", + "tag.tags": "标签", + "tag.total_tags": "共{{total}}个标签", "the_knowledge_base_has_indexes_that_are_being_trained_or_being_rebuilt": "知识库有训练中或正在重建的索引", "website_dataset": "Web 站点同步", "website_dataset_desc": "Web 站点同步允许你直接使用一个网页链接构建知识库", - "permission": { - "des": { - "read": "可查看知识库内容", - "write": "可增加和变更知识库内容", - "manage": "可管理整个知识库数据和信息" - } - } + "permission.des.read": "可查看知识库内容", + "permission.des.write": "可增加和变更知识库内容", + "permission.des.manage": "可管理整个知识库数据和信息" } \ No newline at end of file diff --git a/packages/web/i18n/zh/publish.json b/packages/web/i18n/zh/publish.json index be0a52555..e36bf6a37 100644 --- a/packages/web/i18n/zh/publish.json +++ b/packages/web/i18n/zh/publish.json @@ -14,13 +14,11 @@ "key_tips": "你可以使用 API 密钥访问一些特定的接口(无法访问应用,访问应用需使用应用内的 API key)", "link_name": "分享链接的名字", "new_feishu_bot": "新增飞书机器人", - "official_account": { - "create_modal_title": "创建微信公众号接入", - "desc": "通过 API 直接接入微信公众号", - "edit_modal_title": "编辑微信公众号接入", - "name": "微信公众号接入", - "params": "微信公众号参数" - }, + "official_account.create_modal_title": "创建微信公众号接入", + "official_account.desc": "通过 API 直接接入微信公众号", + "official_account.edit_modal_title": "编辑微信公众号接入", + "official_account.name": "微信公众号接入", + "official_account.params": "微信公众号参数", "publish_name": "名称", "qpm_is_empty": "QPM 不能为空", "qpm_tips": "每个 IP 每分钟最多提问多少次", @@ -29,12 +27,10 @@ "token_auth": "身份验证", "token_auth_tips": "身份校验服务器地址,如填写该值,每次对话前都会向指定服务器发送一个请求,进行身份校验", "token_auth_use_cases": "查看身份验证使用说明", - "wecom": { - "api": "企微 API", - "bot": "企业微信机器人", - "bot_desc": "通过 API 直接接入企业微信机器人", - "create_modal_title": "创建企微机器人", - "edit_modal_title": "编辑企微机器人", - "title": "发布到企业微信机器人" - } + "wecom.api": "企微 API", + "wecom.bot": "企业微信机器人", + "wecom.bot_desc": "通过 API 直接接入企业微信机器人", + "wecom.create_modal_title": "创建企微机器人", + "wecom.edit_modal_title": "编辑企微机器人", + "wecom.title": "发布到企业微信机器人" } \ No newline at end of file diff --git a/packages/web/i18n/zh/user.json b/packages/web/i18n/zh/user.json index ff3b50e07..3e11a2e05 100644 --- a/packages/web/i18n/zh/user.json +++ b/packages/web/i18n/zh/user.json @@ -1,108 +1,86 @@ { - "bill": { - "balance": "余额", - "buy_plan": "购买套餐", - "contact_customer_service": "联系客服", - "conversion": "兑换", - "convert_error": "兑换失败", - "convert_success": "兑换成功", - "current_token_price": "当前积分价格", - "not_need_invoice": "余额支付,无法开票", - "price": "价格", - "renew_plan": "续费套餐", - "standard_valid_tip": "套餐使用规则:系统优先使用更高级的套餐,原未用完的套餐将延后生效", - "token_expire_1year": "积分有效期一年", - "tokens": "积分", - "use_balance": "使用余额", - "use_balance_hint": "由于系统升级,原“自动续费从余额扣款”模式取消,余额充值入口关闭。您的余额可用于购买积分", - "valid_time": "生效时间", - "you_can_convert": "您可兑换", - "yuan": "元" - }, + "bill.balance": "余额", + "bill.buy_plan": "购买套餐", + "bill.contact_customer_service": "联系客服", + "bill.conversion": "兑换", + "bill.convert_error": "兑换失败", + "bill.convert_success": "兑换成功", + "bill.current_token_price": "当前积分价格", + "bill.not_need_invoice": "余额支付,无法开票", + "bill.price": "价格", + "bill.renew_plan": "续费套餐", + "bill.standard_valid_tip": "套餐使用规则:系统优先使用更高级的套餐,原未用完的套餐将延后生效", + "bill.token_expire_1year": "积分有效期一年", + "bill.tokens": "积分", + "bill.use_balance": "使用余额", + "bill.use_balance_hint": "由于系统升级,原“自动续费从余额扣款”模式取消,余额充值入口关闭。您的余额可用于购买积分", + "bill.valid_time": "生效时间", + "bill.you_can_convert": "您可兑换", + "bill.yuan": "元", "bill_and_invoices": "账单 & 发票", "bind_inform_account_error": "绑定通知账号异常", "bind_inform_account_success": "绑定通知账号成功", - "delete": { - "admin_failed": "删除管理员失败", - "admin_success": "删除管理员成功" - }, + "delete.admin_failed": "删除管理员失败", + "delete.admin_success": "删除管理员成功", "has_chosen": "已选择", "individuation": "个性化", - "login": { - "error": "登录异常", - "password_condition": "密码最多 60 位", - "success": "登录成功" - }, + "login.error": "登录异常", + "login.password_condition": "密码最多 60 位", + "login.success": "登录成功", "name": "名称", "notice": "通知", - "notification": { - "Bind Notification Pipe Hint": "请绑定通知接收账号,以确保您能正常接收套餐过期提醒等通知,保障您的服务正常运行。", - "remind_owner_bind": "请提醒创建者绑定通知账号" - }, + "notification.Bind Notification Pipe Hint": "请绑定通知接收账号,以确保您能正常接收套餐过期提醒等通知,保障您的服务正常运行。", + "notification.remind_owner_bind": "请提醒创建者绑定通知账号", "operations": "操作", - "password": { - "code_required": "验证码不能为空", - "code_send_error": "验证码发送异常", - "code_sended": "验证码已发送", - "confirm": "确认密码", - "email_phone_error": "邮箱/手机号格式错误", - "email_phone_void": "邮箱/手机号不能为空", - "get_code": "获取验证码", - "get_code_again": "s后重新获取", - "new_password": "新密码(4~20位)", - "not_match": "两次密码不一致", - "password_condition": "密码最少 4 位最多 20 位", - "password_required": "密码不能为空", - "retrieve": "找回密码", - "retrieved": "密码已找回", - "retrieved_account": "找回 {{account}} 账号", - "to_login": "去登录", - "verification_code": "验证码" - }, - "permission": { - "Manage": "管理员", - "Manage tip": "团队管理员,拥有全部权限", - "Read": "仅读", - "Read desc": "成员仅可阅读相关资源,无法新建资源", - "Write": "可写", - "Write tip": "除了可读资源外,还可以新建新的资源", - "only_collaborators": "仅协作者访问", - "team_read": "团队可访问", - "team_write": "团队可编辑" - }, - "permission_des": { - "manage": "可创建资源、邀请、删除成员", - "read": "成员仅可阅读相关资源,无法新建资源", - "write": "除了可读资源外,还可以新建新的资源" - }, + "password.code_required": "验证码不能为空", + "password.code_send_error": "验证码发送异常", + "password.code_sended": "验证码已发送", + "password.confirm": "确认密码", + "password.email_phone_error": "邮箱/手机号格式错误", + "password.email_phone_void": "邮箱/手机号不能为空", + "password.get_code": "获取验证码", + "password.get_code_again": "s后重新获取", + "password.new_password": "新密码(4~20位)", + "password.not_match": "两次密码不一致", + "password.password_condition": "密码最少 4 位最多 20 位", + "password.password_required": "密码不能为空", + "password.retrieve": "找回密码", + "password.retrieved": "密码已找回", + "password.retrieved_account": "找回 {{account}} 账号", + "password.to_login": "去登录", + "password.verification_code": "验证码", + "permission.Manage": "管理员", + "permission.Manage tip": "团队管理员,拥有全部权限", + "permission.Read": "仅读", + "permission.Read desc": "成员仅可阅读相关资源,无法新建资源", + "permission.Write": "可写", + "permission.Write tip": "除了可读资源外,还可以新建新的资源", + "permission.only_collaborators": "仅协作者访问", + "permission.team_read": "团队可访问", + "permission.team_write": "团队可编辑", + "permission_des.manage": "可创建资源、邀请、删除成员", + "permission_des.read": "成员仅可阅读相关资源,无法新建资源", + "permission_des.write": "除了可读资源外,还可以新建新的资源", "permissions": "权限", "personal_information": "个人信息", "personalization": "个性化", "promotion_records": "推广记录", - "register": { - "confirm": "确认注册", - "register_account": "注册 {{account}} 账号", - "success": "注册成功", - "to_login": "已有账号,去登录" - }, + "register.confirm": "确认注册", + "register.register_account": "注册 {{account}} 账号", + "register.success": "注册成功", + "register.to_login": "已有账号,去登录", "search_user": "搜索用户名", "sign_out": "登出", - "synchronization": { - "button": "立即同步", - "placeholder": "请输入同步标签", - "title": "填写标签同步链接,点击同步按钮即可同步" - }, - "team": { - "Add manager": "添加管理员", - "add_collaborator": "添加协作者", - "manage_collaborators": "管理协作者", - "no_collaborators": "暂无协作者" - }, - "usage": { - "feishu": "飞书", - "official_account": "公众号", - "share": "分享链接", - "wecom": "企业微信" - }, + "synchronization.button": "立即同步", + "synchronization.placeholder": "请输入同步标签", + "synchronization.title": "填写标签同步链接,点击同步按钮即可同步", + "team.Add manager": "添加管理员", + "team.add_collaborator": "添加协作者", + "team.manage_collaborators": "管理协作者", + "team.no_collaborators": "暂无协作者", + "usage.feishu": "飞书", + "usage.official_account": "公众号", + "usage.share": "分享链接", + "usage.wecom": "企业微信", "usage_record": "使用记录" } \ No newline at end of file diff --git a/packages/web/i18n/zh/workflow.json b/packages/web/i18n/zh/workflow.json index e66352981..c3bb77fbd 100644 --- a/packages/web/i18n/zh/workflow.json +++ b/packages/web/i18n/zh/workflow.json @@ -9,10 +9,8 @@ "can_not_loop": "该节点不支持循环嵌套", "choose_another_application_to_call": "选择一个其他应用进行调用", "classification_result": "分类结果", - "code": { - "Reset template": "还原模板", - "Reset template confirm": "确认还原代码模板?将会重置所有输入和输出至模板值,请注意保存当前代码。" - }, + "code.Reset template": "还原模板", + "code.Reset template confirm": "确认还原代码模板?将会重置所有输入和输出至模板值,请注意保存当前代码。", "code_execution": "代码运行", "collection_metadata_filter": "集合元数据过滤", "complete_extraction_result": "完整提取结果", @@ -58,10 +56,8 @@ "http_raw_response_description": "HTTP请求的原始响应。只能接受字符串或JSON类型响应数据。", "http_request": "HTTP 请求", "http_request_error_info": "HTTP请求错误信息,成功时返回空", - "ifelse": { - "Input value": "输入值", - "Select value": "选择值" - }, + "ifelse.Input value": "输入值", + "ifelse.Select value": "选择值", "input_description": "字段描述", "input_variable_list": "可输入 / 唤起变量列表", "intro_assigned_reply": "该模块可以直接回复一段指定的内容。常用于引导、提示。非字符串内容传入时,会转成字符串进行输出。", @@ -110,10 +106,8 @@ "optional_value_type_tip": "可以指定 1 个或多个数据类型,用户在动态添加字段时,仅可选择配置的类型", "pan_priority": "触摸板优先", "pass_returned_object_as_output_to_next_nodes": "将代码中 return 的对象作为输出,传递给后续的节点。变量名需要对应 return 的 key", - "plugin": { - "Instruction_Tip": "可以配置一段说明,以解释该插件的用途。每次使用插件前,会显示该段说明。支持标准 Markdown 语法。", - "Instructions": "使用说明" - }, + "plugin.Instruction_Tip": "可以配置一段说明,以解释该插件的用途。每次使用插件前,会显示该段说明。支持标准 Markdown 语法。", + "plugin.Instructions": "使用说明", "plugin_input": "插件输入", "question_classification": "问题分类", "question_optimization": "问题优化", @@ -127,29 +121,25 @@ "regex": "正则", "reply_text": "回复的文本", "request_error": "请求错误", - "response": { - "Code log": "Log 日志", - "Custom inputs": "自定义输入", - "Custom outputs": "自定义输出", - "Error": "错误信息", - "Read file result": "文档解析结果预览", - "read files": "解析的文档" - }, + "response.Code log": "Log 日志", + "response.Custom inputs": "自定义输入", + "response.Custom outputs": "自定义输出", + "response.Error": "错误信息", + "response.Read file result": "文档解析结果预览", + "response.read files": "解析的文档", "select_an_application": "选择一个应用", "select_another_application_to_call": "可以选择一个其他应用进行调用", "special_array_format": "特殊数组格式,搜索结果为空时,返回空数组。", "start_with": "开始为", "target_fields_description": "由 '描述' 和 'key' 组成一个目标字段,可提取多个目标字段", - "template": { - "ai_chat": "AI 对话", - "ai_chat_intro": "AI 大模型对话", - "dataset_search": "知识库搜索", - "dataset_search_intro": "调用“语义检索”和“全文检索”能力,从“知识库”中查找可能与问题相关的参考内容", - "system_config": "系统配置", - "tool_call": "工具调用", - "tool_call_intro": "通过AI模型自动选择一个或多个功能块进行调用,也可以对插件进行调用。", - "workflow_start": "流程开始" - }, + "template.ai_chat": "AI 对话", + "template.ai_chat_intro": "AI 大模型对话", + "template.dataset_search": "知识库搜索", + "template.dataset_search_intro": "调用“语义检索”和“全文检索”能力,从“知识库”中查找可能与问题相关的参考内容", + "template.system_config": "系统配置", + "template.tool_call": "工具调用", + "template.tool_call_intro": "通过AI模型自动选择一个或多个功能块进行调用,也可以对插件进行调用。", + "template.workflow_start": "流程开始", "template.plugin_output": "插件输出", "template.plugin_start": "插件开始", "text_concatenation": "文本拼接", @@ -163,12 +153,11 @@ "update_specified_node_output_or_global_variable": "可以更新指定节点的输出值或更新全局变量", "use_user_id": "使用者 ID", "user_question": "用户问题", + "value_type": "数据类型", "variable_picker_tips": "可输入节点名或变量名搜索", "variable_update": "变量更新", - "workflow": { - "My edit": "我的编辑", - "Switch_success": "切换成功", - "Team cloud": "团队云端", - "exit_tips": "您的更改尚未保存,「直接退出」将不会保存您的编辑记录。" - } + "workflow.My edit": "我的编辑", + "workflow.Switch_success": "切换成功", + "workflow.Team cloud": "团队云端", + "workflow.exit_tips": "您的更改尚未保存,「直接退出」将不会保存您的编辑记录。" } \ No newline at end of file diff --git a/packages/web/types/i18next.d.ts b/packages/web/types/i18next.d.ts index 9de5ca103..20a2fcfb3 100644 --- a/packages/web/types/i18next.d.ts +++ b/packages/web/types/i18next.d.ts @@ -23,14 +23,8 @@ export interface I18nNamespaces { export type I18nNsType = (keyof I18nNamespaces)[]; -export type NestedKeyOf = { - [Key in keyof ObjectType & (string | number)]: ObjectType[Key] extends object - ? `${Key}` | `${Key}.${NestedKeyOf}` - : `${Key}`; -}[keyof ObjectType & (string | number)]; - export type ParseKeys = { - [K in Ns]: `${K}:${NestedKeyOf}`; + [K in Ns]: `${K}:${keyof I18nNamespaces[K] & string}`; }[Ns]; export type I18nKeyFunction = { diff --git a/projects/app/src/components/core/app/VariableEdit.tsx b/projects/app/src/components/core/app/VariableEdit.tsx index 2f1171f96..a21072725 100644 --- a/projects/app/src/components/core/app/VariableEdit.tsx +++ b/projects/app/src/components/core/app/VariableEdit.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import { Box, Button, @@ -41,6 +41,29 @@ import MyRadio from '@/components/common/MyRadio'; import { formatEditorVariablePickerIcon } from '@fastgpt/global/core/workflow/utils'; import ChatFunctionTip from './Tip'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; +import { FlowValueTypeMap } from '@fastgpt/global/core/workflow/node/constant'; +import MySelect from '@fastgpt/web/components/common/MySelect'; + +export const defaultVariable: VariableItemType = { + id: nanoid(), + key: 'key', + label: 'label', + type: VariableInputEnum.input, + required: true, + maxLen: 50, + enums: [{ value: '' }], + valueType: WorkflowIOValueTypeEnum.string +}; +export const addVariable = () => { + const newVariable = { ...defaultVariable, key: '', id: '' }; + return newVariable; +}; +const valueTypeMap = { + [VariableInputEnum.input]: WorkflowIOValueTypeEnum.string, + [VariableInputEnum.select]: WorkflowIOValueTypeEnum.string, + [VariableInputEnum.textarea]: WorkflowIOValueTypeEnum.string, + [VariableInputEnum.custom]: WorkflowIOValueTypeEnum.any +}; const VariableEdit = ({ variables = [], @@ -65,6 +88,7 @@ const VariableEdit = ({ const { isOpen: isOpenEdit, onOpen: onOpenEdit, onClose: onCloseEdit } = useDisclosure(); const { + setValue, reset: resetEdit, register: registerEdit, getValues: getValuesEdit, @@ -75,6 +99,7 @@ const VariableEdit = ({ } = useForm<{ variable: VariableItemType }>(); const variableType = watch('variable.type'); + const valueType = watch('variable.valueType'); const { fields: selectEnums, @@ -96,8 +121,85 @@ const VariableEdit = ({ }); }, [variables]); + const valueTypeSelectList = useMemo( + () => + Object.values(FlowValueTypeMap) + .map((item) => ({ + label: t(item.label as any), + value: item.value + })) + .filter( + (item) => + ![ + WorkflowIOValueTypeEnum.arrayAny, + WorkflowIOValueTypeEnum.selectApp, + WorkflowIOValueTypeEnum.selectDataset, + WorkflowIOValueTypeEnum.dynamic + ].includes(item.value) + ), + [t] + ); + const showValueTypeSelect = variableType === VariableInputEnum.custom; + + const onSubmit = useCallback( + ({ variable }: { variable: VariableItemType }) => { + variable.key = variable.key.trim(); + + // check select + if (variable.type === VariableInputEnum.select) { + const enums = variable.enums.filter((item) => item.value); + if (enums.length === 0) { + toast({ + status: 'warning', + title: t('common:core.module.variable.variable option is required') + }); + return; + } + } + + // check repeat key + const existingVariable = variables.find( + (item) => item.key === variable.key && item.id !== variable.id + ); + if (existingVariable) { + toast({ + status: 'warning', + title: t('common:core.module.variable.key already exists') + }); + return; + } + + // set valuetype based on variable.type + variable.valueType = + variable.type === VariableInputEnum.custom + ? variable.valueType + : valueTypeMap[variable.type]; + + // set default required value based on variableType + if (variable.type === VariableInputEnum.custom) { + variable.required = false; + } + + const onChangeVariable = [...variables]; + // update + if (variable.id) { + const index = variables.findIndex((item) => item.id === variable.id); + onChangeVariable[index] = variable; + } else { + onChangeVariable.push({ + ...variable, + id: nanoid() + }); + } + onChange(onChangeVariable); + onCloseEdit(); + }, + [onChange, onCloseEdit, t, toast, variables] + ); + return ( + {/* Row box */} {t('common:core.module.Variable')} @@ -117,6 +219,7 @@ const VariableEdit = ({ {t('common:common.Add New')} + {/* Form render */} {formatVariables.length > 0 && ( @@ -171,6 +274,7 @@ const VariableEdit = ({ )} + {/* Edit modal */} + + {t('workflow:value_type')} + {showValueTypeSelect ? ( + + + list={valueTypeSelectList.filter( + (item) => item.value !== WorkflowIOValueTypeEnum.arrayAny + )} + value={valueType} + onchange={(e) => { + setValue('variable.valueType', e); + }} + /> + + ) : ( + {valueTypeMap[variableType]} + )} + {t('common:core.workflow.Variable.Variable type')} @@ -299,57 +421,7 @@ const VariableEdit = ({ - - {isFreeTeam ? ( - <> - - {t('common:info.free_plan')} - - - ) : ( + {isFreeTeam && ( + + {t('common:info.free_plan')} + + )} + {standardPlan.currentSubLevel !== StandardSubLevelEnum.free && ( {t('common:support.wallet.Plan expired time')}: {formatTime2YMD(standardPlan?.expiredTime)} diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoop.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoop.tsx index 6e7762ea7..17503589e 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoop.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoop.tsx @@ -10,7 +10,7 @@ import { Background, NodeProps } from 'reactflow'; import NodeCard from '../render/NodeCard'; import Container from '../../components/Container'; import IOTitle from '../../components/IOTitle'; -import { useTranslation } from 'react-i18next'; +import { useTranslation } from 'next-i18next'; import RenderInput from '../render/RenderInput'; import { Box } from '@chakra-ui/react'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopEnd.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopEnd.tsx index 04b962d36..5e4f4d80e 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopEnd.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopEnd.tsx @@ -12,7 +12,7 @@ import { import { useContextSelector } from 'use-context-selector'; import { WorkflowContext } from '../../../context'; import { AppContext } from '../../../../context'; -import { useTranslation } from 'react-i18next'; +import { useTranslation } from 'next-i18next'; import { getGlobalVariableNode } from '@/web/core/workflow/adapt'; const typeMap = { diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopStart.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopStart.tsx index 2afe918f8..4d39ccf8f 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopStart.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/Loop/NodeLoopStart.tsx @@ -1,5 +1,5 @@ import { FlowNodeItemType } from '@fastgpt/global/core/workflow/type/node'; -import { useTranslation } from 'react-i18next'; +import { useTranslation } from 'next-i18next'; import { NodeProps } from 'reactflow'; import NodeCard from '../render/NodeCard'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodePluginIO/InputEditModal.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodePluginIO/InputEditModal.tsx index a03b0f89d..56db598c1 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodePluginIO/InputEditModal.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodePluginIO/InputEditModal.tsx @@ -409,7 +409,7 @@ const FieldEditModal = ({ {/* value type */} - {t('common:core.module.Data Type')} + {t('workflow:value_type')} {showValueTypeSelect ? ( diff --git a/projects/app/src/pages/app/list/index.tsx b/projects/app/src/pages/app/list/index.tsx index 504bf731b..f8a073053 100644 --- a/projects/app/src/pages/app/list/index.tsx +++ b/projects/app/src/pages/app/list/index.tsx @@ -43,7 +43,6 @@ import LightRowTabs from '@fastgpt/web/components/common/Tabs/LightRowTabs'; import { useSystem } from '@fastgpt/web/hooks/useSystem'; import MyIcon from '@fastgpt/web/components/common/Icon'; import TemplateMarketModal from './components/TemplateMarketModal'; -import { useSystemStore } from '@/web/common/system/useSystemStore'; const CreateModal = dynamic(() => import('./components/CreateModal')); const EditFolderModal = dynamic( @@ -71,7 +70,6 @@ const MyApps = () => { setSearchKey } = useContextSelector(AppListContext, (v) => v); const { userInfo } = useUserStore(); - const { setAppType } = useSystemStore(); const [createAppType, setCreateAppType] = useState(); const { @@ -173,13 +171,12 @@ const MyApps = () => { fontSize={['sm', 'md']} flexShrink={0} onChange={(e) => { - setAppType(e); - // router.push({ - // query: { - // ...router.query, - // type: e - // } - // }); + router.push({ + query: { + ...router.query, + type: e + } + }); }} /> diff --git a/projects/app/src/pages/dataset/detail/components/MetaDataCard.tsx b/projects/app/src/pages/dataset/detail/components/MetaDataCard.tsx index 3e408639c..e3022b37d 100644 --- a/projects/app/src/pages/dataset/detail/components/MetaDataCard.tsx +++ b/projects/app/src/pages/dataset/detail/components/MetaDataCard.tsx @@ -1,6 +1,5 @@ -import React, { useMemo, useState } from 'react'; -import { Box, Flex, Button, IconButton, Input, Textarea, HStack } from '@chakra-ui/react'; -import { DeleteIcon } from '@chakra-ui/icons'; +import React, { useMemo } from 'react'; +import { Box, Flex, Button } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; import { getDatasetCollectionById } from '@/web/core/dataset/api'; @@ -33,7 +32,7 @@ const MetaDataCard = ({ datasetId }: { datasetId: string }) => { manual: false } ); - const metadataList = useMemo(() => { + const metadataList = useMemo<{ label?: string; value?: any }[]>(() => { if (!collection) return []; const webSelector =