From 62d5d19addbc7019df4a8524f107baf121eb66d2 Mon Sep 17 00:00:00 2001 From: zewebdev1337 <112774130+zewebdev1337@users.noreply.github.com> Date: Mon, 22 May 2023 09:24:01 -0600 Subject: [PATCH 01/12] Create API key display and removal logic --- src/components/ApiMenu/ApiMenu.tsx | 43 ++++++++++++++++++++-------- src/components/ApiPopup/ApiPopup.tsx | 41 +++++++++++++++++--------- 2 files changed, 59 insertions(+), 25 deletions(-) diff --git a/src/components/ApiMenu/ApiMenu.tsx b/src/components/ApiMenu/ApiMenu.tsx index 12a3b5dcd..25b230d08 100644 --- a/src/components/ApiMenu/ApiMenu.tsx +++ b/src/components/ApiMenu/ApiMenu.tsx @@ -34,6 +34,11 @@ const ApiMenu = ({ setIsModalOpen(false); }; + const handleRemove = () => { + setApiKey(''); + _setApiKey(''); + }; + const handleToggleCustomEndpoint = () => { if (_customEndpoint) _setApiEndpoint(defaultAPIEndpoint); else _setApiEndpoint(''); @@ -78,19 +83,33 @@ const ApiMenu = ({ )} -
-
- {t('apiKey.inputLabel', { ns: 'api' })} + {apiKey && apiKey.length > 0 ? ( +
+
+ API Key Set + +
- { - _setApiKey(e.target.value); - }} - /> -
+ ) : ( +
+
+ {t('apiKey.inputLabel', { ns: 'api' })} +
+ { + _setApiKey(e.target.value); + }} + /> +
+ )}

