LibreChat/client/src/localization/languages/ZhTraditional.ts

2719 lines
102 KiB
TypeScript
Raw Normal View History

// Traditional Chinese phrases
export default {
com_ui_examples: '範例',
com_ui_new_chat: '新對話',
com_ui_happy_birthday: '這是我的第一個生日!',
com_ui_example_quantum_computing: '用簡單的方式解釋量子計算',
com_ui_example_10_year_old_b_day: '有沒有創意十足的十歲生日派對點子?',
com_ui_example_http_in_js: '如何在 JavaScript 中發起 HTTP 請求?',
com_ui_capabilities: '功能',
com_ui_capability_remember: '能記得先前在對話中提到的內容',
com_ui_capability_correction: '允許使用者提供後續的修正',
com_ui_capability_decline_requests: '訓練有素以拒絕不適當的請求',
com_ui_limitations: '限制',
com_ui_limitation_incorrect_info: '有時可能會產生不正確的資訊',
com_ui_limitation_harmful_biased: '有時可能會產生有害的指示或帶有偏見的內容',
com_ui_limitation_limited_2021: '對於 2021 年後的世界和事件的知識有限',
com_ui_input: '輸入',
com_ui_close: '關閉',
com_ui_model: '模型',
com_ui_select_model: '選擇模型',
com_ui_use_prompt: '使用提示',
com_ui_prev: '上一個',
com_ui_next: '下一個',
com_ui_prompt_templates: '提示範本',
com_ui_hide_prompt_templates: '隱藏提示範本',
com_ui_showing: '顯示',
com_ui_of: '的',
com_ui_entries: '條目',
com_ui_pay_per_call: '將所有 AI 對話都在集中在一處,按用量付費而非固定月費',
com_ui_enter: '輸入',
com_ui_submit: '送出',
com_ui_upload_success: '檔案上傳成功',
com_ui_cancel: '取消',
com_ui_save: '儲存',
com_ui_copy_to_clipboard: '複製到剪貼簿',
com_ui_copied_to_clipboard: '已複製到剪貼簿',
com_ui_regenerate: '重新生成',
com_ui_continue: '繼續',
com_ui_edit: '編輯',
com_ui_success: '成功',
com_ui_all: '全部',
com_ui_clear: '清除',
com_ui_revoke: '撤銷',
com_ui_revoke_info: '撤銷所有使用者提供的憑證。',
com_ui_import_conversation: '匯入',
com_ui_import_conversation_info: '從 JSON 文件匯入對話',
com_ui_import_conversation_success: '對話匯入成功',
com_ui_import_conversation_error: '匯入對話時發生錯誤',
com_ui_confirm_action: '確認操作',
com_ui_chats: '對話',
com_ui_share: '分享',
com_ui_copy_link: '複製連結',
com_ui_update_link: '更新連結',
com_ui_create_link: '建立連結',
com_ui_share_link_to_chat: '分享連結到聊天',
com_ui_share_error: '分享聊天連結時發生錯誤',
com_ui_share_retrieve_error: '刪除共享連結時發生錯誤。',
com_ui_share_delete_error: '刪除共享連結時發生錯誤。',
com_ui_share_create_message: '您的姓名以及您在共享後新增的任何訊息都會保密。',
com_ui_share_created_message: '已建立到您的聊天的共享連結。可以隨時透過設定管理以前共享的聊天。',
com_ui_share_update_message: '您的姓名、自訂提示指令以及您在共享後新增的任何訊息都會保密。',
com_ui_share_updated_message: '已更新到您的聊天的共享連結。可以隨時透過設定管理以前共享的聊天。',
com_ui_shared_link_not_found: '未找到共享連結',
com_ui_delete: '刪除',
com_ui_delete_conversation: '刪除對話?',
🗨️ feat: Prompts (#3131) * 🗨️ feat: Prompts (#7) * WIP: MERGE prompts/frontend (#1) * added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts * * updated promptGroup Schema * updated model methods for prompts (get, add, delete) * slight fixes in prompt routes * * Created Files Management components * Created Vector Stores components * Added file management route in the routes folder * Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store * Fixed style and UI fixes for file dashboard, file list and vector stores list * added responsiveness classes for vector store page * fixed responsiveness of file page, dashboard page, and main page * fixed styling and responsiveness issues on dashboard page, file list page and vector store page * added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs * added types on mutation queries data service, updated prompt attributes * feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries * chore: typing clarifications * added drop down on prompts mgmt dashboard * Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button * Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories * chore: typing and lint issues * chore: more type and linter fixes * chore: linting * chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY * chore: more type fixes * style: prompt name changes * chore: more type changes, and stateful prompt name change without flickering * fix: Return result of savePrompt in patchPrompt API endpoint * fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups' * refactor: fetch prompt groups rewrite * refactor(prompts): query/mutation statefulness * refactor: remove `isActive` field * refactor: remove labels, consolidate logic * style: width, layout shift * refactor: improve hover toggle behavior and styling * refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout * chore: hide upload button * refactor: import Button component from correct location in PromptSidePanel * style: prompt editor styling * style: fix more layout shifts * style: container scroll * refactor: Rename CreatePrompt component to CreatePromptForm * refactor: use react-hook-form * refactor: Add Prompts components and routes to Dashboard * style: skeletons for loading * fix: optimize makePromptProduction * refactor: consolidate variables * feat: create prompt form validation * refactor: Consolidate variables and update mutation hooks * style: minor touchups * chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix * refactor: add a new icon for the Prompts heading. * style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues * chore: wording * refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons * refactor: Prompts Button for Mobile * feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group * chore: template for prompt cards --------- Co-authored-by: Fawadpot <contactfawada@gmail.com> * WIP: Prompts/frontend Continued (#2) * chore: loading style, remove unused component * feat: Add CategorySelector component for prompt group category selection * feat: add categories to create prompt * feat: prompt versions styling * feat: optimistic updates for prompt production state * refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes * chore: remove unused code and localizations * fix: light mode styling * WIP: SidePanel Prompts * refactor: move to groups directory * refactor: rename GroupsSidePanel to GroupSidePanel and update imports * style: ListCard * refactor: isProduction changes * refactor: infinite query with productionPrompt * refactor: optimize snippets and prompts, and styling * refactor: Update getSnippet function to accept a length parameter * chore: localizations * feat: prompts navigation to chat and vice versa * fix: create prompt * feat: remember last selected category for creating prompts * fix(promptGroups): fix pagination and add usePromptGroupsNav hook * Prompts/frontend 3 (#3) * fix: stateful issues with prompt groups * style: improved layout * refactor: improve variable naming in Eng.ts * refactor: theme selector styling improvements * added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness fixed page size option buttons styling to match the theme added dark mode on create prompt page and prompt edit/preview page fixed page size option buttons styling to match the theme added dark mode on create prompt page and prompt edit/preview page * WIP: Prompts/frontend (#4) * fix: optimize and fix paginated query * fix: remove unique constraint on names * refactor: button links and styling * style: menu border light mode * feat: Add Auto-Send Switch component for prompts groups * refactor(ChatView): use form context for submission text * chore: clear convo state on navigation to dashboard routes * chore: save prompt edit name on tab, remove console log * feat: basic prompt submission * refactor: move Auto-Send Switch * style(ListCard): border styling * feat: Add function to detect variables in text * feat: Add OriginalDialog component to UI library * chore(ui): Update SelectDropDown options list class to use text-xs size * refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector * WIP: Variable Dialog * feat: variable submission working for both auto-send and non-autosend * feat: dashboard breadcrumbs and prompts/chat navigation * refactor: dashboard breadcrumb and dashboard link to chat navigation * refactor: Update VariableDialog and VariableForm styles * Prompts: Admin features (#5) * fix: link issue * fix: usePromptGroupsNav add missing dep. * style: dashbreadcrumb and sidepanel text color * temp fix: remove refetch on pageNumber change * fix: handle multiple variable replacement * WIP: create project schema and add project groups to fetch * feat: Add functionality to add prompt group IDs to a project * feat: Add caching for startup config in config route * chore: remove prompt landing * style: Update Skeleton component with additional background styling * chore: styling and types * WIP: SharePrompt first draft * feat(SharePrompt): form validation * feat: shared global indicators * refactor: prompt details * refactor: change NoPromptGroup directory * feat: preview prompt * feat: remove/add global prompts, add rbac-related enums * refactor: manage prompts location * WIP: first draft admin settings for prompts * feat: SystemRoles enum * refactor: update PromptDetails component styling * style: ellipsis custom class for showing more preview text * WIP: initial role schema and initialization * style: improved margins for single unordered lists * fix: use custom chat form context to prevent re-renders from FormProvider * feat: Role mutations for Prompt Permissions * feat: fetch user role * feat: update AdminSettings form default values from user role values * refactor: rename PromptPermissions to Permissions for general definitions * feat: initial role checks * feat: Add optional `bodyProps` parameter to generateCheckAccess middleware * refactor: UI access checks * Prompts: delete (#6) * Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic * chore: Update return type of deletePrompt function in Prompt.js --------- Co-authored-by: Fawadpot <contactfawada@gmail.com> * chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0 * feat: toast for saving admin settings, add timer no-access navigation * feat: always make prod * feat: Add localization to category labels in CategorySelector component * feat: Update category label localization in CategorySelector component * fix: Enable making prompt production in Prompt API --------- Co-authored-by: Fawadpot <contactfawada@gmail.com> * feat: Add helper fn for dark mode detection in ThemeProvider * style: surface-primary definition * fix(useHasAccess): utilize user.role and not just USER role * fix: empty category and role fetch * refactort: increase max height to options list and use label if no localization is found * fix: update CategorySelector to handle empty category value and improve localization * refactor: move prompts to own store/reactquery modules, add in filter WIP * refactor: Rename AutoSendSwitch to AutoSendPrompt * style: theming commit * style: fix slight coloring issue for convos in dark mode * style: better composition for prompts side panel * style: remove gray-750 and make it gray-850 * chore: adjust theming * feat: filter all prompt groups and properly remove prompts from projects * refactor: optimize delete prompt groups further * chore: localization * feat: Add uniqueProperty filtering to normalizeData function * WIP: filter prompts * chore: Update FilterPrompts component to include User icon in FilterItem * feat(FilterPrompts): set categories * feat: more system filters and show selected category icon * style: always make prod, flips switch to avoid mis-clicks * style: ui/ux loading/no prompts * chore: style FilterPrompts ChatView * fix: handle missing role edge case * style: special variables * feat: special variables * refactor: improve replaceSpecialVars function in prompts.ts * feat: simple/advanced editor modes * chore: bump versions * feat: localizations and hide production button on simple mode * fix: error connecting layout shift * fix: prompts CRUD for admins * fix: secure single group fetch * style: sidepanel styling * style(PromptName): bring edit button closer to name * style: mobile prompts header * style: mobile prompts header continued * style: align send prompts switch right * feat: description * Update special variables description in Eng.ts * feat: update/create/preview oneliner * fix: allow empty oneliner update * style: loading improvement and always make selected prompt Production if simple mode * fix: production index set and remove unused props * fix(ci): mock initializeRoles * fix: address #3128 * fix: address #3128 * feat: add deletion confirmation dialog * fix: mobile UI issues * style: prompt library UI update * style: focus, logcal tab order * style: Refactor SelectDropDown component to improve code readability and maintainability * chore: bump data-provider * chore: fix labels * refactor: confirm delete prompt version --------- Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
com_ui_delete_confirm: '這將刪除',
🚀feat: Archive conversations (#2590) * 🔧chore: add internationalization labels for archive feature * ✨ feat: Add function to useArchiveConversationMutation() This commit adds a new mutation function `useArchiveConversationMutation()` for archiving conversations. This function takes the ID string of the conversation to be archived and returns a mutation result object. Upon successful archiving, it removes and refreshes the conversation from the query data cache. While ChatGPT PATCHes the archived status by sending `{is_archived: true}` to the URL `/backend-api/conversation/$conversation_id`, this implementation uses the `dataService.updateConversation(payload)` with a POST method, aligning with the existing code conventions. * ✨ feat(api): add is_archived field to Conversation schema and update getConvosByPage method This commit adds a new field `is_archived` with a default value of false to the Conversation schema. It also modifies the `getConvosByPage` method within the Conversation API to adjust the query to only target conversations where `is_archived` is set to false or where the `is_archived` field does not exist. The function `getConvosQueried`, which returns conversations for a specified Conversation ID, was determined not to require consideration of whether `is_archived` is true or false, and thus was not modified. * ♻️ refactor: add className prop to DotsIcon component To enhance the versatility of the DotsIcon component, this commit introduces the ability to specify a className prop, allowing for greater customization. * ✨ feat(ui): add Edit Button to group Title change and Conversation delete buttons Added a new Edit Button to the conversations, similar to the ChatGPT UI, which groups options for editing the conversation title and deleting conversations. This grouping is accessible through a dialogue that appears when the three-dot icon is clicked. * ♻️ refactor(ui): enhance Delete Button to accept className and label options Enhanced the Delete Button component to accept a `className` for customization and an optional `appendLabel`. The DeleteButton component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * ♻️ refactor(ui): enhance RenameButton to accept label options Added the ability to optionally display labels; the Rename Button component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * 🔧 chors: additional localization labels * ♻️ refactor: change is_archived property of conversation to camelCase * Refactor the is_archived property of conversation to camelCase (isArchived) to adhere to the existing code conventions * Modify the function that retrieves conversations to accept the isArchived parameter * ♻️ refactor: add archiveConversation mutation I thought I could divert dataService.updateConversation, but added a new archiveConversation because the request types are different. It might be better to make them common, but to avoid side effects, I added a new function this time. Added process to deleteConversationMutation to delete archived conversations * ✨ feat: Add the function to hide a cancel button in DialogTemplate component The Cancel button is not needed when displaying the archive list, so I made the Cancel button optional. * ♻️ refactor: Add support for filtering archived conversations in Nav component This commit modifies the Nav component to add the ability to filter out archived conversations when fetching data. This is done by adding `isArchived: false` to the query parameters for both the `useConversationsInfiniteQuery()` and `useSearchInfiniteQuery()` hooks, effectively excluding any archived conversations from the results returned. * ♻️ refactor: add Tooltip to DeleteButton * Add Tooltip to DeleteButton component * Display Tooltip when DeleteButton only shows an Icon without text * ✨ feat(ui): add ArchiveButton component for archiving conversations To be compatible with the ChatGPT UI, no confirmation dialog is displayed when ArchiveButton is clicked. The basic behavior conforms to DeleteButton and RenameButton. * ✨ feat(ui): add Archive button to list of conversations Modify the Nav of the conversation list to include a dropdown that contains the Rename and Delete options, similar to the ChatGPT UI. Additionally, an Archive button has been added adjacent to the dropdown menu. * ✨ feat: Add ArchivedChatsTable component Adds the `ArchivedChatsTable` component, which displays a table of archived chats. It has been implemented to be as compatible with the ChatGPT UI as possible. * 🚑 fix(tooltip): increase z-index to ensure visibility over Dialog Resolve an issue where tooltips were not visible when displayed over a Dialog. The z-index of `DialogPrimitive.Portal` in `Dialog.tsx` is set to 999. Since the rationale for this value is unclear, the z-index of the tooltip has been increased to 1000 to guarantee its visibility above the Dialog component. * 🔧 chors: add internationalization labels
2024-05-06 20:07:00 -07:00
com_ui_rename: '重新命名',
com_ui_archive: '封存',
com_ui_archive_error: '封存對話時發生錯誤',
com_ui_unarchive: '取消封存',
com_ui_unarchive_error: '取消封存對話時發生錯誤',
com_ui_more_options: '更多',
com_ui_bookmarks: '書籤',
com_ui_bookmarks_rebuild: '重建',
com_ui_bookmarks_new: '新書籤',
com_ui_bookmark_delete_confirm: '你確定要刪除這個書籤嗎?',
com_ui_bookmarks_title: '標題',
com_ui_bookmarks_count: '計數',
com_ui_bookmarks_description: '描述',
com_ui_bookmarks_create_success: '書籤創建成功',
com_ui_bookmarks_update_success: '書籤更新成功',
com_ui_bookmarks_delete_success: '書籤刪除成功',
com_ui_bookmarks_create_error: '創建書籤時出錯',
com_ui_bookmarks_update_error: '更新書籤時出錯',
com_ui_bookmarks_delete_error: '刪除書籤時出錯',
com_ui_bookmarks_add_to_conversation: '添加到當前對話',
com_ui_accept: '我接受',
com_ui_decline: '我不同意',
com_ui_terms_and_conditions: '條款和條件',
com_ui_no_terms_content: '沒有條款和條件內容顯示',
com_auth_error_login: '無法使用提供的資訊登入。請檢查您的登入資訊後重試。',
com_auth_error_login_rl: '短時間內嘗試登入的次數過多。請稍後再試。',
com_auth_error_login_ban: '由於違反我們的服務條款,您的帳號已被暫時停用。',
com_auth_error_login_server: '發生內部伺服器錯誤。請稍候片刻,然後重試。',
com_auth_no_account: '還沒有帳號?',
com_auth_sign_up: '註冊',
com_auth_sign_in: '登入',
com_auth_google_login: '使用 Google 登入',
com_auth_facebook_login: '使用 Facebook 登入',
com_auth_github_login: '使用 GitHub 登入',
com_auth_discord_login: '使用 Discord 登入',
com_auth_email: '電子郵件',
com_auth_email_required: '電子郵件必填',
com_auth_email_min_length: '電子郵件長度必須至少有 6 個字元',
com_auth_email_max_length: '電子郵件不應超過 120 個字元',
com_auth_email_pattern: '您必須輸入有效的電子郵件地址',
com_auth_email_address: '電子郵件地址',
com_auth_password: '密碼',
com_auth_password_required: '密碼必填',
com_auth_password_min_length: '密碼長度必須至少有 8 個字元',
com_auth_password_max_length: '密碼長度必須少於 128 個字元',
com_auth_password_forgot: '忘記密碼?',
com_auth_password_confirm: '確認密碼',
com_auth_password_not_match: '密碼不符',
com_auth_continue: '繼續',
com_auth_create_account: '建立您的帳號',
com_nav_auto_scroll: '開啟時自動捲動至最新內容',
com_auth_error_create: '嘗試註冊您的帳號時發生錯誤。請重試。',
com_auth_full_name: '全名',
com_auth_name_required: '名稱必填',
com_auth_name_min_length: '名稱長度必須至少有 3 個字元',
com_auth_name_max_length: '名稱長度長度必須少於 80 個字元',
com_auth_username: '使用者名稱(選填)',
com_auth_username_required: '使用者名稱必填',
com_auth_username_min_length: '使用者名稱長度必須至少有 2 個字元',
com_auth_username_max_length: '使用者名稱長度必須少於 20 個字元',
com_auth_already_have_account: '已經有帳號了?',
com_auth_login: '登入',
com_auth_reset_password: '重設密碼',
com_auth_click: '點選',
com_auth_here: '這裡',
com_auth_to_reset_your_password: '重設您的密碼。',
com_auth_reset_password_link_sent: '電子郵件已傳送',
com_auth_reset_password_email_sent: '已向您傳送電子郵件,其中包含進一步重設密碼的操作說明。',
com_auth_error_reset_password:
'重設密碼時出現問題。找不到使用提供的電子郵件地址的使用者。請重試。',
com_auth_reset_password_success: '密碼重設成功',
com_auth_login_with_new_password: '您現在可以使用新密碼登入。',
com_auth_error_invalid_reset_token: '此密碼重設令牌已無效。',
com_auth_click_here: '點選這裡',
com_auth_to_try_again: '重試。',
com_auth_submit_registration: '送出',
com_auth_welcome_back: '歡迎回來',
com_endpoint_open_menu: '開啟選單',
com_endpoint_bing_enable_sydney: 'Sydney',
com_endpoint_bing_to_enable_sydney: '啟用 Sydney',
com_endpoint_bing_jailbreak: '越獄',
com_endpoint_bing_context_placeholder:
'Bing 可以使用多達 7k 個 token 作為「前後文」,並在對話中引用。具體限制不詳,但可能會在超過 7k token 時出現錯誤',
com_endpoint_bing_system_message_placeholder:
'警告:不當使用此功能可能會導致您被禁止使用 Bing如需完整指引和預設訊息若未設定請點選「系統訊息」這是被認為安全的「Sydney」預設值。',
com_endpoint_system_message: '系統訊息',
com_endpoint_default_blank: '預設:空白',
com_endpoint_default_false: '預設:否',
com_endpoint_default_creative: '預設:創意',
com_endpoint_default_empty: '預設:空',
com_endpoint_default_with_num: '預設:{0}',
com_endpoint_context: '前後文',
com_endpoint_tone_style: '語氣風格',
com_endpoint_token_count: 'token 數量',
com_endpoint_output: '輸出',
com_endpoint_google_temp:
'較高的值表示更隨機,而較低的值表示更集中和確定。我們建議修改這個或 Top P但不建議兩者都修改。',
com_endpoint_google_topp:
'Top-p 調整模型在輸出 token 時的選擇機制。從最可能的 K見 topK 參數)開始選擇 token直到它們的機率之和達到 top-p 值。',
com_endpoint_google_topk:
'Top-k 調整模型如何選取輸出的 token。當 Top-k 設為 1 時,模型會選取在其詞彙庫中機率最高的 token 進行輸出(這也被稱為貪婪解碼)。相對地,當 Top-k 設為 3 時,模型會從機率最高的三個 token 中選取下一個輸出 token這會涉及到所謂的「溫度」調整',
com_endpoint_google_maxoutputtokens:
'設定回應中可生成的最大 token 數。若希望回應簡短,請設定較低的數值;若需較長的回應,則設定較高的數值。',
com_endpoint_google_custom_name_placeholder: '為 Google 設定自訂名稱',
com_endpoint_prompt_prefix_placeholder: '設定自訂提示或前後文。如果為空則忽略。',
com_endpoint_custom_name: '自訂名稱',
com_endpoint_prompt_prefix: '提示起始字串',
com_endpoint_temperature: '溫度',
com_endpoint_default: '預設',
com_endpoint_top_p: 'Top P',
com_endpoint_top_k: 'Top K',
com_endpoint_max_output_tokens: '最大輸出 token 數',
com_endpoint_openai_temp:
'較高的值表示更隨機,而較低的值表示更集中和確定。我們建議修改這個或 Top P但不建議兩者都修改。',
com_endpoint_openai_max:
'要生成的最大 token 數。輸入 token 和生成 token 的總長度受到模型前後文長度的限制。',
com_endpoint_openai_topp:
'與溫度取樣的替代方法,稱為核心取樣,其中模型考慮 top_p 機率質量的 token 結果。所以 0.1 表示只考慮佔 top 10% 機率質量的 token。我們建議修改這個或溫度但不建議兩者都修改。',
com_endpoint_openai_freq:
'數值範圍介於 -2.0 和 2.0 之間。正值會根據該 token 在目前的文字中出現的頻率進行懲罰,減少模型產生重複內容的可能性。',
com_endpoint_openai_pres:
'數值範圍介於 -2.0 和 2.0 之間。正值會根據該 token 是否在目前的文字中出現來進行懲罰,增加模型談及新主題的可能性。',
com_endpoint_openai_custom_name_placeholder: '為 ChatGPT 設定自訂名稱',
com_endpoint_openai_prompt_prefix_placeholder: '在系統訊息中設定自訂提示。',
com_endpoint_anthropic_temp:
'範圍從 0 到 1。對於分析/多選題,使用接近 0 的溫度,對於創意和生成式任務,使用接近 1 的溫度。我們建議修改這個或 Top P但不建議兩者都修改。',
com_endpoint_anthropic_topp:
'Top-p 改變模型選擇輸出 token 的方式。從最可能的 K見 topK 參數)開始選擇 token直到它們的機率之和達到 top-p 值。',
com_endpoint_anthropic_topk:
'Top-k 改變模型選擇輸出 token 的方式。Top-k 為 1 表示所選 token 在模型詞彙表中所有 token 中最可能(也稱為貪婪解碼),而 Top-k 為 3 表示下一個 token 從最可能的 3 個 token 中選擇(使用溫度)。',
com_endpoint_anthropic_maxoutputtokens:
'設定回應中可生成的最大 token 數。若希望回應簡短,請設定較低的數值;若需較長的回應,則設定較高的數值。',
com_endpoint_anthropic_custom_name_placeholder: '為 Anthropic 設定自訂名稱',
com_endpoint_frequency_penalty: '頻率懲罰',
com_endpoint_presence_penalty: '出現懲罰',
com_endpoint_plug_use_functions: '使用外掛作為 OpenAI 函式',
com_endpoint_plug_skip_completion: '跳過完成步驟',
com_endpoint_disabled_with_tools: '與工具一起停用',
com_endpoint_disabled_with_tools_placeholder: '選擇工具時停用',
com_endpoint_plug_set_custom_instructions_for_gpt_placeholder: '在系統訊息中新增自訂提示。',
com_endpoint_import: '匯入',
com_endpoint_set_custom_name: '設定自訂名稱,以便您找到此預設設定',
com_endpoint_preset: '預設設定',
com_endpoint_presets: '預設設定',
com_endpoint_preset_name: '名稱',
com_endpoint_new_topic: '新主題',
com_endpoint: '選項',
com_endpoint_hide: '隱藏',
com_endpoint_show: '顯示',
com_endpoint_examples: '預設設定',
com_endpoint_completion: '完成',
com_endpoint_agent: '代理',
com_endpoint_show_what_settings: '顯示 {0} 設定',
com_endpoint_save: '儲存',
com_endpoint_export: '匯出',
com_endpoint_save_as_preset: '另存為預設設定',
com_endpoint_presets_clear_warning: '您確定要清除所有預設設定嗎?此操作無法復原。',
com_endpoint_not_implemented: '尚未實做',
com_endpoint_no_presets: '尚無預設設定',
com_endpoint_not_available: '無可用選項',
com_endpoint_view_options: '檢視選項',
com_endpoint_save_convo_as_preset: '將對話另存為預設設定',
com_endpoint_my_preset: '我的預設設定',
com_endpoint_agent_model: '代理模型建議GPT-3.5',
com_endpoint_completion_model: '完成模型建議GPT-4',
com_endpoint_func_hover: '啟用將外掛用作 OpenAI 函式',
com_endpoint_skip_hover: '啟用跳過完成步驟,評估最終答案和生成步驟',
com_endpoint_config_key: '設定 API 金鑰',
com_endpoint_config_key_for: '設定 API 金鑰給',
com_endpoint_config_key_name: '金鑰',
com_endpoint_config_value: '輸入',
com_endpoint_config_key_name_placeholder: '請先設定 API 金鑰',
com_endpoint_config_key_encryption: '您的金鑰將被加密並在此到期時間刪除:',
com_endpoint_config_key_expiry: '到期時刪除',
com_endpoint_config_key_import_json_key: '匯入服務帳戶 JSON 金鑰。',
com_endpoint_config_key_import_json_key_success: '成功匯入服務帳戶 JSON 金鑰',
com_endpoint_config_key_import_json_key_invalid:
'無效的服務帳戶 JSON 金鑰,您是否匯入了正確的檔案?',
com_endpoint_config_key_get_edge_key: '要取得 Bing 的存取權杖,請登入到',
com_endpoint_config_key_get_edge_key_dev_tool:
'使用開發工具或擴充套件在登入網站時複製 _U cookie 的內容。如果此方法失敗,請按照這些',
com_endpoint_config_key_edge_instructions: '說明',
com_endpoint_config_key_edge_full_key_string: '提供完整的 cookie 字串。',
com_endpoint_config_key_chatgpt: '要取得 ChatGPT \'免費版\' 的存取權杖,請登入到',
com_endpoint_config_key_chatgpt_then_visit: '然後造訪',
com_endpoint_config_key_chatgpt_copy_token: '複製存取權杖。',
com_endpoint_config_key_google_need_to: '您需要',
com_endpoint_config_key_google_vertex_ai: '在 Google Cloud 上啟用 Vertex AI',
com_endpoint_config_key_google_vertex_api: 'API然後',
com_endpoint_config_key_google_service_account: '建立一個服務帳戶',
com_endpoint_config_key_google_vertex_api_role:
'確保點選「建立並繼續」並至少給予「Vertex AI 使用者」角色。最後,建立一個 JSON 金鑰以在此處匯入。',
com_nav_plugin_store: '外掛商店',
com_nav_plugin_search: '搜尋外掛',
com_nav_plugin_auth_error: '嘗試驗證此外掛時發生錯誤。請重試。',
com_nav_export_filename: '檔名',
com_nav_export_filename_placeholder: '設定檔案名稱',
com_nav_export_type: '類型',
com_nav_export_include_endpoint_options: '包含 AI 選項',
com_nav_enabled: '已啟用',
com_nav_not_supported: '不支援',
com_nav_export_all_message_branches: '匯出所有訊息分支',
com_nav_export_recursive_or_sequential: '遞迴還是序列?',
com_nav_export_recursive: '遞迴',
com_nav_export_conversation: '匯出對話',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_nav_export: '匯出',
com_nav_shared_links: '共享連結',
com_nav_shared_links_manage: '管理',
com_nav_shared_links_empty: '您沒有任何共享連結。',
com_nav_shared_links_name: '名稱',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_nav_shared_links_date_shared: '共享日期',
com_nav_theme: '主題',
com_nav_theme_system: '跟隨系統設定',
com_nav_theme_dark: '深色',
com_nav_theme_light: '淺色',
com_nav_font_size: '字體大小',
com_nav_clear_all_chats: '清除所有對話',
com_nav_confirm_clear: '確認清除',
com_nav_close_sidebar: '關閉側邊選單',
com_nav_open_sidebar: '開啟側邊選單',
com_nav_send_message: '傳送訊息',
com_nav_log_out: '登出',
com_nav_user: '使用者',
🚀feat: Archive conversations (#2590) * 🔧chore: add internationalization labels for archive feature * ✨ feat: Add function to useArchiveConversationMutation() This commit adds a new mutation function `useArchiveConversationMutation()` for archiving conversations. This function takes the ID string of the conversation to be archived and returns a mutation result object. Upon successful archiving, it removes and refreshes the conversation from the query data cache. While ChatGPT PATCHes the archived status by sending `{is_archived: true}` to the URL `/backend-api/conversation/$conversation_id`, this implementation uses the `dataService.updateConversation(payload)` with a POST method, aligning with the existing code conventions. * ✨ feat(api): add is_archived field to Conversation schema and update getConvosByPage method This commit adds a new field `is_archived` with a default value of false to the Conversation schema. It also modifies the `getConvosByPage` method within the Conversation API to adjust the query to only target conversations where `is_archived` is set to false or where the `is_archived` field does not exist. The function `getConvosQueried`, which returns conversations for a specified Conversation ID, was determined not to require consideration of whether `is_archived` is true or false, and thus was not modified. * ♻️ refactor: add className prop to DotsIcon component To enhance the versatility of the DotsIcon component, this commit introduces the ability to specify a className prop, allowing for greater customization. * ✨ feat(ui): add Edit Button to group Title change and Conversation delete buttons Added a new Edit Button to the conversations, similar to the ChatGPT UI, which groups options for editing the conversation title and deleting conversations. This grouping is accessible through a dialogue that appears when the three-dot icon is clicked. * ♻️ refactor(ui): enhance Delete Button to accept className and label options Enhanced the Delete Button component to accept a `className` for customization and an optional `appendLabel`. The DeleteButton component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * ♻️ refactor(ui): enhance RenameButton to accept label options Added the ability to optionally display labels; the Rename Button component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * 🔧 chors: additional localization labels * ♻️ refactor: change is_archived property of conversation to camelCase * Refactor the is_archived property of conversation to camelCase (isArchived) to adhere to the existing code conventions * Modify the function that retrieves conversations to accept the isArchived parameter * ♻️ refactor: add archiveConversation mutation I thought I could divert dataService.updateConversation, but added a new archiveConversation because the request types are different. It might be better to make them common, but to avoid side effects, I added a new function this time. Added process to deleteConversationMutation to delete archived conversations * ✨ feat: Add the function to hide a cancel button in DialogTemplate component The Cancel button is not needed when displaying the archive list, so I made the Cancel button optional. * ♻️ refactor: Add support for filtering archived conversations in Nav component This commit modifies the Nav component to add the ability to filter out archived conversations when fetching data. This is done by adding `isArchived: false` to the query parameters for both the `useConversationsInfiniteQuery()` and `useSearchInfiniteQuery()` hooks, effectively excluding any archived conversations from the results returned. * ♻️ refactor: add Tooltip to DeleteButton * Add Tooltip to DeleteButton component * Display Tooltip when DeleteButton only shows an Icon without text * ✨ feat(ui): add ArchiveButton component for archiving conversations To be compatible with the ChatGPT UI, no confirmation dialog is displayed when ArchiveButton is clicked. The basic behavior conforms to DeleteButton and RenameButton. * ✨ feat(ui): add Archive button to list of conversations Modify the Nav of the conversation list to include a dropdown that contains the Rename and Delete options, similar to the ChatGPT UI. Additionally, an Archive button has been added adjacent to the dropdown menu. * ✨ feat: Add ArchivedChatsTable component Adds the `ArchivedChatsTable` component, which displays a table of archived chats. It has been implemented to be as compatible with the ChatGPT UI as possible. * 🚑 fix(tooltip): increase z-index to ensure visibility over Dialog Resolve an issue where tooltips were not visible when displayed over a Dialog. The z-index of `DialogPrimitive.Portal` in `Dialog.tsx` is set to 999. Since the rationale for this value is unclear, the z-index of the tooltip has been increased to 1000 to guarantee its visibility above the Dialog component. * 🔧 chors: add internationalization labels
2024-05-06 20:07:00 -07:00
com_nav_archived_chats: '封存的對話',
com_nav_archived_chats_manage: '管理',
com_nav_archived_chats_empty: '您沒有任何封存的對話。',
com_nav_archive_all_chats: '封存所有對話',
com_nav_archive_all: '封存所有',
com_nav_archive_name: '名稱',
com_nav_archive_created_at: '建立時間',
com_nav_clear_conversation: '清除對話',
com_nav_clear_conversation_confirm_message: '您確定要清除所有對話嗎?此操作無法復原。',
com_nav_help_faq: '說明與常見問題',
com_nav_settings: '設定',
com_nav_search_placeholder: '搜尋訊息',
com_nav_info_bookmarks_rebuild:
'如果書籤計數不正確,請重新構建書籤信息。書籤計數將被重新計算,數據將恢復到其正確狀態。',
com_nav_setting_general: '一般',
com_nav_setting_data: '資料控制',
/* The following are AI translated */
🤖 feat: OpenAI Assistants v2 (initial support) (#2781) * 🤖 Assistants V2 Support: Part 1 - Separated Azure Assistants to its own endpoint - File Search / Vector Store integration is incomplete, but can toggle and use storage from playground - Code Interpreter resource files can be added but not deleted - GPT-4o is supported - Many improvements to the Assistants Endpoint overall data-provider v2 changes copy existing route as v1 chore: rename new endpoint to reduce comparison operations and add new azure filesource api: add azureAssistants part 1 force use of version for assistants/assistantsAzure chore: switch name back to azureAssistants refactor type version: string | number Ensure assistants endpoints have version set fix: isArchived type issue in ConversationListParams refactor: update assistants mutations/queries with endpoint/version definitions, update Assistants Map structure chore: FilePreview component ExtendedFile type assertion feat: isAssistantsEndpoint helper chore: remove unused useGenerations chore(buildTree): type issue chore(Advanced): type issue (unused component, maybe in future) first pass for multi-assistant endpoint rewrite fix(listAssistants): pass params correctly feat: list separate assistants by endpoint fix(useTextarea): access assistantMap correctly fix: assistant endpoint switching, resetting ID fix: broken during rewrite, selecting assistant mention fix: set/invalidate assistants endpoint query data correctly feat: Fix issue with assistant ID not being reset correctly getOpenAIClient helper function feat: add toast for assistant deletion fix: assistants delete right after create issue for azure fix: assistant patching refactor: actions to use getOpenAIClient refactor: consolidate logic into helpers file fix: issue where conversation data was not initially available v1 chat support refactor(spendTokens): only early return if completionTokens isNaN fix(OpenAIClient): ensure spendTokens has all necessary params refactor: route/controller logic fix(assistants/initializeClient): use defaultHeaders field fix: sanitize default operation id chore: bump openai package first pass v2 action service feat: retroactive domain parsing for actions added via v1 feat: delete db records of actions/assistants on openai assistant deletion chore: remove vision tools from v2 assistants feat: v2 upload and delete assistant vision images WIP first pass, thread attachments fix: show assistant vision files (save local/firebase copy) v2 image continue fix: annotations fix: refine annotations show analyze as error if is no longer submitting before progress reaches 1 and show file_search as retrieval tool fix: abort run, undefined endpoint issue refactor: consolidate capabilities logic and anticipate versioning frontend version 2 changes fix: query selection and filter add endpoint to unknown filepath add file ids to resource, deleting in progress enable/disable file search remove version log * 🤖 Assistants V2 Support: Part 2 🎹 fix: Autocompletion Chrome Bug on Action API Key Input chore: remove `useOriginNavigate` chore: set correct OpenAI Storage Source fix: azure file deletions, instantiate clients by source for deletion update code interpret files info feat: deleteResourceFileId chore: increase poll interval as azure easily rate limits fix: openai file deletions, TODO: evaluate rejected deletion settled promises to determine which to delete from db records file source icons update table file filters chore: file search info and versioning fix: retrieval update with necessary tool_resources if specified fix(useMentions): add optional chaining in case listMap value is undefined fix: force assistant avatar roundedness fix: azure assistants, check correct flag chore: bump data-provider * fix: merge conflict * ci: fix backend tests due to new updates * chore: update .env.example * meilisearch improvements * localization updates * chore: update comparisons * feat: add additional metadata: endpoint, author ID * chore: azureAssistants ENDPOINTS exclusion warning
2024-05-19 12:56:55 -04:00
com_assistants_file_search: '檔案搜尋',
com_assistants_file_search_info:
'目前尚不支援為檔案搜尋附加向量儲存。您可以從提供者遊樂場附加它們,或在每個主題的基礎上為檔案搜尋附加檔案。',
🤖 feat: OpenAI Assistants v2 (initial support) (#2781) * 🤖 Assistants V2 Support: Part 1 - Separated Azure Assistants to its own endpoint - File Search / Vector Store integration is incomplete, but can toggle and use storage from playground - Code Interpreter resource files can be added but not deleted - GPT-4o is supported - Many improvements to the Assistants Endpoint overall data-provider v2 changes copy existing route as v1 chore: rename new endpoint to reduce comparison operations and add new azure filesource api: add azureAssistants part 1 force use of version for assistants/assistantsAzure chore: switch name back to azureAssistants refactor type version: string | number Ensure assistants endpoints have version set fix: isArchived type issue in ConversationListParams refactor: update assistants mutations/queries with endpoint/version definitions, update Assistants Map structure chore: FilePreview component ExtendedFile type assertion feat: isAssistantsEndpoint helper chore: remove unused useGenerations chore(buildTree): type issue chore(Advanced): type issue (unused component, maybe in future) first pass for multi-assistant endpoint rewrite fix(listAssistants): pass params correctly feat: list separate assistants by endpoint fix(useTextarea): access assistantMap correctly fix: assistant endpoint switching, resetting ID fix: broken during rewrite, selecting assistant mention fix: set/invalidate assistants endpoint query data correctly feat: Fix issue with assistant ID not being reset correctly getOpenAIClient helper function feat: add toast for assistant deletion fix: assistants delete right after create issue for azure fix: assistant patching refactor: actions to use getOpenAIClient refactor: consolidate logic into helpers file fix: issue where conversation data was not initially available v1 chat support refactor(spendTokens): only early return if completionTokens isNaN fix(OpenAIClient): ensure spendTokens has all necessary params refactor: route/controller logic fix(assistants/initializeClient): use defaultHeaders field fix: sanitize default operation id chore: bump openai package first pass v2 action service feat: retroactive domain parsing for actions added via v1 feat: delete db records of actions/assistants on openai assistant deletion chore: remove vision tools from v2 assistants feat: v2 upload and delete assistant vision images WIP first pass, thread attachments fix: show assistant vision files (save local/firebase copy) v2 image continue fix: annotations fix: refine annotations show analyze as error if is no longer submitting before progress reaches 1 and show file_search as retrieval tool fix: abort run, undefined endpoint issue refactor: consolidate capabilities logic and anticipate versioning frontend version 2 changes fix: query selection and filter add endpoint to unknown filepath add file ids to resource, deleting in progress enable/disable file search remove version log * 🤖 Assistants V2 Support: Part 2 🎹 fix: Autocompletion Chrome Bug on Action API Key Input chore: remove `useOriginNavigate` chore: set correct OpenAI Storage Source fix: azure file deletions, instantiate clients by source for deletion update code interpret files info feat: deleteResourceFileId chore: increase poll interval as azure easily rate limits fix: openai file deletions, TODO: evaluate rejected deletion settled promises to determine which to delete from db records file source icons update table file filters chore: file search info and versioning fix: retrieval update with necessary tool_resources if specified fix(useMentions): add optional chaining in case listMap value is undefined fix: force assistant avatar roundedness fix: azure assistants, check correct flag chore: bump data-provider * fix: merge conflict * ci: fix backend tests due to new updates * chore: update .env.example * meilisearch improvements * localization updates * chore: update comparisons * feat: add additional metadata: endpoint, author ID * chore: azureAssistants ENDPOINTS exclusion warning
2024-05-19 12:56:55 -04:00
com_assistants_non_retrieval_model: '此模型未啟用檔案搜尋功能。請選擇其他模型。',
com_ui_attach_error_openai: '無法將助理檔案附加至其他端點',
com_ui_attach_warn_endpoint: '非相容工具的非助理檔案可能會被忽略',
com_ui_assistant_deleted: '已成功刪除助理',
com_ui_assistant_delete_error: '刪除助理時發生錯誤',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_copied: '已複製!',
com_ui_copy_code: '複製程式碼',
com_nav_source_chat: '檢視原始對話',
com_ui_date_today: '今天',
com_ui_date_yesterday: '昨天',
com_ui_date_previous_7_days: '過去 7 天',
com_ui_date_previous_30_days: '過去 30 天',
com_ui_date_january: '一月',
com_ui_date_february: '二月',
com_ui_date_march: '三月',
com_ui_date_april: '四月',
com_ui_date_may: '五月',
com_ui_date_june: '六月',
com_ui_date_july: '七月',
com_ui_date_august: '八月',
com_ui_date_september: '九月',
com_ui_date_october: '十月',
com_ui_date_november: '十一月',
com_ui_date_december: '十二月',
com_ui_nothing_found: '找不到任何內容',
com_ui_go_to_conversation: '前往對話',
com_error_moderation:
'您所提交的內容似乎被我們的內容審查系統標記為不符合社群準則。我們無法就此特定主題繼續進行討論。如果您有任何其他問題或想要探討的主題,請編輯您的訊息或開啟新的對話。',
com_error_no_user_key: '找不到金鑰,請提供金鑰後再試一次。',
com_error_no_base_url: '找不到基礎 URL。請提供一個基礎 URL 後再試一次。',
com_error_invalid_user_key: '提供的金鑰無效。請提供有效的金鑰並重試。',
com_error_expired_user_key: '提供給 {0} 的金鑰已於 {1} 到期。請提供一個新的金鑰並重試。',
com_files_no_results: '沒有結果。',
com_files_filter: '篩選檔案...',
com_files_number_selected: '已選取 {0} 個檔案,共 {1} 個檔案',
com_sidepanel_select_assistant: '選擇一位助理',
com_sidepanel_parameters: '參數',
com_sidepanel_assistant_builder: '助理建構器',
com_sidepanel_hide_panel: '隱藏側邊選單',
com_sidepanel_attach_files: '附加檔案',
com_sidepanel_manage_files: '管理檔案',
com_sidepanel_conversation_tags: '書籤',
com_assistants_capabilities: '功能',
com_assistants_knowledge: '知識',
com_assistants_knowledge_info: '如果您在「知識」下上傳檔案,與您的助理的對話可能會包含檔案內容。',
com_assistants_knowledge_disabled:
'助理必須先建立,並啟用及儲存「程式碼解譯器」或「資訊檢索」功能,才能上傳檔案作為知識庫。',
com_assistants_image_vision: '影像視覺',
com_assistants_code_interpreter: '程式碼解譯器',
com_assistants_code_interpreter_files: '以下檔案僅適用於程式碼解譯器:',
com_assistants_retrieval: '檢索',
com_assistants_search_name: '搜尋助理名稱',
🚧 chore: merge latest dev build (#4288) * fix: agent initialization, add `collectedUsage` handling * style: improve side panel styling * refactor(loadAgent): Optimize order agent project ID retrieval * feat: code execution * fix: typing issues * feat: ExecuteCode content part * refactor: use local state for default collapsed state of analysis content parts * fix: code parsing in ExecuteCode component * chore: bump agents package, export loadAuthValues * refactor: Update handleTools.js to use EnvVar for code execution tool authentication * WIP * feat: download code outputs * fix(useEventHandlers): type issues * feat: backend handling for code outputs * Refactor: Remove console.log statement in Part.tsx * refactor: add attachments to TMessage/messageSchema * WIP: prelim handling for code outputs * feat: attachments rendering * refactor: improve attachments rendering * fix: attachments, nullish edge case, handle attachments from event stream, bump agents package * fix filename download * fix: tool assignment for 'run code' on agent creation * fix: image handling by adding attachments * refactor: prevent agent creation without provider/model * refactor: remove unnecessary space in agent creation success message * refactor: select first model if selecting provider from empty on form * fix: Agent avatar bug * fix: `defaultAgentFormValues` causing boolean typing issue and typeerror * fix: capabilities counting as tools, causing duplication of them * fix: formatted messages edge case where consecutive content text type parts with the latter having tool_call_ids would cause consecutive AI messages to be created. furthermore, content could not be an array for tool_use messages (anthropic limitation) * chore: bump @librechat/agents dependency to version 1.6.9 * feat: bedrock agents * feat: new Agents icon * feat: agent titling * feat: agent landing * refactor: allow sharing agent globally only if user is admin or author * feat: initial AgentPanelSkeleton * feat: AgentPanelSkeleton * feat: collaborative agents * chore: add potential authorName as part of schema * chore: Remove unnecessary console.log statement * WIP: agent model parameters * chore: ToolsDialog typing and tool related localization chnages * refactor: update tool instance type (latest langchain class), and rename google tool to 'google' proper * chore: add back tools * feat: Agent knowledge files upload * refactor: better verbiage for disabled knowledge * chore: debug logs for file deletions * chore: debug logs for file deletions * feat: upload/delete agent knowledge/file-search files * feat: file search UI for agents * feat: first pass, file search tool * chore: update default agent capabilities and info
2024-09-30 17:17:57 -04:00
com_ui_tools: '工具',
com_assistants_actions: '操作',
com_assistants_add_tools: '新增工具',
com_assistants_add_actions: '新增操作',
com_assistants_available_actions: '可用操作',
com_assistants_running_action: '執行中的動作',
com_assistants_completed_action: '與 {0} 對話完成',
com_assistants_completed_function: '已執行 {0}',
com_assistants_function_use: '助理使用了 {0}',
com_assistants_domain_info: '助理將此資訊傳送給 {0}',
com_assistants_delete_actions_success: '已成功刪除助理的操作',
com_assistants_update_actions_success: '動作已成功建立或更新',
com_assistants_update_actions_error: '更新或建立動作時發生錯誤。',
com_assistants_delete_actions_error: '刪除操作時發生錯誤',
com_assistants_actions_info: '讓您的助理透過 API 取得資訊或執行操作',
com_assistants_name_placeholder: '選填:助理的名稱',
com_assistants_instructions_placeholder: '系統指令是助理使用的提示指令',
com_assistants_description_placeholder: '選填:在此描述您的助理',
com_assistants_actions_disabled: '您需要先建立一個助理,才能新增動作。',
com_assistants_update_success: '更新成功',
com_assistants_update_error: '更新您的助理時發生錯誤。',
com_assistants_create_success: '已成功建立',
com_assistants_create_error: '建立您的助理時發生錯誤。',
com_ui_field_required: '此欄位為必填',
com_ui_download_error: '下載檔案時發生錯誤。該檔案可能已被刪除。',
com_ui_attach_error_type: '不支援的檔案類型,無法上傳至端點:',
com_ui_attach_error_size: '檔案大小超過端點的限制',
com_ui_attach_error: '無法附加檔案。請建立或選擇對話,或嘗試重新整理頁面。',
com_ui_experimental: '實驗性功能',
com_ui_on: '開啟',
com_ui_off: '關閉',
com_ui_yes: '是',
com_ui_no: '否',
com_ui_ascending: '遞增',
com_ui_descending: '遞減',
com_ui_show_all: '顯示全部',
com_ui_name: '名稱',
com_ui_date: '日期',
com_ui_storage: '儲存空間',
com_ui_context: '情境',
com_ui_size: '大小',
com_ui_host: '主機',
com_ui_update: '更新',
com_ui_authentication: '驗證',
com_ui_instructions: '說明',
com_ui_description: '描述',
com_ui_error: '錯誤',
com_ui_select: '選擇',
com_ui_select_search_model: '依名稱搜尋模型',
com_ui_select_search_plugin: '依名稱搜尋外掛程式',
com_ui_stop: '停止',
com_ui_upload_files: '上傳檔案',
com_ui_new_footer: '將所有 AI 對話集中在一處。',
com_ui_none_selected: '未選取任何項目',
com_ui_upload_error: '檔案上傳時發生錯誤',
com_ui_save_submit: '儲存並送出',
com_user_message: '您',
com_ui_fork: '分支',
com_ui_fork_info_1: '使用此設定來分支訊息,以獲得所需的行為。',
com_ui_fork_info_2:
'「分支」是指從目前對話中的特定訊息開始/結束,根據所選的選項建立新對話的副本。',
com_ui_fork_info_3:
'「目標訊息」指的是此彈出視窗所開啟的訊息,或者如果您勾選「{0}」,則是對話中最新的訊息。',
com_ui_fork_info_visible:
'此選項只會分支顯示的訊息,換句話說,只會顯示直接通往目標訊息的路徑,而不會顯示任何分支。',
com_ui_fork_info_branches:
'此選項會分叉可見的訊息,以及相關的分支;換句話說,它包含了通往目標訊息的直接路徑,包括路徑上的所有分支。',
com_ui_fork_info_target:
'這個選項會分叉所有導向目標訊息的訊息,包括其鄰近訊息;換句話說,不論是否可見或在同一路徑上,所有訊息分支都會包含在內。',
com_ui_fork_info_start:
'如果勾選,則從此訊息開始,根據上方選擇的行為,將會分支出一個新的對話直到最新的訊息。',
com_ui_fork_info_remember:
'勾選此項目可記住您選擇的選項,以便日後分支對話時更快速地套用您偏好的設定。',
com_ui_fork_success: '已成功分支對話',
com_ui_fork_processing: '分支對話中...',
com_ui_fork_error: '分支對話時發生錯誤',
com_ui_fork_change_default: '預設分支選項',
com_ui_fork_default: '使用預設分支選項',
com_ui_fork_remember: '記住',
com_ui_fork_split_target_setting: '預設從目標訊息開始分支',
com_ui_fork_split_target: '在此分叉',
com_ui_fork_remember_checked: '您的選擇將在使用後被記住。您可以隨時在設定中更改。',
com_ui_fork_all_target: '包含所有從這裡開始',
com_ui_fork_branches: '包含相關分支',
com_ui_fork_visible: '僅顯示分支訊息',
com_ui_fork_from_message: '選擇分支選項',
com_ui_mention: '提及端點、助理或預設設定以快速切換',
com_ui_import_conversation_file_type_error: '不支援的匯入檔案類型',
com_ui_avatar: '大頭照',
com_ui_unknown: '未知',
com_ui_result: '結果',
com_ui_image_gen: '影像生成',
com_ui_assistant: '助理',
com_ui_assistants: '助理',
com_ui_attachment: '附件',
com_ui_assistants_output: '助理輸出',
com_ui_create: '建立',
com_ui_delete_assistant_confirm: '您確定要刪除這個助理嗎?此操作無法復原。',
com_ui_preview: '預覽',
com_ui_upload: '上傳',
com_ui_connect: '連線',
com_ui_upload_delay: '正在上傳 "{0}" 的過程比預期花費更多時間。請耐心等候檔案完成索引以供檢索。',
com_ui_privacy_policy: '隱私權政策',
com_ui_terms_of_service: '服務條款',
com_ui_min_tags: '無法再移除更多值,至少需要 {0} 個。',
com_ui_max_tags: '允許的最大數量為 {0},已使用最新值。',
com_auth_back_to_login: '返回登入',
com_endpoint_message: '訊息',
com_endpoint_message_not_appendable: '無法附加訊息或重新生成。',
com_endpoint_context_tokens: '最大前後文 token 數',
com_endpoint_context_info:
'可用於上下文的最大 token 數量。用於控制每個請求傳送的 token 數量。如果未指定,將根據已知模型的上下文大小使用系統預設值。設定較高的值可能會導致錯誤和/或更高的 token 成本。',
com_endpoint_instructions_assistants_placeholder:
'覆寫助理的提示指令。這對於在每次執行時修改行為很有用。',
com_endpoint_prompt_prefix_assistants_placeholder:
'在助理的主要提示指令之上設定額外的提示指令或上下文。如果為空白,則會被忽略。',
com_endpoint_prompt_prefix_assistants: '提示字首',
com_endpoint_instructions_assistants: '覆寫提示指令',
com_endpoint_stop: '停止序列',
com_endpoint_stop_placeholder: '以 `Enter` 鍵分隔值',
com_endpoint_openai_max_tokens:
'可選的 `max_tokens` 欄位,代表在對話完成中可以生成的最大 token 數。\n\n輸入 token 和生成 token 的總長度受限於模型的上下文長度。如果此數字超過最大上下文 token 數,您可能會遇到錯誤。',
com_endpoint_openai_resend:
'重新傳送之前所有附加的圖片。注意:這可能會大幅增加 token 成本,如果附加了太多圖片,您可能會遇到錯誤。',
com_endpoint_openai_resend_files:
'重新傳送之前附加的所有檔案。注意:這將增加 token 成本,如果附件過多,您可能會遇到錯誤。',
com_endpoint_openai_detail:
'「低」解析度的視覺請求較便宜且快速,「高」解析度則更詳細但成本較高,而「自動」會根據影像解析度自動在兩者之間選擇。',
com_endpoint_openai_stop: '最多 4 個序列API 將在生成更多 token 時停止。',
com_endpoint_plug_resend_files: '重新傳送檔案',
com_endpoint_plug_resend_images: '重新傳送圖片',
com_endpoint_plug_image_detail: '影像詳細資訊',
com_endpoint_preset_delete_confirm: '您確定要刪除這個預設設定嗎?',
com_endpoint_preset_clear_all_confirm: '您確定要刪除所有的預設設定嗎?',
com_endpoint_preset_import: '預設設定已匯入!',
com_endpoint_preset_import_error: '匯入您的預設設定時發生錯誤。請再試一次。',
com_endpoint_preset_save_error: '儲存您的預設設定時發生錯誤。請再試一次。',
com_endpoint_preset_delete_error: '刪除您的預設設定時發生錯誤。請重試。',
com_endpoint_preset_default_removed: '不再是預設設定',
com_endpoint_preset_default_item: '預設值',
com_endpoint_preset_default_none: '無啟用的預設設定。',
com_endpoint_preset_title: '預設項目',
com_endpoint_preset_saved: '已儲存!',
com_endpoint_preset_default: '現在是預設的預設設定。',
com_endpoint_preset_selected: '已選擇預設設定!',
com_endpoint_preset_selected_title: '已選取!',
com_endpoint_assistant: '助理',
com_endpoint_use_active_assistant: '使用活躍助理',
com_endpoint_assistant_model: 'AI 模型',
com_endpoint_assistant_placeholder: '請從右側面板選擇一位助理',
com_endpoint_config_placeholder: '在標頭選單中設定您的金鑰以開始對話。',
com_endpoint_config_click_here: '點此',
com_endpoint_config_google_service_key: 'Google 服務帳戶金鑰',
com_endpoint_config_google_cloud_platform: 'Google 雲端平臺設定',
com_endpoint_config_google_api_key: 'Google API 金鑰',
com_endpoint_config_google_gemini_api: 'Google Gemini API 設定',
com_endpoint_config_google_api_info: '要取得 Generative Language API 金鑰(適用於 Gemini',
com_nav_welcome_assistant: '請選擇一位助理',
com_nav_welcome_message: '您今天有什麼需要我協助的嗎?',
com_nav_hide_panel: '隱藏最右側的面板',
com_nav_modular_chat: '允許在對話中途切換端點',
com_nav_latex_parsing: '解析訊息中的 LaTeX 內容(可能影響效能)',
com_nav_profile_picture: '個人頭像',
com_nav_change_picture: '更換圖片',
com_nav_plugin_install: '安裝',
com_nav_plugin_uninstall: '解除安裝',
💬 feat: assistant conversation starter (#3699) * feat: initial UI convoStart * fix: ConvoStarter UI * fix: convoStarters bug * feat: Add input field focus on conversation starters * style: conversation starter UI update * feat: apply fixes for starters * style: update conversationStarters UI and fixed typo * general UI update * feat: Add onClick functionality to ConvoStarter component * fix: quick fix test * fix(AssistantSelect): remove object check * fix: updateAssistant `conversation_starters` var * chore: remove starter autofocus * fix: no empty conversation starters, always show input, use Constants value for max count * style: Update defaultTextPropsLabel styles, for a11y placeholder * refactor: Update ConvoStarter component styles and class names for a11y and theme * refactor: convostarter, move plus button to within persistent element * fix: types * chore: Update landing page assistant description styling with theming * chore: assistant types * refactor: documents routes * refactor: optimize conversation starter mutations/queries * refactor: Update listAllAssistants return type to Promise<Array<Assistant>> * feat: edit existing starters * feat(convo-starters): enhance ConvoStarter component and add animations - Update ConvoStarter component styling for better visual appeal - Implement fade-in animation for smoother appearance - Add hover effect with background color change - Improve text overflow handling with line-clamp and text-balance - Ensure responsive design for various screen sizes * feat(assistant): add conversation starters to assistant builder - Add localization strings for conversation starters - Update mobile.css with shake animation for max starters reached - Enhance user experience with tooltips and dynamic input handling * refactor: select specific fields for assistant documents fetch * refactor: remove endpoint query key, fetch all assistant docs for now, add conversation_starters to v1 methods * refactor: add document filters based on endpoint config * fix: starters not applied during creation * refactor: update AssistantSelect component to handle undefined lastSelectedModels --------- Co-authored-by: Danny Avila <danny@librechat.ai>
2024-08-31 13:42:20 -04:00
com_ui_add: '新增',
com_nav_tool_remove: '移除',
com_nav_tool_dialog: 'AI 工具',
com_nav_tool_dialog_description: '必須儲存 Assistant 才能保留工具選擇。',
com_show_agent_settings: '顯示代理設定',
com_show_completion_settings: '顯示完成設定',
com_hide_examples: '隱藏範例',
com_show_examples: '顯示範例',
com_nav_tool_search: '搜尋工具',
com_nav_my_files: '我的檔案',
com_nav_enter_to_send: '按 Enter 鍵傳送訊息',
com_nav_user_name_display: '在訊息中顯示使用者名稱',
com_nav_save_drafts: '儲存本機草稿',
com_nav_show_code: '一律顯示使用程式碼解譯器時的程式碼',
com_nav_setting_beta: '測試功能',
com_nav_setting_account: '帳號',
com_nav_language: '語言',
com_nav_lang_auto: '自動偵測',
com_nav_lang_english: '英文',
com_nav_lang_chinese: '中文',
com_nav_lang_german: '德語',
com_nav_lang_spanish: '西班牙語',
com_nav_lang_french: '法語',
com_nav_lang_italian: '義大利文',
com_nav_lang_polish: '波蘭文',
com_nav_lang_brazilian_portuguese: '葡萄牙語(巴西)',
com_nav_lang_russian: 'Русский',
com_nav_lang_japanese: '日本語',
com_nav_lang_swedish: '瑞典語',
com_nav_lang_korean: '한국어',
com_nav_lang_vietnamese: '越南語',
com_nav_lang_traditionalchinese: '繁體中文',
com_nav_lang_arabic: '阿拉伯語',
com_nav_lang_turkish: 'Türkçe',
com_nav_lang_dutch: '荷蘭文',
com_nav_lang_indonesia: '印尼語',
com_nav_lang_hebrew: 'עברית',
};
export const comparisons = {
com_ui_examples: {
english: 'Examples',
translated: '範例',
},
com_ui_new_chat: {
english: 'New chat',
translated: '新對話',
},
com_ui_happy_birthday: {
english: 'It\'s my 1st birthday!',
translated: '這是我的第一個生日!',
},
com_ui_example_quantum_computing: {
english: 'Explain quantum computing in simple terms',
translated: '用簡單的方式解釋量子計算',
},
com_ui_example_10_year_old_b_day: {
english: 'Got any creative ideas for a 10 year old\'s birthday?',
translated: '有沒有創意十足的十歲生日派對點子?',
},
com_ui_example_http_in_js: {
english: 'How do I make an HTTP request in Javascript?',
translated: '如何在 JavaScript 中發起 HTTP 請求?',
},
com_ui_capabilities: {
english: 'Capabilities',
translated: '功能',
},
com_ui_capability_remember: {
english: 'Remembers what user said earlier in the conversation',
translated: '能記得先前在對話中提到的內容',
},
com_ui_capability_correction: {
english: 'Allows user to provide follow-up corrections',
translated: '允許使用者提供後續的修正',
},
com_ui_capability_decline_requests: {
english: 'Trained to decline inappropriate requests',
translated: '訓練有素以拒絕不適當的請求',
},
com_ui_limitations: {
english: 'Limitations',
translated: '限制',
},
com_ui_limitation_incorrect_info: {
english: 'May occasionally generate incorrect information',
translated: '有時可能會產生不正確的資訊',
},
com_ui_limitation_harmful_biased: {
english: 'May occasionally produce harmful instructions or biased content',
translated: '有時可能會產生有害的指示或帶有偏見的內容',
},
com_ui_limitation_limited_2021: {
english: 'Limited knowledge of world and events after 2021',
translated: '對於 2021 年後的世界和事件的知識有限',
},
com_ui_input: {
english: 'Input',
translated: '輸入',
},
com_ui_close: {
english: 'Close',
translated: '關閉',
},
com_ui_model: {
english: 'Model',
translated: '模型',
},
com_ui_select_model: {
english: 'Select a model',
translated: '選擇模型',
},
com_ui_use_prompt: {
english: 'Use prompt',
translated: '使用提示',
},
com_ui_prev: {
english: 'Prev',
translated: '上一個',
},
com_ui_next: {
english: 'Next',
translated: '下一個',
},
com_ui_prompt_templates: {
english: 'Prompt Templates',
translated: '提示範本',
},
com_ui_hide_prompt_templates: {
english: 'Hide Prompt Templates',
translated: '隱藏提示範本',
},
com_ui_showing: {
english: 'Showing',
translated: '顯示',
},
com_ui_of: {
english: 'of',
translated: '的',
},
com_ui_entries: {
english: 'Entries',
translated: '條目',
},
com_ui_pay_per_call: {
english: 'All AI conversations in one place. Pay per call and not per month',
translated: '將所有 AI 對話都在集中在一處,按用量付費而非固定月費',
},
com_ui_enter: {
english: 'Enter',
translated: '輸入',
},
com_ui_submit: {
english: 'Submit',
translated: '送出',
},
com_ui_upload_success: {
english: 'Successfully uploaded file',
translated: '檔案上傳成功',
},
com_ui_upload_invalid: {
english: 'Invalid file for upload. Must be an image not exceeding 2 MB',
translated: '上傳檔案無效',
},
com_ui_cancel: {
english: 'Cancel',
translated: '取消',
},
com_ui_save: {
english: 'Save',
translated: '儲存',
},
com_ui_copy_to_clipboard: {
english: 'Copy to clipboard',
translated: '複製到剪貼簿',
},
com_ui_copied_to_clipboard: {
english: 'Copied to clipboard',
translated: '已複製到剪貼簿',
},
com_ui_regenerate: {
english: 'Regenerate',
translated: '重新生成',
},
com_ui_continue: {
english: 'Continue',
translated: '繼續',
},
com_ui_edit: {
english: 'Edit',
translated: '編輯',
},
com_ui_success: {
english: 'Success',
translated: '成功',
},
com_ui_all: {
english: 'all',
translated: '全部',
},
com_ui_clear: {
english: 'Clear',
translated: '清除',
},
com_ui_revoke: {
english: 'Revoke',
translated: '撤銷',
},
com_ui_revoke_info: {
english: 'Revoke all user provided credentials',
translated: '撤銷所有使用者提供的憑證。',
},
com_ui_import_conversation: {
english: 'Import',
translated: '匯入',
},
com_ui_import_conversation_info: {
english: 'Import conversations from a JSON file',
translated: '從 JSON 文件匯入對話',
},
com_ui_import_conversation_success: {
english: 'Conversations imported successfully',
translated: '對話匯入成功',
},
com_ui_import_conversation_error: {
english: 'There was an error importing your conversations',
translated: '匯入對話時發生錯誤',
},
com_ui_confirm_action: {
english: 'Confirm Action',
translated: '確認操作',
},
com_ui_chats: {
english: 'chats',
translated: '對話',
},
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share: {
english: 'Share',
translated: '分享',
},
com_ui_copy_link: {
english: 'Copy link',
translated: '複製連結',
},
com_ui_update_link: {
english: 'Update link',
translated: '更新連結',
},
com_ui_create_link: {
english: 'Create link',
translated: '建立連結',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_share_link_to_chat: {
english: 'Share link to chat',
translated: '分享連結到聊天',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_share_retrieve_error: {
english: 'There was an error deleting the shared link.',
translated: '刪除共享連結時發生錯誤。',
},
com_ui_share_delete_error: {
english: 'There was an error deleting the shared link.',
translated: '刪除共享連結時發生錯誤。',
},
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share_error: {
english: 'There was an error sharing the chat link',
translated: '分享聊天連結時發生錯誤',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_share_create_message: {
english: 'Your name and any messages you add after sharing stay private.',
translated: '您的姓名以及您在共享後新增的任何訊息都會保密。',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_share_created_message: {
english:
'A shared link to your chat has been created. Manage previously shared chats at any time via Settings.',
translated: '已建立到您的聊天的共享連結。可以隨時透過設定管理以前共享的聊天。',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_share_update_message: {
english: 'Your name, custom instructions, and any messages you add after sharing stay private.',
translated: '您的姓名、自訂提示指令以及您在共享後新增的任何訊息都會保密。',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_share_updated_message: {
english:
'A shared link to your chat has been updated. Manage previously shared chats at any time via Settings.',
translated: '已更新到您的聊天的共享連結。可以隨時透過設定管理以前共享的聊天。',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_shared_link_not_found: {
english: 'Shared link not found',
translated: '未找到共享連結',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_ui_delete: {
english: 'Delete',
translated: '刪除',
},
com_ui_delete_conversation: {
english: 'Delete chat?',
translated: '刪除對話?',
},
🗨️ feat: Prompts (#3131) * 🗨️ feat: Prompts (#7) * WIP: MERGE prompts/frontend (#1) * added schema for prompt and promptgroup, added model methods for prompts, added routes for prompts * * updated promptGroup Schema * updated model methods for prompts (get, add, delete) * slight fixes in prompt routes * * Created Files Management components * Created Vector Stores components * Added file management route in the routes folder * Completed UI for Files list, Compeleted UI for vector stores list, Completed UI for upload file modal, Completed UI for preview file, Completed UI for preview vector store * Fixed style and UI fixes for file dashboard, file list and vector stores list * added responsiveness classes for vector store page * fixed responsiveness of file page, dashboard page, and main page * fixed styling and responsiveness issues on dashboard page, file list page and vector store page * added queries and mutations for prompts and promptGroups, added relevant endpoints in data-provider, added relevant components prompts, added and updated relevant APIs * added types on mutation queries data service, updated prompt attributes * feature: Prompts and prompt groups management, added relevant APIs, added types for data service/queries/mutations, added relevant mutation and queries * chore: typing clarifications * added drop down on prompts mgmt dashboard * Fixes: fixed version switching issue on tags update or labels update, added cross button on create prompt group, fixed list updation on prompt group renaiming, added CSV upload button * Feature: Added oneliner and category attributes in prompt group, added schema for categories, added schema methods and route for categories * chore: typing and lint issues * chore: more type and linter fixes * chore: linting * chore: prompt controller and backend typing example; MOVE TO CONTROLLER DIRECTORY * chore: more type fixes * style: prompt name changes * chore: more type changes, and stateful prompt name change without flickering * fix: Return result of savePrompt in patchPrompt API endpoint * fix: navigation prompt queries; refactor: name 'prompt-groups' to just 'groups' * refactor: fetch prompt groups rewrite * refactor(prompts): query/mutation statefulness * refactor: remove `isActive` field * refactor: remove labels, consolidate logic * style: width, layout shift * refactor: improve hover toggle behavior and styling * refactor: add useParams hook to PromptListItem for dynamic rendering and add timeout ref for blur timeout * chore: hide upload button * refactor: import Button component from correct location in PromptSidePanel * style: prompt editor styling * style: fix more layout shifts * style: container scroll * refactor: Rename CreatePrompt component to CreatePromptForm * refactor: use react-hook-form * refactor: Add Prompts components and routes to Dashboard * style: skeletons for loading * fix: optimize makePromptProduction * refactor: consolidate variables * feat: create prompt form validation * refactor: Consolidate variables and update mutation hooks * style: minor touchups * chore: Update lucide-react npm dependency to version 0.394.0 and npm audit fix * refactor: add a new icon for the Prompts heading. * style: Update PromptsView heading to use h1 instead of h2 and other minor margin issues * chore: wording * refactor: Update PromptsView heading to use h1 instead of h2, consolidate variables, and add new icons * refactor: Prompts Button for Mobile * feature: added category field in prompt group, added relevant API and static data on BE to support FE UI for category in prompt group * chore: template for prompt cards --------- Co-authored-by: Fawadpot <contactfawada@gmail.com> * WIP: Prompts/frontend Continued (#2) * chore: loading style, remove unused component * feat: Add CategorySelector component for prompt group category selection * feat: add categories to create prompt * feat: prompt versions styling * feat: optimistic updates for prompt production state * refactor: optimize form state and show if prompt field is dirty with cross icon, also other styling changes * chore: remove unused code and localizations * fix: light mode styling * WIP: SidePanel Prompts * refactor: move to groups directory * refactor: rename GroupsSidePanel to GroupSidePanel and update imports * style: ListCard * refactor: isProduction changes * refactor: infinite query with productionPrompt * refactor: optimize snippets and prompts, and styling * refactor: Update getSnippet function to accept a length parameter * chore: localizations * feat: prompts navigation to chat and vice versa * fix: create prompt * feat: remember last selected category for creating prompts * fix(promptGroups): fix pagination and add usePromptGroupsNav hook * Prompts/frontend 3 (#3) * fix: stateful issues with prompt groups * style: improved layout * refactor: improve variable naming in Eng.ts * refactor: theme selector styling improvements * added prompt cards on chat new page, with dark mode, added API to fetch random prompts, added types for useQuery Slightly improved usePromptGroupNav logic to fetch updated result for pageSize, updated prompt cards view with darkmode and responsiveness fixed page size option buttons styling to match the theme added dark mode on create prompt page and prompt edit/preview page fixed page size option buttons styling to match the theme added dark mode on create prompt page and prompt edit/preview page * WIP: Prompts/frontend (#4) * fix: optimize and fix paginated query * fix: remove unique constraint on names * refactor: button links and styling * style: menu border light mode * feat: Add Auto-Send Switch component for prompts groups * refactor(ChatView): use form context for submission text * chore: clear convo state on navigation to dashboard routes * chore: save prompt edit name on tab, remove console log * feat: basic prompt submission * refactor: move Auto-Send Switch * style(ListCard): border styling * feat: Add function to detect variables in text * feat: Add OriginalDialog component to UI library * chore(ui): Update SelectDropDown options list class to use text-xs size * refactor: submitMessage hook now includes submitPrompt, make compatible to document query selector * WIP: Variable Dialog * feat: variable submission working for both auto-send and non-autosend * feat: dashboard breadcrumbs and prompts/chat navigation * refactor: dashboard breadcrumb and dashboard link to chat navigation * refactor: Update VariableDialog and VariableForm styles * Prompts: Admin features (#5) * fix: link issue * fix: usePromptGroupsNav add missing dep. * style: dashbreadcrumb and sidepanel text color * temp fix: remove refetch on pageNumber change * fix: handle multiple variable replacement * WIP: create project schema and add project groups to fetch * feat: Add functionality to add prompt group IDs to a project * feat: Add caching for startup config in config route * chore: remove prompt landing * style: Update Skeleton component with additional background styling * chore: styling and types * WIP: SharePrompt first draft * feat(SharePrompt): form validation * feat: shared global indicators * refactor: prompt details * refactor: change NoPromptGroup directory * feat: preview prompt * feat: remove/add global prompts, add rbac-related enums * refactor: manage prompts location * WIP: first draft admin settings for prompts * feat: SystemRoles enum * refactor: update PromptDetails component styling * style: ellipsis custom class for showing more preview text * WIP: initial role schema and initialization * style: improved margins for single unordered lists * fix: use custom chat form context to prevent re-renders from FormProvider * feat: Role mutations for Prompt Permissions * feat: fetch user role * feat: update AdminSettings form default values from user role values * refactor: rename PromptPermissions to Permissions for general definitions * feat: initial role checks * feat: Add optional `bodyProps` parameter to generateCheckAccess middleware * refactor: UI access checks * Prompts: delete (#6) * Fixed delete prompt version API, fixed types and logic for prompt version deletion, updated prompt delete mutation logic * chore: Update return type of deletePrompt function in Prompt.js --------- Co-authored-by: Fawadpot <contactfawada@gmail.com> * chore: Update package-lock.json version to 0.7.4-rc1 and fast-xml-parser to 4.4.0 * feat: toast for saving admin settings, add timer no-access navigation * feat: always make prod * feat: Add localization to category labels in CategorySelector component * feat: Update category label localization in CategorySelector component * fix: Enable making prompt production in Prompt API --------- Co-authored-by: Fawadpot <contactfawada@gmail.com> * feat: Add helper fn for dark mode detection in ThemeProvider * style: surface-primary definition * fix(useHasAccess): utilize user.role and not just USER role * fix: empty category and role fetch * refactort: increase max height to options list and use label if no localization is found * fix: update CategorySelector to handle empty category value and improve localization * refactor: move prompts to own store/reactquery modules, add in filter WIP * refactor: Rename AutoSendSwitch to AutoSendPrompt * style: theming commit * style: fix slight coloring issue for convos in dark mode * style: better composition for prompts side panel * style: remove gray-750 and make it gray-850 * chore: adjust theming * feat: filter all prompt groups and properly remove prompts from projects * refactor: optimize delete prompt groups further * chore: localization * feat: Add uniqueProperty filtering to normalizeData function * WIP: filter prompts * chore: Update FilterPrompts component to include User icon in FilterItem * feat(FilterPrompts): set categories * feat: more system filters and show selected category icon * style: always make prod, flips switch to avoid mis-clicks * style: ui/ux loading/no prompts * chore: style FilterPrompts ChatView * fix: handle missing role edge case * style: special variables * feat: special variables * refactor: improve replaceSpecialVars function in prompts.ts * feat: simple/advanced editor modes * chore: bump versions * feat: localizations and hide production button on simple mode * fix: error connecting layout shift * fix: prompts CRUD for admins * fix: secure single group fetch * style: sidepanel styling * style(PromptName): bring edit button closer to name * style: mobile prompts header * style: mobile prompts header continued * style: align send prompts switch right * feat: description * Update special variables description in Eng.ts * feat: update/create/preview oneliner * fix: allow empty oneliner update * style: loading improvement and always make selected prompt Production if simple mode * fix: production index set and remove unused props * fix(ci): mock initializeRoles * fix: address #3128 * fix: address #3128 * feat: add deletion confirmation dialog * fix: mobile UI issues * style: prompt library UI update * style: focus, logcal tab order * style: Refactor SelectDropDown component to improve code readability and maintainability * chore: bump data-provider * chore: fix labels * refactor: confirm delete prompt version --------- Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
2024-06-20 20:24:32 -04:00
com_ui_delete_confirm: {
english: 'This will delete',
translated: '這將刪除',
},
com_ui_rename: {
english: 'Rename',
translated: '重新命名',
},
com_ui_archive: {
english: 'Archive',
translated: '封存',
},
com_ui_archive_error: {
english: 'Failed to archive conversation',
translated: '封存對話時發生錯誤',
},
com_ui_unarchive: {
english: 'Unarchive',
translated: '取消封存',
},
com_ui_unarchive_error: {
english: 'Failed to unarchive conversation',
translated: '取消封存對話時發生錯誤',
},
com_ui_more_options: {
english: 'More',
translated: '更多',
},
com_ui_bookmarks: {
english: 'Bookmarks',
translated: '書籤',
},
com_ui_bookmarks_rebuild: {
english: 'Rebuild',
translated: '重建',
},
com_ui_bookmarks_new: {
english: 'New Bookmark',
translated: '新書籤',
},
com_ui_bookmark_delete_confirm: {
english: 'Are you sure you want to delete this bookmark?',
translated: '你確定要刪除這個書籤嗎?',
},
com_ui_bookmarks_title: {
english: 'Title',
translated: '標題',
},
com_ui_bookmarks_count: {
english: 'Count',
translated: '計數',
},
com_ui_bookmarks_description: {
english: 'Description',
translated: '描述',
},
com_ui_bookmarks_create_success: {
english: 'Bookmark created successfully',
translated: '書籤創建成功',
},
com_ui_bookmarks_update_success: {
english: 'Bookmark updated successfully',
translated: '書籤更新成功',
},
com_ui_bookmarks_delete_success: {
english: 'Bookmark deleted successfully',
translated: '書籤刪除成功',
},
com_ui_bookmarks_create_error: {
english: 'There was an error creating the bookmark',
translated: '創建書籤時出錯',
},
com_ui_bookmarks_update_error: {
english: 'There was an error updating the bookmark',
translated: '更新書籤時出錯',
},
com_ui_bookmarks_delete_error: {
english: 'There was an error deleting the bookmark',
translated: '刪除書籤時出錯',
},
com_ui_bookmarks_add_to_conversation: {
english: 'Add to current conversation',
translated: '添加到當前對話',
},
com_auth_error_login: {
english:
'Unable to login with the information provided. Please check your credentials and try again.',
translated: '無法使用提供的資訊登入。請檢查您的登入資訊後重試。',
},
com_auth_error_login_rl: {
english: 'Too many login attempts in a short amount of time. Please try again later.',
translated: '短時間內嘗試登入的次數過多。請稍後再試。',
},
com_auth_error_login_ban: {
english: 'Your account has been temporarily banned due to violations of our service.',
translated: '由於違反我們的服務條款,您的帳號已被暫時停用。',
},
com_auth_error_login_server: {
english: 'There was an internal server error. Please wait a few moments and try again.',
translated: '發生內部伺服器錯誤。請稍候片刻,然後重試。',
},
com_auth_no_account: {
english: 'Don\'t have an account?',
translated: '還沒有帳號?',
},
com_auth_sign_up: {
english: 'Sign up',
translated: '註冊',
},
com_auth_sign_in: {
english: 'Sign in',
translated: '登入',
},
com_auth_google_login: {
english: 'Continue with Google',
translated: '使用 Google 登入',
},
com_auth_facebook_login: {
english: 'Continue with Facebook',
translated: '使用 Facebook 登入',
},
com_auth_github_login: {
english: 'Continue with Github',
translated: '使用 GitHub 登入',
},
com_auth_discord_login: {
english: 'Continue with Discord',
translated: '使用 Discord 登入',
},
com_auth_email: {
english: 'Email',
translated: '電子郵件',
},
com_auth_email_required: {
english: 'Email is required',
translated: '電子郵件必填',
},
com_auth_email_min_length: {
english: 'Email must be at least 6 characters',
translated: '電子郵件長度必須至少有 6 個字元',
},
com_auth_email_max_length: {
english: 'Email should not be longer than 120 characters',
translated: '電子郵件不應超過 120 個字元',
},
com_auth_email_pattern: {
english: 'You must enter a valid email address',
translated: '您必須輸入有效的電子郵件地址',
},
com_auth_email_address: {
english: 'Email address',
translated: '電子郵件地址',
},
com_auth_password: {
english: 'Password',
translated: '密碼',
},
com_auth_password_required: {
english: 'Password is required',
translated: '密碼必填',
},
com_auth_password_min_length: {
english: 'Password must be at least 8 characters',
translated: '密碼長度必須至少有 8 個字元',
},
com_auth_password_max_length: {
english: 'Password must be less than 128 characters',
translated: '密碼長度必須少於 128 個字元',
},
com_auth_password_forgot: {
english: 'Forgot Password?',
translated: '忘記密碼?',
},
com_auth_password_confirm: {
english: 'Confirm password',
translated: '確認密碼',
},
com_auth_password_not_match: {
english: 'Passwords do not match',
translated: '密碼不符',
},
com_auth_continue: {
english: 'Continue',
translated: '繼續',
},
com_auth_create_account: {
english: 'Create your account',
translated: '建立您的帳號',
},
com_nav_auto_scroll: {
english: 'Auto-Scroll to latest message on chat open',
translated: '開啟時自動捲動至最新內容',
},
com_auth_error_create: {
english: 'There was an error attempting to register your account. Please try again.',
translated: '嘗試註冊您的帳號時發生錯誤。請重試。',
},
com_auth_full_name: {
english: 'Full name',
translated: '全名',
},
com_auth_name_required: {
english: 'Name is required',
translated: '名稱必填',
},
com_auth_name_min_length: {
english: 'Name must be at least 3 characters',
translated: '名稱長度必須至少有 3 個字元',
},
com_auth_name_max_length: {
english: 'Name must be less than 80 characters',
translated: '名稱長度長度必須少於 80 個字元',
},
com_auth_username: {
english: 'Username (optional)',
translated: '使用者名稱(選填)',
},
com_auth_username_required: {
english: 'Username is required',
translated: '使用者名稱必填',
},
com_auth_username_min_length: {
english: 'Username must be at least 2 characters',
translated: '使用者名稱長度必須至少有 2 個字元',
},
com_auth_username_max_length: {
english: 'Username must be less than 20 characters',
translated: '使用者名稱長度必須少於 20 個字元',
},
com_auth_already_have_account: {
english: 'Already have an account?',
translated: '已經有帳號了?',
},
com_auth_login: {
english: 'Login',
translated: '登入',
},
com_auth_reset_password: {
english: 'Reset your password',
translated: '重設密碼',
},
com_auth_click: {
english: 'Click',
translated: '點選',
},
com_auth_here: {
english: 'HERE',
translated: '這裡',
},
com_auth_to_reset_your_password: {
english: 'to reset your password.',
translated: '重設您的密碼。',
},
com_auth_reset_password_link_sent: {
english: 'Email Sent',
translated: '電子郵件已傳送',
},
com_auth_reset_password_email_sent: {
english: 'An email has been sent to you with further instructions to reset your password.',
translated: '已向您傳送電子郵件,其中包含進一步重設密碼的操作說明。',
},
com_auth_error_reset_password: {
english:
'There was a problem resetting your password. There was no user found with the email address provided. Please try again.',
translated: '重設密碼時出現問題。找不到使用提供的電子郵件地址的使用者。請重試。',
},
com_auth_reset_password_success: {
english: 'Password Reset Success',
translated: '密碼重設成功',
},
com_auth_login_with_new_password: {
english: 'You may now login with your new password.',
translated: '您現在可以使用新密碼登入。',
},
com_auth_error_invalid_reset_token: {
english: 'This password reset token is no longer valid.',
translated: '此密碼重設令牌已無效。',
},
com_auth_click_here: {
english: 'Click here',
translated: '點選這裡',
},
com_auth_to_try_again: {
english: 'to try again.',
translated: '重試。',
},
com_auth_submit_registration: {
english: 'Submit registration',
translated: '送出',
},
com_auth_welcome_back: {
english: 'Welcome back',
translated: '歡迎回來',
},
com_endpoint_open_menu: {
english: 'Open Menu',
translated: '開啟選單',
},
com_endpoint_bing_enable_sydney: {
english: 'Enable Sydney',
translated: 'Sydney',
},
com_endpoint_bing_to_enable_sydney: {
english: 'To enable Sydney',
translated: '啟用 Sydney',
},
com_endpoint_bing_jailbreak: {
english: 'Jailbreak',
translated: '越獄',
},
com_endpoint_bing_context_placeholder: {
english:
'Bing can use up to 7k tokens for \'context\', which it can reference for the conversation. The specific limit is not known but may run into errors exceeding 7k tokens',
translated:
'Bing 可以使用多達 7k 個 token 作為「前後文」,並在對話中引用。具體限制不詳,但可能會在超過 7k token 時出現錯誤',
},
com_endpoint_bing_system_message_placeholder: {
english:
'WARNING: Misuse of this feature can get you BANNED from using Bing! Click on \'System Message\' for full instructions and the default message if omitted, which is the \'Sydney\' preset that is considered safe.',
translated:
'警告:不當使用此功能可能會導致您被禁止使用 Bing如需完整指引和預設訊息若未設定請點選「系統訊息」這是被認為安全的「Sydney」預設值。',
},
com_endpoint_system_message: {
english: 'System Message',
translated: '系統訊息',
},
com_endpoint_default_blank: {
english: 'default: blank',
translated: '預設:空白',
},
com_endpoint_default_false: {
english: 'default: false',
translated: '預設:否',
},
com_endpoint_default_creative: {
english: 'default: creative',
translated: '預設:創意',
},
com_endpoint_default_empty: {
english: 'default: empty',
translated: '預設:空',
},
com_endpoint_default_with_num: {
english: 'default: {0}',
translated: '預設:{0}',
},
com_endpoint_context: {
english: 'Context',
translated: '前後文',
},
com_endpoint_tone_style: {
english: 'Tone Style',
translated: '語氣風格',
},
com_endpoint_token_count: {
english: 'Token count',
translated: 'token 數量',
},
com_endpoint_output: {
english: 'Output',
translated: '輸出',
},
com_endpoint_google_temp: {
english:
'Higher values = more random, while lower values = more focused and deterministic. We recommend altering this or Top P but not both.',
translated:
'較高的值表示更隨機,而較低的值表示更集中和確定。我們建議修改這個或 Top P但不建議兩者都修改。',
},
com_endpoint_google_topp: {
english:
'Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value.',
translated:
'Top-p 調整模型在輸出 token 時的選擇機制。從最可能的 K見 topK 參數)開始選擇 token直到它們的機率之和達到 top-p 值。',
},
com_endpoint_google_topk: {
english:
'Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model\'s vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature).',
translated:
'Top-k 調整模型如何選取輸出的 token。當 Top-k 設為 1 時,模型會選取在其詞彙庫中機率最高的 token 進行輸出(這也被稱為貪婪解碼)。相對地,當 Top-k 設為 3 時,模型會從機率最高的三個 token 中選取下一個輸出 token這會涉及到所謂的「溫度」調整',
},
com_endpoint_google_maxoutputtokens: {
english:
' \tMaximum number of tokens that can be generated in the response. Specify a lower value for shorter responses and a higher value for longer responses.',
translated:
'設定回應中可生成的最大 token 數。若希望回應簡短,請設定較低的數值;若需較長的回應,則設定較高的數值。',
},
com_endpoint_google_custom_name_placeholder: {
english: 'Set a custom name for Google',
translated: '為 Google 設定自訂名稱',
},
com_endpoint_prompt_prefix_placeholder: {
english: 'Set custom instructions or context. Ignored if empty.',
translated: '設定自訂提示或前後文。如果為空則忽略。',
},
com_endpoint_custom_name: {
english: 'Custom Name',
translated: '自訂名稱',
},
com_endpoint_prompt_prefix: {
english: 'Custom Instructions',
translated: '提示起始字串',
},
com_endpoint_temperature: {
english: 'Temperature',
translated: '溫度',
},
com_endpoint_default: {
english: 'default',
translated: '預設',
},
com_endpoint_top_p: {
english: 'Top P',
translated: 'Top P',
},
com_endpoint_top_k: {
english: 'Top K',
translated: 'Top K',
},
com_endpoint_max_output_tokens: {
english: 'Max Output Tokens',
translated: '最大輸出 token 數',
},
com_endpoint_openai_temp: {
english:
'Higher values = more random, while lower values = more focused and deterministic. We recommend altering this or Top P but not both.',
translated:
'較高的值表示更隨機,而較低的值表示更集中和確定。我們建議修改這個或 Top P但不建議兩者都修改。',
},
com_endpoint_openai_max: {
english:
'The max tokens to generate. The total length of input tokens and generated tokens is limited by the model\'s context length.',
translated: '要生成的最大 token 數。輸入 token 和生成 token 的總長度受到模型前後文長度的限制。',
},
com_endpoint_openai_topp: {
english:
'An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We recommend altering this or temperature but not both.',
translated:
'與溫度取樣的替代方法,稱為核心取樣,其中模型考慮 top_p 機率質量的 token 結果。所以 0.1 表示只考慮佔 top 10% 機率質量的 token 。我們建議修改這個或溫度,但不建議兩者都修改。',
},
com_endpoint_openai_freq: {
english:
'Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model\'s likelihood to repeat the same line verbatim.',
translated:
'數值範圍介於 -2.0 和 2.0 之間。正值會根據該 token 在目前的文字中出現的頻率進行懲罰,減少模型產生重複內容的可能性。',
},
com_endpoint_openai_pres: {
english:
'Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model\'s likelihood to talk about new topics.',
translated:
'數值範圍介於 -2.0 和 2.0 之間。正值會根據該 token 是否在目前的文字中出現來進行懲罰,增加模型談及新主題的可能性。',
},
com_endpoint_openai_custom_name_placeholder: {
english: 'Set a custom name for the AI',
translated: '為 ChatGPT 設定自訂名稱',
},
com_endpoint_openai_prompt_prefix_placeholder: {
english: 'Set custom instructions to include in System Message. Default: none',
translated: '在系統訊息中設定自訂提示。',
},
com_endpoint_anthropic_temp: {
english:
'Ranges from 0 to 1. Use temp closer to 0 for analytical / multiple choice, and closer to 1 for creative and generative tasks. We recommend altering this or Top P but not both.',
translated:
'範圍從 0 到 1。對於分析/多選題,使用接近 0 的溫度,對於創意和生成式任務,使用接近 1 的溫度。我們建議修改這個或 Top P但不建議兩者都修改。',
},
com_endpoint_anthropic_topp: {
english:
'Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value.',
translated:
'Top-p 改變模型選擇輸出 token 的方式。從最可能的 K見 topK 參數)開始選擇 token直到它們的機率之和達到 top-p 值。',
},
com_endpoint_anthropic_topk: {
english:
'Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model\'s vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature).',
translated:
'Top-k 改變模型選擇輸出 token 的方式。Top-k 為 1 表示所選 token 在模型詞彙表中所有 token 中最可能(也稱為貪婪解碼),而 Top-k 為 3 表示下一個 token 從最可能的 3 個 token 中選擇(使用溫度)。',
},
com_endpoint_anthropic_maxoutputtokens: {
english:
'Maximum number of tokens that can be generated in the response. Specify a lower value for shorter responses and a higher value for longer responses.',
translated:
'設定回應中可生成的最大 token 數。若希望回應簡短,請設定較低的數值;若需較長的回應,則設定較高的數值。',
},
com_endpoint_anthropic_custom_name_placeholder: {
english: 'Set a custom name for Anthropic',
translated: '為 Anthropic 設定自訂名稱',
},
com_endpoint_frequency_penalty: {
english: 'Frequency Penalty',
translated: '頻率懲罰',
},
com_endpoint_presence_penalty: {
english: 'Presence Penalty',
translated: '出現懲罰',
},
com_endpoint_plug_use_functions: {
english: 'Use Functions',
translated: '使用外掛作為 OpenAI 函式',
},
com_endpoint_plug_skip_completion: {
english: 'Skip Completion',
translated: '跳過完成步驟',
},
com_endpoint_disabled_with_tools: {
english: 'disabled with tools',
translated: '與工具一起停用',
},
com_endpoint_disabled_with_tools_placeholder: {
english: 'Disabled with Tools Selected',
translated: '選擇工具時停用',
},
com_endpoint_plug_set_custom_instructions_for_gpt_placeholder: {
english: 'Set custom instructions to include in System Message. Default: none',
translated: '在系統訊息中新增自訂提示。',
},
com_endpoint_import: {
english: 'Import',
translated: '匯入',
},
com_endpoint_set_custom_name: {
english: 'Set a custom name, in case you can find this preset',
translated: '設定自訂名稱,以便您找到此預設設定',
},
com_endpoint_preset: {
english: 'preset',
translated: '預設設定',
},
com_endpoint_presets: {
english: 'presets',
translated: '預設設定',
},
com_endpoint_preset_name: {
english: 'Preset Name',
translated: '名稱',
},
com_endpoint_new_topic: {
english: 'New Topic',
translated: '新主題',
},
com_endpoint: {
english: 'Endpoint',
translated: '選項',
},
com_endpoint_hide: {
english: 'Hide',
translated: '隱藏',
},
com_endpoint_show: {
english: 'Show',
translated: '顯示',
},
com_endpoint_examples: {
english: ' Presets',
translated: '預設設定',
},
com_endpoint_completion: {
english: 'Completion',
translated: '完成',
},
com_endpoint_agent: {
english: 'Agent',
translated: '代理',
},
com_endpoint_show_what_settings: {
english: 'Show {0} Settings',
translated: '顯示 {0} 設定',
},
com_endpoint_export: {
english: 'Export',
translated: '匯出',
},
com_endpoint_save_as_preset: {
english: 'Save As Preset',
translated: '另存為預設設定',
},
com_endpoint_presets_clear_warning: {
english: 'Are you sure you want to clear all presets? This is irreversible.',
translated: '您確定要清除所有預設設定嗎?此操作無法復原。',
},
com_endpoint_not_implemented: {
english: 'Not implemented',
translated: '尚未實做',
},
com_endpoint_no_presets: {
english: 'No presets yet, use the settings button to create one',
translated: '尚無預設設定',
},
com_endpoint_not_available: {
english: 'No endpoint available',
translated: '無可用選項',
},
com_endpoint_view_options: {
english: 'View Options',
translated: '檢視選項',
},
com_endpoint_save_convo_as_preset: {
english: 'Save Conversation as Preset',
translated: '將對話另存為預設設定',
},
com_endpoint_my_preset: {
english: 'My Preset',
translated: '我的預設設定',
},
com_endpoint_agent_model: {
english: 'Agent Model (Recommended: GPT-3.5)',
translated: '代理模型建議GPT-3.5',
},
com_endpoint_completion_model: {
english: 'Completion Model (Recommended: GPT-4)',
translated: '完成模型建議GPT-4',
},
com_endpoint_func_hover: {
english: 'Enable use of Plugins as OpenAI Functions',
translated: '啟用將外掛用作 OpenAI 函式',
},
com_endpoint_skip_hover: {
english:
'Enable skipping the completion step, which reviews the final answer and generated steps',
translated: '啟用跳過完成步驟,評估最終答案和生成步驟',
},
com_endpoint_config_key: {
english: 'Set API Key',
translated: '設定 API 金鑰',
},
com_endpoint_config_key_for: {
english: 'Set API Key for',
translated: '設定 API 金鑰給',
},
com_endpoint_config_key_name: {
english: 'Key',
translated: '金鑰',
},
com_endpoint_config_value: {
english: 'Enter value for',
translated: '輸入',
},
com_endpoint_config_key_name_placeholder: {
english: 'Set API key first',
translated: '請先設定 API 金鑰',
},
com_endpoint_config_key_encryption: {
english: 'Your key will be encrypted and deleted at',
translated: '您的金鑰將被加密並在此到期時間刪除:',
},
com_endpoint_config_key_expiry: {
english: 'the expiry time',
translated: '到期時刪除',
},
com_endpoint_config_key_import_json_key: {
english: 'Import Service Account JSON Key.',
translated: '匯入服務帳戶 JSON 金鑰。',
},
com_endpoint_config_key_import_json_key_success: {
english: 'Successfully Imported Service Account JSON Key',
translated: '成功匯入服務帳戶 JSON 金鑰',
},
com_endpoint_config_key_import_json_key_invalid: {
english: 'Invalid Service Account JSON Key, Did you import the correct file?',
translated: '無效的服務帳戶 JSON 金鑰,您是否匯入了正確的檔案?',
},
com_endpoint_config_key_get_edge_key: {
english: 'To get your Access token for Bing, login to',
translated: '要取得 Bing 的存取權杖,請登入到',
},
com_endpoint_config_key_get_edge_key_dev_tool: {
english:
'Use dev tools or an extension while logged into the site to copy the content of the _U cookie. If this fails, follow these',
translated:
'使用開發工具或擴充套件在登入網站時複製 _U cookie 的內容。如果此方法失敗,請按照這些',
},
com_endpoint_config_key_edge_instructions: {
english: 'instructions',
translated: '說明',
},
com_endpoint_config_key_edge_full_key_string: {
english: 'to provide the full cookie strings.',
translated: '提供完整的 cookie 字串。',
},
com_endpoint_config_key_chatgpt: {
english: 'To get your Access token For ChatGPT \'Free Version\', login to',
translated: '要取得 ChatGPT \'免費版\' 的存取權杖,請登入到',
},
com_endpoint_config_key_chatgpt_then_visit: {
english: 'then visit',
translated: '然後造訪',
},
com_endpoint_config_key_chatgpt_copy_token: {
english: 'Copy access token.',
translated: '複製存取權杖。',
},
com_endpoint_config_key_google_need_to: {
english: 'You need to',
translated: '您需要',
},
com_endpoint_config_key_google_vertex_ai: {
english: 'Enable Vertex AI',
translated: '在 Google Cloud 上啟用 Vertex AI',
},
com_endpoint_config_key_google_vertex_api: {
english: 'API on Google Cloud, then',
translated: 'API然後',
},
com_endpoint_config_key_google_service_account: {
english: 'Create a Service Account',
translated: '建立一個服務帳戶',
},
com_endpoint_config_key_google_vertex_api_role: {
english:
'Make sure to click \'Create and Continue\' to give at least the \'Vertex AI User\' role. Lastly, create a JSON key to import here.',
translated:
'確保點選「建立並繼續」並至少給予「Vertex AI 使用者」角色。最後,建立一個 JSON 金鑰以在此處匯入。',
},
com_nav_plugin_store: {
english: 'Plugin store',
translated: '外掛商店',
},
com_nav_plugin_search: {
english: 'Search plugins',
translated: '搜尋外掛',
},
com_nav_plugin_auth_error: {
english: 'There was an error attempting to authenticate this plugin. Please try again.',
translated: '嘗試驗證此外掛時發生錯誤。請重試。',
},
com_nav_export_filename: {
english: 'Filename',
translated: '檔名',
},
com_nav_export_filename_placeholder: {
english: 'Set the filename',
translated: '設定檔案名稱',
},
com_nav_export_type: {
english: 'Type',
translated: '類型',
},
com_nav_export_include_endpoint_options: {
english: 'Include endpoint options',
translated: '包含 AI 選項',
},
com_nav_enabled: {
english: 'Enabled',
translated: '已啟用',
},
com_nav_not_supported: {
english: 'Not Supported',
translated: '不支援',
},
com_nav_export_all_message_branches: {
english: 'Export all message branches',
translated: '匯出所有訊息分支',
},
com_nav_export_recursive_or_sequential: {
english: 'Recursive or sequential?',
translated: '遞迴還是序列?',
},
com_nav_export_recursive: {
english: 'Recursive',
translated: '遞迴',
},
com_nav_export_conversation: {
english: 'Export conversation',
translated: '匯出對話',
},
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_nav_export: {
english: 'Export',
translated: '匯出',
},
com_nav_shared_links: {
english: 'Shared links',
translated: '共享連結',
},
com_nav_shared_links_manage: {
english: 'Manage',
translated: '管理',
},
com_nav_shared_links_empty: {
english: 'You have no shared links.',
translated: '您沒有任何共享連結。',
},
com_nav_shared_links_name: {
english: 'Name',
translated: '名稱',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
},
com_nav_shared_links_date_shared: {
english: 'Date shared',
translated: '共享日期',
},
com_nav_theme: {
english: 'Theme',
translated: '主題',
},
com_nav_theme_system: {
english: 'System',
translated: '跟隨系統設定',
},
com_nav_theme_dark: {
english: 'Dark',
translated: '深色',
},
com_nav_theme_light: {
english: 'Light',
translated: '淺色',
},
com_nav_clear_all_chats: {
english: 'Clear all chats',
translated: '清除所有對話',
},
com_nav_confirm_clear: {
english: 'Confirm Clear',
translated: '確認清除',
},
com_nav_close_sidebar: {
english: 'Close sidebar',
translated: '關閉側邊選單',
},
com_nav_open_sidebar: {
english: 'Open sidebar',
translated: '開啟側邊選單',
},
com_nav_send_message: {
english: 'Send message',
translated: '傳送訊息',
},
com_nav_log_out: {
english: 'Log out',
translated: '登出',
},
com_nav_user: {
english: 'USER',
translated: '使用者',
},
com_nav_archived_chats: {
english: 'Archived chats',
translated: '封存的對話',
},
com_nav_archived_chats_manage: {
english: 'Manage',
translated: '管理',
},
com_nav_archived_chats_empty: {
english: 'You have no archived conversations.',
translated: '您沒有任何封存的對話。',
},
com_nav_archive_all_chats: {
english: 'Archive all chats',
translated: '封存所有對話',
},
com_nav_archive_all: {
english: 'Archive all',
translated: '封存所有',
},
com_nav_archive_name: {
english: 'Name',
translated: '名稱',
},
com_nav_archive_created_at: {
english: 'DateCreated',
translated: '建立時間',
},
com_nav_clear_conversation: {
english: 'Clear conversations',
translated: '清除對話',
},
com_nav_clear_conversation_confirm_message: {
english: 'Are you sure you want to clear all conversations? This is irreversible.',
translated: '您確定要清除所有對話嗎?此操作無法復原。',
},
com_nav_help_faq: {
english: 'Help & FAQ',
translated: '說明與常見問題',
},
com_nav_settings: {
english: 'Settings',
translated: '設定',
},
com_nav_search_placeholder: {
english: 'Search messages',
translated: '搜尋訊息',
},
com_nav_info_bookmarks_rebuild: {
english:
'If the bookmark count is incorrect, please rebuild the bookmark information. The bookmark count will be recalculated and the data will be restored to its correct state.',
translated:
'如果書籤計數不正確,請重新構建書籤信息。書籤計數將被重新計算,數據將恢復到其正確狀態。',
},
com_nav_setting_general: {
english: 'General',
translated: '一般',
},
com_nav_setting_data: {
english: 'Data controls',
translated: '資料控制',
},
🤖 feat: OpenAI Assistants v2 (initial support) (#2781) * 🤖 Assistants V2 Support: Part 1 - Separated Azure Assistants to its own endpoint - File Search / Vector Store integration is incomplete, but can toggle and use storage from playground - Code Interpreter resource files can be added but not deleted - GPT-4o is supported - Many improvements to the Assistants Endpoint overall data-provider v2 changes copy existing route as v1 chore: rename new endpoint to reduce comparison operations and add new azure filesource api: add azureAssistants part 1 force use of version for assistants/assistantsAzure chore: switch name back to azureAssistants refactor type version: string | number Ensure assistants endpoints have version set fix: isArchived type issue in ConversationListParams refactor: update assistants mutations/queries with endpoint/version definitions, update Assistants Map structure chore: FilePreview component ExtendedFile type assertion feat: isAssistantsEndpoint helper chore: remove unused useGenerations chore(buildTree): type issue chore(Advanced): type issue (unused component, maybe in future) first pass for multi-assistant endpoint rewrite fix(listAssistants): pass params correctly feat: list separate assistants by endpoint fix(useTextarea): access assistantMap correctly fix: assistant endpoint switching, resetting ID fix: broken during rewrite, selecting assistant mention fix: set/invalidate assistants endpoint query data correctly feat: Fix issue with assistant ID not being reset correctly getOpenAIClient helper function feat: add toast for assistant deletion fix: assistants delete right after create issue for azure fix: assistant patching refactor: actions to use getOpenAIClient refactor: consolidate logic into helpers file fix: issue where conversation data was not initially available v1 chat support refactor(spendTokens): only early return if completionTokens isNaN fix(OpenAIClient): ensure spendTokens has all necessary params refactor: route/controller logic fix(assistants/initializeClient): use defaultHeaders field fix: sanitize default operation id chore: bump openai package first pass v2 action service feat: retroactive domain parsing for actions added via v1 feat: delete db records of actions/assistants on openai assistant deletion chore: remove vision tools from v2 assistants feat: v2 upload and delete assistant vision images WIP first pass, thread attachments fix: show assistant vision files (save local/firebase copy) v2 image continue fix: annotations fix: refine annotations show analyze as error if is no longer submitting before progress reaches 1 and show file_search as retrieval tool fix: abort run, undefined endpoint issue refactor: consolidate capabilities logic and anticipate versioning frontend version 2 changes fix: query selection and filter add endpoint to unknown filepath add file ids to resource, deleting in progress enable/disable file search remove version log * 🤖 Assistants V2 Support: Part 2 🎹 fix: Autocompletion Chrome Bug on Action API Key Input chore: remove `useOriginNavigate` chore: set correct OpenAI Storage Source fix: azure file deletions, instantiate clients by source for deletion update code interpret files info feat: deleteResourceFileId chore: increase poll interval as azure easily rate limits fix: openai file deletions, TODO: evaluate rejected deletion settled promises to determine which to delete from db records file source icons update table file filters chore: file search info and versioning fix: retrieval update with necessary tool_resources if specified fix(useMentions): add optional chaining in case listMap value is undefined fix: force assistant avatar roundedness fix: azure assistants, check correct flag chore: bump data-provider * fix: merge conflict * ci: fix backend tests due to new updates * chore: update .env.example * meilisearch improvements * localization updates * chore: update comparisons * feat: add additional metadata: endpoint, author ID * chore: azureAssistants ENDPOINTS exclusion warning
2024-05-19 12:56:55 -04:00
com_assistants_file_search: {
english: 'File Search',
translated: '檔案搜尋',
},
com_assistants_file_search_info: {
english:
'Attaching vector stores for File Search is not yet supported. You can attach them from the Provider Playground or attach files to messages for file search on a thread basis.',
translated:
'目前尚不支援為檔案搜尋附加向量儲存。您可以從提供者遊樂場附加它們,或在每個主題的基礎上為檔案搜尋附加檔案。',
🤖 feat: OpenAI Assistants v2 (initial support) (#2781) * 🤖 Assistants V2 Support: Part 1 - Separated Azure Assistants to its own endpoint - File Search / Vector Store integration is incomplete, but can toggle and use storage from playground - Code Interpreter resource files can be added but not deleted - GPT-4o is supported - Many improvements to the Assistants Endpoint overall data-provider v2 changes copy existing route as v1 chore: rename new endpoint to reduce comparison operations and add new azure filesource api: add azureAssistants part 1 force use of version for assistants/assistantsAzure chore: switch name back to azureAssistants refactor type version: string | number Ensure assistants endpoints have version set fix: isArchived type issue in ConversationListParams refactor: update assistants mutations/queries with endpoint/version definitions, update Assistants Map structure chore: FilePreview component ExtendedFile type assertion feat: isAssistantsEndpoint helper chore: remove unused useGenerations chore(buildTree): type issue chore(Advanced): type issue (unused component, maybe in future) first pass for multi-assistant endpoint rewrite fix(listAssistants): pass params correctly feat: list separate assistants by endpoint fix(useTextarea): access assistantMap correctly fix: assistant endpoint switching, resetting ID fix: broken during rewrite, selecting assistant mention fix: set/invalidate assistants endpoint query data correctly feat: Fix issue with assistant ID not being reset correctly getOpenAIClient helper function feat: add toast for assistant deletion fix: assistants delete right after create issue for azure fix: assistant patching refactor: actions to use getOpenAIClient refactor: consolidate logic into helpers file fix: issue where conversation data was not initially available v1 chat support refactor(spendTokens): only early return if completionTokens isNaN fix(OpenAIClient): ensure spendTokens has all necessary params refactor: route/controller logic fix(assistants/initializeClient): use defaultHeaders field fix: sanitize default operation id chore: bump openai package first pass v2 action service feat: retroactive domain parsing for actions added via v1 feat: delete db records of actions/assistants on openai assistant deletion chore: remove vision tools from v2 assistants feat: v2 upload and delete assistant vision images WIP first pass, thread attachments fix: show assistant vision files (save local/firebase copy) v2 image continue fix: annotations fix: refine annotations show analyze as error if is no longer submitting before progress reaches 1 and show file_search as retrieval tool fix: abort run, undefined endpoint issue refactor: consolidate capabilities logic and anticipate versioning frontend version 2 changes fix: query selection and filter add endpoint to unknown filepath add file ids to resource, deleting in progress enable/disable file search remove version log * 🤖 Assistants V2 Support: Part 2 🎹 fix: Autocompletion Chrome Bug on Action API Key Input chore: remove `useOriginNavigate` chore: set correct OpenAI Storage Source fix: azure file deletions, instantiate clients by source for deletion update code interpret files info feat: deleteResourceFileId chore: increase poll interval as azure easily rate limits fix: openai file deletions, TODO: evaluate rejected deletion settled promises to determine which to delete from db records file source icons update table file filters chore: file search info and versioning fix: retrieval update with necessary tool_resources if specified fix(useMentions): add optional chaining in case listMap value is undefined fix: force assistant avatar roundedness fix: azure assistants, check correct flag chore: bump data-provider * fix: merge conflict * ci: fix backend tests due to new updates * chore: update .env.example * meilisearch improvements * localization updates * chore: update comparisons * feat: add additional metadata: endpoint, author ID * chore: azureAssistants ENDPOINTS exclusion warning
2024-05-19 12:56:55 -04:00
},
com_assistants_non_retrieval_model: {
english: 'File search is not enabled on this model. Please select another model.',
translated: '此模型未啟用檔案搜尋功能。請選擇其他模型。',
},
com_ui_attach_error_openai: {
english: 'Cannot attach Assistant files to other endpoints',
translated: '無法將助理檔案附加至其他端點',
},
com_ui_attach_warn_endpoint: {
english: 'Non-Assistant files may be ignored without a compatible tool',
translated: '非相容工具的非助理檔案可能會被忽略',
},
com_ui_assistant_deleted: {
english: 'Successfully deleted assistant',
translated: '已成功刪除助理',
},
com_ui_assistant_delete_error: {
english: 'There was an error deleting the assistant',
translated: '刪除助理時發生錯誤',
},
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_copied: {
english: 'Copied!',
translated: '已複製!',
},
com_ui_copy_code: {
english: 'Copy code',
translated: '複製程式碼',
},
com_nav_source_chat: {
english: 'View source chat',
translated: '檢視原始對話',
},
com_ui_date_today: {
english: 'Today',
translated: '今天',
},
com_ui_date_yesterday: {
english: 'Yesterday',
translated: '昨天',
},
com_ui_date_previous_7_days: {
english: 'Previous 7 days',
translated: '前 7 天',
},
com_ui_date_previous_30_days: {
english: 'Previous 30 days',
translated: '過去 30 天',
},
com_ui_date_january: {
english: 'January',
translated: '一月',
},
com_ui_date_february: {
english: 'February',
translated: '二月',
},
com_ui_date_march: {
english: 'March',
translated: '三月',
},
com_ui_date_april: {
english: 'April',
translated: '四月',
},
com_ui_date_may: {
english: 'May',
translated: '五月',
},
com_ui_date_june: {
english: 'June',
translated: '六月',
},
com_ui_date_july: {
english: 'July',
translated: '七月',
},
com_ui_date_august: {
english: 'August',
translated: '八月',
},
com_ui_date_september: {
english: 'September',
translated: '九月',
},
com_ui_date_october: {
english: 'October',
translated: '十月',
},
com_ui_date_november: {
english: 'November',
translated: '十一月',
},
com_ui_date_december: {
english: 'December',
translated: '十二月',
},
com_ui_nothing_found: {
english: 'Nothing found',
translated: '找不到任何內容',
},
com_ui_go_to_conversation: {
english: 'Go to conversation',
translated: '前往對話',
},
com_error_moderation: {
english:
'It appears that the content submitted has been flagged by our moderation system for not aligning with our community guidelines. We\'re unable to proceed with this specific topic. If you have any other questions or topics you\'d like to explore, please edit your message, or create a new conversation.',
translated:
'似乎您所提交的內容被我們的內容審查系統標記為不符合社群準則。我們無法就此特定主題繼續進行。如果您有任何其他問題或想要探討的主題,請編輯您的訊息或開啟新的對話。',
},
com_error_no_user_key: {
english: 'No key found. Please provide a key and try again.',
translated: '找不到金鑰,請提供金鑰後再試一次。',
},
com_error_no_base_url: {
english: 'No base URL found. Please provide one and try again.',
translated: '找不到基礎 URL。請提供一個基礎 URL 後再試一次。',
},
com_error_invalid_user_key: {
english: 'Invalid key provided. Please provide a key and try again.',
translated: '提供的金鑰無效。請提供有效的金鑰並重試。',
},
com_error_expired_user_key: {
english: 'Provided key for {0} expired at {1}. Please provide a key and try again.',
translated: '提供給 {0} 的金鑰已於 {1} 到期。請提供一個新的金鑰並重試。',
},
com_files_no_results: {
english: 'No results.',
translated: '沒有結果。',
},
com_files_filter: {
english: 'Filter files...',
translated: '篩選檔案...',
},
com_files_number_selected: {
english: '{0} of {1} file(s) selected',
translated: '已選取 {0} 個檔案,共 {1} 個檔案',
},
com_sidepanel_select_assistant: {
english: 'Select an Assistant',
translated: '選擇一位助理',
},
com_sidepanel_parameters: {
english: 'Parameters',
translated: '參數',
},
com_sidepanel_assistant_builder: {
english: 'Assistant Builder',
translated: '助理建構器',
},
com_sidepanel_hide_panel: {
english: 'Hide Panel',
translated: '隱藏側邊選單',
},
com_sidepanel_attach_files: {
english: 'Attach Files',
translated: '附加檔案',
},
com_sidepanel_manage_files: {
english: 'Manage Files',
translated: '管理檔案',
},
com_sidepanel_conversation_tags: {
english: 'Bookmarks',
translated: '書籤',
},
com_assistants_capabilities: {
english: 'Capabilities',
translated: '功能',
},
com_assistants_knowledge: {
english: 'Knowledge',
translated: '知識',
},
com_assistants_knowledge_info: {
english:
'If you upload files under Knowledge, conversations with your Assistant may include file contents.',
translated: '如果您在「知識」下上傳檔案,與您的助理的對話可能會包含檔案內容。',
},
com_assistants_knowledge_disabled: {
english:
'Assistant must be created, and Code Interpreter or Retrieval must be enabled and saved before uploading files as Knowledge.',
translated:
'助理必須先建立,並啟用及儲存「程式碼解譯器」或「資訊檢索」功能,才能上傳檔案作為知識庫。',
},
com_assistants_image_vision: {
english: 'Image Vision',
translated: '影像視覺',
},
com_assistants_code_interpreter: {
english: 'Code Interpreter',
translated: '程式碼解譯器',
},
com_assistants_code_interpreter_files: {
english: 'The following files are only available for Code Interpreter:',
translated: '以下檔案僅適用於程式碼解譯器:',
},
com_assistants_retrieval: {
english: 'Retrieval',
translated: '檢索',
},
com_assistants_search_name: {
english: 'Search assistants by name',
translated: '搜尋助理名稱',
},
🚧 chore: merge latest dev build (#4288) * fix: agent initialization, add `collectedUsage` handling * style: improve side panel styling * refactor(loadAgent): Optimize order agent project ID retrieval * feat: code execution * fix: typing issues * feat: ExecuteCode content part * refactor: use local state for default collapsed state of analysis content parts * fix: code parsing in ExecuteCode component * chore: bump agents package, export loadAuthValues * refactor: Update handleTools.js to use EnvVar for code execution tool authentication * WIP * feat: download code outputs * fix(useEventHandlers): type issues * feat: backend handling for code outputs * Refactor: Remove console.log statement in Part.tsx * refactor: add attachments to TMessage/messageSchema * WIP: prelim handling for code outputs * feat: attachments rendering * refactor: improve attachments rendering * fix: attachments, nullish edge case, handle attachments from event stream, bump agents package * fix filename download * fix: tool assignment for 'run code' on agent creation * fix: image handling by adding attachments * refactor: prevent agent creation without provider/model * refactor: remove unnecessary space in agent creation success message * refactor: select first model if selecting provider from empty on form * fix: Agent avatar bug * fix: `defaultAgentFormValues` causing boolean typing issue and typeerror * fix: capabilities counting as tools, causing duplication of them * fix: formatted messages edge case where consecutive content text type parts with the latter having tool_call_ids would cause consecutive AI messages to be created. furthermore, content could not be an array for tool_use messages (anthropic limitation) * chore: bump @librechat/agents dependency to version 1.6.9 * feat: bedrock agents * feat: new Agents icon * feat: agent titling * feat: agent landing * refactor: allow sharing agent globally only if user is admin or author * feat: initial AgentPanelSkeleton * feat: AgentPanelSkeleton * feat: collaborative agents * chore: add potential authorName as part of schema * chore: Remove unnecessary console.log statement * WIP: agent model parameters * chore: ToolsDialog typing and tool related localization chnages * refactor: update tool instance type (latest langchain class), and rename google tool to 'google' proper * chore: add back tools * feat: Agent knowledge files upload * refactor: better verbiage for disabled knowledge * chore: debug logs for file deletions * chore: debug logs for file deletions * feat: upload/delete agent knowledge/file-search files * feat: file search UI for agents * feat: first pass, file search tool * chore: update default agent capabilities and info
2024-09-30 17:17:57 -04:00
com_ui_tools: {
english: 'Tools',
translated: '工具',
},
com_assistants_actions: {
english: 'Actions',
translated: '操作',
},
com_assistants_add_tools: {
english: 'Add Tools',
translated: '新增工具',
},
com_assistants_add_actions: {
english: 'Add Actions',
translated: '新增操作',
},
com_assistants_available_actions: {
english: 'Available Actions',
translated: '可用操作',
},
com_assistants_running_action: {
english: 'Running action',
translated: '執行中的動作',
},
com_assistants_completed_action: {
english: 'Talked to {0}',
translated: '與 {0} 對話完成',
},
com_assistants_completed_function: {
english: 'Ran {0}',
translated: '已執行 {0}',
},
com_assistants_function_use: {
english: 'Assistant used {0}',
translated: '助理使用了 {0}',
},
com_assistants_domain_info: {
english: 'Assistant sent this info to {0}',
translated: '助理將此資訊傳送給 {0}',
},
com_assistants_delete_actions_success: {
english: 'Successfully deleted Action from Assistant',
translated: '已成功刪除助理的操作',
},
com_assistants_update_actions_success: {
english: 'Successfully created or updated Action',
translated: '動作已成功建立或更新',
},
com_assistants_update_actions_error: {
english: 'There was an error creating or updating the action.',
translated: '更新或建立動作時發生錯誤。',
},
com_assistants_delete_actions_error: {
english: 'There was an error deleting the action.',
translated: '刪除操作時發生錯誤',
},
com_assistants_actions_info: {
english: 'Let your Assistant retrieve information or take actions via API\'s',
translated: '讓您的助理透過 API 取得資訊或執行操作',
},
com_assistants_name_placeholder: {
english: 'Optional: The name of the assistant',
translated: '選填:助理的名稱',
},
com_assistants_instructions_placeholder: {
english: 'The system instructions that the assistant uses',
translated: '系統指令是助理使用的提示指令',
},
com_assistants_description_placeholder: {
english: 'Optional: Describe your Assistant here',
translated: '選擇性:在此描述您的助理',
},
com_assistants_actions_disabled: {
english: 'You need to create an assistant before adding actions.',
translated: '您需要先建立一個助理,才能新增動作。',
},
com_assistants_update_success: {
english: 'Successfully updated',
translated: '更新成功',
},
com_assistants_update_error: {
english: 'There was an error updating your assistant.',
translated: '更新您的助理時發生錯誤。',
},
com_assistants_create_success: {
english: 'Successfully created',
translated: '已成功建立',
},
com_assistants_create_error: {
english: 'There was an error creating your assistant.',
translated: '建立您的助理時發生錯誤。',
},
com_ui_field_required: {
english: 'This field is required',
translated: '此欄位為必填',
},
com_ui_download_error: {
english: 'Error downloading file. The file may have been deleted.',
translated: '下載檔案時發生錯誤。該檔案可能已被刪除。',
},
com_ui_attach_error_type: {
english: 'Unsupported file type for endpoint:',
translated: '不支援的檔案類型,無法上傳至端點:',
},
com_ui_attach_error_size: {
english: 'File size limit exceeded for endpoint:',
translated: '檔案大小超過端點的限制',
},
com_ui_attach_error: {
english: 'Cannot attach file. Create or select a conversation, or try refreshing the page.',
translated: '無法附加檔案。請建立或選擇對話,或嘗試重新整理頁面。',
},
com_ui_experimental: {
english: 'Experimental Features',
translated: '實驗性功能',
},
com_ui_on: {
english: 'On',
translated: '開啟',
},
com_ui_off: {
english: 'Off',
translated: '關閉',
},
com_ui_yes: {
english: 'Yes',
translated: '是',
},
com_ui_no: {
english: 'No',
translated: '否',
},
com_ui_ascending: {
english: 'Asc',
translated: '升冪',
},
com_ui_descending: {
english: 'Desc',
translated: '遞減',
},
com_ui_show_all: {
english: 'Show All',
translated: '顯示全部',
},
com_ui_name: {
english: 'Name',
translated: '名稱',
},
com_ui_date: {
english: 'Date',
translated: '日期',
},
com_ui_storage: {
english: 'Storage',
translated: '儲存空間',
},
com_ui_context: {
english: 'Context',
translated: '情境',
},
com_ui_size: {
english: 'Size',
translated: '大小',
},
com_ui_host: {
english: 'Host',
translated: '主機',
},
com_ui_update: {
english: 'Update',
translated: '更新',
},
com_ui_authentication: {
english: 'Authentication',
translated: '驗證',
},
com_ui_instructions: {
english: 'Instructions',
translated: '說明',
},
com_ui_description: {
english: 'Description',
translated: '描述',
},
com_ui_error: {
english: 'Error',
translated: '錯誤',
},
com_ui_select: {
english: 'Select',
translated: '選擇',
},
com_ui_select_search_model: {
english: 'Search model by name',
translated: '依名稱搜尋模型',
},
com_ui_select_search_plugin: {
english: 'Search plugin by name',
translated: '依名稱搜尋外掛程式',
},
com_ui_stop: {
english: 'Stop',
translated: '停止',
},
com_ui_upload_files: {
english: 'Upload files',
translated: '上傳檔案',
},
com_ui_new_footer: {
english: 'All AI conversations in one place.',
translated: '將所有 AI 對話集中在一處。',
},
com_ui_none_selected: {
english: 'None selected',
translated: '未選取任何項目',
},
com_ui_upload_error: {
english: 'There was an error uploading your file',
translated: '檔案上傳時發生錯誤',
},
com_ui_save_submit: {
english: 'Save & Submit',
translated: '儲存並送出',
},
com_user_message: {
english: 'You',
translated: '您',
},
com_ui_fork: {
english: 'Fork',
translated: '分支',
},
com_ui_fork_info_1: {
english: 'Use this setting to fork messages with the desired behavior.',
translated: '使用此設定來分支訊息,以獲得所需的行為。',
},
com_ui_fork_info_2: {
english:
'"Forking" refers to creating a new conversation that start/end from specific messages in the current conversation, creating a copy according to the options selected.',
translated: '「分支」是指從目前對話中的特定訊息開始/結束,根據所選的選項建立新對話的副本。',
},
com_ui_fork_info_3: {
english:
'The "target message" refers to either the message this popup was opened from, or, if you check "{0}", the latest message in the conversation.',
translated:
'「目標訊息」指的是此彈出視窗所開啟的訊息,或者如果您勾選「{0}」,則是對話中最新的訊息。',
},
com_ui_fork_info_visible: {
english:
'This option forks only the visible messages; in other words, the direct path to the target message, without any branches.',
translated:
'此選項只會分支顯示的訊息,換句話說,只會顯示直接通往目標訊息的路徑,而不會顯示任何分支。',
},
com_ui_fork_info_branches: {
english:
'This option forks the visible messages, along with related branches; in other words, the direct path to the target message, including branches along the path.',
translated:
'此選項會分叉可見的訊息,以及相關的分支;換句話說,它包含了通往目標訊息的直接路徑,包括路徑上的所有分支。',
},
com_ui_fork_info_target: {
english:
'This option forks all messages leading up to the target message, including its neighbors; in other words, all message branches, whether or not they are visible or along the same path, are included.',
translated:
'這個選項會分叉所有導向目標訊息的訊息,包括其鄰近訊息;換句話說,不論是否可見或在同一路徑上,所有訊息分支都會包含在內。',
},
com_ui_fork_info_start: {
english:
'If checked, forking will commence from this message to the latest message in the conversation, according to the behavior selected above.',
translated:
'如果勾選,則從此訊息開始,根據上方選擇的行為,將會分支出一個新的對話直到最新的訊息。',
},
com_ui_fork_info_remember: {
english:
'Check this to remember the options you select for future usage, making it quicker to fork conversations as preferred.',
translated: '勾選此項目可記住您選擇的選項,以便日後分支對話時更快速地套用您偏好的設定。',
},
com_ui_fork_success: {
english: 'Successfully forked conversation',
translated: '已成功分支對話',
},
com_ui_fork_processing: {
english: 'Forking conversation...',
translated: '分支對話中...',
},
com_ui_fork_error: {
english: 'There was an error forking the conversation',
translated: '分支對話時發生錯誤',
},
com_ui_fork_change_default: {
english: 'Default fork option',
translated: '預設分支選項',
},
com_ui_fork_default: {
english: 'Use default fork option',
translated: '使用預設分支選項',
},
com_ui_fork_remember: {
english: 'Remember',
translated: '記住',
},
com_ui_fork_split_target_setting: {
english: 'Start fork from target message by default',
translated: '預設從目標訊息開始分支',
},
com_ui_fork_split_target: {
english: 'Start fork here',
translated: '在此分叉',
},
com_ui_fork_remember_checked: {
english:
'Your selection will be remembered after usage. Change this at any time in the settings.',
translated: '您的選擇將在使用後被記住。您可以隨時在設定中更改。',
},
com_ui_fork_all_target: {
english: 'Include all to/from here',
translated: '包含所有從這裡開始',
},
com_ui_fork_branches: {
english: 'Include related branches',
translated: '包含相關分支',
},
com_ui_fork_visible: {
english: 'Visible messages only',
translated: '僅顯示分支訊息',
},
com_ui_fork_from_message: {
english: 'Select a fork option',
translated: '選擇分支選項',
},
com_ui_mention: {
english: 'Mention an endpoint, assistant, or preset to quickly switch to it',
translated: '提及端點、助理或預設設定以快速切換',
},
com_ui_import_conversation_file_type_error: {
english: 'Unsupported import type',
translated: '不支援的匯入檔案類型',
},
com_ui_avatar: {
english: 'Avatar',
translated: '大頭照',
},
com_ui_unknown: {
english: 'Unknown',
translated: '未知',
},
com_ui_result: {
english: 'Result',
translated: '結果',
},
com_ui_image_gen: {
english: 'Image Gen',
translated: '影像生成',
},
com_ui_assistant: {
english: 'Assistant',
translated: '助理',
},
com_ui_assistants: {
english: 'Assistants',
translated: '助理',
},
com_ui_attachment: {
english: 'Attachment',
translated: '附件',
},
com_ui_assistants_output: {
english: 'Assistants Output',
translated: '助理輸出',
},
com_ui_create: {
english: 'Create',
translated: '建立',
},
com_ui_delete_assistant_confirm: {
english: 'Are you sure you want to delete this Assistant? This cannot be undone.',
translated: '您確定要刪除這個助理嗎?此操作無法復原。',
},
com_ui_preview: {
english: 'Preview',
translated: '預覽',
},
com_ui_upload: {
english: 'Upload',
translated: '上傳',
},
com_ui_connect: {
english: 'Connect',
translated: '連線',
},
com_ui_upload_delay: {
english:
'Uploading "{0}" is taking more time than anticipated. Please wait while the file finishes indexing for retrieval.',
translated: '正在上傳 "{0}" 的過程比預期花費更多時間。請耐心等候檔案完成索引以供檢索。',
},
com_ui_privacy_policy: {
english: 'Privacy policy',
translated: '隱私權政策',
},
com_ui_terms_of_service: {
english: 'Terms of service',
translated: '服務條款',
},
com_ui_min_tags: {
english: 'Cannot remove more values, a minimum of {0} are required.',
translated: '無法再移除更多值,至少需要 {0} 個。',
},
com_ui_max_tags: {
english: 'Maximum number allowed is {0}, using latest values.',
translated: '允許的最大數量為 {0},已使用最新值。',
},
com_auth_back_to_login: {
english: 'Back to Login',
translated: '返回登入',
},
com_endpoint_message: {
english: 'Message',
translated: '訊息',
},
com_endpoint_message_not_appendable: {
english: 'Edit your message or Regenerate.',
translated: '無法附加訊息或重新生成。',
},
com_endpoint_context_tokens: {
english: 'Max Context Tokens',
translated: '最大前後文 token 數',
},
com_endpoint_context_info: {
english:
'The maximum number of tokens that can be used for context. Use this for control of how many tokens are sent per request.\n If unspecified, will use system defaults based on known models\' context size. Setting higher values may result in errors and/or higher token cost.',
translated:
'可用於上下文的最大 token 數量。用於控制每個請求傳送的 token 數量。如果未指定,將根據已知模型的上下文大小使用系統預設值。設定較高的值可能會導致錯誤和/或更高的 token 成本。',
},
com_endpoint_instructions_assistants_placeholder: {
english:
'Overrides the instructions of the assistant. This is useful for modifying the behavior on a per-run basis.',
translated: '覆寫助理的提示指令。這對於在每次執行時修改行為很有用。',
},
com_endpoint_prompt_prefix_assistants_placeholder: {
english:
'Set additional instructions or context on top of the Assistant\'s main instructions. Ignored if empty.',
translated: '在助理的主要提示指令之上設定額外的提示指令或上下文。如果為空白,則會被忽略。',
},
com_endpoint_prompt_prefix_assistants: {
english: 'Additional Instructions',
translated: '額外的提示指令',
},
com_endpoint_instructions_assistants: {
english: 'Override Instructions',
translated: '覆寫提示指令',
},
com_endpoint_stop: {
english: 'Stop Sequences',
translated: '停止序列',
},
com_endpoint_stop_placeholder: {
english: 'Separate values by pressing `Enter`',
translated: '以 `Enter` 鍵分隔值',
},
com_endpoint_openai_max_tokens: {
english:
'Optional `max_tokens` field, representing the maximum number of tokens that can be generated in the chat completion.\n \n The total length of input tokens and generated tokens is limited by the models context length. You may experience errors if this number exceeds the max context tokens.',
translated:
'可選的 `max_tokens` 欄位,代表在對話完成中可以生成的最大 token 數。\n\n輸入 token 和生成 token 的總長度受限於模型的上下文長度。如果此數字超過最大上下文 token 數,您可能會遇到錯誤。',
},
com_endpoint_openai_resend: {
english:
'Resend all previously attached images. Note: this can significantly increase token cost and you may experience errors with many image attachments.',
translated:
'重新傳送之前所有附加的圖片。注意:這可能會大幅增加 token 成本,如果附加了太多圖片,您可能會遇到錯誤。',
},
com_endpoint_openai_resend_files: {
english:
'Resend all previously attached files. Note: this will increase token cost and you may experience errors with many attachments.',
translated:
'重新傳送之前附加的所有檔案。注意:這將增加 token 成本,如果附件過多,您可能會遇到錯誤。',
},
com_endpoint_openai_detail: {
english:
'The resolution for Vision requests. "Low" is cheaper and faster, "High" is more detailed and expensive, and "Auto" will automatically choose between the two based on the image resolution.',
translated:
'「低」解析度的視覺請求較便宜且快速,「高」解析度則更詳細但成本較高,而「自動」會根據影像解析度自動在兩者之間選擇。',
},
com_endpoint_openai_stop: {
english: 'Up to 4 sequences where the API will stop generating further tokens.',
translated: '最多 4 個序列API 將在生成更多 token 時停止。',
},
com_endpoint_plug_resend_files: {
english: 'Resend Files',
translated: '重新傳送檔案',
},
com_endpoint_plug_resend_images: {
english: 'Resend Images',
translated: '重新傳送圖片',
},
com_endpoint_plug_image_detail: {
english: 'Image Detail',
translated: '影像詳細資訊',
},
com_endpoint_preset_delete_confirm: {
english: 'Are you sure you want to delete this preset?',
translated: '您確定要刪除這個預設設定嗎?',
},
com_endpoint_preset_clear_all_confirm: {
english: 'Are you sure you want to delete all of your presets?',
translated: '您確定要刪除所有的預設設定嗎?',
},
com_endpoint_preset_import: {
english: 'Preset Imported!',
translated: '預設設定已匯入!',
},
com_endpoint_preset_import_error: {
english: 'There was an error importing your preset. Please try again.',
translated: '匯入您的預設設定時發生錯誤。請再試一次。',
},
com_endpoint_preset_save_error: {
english: 'There was an error saving your preset. Please try again.',
translated: '儲存您的預設設定時發生錯誤。請再試一次。',
},
com_endpoint_preset_delete_error: {
english: 'There was an error deleting your preset. Please try again.',
translated: '刪除您的預設設定時發生錯誤。請重試。',
},
com_endpoint_preset_default_removed: {
english: 'is no longer the default preset.',
translated: '不再是預設設定',
},
com_endpoint_preset_default_item: {
english: 'Default:',
translated: '預設值',
},
com_endpoint_preset_default_none: {
english: 'No default preset active.',
translated: '無啟用的預設設定。',
},
com_endpoint_preset_title: {
english: 'Preset',
translated: '預設項目',
},
com_endpoint_preset_saved: {
english: 'Saved!',
translated: '已儲存!',
},
com_endpoint_preset_default: {
english: 'is now the default preset.',
translated: '現在是預設的預設設定。',
},
com_endpoint_preset_selected: {
english: 'Preset Active!',
translated: '已選擇預設設定!',
},
com_endpoint_preset_selected_title: {
english: 'Active!',
translated: '已選取!',
},
com_endpoint_assistant: {
english: 'Assistant',
translated: '助理',
},
com_endpoint_use_active_assistant: {
english: 'Use Active Assistant',
translated: '使用活躍助理',
},
com_endpoint_assistant_model: {
english: 'Assistant Model',
translated: 'AI 模型',
},
com_endpoint_assistant_placeholder: {
english: 'Please select an Assistant from the right-hand Side Panel',
translated: '請從右側面板選擇一位助理',
},
com_endpoint_config_placeholder: {
english: 'Set your Key in the Header menu to chat.',
translated: '在標頭選單中設定您的金鑰以開始對話。',
},
com_endpoint_config_click_here: {
english: 'Click Here',
translated: '點此',
},
com_endpoint_config_google_service_key: {
english: 'Google Service Account Key',
translated: 'Google 服務帳戶金鑰',
},
com_endpoint_config_google_cloud_platform: {
english: '(from Google Cloud Platform)',
translated: 'Google 雲端平臺設定',
},
com_endpoint_config_google_api_key: {
english: 'Google API Key',
translated: 'Google API 金鑰',
},
com_endpoint_config_google_gemini_api: {
english: '(Gemini API)',
translated: 'Google Gemini API 設定',
},
com_endpoint_config_google_api_info: {
english: 'To get your Generative Language API key (for Gemini),',
translated: '要取得 Generative Language API 金鑰(適用於 Gemini',
},
com_nav_welcome_assistant: {
english: 'Please Select an Assistant',
translated: '請選擇一位助理',
},
com_nav_welcome_message: {
english: 'How can I help you today?',
translated: '您今天有什麼需要我協助的嗎?',
},
com_nav_hide_panel: {
english: 'Hide right-most side panel',
translated: '隱藏最右側的面板',
},
com_nav_modular_chat: {
english: 'Enable switching Endpoints mid-conversation',
translated: '允許在對話中途切換端點',
},
com_nav_latex_parsing: {
english: 'Parsing LaTeX in messages (may affect performance)',
translated: '解析訊息中的 LaTeX 內容(可能影響效能)',
},
com_nav_profile_picture: {
english: 'Profile Picture',
translated: '個人頭像',
},
com_nav_change_picture: {
english: 'Change picture',
translated: '更換圖片',
},
com_nav_plugin_install: {
english: 'Install',
translated: '安裝',
},
com_nav_plugin_uninstall: {
english: 'Uninstall',
translated: '解除安裝',
},
💬 feat: assistant conversation starter (#3699) * feat: initial UI convoStart * fix: ConvoStarter UI * fix: convoStarters bug * feat: Add input field focus on conversation starters * style: conversation starter UI update * feat: apply fixes for starters * style: update conversationStarters UI and fixed typo * general UI update * feat: Add onClick functionality to ConvoStarter component * fix: quick fix test * fix(AssistantSelect): remove object check * fix: updateAssistant `conversation_starters` var * chore: remove starter autofocus * fix: no empty conversation starters, always show input, use Constants value for max count * style: Update defaultTextPropsLabel styles, for a11y placeholder * refactor: Update ConvoStarter component styles and class names for a11y and theme * refactor: convostarter, move plus button to within persistent element * fix: types * chore: Update landing page assistant description styling with theming * chore: assistant types * refactor: documents routes * refactor: optimize conversation starter mutations/queries * refactor: Update listAllAssistants return type to Promise<Array<Assistant>> * feat: edit existing starters * feat(convo-starters): enhance ConvoStarter component and add animations - Update ConvoStarter component styling for better visual appeal - Implement fade-in animation for smoother appearance - Add hover effect with background color change - Improve text overflow handling with line-clamp and text-balance - Ensure responsive design for various screen sizes * feat(assistant): add conversation starters to assistant builder - Add localization strings for conversation starters - Update mobile.css with shake animation for max starters reached - Enhance user experience with tooltips and dynamic input handling * refactor: select specific fields for assistant documents fetch * refactor: remove endpoint query key, fetch all assistant docs for now, add conversation_starters to v1 methods * refactor: add document filters based on endpoint config * fix: starters not applied during creation * refactor: update AssistantSelect component to handle undefined lastSelectedModels --------- Co-authored-by: Danny Avila <danny@librechat.ai>
2024-08-31 13:42:20 -04:00
com_ui_add: {
english: 'Add',
translated: '新增',
},
com_nav_tool_remove: {
english: 'Remove',
translated: '移除',
},
com_nav_tool_dialog: {
english: 'Assistant Tools',
translated: 'AI 工具',
},
com_nav_tool_dialog_description: {
english: 'Assistant must be saved to persist tool selections.',
translated: '必須儲存 Assistant 才能保留工具選擇。',
},
com_show_agent_settings: {
english: 'Show Agent Settings',
translated: '顯示代理設定',
},
com_show_completion_settings: {
english: 'Show Completion Settings',
translated: '顯示完成設定',
},
com_hide_examples: {
english: 'Hide Examples',
translated: '隱藏範例',
},
com_show_examples: {
english: 'Show Examples',
translated: '顯示範例',
},
com_nav_tool_search: {
english: 'Search tools',
translated: '搜尋工具',
},
com_nav_my_files: {
english: 'My Files',
translated: '我的檔案',
},
com_nav_enter_to_send: {
english: 'Press Enter to send messages',
translated: '按 Enter 鍵傳送訊息',
},
com_nav_user_name_display: {
english: 'Display username in messages',
translated: '在訊息中顯示使用者名稱',
},
com_nav_save_drafts: {
english: 'Save drafts locally',
translated: '儲存本機草稿',
},
com_nav_show_code: {
english: 'Always show code when using code interpreter',
translated: '一律顯示使用程式碼解譯器時的程式碼',
},
com_nav_setting_beta: {
english: 'Beta features',
translated: '測試功能',
},
com_nav_setting_account: {
english: 'Account',
translated: '帳號',
},
com_nav_language: {
english: 'Language',
translated: '語言',
},
com_nav_lang_auto: {
english: 'Auto detect',
translated: '自動偵測',
},
com_nav_lang_english: {
english: 'English',
translated: '英文',
},
com_nav_lang_chinese: {
english: '中文',
translated: '繁體中文',
},
com_nav_lang_german: {
english: 'Deutsch',
translated: '德語',
},
com_nav_lang_spanish: {
english: 'Español',
translated: '西班牙語',
},
com_nav_lang_french: {
english: 'Français ',
translated: '法語',
},
com_nav_lang_italian: {
english: 'Italiano',
translated: '義大利文',
},
com_nav_lang_polish: {
english: 'Polski',
translated: '波蘭文',
},
com_nav_lang_brazilian_portuguese: {
english: 'Português Brasileiro',
translated: '葡萄牙語(巴西)',
},
com_nav_lang_russian: {
english: 'Русский',
translated: 'Русский',
},
com_nav_lang_japanese: {
english: '日本語',
translated: '日本語',
},
com_nav_lang_swedish: {
english: 'Svenska',
translated: '瑞典語',
},
com_nav_lang_korean: {
english: '한국어',
translated: '한국어',
},
com_nav_lang_vietnamese: {
english: 'Tiếng Việt',
translated: '越南語',
},
com_nav_lang_traditionalchinese: {
english: '繁體中文',
translated: '繁體中文',
},
com_nav_lang_arabic: {
english: 'العربية',
translated: '阿拉伯語',
},
com_nav_lang_turkish: {
english: 'Türkçe',
translated: 'Türkçe',
},
com_nav_lang_dutch: {
english: 'Nederlands',
translated: '荷蘭文',
},
com_nav_lang_indonesia: {
english: 'Indonesia',
translated: '印尼語',
},
com_nav_lang_hebrew: {
english: 'עברית',
translated: 'עברית',
},
};