-
- {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>ซอร์สโค้ด0>บน GitHub และให้⭐️!",
+ "initiative": {
+ "description": "เช็คออกเรื่อง《<0>ก้าวที่เปิดให้ถือว่าน่าสนใจของ ChatGPT0>》!",
+ "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>โครงการ0>หนึ่งในดวงนี้ คำขอบคุณของคุณที่นี่เป็นสิ่งสำคัญมากในการขับเคลื่อนความพยายามของเราเพื่อให้ประสบการณ์ที่ดีที่สุด",
+ "paragraph3": "หากคุณต้องการสนับสนุนทีมของเรา โปรดพิจารณาสนับสนุนเราด้วยวิธีการด้านล่างนี้ ความสนับสนุนไม่ว่าจะเล็กหรือใหญ่จากทุกคนช่วยให้เราสามารถปรับปรุงและรักษาบริการที่ดีของเรา",
+ "paragraph4": "ขอบคุณที่เป็นส่วนหนึ่งของชุมชนของเรา หาอยู่ตรงนี้เพื่อให้บริการดีกว่าในอนาคต",
+ "alipay": "Alipay",
+ "wechatPay": "WeChat"
+ },
+ "discordServer": {
+ "title": "เซิร์ฟเวอร์ Discord",
+ "paragraph1": "เราขอเชิญคุณเข้าร่วมชุมชน Discord ของเรา! เซิร์ฟเวอร์ Discord ของเราเป็นสถานที่ที่คุณจะได้อุ้มความคิดเห็นและเทคนิคสำหรับ ChatGPT และเสนอคำขอฟีเจอร์สำหรับ Better ChatGPT คุณจะสามารถสื่อสารกับนักพัฒนา Better ChatGPT และผู้ที่ขบเขียนแชทหุ่นยนต์ที่แสดงความรักกับคุณ",
+ "paragraph2": "เพื่อเข้าร่วมเซิร์ฟเวอร์ของเรา คลิกลิงก์ต่อไปนี้: <0>https://discord.gg/g3Qnwy4V6A0> เราหวังที่จะพบคุณที่นั่น!"
+ },
+ "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>ที่นี่0>",
+ "inputLabel": "คีย์ API"
+ },
+ "customEndpoint": "ใช้จุดเชื่อมต่อ API ที่กำหนดเอง",
+ "advancedConfig": "ดูการตั้งค่า API ขั้นสูง<0>ที่นี่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