gitextract_4kuwrg29/ ├── .commitlintrc.json ├── .devcontainer/ │ └── devcontainer.json ├── .dockerignore ├── .editorconfig ├── .eslintignore ├── .eslintrc.cjs ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── build_docker.yml │ ├── ci.yml │ └── issues_close.yml ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .npmrc ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── CHANGELOG.md ├── CONTRIBUTING.en.md ├── CONTRIBUTING.md ├── Dockerfile ├── README.md ├── README.zh.md ├── docker-compose/ │ ├── README.md │ ├── docker-compose.yml │ └── nginx/ │ └── nginx.conf ├── index.html ├── kubernetes/ │ ├── README.md │ ├── deploy.yaml │ └── ingress.yaml ├── license ├── package.json ├── postcss.config.js ├── service/ │ ├── .eslintrc.json │ ├── .gitignore │ ├── .npmrc │ ├── .vscode/ │ │ ├── extensions.json │ │ └── settings.json │ ├── package.json │ ├── src/ │ │ ├── chatgpt/ │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── index.ts │ │ ├── middleware/ │ │ │ ├── auth.ts │ │ │ └── limiter.ts │ │ ├── types.ts │ │ └── utils/ │ │ ├── index.ts │ │ └── is.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── src/ │ ├── App.vue │ ├── api/ │ │ └── index.ts │ ├── assets/ │ │ └── recommend.json │ ├── components/ │ │ ├── common/ │ │ │ ├── HoverButton/ │ │ │ │ ├── Button.vue │ │ │ │ └── index.vue │ │ │ ├── NaiveProvider/ │ │ │ │ └── index.vue │ │ │ ├── PromptStore/ │ │ │ │ └── index.vue │ │ │ ├── Setting/ │ │ │ │ ├── About.vue │ │ │ │ ├── Advanced.vue │ │ │ │ ├── General.vue │ │ │ │ └── index.vue │ │ │ ├── SvgIcon/ │ │ │ │ └── index.vue │ │ │ ├── UserAvatar/ │ │ │ │ └── index.vue │ │ │ └── index.ts │ │ └── custom/ │ │ ├── GithubSite.vue │ │ └── index.ts │ ├── hooks/ │ │ ├── useBasicLayout.ts │ │ ├── useIconRender.ts │ │ ├── useLanguage.ts │ │ └── useTheme.ts │ ├── icons/ │ │ ├── 403.vue │ │ └── 500.vue │ ├── locales/ │ │ ├── en-US.ts │ │ ├── es-ES.ts │ │ ├── index.ts │ │ ├── ko-KR.ts │ │ ├── ru-RU.ts │ │ ├── vi-VN.ts │ │ ├── zh-CN.ts │ │ └── zh-TW.ts │ ├── main.ts │ ├── plugins/ │ │ ├── assets.ts │ │ ├── index.ts │ │ └── scrollbarStyle.ts │ ├── router/ │ │ ├── index.ts │ │ └── permission.ts │ ├── store/ │ │ ├── helper.ts │ │ ├── index.ts │ │ └── modules/ │ │ ├── app/ │ │ │ ├── helper.ts │ │ │ └── index.ts │ │ ├── auth/ │ │ │ ├── helper.ts │ │ │ └── index.ts │ │ ├── chat/ │ │ │ ├── helper.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── prompt/ │ │ │ ├── helper.ts │ │ │ └── index.ts │ │ ├── settings/ │ │ │ ├── helper.ts │ │ │ └── index.ts │ │ └── user/ │ │ ├── helper.ts │ │ └── index.ts │ ├── styles/ │ │ ├── global.less │ │ └── lib/ │ │ ├── github-markdown.less │ │ ├── highlight.less │ │ └── tailwind.css │ ├── typings/ │ │ ├── chat.d.ts │ │ ├── env.d.ts │ │ └── global.d.ts │ ├── utils/ │ │ ├── copy.ts │ │ ├── functions/ │ │ │ ├── debounce.ts │ │ │ └── index.ts │ │ ├── is/ │ │ │ └── index.ts │ │ ├── request/ │ │ │ ├── axios.ts │ │ │ └── index.ts │ │ └── storage/ │ │ └── index.ts │ └── views/ │ ├── chat/ │ │ ├── components/ │ │ │ ├── Header/ │ │ │ │ └── index.vue │ │ │ ├── Message/ │ │ │ │ ├── Avatar.vue │ │ │ │ ├── Text.vue │ │ │ │ ├── index.vue │ │ │ │ └── style.less │ │ │ └── index.ts │ │ ├── hooks/ │ │ │ ├── useChat.ts │ │ │ ├── useScroll.ts │ │ │ └── useUsingContext.ts │ │ ├── index.vue │ │ └── layout/ │ │ ├── Layout.vue │ │ ├── Permission.vue │ │ ├── index.ts │ │ └── sider/ │ │ ├── Footer.vue │ │ ├── List.vue │ │ └── index.vue │ └── exception/ │ ├── 404/ │ │ └── index.vue │ └── 500/ │ └── index.vue ├── start.cmd ├── start.sh ├── tailwind.config.js ├── tsconfig.json └── vite.config.ts