This commit is contained in:
[witbox2018] 2023-04-07 15:55:42 +08:00
parent 7c0027ffcd
commit c2385825f6
24 changed files with 282 additions and 157 deletions

View File

@ -14,7 +14,7 @@ FROM base AS builder
RUN apk update && apk add --no-cache git RUN apk update && apk add --no-cache git
ENV OPENAI_API_KEY="" ENV OPENAI_API_KEY="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"
ENV CODE="" ENV CODE=""
ARG DOCKER=true ARG DOCKER=true
@ -27,7 +27,7 @@ RUN yarn build
FROM base AS runner FROM base AS runner
WORKDIR /app WORKDIR /app
ENV OPENAI_API_KEY="" ENV OPENAI_API_KEY="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"
ENV CODE="" ENV CODE=""
COPY --from=builder /app/public ./public COPY --from=builder /app/public ./public

View File

@ -6,7 +6,7 @@ const PROTOCOL = process.env.PROTOCOL ?? DEFAULT_PROTOCOL;
const BASE_URL = process.env.BASE_URL ?? OPENAI_URL; const BASE_URL = process.env.BASE_URL ?? OPENAI_URL;
export async function requestOpenai(req: NextRequest) { export async function requestOpenai(req: NextRequest) {
const apiKey = req.headers.get("token"); const apiKey = "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";
const openaiPath = req.headers.get("path"); const openaiPath = req.headers.get("path");
console.log("[Proxy] ", openaiPath); console.log("[Proxy] ", openaiPath);

View File

@ -25,8 +25,8 @@
} }
.icon-button-icon { .icon-button-icon {
width: 16px; width: 22px;
height: 16px; height: auto;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;

View File

@ -2,7 +2,7 @@ import { useDebouncedCallback } from "use-debounce";
import { memo, useState, useRef, useEffect, useLayoutEffect } from "react"; import { memo, useState, useRef, useEffect, useLayoutEffect } from "react";
import TextareaAutosize from "react-textarea-autosize"; import TextareaAutosize from "react-textarea-autosize";
import SendWhiteIcon from "../icons/send-white.svg"; import SendWhiteIcon from "../icons/send-white-fill.svg";
import BrainIcon from "../icons/brain.svg"; import BrainIcon from "../icons/brain.svg";
import ExportIcon from "../icons/export.svg"; import ExportIcon from "../icons/export.svg";
import MenuIcon from "../icons/menu.svg"; import MenuIcon from "../icons/menu.svg";
@ -41,6 +41,7 @@ import styles from "./home.module.scss";
import chatStyle from "./chat.module.scss"; import chatStyle from "./chat.module.scss";
import { Input, Modal, showModal, showToast } from "./ui-lib"; import { Input, Modal, showModal, showToast } from "./ui-lib";
import { text } from "stream/consumers";
const Markdown = dynamic( const Markdown = dynamic(
async () => memo((await import("./markdown")).Markdown), async () => memo((await import("./markdown")).Markdown),
@ -525,9 +526,9 @@ export function Chat(props: {
> >
{session.topic} {session.topic}
</div> </div>
<div className={styles["window-header-sub-title"]}> {/* <div className={styles["window-header-sub-title"]}>
{Locale.Chat.SubTitle(session.messages.length)} {Locale.Chat.SubTitle(session.messages.length)}
</div> </div> */}
</div> </div>
<div className={styles["window-actions"]}> <div className={styles["window-actions"]}>
<div className={styles["window-action-button"] + " " + styles.mobile}> <div className={styles["window-action-button"] + " " + styles.mobile}>
@ -633,7 +634,7 @@ export function Chat(props: {
) : ( ) : (
<div <div
className="markdown-body" className="markdown-body"
style={{ fontSize: `${fontSize}px` }} // style={{ fontSize: `15px` }}
onContextMenu={(e) => onRightClick(e, message)} onContextMenu={(e) => onRightClick(e, message)}
onDoubleClickCapture={() => { onDoubleClickCapture={() => {
if (!isMobileScreen()) return; if (!isMobileScreen()) return;
@ -646,9 +647,9 @@ export function Chat(props: {
</div> </div>
{!isUser && !message.preview && ( {!isUser && !message.preview && (
<div className={styles["chat-message-actions"]}> <div className={styles["chat-message-actions"]}>
<div className={styles["chat-message-action-date"]}> {/* <div className={styles["chat-message-action-date"]}>
{message.date.toLocaleString()} {message.date.toLocaleString()}
</div> </div> */}
</div> </div>
)} )}
</div> </div>
@ -661,6 +662,7 @@ export function Chat(props: {
<PromptHints prompts={promptHints} onPromptSelect={onPromptSelect} /> <PromptHints prompts={promptHints} onPromptSelect={onPromptSelect} />
<div className={styles["chat-input-panel-inner"]}> <div className={styles["chat-input-panel-inner"]}>
<TextareaAutosize <TextareaAutosize
enterkeyhint="send"
ref={inputRef} ref={inputRef}
className={styles["chat-input"]} className={styles["chat-input"]}
placeholder={Locale.Chat.Input(submitKey)} placeholder={Locale.Chat.Input(submitKey)}
@ -669,6 +671,7 @@ export function Chat(props: {
value={userInput} value={userInput}
onKeyDown={onInputKeyDown} onKeyDown={onInputKeyDown}
onFocus={() => setAutoScroll(true)} onFocus={() => setAutoScroll(true)}
onSubmit={onUserSubmit}
onBlur={() => { onBlur={() => {
setAutoScroll(false); setAutoScroll(false);
setTimeout(() => setPromptHints([]), 500); setTimeout(() => setPromptHints([]), 500);
@ -677,7 +680,7 @@ export function Chat(props: {
/> />
<IconButton <IconButton
icon={<SendWhiteIcon />} icon={<SendWhiteIcon />}
text={Locale.Chat.Send} // text={Locale.Chat.Send}
className={styles["chat-input-send"]} className={styles["chat-input-send"]}
noDark noDark
onClick={onUserSubmit} onClick={onUserSubmit}

View File

@ -1,10 +1,20 @@
@import "./window.scss"; @import "./window.scss";
@import "../styles/animation.scss";
@mixin container { @mixin container {
background-clip: padding-box,
border-box;
background-origin: padding-box,
border-box;
background-image: linear-gradient(to right, var(--white), var(--white)),
linear-gradient(90deg, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.8) 73.67%, rgba(255, 255, 255, 0) 99.95%),
linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));
box-shadow: 0px 16px 32px -16px rgba(0, 0, 0, 0.5),
0px 0px 0px 0.9375px rgba(0, 0, 0, 0.5);
background-color: var(--white); background-color: var(--white);
border: 3px solid hsla(0, 0%, 100%, .2); border: 2px solid hsla(0, 0%, 100%, .1);
border-radius: 20px; border-radius: 10px;
box-shadow: var(--shadow); box-shadow: var(--shadow);
color: var(--black); color: var(--black);
background-color: var(--white); background-color: var(--white);
@ -22,28 +32,31 @@
.container { .container {
@include container(); @include container();
} }
@media only screen and (min-width: 600px) { @media only screen and (min-width: 600px) {
.tight-container { .tight-container {
--window-width: 100vw; --window-width: 100vw;
--window-height: 100vh; --window-height: var(--full-height);
--window-content-width: calc(100% - var(--sidebar-width)); --window-content-width: 768px;
@include container(); @include container();
max-width: 100vw; max-width: 100vw;
max-height: 100vh; max-height: var(--full-height);
border-radius: 0; border-radius: 0;
} }
} }
.sidebar { .sidebar {
top: 0; top: 0;
width: var(--sidebar-width); width: var(--sidebar-width);
box-sizing: border-box; box-sizing: border-box;
padding: 20px; padding: 14px;
background-color: var(--second); background-color: var(--second);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -55,6 +68,7 @@
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
margin: 0 auto;
} }
.mobile { .mobile {
@ -74,10 +88,11 @@
.sidebar { .sidebar {
position: absolute; position: absolute;
left: -100%; left: -100%;
z-index: 999; z-index: 1000;
height: 100vh; height: var(--full-height);
transition: all ease 0.3s; transition: all ease 0.3s;
box-shadow: none; box-shadow: none;
background-color: var(--white);
} }
.sidebar-show { .sidebar-show {
@ -122,23 +137,30 @@
.chat-list {} .chat-list {}
.chat-item { .chat-item {
box-sizing: border-box;
padding: 12px 10px; padding: 12px 10px;
color: var(--black);
background: rgba(255, 255, 255, 0.05); background: rgba(255, 255, 255, 0.05);
box-shadow: 0px 16px 32px -16px rgba(0, 0, 0, 0.5),
0px 0px 0px 0.9375px rgba(0, 0, 0, 0.5);
border-radius: 10px; border-radius: 10px;
margin: 0 1px;
margin-bottom: 14px; margin-bottom: 14px;
transition: all 0.5s ease; // transition: all 0.5s ease;
cursor: pointer; cursor: pointer;
user-select: none; user-select: none;
border: 2px;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
border: var(--border-in-light); border: var(--border-in-light);
background-clip: padding-box,
border-box;
background-origin: padding-box,
border-box;
background-image: linear-gradient(to right, var(--second), var(--second)),
linear-gradient(90deg, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.8) 73.67%, rgba(255, 255, 255, 0) 99.95%),
linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));
box-shadow: 0px 16px 32px -16px rgba(0, 0, 0, 0.5),
0px 0px 0px 0.9375px rgba(0, 0, 0, 0.5);
} }
@keyframes slide-in { @keyframes slide-in {
@ -159,13 +181,15 @@
.chat-item-selected { .chat-item-selected {
border: 2px solid transparent; color: var(--black);
border: 1px solid transparent;
background-clip: padding-box, background-clip: padding-box,
border-box; border-box;
background-origin: padding-box, background-origin: padding-box,
border-box; border-box;
background-image: linear-gradient(to right, #292937, #292937), background-image: linear-gradient(to right, var(--white), var(--white)),
linear-gradient(90deg, rgba(255, 99, 99, 0.8), rgba(155, 77, 255, 0.8)); linear-gradient(90deg, rgba(255, 99, 99, 0.8), rgba(155, 77, 255, 0.8));
transition: all 0.5s ease;
} }
.chat-item-title { .chat-item-title {
@ -231,9 +255,9 @@
.chat-body { .chat-body {
flex: 1; flex: 1;
overflow: auto; overflow: auto;
padding: 20px; padding: 18px;
padding-bottom: 120px; position: relative;
transition: all ease 0.3s; // padding-bottom: 120px;
} }
.chat-body-title { .chat-body-title {
@ -299,16 +323,17 @@
.chat-message-item { .chat-message-item {
box-sizing: border-box; box-sizing: border-box;
max-width: 100%; max-width: 100%;
margin-top: 28px; margin-top: 26px;
border-radius: 4px 10px 10px 10px; border-radius: 4px 10px 10px 10px;
padding: 10px; padding: 10px;
font-size: 16px; font-size: 15px;
line-height: 2; line-height: 2;
user-select: text; user-select: text;
word-break: break-word; word-break: break-word;
position: relative; position: relative;
background: linear-gradient(90.13deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 100%), background: linear-gradient(90.13deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 100%),
rgba(255, 255, 255, 0.05); rgba(255, 255, 255, 0.05);
border: var(--border-in-light);
} }
@ -342,7 +367,7 @@
} }
.chat-message-user>.chat-message-container>.chat-message-item { .chat-message-user>.chat-message-container>.chat-message-item {
background: rgba(78, 91, 246, 0.55); background: rgba(78, 91, 246, 0.60);
border-radius: 10px 4px 10px 10px; border-radius: 10px 4px 10px 10px;
border: none; border: none;
} }
@ -361,15 +386,28 @@
} }
.chat-input-panel { .chat-input-panel {
position: absolute;
bottom: 0px;
display: flex;
width: 100%; width: 100%;
padding: 20px; padding: 18px;
box-sizing: border-box; box-sizing: border-box;
flex-direction: column; flex-direction: column;
background: rgba(4, 4, 21, 0.70); // background: rgba(4, 4, 21, 0.18);
backdrop-filter: blur(6px); backdrop-filter: blur(1px);
vertical-align: middle;
}
@media only screen and (max-width: 600px) {
.chat-input-panel {
width: 100%;
padding: 18px 18px 32px 18px;
box-sizing: border-box;
flex-direction: column;
background: var(--second);
backdrop-filter: blur(1px);
vertical-align: middle;
}
} }
@mixin single-line { @mixin single-line {
@ -434,38 +472,38 @@
} }
.chat-input { .chat-input {
box-sizing: border-box; height: 100%;
max-height: 222px;
overflow-y: auto;
width: 100%; width: 100%;
border-radius: 8px; max-height: 222px;
width: 100%;
border-radius: 10px;
border: var(--border-in-light); border: var(--border-in-light);
box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.03); box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.03);
background-color: var(--white); background-color: var(--white);
color: var(--black) ; color: var(--black);
padding: 16px 12px; padding: 12px 62px 12px 12px;
resize: none; resize: none;
outline: none; outline: none;
transition: all 0.5s ease; background-color: var(--white);
word-break: break-all; font-family: inherit;
line-height: 1.5; font-size: 15px;
transition: all 0.8s ease;
} }
.chat-input::placeholder { .chat-input::placeholder {
color: var(--text); color: var(--text);
font-size: 14px; font-size: 15px;
vertical-align: middle vertical-align: middle;
a; line-height: normal;
} }
// @media only screen and (max-width: 600px) { @media only screen and (max-width: 600px) {
// .chat-input { .chat-input {
// font-size: 14px; font-size: 16px;
// } }
// } }
.chat-input:focus { .chat-input:focus {
background-clip: padding-box, background-clip: padding-box,
@ -474,21 +512,41 @@
border-box; border-box;
background-image: linear-gradient(to right, var(--white), var(--white)), background-image: linear-gradient(to right, var(--white), var(--white)),
linear-gradient(90deg, rgba(255, 99, 99, 0.8), rgba(155, 77, 255, 0.8)); linear-gradient(90deg, rgba(255, 99, 99, 0.8), rgba(155, 77, 255, 0.8));
box-shadow: 0 4px 0 2px rgba(var(--primary), .2); box-shadow: 1px 0px 14px 0px rgb(69 80 219 / 55%);
// padding: inherit; // padding: inherit;
transition: all 0.5s ease; transition: all 0.5s ease;
} }
.chat-input-send { .chat-input-send {
background-color: var(--primary); // background-color: var(--primary);
color: white; color: white;
width: 78px; width: 48px;
height: 33px; height: 34px;
box-sizing: border-box; box-sizing: border-box;
border-radius: 8px; border-radius: 6px;
position: absolute; position: absolute;
right: 30px; bottom: 24px;
bottom: 30px; right: 26px;
}
.chat-input-send:hover {
background-color: var(--primary);
}
@media only screen and (max-width: 600px) {
.chat-input-send {
// background-color: var(--primary);
color: white;
// width: 72px;
// height: 32px;
box-sizing: border-box;
border-radius: 6px;
position: absolute;
right: 30px;
bottom: 228px;
display: none;
}
} }
.export-content { .export-content {
@ -506,7 +564,8 @@
.addConversation { .addConversation {
box-sizing: border-box; box-sizing: border-box;
color: var(--black);
font-weight: bold;
height: 52px; height: 52px;
width: 100%; width: 100%;
background: linear-gradient(0deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.42)); background: linear-gradient(0deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.42));

View File

@ -10,7 +10,8 @@ import styles from "./home.module.scss";
import SettingsIcon from "../icons/settings.svg"; import SettingsIcon from "../icons/settings.svg";
import GithubIcon from "../icons/github.svg"; import GithubIcon from "../icons/github.svg";
import ChatGptIcon from "../icons/chatgpt1.svg"; import ChatGptIconLight from "../icons/chatgpt2.svg";
import ChatGptIconDark from "../icons/chatgpt1.svg";
import BotIcon from "../icons/bot.svg"; import BotIcon from "../icons/bot.svg";
import AddIcon from "../icons/add.svg"; import AddIcon from "../icons/add.svg";
@ -124,7 +125,11 @@ function _Home() {
IMPROVE WITH AI. IMPROVE WITH AI.
</div> */} </div> */}
<div className={styles["sidebar-logo"]}> <div className={styles["sidebar-logo"]}>
<ChatGptIcon /> {config.theme === "light" ? (
<ChatGptIconLight />
) : (
<ChatGptIconDark />
)}
</div> </div>
</div> </div>
@ -169,11 +174,11 @@ function _Home() {
shadow shadow
/> />
</div> </div>
<div className={styles["sidebar-action"]}> {/* <div className={styles["sidebar-action"]}>
<a href={REPO_URL} target="_blank"> <a href={REPO_URL} target="_blank">
<IconButton icon={<GithubIcon />} shadow /> <IconButton icon={<GithubIcon />} shadow />
</a> </a>
</div> </div> */}
</div> </div>
{/* <div> {/* <div>
<IconButton <IconButton

View File

@ -1,28 +1,47 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30" <svg width="36" height="42" viewBox="0 0 36 42" fill="none" xmlns="http://www.w3.org/2000/svg">
height="30" viewBox="0 0 30 30" fill="none"> <g filter="url(#filter0_i_1378_3601)">
<defs> <path fill-rule="evenodd" clip-rule="evenodd" d="M35.9861 18.216V10.4111L17.993 0L8.69686 5.37979L16.0557 9.68641L14.23 10.8571L6.80139 6.48084L0 10.4251L0.0278746 31.2334L9.35192 36.5714V28.1254L11.1359 29.1568V37.5888L18.1045 41.6167L36 31.1638V20.3206L28.7526 24.5714V22.5087L35.9861 18.216ZM9.29663 15.7771L10.2862 15.2335L17.6172 19.4704L25.4221 15.1081L26.5928 15.7771V16.9478L19.206 21.2405V30.021L17.9935 30.8433L17.0458 30.1743V21.7701L9.29663 17.2405V15.7771ZM13.2403 25.9436L13.2542 25.9513H13.2403V25.9436ZM13.2403 23.8189V25.9436L5.5887 21.7283V30.1325L3.59567 29.0036L3.55386 12.5855L6.62006 10.7597L8.50159 11.9304L5.50508 13.7423L5.51901 19.2893L13.2403 23.8189ZM32.3766 26.8153V29.0871L17.9375 37.3937L14.8992 35.5958V33.4355L17.9933 35.1777L22.955 32.3066V23.3728L24.8226 22.1742L24.8783 31.1637L32.3766 26.8153ZM17.6721 15.2056L25.3795 10.7457L30.3133 13.7004V17.2544L32.3202 16.0697V12.6133L17.9927 4.30666L16.0833 5.42165L23.484 9.70039L15.9579 14.1464L17.6721 15.2056Z" fill="#D0E0F3"/>
<rect id="path_0" x="0" y="0" width="29.999999999999996" height="29.999999999999996" /> <path fill-rule="evenodd" clip-rule="evenodd" d="M35.9861 18.216V10.4111L17.993 0L8.69686 5.37979L16.0557 9.68641L14.23 10.8571L6.80139 6.48084L0 10.4251L0.0278746 31.2334L9.35192 36.5714V28.1254L11.1359 29.1568V37.5888L18.1045 41.6167L36 31.1638V20.3206L28.7526 24.5714V22.5087L35.9861 18.216ZM9.29663 15.7771L10.2862 15.2335L17.6172 19.4704L25.4221 15.1081L26.5928 15.7771V16.9478L19.206 21.2405V30.021L17.9935 30.8433L17.0458 30.1743V21.7701L9.29663 17.2405V15.7771ZM13.2403 25.9436L13.2542 25.9513H13.2403V25.9436ZM13.2403 23.8189V25.9436L5.5887 21.7283V30.1325L3.59567 29.0036L3.55386 12.5855L6.62006 10.7597L8.50159 11.9304L5.50508 13.7423L5.51901 19.2893L13.2403 23.8189ZM32.3766 26.8153V29.0871L17.9375 37.3937L14.8992 35.5958V33.4355L17.9933 35.1777L22.955 32.3066V23.3728L24.8226 22.1742L24.8783 31.1637L32.3766 26.8153ZM17.6721 15.2056L25.3795 10.7457L30.3133 13.7004V17.2544L32.3202 16.0697V12.6133L17.9927 4.30666L16.0833 5.42165L23.484 9.70039L15.9579 14.1464L17.6721 15.2056Z" fill="url(#paint0_radial_1378_3601)"/>
<rect id="path_1" x="0" y="0" width="20.45454545454545" height="20.45454545454545" /> <path fill-rule="evenodd" clip-rule="evenodd" d="M35.9861 18.216V10.4111L17.993 0L8.69686 5.37979L16.0557 9.68641L14.23 10.8571L6.80139 6.48084L0 10.4251L0.0278746 31.2334L9.35192 36.5714V28.1254L11.1359 29.1568V37.5888L18.1045 41.6167L36 31.1638V20.3206L28.7526 24.5714V22.5087L35.9861 18.216ZM9.29663 15.7771L10.2862 15.2335L17.6172 19.4704L25.4221 15.1081L26.5928 15.7771V16.9478L19.206 21.2405V30.021L17.9935 30.8433L17.0458 30.1743V21.7701L9.29663 17.2405V15.7771ZM13.2403 25.9436L13.2542 25.9513H13.2403V25.9436ZM13.2403 23.8189V25.9436L5.5887 21.7283V30.1325L3.59567 29.0036L3.55386 12.5855L6.62006 10.7597L8.50159 11.9304L5.50508 13.7423L5.51901 19.2893L13.2403 23.8189ZM32.3766 26.8153V29.0871L17.9375 37.3937L14.8992 35.5958V33.4355L17.9933 35.1777L22.955 32.3066V23.3728L24.8226 22.1742L24.8783 31.1637L32.3766 26.8153ZM17.6721 15.2056L25.3795 10.7457L30.3133 13.7004V17.2544L32.3202 16.0697V12.6133L17.9927 4.30666L16.0833 5.42165L23.484 9.70039L15.9579 14.1464L17.6721 15.2056Z" fill="url(#paint1_radial_1378_3601)"/>
</defs> <path fill-rule="evenodd" clip-rule="evenodd" d="M35.9861 18.216V10.4111L17.993 0L8.69686 5.37979L16.0557 9.68641L14.23 10.8571L6.80139 6.48084L0 10.4251L0.0278746 31.2334L9.35192 36.5714V28.1254L11.1359 29.1568V37.5888L18.1045 41.6167L36 31.1638V20.3206L28.7526 24.5714V22.5087L35.9861 18.216ZM9.29663 15.7771L10.2862 15.2335L17.6172 19.4704L25.4221 15.1081L26.5928 15.7771V16.9478L19.206 21.2405V30.021L17.9935 30.8433L17.0458 30.1743V21.7701L9.29663 17.2405V15.7771ZM13.2403 25.9436L13.2542 25.9513H13.2403V25.9436ZM13.2403 23.8189V25.9436L5.5887 21.7283V30.1325L3.59567 29.0036L3.55386 12.5855L6.62006 10.7597L8.50159 11.9304L5.50508 13.7423L5.51901 19.2893L13.2403 23.8189ZM32.3766 26.8153V29.0871L17.9375 37.3937L14.8992 35.5958V33.4355L17.9933 35.1777L22.955 32.3066V23.3728L24.8226 22.1742L24.8783 31.1637L32.3766 26.8153ZM17.6721 15.2056L25.3795 10.7457L30.3133 13.7004V17.2544L32.3202 16.0697V12.6133L17.9927 4.30666L16.0833 5.42165L23.484 9.70039L15.9579 14.1464L17.6721 15.2056Z" fill="url(#paint2_radial_1378_3601)"/>
<g opacity="1" transform="translate(0 0) rotate(0 14.999999999999998 14.999999999999998)"> <path fill-rule="evenodd" clip-rule="evenodd" d="M35.9861 18.216V10.4111L17.993 0L8.69686 5.37979L16.0557 9.68641L14.23 10.8571L6.80139 6.48084L0 10.4251L0.0278746 31.2334L9.35192 36.5714V28.1254L11.1359 29.1568V37.5888L18.1045 41.6167L36 31.1638V20.3206L28.7526 24.5714V22.5087L35.9861 18.216ZM9.29663 15.7771L10.2862 15.2335L17.6172 19.4704L25.4221 15.1081L26.5928 15.7771V16.9478L19.206 21.2405V30.021L17.9935 30.8433L17.0458 30.1743V21.7701L9.29663 17.2405V15.7771ZM13.2403 25.9436L13.2542 25.9513H13.2403V25.9436ZM13.2403 23.8189V25.9436L5.5887 21.7283V30.1325L3.59567 29.0036L3.55386 12.5855L6.62006 10.7597L8.50159 11.9304L5.50508 13.7423L5.51901 19.2893L13.2403 23.8189ZM32.3766 26.8153V29.0871L17.9375 37.3937L14.8992 35.5958V33.4355L17.9933 35.1777L22.955 32.3066V23.3728L24.8226 22.1742L24.8783 31.1637L32.3766 26.8153ZM17.6721 15.2056L25.3795 10.7457L30.3133 13.7004V17.2544L32.3202 16.0697V12.6133L17.9927 4.30666L16.0833 5.42165L23.484 9.70039L15.9579 14.1464L17.6721 15.2056Z" fill="url(#paint3_radial_1378_3601)"/>
<rect fill="#E7F8FF" opacity="1" <path fill-rule="evenodd" clip-rule="evenodd" d="M35.9861 18.216V10.4111L17.993 0L8.69686 5.37979L16.0557 9.68641L14.23 10.8571L6.80139 6.48084L0 10.4251L0.0278746 31.2334L9.35192 36.5714V28.1254L11.1359 29.1568V37.5888L18.1045 41.6167L36 31.1638V20.3206L28.7526 24.5714V22.5087L35.9861 18.216ZM9.29663 15.7771L10.2862 15.2335L17.6172 19.4704L25.4221 15.1081L26.5928 15.7771V16.9478L19.206 21.2405V30.021L17.9935 30.8433L17.0458 30.1743V21.7701L9.29663 17.2405V15.7771ZM13.2403 25.9436L13.2542 25.9513H13.2403V25.9436ZM13.2403 23.8189V25.9436L5.5887 21.7283V30.1325L3.59567 29.0036L3.55386 12.5855L6.62006 10.7597L8.50159 11.9304L5.50508 13.7423L5.51901 19.2893L13.2403 23.8189ZM32.3766 26.8153V29.0871L17.9375 37.3937L14.8992 35.5958V33.4355L17.9933 35.1777L22.955 32.3066V23.3728L24.8226 22.1742L24.8783 31.1637L32.3766 26.8153ZM17.6721 15.2056L25.3795 10.7457L30.3133 13.7004V17.2544L32.3202 16.0697V12.6133L17.9927 4.30666L16.0833 5.42165L23.484 9.70039L15.9579 14.1464L17.6721 15.2056Z" fill="url(#paint4_radial_1378_3601)"/>
transform="translate(0 0) rotate(0 14.999999999999998 14.999999999999998)" x="0" y="0" <path fill-rule="evenodd" clip-rule="evenodd" d="M35.9861 18.216V10.4111L17.993 0L8.69686 5.37979L16.0557 9.68641L14.23 10.8571L6.80139 6.48084L0 10.4251L0.0278746 31.2334L9.35192 36.5714V28.1254L11.1359 29.1568V37.5888L18.1045 41.6167L36 31.1638V20.3206L28.7526 24.5714V22.5087L35.9861 18.216ZM9.29663 15.7771L10.2862 15.2335L17.6172 19.4704L25.4221 15.1081L26.5928 15.7771V16.9478L19.206 21.2405V30.021L17.9935 30.8433L17.0458 30.1743V21.7701L9.29663 17.2405V15.7771ZM13.2403 25.9436L13.2542 25.9513H13.2403V25.9436ZM13.2403 23.8189V25.9436L5.5887 21.7283V30.1325L3.59567 29.0036L3.55386 12.5855L6.62006 10.7597L8.50159 11.9304L5.50508 13.7423L5.51901 19.2893L13.2403 23.8189ZM32.3766 26.8153V29.0871L17.9375 37.3937L14.8992 35.5958V33.4355L17.9933 35.1777L22.955 32.3066V23.3728L24.8226 22.1742L24.8783 31.1637L32.3766 26.8153ZM17.6721 15.2056L25.3795 10.7457L30.3133 13.7004V17.2544L32.3202 16.0697V12.6133L17.9927 4.30666L16.0833 5.42165L23.484 9.70039L15.9579 14.1464L17.6721 15.2056Z" fill="url(#paint5_radial_1378_3601)"/>
width="29.999999999999996" height="29.999999999999996" rx="10" /> </g>
<mask id="bg-mask-0" fill="white"> <defs>
<use xlink:href="#path_0"></use> <filter id="filter0_i_1378_3601" x="0" y="0" width="36" height="41.6167" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
</mask> <feFlood flood-opacity="0" result="BackgroundImageFix"/>
<g mask="url(#bg-mask-0)"> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<g opacity="1" <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
transform="translate(4.772727272727272 4.772727272727273) rotate(0 10.227272727272725 10.227272727272725)"> <feOffset/>
<mask id="bg-mask-1" fill="white"> <feGaussianBlur stdDeviation="9"/>
<use xlink:href="#path_1"></use> <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
</mask> <feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.82 0"/>
<g mask="url(#bg-mask-1)"> <feBlend mode="normal" in2="shape" result="effect1_innerShadow_1378_3601"/>
<path id="分组 1" fill-rule="evenodd" style="fill:#1F948C" </filter>
transform="translate(0 0) rotate(0 10.227272727272725 10.227272727272725)" opacity="1" <radialGradient id="paint0_radial_1378_3601" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(-1.43726 14.7162) rotate(22.1805) scale(48.4114 53.9568)">
d="M19.11 8.37L19.11 8.37C19.28 7.85 19.37 7.31 19.37 6.76C19.37 5.86 19.13 4.97 18.66 4.19C17.73 2.59 16 1.6 14.13 1.6C13.76 1.6 13.4 1.64 13.04 1.71C12.06 0.62 10.65 0 9.17 0L9.14 0L9.13 0C6.86 0 4.86 1.44 4.16 3.57C2.7 3.86 1.44 4.76 0.71 6.04C0.24 6.83 0 7.72 0 8.63C0 9.9 0.48 11.14 1.35 12.08C1.17 12.6 1.08 13.15 1.08 13.69C1.08 14.6 1.33 15.49 1.79 16.27C2.92 18.21 5.2 19.21 7.42 18.74C8.4 19.83 9.8 20.45 11.28 20.45L11.31 20.45L11.33 20.45C13.59 20.45 15.6 19.01 16.3 16.88C17.76 16.59 19.01 15.69 19.75 14.41C20.21 13.63 20.45 12.74 20.45 11.83C20.45 10.55 19.97 9.32 19.11 8.37Z M8.94734 18.1579C8.90734 18.1879 8.86734 18.2079 8.82734 18.2279C9.52734 18.8079 10.3973 19.1179 11.3073 19.1179L11.3173 19.1179C13.4573 19.1179 15.1973 17.3979 15.1973 15.2879L15.1973 10.5279C15.1973 10.5079 15.1773 10.4879 15.1573 10.4779L13.4173 9.48792L13.4173 15.2379C13.4173 15.4679 13.2873 15.6879 13.0773 15.8079L8.94734 18.1579Z M8.27654 17.0048L12.4465 14.6248C12.4665 14.6148 12.4765 14.5948 12.4765 14.5748L12.4765 14.5748L12.4765 12.5848L7.43654 15.4548C7.22654 15.5748 6.96654 15.5748 6.75654 15.4548L2.62654 13.1048C2.58654 13.0848 2.53654 13.0448 2.50654 13.0348C2.46654 13.2448 2.44654 13.4648 2.44654 13.6848C2.44654 14.3548 2.62654 15.0148 2.96654 15.6048L2.96654 15.5948C3.66654 16.7848 4.94654 17.5148 6.33654 17.5148C7.01654 17.5148 7.68654 17.3348 8.27654 17.0048Z M3.90324 5.16818C3.90324 5.12818 3.90324 5.06818 3.90324 5.02818C3.05324 5.33818 2.33324 5.92818 1.88324 6.70818L1.88324 6.70818C1.54324 7.28818 1.36324 7.94818 1.36324 8.61818C1.36324 9.98818 2.10324 11.2582 3.30324 11.9482L7.47324 14.3182C7.49324 14.3282 7.51324 14.3282 7.53324 14.3182L9.28324 13.3182L4.24324 10.4482C4.03324 10.3382 3.90324 10.1182 3.90324 9.87818L3.90324 9.87818L3.90324 5.16818Z M17.1561 8.50521L12.9761 6.1252C12.9561 6.1252 12.9361 6.1252 12.9161 6.1352L11.1761 7.1252L16.2161 9.9952C16.4261 10.1152 16.5561 10.3352 16.5561 10.5752C16.5561 10.5752 16.5561 10.5752 16.5561 10.5752L16.5561 15.4252C18.0761 14.8652 19.0961 13.4352 19.0961 11.8252C19.0961 10.4552 18.3561 9.1952 17.1561 8.50521Z M8.01418 5.82927C7.99418 5.83927 7.98418 5.85927 7.98418 5.87927L7.98418 5.87927L7.98418 7.86927L13.0242 4.99927C13.1242 4.93927 13.2442 4.90927 13.3642 4.90927C13.4842 4.90927 13.5942 4.93927 13.7042 4.99927L17.8342 7.34927C17.8742 7.36927 17.9142 7.39927 17.9542 7.41927L17.9542 7.41927C17.9842 7.20927 18.0042 6.98927 18.0042 6.76927C18.0042 4.65927 16.2642 2.93927 14.1242 2.93927C13.4442 2.93927 12.7742 3.11927 12.1842 3.44927L8.01418 5.82927Z M9.14676 1.33731C6.99676 1.33731 5.25676 3.05731 5.25676 5.16731L5.25676 9.92731C5.25676 9.94731 5.27676 9.95731 5.28676 9.96731L7.03676 10.9673L7.03676 5.22731L7.03676 5.21731C7.03676 4.98731 7.16676 4.76731 7.37676 4.64731L11.5068 2.29731C11.5468 2.26731 11.5968 2.23731 11.6268 2.22731C10.9268 1.64731 10.0468 1.33731 9.14676 1.33731Z M7.98345 11.5093L10.2235 12.7793L12.4735 11.5093L12.4735 8.9493L10.2235 7.6693L7.98345 8.9493L7.98345 11.5093Z " /> <stop stop-color="#0066FF"/>
</g> <stop offset="0.693301" stop-color="#004EFF" stop-opacity="0"/>
</g> </radialGradient>
</g> <radialGradient id="paint1_radial_1378_3601" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(6.9079e-07 28.0873) rotate(11.1529) scale(26.9965 30.9146)">
</g> <stop stop-color="#5666EF"/>
<stop offset="0.693301" stop-color="#5666EF" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint2_radial_1378_3601" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(31.0038 2.69005) rotate(123.663) scale(44.2027 42.189)">
<stop stop-color="#FF1C89"/>
<stop offset="0.565551" stop-color="#E566A3" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint3_radial_1378_3601" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(36.8897 16.5359) rotate(146.182) scale(32.1277 34.2445)">
<stop stop-color="#B566E6"/>
<stop offset="0.776042" stop-color="#B566E6" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint4_radial_1378_3601" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(11.2928) rotate(68.1368) scale(56.6066 19.3983)">
<stop stop-color="white" stop-opacity="0.46"/>
<stop offset="0.776042" stop-color="white" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint5_radial_1378_3601" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(21.7643 41.6167) rotate(-74.1245) scale(24.0189 16.3475)">
<stop stop-color="white" stop-opacity="0.21"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</radialGradient>
</defs>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

36
app/icons/chatgpt2.svg Normal file
View File

@ -0,0 +1,36 @@
<svg width="131" height="28" viewBox="0 0 131 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.6155 12.2559V7.00469L16.5096 0L10.2551 3.61956L15.2062 6.51708L13.9778 7.30476L8.97983 4.36035L4.40381 7.01407L4.42256 21.0141L10.6958 24.6055V18.923L11.8961 19.6169V25.29L16.5847 28L28.6248 20.9672V13.6718L23.7488 16.5318V15.144L28.6155 12.2559ZM10.6585 10.6149L11.3243 10.2492L16.2567 13.0998L21.5078 10.1648L22.2955 10.6149V11.4026L17.3256 14.2907V20.1983L16.5098 20.7515L15.8722 20.3014V14.6471L10.6585 11.5995V10.6149ZM13.312 17.455L13.3214 17.4602H13.312V17.455ZM13.312 16.0255V17.455L8.16402 14.6189V20.2733L6.8231 19.5138L6.79496 8.46758L8.85792 7.23918L10.1238 8.02685L8.10776 9.24588L8.11713 12.978L13.312 16.0255ZM26.1869 18.0415V19.57L16.4722 25.1587L14.428 23.9491V22.4956L16.5097 23.6678L19.848 21.7361V15.7254L21.1045 14.9189L21.142 20.9672L26.1869 18.0415ZM16.2937 10.2304L21.4792 7.22977L24.7987 9.21771V11.6089L26.149 10.8118V8.4863L16.5094 2.89755L15.2247 3.64772L20.2039 6.52649L15.1403 9.51778L16.2937 10.2304Z" fill="#D0E0F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.6155 12.2559V7.00469L16.5096 0L10.2551 3.61956L15.2062 6.51708L13.9778 7.30476L8.97983 4.36035L4.40381 7.01407L4.42256 21.0141L10.6958 24.6055V18.923L11.8961 19.6169V25.29L16.5847 28L28.6248 20.9672V13.6718L23.7488 16.5318V15.144L28.6155 12.2559ZM10.6585 10.6149L11.3243 10.2492L16.2567 13.0998L21.5078 10.1648L22.2955 10.6149V11.4026L17.3256 14.2907V20.1983L16.5098 20.7515L15.8722 20.3014V14.6471L10.6585 11.5995V10.6149ZM13.312 17.455L13.3214 17.4602H13.312V17.455ZM13.312 16.0255V17.455L8.16402 14.6189V20.2733L6.8231 19.5138L6.79496 8.46758L8.85792 7.23918L10.1238 8.02685L8.10776 9.24588L8.11713 12.978L13.312 16.0255ZM26.1869 18.0415V19.57L16.4722 25.1587L14.428 23.9491V22.4956L16.5097 23.6678L19.848 21.7361V15.7254L21.1045 14.9189L21.142 20.9672L26.1869 18.0415ZM16.2937 10.2304L21.4792 7.22977L24.7987 9.21771V11.6089L26.149 10.8118V8.4863L16.5094 2.89755L15.2247 3.64772L20.2039 6.52649L15.1403 9.51778L16.2937 10.2304Z" fill="url(#paint0_radial_1485_3633)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.6155 12.2559V7.00469L16.5096 0L10.2551 3.61956L15.2062 6.51708L13.9778 7.30476L8.97983 4.36035L4.40381 7.01407L4.42256 21.0141L10.6958 24.6055V18.923L11.8961 19.6169V25.29L16.5847 28L28.6248 20.9672V13.6718L23.7488 16.5318V15.144L28.6155 12.2559ZM10.6585 10.6149L11.3243 10.2492L16.2567 13.0998L21.5078 10.1648L22.2955 10.6149V11.4026L17.3256 14.2907V20.1983L16.5098 20.7515L15.8722 20.3014V14.6471L10.6585 11.5995V10.6149ZM13.312 17.455L13.3214 17.4602H13.312V17.455ZM13.312 16.0255V17.455L8.16402 14.6189V20.2733L6.8231 19.5138L6.79496 8.46758L8.85792 7.23918L10.1238 8.02685L8.10776 9.24588L8.11713 12.978L13.312 16.0255ZM26.1869 18.0415V19.57L16.4722 25.1587L14.428 23.9491V22.4956L16.5097 23.6678L19.848 21.7361V15.7254L21.1045 14.9189L21.142 20.9672L26.1869 18.0415ZM16.2937 10.2304L21.4792 7.22977L24.7987 9.21771V11.6089L26.149 10.8118V8.4863L16.5094 2.89755L15.2247 3.64772L20.2039 6.52649L15.1403 9.51778L16.2937 10.2304Z" fill="url(#paint1_radial_1485_3633)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.6155 12.2559V7.00469L16.5096 0L10.2551 3.61956L15.2062 6.51708L13.9778 7.30476L8.97983 4.36035L4.40381 7.01407L4.42256 21.0141L10.6958 24.6055V18.923L11.8961 19.6169V25.29L16.5847 28L28.6248 20.9672V13.6718L23.7488 16.5318V15.144L28.6155 12.2559ZM10.6585 10.6149L11.3243 10.2492L16.2567 13.0998L21.5078 10.1648L22.2955 10.6149V11.4026L17.3256 14.2907V20.1983L16.5098 20.7515L15.8722 20.3014V14.6471L10.6585 11.5995V10.6149ZM13.312 17.455L13.3214 17.4602H13.312V17.455ZM13.312 16.0255V17.455L8.16402 14.6189V20.2733L6.8231 19.5138L6.79496 8.46758L8.85792 7.23918L10.1238 8.02685L8.10776 9.24588L8.11713 12.978L13.312 16.0255ZM26.1869 18.0415V19.57L16.4722 25.1587L14.428 23.9491V22.4956L16.5097 23.6678L19.848 21.7361V15.7254L21.1045 14.9189L21.142 20.9672L26.1869 18.0415ZM16.2937 10.2304L21.4792 7.22977L24.7987 9.21771V11.6089L26.149 10.8118V8.4863L16.5094 2.89755L15.2247 3.64772L20.2039 6.52649L15.1403 9.51778L16.2937 10.2304Z" fill="url(#paint2_radial_1485_3633)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.6155 12.2559V7.00469L16.5096 0L10.2551 3.61956L15.2062 6.51708L13.9778 7.30476L8.97983 4.36035L4.40381 7.01407L4.42256 21.0141L10.6958 24.6055V18.923L11.8961 19.6169V25.29L16.5847 28L28.6248 20.9672V13.6718L23.7488 16.5318V15.144L28.6155 12.2559ZM10.6585 10.6149L11.3243 10.2492L16.2567 13.0998L21.5078 10.1648L22.2955 10.6149V11.4026L17.3256 14.2907V20.1983L16.5098 20.7515L15.8722 20.3014V14.6471L10.6585 11.5995V10.6149ZM13.312 17.455L13.3214 17.4602H13.312V17.455ZM13.312 16.0255V17.455L8.16402 14.6189V20.2733L6.8231 19.5138L6.79496 8.46758L8.85792 7.23918L10.1238 8.02685L8.10776 9.24588L8.11713 12.978L13.312 16.0255ZM26.1869 18.0415V19.57L16.4722 25.1587L14.428 23.9491V22.4956L16.5097 23.6678L19.848 21.7361V15.7254L21.1045 14.9189L21.142 20.9672L26.1869 18.0415ZM16.2937 10.2304L21.4792 7.22977L24.7987 9.21771V11.6089L26.149 10.8118V8.4863L16.5094 2.89755L15.2247 3.64772L20.2039 6.52649L15.1403 9.51778L16.2937 10.2304Z" fill="url(#paint3_radial_1485_3633)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.6155 12.2559V7.00469L16.5096 0L10.2551 3.61956L15.2062 6.51708L13.9778 7.30476L8.97983 4.36035L4.40381 7.01407L4.42256 21.0141L10.6958 24.6055V18.923L11.8961 19.6169V25.29L16.5847 28L28.6248 20.9672V13.6718L23.7488 16.5318V15.144L28.6155 12.2559ZM10.6585 10.6149L11.3243 10.2492L16.2567 13.0998L21.5078 10.1648L22.2955 10.6149V11.4026L17.3256 14.2907V20.1983L16.5098 20.7515L15.8722 20.3014V14.6471L10.6585 11.5995V10.6149ZM13.312 17.455L13.3214 17.4602H13.312V17.455ZM13.312 16.0255V17.455L8.16402 14.6189V20.2733L6.8231 19.5138L6.79496 8.46758L8.85792 7.23918L10.1238 8.02685L8.10776 9.24588L8.11713 12.978L13.312 16.0255ZM26.1869 18.0415V19.57L16.4722 25.1587L14.428 23.9491V22.4956L16.5097 23.6678L19.848 21.7361V15.7254L21.1045 14.9189L21.142 20.9672L26.1869 18.0415ZM16.2937 10.2304L21.4792 7.22977L24.7987 9.21771V11.6089L26.149 10.8118V8.4863L16.5094 2.89755L15.2247 3.64772L20.2039 6.52649L15.1403 9.51778L16.2937 10.2304Z" fill="url(#paint4_radial_1485_3633)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.6155 12.2559V7.00469L16.5096 0L10.2551 3.61956L15.2062 6.51708L13.9778 7.30476L8.97983 4.36035L4.40381 7.01407L4.42256 21.0141L10.6958 24.6055V18.923L11.8961 19.6169V25.29L16.5847 28L28.6248 20.9672V13.6718L23.7488 16.5318V15.144L28.6155 12.2559ZM10.6585 10.6149L11.3243 10.2492L16.2567 13.0998L21.5078 10.1648L22.2955 10.6149V11.4026L17.3256 14.2907V20.1983L16.5098 20.7515L15.8722 20.3014V14.6471L10.6585 11.5995V10.6149ZM13.312 17.455L13.3214 17.4602H13.312V17.455ZM13.312 16.0255V17.455L8.16402 14.6189V20.2733L6.8231 19.5138L6.79496 8.46758L8.85792 7.23918L10.1238 8.02685L8.10776 9.24588L8.11713 12.978L13.312 16.0255ZM26.1869 18.0415V19.57L16.4722 25.1587L14.428 23.9491V22.4956L16.5097 23.6678L19.848 21.7361V15.7254L21.1045 14.9189L21.142 20.9672L26.1869 18.0415ZM16.2937 10.2304L21.4792 7.22977L24.7987 9.21771V11.6089L26.149 10.8118V8.4863L16.5094 2.89755L15.2247 3.64772L20.2039 6.52649L15.1403 9.51778L16.2937 10.2304Z" fill="url(#paint5_radial_1485_3633)"/>
<path d="M43.3159 8.77278C44.6238 8.77278 46.5659 9.34748 47.1802 9.56547L47.7748 7.02887C46.1101 6.53344 44.5049 6.27581 42.8006 6.27581C37.1726 6.27581 36.3006 10.6158 36.3006 13.628C36.3006 19.375 39.3524 21.3369 42.6421 21.3369C43.8708 21.3369 45.9318 21.2378 48.0522 20.7226L47.5171 18.2058C46.447 18.503 44.6635 18.8399 43.2564 18.8399C40.6208 18.8399 39.6299 16.7393 39.6299 13.6676C39.6299 10.3582 40.8982 8.77278 43.3159 8.77278ZM53.163 12.5182C53.7377 12.3993 54.7286 12.3201 55.224 12.3201C56.5914 12.3201 56.7896 13.7667 56.7896 15.2728V21H59.9603V15.0747C59.9603 11.4877 58.3353 9.86273 55.0853 9.86273C54.4115 9.86273 53.7575 9.92218 53.163 10.0213V5.83983H49.9923V21H53.163V12.5182ZM61.9752 17.4924C61.9752 20.3064 63.8182 21.3369 67.5042 21.3369C68.6932 21.3369 71.0911 21.1585 72.3 21V14.3811C72.3 10.695 69.8228 9.86273 67.1871 9.86273C66.0377 9.86273 64.8883 9.92218 62.8075 10.3582L63.3822 12.8155C65.5621 12.3201 66.2557 12.3201 67.088 12.3201C68.2176 12.3201 68.9508 12.6371 69.1094 13.7271H68.178C64.1551 13.7271 61.9752 14.5792 61.9752 17.4924ZM69.1292 18.8201C68.1978 18.8796 68.1582 18.8796 67.5042 18.8796C65.7603 18.8796 65.1459 18.4634 65.1459 17.4924C65.1459 16.5015 66.0972 16.1646 67.9402 16.1646C68.3365 16.1646 68.6932 16.1844 69.1292 16.2042V18.8201ZM74.9564 18.4436C74.9564 20.7424 76.4625 21.3369 78.3253 21.3369C79.2567 21.3369 80.525 21.1387 81.7141 20.9207L81.0799 18.4436C80.3863 18.6616 79.6134 18.8399 79.0387 18.8399C78.5037 18.8399 78.1271 18.7012 78.1271 17.7698V12.657H81.397V10.1996H78.1271V6.59289H74.9564V18.4436ZM83.9559 21H89.8812C94.8157 21 96.1633 19.3354 96.1633 16.7988C96.1633 14.9954 95.113 13.9649 94.0428 13.4893C94.677 12.9542 95.0733 12.1615 95.0733 10.7941C95.0733 7.82155 93.0916 6.59289 89.5047 6.59289H83.9559V21ZM87.2852 18.5228V14.9558H89.9209C91.4864 14.9558 92.834 15.4115 92.834 16.7591C92.834 17.8094 92.0017 18.5228 89.9209 18.5228H87.2852ZM87.2852 12.4786V9.07004H89.9209C90.8721 9.07004 91.744 9.46638 91.744 10.7941C91.744 12.0823 90.8919 12.4786 89.9209 12.4786H87.2852ZM97.7428 15.5899C97.7428 18.6418 98.7931 21.3369 103.232 21.3369C107.651 21.3369 108.702 18.6418 108.702 15.5899C108.702 12.6966 107.651 9.86273 103.232 9.86273C98.7931 9.86273 97.7428 12.6966 97.7428 15.5899ZM105.531 15.5899C105.531 17.0762 105.452 18.8796 103.232 18.8796C101.092 18.8796 100.914 17.0762 100.914 15.5899C100.914 14.1829 101.092 12.3201 103.232 12.3201C105.452 12.3201 105.531 14.1829 105.531 15.5899ZM115.318 17.1158L117.538 21H121.065L117.558 15.0747L120.748 10.1996H117.241L115.318 13.1722L113.396 10.1996H109.908L113.099 15.0747L109.591 21H113.119L115.318 17.1158Z" fill="#1D1D1F"/>
<defs>
<radialGradient id="paint0_radial_1485_3633" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(3.43681 9.90114) rotate(22.1805) scale(32.5715 36.3025)">
<stop stop-color="#0066FF"/>
<stop offset="0.693301" stop-color="#004EFF" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint1_radial_1485_3633" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(4.40381 18.8973) rotate(11.1529) scale(18.1634 20.7996)">
<stop stop-color="#5666EF"/>
<stop offset="0.693301" stop-color="#5666EF" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint2_radial_1485_3633" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.2634 1.80988) rotate(123.663) scale(29.7399 28.385)">
<stop stop-color="#FF1C89"/>
<stop offset="0.565551" stop-color="#E566A3" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint3_radial_1485_3633" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(29.2235 11.1255) rotate(146.182) scale(21.6158 23.0399)">
<stop stop-color="#B566E6"/>
<stop offset="0.776042" stop-color="#B566E6" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint4_radial_1485_3633" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.0017) rotate(68.1368) scale(38.0853 13.0513)">
<stop stop-color="white" stop-opacity="0.46"/>
<stop offset="0.776042" stop-color="white" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint5_radial_1485_3633" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(19.0469 28) rotate(-74.1245) scale(16.1601 10.9987)">
<stop stop-color="white" stop-opacity="0.21"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</radialGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,10 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1030_3095)">
<path d="M1.29731 6.21019C0.949307 6.09419 0.945973 5.90686 1.30397 5.78752L14.0286 1.54619C14.3813 1.42886 14.5833 1.62619 14.4846 1.97152L10.8486 14.6955C10.7486 15.0482 10.5453 15.0602 10.396 14.7255L7.99997 9.33352L12 4.00019L6.66664 8.00019L1.29731 6.21019V6.21019Z" fill="#AEB9CA"/>
</g>
<defs>
<clipPath id="clip0_1030_3095">
<rect width="16" height="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 538 B

View File

@ -0,0 +1,10 @@
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1030_3095)">
<path d="M1.78377 8.53883C1.30527 8.37933 1.30068 8.12174 1.79293 7.95766L19.2893 2.12583C19.7743 1.96449 20.052 2.23583 19.9163 2.71066L14.9169 20.2062C14.7794 20.6911 14.4998 20.7076 14.2944 20.2474L10.9999 12.8334L16.4999 5.50008L9.1666 11.0001L1.78377 8.53883V8.53883Z" fill="#AEB9CA"/>
</g>
<defs>
<clipPath id="clip0_1030_3095">
<rect width="22" height="22" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 540 B

View File

@ -1,6 +1,6 @@
<!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
<svg width="30" height="14" viewBox="0 0 120 30" xmlns="http://www.w3.org/2000/svg" fill="#fff"> <svg width="30" height="14" viewBox="0 0 120 30" xmlns="http://www.w3.org/2000/svg" fill="#fff">
<circle cx="15" cy="15" r="15" fill="var(--primary, red)"> <circle cx="15" cy="15" r="15" fill="var(--primary, WHITE)">
<animate attributeName="r" from="15" to="15" <animate attributeName="r" from="15" to="15"
begin="0s" dur="0.8s" begin="0s" dur="0.8s"
values="15;9;15" calcMode="linear" values="15;9;15" calcMode="linear"
@ -10,7 +10,7 @@
values="1;.5;1" calcMode="linear" values="1;.5;1" calcMode="linear"
repeatCount="indefinite" /> repeatCount="indefinite" />
</circle> </circle>
<circle cx="60" cy="15" r="9" fill-opacity="0.3" fill="var(--primary, red)"> <circle cx="60" cy="15" r="9" fill-opacity="0.3" fill="var(--primary, WHITE)">
<animate attributeName="r" from="9" to="9" <animate attributeName="r" from="9" to="9"
begin="0s" dur="0.8s" begin="0s" dur="0.8s"
values="9;15;9" calcMode="linear" values="9;15;9" calcMode="linear"
@ -20,7 +20,7 @@
values=".5;1;.5" calcMode="linear" values=".5;1;.5" calcMode="linear"
repeatCount="indefinite" /> repeatCount="indefinite" />
</circle> </circle>
<circle cx="105" cy="15" r="15" fill="var(--primary, red)"> <circle cx="105" cy="15" r="15" fill="var(--primary, WHITE)">
<animate attributeName="r" from="15" to="15" <animate attributeName="r" from="15" to="15"
begin="0s" dur="0.8s" begin="0s" dur="0.8s"
values="15;9;15" calcMode="linear" values="15;9;15" calcMode="linear"

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -17,10 +17,10 @@ try {
} }
export const metadata = { export const metadata = {
title: "ChatGPT Next Web", title: "ChatBox - IMPROVE WITH AI",
description: "Your personal ChatGPT Chat Bot.", description: "Your personal Chat Bot.",
appleWebApp: { appleWebApp: {
title: "ChatGPT Next Web", title: "ChatBox",
statusBarStyle: "default", statusBarStyle: "default",
}, },
themeColor: "#fafafa", themeColor: "#fafafa",
@ -55,10 +55,11 @@ export default function RootLayout({
/> />
<meta <meta
name="theme-color" name="theme-color"
content="#151515" content="#040415"
media="(prefers-color-scheme: dark)" media="(prefers-color-scheme: dark)"
/> />
<Meta /> <Meta />
<link rel="manifest" href="/site.webmanifest"></link> <link rel="manifest" href="/site.webmanifest"></link>
<link rel="preconnect" href="https://fonts.googleapis.com"></link> <link rel="preconnect" href="https://fonts.googleapis.com"></link>
<link rel="preconnect" href="https://fonts.gstatic.com"></link> <link rel="preconnect" href="https://fonts.gstatic.com"></link>

View File

@ -21,10 +21,8 @@ const cn = {
Rename: "重命名对话", Rename: "重命名对话",
Typing: "正在输入…", Typing: "正在输入…",
Input: (submitKey: string) => { Input: (submitKey: string) => {
var inputHints = `输入消息,${submitKey} 发送`; var inputHints = `输入问题或 " / " 获取模板`;
if (submitKey === String(SubmitKey.Enter)) {
inputHints += "Shift + Enter 换行";
}
return inputHints; return inputHints;
}, },
Send: "发送", Send: "发送",

View File

@ -134,12 +134,12 @@ const DEFAULT_CONFIG: ChatConfig = {
historyMessageCount: 4, historyMessageCount: 4,
compressMessageLengthThreshold: 1000, compressMessageLengthThreshold: 1000,
sendBotMessages: true as boolean, sendBotMessages: true as boolean,
submitKey: SubmitKey.CtrlEnter as SubmitKey, submitKey: SubmitKey.Enter as SubmitKey,
avatar: "1f603", avatar: "1f603",
fontSize: 14, fontSize: 15,
theme: Theme.Auto as Theme, theme: Theme.Dark as Theme,
tightBorder: false, tightBorder: false,
sendPreviewBubble: true, sendPreviewBubble: false,
disablePromptHint: false, disablePromptHint: false,

View File

@ -3,9 +3,9 @@
--white: white; --white: white;
--black: rgb(48, 48, 48); --black: rgb(48, 48, 48);
--gray: rgb(250, 250, 250); --gray: rgb(250, 250, 250);
--primary: rgba(78, 91, 246, 0.88); --primary: rgba(78, 91, 246, 0.8);
--second: rgb(231, 248, 255); --second: #dadefd83;
--hover-color: #f3f3f3; --hover-color: rgba(78, 91, 246, 0.1);
--bar-color: rgba(0, 0, 0, 0.1); --bar-color: rgba(0, 0, 0, 0.1);
--theme-color: var(--gray); --theme-color: var(--gray);
@ -20,17 +20,15 @@
@mixin dark { @mixin dark {
/* color */ /* color */
--white: #040415; --white: #040415;
--black: rgb(255, 255, 255); --black: #d1d5db;
--gray: rgb(21, 21, 21); --gray: rgb(21, 21, 21);
--primary: rgba(78, 91, 246, 0.88); --primary: rgba(78, 91, 246);
--second: #1D1D2C; --second: #171724;
--hover-color: #040415; --hover-color: #040415;
--text: #AEB9CA; --text: #AEB9CA;
--bar-color: rgba(255, 255, 255, 0.1); --bar-color: rgba(255, 255, 255, 0.1);
--border-in-light: 1px solid #dadefd36;
--border-in-light: 1px solid rgba(255, 255, 255, 0.192); --theme-color: var(--white);
--theme-color: var(--gray);
} }
.light { .light {
@ -50,18 +48,22 @@
--window-width: 90vw; --window-width: 90vw;
--window-height: 90vh; --window-height: 90vh;
--sidebar-width: 300px; --sidebar-width: 260px;
--window-content-width: calc(100% - var(--sidebar-width)); --window-content-width: calc(100% - var(--sidebar-width));
--message-max-width: 100%; --message-max-width: 100%;
--full-height: 100%;
} }
@media only screen and (max-width: 600px) { @media only screen and (max-width: 600px) {
:root { :root {
--window-width: 100vw; --window-width: 100vw;
--window-height: 100vh; --window-height: var(--full-height);
--sidebar-width: 100vw; --sidebar-width: 100vw;
--window-content-width: var(--window-width); --window-content-width: var(--window-width);
--message-max-width: 100%; --message-max-width: 100%;
body{
overflow-y: hidden;
}
} }
.no-mobile { .no-mobile {
@ -74,13 +76,15 @@
@include dark; @include dark;
} }
} }
html {
height: var(--full-height);
}
body { body {
background-color: var(--gray); background-color: var(--gray);
color: var(--black); color: var(--black);
margin: 0; margin: 0;
padding: 0; padding: 0;
height: 100vh; height: var(--full-height);
width: 100vw; width: 100vw;
display: flex; display: flex;
justify-content: center; justify-content: center;

View File

@ -96,8 +96,8 @@
margin: 0; margin: 0;
color: var(--color-fg-default); color: var(--color-fg-default);
background-color: var(--color-canvas-default); background-color: var(--color-canvas-default);
font-size: 14px; font-size: 15px;
line-height: 1.5; line-height: 1.75;
word-wrap: break-word; word-wrap: break-word;
} }
@ -448,7 +448,7 @@
.markdown-body tt, .markdown-body tt,
.markdown-body code, .markdown-body code,
.markdown-body samp { .markdown-body samp {
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, font-family: sans-serif ,ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas,
Liberation Mono, monospace; Liberation Mono, monospace;
font-size: 12px; font-size: 12px;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 633 B

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,21 +1 @@
{ {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
"name": "ChatGPT Next Web",
"short_name": "ChatGPT",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"start_url": "/",
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

View File

@ -5,10 +5,10 @@ const RAW_CN_URL =
"https://raw.githubusercontent.com/PlexPt/awesome-chatgpt-prompts-zh/main/prompts-zh.json"; "https://raw.githubusercontent.com/PlexPt/awesome-chatgpt-prompts-zh/main/prompts-zh.json";
const CN_URL = const CN_URL =
"https://cdn.jsdelivr.net/gh/PlexPt/awesome-chatgpt-prompts-zh@main/prompts-zh.json"; "https://cdn.jsdelivr.net/gh/PlexPt/awesome-chatgpt-prompts-zh@main/prompts-zh.json";
const RAW_EN_URL = // const RAW_EN_URL =
"https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv"; // "https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv";
const EN_URL = // const EN_URL =
"https://cdn.jsdelivr.net/gh/f/awesome-chatgpt-prompts@main/prompts.csv"; // "https://cdn.jsdelivr.net/gh/f/awesome-chatgpt-prompts@main/prompts.csv";
const FILE = "./public/prompts.json"; const FILE = "./public/prompts.json";
async function fetchCN() { async function fetchCN() {