gitextract__4v8y3mp/ ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── channel_update.md │ │ ├── config.yml │ │ └── feature_request.md │ └── workflows/ │ ├── app.yaml │ ├── build.yaml │ ├── docker-cd.yaml │ ├── docker-ci.yaml │ └── issue-translator.yaml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── README_ja-JP.md ├── README_zh-CN.md ├── adapter/ │ ├── adapter.go │ ├── azure/ │ │ ├── chat.go │ │ ├── image.go │ │ ├── processor.go │ │ ├── struct.go │ │ └── types.go │ ├── baichuan/ │ │ ├── chat.go │ │ ├── processor.go │ │ ├── struct.go │ │ └── types.go │ ├── bing/ │ │ ├── chat.go │ │ ├── struct.go │ │ └── types.go │ ├── claude/ │ │ ├── chat.go │ │ ├── struct.go │ │ └── types.go │ ├── common/ │ │ ├── interface.go │ │ └── types.go │ ├── coze/ │ │ ├── chat.go │ │ ├── processor.go │ │ └── struct.go │ ├── dashscope/ │ │ ├── chat.go │ │ ├── struct.go │ │ └── types.go │ ├── deepseek/ │ │ ├── chat.go │ │ └── struct.go │ ├── dify/ │ │ ├── chat.go │ │ ├── processor.go │ │ └── struct.go │ ├── hunyuan/ │ │ ├── chat.go │ │ ├── sdk.go │ │ └── struct.go │ ├── midjourney/ │ │ ├── api.go │ │ ├── chat.go │ │ ├── expose.go │ │ ├── handler.go │ │ ├── storage.go │ │ ├── struct.go │ │ └── types.go │ ├── openai/ │ │ ├── chat.go │ │ ├── image.go │ │ ├── processor.go │ │ ├── struct.go │ │ ├── types.go │ │ └── videos.go │ ├── palm2/ │ │ ├── chat.go │ │ ├── formatter.go │ │ ├── image.go │ │ ├── struct.go │ │ └── types.go │ ├── request.go │ ├── router.go │ ├── skylark/ │ │ ├── chat.go │ │ ├── formatter.go │ │ └── struct.go │ ├── slack/ │ │ ├── chat.go │ │ └── struct.go │ ├── sparkdesk/ │ │ ├── chat.go │ │ ├── struct.go │ │ └── types.go │ ├── zhinao/ │ │ ├── chat.go │ │ ├── processor.go │ │ ├── struct.go │ │ └── types.go │ └── zhipuai/ │ ├── chat.go │ ├── processor.go │ ├── struct.go │ └── types.go ├── addition/ │ ├── article/ │ │ ├── api.go │ │ ├── data/ │ │ │ └── .gitkeep │ │ ├── generate.go │ │ ├── template.docx │ │ └── utils.go │ ├── card/ │ │ ├── .gitignore │ │ ├── card.go │ │ ├── card.php │ │ ├── error.php │ │ └── utils.php │ ├── generation/ │ │ ├── api.go │ │ ├── build.go │ │ ├── data/ │ │ │ └── .gitkeep │ │ ├── generate.go │ │ └── prompt.go │ ├── router.go │ └── web/ │ ├── call.go │ └── search.go ├── admin/ │ ├── analysis/ │ │ ├── analysis.go │ │ ├── format.go │ │ ├── reflect.go │ │ ├── statistic.go │ │ └── types.go │ ├── controller.go │ ├── format.go │ ├── instance.go │ ├── invitation.go │ ├── logger.go │ ├── market.go │ ├── redeem.go │ ├── router.go │ ├── statistic.go │ ├── types.go │ └── user.go ├── app/ │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .prettierrc.json │ ├── components.json │ ├── index.html │ ├── package.json │ ├── postcss.config.js │ ├── public/ │ │ ├── manifest.json │ │ ├── robots.txt │ │ ├── service.js │ │ ├── site.webmanifest │ │ └── workbox.js │ ├── qodana.yaml │ ├── src/ │ │ ├── App.tsx │ │ ├── admin/ │ │ │ ├── api/ │ │ │ │ ├── channel.ts │ │ │ │ ├── charge.ts │ │ │ │ ├── chart.ts │ │ │ │ ├── info.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── market.ts │ │ │ │ ├── plan.ts │ │ │ │ └── system.ts │ │ │ ├── channel.ts │ │ │ ├── charge.ts │ │ │ ├── colors.ts │ │ │ ├── datasets/ │ │ │ │ └── charge.ts │ │ │ ├── hook.tsx │ │ │ ├── market.ts │ │ │ └── types.ts │ │ ├── api/ │ │ │ ├── addition.ts │ │ │ ├── auth.ts │ │ │ ├── broadcast.ts │ │ │ ├── common.ts │ │ │ ├── connection.ts │ │ │ ├── file.ts │ │ │ ├── generation.ts │ │ │ ├── history.ts │ │ │ ├── mask.ts │ │ │ ├── plugin.ts │ │ │ ├── quota.ts │ │ │ ├── record.ts │ │ │ ├── redeem.ts │ │ │ ├── sharing.ts │ │ │ ├── types.tsx │ │ │ └── v1.ts │ │ ├── assets/ │ │ │ ├── admin/ │ │ │ │ ├── all.less │ │ │ │ ├── broadcast.less │ │ │ │ ├── channel.less │ │ │ │ ├── charge.less │ │ │ │ ├── dashboard.less │ │ │ │ ├── logger.less │ │ │ │ ├── management.less │ │ │ │ ├── market.less │ │ │ │ ├── menu.less │ │ │ │ ├── subscription.less │ │ │ │ └── system.less │ │ │ ├── common/ │ │ │ │ ├── 404.less │ │ │ │ ├── editor.less │ │ │ │ ├── file.less │ │ │ │ ├── loader.less │ │ │ │ └── plugin.less │ │ │ ├── fonts/ │ │ │ │ ├── all.less │ │ │ │ ├── common.less │ │ │ │ └── katex.less │ │ │ ├── globals.less │ │ │ ├── main.less │ │ │ ├── markdown/ │ │ │ │ ├── all.less │ │ │ │ ├── highlight.less │ │ │ │ ├── style.less │ │ │ │ └── theme.less │ │ │ ├── pages/ │ │ │ │ ├── api.less │ │ │ │ ├── article.less │ │ │ │ ├── auth.less │ │ │ │ ├── chat.less │ │ │ │ ├── generation.less │ │ │ │ ├── home.less │ │ │ │ ├── navbar.less │ │ │ │ ├── notify.less │ │ │ │ ├── package.less │ │ │ │ ├── preset.less │ │ │ │ ├── quota.less │ │ │ │ ├── record.less │ │ │ │ ├── settings.less │ │ │ │ ├── share-manager.less │ │ │ │ ├── sharing.less │ │ │ │ └── subscription.less │ │ │ └── ui.less │ │ ├── components/ │ │ │ ├── Avatar.tsx │ │ │ ├── EditorProvider.tsx │ │ │ ├── Emoji.tsx │ │ │ ├── ErrorBoundary.tsx │ │ │ ├── FileProvider.tsx │ │ │ ├── FileViewer.tsx │ │ │ ├── I18nProvider.tsx │ │ │ ├── Loader.tsx │ │ │ ├── MCPResultDebug.tsx │ │ │ ├── MCPResultPanel.tsx │ │ │ ├── Markdown.tsx │ │ │ ├── Message.tsx │ │ │ ├── ModelAvatar.tsx │ │ │ ├── OperationAction.tsx │ │ │ ├── Paragraph.tsx │ │ │ ├── PopupDialog.tsx │ │ │ ├── ProjectLink.tsx │ │ │ ├── ReloadService.tsx │ │ │ ├── Require.tsx │ │ │ ├── SelectGroup.tsx │ │ │ ├── ThemeProvider.tsx │ │ │ ├── ThinkContent.tsx │ │ │ ├── TickButton.tsx │ │ │ ├── Tips.tsx │ │ │ ├── TrendBadge.tsx │ │ │ ├── VoiceProvider.tsx │ │ │ ├── WarningButton.tsx │ │ │ ├── admin/ │ │ │ │ ├── ChannelSettings.tsx │ │ │ │ ├── ChargeWidget.tsx │ │ │ │ ├── ChartBox.tsx │ │ │ │ ├── InfoBox.tsx │ │ │ │ ├── InvitationTable.tsx │ │ │ │ ├── MenuBar.tsx │ │ │ │ ├── RedeemTable.tsx │ │ │ │ ├── UserTable.tsx │ │ │ │ ├── assemblies/ │ │ │ │ │ ├── BillingChart.tsx │ │ │ │ │ ├── BroadcastTable.tsx │ │ │ │ │ ├── ChannelEditor.tsx │ │ │ │ │ ├── ChannelTable.tsx │ │ │ │ │ ├── ErrorChart.tsx │ │ │ │ │ ├── ModelChart.tsx │ │ │ │ │ ├── ModelUsageChart.tsx │ │ │ │ │ ├── RequestChart.tsx │ │ │ │ │ └── UserTypeChart.tsx │ │ │ │ └── common/ │ │ │ │ └── StateBadge.tsx │ │ │ ├── app/ │ │ │ │ ├── Announcement.tsx │ │ │ │ ├── AppProvider.tsx │ │ │ │ ├── Contact.tsx │ │ │ │ ├── MenuBar.tsx │ │ │ │ └── NavBar.tsx │ │ │ ├── home/ │ │ │ │ ├── ChatInterface.tsx │ │ │ │ ├── ChatSpace.tsx │ │ │ │ ├── ChatWrapper.tsx │ │ │ │ ├── ConversationItem.tsx │ │ │ │ ├── MaskEditor.tsx │ │ │ │ ├── ModelArea.tsx │ │ │ │ ├── SideBar.tsx │ │ │ │ ├── assemblies/ │ │ │ │ │ ├── ActionButton.tsx │ │ │ │ │ ├── ChatAction.tsx │ │ │ │ │ ├── ChatInput.tsx │ │ │ │ │ └── ScrollAction.tsx │ │ │ │ └── subscription/ │ │ │ │ ├── SubscriptionUsage.tsx │ │ │ │ └── UpgradePlan.tsx │ │ │ ├── markdown/ │ │ │ │ ├── Code.tsx │ │ │ │ ├── Image.tsx │ │ │ │ ├── Label.tsx │ │ │ │ ├── Link.tsx │ │ │ │ ├── Reference.tsx │ │ │ │ ├── Video.tsx │ │ │ │ └── VirtualMessage.tsx │ │ │ ├── plugins/ │ │ │ │ ├── file.tsx │ │ │ │ ├── mermaid.tsx │ │ │ │ └── progress.tsx │ │ │ ├── ui/ │ │ │ │ ├── accordion.tsx │ │ │ │ ├── alert-dialog.tsx │ │ │ │ ├── alert.tsx │ │ │ │ ├── badge.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── calendar.tsx │ │ │ │ ├── card.tsx │ │ │ │ ├── checkbox.tsx │ │ │ │ ├── clickable.tsx │ │ │ │ ├── combo-box.tsx │ │ │ │ ├── command.tsx │ │ │ │ ├── context-menu.tsx │ │ │ │ ├── date-picker.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── drawer.tsx │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ ├── icons/ │ │ │ │ │ ├── Github.tsx │ │ │ │ │ └── Send.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── label.tsx │ │ │ │ ├── lib/ │ │ │ │ │ └── utils.ts │ │ │ │ ├── multi-combobox.tsx │ │ │ │ ├── number-input.tsx │ │ │ │ ├── pagination.tsx │ │ │ │ ├── popover.tsx │ │ │ │ ├── progress.tsx │ │ │ │ ├── radio-box.tsx │ │ │ │ ├── radio-group.tsx │ │ │ │ ├── scroll-area.tsx │ │ │ │ ├── select.tsx │ │ │ │ ├── separator.tsx │ │ │ │ ├── sheet.tsx │ │ │ │ ├── skeleton.tsx │ │ │ │ ├── slider.tsx │ │ │ │ ├── sonner.tsx │ │ │ │ ├── step.tsx │ │ │ │ ├── switch.tsx │ │ │ │ ├── table.tsx │ │ │ │ ├── tabs.tsx │ │ │ │ ├── textarea.tsx │ │ │ │ ├── toast.tsx │ │ │ │ ├── toaster.tsx │ │ │ │ ├── toggle-group.tsx │ │ │ │ ├── toggle.tsx │ │ │ │ ├── tooltip.tsx │ │ │ │ └── use-toast.ts │ │ │ └── utils/ │ │ │ └── Icon.tsx │ │ ├── conf/ │ │ │ ├── api.ts │ │ │ ├── bootstrap.ts │ │ │ ├── deeptrain.tsx │ │ │ ├── env.ts │ │ │ ├── model.ts │ │ │ ├── storage.ts │ │ │ ├── subscription.tsx │ │ │ └── version.json │ │ ├── dialogs/ │ │ │ ├── SettingsDialog.tsx │ │ │ └── index.tsx │ │ ├── events/ │ │ │ ├── blob.ts │ │ │ ├── info.ts │ │ │ ├── model.ts │ │ │ ├── spinner.ts │ │ │ ├── struct.ts │ │ │ └── theme.ts │ │ ├── i18n.ts │ │ ├── main.tsx │ │ ├── masks/ │ │ │ ├── prompts.ts │ │ │ └── types.ts │ │ ├── payment/ │ │ │ ├── icons.tsx │ │ │ ├── request.ts │ │ │ └── utils.ts │ │ ├── plugin/ │ │ │ └── types.ts │ │ ├── resources/ │ │ │ └── i18n/ │ │ │ ├── cn.json │ │ │ ├── en.json │ │ │ ├── ja.json │ │ │ ├── ru.json │ │ │ └── tw.json │ │ ├── router.tsx │ │ ├── routes/ │ │ │ ├── Account.tsx │ │ │ ├── Admin.tsx │ │ │ ├── Article.tsx │ │ │ ├── Auth.tsx │ │ │ ├── Forgot.tsx │ │ │ ├── Generation.tsx │ │ │ ├── Home.tsx │ │ │ ├── Index.tsx │ │ │ ├── Model.tsx │ │ │ ├── NotFound.tsx │ │ │ ├── Register.tsx │ │ │ ├── Sharing.tsx │ │ │ ├── Wallet.tsx │ │ │ ├── admin/ │ │ │ │ ├── Broadcast.tsx │ │ │ │ ├── Channel.tsx │ │ │ │ ├── Charge.tsx │ │ │ │ ├── DashBoard.tsx │ │ │ │ ├── License.tsx │ │ │ │ ├── Logger.tsx │ │ │ │ ├── Market.tsx │ │ │ │ ├── Notification.tsx │ │ │ │ ├── Subscription.tsx │ │ │ │ ├── System.tsx │ │ │ │ ├── Users.tsx │ │ │ │ └── common/ │ │ │ │ └── CommonAdminPage.tsx │ │ │ └── wallet/ │ │ │ ├── AmountItem.tsx │ │ │ └── WalletQuotaBox.tsx │ │ ├── spinner.tsx │ │ ├── store/ │ │ │ ├── api.ts │ │ │ ├── auth.ts │ │ │ ├── avatar.ts │ │ │ ├── chat.ts │ │ │ ├── globals.ts │ │ │ ├── index.ts │ │ │ ├── info.ts │ │ │ ├── menu.ts │ │ │ ├── package.ts │ │ │ ├── quota.ts │ │ │ ├── record.ts │ │ │ ├── settings.ts │ │ │ ├── sharing.ts │ │ │ ├── subscription.ts │ │ │ └── utils.ts │ │ ├── translator/ │ │ │ ├── adapter.ts │ │ │ ├── index.ts │ │ │ ├── io.ts │ │ │ └── translator.ts │ │ ├── types/ │ │ │ ├── performance.d.ts │ │ │ ├── service.d.ts │ │ │ └── ui.d.ts │ │ ├── utils/ │ │ │ ├── analytics.ts │ │ │ ├── app.ts │ │ │ ├── base.ts │ │ │ ├── date.ts │ │ │ ├── desktop.ts │ │ │ ├── dev.ts │ │ │ ├── device.ts │ │ │ ├── dom.ts │ │ │ ├── form.ts │ │ │ ├── groups.ts │ │ │ ├── hook.ts │ │ │ ├── loader.tsx │ │ │ ├── memory.ts │ │ │ ├── path.ts │ │ │ └── processor.ts │ │ └── vite-env.d.ts │ ├── src-tauri/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── icons/ │ │ │ └── icon.icns │ │ ├── src/ │ │ │ └── main.rs │ │ └── tauri.conf.json │ ├── tailwind.config.js │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── auth/ │ ├── analysis.go │ ├── apikey.go │ ├── auth.go │ ├── call.go │ ├── cert.go │ ├── controller.go │ ├── invitation.go │ ├── package.go │ ├── payment.go │ ├── quota.go │ ├── redeem.go │ ├── router.go │ ├── rule.go │ ├── struct.go │ ├── subscription.go │ ├── usage.go │ └── validators.go ├── channel/ │ ├── channel.go │ ├── charge.go │ ├── controller.go │ ├── manager.go │ ├── plan.go │ ├── router.go │ ├── sequence.go │ ├── system.go │ ├── ticker.go │ ├── types.go │ └── worker.go ├── cli/ │ ├── admin.go │ ├── exec.go │ ├── help.go │ ├── invite.go │ ├── parser.go │ └── token.go ├── config.example.yaml ├── connection/ │ ├── cache.go │ ├── database.go │ ├── db_migration.go │ └── worker.go ├── docker-compose.stable.yaml ├── docker-compose.watch.yaml ├── docker-compose.yaml ├── globals/ │ ├── constant.go │ ├── interface.go │ ├── logger.go │ ├── method.go │ ├── params.go │ ├── sql.go │ ├── tools.go │ ├── types.go │ ├── usage.go │ └── variables.go ├── go.mod ├── go.sum ├── main.go ├── manager/ │ ├── broadcast/ │ │ ├── controller.go │ │ ├── manage.go │ │ ├── router.go │ │ ├── types.go │ │ └── view.go │ ├── chat.go │ ├── chat_completions.go │ ├── completions.go │ ├── connection.go │ ├── conversation/ │ │ ├── api.go │ │ ├── conversation.go │ │ ├── mask.go │ │ ├── router.go │ │ ├── shared.go │ │ └── storage.go │ ├── images.go │ ├── manager.go │ ├── relay.go │ ├── router.go │ ├── types.go │ ├── usage.go │ └── videos.go ├── middleware/ │ ├── auth.go │ ├── builtins.go │ ├── cors.go │ ├── middleware.go │ └── throttle.go ├── migration/ │ ├── 3.6.sql │ └── 3.8.sql ├── nginx.conf ├── utils/ │ ├── base.go │ ├── bootstrap.go │ ├── buffer.go │ ├── cache.go │ ├── char.go │ ├── compress.go │ ├── config.go │ ├── ctx.go │ ├── encrypt.go │ ├── fs.go │ ├── image.go │ ├── net.go │ ├── scanner.go │ ├── smtp.go │ ├── sse.go │ ├── templates/ │ │ └── code.html │ ├── tokenizer.go │ └── websocket.go └── zeabur.yaml