From 647dd3e751fdac059f1ac811badf640b8496b6a7 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Wed, 21 Aug 2024 10:07:46 +0800 Subject: [PATCH] feat: add minapps --- electron-builder.yml | 2 +- resources/graphrag.html | 4 +- src/main/window.ts | 29 ++++++- src/renderer/src/App.tsx | 4 +- .../src/assets/fonts/icon-fonts/iconfont.css | 37 ++++---- .../src/assets/fonts/icon-fonts/iconfont.ttf | Bin 5120 -> 0 bytes .../src/assets/fonts/icon-fonts/iconfont.woff | Bin 3072 -> 0 bytes .../assets/fonts/icon-fonts/iconfont.woff2 | Bin 2548 -> 2740 bytes .../src/assets/images/apps/360-ai.png | Bin 0 -> 29085 bytes .../src/assets/images/apps/baidu-ai.png | Bin 0 -> 10692 bytes .../src/assets/images/apps/baixiaoying.webp | Bin 0 -> 5972 bytes src/renderer/src/assets/images/apps/kimi.jpg | Bin 0 -> 20582 bytes .../src/assets/images/apps/yuewen.png | Bin 0 -> 4401 bytes src/renderer/src/assets/images/models/yi.png | Bin 0 -> 11995 bytes src/renderer/src/assets/images/models/yi.svg | 7 -- .../src/assets/images/providers/moonshot.jpeg | Bin 6700 -> 0 bytes .../src/assets/images/providers/moonshot.jpg | Bin 0 -> 13535 bytes .../src/assets/images/providers/yi.png | Bin 0 -> 11995 bytes .../src/assets/images/providers/yi.svg | 7 -- src/renderer/src/assets/styles/index.scss | 13 ++- .../src/components/Icons/CopyIcon.tsx | 7 ++ src/renderer/src/components/MinApp/index.tsx | 37 ++++---- src/renderer/src/components/app/Sidebar.tsx | 12 ++- src/renderer/src/config/provider.ts | 81 +++++++++++++++++- src/renderer/src/pages/apps/App.tsx | 49 +++++++++++ src/renderer/src/pages/apps/AppsPage.tsx | 77 +++++++++++++++++ .../ProviderSettings/GraphRAGSettings.tsx | 11 ++- .../src/pages/translate/TranslatePage.tsx | 12 +-- src/renderer/src/types/index.ts | 6 ++ 29 files changed, 322 insertions(+), 73 deletions(-) delete mode 100644 src/renderer/src/assets/fonts/icon-fonts/iconfont.ttf delete mode 100644 src/renderer/src/assets/fonts/icon-fonts/iconfont.woff create mode 100644 src/renderer/src/assets/images/apps/360-ai.png create mode 100644 src/renderer/src/assets/images/apps/baidu-ai.png create mode 100644 src/renderer/src/assets/images/apps/baixiaoying.webp create mode 100644 src/renderer/src/assets/images/apps/kimi.jpg create mode 100644 src/renderer/src/assets/images/apps/yuewen.png create mode 100644 src/renderer/src/assets/images/models/yi.png delete mode 100644 src/renderer/src/assets/images/models/yi.svg delete mode 100644 src/renderer/src/assets/images/providers/moonshot.jpeg create mode 100644 src/renderer/src/assets/images/providers/moonshot.jpg create mode 100644 src/renderer/src/assets/images/providers/yi.png delete mode 100644 src/renderer/src/assets/images/providers/yi.svg create mode 100644 src/renderer/src/components/Icons/CopyIcon.tsx create mode 100644 src/renderer/src/pages/apps/App.tsx create mode 100644 src/renderer/src/pages/apps/AppsPage.tsx diff --git a/electron-builder.yml b/electron-builder.yml index bf96b6e9..2b422256 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -56,4 +56,4 @@ electronDownload: afterSign: scripts/notarize.js releaseInfo: releaseNotes: | - 添加 MiniMax 服务商 + 新增AI小程序模块 diff --git a/resources/graphrag.html b/resources/graphrag.html index 0328ab4a..6661aa9f 100644 --- a/resources/graphrag.html +++ b/resources/graphrag.html @@ -58,7 +58,9 @@ window.api.minApp({ url, windowOptions: { - title: node.properties.title + title: node.properties.title, + width: 500, + height: 800 } }) }) diff --git a/src/main/window.ts b/src/main/window.ts index 7f6a229f..eeadee29 100644 --- a/src/main/window.ts +++ b/src/main/window.ts @@ -62,10 +62,33 @@ export function createMainWindow() { }) mainWindow.webContents.setWindowOpenHandler((details) => { - shell.openExternal(details.url) + const websiteReg = /accounts.google.com/i + + if (websiteReg.test(details.url)) { + createMinappWindow({ url: details.url, windowOptions: { width: 1000, height: 680 } }) + } else { + shell.openExternal(details.url) + } + return { action: 'deny' } }) + mainWindow.webContents.session.webRequest.onHeadersReceived({ urls: ['*://*/*'] }, (details, callback) => { + if (details.responseHeaders?.['X-Frame-Options']) { + delete details.responseHeaders['X-Frame-Options'] + } + if (details.responseHeaders?.['x-frame-options']) { + delete details.responseHeaders['x-frame-options'] + } + if (details.responseHeaders?.['Content-Security-Policy']) { + delete details.responseHeaders['Content-Security-Policy'] + } + if (details.responseHeaders?.['content-security-policy']) { + delete details.responseHeaders['content-security-policy'] + } + callback({ cancel: false, responseHeaders: details.responseHeaders }) + }) + // HMR for renderer base on electron-vite cli. // Load the remote URL for development or the local html file for production. if (is.dev && process.env['ELECTRON_RENDERER_URL']) { @@ -84,8 +107,8 @@ export function createMinappWindow({ url: string windowOptions?: Electron.BrowserWindowConstructorOptions }) { - const width = 500 - const height = 800 + const width = 1000 + const height = 680 const headerHeight = 40 const minappWindow = new BrowserWindow({ diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 81a582f0..ec07c95a 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -6,6 +6,7 @@ import { PersistGate } from 'redux-persist/integration/react' import Sidebar from './components/app/Sidebar' import TopViewContainer from './components/TopView' import AgentsPage from './pages/agents/AgentsPage' +import AppsPage from './pages/apps/AppsPage' import HomePage from './pages/home/HomePage' import SettingsPage from './pages/settings/SettingsPage' import TranslatePage from './pages/translate/TranslatePage' @@ -23,8 +24,9 @@ function App(): JSX.Element { } /> - } /> + } /> } /> + } /> } /> diff --git a/src/renderer/src/assets/fonts/icon-fonts/iconfont.css b/src/renderer/src/assets/fonts/icon-fonts/iconfont.css index a80dfc13..f9b26b32 100644 --- a/src/renderer/src/assets/fonts/icon-fonts/iconfont.css +++ b/src/renderer/src/assets/fonts/icon-fonts/iconfont.css @@ -1,63 +1,64 @@ @font-face { - font-family: "iconfont"; /* Project id 4563475 */ - src: url('iconfont.woff2?t=1723186111414') format('woff2'), - url('iconfont.woff?t=1723186111414') format('woff'), - url('iconfont.ttf?t=1723186111414') format('truetype'); + font-family: 'iconfont'; /* Project id 4563475 */ + src: url('iconfont.woff2?t=1724204739157') format('woff2'); } .iconfont { - font-family: "iconfont" !important; + font-family: 'iconfont' !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } +.icon-business-smart-assistant:before { + content: '\e601'; +} + .icon-copy:before { - content: "\e6ae"; + content: '\e6ae'; } .icon-ic_send:before { - content: "\e795"; + content: '\e795'; } .icon-dark1:before { - content: "\e72f"; + content: '\e72f'; } .icon-theme-light:before { - content: "\e6b7"; + content: '\e6b7'; } .icon-translate_line:before { - content: "\e7de"; + content: '\e7de'; } .icon-history:before { - content: "\e758"; + content: '\e758'; } .icon-hidesidebarhoriz:before { - content: "\e8eb"; + content: '\e8eb'; } .icon-showsidebarhoriz:before { - content: "\e944"; + content: '\e944'; } .icon-a-addchat:before { - content: "\e658"; + content: '\e658'; } .icon-appstore:before { - content: "\e792"; + content: '\e792'; } .icon-chat:before { - content: "\e615"; + content: '\e615'; } .icon-setting:before { - content: "\e78e"; + content: '\e78e'; } - diff --git a/src/renderer/src/assets/fonts/icon-fonts/iconfont.ttf b/src/renderer/src/assets/fonts/icon-fonts/iconfont.ttf deleted file mode 100644 index 4341a838aa2af4a3d187e06dd99dad5eb18affcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 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 q^4x>Q9rR!RC;$I2G`G|R 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 IPyhe`0Ji$;>;M1& diff --git a/src/renderer/src/assets/images/apps/360-ai.png b/src/renderer/src/assets/images/apps/360-ai.png new file mode 100644 index 0000000000000000000000000000000000000000..34f1e939960454e20a9315afd06451636d57847e GIT binary patch literal 29085 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 HMnV4z_K)Da literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/apps/baidu-ai.png b/src/renderer/src/assets/images/apps/baidu-ai.png new file mode 100644 index 0000000000000000000000000000000000000000..019ffea3c0c144c3a3bde0f4e21049c5bcf64193 GIT binary patch literal 10692 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%0Am)G93oN5Cx9Kv0E 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

)+HyFj*!TQo~Uy!r&HCt8DNYAtVC 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/apps/yuewen.png b/src/renderer/src/assets/images/apps/yuewen.png new file mode 100644 index 0000000000000000000000000000000000000000..de9d81e545c6e4381786d6a09f5af476d43bd640 GIT binary patch literal 4401 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 b97$1NPWQc6B&z>jAq3j$25R*{hp7Jpd5zkI literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/models/yi.png b/src/renderer/src/assets/images/models/yi.png new file mode 100644 index 0000000000000000000000000000000000000000..3700850bb6b4ebabad90d3d6f46c45531bdc3a2b GIT binary patch literal 11995 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/models/yi.svg b/src/renderer/src/assets/images/models/yi.svg deleted file mode 100644 index 83ebd22d..00000000 --- a/src/renderer/src/assets/images/models/yi.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/renderer/src/assets/images/providers/moonshot.jpeg b/src/renderer/src/assets/images/providers/moonshot.jpeg deleted file mode 100644 index c0d8127aff47c6dc9a5d46bc8d77610869fa0079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6700 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 Q)213y&IYgk{=4*l03n^4f&c&j literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/providers/yi.png b/src/renderer/src/assets/images/providers/yi.png new file mode 100644 index 0000000000000000000000000000000000000000..3700850bb6b4ebabad90d3d6f46c45531bdc3a2b GIT binary patch literal 11995 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/images/providers/yi.svg b/src/renderer/src/assets/images/providers/yi.svg deleted file mode 100644 index 19806791..00000000 --- a/src/renderer/src/assets/images/providers/yi.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/renderer/src/assets/styles/index.scss b/src/renderer/src/assets/styles/index.scss index 93492afe..8c21944a 100644 --- a/src/renderer/src/assets/styles/index.scss +++ b/src/renderer/src/assets/styles/index.scss @@ -1,7 +1,7 @@ @import './markdown.scss'; @import './scrollbar.scss'; @import '../fonts/icon-fonts/iconfont.css'; -@import '../fonts/Ubuntu/Ubuntu.css'; +@import '../fonts/ubuntu/ubuntu.css'; :root { --color-white: #ffffff; @@ -102,6 +102,14 @@ body[theme-mode='light'] { font-weight: normal; } +*:focus { + outline: none; +} + +* { + -webkit-tap-highlight-color: transparent; +} + ul { list-style: none; } @@ -175,6 +183,9 @@ body, } .minapp-drawer { + .ant-drawer-content-wrapper { + box-shadow: none; + } .ant-drawer-header { position: absolute; -webkit-app-region: drag; diff --git a/src/renderer/src/components/Icons/CopyIcon.tsx b/src/renderer/src/components/Icons/CopyIcon.tsx new file mode 100644 index 00000000..79f2b56a --- /dev/null +++ b/src/renderer/src/components/Icons/CopyIcon.tsx @@ -0,0 +1,7 @@ +import { FC } from 'react' + +const CopyIcon: FC = () => { + return +} + +export default CopyIcon diff --git a/src/renderer/src/components/MinApp/index.tsx b/src/renderer/src/components/MinApp/index.tsx index 0741acab..e7b74c82 100644 --- a/src/renderer/src/components/MinApp/index.tsx +++ b/src/renderer/src/components/MinApp/index.tsx @@ -3,28 +3,25 @@ import { isMac, isWindows } from '@renderer/config/constant' import { useBridge } from '@renderer/hooks/useBridge' import store from '@renderer/store' import { setMinappShow } from '@renderer/store/runtime' +import { MinAppType } from '@renderer/types' import { Drawer } from 'antd' import { useRef, useState } from 'react' import styled from 'styled-components' import { TopView } from '../TopView' -interface ShowParams { - title?: string - url: string -} - -interface Props extends ShowParams { +interface Props { + app: MinAppType resolve: (data: any) => void } -const PopupContainer: React.FC = ({ title, url, resolve }) => { +const PopupContainer: React.FC = ({ app, resolve }) => { const [open, setOpen] = useState(true) const iframeRef = useRef(null) useBridge() - const canOpenExternalLink = url.startsWith('http://') || url.startsWith('https://') + const canOpenExternalLink = app.url.startsWith('http://') || app.url.startsWith('https://') const onClose = () => { setOpen(false) @@ -33,19 +30,19 @@ const PopupContainer: React.FC = ({ title, url, resolve }) => { const onReload = () => { if (iframeRef.current) { - iframeRef.current.src = url + iframeRef.current.src = app.url } } const onOpenLink = () => { - window.api.openWebsite(url) + window.api.openWebsite(app.url) } const Title = () => { return ( - - {title} - + + {app.name} + @@ -75,7 +72,7 @@ const PopupContainer: React.FC = ({ title, url, resolve }) => { maskClosable={false} closeIcon={null} style={{ marginLeft: 'var(--sidebar-width)' }}> - + ) } @@ -84,6 +81,7 @@ const Frame = styled.iframe` width: calc(100vw - var(--sidebar-width)); height: calc(100vh - var(--navbar-height)); border: none; + background-color: white; ` const TitleContainer = styled.div` @@ -113,6 +111,13 @@ const ButtonsGroup = styled.div` align-items: center; gap: 5px; -webkit-app-region: no-drag; + &.windows { + margin-right: ${isWindows ? '130px' : 0}; + background-color: var(--color-background-mute); + border-radius: 50px; + padding: 0 3px; + overflow: hidden; + } ` const Button = styled.div` @@ -139,12 +144,12 @@ export default class MinApp { TopView.hide('MinApp') store.dispatch(setMinappShow(false)) } - static start(props: ShowParams) { + static start(app: MinAppType) { store.dispatch(setMinappShow(true)) return new Promise((resolve) => { TopView.show( { resolve(v) this.close() diff --git a/src/renderer/src/components/app/Sidebar.tsx b/src/renderer/src/components/app/Sidebar.tsx index c73d871e..414b7149 100644 --- a/src/renderer/src/components/app/Sidebar.tsx +++ b/src/renderer/src/components/app/Sidebar.tsx @@ -33,9 +33,9 @@ const Sidebar: FC = () => { - - - + + + @@ -43,6 +43,11 @@ const Sidebar: FC = () => { + + + + + @@ -62,6 +67,7 @@ const Container = styled.div` align-items: center; padding: 8px 0; width: var(--sidebar-width); + min-width: var(--sidebar-width); height: ${isMac ? 'calc(100vh - var(--navbar-height))' : '100vh'}; -webkit-app-region: drag !important; border-right: 0.5px solid var(--color-border); diff --git a/src/renderer/src/config/provider.ts b/src/renderer/src/config/provider.ts index 43ce17da..2c3da572 100644 --- a/src/renderer/src/config/provider.ts +++ b/src/renderer/src/config/provider.ts @@ -1,3 +1,6 @@ +import BaicuanAppLogo from '@renderer/assets/images/apps/baixiaoying.webp' +import KimiAppLogo from '@renderer/assets/images/apps/kimi.jpg' +import YuewenAppLogo from '@renderer/assets/images/apps/yuewen.png' import BaichuanModelLogo from '@renderer/assets/images/models/baichuan.png' import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.jpeg' import ChatGPTModelLogo from '@renderer/assets/images/models/chatgpt.jpeg' @@ -14,7 +17,7 @@ import MixtralModelLogo from '@renderer/assets/images/models/mixtral.jpeg' import PalmModelLogo from '@renderer/assets/images/models/palm.svg' import QwenModelLogo from '@renderer/assets/images/models/qwen.png' import StepModelLogo from '@renderer/assets/images/models/step.jpg' -import YiModelLogo from '@renderer/assets/images/models/yi.svg' +import YiModelLogo from '@renderer/assets/images/models/yi.png' import AiHubMixProviderLogo from '@renderer/assets/images/providers/aihubmix.jpg' import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.jpeg' import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png' @@ -25,14 +28,14 @@ import GeminiProviderLogo from '@renderer/assets/images/providers/gemini.png' import GraphRagProviderLogo from '@renderer/assets/images/providers/graph-rag.png' import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png' -import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpeg' -import MoonshotModelLogo from '@renderer/assets/images/providers/moonshot.jpeg' +import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpg' +import MoonshotModelLogo from '@renderer/assets/images/providers/moonshot.jpg' import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png' import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.png' import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png' import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png' import StepFunProviderLogo from '@renderer/assets/images/providers/stepfun.png' -import YiProviderLogo from '@renderer/assets/images/providers/yi.svg' +import YiProviderLogo from '@renderer/assets/images/providers/yi.png' import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png' export function getProviderLogo(providerId: string) { @@ -126,6 +129,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://platform.openai.com/api-keys', docs: 'https://platform.openai.com/docs', models: 'https://platform.openai.com/docs/models' + }, + app: { + name: 'ChatGPT', + url: 'https://chatgpt.com/', + logo: OpenAiProviderLogo } }, gemini: { @@ -138,6 +146,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://aistudio.google.com/app/apikey', docs: 'https://ai.google.dev/gemini-api/docs', models: 'https://ai.google.dev/gemini-api/docs/models/gemini' + }, + app: { + name: 'Gemini', + url: 'https://gemini.google.com/', + logo: GeminiProviderLogo } }, silicon: { @@ -150,6 +163,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://cloud.siliconflow.cn/account/ak?referrer=clxty1xuy0014lvqwh5z50i88', docs: 'https://docs.siliconflow.cn/', models: 'https://docs.siliconflow.cn/docs/model-names' + }, + app: { + name: 'SiliconFlow', + url: 'https://cloud.siliconflow.cn/playground/chat', + logo: SiliconFlowProviderLogo } }, deepseek: { @@ -162,6 +180,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://platform.deepseek.com/api_keys', docs: 'https://platform.deepseek.com/api-docs/', models: 'https://platform.deepseek.com/api-docs/' + }, + app: { + name: 'DeepSeek', + url: 'https://chat.deepseek.com/', + logo: DeepSeekProviderLogo } }, yi: { @@ -174,6 +197,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://platform.lingyiwanwu.com/apikeys', docs: 'https://platform.lingyiwanwu.com/docs', models: 'https://platform.lingyiwanwu.com/docs#%E6%A8%A1%E5%9E%8B' + }, + app: { + name: 'Yi', + url: 'https://www.wanzhi.com/', + logo: YiProviderLogo } }, zhipu: { @@ -186,6 +214,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://open.bigmodel.cn/usercenter/apikeys', docs: 'https://open.bigmodel.cn/dev/howuse/introduction', models: 'https://open.bigmodel.cn/modelcenter/square' + }, + app: { + name: '智谱', + url: 'https://chatglm.cn/main/alltoolsdetail', + logo: ZhipuProviderLogo } }, moonshot: { @@ -198,6 +231,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://platform.moonshot.cn/console/api-keys', docs: 'https://platform.moonshot.cn/docs/', models: 'https://platform.moonshot.cn/docs/intro#%E6%A8%A1%E5%9E%8B%E5%88%97%E8%A1%A8' + }, + app: { + name: 'Kimi', + url: 'https://kimi.moonshot.cn/', + logo: KimiAppLogo } }, baichuan: { @@ -210,6 +248,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://platform.baichuan-ai.com/console/apikey', docs: 'https://platform.baichuan-ai.com/docs', models: 'https://platform.baichuan-ai.com/price' + }, + app: { + name: '百小应', + url: 'https://ying.baichuan-ai.com/chat', + logo: BaicuanAppLogo } }, dashscope: { @@ -222,6 +265,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://help.aliyun.com/zh/dashscope/developer-reference/acquisition-and-configuration-of-api-key', docs: 'https://help.aliyun.com/zh/dashscope/', models: 'https://dashscope.console.aliyun.com/model' + }, + app: { + name: '通义千问', + url: 'https://tongyi.aliyun.com/qianwen/', + logo: QwenModelLogo } }, stepfun: { @@ -234,6 +282,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://platform.stepfun.com/interface-key', docs: 'https://platform.stepfun.com/docs/overview/concept', models: 'https://platform.stepfun.com/docs/llm/text' + }, + app: { + name: '跃问', + url: 'https://yuewen.cn/chats/new', + logo: YuewenAppLogo } }, doubao: { @@ -246,6 +299,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey', docs: 'https://www.volcengine.com/docs/82379/1182403', models: 'https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint' + }, + app: { + name: '豆包', + url: 'https://www.doubao.com/chat/', + logo: DoubaoProviderLogo } }, minimax: { @@ -258,6 +316,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://platform.minimaxi.com/user-center/basic-information/interface-key', docs: 'https://platform.minimaxi.com/document/Announcement', models: 'https://platform.minimaxi.com/document/Models' + }, + app: { + name: '海螺', + url: 'https://hailuoai.com/', + logo: HailuoModelLogo } }, 'graphrag-kylin-mountain': { @@ -288,6 +351,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://console.groq.com/keys', docs: 'https://console.groq.com/docs/quickstart', models: 'https://console.groq.com/docs/models' + }, + app: { + name: 'Groq', + url: 'https://groq.com/', + logo: GroqProviderLogo } }, ollama: { @@ -311,6 +379,11 @@ export const PROVIDER_CONFIG = { apiKey: 'https://console.anthropic.com/settings/keys', docs: 'https://docs.anthropic.com/en/docs', models: 'https://docs.anthropic.com/en/docs/about-claude/models' + }, + app: { + name: 'Claude', + url: 'https://claude.ai/', + logo: AnthropicProviderLogo } }, aihubmix: { diff --git a/src/renderer/src/pages/apps/App.tsx b/src/renderer/src/pages/apps/App.tsx new file mode 100644 index 00000000..989a78d7 --- /dev/null +++ b/src/renderer/src/pages/apps/App.tsx @@ -0,0 +1,49 @@ +import MinApp from '@renderer/components/MinApp' +import { useTheme } from '@renderer/providers/ThemeProvider' +import { MinAppType } from '@renderer/types' +import { FC } from 'react' +import styled from 'styled-components' + +interface Props { + app: MinAppType +} + +const App: FC = ({ app }) => { + const { theme } = useTheme() + + const onClick = () => { + MinApp.start(app) + } + + return ( + + + {app.name} + + ) +} + +const Container = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + cursor: pointer; +` + +const AppIcon = styled.img` + width: 60px; + height: 60px; + border-radius: 16px; + user-select: none; + -webkit-user-drag: none; +` + +const AppTitle = styled.div` + font-size: 12px; + margin-top: 5px; + color: var(--color-text-soft); + text-align: center; +` + +export default App diff --git a/src/renderer/src/pages/apps/AppsPage.tsx b/src/renderer/src/pages/apps/AppsPage.tsx new file mode 100644 index 00000000..3aadd70f --- /dev/null +++ b/src/renderer/src/pages/apps/AppsPage.tsx @@ -0,0 +1,77 @@ +import AiAssistantAppLogo from '@renderer/assets/images/apps/360-ai.png' +import BaiduAiAppLogo from '@renderer/assets/images/apps/baidu-ai.png' +import { Navbar, NavbarCenter } from '@renderer/components/app/Navbar' +import { PROVIDER_CONFIG } from '@renderer/config/provider' +import { MinAppType } from '@renderer/types' +import { FC } from 'react' +import { useTranslation } from 'react-i18next' +import styled from 'styled-components' + +import App from './App' + +const _apps: MinAppType[] = [ + { + name: 'AI 助手', + logo: AiAssistantAppLogo, + url: 'https://bot.360.com/' + }, + { + name: '文心一言', + logo: BaiduAiAppLogo, + url: 'https://yiyan.baidu.com/' + } +] + +const AppsPage: FC = () => { + const { t } = useTranslation() + + const apps: MinAppType[] = (Object.entries(PROVIDER_CONFIG) as any[]) + .filter(([, config]) => config.app) + .map(([key, config]) => ({ id: key, ...config.app })) + .concat(_apps) + + return ( + + + {t('agents.title')} + + + + {apps.map((app) => ( + + ))} + + + + ) +} + +const Container = styled.div` + display: flex; + flex: 1; + flex-direction: column; + height: 100%; +` + +const ContentContainer = styled.div` + display: flex; + flex: 1; + flex-direction: row; + justify-content: center; + height: 100%; + overflow-y: scroll; + background-color: var(--color-background); + padding: 50px; +` + +const AppsContainer = styled.div` + display: flex; + min-width: 900px; + max-width: 900px; + flex-direction: row; + flex-wrap: wrap; + align-content: flex-start; + gap: 50px; +` + +export default AppsPage diff --git a/src/renderer/src/pages/settings/ProviderSettings/GraphRAGSettings.tsx b/src/renderer/src/pages/settings/ProviderSettings/GraphRAGSettings.tsx index 2cc8ab51..ff7b65c7 100644 --- a/src/renderer/src/pages/settings/ProviderSettings/GraphRAGSettings.tsx +++ b/src/renderer/src/pages/settings/ProviderSettings/GraphRAGSettings.tsx @@ -1,5 +1,5 @@ import MinApp from '@renderer/components/MinApp' -import { Provider } from '@renderer/types' +import { MinAppType, Provider } from '@renderer/types' import { Button } from 'antd' import { FC } from 'react' import { useTranslation } from 'react-i18next' @@ -19,7 +19,14 @@ const GraphRAGSettings: FC = ({ provider }) => { const onShowGraphRAG = async () => { const { appPath } = await window.api.getAppInfo() const url = `file://${appPath}/resources/graphrag.html?apiUrl=${apiUrl}&modelId=${modalId}` - MinApp.start({ url, title: t('words.knowledgeGraph') }) + + const app: MinAppType = { + name: t('words.knowledgeGraph'), + logo: '', + url + } + + MinApp.start(app) } if (!modalId) { diff --git a/src/renderer/src/pages/translate/TranslatePage.tsx b/src/renderer/src/pages/translate/TranslatePage.tsx index 5b60152e..3b115734 100644 --- a/src/renderer/src/pages/translate/TranslatePage.tsx +++ b/src/renderer/src/pages/translate/TranslatePage.tsx @@ -1,12 +1,6 @@ -import { - CheckOutlined, - CopyOutlined, - SendOutlined, - SettingOutlined, - SwapOutlined, - WarningOutlined -} from '@ant-design/icons' +import { CheckOutlined, SendOutlined, SettingOutlined, SwapOutlined, WarningOutlined } from '@ant-design/icons' import { Navbar, NavbarCenter } from '@renderer/components/app/Navbar' +import CopyIcon from '@renderer/components/Icons/CopyIcon' import { useDefaultModel } from '@renderer/hooks/useAssistant' import { fetchTranslate } from '@renderer/services/api' import { getDefaultAssistant } from '@renderer/services/assistant' @@ -211,7 +205,7 @@ const TranslatePage: FC = () => { : } + icon={copied ? : } /> diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index 122617d9..71da5e98 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -75,3 +75,9 @@ export type Agent = { export type Suggestion = { content: string } + +export type MinAppType = { + name: string + logo: string + url: string +}