From 565b0c5a9c159a89ae963733289d37e9cc114fef Mon Sep 17 00:00:00 2001 From: utin-francis-peter Date: Mon, 7 Oct 2024 16:39:47 +0100 Subject: [PATCH 01/12] chore: rm icon next to question bubble --- frontend/src/conversation/ConversationBubble.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index 3d956e2e..55c773af 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -58,7 +58,6 @@ const ConversationBubble = forwardRef< ref={ref} className={`flex flex-row-reverse self-end flex-wrap ${className}`} > -
Date: Mon, 7 Oct 2024 16:44:00 +0100 Subject: [PATCH 02/12] chore: Source Docs is now Source --- frontend/src/locale/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/locale/en.json b/frontend/src/locale/en.json index f5b48d75..fcd7ba83 100644 --- a/frontend/src/locale/en.json +++ b/frontend/src/locale/en.json @@ -7,7 +7,7 @@ "about": "About", "inputPlaceholder": "Type your message here...", "tagline": "DocsGPT uses GenAI, please review critical information using sources.", - "sourceDocs": "Source Docs", + "sourceDocs": "Source", "none": "None", "cancel": "Cancel", "demo": [ From c95b4d13053cf2505b842741a4984be4be0ea114 Mon Sep 17 00:00:00 2001 From: utin-francis-peter Date: Tue, 8 Oct 2024 10:12:06 +0100 Subject: [PATCH 03/12] Revert "chore: rm icon next to question bubble" This reverts commit 565b0c5a9c159a89ae963733289d37e9cc114fef. --- frontend/src/conversation/ConversationBubble.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index 55c773af..3d956e2e 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -58,6 +58,7 @@ const ConversationBubble = forwardRef< ref={ref} className={`flex flex-row-reverse self-end flex-wrap ${className}`} > +
Date: Tue, 8 Oct 2024 10:18:55 +0100 Subject: [PATCH 04/12] chore: updated lang variant of "Source" across locales --- frontend/src/locale/es.json | 2 +- frontend/src/locale/jp.json | 2 +- frontend/src/locale/zh.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/locale/es.json b/frontend/src/locale/es.json index 98b38d7c..02485261 100644 --- a/frontend/src/locale/es.json +++ b/frontend/src/locale/es.json @@ -7,7 +7,7 @@ "about": "Acerca de", "inputPlaceholder": "Escribe tu mensaje aquí...", "tagline": "DocsGPT utiliza GenAI, por favor revisa información crítica utilizando fuentes.", - "sourceDocs": "Documentos Fuente", + "sourceDocs": "Fuente", "none": "Nada", "cancel": "Cancelar", "demo": [ diff --git a/frontend/src/locale/jp.json b/frontend/src/locale/jp.json index b34cc5e5..331891df 100644 --- a/frontend/src/locale/jp.json +++ b/frontend/src/locale/jp.json @@ -7,7 +7,7 @@ "about": "について", "inputPlaceholder": "ここにメッセージを入力してください...", "tagline": "DocsGPTはGenAIを使用しています。重要な情報はソースで確認してください。", - "sourceDocs": "ソースドキュメント", + "sourceDocs": "ソース", "none": "なし", "cancel": "キャンセル", "demo": [ diff --git a/frontend/src/locale/zh.json b/frontend/src/locale/zh.json index 7decdefe..13eebab2 100644 --- a/frontend/src/locale/zh.json +++ b/frontend/src/locale/zh.json @@ -7,7 +7,7 @@ "about": "关于", "inputPlaceholder": "在这里输入您的消息...", "tagline": "DocsGPT 使用 GenAI, 请使用来源审核关键信息.", - "sourceDocs": "来源文档", + "sourceDocs": "源", "none": "无", "cancel": "取消", "demo": [ From 62af7549c7d9f986c2231ad06708a342fcaeba35 Mon Sep 17 00:00:00 2001 From: utin-francis-peter Date: Tue, 8 Oct 2024 10:34:22 +0100 Subject: [PATCH 05/12] chore: removed mssg icon that's beside a conversationTile name --- frontend/src/conversation/ConversationTile.tsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/frontend/src/conversation/ConversationTile.tsx b/frontend/src/conversation/ConversationTile.tsx index 3a0b85e4..537d6397 100644 --- a/frontend/src/conversation/ConversationTile.tsx +++ b/frontend/src/conversation/ConversationTile.tsx @@ -2,8 +2,6 @@ import { SyntheticEvent, useEffect, useRef, useState } from 'react'; import { useSelector } from 'react-redux'; import Edit from '../assets/edit.svg'; import Exit from '../assets/exit.svg'; -import Message from '../assets/message.svg'; -import MessageDark from '../assets/message-dark.svg'; import { useDarkTheme } from '../hooks'; import ConfirmationModal from '../modals/ConfirmationModal'; import CheckMark2 from '../assets/checkMark2.svg'; @@ -100,10 +98,7 @@ export default function ConversationTile({ }`} >
- +
{isEdit ? ( Date: Tue, 8 Oct 2024 12:36:36 +0100 Subject: [PATCH 06/12] style: adjusted left padding in ConversationTile --- frontend/src/conversation/ConversationTile.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frontend/src/conversation/ConversationTile.tsx b/frontend/src/conversation/ConversationTile.tsx index 537d6397..040ba031 100644 --- a/frontend/src/conversation/ConversationTile.tsx +++ b/frontend/src/conversation/ConversationTile.tsx @@ -91,14 +91,13 @@ export default function ConversationTile({ conversationId !== conversation.id && selectConversation(conversation.id); }} - className={`my-auto mx-4 mt-4 flex h-9 cursor-pointer items-center justify-between gap-4 rounded-3xl hover:bg-gray-100 dark:hover:bg-[#28292E] ${ + className={`my-auto mx-4 mt-4 flex h-9 cursor-pointer items-center justify-between pl-4 gap-4 rounded-3xl hover:bg-gray-100 dark:hover:bg-[#28292E] ${ conversationId === conversation.id || isOpen || isHovered ? 'bg-gray-100 dark:bg-[#28292E]' : '' }`} >
-
{isEdit ? ( Date: Tue, 8 Oct 2024 15:56:48 +0100 Subject: [PATCH 07/12] fix: file check --- application/worker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/worker.py b/application/worker.py index 2000523c..f8f38afa 100755 --- a/application/worker.py +++ b/application/worker.py @@ -131,10 +131,10 @@ def ingest_worker( logging.info(f"Ingest file: {full_path}", extra={"user": user, "job": name_job}) file_data = {"name": name_job, "file": filename, "user": user} - download_file(urljoin(settings.API_URL, "/api/download"), file_data, os.path.join(full_path, filename)) if not os.path.exists(full_path): os.makedirs(full_path) + download_file(urljoin(settings.API_URL, "/api/download"), file_data, os.path.join(full_path, filename)) # check if file is .zip and extract it if filename.endswith(".zip"): From 77f5328ab9a738bc90f4fd384e362a1761d5f0af Mon Sep 17 00:00:00 2001 From: Anas Khafaga Date: Tue, 8 Oct 2024 15:36:48 +0300 Subject: [PATCH 08/12] feat(CI): Build docker images for development purposes --- .github/workflows/docker-develop-build.yml | 49 +++++++++++++++++++ .github/workflows/docker-develop-fe-build.yml | 49 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 .github/workflows/docker-develop-build.yml create mode 100644 .github/workflows/docker-develop-fe-build.yml diff --git a/.github/workflows/docker-develop-build.yml b/.github/workflows/docker-develop-build.yml new file mode 100644 index 00000000..5edc69d7 --- /dev/null +++ b/.github/workflows/docker-develop-build.yml @@ -0,0 +1,49 @@ +name: Build and push DocsGPT Docker image for development + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + deploy: + if: github.repository == 'arc53/DocsGPT' + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Login to ghcr.io + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker images to docker.io and ghcr.io + uses: docker/build-push-action@v4 + with: + file: './application/Dockerfile' + platforms: linux/amd64 + context: ./application + push: true + tags: | + ${{ secrets.DOCKER_USERNAME }}/docsgpt:develop + ghcr.io/${{ github.repository_owner }}/docsgpt:develop + cache-from: type=registry,ref=${{ secrets.DOCKER_USERNAME }}/docsgpt:develop + cache-to: type=inline diff --git a/.github/workflows/docker-develop-fe-build.yml b/.github/workflows/docker-develop-fe-build.yml new file mode 100644 index 00000000..29ad4524 --- /dev/null +++ b/.github/workflows/docker-develop-fe-build.yml @@ -0,0 +1,49 @@ +name: Build and push DocsGPT FE Docker image for development + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + deploy: + if: github.repository == 'arc53/DocsGPT' + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Login to ghcr.io + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker images to docker.io and ghcr.io + uses: docker/build-push-action@v4 + with: + file: './frontend/Dockerfile' + platforms: linux/amd64 + context: ./frontend + push: true + tags: | + ${{ secrets.DOCKER_USERNAME }}/docsgpt-fe:develop + ghcr.io/${{ github.repository_owner }}/docsgpt-fe:develop + cache-from: type=registry,ref=${{ secrets.DOCKER_USERNAME }}/docsgpt-fe:develop + cache-to: type=inline From b7f00324bcba35f97ed503aed949a619249d91c0 Mon Sep 17 00:00:00 2001 From: Anas Khafaga Date: Tue, 8 Oct 2024 16:28:45 +0300 Subject: [PATCH 09/12] feat(CI): Build docker images --- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/cife.yml | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d620820..2ea8961f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,8 @@ name: Build and push DocsGPT Docker image on: - workflow_dispatch: - push: - branches: - - main + release: + types: [published] jobs: deploy: @@ -43,5 +41,7 @@ jobs: context: ./application push: true tags: | - ${{ secrets.DOCKER_USERNAME }}/docsgpt:latest - ghcr.io/${{ github.repository_owner }}/docsgpt:latest + ${{ secrets.DOCKER_USERNAME }}/docsgpt:${{ github.event.release.tag_name }},${{ secrets.DOCKER_USERNAME }}/docsgpt:latest + ghcr.io/${{ github.repository_owner }}/docsgpt:${{ github.event.release.tag_name }},ghcr.io/${{ github.repository_owner }}/docsgpt:latest + cache-from: type=registry,ref=${{ secrets.DOCKER_USERNAME }}/docsgpt:latest + cache-to: type=inline diff --git a/.github/workflows/cife.yml b/.github/workflows/cife.yml index 67aadfbb..73a97755 100644 --- a/.github/workflows/cife.yml +++ b/.github/workflows/cife.yml @@ -1,10 +1,8 @@ name: Build and push DocsGPT-FE Docker image on: - workflow_dispatch: - push: - branches: - - main + release: + types: [published] jobs: deploy: @@ -44,5 +42,7 @@ jobs: context: ./frontend push: true tags: | - ${{ secrets.DOCKER_USERNAME }}/docsgpt-fe:latest - ghcr.io/${{ github.repository_owner }}/docsgpt-fe:latest + ${{ secrets.DOCKER_USERNAME }}/docsgpt-fe:${{ github.event.release.tag_name }},${{ secrets.DOCKER_USERNAME }}/docsgpt-fe:latest + ghcr.io/${{ github.repository_owner }}/docsgpt-fe:${{ github.event.release.tag_name }},ghcr.io/${{ github.repository_owner }}/docsgpt-fe:latest + cache-from: type=registry,ref=${{ secrets.DOCKER_USERNAME }}/docsgpt-fe:latest + cache-to: type=inline From 8308bd0039308a46bda0068a49532022ec606b8e Mon Sep 17 00:00:00 2001 From: Mousumi Pal Date: Tue, 8 Oct 2024 23:00:11 +0530 Subject: [PATCH 10/12] Fix: Prevent flash in dark mode --- frontend/src/App.tsx | 7 ++++--- frontend/src/hooks/index.ts | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 0537e695..1455f495 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -3,7 +3,6 @@ import Navigation from './Navigation'; import Conversation from './conversation/Conversation'; import About from './About'; import PageNotFound from './PageNotFound'; -import { inject } from '@vercel/analytics'; import { useMediaQuery } from './hooks'; import { useState } from 'react'; import Setting from './settings'; @@ -11,7 +10,6 @@ import './locale/i18n'; import { Outlet } from 'react-router-dom'; import { SharedConversation } from './conversation/SharedConversation'; import { useDarkTheme } from './hooks'; -inject(); function MainLayout() { const { isMobile } = useMediaQuery(); @@ -34,7 +32,10 @@ function MainLayout() { } export default function App() { - useDarkTheme(); + const [,,componentMounted] = useDarkTheme(); + if(!componentMounted) { + return
+ } return (
diff --git a/frontend/src/hooks/index.ts b/frontend/src/hooks/index.ts index dfb9cb46..b993f3da 100644 --- a/frontend/src/hooks/index.ts +++ b/frontend/src/hooks/index.ts @@ -82,6 +82,7 @@ export function useDarkTheme() { }; const [isDarkTheme, setIsDarkTheme] = useState(getInitialTheme()); + const [componentMounted, setComponentMounted] = useState(false); useEffect(() => { const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); @@ -102,11 +103,12 @@ export function useDarkTheme() { } else { document.body?.classList.remove('dark'); } + setComponentMounted(true); }, [isDarkTheme]); const toggleTheme = () => { setIsDarkTheme(!isDarkTheme); }; - return [isDarkTheme, toggleTheme] as const; + return [isDarkTheme, toggleTheme, componentMounted] as const; } From 5ea8706ba91e0f757927fdf4ff63d30aff9abe46 Mon Sep 17 00:00:00 2001 From: yeger00 Date: Tue, 8 Oct 2024 21:11:21 +0300 Subject: [PATCH 11/12] Fix some typos --- HACKTOBERFEST.md | 2 +- docs/pages/Guides/How-to-train-on-other-documentation.mdx | 6 +++--- docs/pages/Guides/How-to-use-different-LLM.mdx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/HACKTOBERFEST.md b/HACKTOBERFEST.md index 47679960..18b3d468 100644 --- a/HACKTOBERFEST.md +++ b/HACKTOBERFEST.md @@ -4,7 +4,7 @@ Welcome, contributors! We're excited to announce that DocsGPT is participating i All contributors with accepted PRs will receive a cool Holopin! 🤩 (Watch out for a reply in your PR to collect it). -### 🏆 Top 50 contributors will recieve a special T-shirt +### 🏆 Top 50 contributors will receive a special T-shirt ### 🏆 [LLM Document analysis by LexEU competition](https://github.com/arc53/DocsGPT/blob/main/lexeu-competition.md): A separate competition is available for those who submit new retrieval / workflow method that will analyze a Document using EU laws. diff --git a/docs/pages/Guides/How-to-train-on-other-documentation.mdx b/docs/pages/Guides/How-to-train-on-other-documentation.mdx index e5429a04..f0149618 100644 --- a/docs/pages/Guides/How-to-train-on-other-documentation.mdx +++ b/docs/pages/Guides/How-to-train-on-other-documentation.mdx @@ -28,15 +28,15 @@ Navigate to the sidebar where you will find `Source Docs` option,here you will f ### Step 2 -Click on the `Upload icon` just beside the source docs options,now borwse and upload the document which you want to train on or select the `remote` option if you have to insert the link of the documentation. +Click on the `Upload icon` just beside the source docs options,now browse and upload the document which you want to train on or select the `remote` option if you have to insert the link of the documentation. ### Step 3 -Now you will be able to see the name of the file uploaded under the Uploaded Files ,now click on `Train`,once you click on train it might take some time to train on the document. You will be able to see the `Training progress` and once the training is completed you can click the `finish` button and there you go your docuemnt is uploaded. +Now you will be able to see the name of the file uploaded under the Uploaded Files ,now click on `Train`,once you click on train it might take some time to train on the document. You will be able to see the `Training progress` and once the training is completed you can click the `finish` button and there you go your document is uploaded. ### Step 4 -Go to `New chat` and from the side bar select the document you uploaded under the `Source Docs` and go ahead with your chat, now you can ask qestions regarding the document you uploaded and you will get the effective answer based on it. +Go to `New chat` and from the side bar select the document you uploaded under the `Source Docs` and go ahead with your chat, now you can ask questions regarding the document you uploaded and you will get the effective answer based on it. diff --git a/docs/pages/Guides/How-to-use-different-LLM.mdx b/docs/pages/Guides/How-to-use-different-LLM.mdx index 7df77742..c867fdcc 100644 --- a/docs/pages/Guides/How-to-use-different-LLM.mdx +++ b/docs/pages/Guides/How-to-use-different-LLM.mdx @@ -33,7 +33,7 @@ For open source you have to edit .env file with LLM_NAME with their desired LLM All the supported LLM providers are here application/llm and you can check what env variable are needed for each List of latest supported LLMs are https://github.com/arc53/DocsGPT/blob/main/application/llm/llm_creator.py ### Step 3 -Visit application/llm and select the file of your selected llm and there you will find the speicifc requirements needed to be filled in order to use it,i.e API key of that llm. +Visit application/llm and select the file of your selected llm and there you will find the specific requirements needed to be filled in order to use it,i.e API key of that llm. ### For OpenAI-Compatible Endpoints: From 8bcf7bdade2cd55a3fbaf74e98212e813b749924 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 19 Aug 2024 21:40:49 +0800 Subject: [PATCH 12/12] Add Traditional Chinese(zhTW) locale --- frontend/src/locale/i18n.ts | 4 + frontend/src/locale/zh-TW.json | 130 +++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 frontend/src/locale/zh-TW.json diff --git a/frontend/src/locale/i18n.ts b/frontend/src/locale/i18n.ts index dbf5ae1b..674a3467 100644 --- a/frontend/src/locale/i18n.ts +++ b/frontend/src/locale/i18n.ts @@ -6,6 +6,7 @@ import en from './en.json'; //English import es from './es.json'; //Spanish import jp from './jp.json'; //Japanese import zh from './zh.json'; //Mandarin +import zhTW from './zh-TW.json'; //Traditional Chinese i18n .use(LanguageDetector) @@ -24,6 +25,9 @@ i18n zh: { translation: zh, }, + "zh-TW": { + translation: zhTW, + }, }, fallbackLng: 'en', detection: { diff --git a/frontend/src/locale/zh-TW.json b/frontend/src/locale/zh-TW.json new file mode 100644 index 00000000..e91005b5 --- /dev/null +++ b/frontend/src/locale/zh-TW.json @@ -0,0 +1,130 @@ +{ + "language": "繁體中文(臺灣)", + "chat": "對話", + "chats": "對話", + "newChat": "新對話", + "myPlan": "我的方案", + "about": "關於", + "inputPlaceholder": "在此輸入您的訊息...", + "tagline": "DocsGPT 使用生成式 AI,請使用原始資料來源審閱重要資訊。", + "sourceDocs": "原始文件", + "none": "無", + "cancel": "取消", + "demo": [ + { + "header": "了解 DocsGPT", + "query": "什麼是 DocsGPT?" + }, + { + "header": "摘要文件", + "query": "摘要目前的內容" + }, + { + "header": "撰寫程式碼", + "query": "為 /api/answer 撰寫 API 請求程式碼" + }, + { + "header": "學習輔助", + "query": "為此內容撰寫可能的問題" + } + ], + "settings": { + "label": "設定", + "general": { + "label": "一般", + "selectTheme": "選擇主題", + "light": "淺色", + "dark": "深色", + "selectLanguage": "選擇語言", + "chunks": "每次查詢處理的區塊數", + "prompt": "使用中的提示", + "deleteAllLabel": "刪除所有對話", + "deleteAllBtn": "全部刪除", + "addNew": "新增", + "convHistory": "對話歷史記錄", + "none": "無", + "low": "低", + "medium": "中", + "high": "高", + "unlimited": "無限制", + "default": "預設" + }, + "documents": { + "label": "文件", + "name": "文件名稱", + "date": "向量日期", + "type": "類型", + "tokenUsage": "Token 使用量" + }, + "apiKeys": { + "label": "API 金鑰", + "name": "名稱", + "key": "API 金鑰", + "sourceDoc": "來源文件", + "createNew": "新增" + }, + "analytics": { + "label": "分析" + }, + "logs": { + "label": "日誌" + } + }, + "modals": { + "uploadDoc": { + "label": "上傳新文件", + "file": "從檔案", + "remote": "遠端", + "name": "名稱", + "choose": "選擇檔案", + "info": "請上傳 .pdf, .txt, .rst, .docx, .md, .zip 檔案,大小限制為 25MB", + "uploadedFiles": "已上傳的檔案", + "cancel": "取消", + "train": "訓練", + "link": "連結", + "urlLink": "URL 連結", + "reddit": { + "id": "用戶端 ID", + "secret": "用戶端金鑰", + "agent": "使用者代理(User-Agent)", + "searchQueries": "搜尋查詢", + "numberOfPosts": "貼文數量" + } + }, + "createAPIKey": { + "label": "建立新的 API 金鑰", + "apiKeyName": "API 金鑰名稱", + "chunks": "每次查詢處理的區塊數", + "prompt": "選擇使用中的提示", + "sourceDoc": "來源文件", + "create": "建立" + }, + "saveKey": { + "note": "請儲存您的金鑰", + "disclaimer": "這是唯一一次顯示您的金鑰。", + "copy": "複製", + "copied": "已複製", + "confirm": "我已儲存金鑰" + }, + "deleteConv": { + "confirm": "您確定要刪除所有對話嗎?", + "delete": "刪除" + }, + "shareConv": { + "label": "建立公開頁面以分享", + "note": "來源文件、個人資訊和後續對話將保持私密", + "create": "建立" + } + }, + "sharedConv": { + "subtitle": "使用以下工具建立", + "button": "開始使用 DocsGPT", + "meta": "DocsGPT 使用生成式 AI,請使用原始資料來源審閱重要資訊。" + }, + "convTile": { + "share": "分享", + "delete": "刪除", + "rename": "重新命名", + "deleteWarning": "您確定要刪除這個對話嗎?" + } +}