diff --git a/src/components/ApiPopup/ApiPopup.tsx b/src/components/ApiPopup/ApiPopup.tsx index 42f42ae2e..148e3d211 100644 --- a/src/components/ApiPopup/ApiPopup.tsx +++ b/src/components/ApiPopup/ApiPopup.tsx @@ -29,6 +29,11 @@ const ApiPopup = () => { } }; + const handleRemove = () => { + setApiKey(''); + _setApiKey(''); + }; + useEffect(() => { setFirstVisit(false); }, []); @@ -41,20 +46,30 @@ const ApiPopup = () => { cancelButton={false} >

-
-
- {t('apiKey.inputLabel', { ns: 'api' })} + {apiKey && apiKey.length > 0 ? ( +
+
+ API Key Set + +
- { - _setApiKey(e.target.value); - }} - /> -
- + ) : ( +
+
+ {t('apiKey.inputLabel', { ns: 'api' })} +
+ { + _setApiKey(e.target.value); + }} + /> +
+ )}
Date: Thu, 25 May 2023 19:13:48 +0900 Subject: [PATCH 02/12] Update: toggle shareGPT --- src/components/SettingsMenu/SettingsMenu.tsx | 2 ++ .../SettingsMenu/ShareGPTToggle.tsx | 28 +++++++++++++++++++ src/components/ShareGPT/ShareGPT.tsx | 5 ++-- src/store/config-slice.ts | 9 ++++++ src/store/store.ts | 1 + 5 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 src/components/SettingsMenu/ShareGPTToggle.tsx diff --git a/src/components/SettingsMenu/SettingsMenu.tsx b/src/components/SettingsMenu/SettingsMenu.tsx index b4431dbe2..a287fa70e 100644 --- a/src/components/SettingsMenu/SettingsMenu.tsx +++ b/src/components/SettingsMenu/SettingsMenu.tsx @@ -16,6 +16,7 @@ import ChatConfigMenu from '@components/ChatConfigMenu'; import EnterToSubmitToggle from './EnterToSubmitToggle'; import TotalTokenCost, { TotalTokenCostToggle } from './TotalTokenCost'; import ClearConversation from '@components/Menu/MenuOptions/ClearConversation'; +import ShareGPTToggle from './ShareGPTToggle'; const SettingsMenu = () => { const { t } = useTranslation(); @@ -51,6 +52,7 @@ const SettingsMenu = () => { +
diff --git a/src/components/SettingsMenu/ShareGPTToggle.tsx b/src/components/SettingsMenu/ShareGPTToggle.tsx new file mode 100644 index 000000000..cfbd92202 --- /dev/null +++ b/src/components/SettingsMenu/ShareGPTToggle.tsx @@ -0,0 +1,28 @@ +import React, { useEffect, useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import useStore from '@store/store'; +import Toggle from '@components/Toggle'; + +const ShareGPTToggle = () => { + const { t } = useTranslation(); + + const setShareGPT = useStore((state) => state.setShareGPT); + + const [isChecked, setIsChecked] = useState( + useStore.getState().shareGPT + ); + + useEffect(() => { + setShareGPT(isChecked); + }, [isChecked]); + + return ( + + ); +}; + +export default ShareGPTToggle; diff --git a/src/components/ShareGPT/ShareGPT.tsx b/src/components/ShareGPT/ShareGPT.tsx index 12e4593c4..ef6b2cced 100644 --- a/src/components/ShareGPT/ShareGPT.tsx +++ b/src/components/ShareGPT/ShareGPT.tsx @@ -9,6 +9,7 @@ import { ShareGPTSubmitBodyInterface } from '@type/api'; const ShareGPT = React.memo(() => { const { t } = useTranslation(); const [isModalOpen, setIsModalOpen] = useState(false); + const isAvailable = useStore((state) => state.shareGPT); const handleConfirm = async () => { const chats = useStore.getState().chats; @@ -40,14 +41,14 @@ const ShareGPT = React.memo(() => { return ( <> - + ) } {isModalOpen && ( void; setTheme: (theme: Theme) => void; setAutoTitle: (autoTitle: boolean) => void; + setShareGPT: (autoTitle: boolean) => void; setAdvancedMode: (advancedMode: boolean) => void; setDefaultChatConfig: (defaultChatConfig: ConfigInterface) => void; setDefaultSystemMessage: (defaultSystemMessage: string) => void; @@ -38,6 +40,7 @@ export const createConfigSlice: StoreSlice = (set, get) => ({ hideMenuOptions: false, hideSideMenu: false, autoTitle: false, + shareGPT: false, enterToSubmit: true, advancedMode: true, defaultChatConfig: _defaultChatConfig, @@ -64,6 +67,12 @@ export const createConfigSlice: StoreSlice = (set, get) => ({ autoTitle: autoTitle, })); }, + setShareGPT: (shareGPT: boolean) => { + set((prev: ConfigSlice) => ({ + ...prev, + shareGPT: shareGPT, + })); + }, setAdvancedMode: (advancedMode: boolean) => { set((prev: ConfigSlice) => ({ ...prev, diff --git a/src/store/store.ts b/src/store/store.ts index 69aba7de0..c29c49077 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -46,6 +46,7 @@ export const createPartializedState = (state: StoreState) => ({ apiEndpoint: state.apiEndpoint, theme: state.theme, autoTitle: state.autoTitle, + shareGPT: state.shareGPT, advancedMode: state.advancedMode, prompts: state.prompts, defaultChatConfig: state.defaultChatConfig, From a2de671c8e673224df2cc317fecf751694854c2f Mon Sep 17 00:00:00 2001 From: 3Kmfi6HP <58669916+3Kmfi6HP@users.noreply.github.com> Date: Thu, 1 Jun 2023 15:42:33 +0700 Subject: [PATCH 03/12] add pwa --- index.html | 8 ++++++++ public/manifest.json | 26 ++++++++++++++++++++++++++ public/sw.js | 20 ++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 public/manifest.json create mode 100644 public/sw.js diff --git a/index.html b/index.html index a698b3675..24b0bca9b 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,7 @@ + Better ChatGPT +
diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 000000000..cdeaae4d2 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,26 @@ +{ + "short_name": "BetterChatGPT", + "name": "Better ChatGPT", + "description": "Play and chat smarter with BetterChatGPT - an amazing open-source web app with a better UI for exploring OpenAI's ChatGPT API!", + "start_url": "/", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#ffffff", + "icons": [ + { + "src": "apple-touch-icon.png", + "sizes": "180x180", + "type": "image/png" + }, + { + "src": "favicon-32x32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "favicon-16x16.png", + "sizes": "16x16", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/public/sw.js b/public/sw.js new file mode 100644 index 000000000..68116b302 --- /dev/null +++ b/public/sw.js @@ -0,0 +1,20 @@ +self.addEventListener('install', (event) => { + event.waitUntil( + caches.open('better-chatgpt-cache').then((cache) => { + return cache.addAll([ + '/', + '/apple-touch-icon.png', + '/favicon-32x32.png', + '/favicon-16x16.png' + ]); + }) + ); +}); + +self.addEventListener('fetch', (event) => { + event.respondWith( + caches.match(event.request).then((response) => { + return response || fetch(event.request); + }) + ); +}); From e7054e81a9d0b9a6d37443b126be2fd4ba1ab9c4 Mon Sep 17 00:00:00 2001 From: 3Kmfi6HP <58669916+3Kmfi6HP@users.noreply.github.com> Date: Thu, 1 Jun 2023 15:53:55 +0700 Subject: [PATCH 04/12] cache dir /assets/ --- public/sw.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/public/sw.js b/public/sw.js index 68116b302..0b6906bc6 100644 --- a/public/sw.js +++ b/public/sw.js @@ -12,9 +12,13 @@ self.addEventListener('install', (event) => { }); self.addEventListener('fetch', (event) => { - event.respondWith( - caches.match(event.request).then((response) => { - return response || fetch(event.request); - }) - ); + const requestURL = new URL(event.request.url); + // 缓存 /assets/ 下的文件 + if (requestURL.pathname.startsWith('/assets/')) { + event.respondWith( + caches.match(event.request).then(response => { + return response || fetch(event.request); + }) + ); + } }); From 2ac5d091a7ae938f8ec2e7db6946abc5387ce97a Mon Sep 17 00:00:00 2001 From: 3Kmfi6HP <58669916+3Kmfi6HP@users.noreply.github.com> Date: Thu, 1 Jun 2023 16:49:16 +0700 Subject: [PATCH 05/12] add thai language --- public/locales/th/about.json | 27 +++++++++++++++++++++ public/locales/th/api.json | 15 ++++++++++++ public/locales/th/drive.json | 16 ++++++++++++ public/locales/th/main.json | 47 ++++++++++++++++++++++++++++++++++++ public/locales/th/model.json | 28 +++++++++++++++++++++ src/constants/language.ts | 3 +++ 6 files changed, 136 insertions(+) create mode 100644 public/locales/th/about.json create mode 100644 public/locales/th/api.json create mode 100644 public/locales/th/drive.json create mode 100644 public/locales/th/main.json create mode 100644 public/locales/th/model.json diff --git a/public/locales/th/about.json b/public/locales/th/about.json new file mode 100644 index 000000000..3ca81cfd5 --- /dev/null +++ b/public/locales/th/about.json @@ -0,0 +1,27 @@ +{ + "description": "Better ChatGPT เป็น Web แอปพิเคชันโอเพ่นซอร์สที่น่าทึ่ง ที่ช่วยให้คุณสามารถติดต่อสื่อสารกับ ChatGPT API ของ OpenAI ได้ฟรี!", + "sourceCode": "ลองดู<0>ซอร์สโค้ดบน GitHub และให้⭐️!", + "initiative": { + "description": "เช็คออกเรื่อง《<0>ก้าวที่เปิดให้ถือว่าน่าสนใจของ ChatGPT》!", + "link": "https://medium.com/@ayaka_90553/%E5%BC%80%E6%94%BE-chatgpt-%E5%80%A1%E8%AE%AE-eaac01243dae" + }, + "support": { + "title": "การสนับสนุน", + "paragraph1": "ที่ Better ChatGPT เรามุ่งมั่นที่จะให้คุณมลุณฑาคุณประโยชน์และฟีเจอร์ที่น่าทึ่ง ตระหนักถึงความสำคัญของการสนับสนุนและกำลังใจของทุกคนในโครงการของเราเพื่อขับเคลื่อน!", + "paragraph2": "หากคุณชอบใช้แอปพลิเคชันของเรา เราขอให้ความสนใจให้ดาว⭐️ ให้<0>โครงการหนึ่งในดวงนี้ คำขอบคุณของคุณที่นี่เป็นสิ่งสำคัญมากในการขับเคลื่อนความพยายามของเราเพื่อให้ประสบการณ์ที่ดีที่สุด", + "paragraph3": "หากคุณต้องการสนับสนุนทีมของเรา โปรดพิจารณาสนับสนุนเราด้วยวิธีการด้านล่างนี้ ความสนับสนุนไม่ว่าจะเล็กหรือใหญ่จากทุกคนช่วยให้เราสามารถปรับปรุงและรักษาบริการที่ดีของเรา", + "paragraph4": "ขอบคุณที่เป็นส่วนหนึ่งของชุมชนของเรา หาอยู่ตรงนี้เพื่อให้บริการดีกว่าในอนาคต", + "alipay": "Alipay", + "wechatPay": "WeChat" + }, + "discordServer": { + "title": "เซิร์ฟเวอร์ Discord", + "paragraph1": "เราขอเชิญคุณเข้าร่วมชุมชน Discord ของเรา! เซิร์ฟเวอร์ Discord ของเราเป็นสถานที่ที่คุณจะได้อุ้มความคิดเห็นและเทคนิคสำหรับ ChatGPT และเสนอคำขอฟีเจอร์สำหรับ Better ChatGPT คุณจะสามารถสื่อสารกับนักพัฒนา Better ChatGPT และผู้ที่ขบเขียนแชทหุ่นยนต์ที่แสดงความรักกับคุณ", + "paragraph2": "เพื่อเข้าร่วมเซิร์ฟเวอร์ของเรา คลิกลิงก์ต่อไปนี้: <0>https://discord.gg/g3Qnwy4V6A เราหวังที่จะพบคุณที่นั่น!" + }, + "privacyStatement": { + "title": "ความเป็นส่วนตัว", + "paragraph1": "เราเสียใจกับความเป็นส่วนตัวของคุณและพยายามปกป้องความเป็นส่วนตัวของผู้ใช้ เราไม่มีในการเก็บข้อมูลหรือเก็บข้อความใด ๆ ที่คุณป้อนหรือรับจากเซิร์ฟเวอร์ OpenAI ณ ซอร์สโค้ดของเราสามารถตรวจสอบเพื่อยืนยันว่าข้อความนี้เป็นความจริง", + "paragraph2": "เราให้ความสำคัญสูงสุดต่อความปลอดภัยของคีย์ API ของคุณและใช้ละเอียดอ่อนในการจัดการ หากคุณใช้คีย์ API ของคุณเอง คีย์ของคุณจะถูกเก็บอยู่ที่เบราว์เซอร์ของคุณคนเดียว และไม่เคยใช้กับที่ตั้งที่สามใด ๆ คีย์นี้จะใช้เฉพาะกับวัตถุประสงค์อันตรายที่เผชิญในการเข้าถึง OpenAI API และไม่มีการใช้ที่ไม่ได้รับอนุญาตหลายอย่าง" + } +} \ No newline at end of file diff --git a/public/locales/th/api.json b/public/locales/th/api.json new file mode 100644 index 000000000..3cbab644c --- /dev/null +++ b/public/locales/th/api.json @@ -0,0 +1,15 @@ +{ + "securityMessage": "เราให้ความสำคัญสูงสุดในการควบคุมความปลอดภัยของคีย์ API ของคุณ และจัดการอย่างระมัดระวัง คีย์ของคุณจะถูกเก็บอย่างเฉพาะในเบราว์เซอร์ของคุณ และไม่เคยแชร์กับเอนทิตีที่สามใด ๆ และใช้เพื่อเข้าถึง API OpenAI เฉพาะนามในที่สำหรับการใช้งานที่ได้รับอนุญาต", + "apiEndpoint": { + "inputLabel": "จุดเชื่อมต่อ API", + "description": "เมื่อเลือก API ที่ไม่ใช่ทางการจุดเชื่อมต่อจะทำหน้าที่เป็นพร็อกซี พร็อกซีใช้เป็นตัวกลางระหว่างอุปกรณ์ของคุณและเซิร์ฟเวอร์เป้าหมาย (ในกรณีนี้คือ API OpenAI) โดยการกระทำนี้คุณสามารถเข้าถึง API OpenAI ในพื้นที่ที่ถูกจำกัด", + "warn": "นอกจากนี้ หากคุณให้ API ที่กำหนดเองและสามารถใช้งานสิทธิ์การเข้าถึง API ของ OpenAI ฟรี คุณสามารถใช้ ChatGPT โดยไม่ต้องระบุคีย์ API ด้วยการเว้นว่างช่อง API key อย่างไรก็ตามในการใช้งานที่ไม่เชื่อถือที่จุดเชื่อมต่อ API อาจทำการบันทึกข้อมูลส่วนตัวของคุณในการสนทนา กรุณาตรวจสอบความน่าเชื่อถือของ API endpoint ก่อนใช้งานเพื่อปกป้องความเป็นส่วนตัวและความปลอดภัยของคุณ" + }, + "apiKey": { + "howTo": "รับคีย์ API ส่วนตัวของคุณ<0>ที่นี่", + "inputLabel": "คีย์ API" + }, + "customEndpoint": "ใช้จุดเชื่อมต่อ API ที่กำหนดเอง", + "advancedConfig": "ดูการตั้งค่า API ขั้นสูง<0>ที่นี่", + "noApiKeyWarning": "ขาดคีย์ API โปรดตรวจสอบการตั้งค่า API" +} \ No newline at end of file diff --git a/public/locales/th/drive.json b/public/locales/th/drive.json new file mode 100644 index 000000000..379e18163 --- /dev/null +++ b/public/locales/th/drive.json @@ -0,0 +1,16 @@ +{ + "name": "Google Sync", + "tagline": "รวมลุ่มทำงานอัตโนมัติด้วยการซิงค์ข้อมูลและตั้งค่าของคุณกับ Google Drive.", + "button": { + "sync": "ซิงค์การสนทนาของคุณ", + "stop": "หยุดการซิงค์", + "create": "สร้างไฟล์ใหม่", + "confirm": "ยืนยันการเลือก" + }, + "notice": "หมายเหตุ: คุณจำเป็นต้องเข้าสู่ระบบใหม่ในทุกครั้งที่เยี่ยมชมหรือทุกๆ ชั่วโมง. เพื่อป้องกันข้อมูลบนคลาวด์ของคุณจากการโดนเขียนทับ ไม่ควรใช้ Better ChatGPT พร้อมกันบนมากกว่าหนึ่งอุปกรณ์ในเวลาเดียวกัน.", + "privacy": "ความเป็นส่วนตัวของคุณสำคัญกับเรา และเพื่อให้มั่นใจด้านความเป็นส่วนตัว Better ChatGPT สามารถเข้าถึงแบบไม่ผันผวน มีความหมายว่าสามารถสร้าง ดู และจัดการไฟล์และโฟลเดอร์ส่วนตัวของมันเท่านั้น.", + "toast": { + "sync": "ซิงค์สำเร็จ!", + "stop": "หยุดการซิงค์แล้ว" + } +} \ No newline at end of file diff --git a/public/locales/th/main.json b/public/locales/th/main.json new file mode 100644 index 000000000..4cda8e17c --- /dev/null +++ b/public/locales/th/main.json @@ -0,0 +1,47 @@ +{ + "save": "บันทึก", + "saveAndSubmit": "บันทึกและส่ง", + "cancel": "ยกเลิก", + "confirm": "ยืนยัน", + "warning": "คำเตือน", + "clearMessageWarning": "โปรดทราบว่าหากรายการข้อความนี้ถูกส่ง ข้อความต่อไปที่นำไปใช้ในการสนทนาจะถูกลบออก!", + "clearConversationWarning": "โปรดทราบว่าการยืนยันการดำเนินการนี้จะลบข้อความทั้งหมด!", + "clearConversation": "ล้างการสนทนา", + "import": "นำเข้า", + "export": "ส่งออก", + "author": "สร้างโดย Jing Hua", + "about": "เกี่ยวกับและการสนับสนุน", + "api": "API", + "personal": "ส่วนตัว", + "free": "ฟรี", + "downloadChat": "ดาวน์โหลดประวัติการสนทนา", + "user": "ผู้ใช้", + "assistant": "ผู้ช่วย", + "system": "ระบบ", + "newChat": "การสนทนาใหม่", + "lightMode": "โหมดสว่าง", + "darkMode": "โหมดมืด", + "setting": "ตั้งค่า", + "image": "รูปภาพ", + "autoTitle": "สร้างชื่อเรื่องอัตโนมัติ", + "advancedMode": "โหมดขั้นสูง", + "inlineLatex": "Latex แบบอินไลน์", + "prompt": "คำเรียกร้อง", + "promptLibrary": "คลังคำนำ", + "name": "ชื่อ", + "search": "ค้นหา", + "total": "ทั้งหมด", + "resetCost": "รีเซ็ตราคา", + "countTotalTokens": "นับจำนวน Token ทั้งหมด", + "morePrompts": "คำเรียกร้องเพิ่มเติมคลิกที่นี่:", + "clearPrompts": "ล้างคำเรียกร้อง", + "postOnShareGPT": { + "title": "โพสต์ลงบน ShareGPT", + "warning": "โปรดทราบว่าการโพสต์บทสนทนาของคุณลงบน ShareGPT จะทำให้ทุกคนสามารถเข้าถึงและดูได้อย่างสาธารณะหลังจากโพสต์คุณจะไม่สามารถซ่อนหรือลบการสนทนาได้ และอาจถูกบุคคลอื่นจัดเก็บหรือแบ่งปัน เราแนะนำให้ใช้ความระมัดระวังและหลีกเลี่ยงการแชร์ข้อมูลที่ละเอียดยิบหรือส่วนตัวในแพลตฟอร์มนี้." + }, + "newFolder": "โฟลเดอร์ใหม่", + "cloneChat": "สร้างสำเนาของการสนทนา", + "cloned": "สำเนาถูกสร้างขึ้น", + "enterToSubmit": "กด Enter เพื่อส่ง", + "submitPlaceholder": "พิมพ์ข้อความหรือคลิก [/] เพื่อใช้คำเรียกร้อง..." +} \ No newline at end of file diff --git a/public/locales/th/model.json b/public/locales/th/model.json new file mode 100644 index 000000000..c340b1b2b --- /dev/null +++ b/public/locales/th/model.json @@ -0,0 +1,28 @@ +{ + "configuration": "การตั้งค่า", + "model": "แบบจำลอง", + "token": { + "label": "โทเค็นสูงสุด", + "description": "จำนวนโทเค็นสูงสุดที่ผู้ช่วยสามารถสร้างข้อมูลในข้อความเดียว โทเค็นสูงสุดยังต้องอยู่ภายใต้ข้อจำกัดของความยาวทั้งหมดของโมเดล ซึ่งจำนวนโทเค็นคงเหลือจากเนื้อหาเดิมและโทเค็นที่สร้างขึ้นไม่ควรเกินจำนวนโทเค็นทั้งหมดของโมเดล (เช่น gpt-3.5-turbo มีโทเค็นสูงสุดอยู่ที่ 4096)。" + }, + "default": "ค่าเริ่มต้น", + "temperature": { + "label": "อุณหภูมิการสุ่ม", + "description": "กำหนดค่าอุณหภูมิสำหรับการสุ่ม ค่าอยู่ระหว่าง 0 ถึง 2 ค่าที่สูงเช่น 0.8 จะทำให้ผลลัพธ์แปรปรวนมากขึ้นและค่าที่ต่ำเช่น 0.2 จะทำให้ผลลัพธ์มีความเข้มข้นและยั่งยืนขึ้น ตัวเลือกทั่วไปคือปรับเท่านี้หรือ Top-p แต่ไม่ควรปรับทั้งสองข้อพร้อมกัน (ค่าเริ่มต้น: 1)" + }, + "presencePenalty": { + "label": "โทษสำหรับความสัมพันธ์", + "description": "ค่าอยู่ระหว่าง -2.0 ถึง 2.0 ค่าบวกจะลงโทษโทเค็นใหม่ที่ปรากฏในข้อความโดยพิจารณาว่ามันได้ปรากฏก่อนหน้านี้หรือไม่ เพิ่มความน่าจะเป็นของโมเดลในการสนทนาในหัวข้อใหม่ (ค่าเริ่มต้น: 0)" + }, + "topP": { + "label": "Top-p", + "description": "ค่าอยู่ระหว่าง 0 ถึง 1 ตัวตั้งค่าที่เปลี่ยนแปลงคุณภาพิจารณ์จากอุณหภูมิการสุ่ม โมเดลจะพิจารณาเฉพาะโทเค็นที่มีความน่าจะเป็นสูงสุดที่ประกอบกับ Top-p ดังนั้น 0.1 หมายความว่าจะพิจารณาเฉพาะโทเค็นที่มีความความน่าจะเป็นควบคุม 10% ของความน่าจะเป็นทั้งหมด เราขอแนะนำให้ปรับค่านี้หรืออุณหภูมิการสุ่ม แต่ไม่ควรปรับทั้งสองข้อพร้อมกัน (ค่าเริ่มต้น: 1)" + }, + "frequencyPenalty": { + "label": "โทษสำหรับความถี่", + "description": "ค่าอยู่ระหว่าง -2.0 ถึง 2.0 ค่าบวกจะลงโทษโทเค็นใหม่โดยบวกความถี่ของความปรากฏในข้อความอยู่แล้ว ลดความน่าจะเป็นของโมเดลในการทำซ้ำข้อความเดียวกันอย่างตรงไปตรงมา (ค่าเริ่มต้น: 0)" + }, + "defaultChatConfig": "การตั้งค่าการสนทนาเริ่มต้น", + "defaultSystemMessage": "ข้อความระบบเริ่มต้น", + "resetToDefault": "รีเซ็ตเป็นค่าเริ่มต้น" +} \ No newline at end of file diff --git a/src/constants/language.ts b/src/constants/language.ts index 62e4b4970..090b05075 100644 --- a/src/constants/language.ts +++ b/src/constants/language.ts @@ -14,6 +14,7 @@ export const i18nLanguages = [ 'nb', 'ro', 'sv', + 'th', // 'ug', 'yue', 'zh', @@ -38,6 +39,7 @@ export const selectableLanguages = [ 'nb', 'ro', 'sv', + 'th', // 'ug', 'yue', // 'zh', @@ -61,6 +63,7 @@ export const languageCodeToName = { 'nb': 'Norsk bokmål', 'ro': 'Română', 'sv': 'Svenska', + 'th': 'ภาษาไทย', // 'ug': 'ئۇيغۇرچە', 'yue': '廣東話', 'zh': '中文', From 50be029a732eeceb892ef495df1802b2167ec798 Mon Sep 17 00:00:00 2001 From: 3Kmfi6HP <58669916+3Kmfi6HP@users.noreply.github.com> Date: Thu, 1 Jun 2023 17:22:52 +0700 Subject: [PATCH 06/12] fix color --- public/manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/manifest.json b/public/manifest.json index cdeaae4d2..413a8bc6a 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -4,8 +4,8 @@ "description": "Play and chat smarter with BetterChatGPT - an amazing open-source web app with a better UI for exploring OpenAI's ChatGPT API!", "start_url": "/", "display": "standalone", - "background_color": "#ffffff", - "theme_color": "#ffffff", + "background_color": "#343541", + "theme_color": "#343541", "icons": [ { "src": "apple-touch-icon.png", From 142dbfaa2308d3ce7e5f62b37f730fbc47b0317a Mon Sep 17 00:00:00 2001 From: Ze Shitcoin Webdev <112774130+zewebdev1337@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:41:13 -0600 Subject: [PATCH 07/12] Create sync-to-gitlab.yml --- .github/workflows/sync-to-gitlab.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/sync-to-gitlab.yml diff --git a/.github/workflows/sync-to-gitlab.yml b/.github/workflows/sync-to-gitlab.yml new file mode 100644 index 000000000..f437a1960 --- /dev/null +++ b/.github/workflows/sync-to-gitlab.yml @@ -0,0 +1,19 @@ +name: Sync to GitLab + +on: + push: + workflow_dispatch: + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Checkout GitHub repository + uses: actions/checkout@v2 + + - name: Push to GitLab + env: + GITLAB_TOKEN: ${{ secrets.GITLAB_ACCESS_TOKEN }} + run: | + git remote add gitlab https://oauth2:${GITLAB_TOKEN}@gitlab.com/zewebdev1337/devGPT-base.git + git push gitlab HEAD:main --force From 35f4a4f48d0ceed67fefcd2eed074b3301b7cb8f Mon Sep 17 00:00:00 2001 From: Ze Shitcoin Webdev <112774130+zewebdev1337@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:51:28 -0600 Subject: [PATCH 08/12] Update sync-to-gitlab.yml --- .github/workflows/sync-to-gitlab.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sync-to-gitlab.yml b/.github/workflows/sync-to-gitlab.yml index f437a1960..e8a87d4b4 100644 --- a/.github/workflows/sync-to-gitlab.yml +++ b/.github/workflows/sync-to-gitlab.yml @@ -10,10 +10,12 @@ jobs: steps: - name: Checkout GitHub repository uses: actions/checkout@v2 + with: + fetch-depth: 0 - name: Push to GitLab env: GITLAB_TOKEN: ${{ secrets.GITLAB_ACCESS_TOKEN }} run: | git remote add gitlab https://oauth2:${GITLAB_TOKEN}@gitlab.com/zewebdev1337/devGPT-base.git - git push gitlab HEAD:main --force + git push gitlab HEAD:main From 36683eb86c4b8511e6c36054262a7f2246d9f327 Mon Sep 17 00:00:00 2001 From: Ze Shitcoin Webdev <112774130+zewebdev1337@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:52:40 -0600 Subject: [PATCH 09/12] Update deploy.yml --- .github/workflows/deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 7a6a96db9..b6c260bbb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,8 +1,8 @@ name: Deploy to GitHub Pages on: - push: - branches: [main] + # push: + # branches: [main] workflow_dispatch: permissions: From e2e743a889e34e72e3a9b2f89a754038852271cc Mon Sep 17 00:00:00 2001 From: Zihao Zhou Date: Fri, 22 Mar 2024 18:13:07 -0700 Subject: [PATCH 10/12] =?UTF-8?q?=E2=9C=A8=20Use=20buffer=20resizing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChatContent/Message/View/EditView.tsx | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/components/Chat/ChatContent/Message/View/EditView.tsx b/src/components/Chat/ChatContent/Message/View/EditView.tsx index e0d9503e2..d4b28c8f8 100644 --- a/src/components/Chat/ChatContent/Message/View/EditView.tsx +++ b/src/components/Chat/ChatContent/Message/View/EditView.tsx @@ -14,7 +14,7 @@ const EditView = ({ content, setIsEdit, messageIndex, - sticky, + sticky }: { content: string; setIsEdit: React.Dispatch>; @@ -28,6 +28,7 @@ const EditView = ({ const [_content, _setContent] = useState(content); const [isModalOpen, setIsModalOpen] = useState(false); const textareaRef = React.createRef(); + const bufferRef = React.createRef(); const { t } = useTranslation(); @@ -105,18 +106,23 @@ const EditView = ({ handleSubmit(); }; - useEffect(() => { - if (textareaRef.current) { - textareaRef.current.style.height = 'auto'; - textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`; + const adjustTextareaHeight = () => { + if (textareaRef.current && bufferRef.current) { + const textarea = textareaRef.current; + const buffer = bufferRef.current; + + buffer.style.height = 'auto'; + buffer.style.height = buffer.scrollHeight + 'px'; + textarea.style.height = buffer.scrollHeight + 'px'; } + }; + + useEffect(() => { + adjustTextareaHeight(); }, [_content]); useEffect(() => { - if (textareaRef.current) { - textareaRef.current.style.height = 'auto'; - textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`; - } + adjustTextareaHeight(); }, []); return ( @@ -128,6 +134,7 @@ const EditView = ({ : '' }`} > +
+ +
Date: Thu, 11 Apr 2024 08:33:59 +0300 Subject: [PATCH 11/12] Update ChatTitle component to include sticky positioning and z-index --- src/components/Chat/ChatContent/ChatTitle.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Chat/ChatContent/ChatTitle.tsx b/src/components/Chat/ChatContent/ChatTitle.tsx index 4130b0ee1..bfa0f1a44 100644 --- a/src/components/Chat/ChatContent/ChatTitle.tsx +++ b/src/components/Chat/ChatContent/ChatTitle.tsx @@ -43,7 +43,7 @@ const ChatTitle = React.memo(() => { return config ? ( <>
{ setIsModalOpen(true); }} From baf54318e135b2b81ac59711ee344e15104c45bd Mon Sep 17 00:00:00 2001 From: Ze Shitcoin Webdev <112774130+zewebdev1337@users.noreply.github.com> Date: Tue, 28 May 2024 20:19:10 +0000 Subject: [PATCH 12/12] remove broken sync to gitlab action --- .github/workflows/sync-to-gitlab.yml | 36 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/sync-to-gitlab.yml b/.github/workflows/sync-to-gitlab.yml index e8a87d4b4..c448ebb3a 100644 --- a/.github/workflows/sync-to-gitlab.yml +++ b/.github/workflows/sync-to-gitlab.yml @@ -1,21 +1,21 @@ -name: Sync to GitLab +# name: Sync to GitLab -on: - push: - workflow_dispatch: +# on: +# push: +# workflow_dispatch: -jobs: - sync: - runs-on: ubuntu-latest - steps: - - name: Checkout GitHub repository - uses: actions/checkout@v2 - with: - fetch-depth: 0 +# jobs: +# sync: +# runs-on: ubuntu-latest +# steps: +# - name: Checkout GitHub repository +# uses: actions/checkout@v2 +# with: +# fetch-depth: 0 - - name: Push to GitLab - env: - GITLAB_TOKEN: ${{ secrets.GITLAB_ACCESS_TOKEN }} - run: | - git remote add gitlab https://oauth2:${GITLAB_TOKEN}@gitlab.com/zewebdev1337/devGPT-base.git - git push gitlab HEAD:main +# - name: Push to GitLab +# env: +# GITLAB_TOKEN: ${{ secrets.GITLAB_ACCESS_TOKEN }} +# run: | +# git remote add gitlab https://oauth2:${GITLAB_TOKEN}@gitlab.com/zewebdev1337/devGPT-base.git +# git push gitlab HEAD:main