Skip to content

Commit

Permalink
Merge pull request ChatGPTNextWeb#5468 from DDMeaqua/feat-shortcutkey
Browse files Browse the repository at this point in the history
feat: ChatGPTNextWeb#5422 快捷键清除上下文
  • Loading branch information
Leizhenpeng authored and allengxk committed Jan 6, 2025
2 parents 63c5baa + d184eb6 commit d4aa0f8
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 32 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,5 @@ dev
*.key.pub

masks.json

.codegpt
30 changes: 26 additions & 4 deletions app/components/chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -900,6 +900,12 @@ export function ShortcutKeyModal(props: { onClose: () => void }) {
title: Locale.Chat.ShortcutKey.showShortcutKey,
keys: isMac ? ["⌘", "/"] : ["Ctrl", "/"],
},
{
title: Locale.Chat.ShortcutKey.clearContext,
keys: isMac
? ["⌘", "Shift", "backspace"]
: ["Ctrl", "Shift", "backspace"],
},
];
return (
<div className="modal-mask">
Expand Down Expand Up @@ -1552,7 +1558,7 @@ function _Chat() {
const [showShortcutKeyModal, setShowShortcutKeyModal] = useState(false);

useEffect(() => {
const handleKeyDown = (event: any) => {
const handleKeyDown = (event: KeyboardEvent) => {
// 打开新聊天 command + shift + o
if (
(event.metaKey || event.ctrlKey) &&
Expand Down Expand Up @@ -1603,14 +1609,30 @@ function _Chat() {
event.preventDefault();
setShowShortcutKeyModal(true);
}
// 清除上下文 command + shift + backspace
else if (
(event.metaKey || event.ctrlKey) &&
event.shiftKey &&
event.key.toLowerCase() === "backspace"
) {
event.preventDefault();
chatStore.updateTargetSession(session, (session) => {
if (session.clearContextIndex === session.messages.length) {
session.clearContextIndex = undefined;
} else {
session.clearContextIndex = session.messages.length;
session.memoryPrompt = ""; // will clear memory
}
});
}
};

window.addEventListener("keydown", handleKeyDown);
document.addEventListener("keydown", handleKeyDown);

return () => {
window.removeEventListener("keydown", handleKeyDown);
document.removeEventListener("keydown", handleKeyDown);
};
}, [messages, chatStore, navigate]);
}, [messages, chatStore, navigate, session]);

const [showChatSidePanel, setShowChatSidePanel] = useState(false);

Expand Down
1 change: 1 addition & 0 deletions app/locales/cn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ const cn = {
copyLastMessage: "复制最后一个回复",
copyLastCode: "复制最后一个代码块",
showShortcutKey: "显示快捷方式",
clearContext: "清除上下文",
},
},
Export: {
Expand Down
1 change: 1 addition & 0 deletions app/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ const en: LocaleType = {
copyLastMessage: "Copy Last Reply",
copyLastCode: "Copy Last Code Block",
showShortcutKey: "Show Shortcuts",
clearContext: "Clear Context",
},
},
Export: {
Expand Down
1 change: 1 addition & 0 deletions app/locales/tw.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ const tw = {
copyLastMessage: "複製最後一個回覆",
copyLastCode: "複製最後一個程式碼區塊",
showShortcutKey: "顯示快捷方式",
clearContext: "清除上下文",
},
},
Export: {
Expand Down
59 changes: 31 additions & 28 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,41 @@
# Docker Compose 文件版本
version: "3.9"
services:
# 主服务 - 不使用代理
chatgpt-next-web:
profiles: [ "no-proxy" ]
container_name: chatgpt-next-web
image: yidadaa/chatgpt-next-web
profiles: [ "no-proxy" ] # 不使用代理的profile
container_name: chatgpt-next-web # 容器名称
image: yidadaa/chatgpt-next-web # 使用的镜像
ports:
- 3000:3000
- 3000:3000 # 端口映射:主机3000端口映射到容器3000端口
environment:
- OPENAI_API_KEY=$OPENAI_API_KEY
- GOOGLE_API_KEY=$GOOGLE_API_KEY
- CODE=$CODE
- BASE_URL=$BASE_URL
- OPENAI_ORG_ID=$OPENAI_ORG_ID
- HIDE_USER_API_KEY=$HIDE_USER_API_KEY
- DISABLE_GPT4=$DISABLE_GPT4
- ENABLE_BALANCE_QUERY=$ENABLE_BALANCE_QUERY
- DISABLE_FAST_LINK=$DISABLE_FAST_LINK
- OPENAI_SB=$OPENAI_SB
- OPENAI_API_KEY=$OPENAI_API_KEY # OpenAI API密钥
- GOOGLE_API_KEY=$GOOGLE_API_KEY # Google API密钥
- CODE=$CODE # 访问密码
- BASE_URL=$BASE_URL # API基础地址
- OPENAI_ORG_ID=$OPENAI_ORG_ID # OpenAI组织ID
- HIDE_USER_API_KEY=$HIDE_USER_API_KEY # 是否隐藏用户API密钥
- DISABLE_GPT4=$DISABLE_GPT4 # 是否禁用GPT-4
- ENABLE_BALANCE_QUERY=$ENABLE_BALANCE_QUERY # 是否启用余额查询
- DISABLE_FAST_LINK=$DISABLE_FAST_LINK # 是否禁用快速链接
- OPENAI_SB=$OPENAI_SB # OpenAI沙盒模式

# 代理服务 - 使用代理
chatgpt-next-web-proxy:
profiles: [ "proxy" ]
container_name: chatgpt-next-web-proxy
image: yidadaa/chatgpt-next-web
profiles: [ "proxy" ] # 使用代理的profile
container_name: chatgpt-next-web-proxy # 容器名称
image: yidadaa/chatgpt-next-web # 使用的镜像
ports:
- 3000:3000
environment:
- OPENAI_API_KEY=$OPENAI_API_KEY
- GOOGLE_API_KEY=$GOOGLE_API_KEY
- CODE=$CODE
- PROXY_URL=$PROXY_URL
- BASE_URL=$BASE_URL
- OPENAI_ORG_ID=$OPENAI_ORG_ID
- HIDE_USER_API_KEY=$HIDE_USER_API_KEY
- DISABLE_GPT4=$DISABLE_GPT4
- ENABLE_BALANCE_QUERY=$ENABLE_BALANCE_QUERY
- DISABLE_FAST_LINK=$DISABLE_FAST_LINK
- OPENAI_SB=$OPENAI_SB
- OPENAI_API_KEY=$OPENAI_API_KEY # OpenAI API密钥
- GOOGLE_API_KEY=$GOOGLE_API_KEY # Google API密钥
- CODE=$CODE # 访问密码
- PROXY_URL=$PROXY_URL # 代理服务器地址
- BASE_URL=$BASE_URL # API基础地址
- OPENAI_ORG_ID=$OPENAI_ORG_ID # OpenAI组织ID
- HIDE_USER_API_KEY=$HIDE_USER_API_KEY # 是否隐藏用户API密钥
- DISABLE_GPT4=$DISABLE_GPT4 # 是否禁用GPT-4
- ENABLE_BALANCE_QUERY=$ENABLE_BALANCE_QUERY # 是否启用余额查询
- DISABLE_FAST_LINK=$DISABLE_FAST_LINK # 是否禁用快速链接
- OPENAI_SB=$OPENAI_SB # OpenAI沙盒模式

0 comments on commit d4aa0f8

Please sign in to comment.