From ba6be9db493a61c6f67fa73ad211213246a42b83 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 30 May 2025 14:02:22 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AEtheme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/components/ui/provider.jsx | 12 +++++---- src/frontend/src/constants/keep | 0 src/frontend/src/index.js | 1 - src/frontend/src/libs/keep | 0 src/frontend/src/pages/Welcome.jsx | 1 - src/frontend/src/resources/keep | 0 src/frontend/src/theme.js | 30 ++++++++++----------- 7 files changed, 22 insertions(+), 22 deletions(-) create mode 100644 src/frontend/src/constants/keep create mode 100644 src/frontend/src/libs/keep create mode 100644 src/frontend/src/resources/keep diff --git a/src/frontend/src/components/ui/provider.jsx b/src/frontend/src/components/ui/provider.jsx index 80e3e01..8c88ef9 100644 --- a/src/frontend/src/components/ui/provider.jsx +++ b/src/frontend/src/components/ui/provider.jsx @@ -1,12 +1,14 @@ -'use client' +'use client'; +import { ChakraProvider } from '@chakra-ui/react'; +import { ColorModeProvider } from './color-mode'; +import createSystem from '@/theme'; -import { ChakraProvider, defaultSystem } from '@chakra-ui/react' -import { ColorModeProvider } from './color-mode' +const system = createSystem; export function Provider(props) { return ( - + - ) + ); } diff --git a/src/frontend/src/constants/keep b/src/frontend/src/constants/keep new file mode 100644 index 0000000..e69de29 diff --git a/src/frontend/src/index.js b/src/frontend/src/index.js index f420add..aca27d5 100644 --- a/src/frontend/src/index.js +++ b/src/frontend/src/index.js @@ -3,7 +3,6 @@ import ReactDOM from 'react-dom/client'; import App from '@/App'; import { BrowserRouter } from 'react-router-dom'; import { Provider } from '@/components/ui/provider'; -import system from '@/theme'; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( diff --git a/src/frontend/src/libs/keep b/src/frontend/src/libs/keep new file mode 100644 index 0000000..e69de29 diff --git a/src/frontend/src/pages/Welcome.jsx b/src/frontend/src/pages/Welcome.jsx index 88019ea..7b448fe 100644 --- a/src/frontend/src/pages/Welcome.jsx +++ b/src/frontend/src/pages/Welcome.jsx @@ -1,7 +1,6 @@ import React from 'react'; import { Box, Button, Heading, VStack } from '@chakra-ui/react'; import { useNavigate } from 'react-router-dom'; -import Card from '@/components/ui/Card'; const Welcome = () => { const navigate = useNavigate(); diff --git a/src/frontend/src/resources/keep b/src/frontend/src/resources/keep new file mode 100644 index 0000000..e69de29 diff --git a/src/frontend/src/theme.js b/src/frontend/src/theme.js index c07a082..6882660 100644 --- a/src/frontend/src/theme.js +++ b/src/frontend/src/theme.js @@ -3,25 +3,21 @@ import { defineConfig, createSystem, defaultConfig } from '@chakra-ui/react'; const config = defineConfig({ cssVarsRoot: ':where(:root, :host)', cssVarsPrefix: 'ck', - strictTokens: false, + strictTokens: true, - globalCss: { - 'html, body': { - margin: 0, - padding: 0, - fontFamily: "'Roboto', sans-serif", - backgroundColor: '{colors.bg}', - color: '{colors.text}', - }, - }, + globalCss: {}, //全局css conditions: { - cqSm: '@container(min-width: 320px)', - child: '& > *', + child: '& > *', //子元素选择 }, theme: { + //核心主题配置 + components: { + //组件样式 + }, breakpoints: { + //响应式断点 sm: '320px', md: '768px', lg: '960px', @@ -29,6 +25,7 @@ const config = defineConfig({ }, tokens: { + //基础主题 colors: { bg: '#f9fafb', text: '#1a202c', @@ -46,6 +43,7 @@ const config = defineConfig({ }, semanticTokens: { + //自定义标记 colors: { danger: { value: '{colors.red}' }, primary: { value: '{colors.primary}' }, @@ -54,6 +52,7 @@ const config = defineConfig({ }, keyframes: { + //关键帧 fadeIn: { from: { opacity: 0 }, to: { opacity: 1 }, @@ -65,6 +64,7 @@ const config = defineConfig({ }, animationStyles: { + //预定义动画样式 fadeIn: { animation: 'fadeIn 0.3s ease-in', }, @@ -74,6 +74,7 @@ const config = defineConfig({ }, textStyles: { + //文字样式 heading: { description: 'Page heading', value: { @@ -90,6 +91,7 @@ const config = defineConfig({ }, layerStyles: { + //层样式 card: { bg: 'white', boxShadow: 'soft', @@ -100,6 +102,4 @@ const config = defineConfig({ }, }); -const system = createSystem(defaultConfig, config); - -export default system; +export default createSystem(defaultConfig, config); From ad16915f53d328dba4f7f04af85e3f6f77868d81 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 30 May 2025 20:01:08 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix-env=20=E4=BF=AE=E5=A4=8D=E6=9A=B4?= =?UTF-8?q?=E9=9C=B2api=E5=AF=86=E9=92=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/AI-powered-switches.iml | 6 ++++++ src/backend/.envExample | 11 +++++++++++ src/frontend/pnpm-workspace.yaml | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 src/backend/.envExample diff --git a/.idea/AI-powered-switches.iml b/.idea/AI-powered-switches.iml index b6731d8..7801d9e 100644 --- a/.idea/AI-powered-switches.iml +++ b/.idea/AI-powered-switches.iml @@ -1,10 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/src/backend/.envExample b/src/backend/.envExample new file mode 100644 index 0000000..9439543 --- /dev/null +++ b/src/backend/.envExample @@ -0,0 +1,11 @@ +# 硅基流动API配置 +SILICONFLOW_API_KEY=sk-114514 +SILICONFLOW_API_URL=https://api.siliconflow.ai/v1 + +# 交换机登录凭证 +SWITCH_USERNAME=admin +SWITCH_PASSWORD=your_switch_password +SWITCH_TIMEOUT=10 + +# 应用设置 +DEBUG=True diff --git a/src/frontend/pnpm-workspace.yaml b/src/frontend/pnpm-workspace.yaml index 0da79a1..95ce2db 100644 --- a/src/frontend/pnpm-workspace.yaml +++ b/src/frontend/pnpm-workspace.yaml @@ -1,3 +1,6 @@ ignoredBuiltDependencies: - core-js - core-js-pure + +packages: + - '.' From ad23c73647f6a3dc43fedb77424d171a4c7ef014 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 30 May 2025 20:02:38 +0800 Subject: [PATCH 3/6] =?UTF-8?q?fix-env=20=E4=BF=AE=E5=A4=8D=E6=9A=B4?= =?UTF-8?q?=E9=9C=B2api=E5=AF=86=E9=92=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/.env.txt | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 src/backend/.env.txt diff --git a/src/backend/.env.txt b/src/backend/.env.txt deleted file mode 100644 index 2ce142d..0000000 --- a/src/backend/.env.txt +++ /dev/null @@ -1,11 +0,0 @@ -# 硅基流动API配置 -SILICONFLOW_API_KEY=sk-mhzuedasunrgdrxfkcxmxgaypgjnxgodvvmrzzdbqrwtkqej -SILICONFLOW_API_URL=https://api.siliconflow.ai/v1 - -# 交换机登录凭证 -SWITCH_USERNAME=admin -SWITCH_PASSWORD=your_switch_password -SWITCH_TIMEOUT=10 - -# 应用设置 -DEBUG=True \ No newline at end of file From 2d7026b89d7031682022080c05ef46caee648837 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 30 May 2025 21:42:14 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=8A=A0=E4=B8=80=E4=B8=AAreadme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/README.md | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/backend/README.md diff --git a/src/backend/README.md b/src/backend/README.md new file mode 100644 index 0000000..fbe2354 --- /dev/null +++ b/src/backend/README.md @@ -0,0 +1,48 @@ +# AI-powered-switches Backend + +这是 AI-powered-switches 的后端服务,基于 `Flask` 构建,提供 `REST API` 接口,用于解析自然语言生成网络交换机配置并下发到设备 + +### 项目结构 + +```bash +src/backend/ +├── app/ +│ ├── __init__.py # 创建 Flask 应用实例 +│ ├── api/ # API 路由模块 +│ │ ├── __init__.py # 注册 API 蓝图 +│ │ ├── command_parser.py # /api/parse_command 接口 +│ │ └── network_config.py # /api/apply_config 接口 +│ └── services/ # 核心服务逻辑 +│ └── ai_services.py # 调用外部 AI 服务生成配置 +├── config.py # 配置加载与环境变量管理 +├── exceptions.py # 自定义异常定义 +├── run.py # 程序入口 +├── requirements.txt # Python 依赖列表 +└── Dockerfile/Dockerfile # 后端 Docker 镜像构建文件 +``` + +### 本地运行 + +``` bash +pip install -r requirements.txt +``` + +创建`.env`并参照`.envExample`写入环境变量 + +```bash +python run.py +``` + +### Docker构建 + +```bash +docker build -t ai-switch-backend -f Dockerfile/Dockerfile . +``` + +```bash +docker run -p 5000:5000 \ + -e AI_API_KEY=your_api_key \ + -e SWITCH_USER=admin \ + -e SWITCH_PASS=your_password \ + ai-switch-backend +``` From ca82876a64a3c7bd954db2d6ed33a9903911f7d3 Mon Sep 17 00:00:00 2001 From: Jerry Date: Fri, 30 May 2025 22:14:03 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 5dc6d6f..dd8d7c9 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,40 @@ # 基于人工智能实现的交换机自动或半自动配置 ### 技术栈 -- Python3 -- JavaScript -- React +- **Python3** + - Flask + - FastAPI + - Flask-CORS +- **JavaScript** + - React + - JSX + - Framer-motion + - chakra-ui - HTML5 ### 项目分工 -- **后端api,人工智能算法** : `3`(主要) & `log_out` 使用python +- **后端api,人工智能算法** : `3`(主要) & `log_out` & `Jerry`(maybe) 使用python - **前端管理后台设计**:`Jerry`使用react - **论文撰写**:`log_out` +### 各部分说明 + +[网页管理前端](https://github.com/Jerryplusy/AI-powered-switches/blob/main/src/frontend/README.md) + +[逻辑处理后端](https://github.com/Jerryplusy/AI-powered-switches/blob/main/src/backend/README.md) + ### 贡献流程 - **后端api**: - 对于`3`:直接推送到`main`分支 - - 对于`Jerry`&`log_out`:**fork** 到自己仓库下,提交推送到自己的仓库,然后提交pullrequest并指定`3`审核 + - 对于`Jerry`&`log_out`:新建额外的`feat`或`fix`分支,提交推送到自己的分支,然后提交`pullrequest`到`main`分支并指定`3`审核 - **前端管理后台**: - 对于`Jerry`:直接推送更新到`main`分支 - - 对于`3`&`log_out`:**fork** 到自己仓库下,提交推送到自己的仓库,然后提交pullrequest并指定`Jerry`审核 + - 对于`3`&`log_out`:新建额外的`feat`或`fix`分支,提交推送到自己的分支,然后提交`pullrequest`到`main`分支并指定`Jerry`审核 - **论文(thesis)**: - - **fork** 到自己仓库下,提交推送到自己的仓库,然后提交pullrequest并指定`log_out`审核 - -- **注意在推送前先更新项目** + - 提交`pullrequest`并指定`log_out`审核 ### 项目活动时间 2025 6 - 8月 + From 2693c9ef43504b03c5c8b703e584156f9771d924 Mon Sep 17 00:00:00 2001 From: Jerry <129190939+Jerryplusy@users.noreply.github.com> Date: Mon, 2 Jun 2025 10:49:49 +0800 Subject: [PATCH 6/6] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dd8d7c9..64236eb 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,8 @@ - React - JSX - Framer-motion - - chakra-ui + - ~~chakra-ui~~ + - shadcn-ui - HTML5 ### 项目分工