Merge pull request #5430 from skymkmk/pr-manual-regen-title
feat: menual regen title
This commit is contained in:
commit
26c3edd023
|
@ -43,6 +43,7 @@ import QualityIcon from "../icons/hd.svg";
|
||||||
import StyleIcon from "../icons/palette.svg";
|
import StyleIcon from "../icons/palette.svg";
|
||||||
import PluginIcon from "../icons/plugin.svg";
|
import PluginIcon from "../icons/plugin.svg";
|
||||||
import ShortcutkeyIcon from "../icons/shortcutkey.svg";
|
import ShortcutkeyIcon from "../icons/shortcutkey.svg";
|
||||||
|
import ReloadIcon from "../icons/reload.svg";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ChatMessage,
|
ChatMessage,
|
||||||
|
@ -1541,6 +1542,17 @@ function _Chat() {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="window-actions">
|
<div className="window-actions">
|
||||||
|
<div className="window-action-button">
|
||||||
|
<IconButton
|
||||||
|
icon={<ReloadIcon />}
|
||||||
|
bordered
|
||||||
|
title={Locale.Chat.Actions.RefreshTitle}
|
||||||
|
onClick={() => {
|
||||||
|
showToast(Locale.Chat.Actions.RefreshToast);
|
||||||
|
chatStore.summarizeSession(true);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
{!isMobileScreen && (
|
{!isMobileScreen && (
|
||||||
<div className="window-action-button">
|
<div className="window-action-button">
|
||||||
<IconButton
|
<IconButton
|
||||||
|
|
|
@ -43,6 +43,8 @@ const ar: PartialLocaleType = {
|
||||||
PinToastAction: "عرض",
|
PinToastAction: "عرض",
|
||||||
Delete: "حذف",
|
Delete: "حذف",
|
||||||
Edit: "تحرير",
|
Edit: "تحرير",
|
||||||
|
RefreshTitle: "تحديث العنوان",
|
||||||
|
RefreshToast: "تم إرسال طلب تحديث العنوان",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "دردشة جديدة",
|
new: "دردشة جديدة",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const bn: PartialLocaleType = {
|
||||||
PinToastAction: "দেখুন",
|
PinToastAction: "দেখুন",
|
||||||
Delete: "মুছে ফেলুন",
|
Delete: "মুছে ফেলুন",
|
||||||
Edit: "সম্পাদনা করুন",
|
Edit: "সম্পাদনা করুন",
|
||||||
|
RefreshTitle: "শিরোনাম রিফ্রেশ করুন",
|
||||||
|
RefreshToast: "শিরোনাম রিফ্রেশ অনুরোধ পাঠানো হয়েছে",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "নতুন চ্যাট",
|
new: "নতুন চ্যাট",
|
||||||
|
|
|
@ -44,6 +44,8 @@ const cn = {
|
||||||
Delete: "删除",
|
Delete: "删除",
|
||||||
Edit: "编辑",
|
Edit: "编辑",
|
||||||
FullScreen: "全屏",
|
FullScreen: "全屏",
|
||||||
|
RefreshTitle: "刷新标题",
|
||||||
|
RefreshToast: "已发送刷新标题请求",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "新建聊天",
|
new: "新建聊天",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const cs: PartialLocaleType = {
|
||||||
PinToastAction: "Zobrazit",
|
PinToastAction: "Zobrazit",
|
||||||
Delete: "Smazat",
|
Delete: "Smazat",
|
||||||
Edit: "Upravit",
|
Edit: "Upravit",
|
||||||
|
RefreshTitle: "Obnovit název",
|
||||||
|
RefreshToast: "Požadavek na obnovení názvu byl odeslán",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Nová konverzace",
|
new: "Nová konverzace",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const de: PartialLocaleType = {
|
||||||
PinToastAction: "Ansehen",
|
PinToastAction: "Ansehen",
|
||||||
Delete: "Löschen",
|
Delete: "Löschen",
|
||||||
Edit: "Bearbeiten",
|
Edit: "Bearbeiten",
|
||||||
|
RefreshTitle: "Titel aktualisieren",
|
||||||
|
RefreshToast: "Anfrage zur Titelaktualisierung gesendet",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Neues Gespräch",
|
new: "Neues Gespräch",
|
||||||
|
|
|
@ -45,6 +45,8 @@ const en: LocaleType = {
|
||||||
Delete: "Delete",
|
Delete: "Delete",
|
||||||
Edit: "Edit",
|
Edit: "Edit",
|
||||||
FullScreen: "FullScreen",
|
FullScreen: "FullScreen",
|
||||||
|
RefreshTitle: "Refresh Title",
|
||||||
|
RefreshToast: "Title refresh request sent",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Start a new chat",
|
new: "Start a new chat",
|
||||||
|
|
|
@ -44,6 +44,8 @@ const es: PartialLocaleType = {
|
||||||
PinToastAction: "Ver",
|
PinToastAction: "Ver",
|
||||||
Delete: "Eliminar",
|
Delete: "Eliminar",
|
||||||
Edit: "Editar",
|
Edit: "Editar",
|
||||||
|
RefreshTitle: "Actualizar título",
|
||||||
|
RefreshToast: "Se ha enviado la solicitud de actualización del título",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Nueva conversación",
|
new: "Nueva conversación",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const fr: PartialLocaleType = {
|
||||||
PinToastAction: "Voir",
|
PinToastAction: "Voir",
|
||||||
Delete: "Supprimer",
|
Delete: "Supprimer",
|
||||||
Edit: "Modifier",
|
Edit: "Modifier",
|
||||||
|
RefreshTitle: "Actualiser le titre",
|
||||||
|
RefreshToast: "Demande d'actualisation du titre envoyée",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Nouvelle discussion",
|
new: "Nouvelle discussion",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const id: PartialLocaleType = {
|
||||||
PinToastAction: "Lihat",
|
PinToastAction: "Lihat",
|
||||||
Delete: "Hapus",
|
Delete: "Hapus",
|
||||||
Edit: "Edit",
|
Edit: "Edit",
|
||||||
|
RefreshTitle: "Segarkan Judul",
|
||||||
|
RefreshToast: "Permintaan penyegaran judul telah dikirim",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Obrolan Baru",
|
new: "Obrolan Baru",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const it: PartialLocaleType = {
|
||||||
PinToastAction: "Visualizza",
|
PinToastAction: "Visualizza",
|
||||||
Delete: "Elimina",
|
Delete: "Elimina",
|
||||||
Edit: "Modifica",
|
Edit: "Modifica",
|
||||||
|
RefreshTitle: "Aggiorna titolo",
|
||||||
|
RefreshToast: "Richiesta di aggiornamento del titolo inviata",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Nuova chat",
|
new: "Nuova chat",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const jp: PartialLocaleType = {
|
||||||
PinToastAction: "見る",
|
PinToastAction: "見る",
|
||||||
Delete: "削除",
|
Delete: "削除",
|
||||||
Edit: "編集",
|
Edit: "編集",
|
||||||
|
RefreshTitle: "タイトルを更新",
|
||||||
|
RefreshToast: "タイトル更新リクエストが送信されました",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "新しいチャット",
|
new: "新しいチャット",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const ko: PartialLocaleType = {
|
||||||
PinToastAction: "보기",
|
PinToastAction: "보기",
|
||||||
Delete: "삭제",
|
Delete: "삭제",
|
||||||
Edit: "편집",
|
Edit: "편집",
|
||||||
|
RefreshTitle: "제목 새로고침",
|
||||||
|
RefreshToast: "제목 새로고침 요청이 전송되었습니다",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "새 채팅",
|
new: "새 채팅",
|
||||||
|
|
|
@ -44,6 +44,8 @@ const no: PartialLocaleType = {
|
||||||
PinToastAction: "Se",
|
PinToastAction: "Se",
|
||||||
Delete: "Slett",
|
Delete: "Slett",
|
||||||
Edit: "Rediger",
|
Edit: "Rediger",
|
||||||
|
RefreshTitle: "Oppdater tittel",
|
||||||
|
RefreshToast: "Forespørsel om titteloppdatering sendt",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Ny samtale",
|
new: "Ny samtale",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const pt: PartialLocaleType = {
|
||||||
PinToastAction: "Visualizar",
|
PinToastAction: "Visualizar",
|
||||||
Delete: "Deletar",
|
Delete: "Deletar",
|
||||||
Edit: "Editar",
|
Edit: "Editar",
|
||||||
|
RefreshTitle: "Atualizar Título",
|
||||||
|
RefreshToast: "Solicitação de atualização de título enviada",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Iniciar um novo chat",
|
new: "Iniciar um novo chat",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const ru: PartialLocaleType = {
|
||||||
PinToastAction: "Просмотреть",
|
PinToastAction: "Просмотреть",
|
||||||
Delete: "Удалить",
|
Delete: "Удалить",
|
||||||
Edit: "Редактировать",
|
Edit: "Редактировать",
|
||||||
|
RefreshTitle: "Обновить заголовок",
|
||||||
|
RefreshToast: "Запрос на обновление заголовка отправлен",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Новый чат",
|
new: "Новый чат",
|
||||||
|
|
|
@ -45,6 +45,8 @@ const sk: PartialLocaleType = {
|
||||||
PinToastAction: "Zobraziť",
|
PinToastAction: "Zobraziť",
|
||||||
Delete: "Vymazať",
|
Delete: "Vymazať",
|
||||||
Edit: "Upraviť",
|
Edit: "Upraviť",
|
||||||
|
RefreshTitle: "Obnoviť názov",
|
||||||
|
RefreshToast: "Požiadavka na obnovenie názvu bola odoslaná",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Začať nový chat",
|
new: "Začať nový chat",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const tr: PartialLocaleType = {
|
||||||
PinToastAction: "Görünüm",
|
PinToastAction: "Görünüm",
|
||||||
Delete: "Sil",
|
Delete: "Sil",
|
||||||
Edit: "Düzenle",
|
Edit: "Düzenle",
|
||||||
|
RefreshTitle: "Başlığı Yenile",
|
||||||
|
RefreshToast: "Başlık yenileme isteği gönderildi",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Yeni sohbet",
|
new: "Yeni sohbet",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const tw = {
|
||||||
PinToastAction: "檢視",
|
PinToastAction: "檢視",
|
||||||
Delete: "刪除",
|
Delete: "刪除",
|
||||||
Edit: "編輯",
|
Edit: "編輯",
|
||||||
|
RefreshTitle: "刷新標題",
|
||||||
|
RefreshToast: "已發送刷新標題請求",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "新建聊天",
|
new: "新建聊天",
|
||||||
|
|
|
@ -43,6 +43,8 @@ const vi: PartialLocaleType = {
|
||||||
PinToastAction: "Xem",
|
PinToastAction: "Xem",
|
||||||
Delete: "Xóa",
|
Delete: "Xóa",
|
||||||
Edit: "Chỉnh sửa",
|
Edit: "Chỉnh sửa",
|
||||||
|
RefreshTitle: "Làm mới tiêu đề",
|
||||||
|
RefreshToast: "Đã gửi yêu cầu làm mới tiêu đề",
|
||||||
},
|
},
|
||||||
Commands: {
|
Commands: {
|
||||||
new: "Tạo cuộc trò chuyện mới",
|
new: "Tạo cuộc trò chuyện mới",
|
||||||
|
|
|
@ -547,7 +547,7 @@ export const useChatStore = createPersistStore(
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
summarizeSession() {
|
summarizeSession(refreshTitle: boolean = false) {
|
||||||
const config = useAppConfig.getState();
|
const config = useAppConfig.getState();
|
||||||
const session = get().currentSession();
|
const session = get().currentSession();
|
||||||
const modelConfig = session.mask.modelConfig;
|
const modelConfig = session.mask.modelConfig;
|
||||||
|
@ -565,16 +565,26 @@ export const useChatStore = createPersistStore(
|
||||||
// should summarize topic after chating more than 50 words
|
// should summarize topic after chating more than 50 words
|
||||||
const SUMMARIZE_MIN_LEN = 50;
|
const SUMMARIZE_MIN_LEN = 50;
|
||||||
if (
|
if (
|
||||||
config.enableAutoGenerateTitle &&
|
(config.enableAutoGenerateTitle &&
|
||||||
session.topic === DEFAULT_TOPIC &&
|
session.topic === DEFAULT_TOPIC &&
|
||||||
countMessages(messages) >= SUMMARIZE_MIN_LEN
|
countMessages(messages) >= SUMMARIZE_MIN_LEN) ||
|
||||||
|
refreshTitle
|
||||||
) {
|
) {
|
||||||
const topicMessages = messages.concat(
|
const startIndex = Math.max(
|
||||||
createMessage({
|
0,
|
||||||
role: "user",
|
messages.length - modelConfig.historyMessageCount,
|
||||||
content: Locale.Store.Prompt.Topic,
|
|
||||||
}),
|
|
||||||
);
|
);
|
||||||
|
const topicMessages = messages
|
||||||
|
.slice(
|
||||||
|
startIndex < messages.length ? startIndex : messages.length - 1,
|
||||||
|
messages.length,
|
||||||
|
)
|
||||||
|
.concat(
|
||||||
|
createMessage({
|
||||||
|
role: "user",
|
||||||
|
content: Locale.Store.Prompt.Topic,
|
||||||
|
}),
|
||||||
|
);
|
||||||
api.llm.chat({
|
api.llm.chat({
|
||||||
messages: topicMessages,
|
messages: topicMessages,
|
||||||
config: {
|
config: {
|
||||||
|
|
Loading…
Reference in New Issue