1773109225
This commit is contained in:
Vendored
-1
@@ -6,7 +6,6 @@
|
|||||||
"recent-files-obsidian",
|
"recent-files-obsidian",
|
||||||
"oz-clear-unused-images",
|
"oz-clear-unused-images",
|
||||||
"obsidian-excalidraw-plugin",
|
"obsidian-excalidraw-plugin",
|
||||||
"copy-url-in-preview",
|
|
||||||
"templater-obsidian",
|
"templater-obsidian",
|
||||||
"obsidian-linter"
|
"obsidian-linter"
|
||||||
]
|
]
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"middleClickNewTab": false,
|
|
||||||
"revealInNavigation": true,
|
|
||||||
"enableDefaultOnCanvas": false,
|
|
||||||
"pdfMenu": false
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "copy-url-in-preview",
|
|
||||||
"name": "Image Context Menus",
|
|
||||||
"version": "1.12.1",
|
|
||||||
"minAppVersion": "1.12.3",
|
|
||||||
"description": "Copy to clipboard, Copy URL, Open in default app, Show in system explorer, Reveal file in navigation, Open in new tab, Rename context menus for images.",
|
|
||||||
"author": "NomarCub",
|
|
||||||
"authorUrl": "https://github.com/NomarCub",
|
|
||||||
"fundingUrl": "https://ko-fi.com/nomarcub",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
+44
-44
@@ -1,5 +1,49 @@
|
|||||||
{
|
{
|
||||||
"recentFiles": [
|
"recentFiles": [
|
||||||
|
{
|
||||||
|
"basename": "IBS 智能体具体落实技术方案",
|
||||||
|
"path": "work/移动杭研/AI 项目/IBS 智能体具体落实技术方案.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "ibs-ai 项目梳理",
|
||||||
|
"path": "work/移动杭研/AI 项目/ibs-ai 项目梳理.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "图纸-IBS 智能体-v3-项目架构",
|
||||||
|
"path": "work/移动杭研/AI 项目/图纸-IBS 智能体-v3-项目架构.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "图纸-IBS 智能体-v2-项目架构 原生 MCP",
|
||||||
|
"path": "work/移动杭研/AI 项目/图纸-IBS 智能体-v2-项目架构 原生 MCP.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "图纸-IBS 智能体-v1-流量查询 demo 对象存储",
|
||||||
|
"path": "work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo 对象存储.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "图纸-IBS 智能体-v1-流量查询 demo",
|
||||||
|
"path": "work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "Prompt 公司智能体",
|
||||||
|
"path": "resource/ai/prompts/Prompt 公司智能体.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "20260309173243",
|
||||||
|
"path": "000-Inbox/20260309173243.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "20260309150326",
|
||||||
|
"path": "000-Inbox/20260309150326.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "如何成为一个 React 工程师呢?",
|
||||||
|
"path": "resource/前端/如何成为一个 React 工程师呢?.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"basename": "服务器-香港",
|
||||||
|
"path": "personal/服务器-香港.md"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"basename": "直播源",
|
"basename": "直播源",
|
||||||
"path": "personal/电影/直播源.md"
|
"path": "personal/电影/直播源.md"
|
||||||
@@ -44,18 +88,6 @@
|
|||||||
"basename": "ubuntu",
|
"basename": "ubuntu",
|
||||||
"path": "resource/系统/ubuntu.md"
|
"path": "resource/系统/ubuntu.md"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"basename": "IBS 智能体-v5",
|
|
||||||
"path": "work/移动杭研/AI 项目/IBS 智能体-v5.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "IBS 智能体-v4",
|
|
||||||
"path": "work/移动杭研/AI 项目/IBS 智能体-v4.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "IBS 智能体-v3",
|
|
||||||
"path": "work/移动杭研/AI 项目/IBS 智能体-v3.md"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"basename": "20260305155494",
|
"basename": "20260305155494",
|
||||||
"path": "000-Inbox/20260305155494.md"
|
"path": "000-Inbox/20260305155494.md"
|
||||||
@@ -64,18 +96,6 @@
|
|||||||
"basename": "开发笔记",
|
"basename": "开发笔记",
|
||||||
"path": "work/移动杭研/开发记录/7.18.0/开发笔记.md"
|
"path": "work/移动杭研/开发记录/7.18.0/开发笔记.md"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"basename": "服务器-香港",
|
|
||||||
"path": "personal/服务器-香港.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "IBS 智能体-v1",
|
|
||||||
"path": "work/移动杭研/AI 项目/IBS 智能体-v1.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "IBS 智能体-v2",
|
|
||||||
"path": "work/移动杭研/AI 项目/IBS 智能体-v2.md"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"basename": "构建 HUGO 博客的完整指南:从搭建到部署",
|
"basename": "构建 HUGO 博客的完整指南:从搭建到部署",
|
||||||
"path": "resource/系统/构建 HUGO 博客的完整指南:从搭建到部署.md"
|
"path": "resource/系统/构建 HUGO 博客的完整指南:从搭建到部署.md"
|
||||||
@@ -92,10 +112,6 @@
|
|||||||
"basename": "vim 快捷键与操作手册",
|
"basename": "vim 快捷键与操作手册",
|
||||||
"path": "resource/系统/vim 快捷键与操作手册.md"
|
"path": "resource/系统/vim 快捷键与操作手册.md"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"basename": "React 工程师",
|
|
||||||
"path": "resource/前端/React 工程师.md"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"basename": "VSCode 配置文件",
|
"basename": "VSCode 配置文件",
|
||||||
"path": "resource/配置/VSCode 配置文件.md"
|
"path": "resource/配置/VSCode 配置文件.md"
|
||||||
@@ -179,22 +195,6 @@
|
|||||||
{
|
{
|
||||||
"basename": "结婚相关",
|
"basename": "结婚相关",
|
||||||
"path": "personal/个人/结婚相关.md"
|
"path": "personal/个人/结婚相关.md"
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "昌平医院",
|
|
||||||
"path": "personal/个人/昌平医院.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "TG 备忘录",
|
|
||||||
"path": "personal/TG 备忘录.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "路由器",
|
|
||||||
"path": "personal/路由器.md"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"basename": "王欣",
|
|
||||||
"path": "personal/家人/王欣.md"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"omittedPaths": [
|
"omittedPaths": [
|
||||||
|
|||||||
Vendored
+39
-33
@@ -4,17 +4,22 @@
|
|||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "6b428b85f883f637",
|
"id": "4b5820367a78b7bd",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "5495c7466557ec58",
|
"id": "4695be4ed62c6a04",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "empty",
|
"type": "markdown",
|
||||||
"state": {},
|
"state": {
|
||||||
|
"file": "work/移动杭研/AI 项目/IBS 智能体具体落实技术方案.md",
|
||||||
|
"mode": "source",
|
||||||
|
"source": false,
|
||||||
|
"backlinks": false
|
||||||
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "新标签页"
|
"title": "IBS 智能体具体落实技术方案"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -50,9 +55,9 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "search",
|
"type": "search",
|
||||||
"state": {
|
"state": {
|
||||||
"query": "file: 常用",
|
"query": "file:react",
|
||||||
"matchingCase": false,
|
"matchingCase": false,
|
||||||
"explainSearch": false,
|
"explainSearch": true,
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
"extraContext": false,
|
"extraContext": false,
|
||||||
"sortOrder": "alphabetical"
|
"sortOrder": "alphabetical"
|
||||||
@@ -92,7 +97,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal",
|
"direction": "horizontal",
|
||||||
"width": 218.5
|
"width": 507.5
|
||||||
},
|
},
|
||||||
"right": {
|
"right": {
|
||||||
"id": "ca733f6d5936ae40",
|
"id": "ca733f6d5936ae40",
|
||||||
@@ -101,7 +106,7 @@
|
|||||||
{
|
{
|
||||||
"id": "1f21045435bfa327",
|
"id": "1f21045435bfa327",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"dimension": 57.88834951456311,
|
"dimension": 57.8883495145631,
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "43a2e8e1d9201229",
|
"id": "43a2e8e1d9201229",
|
||||||
@@ -109,12 +114,13 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
|
"file": "work/移动杭研/AI 项目/IBS 智能体具体落实技术方案.md",
|
||||||
"followCursor": true,
|
"followCursor": true,
|
||||||
"showSearch": false,
|
"showSearch": false,
|
||||||
"searchQuery": ""
|
"searchQuery": ""
|
||||||
},
|
},
|
||||||
"icon": "lucide-list",
|
"icon": "lucide-list",
|
||||||
"title": "大纲"
|
"title": "IBS 智能体具体落实技术方案 的大纲"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -196,7 +202,7 @@
|
|||||||
{
|
{
|
||||||
"id": "ea8a40d57ef90e62",
|
"id": "ea8a40d57ef90e62",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"dimension": 42.11165048543689,
|
"dimension": 42.1116504854369,
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "499dbd491c6fb256",
|
"id": "499dbd491c6fb256",
|
||||||
@@ -226,34 +232,34 @@
|
|||||||
"obsidian-excalidraw-plugin:New drawing": false
|
"obsidian-excalidraw-plugin:New drawing": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "c8718c0c63702202",
|
"active": "4695be4ed62c6a04",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
|
"work/移动杭研/AI 项目/ibs-ai 项目梳理.md",
|
||||||
|
"work/移动杭研/AI 项目/IBS 智能体具体落实技术方案.md",
|
||||||
|
"work/移动杭研/AI 项目/MCP Prompt.md",
|
||||||
|
"work/移动杭研/AI 项目/图纸-IBS 智能体-v3-项目架构.md",
|
||||||
|
"work/移动杭研/AI 项目/图纸-IBS 智能体-v2-项目架构 原生 MCP.md",
|
||||||
|
"work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo 对象存储.md",
|
||||||
|
"work/移动杭研/AI 项目/图纸-IBS 智能体-v1-流量查询 demo.md",
|
||||||
|
"work/移动杭研/AI 项目/IBS 智能体-v4.md",
|
||||||
|
"work/移动杭研/AI 项目/IBS 智能体-v3-遗弃.md",
|
||||||
|
"resource/ai/prompts/Prompt 公司智能体.md",
|
||||||
|
"calendar/diary/2026-03-10.md",
|
||||||
|
"000-inbox/20260309173243.md",
|
||||||
|
"000-inbox/20260309150326.md",
|
||||||
"calendar/diary/2026-03-09.md",
|
"calendar/diary/2026-03-09.md",
|
||||||
|
"calendar/diary/2026-03-08.md",
|
||||||
|
"calendar/weeks/2026-W10.md",
|
||||||
"calendar/diary/2026-03-07.md",
|
"calendar/diary/2026-03-07.md",
|
||||||
"calendar/diary/2026-03-06.md",
|
"calendar/diary/2026-03-06.md",
|
||||||
"000-inbox/20260307154181.md",
|
|
||||||
"personal/电影/直播源.md",
|
|
||||||
"000-inbox/20260307145692.md",
|
|
||||||
"000-Inbox/20260307145692.md",
|
|
||||||
"000-Inbox/20260307154181.md",
|
|
||||||
"000-Inbox/20260307181838.md",
|
|
||||||
"000-Inbox/20260306180056.md",
|
|
||||||
"000-inbox/20260306180056.md",
|
|
||||||
"000-Inbox/20260306180077.md",
|
|
||||||
"000-inbox/20260306180077.md",
|
|
||||||
"000-inbox/tg-bot.md",
|
|
||||||
"000-Inbox/20260306143237.md",
|
|
||||||
"resource/工具/rime/Rime 快捷键.md",
|
|
||||||
"resource/组件/Ubuntu 24.04 LTS ELK 8 安装指南.md",
|
|
||||||
"000-Inbox/20260306145821.md",
|
|
||||||
"calendar/diary/2026-03-05.md",
|
"calendar/diary/2026-03-05.md",
|
||||||
"calendar/diary/2026-03-04.md",
|
"calendar/diary/2026-03-04.md",
|
||||||
"resource/常用命令.md",
|
"calendar/diary/2026-03-03.md",
|
||||||
"000-inbox/20260306145821.md",
|
"calendar/diary/2026-03-02.md",
|
||||||
"000-inbox/20260306143237.md",
|
"000-Inbox/20260309173243.md",
|
||||||
"work/移动杭研/项目备忘/环境账号.md",
|
"000-Inbox/20260309150326.md",
|
||||||
"excalidraw/Drawing 2026-03-06 08.49.09.excalidraw.md",
|
"resource/前端/如何成为一个 React 工程师呢?.md",
|
||||||
"excalidraw/Drawing 2026-03-06 08.42.40.excalidraw.md",
|
"personal/服务器-香港.md",
|
||||||
"resource/工具/rime",
|
"resource/工具/rime",
|
||||||
"attachment/images-paste/image-20260304153545122.png",
|
"attachment/images-paste/image-20260304153545122.png",
|
||||||
"work/移动杭研/开发记录/7.19.0",
|
"work/移动杭研/开发记录/7.19.0",
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# 任务
|
||||||
|
|
||||||
|
# 日志
|
||||||
|
|
||||||
|
# 总结
|
||||||
|
|
||||||
|
上午起来看了一些关于 F1 的资讯,然后我准备把 OpenClaw 弄一下。
|
||||||
|
|
||||||
|
中午去王繁星面馆吃面。
|
||||||
@@ -1,7 +1,21 @@
|
|||||||
# 任务
|
# 任务
|
||||||
|
|
||||||
|
- [x] 开发:参加 IBS 项目晨会,同步昨日问题跟进事项。(李春良 0.5)
|
||||||
- [x] 开发:梳理 IBS V7.19.0 需求。(新业务平面引入与系统集成实施 李春良 4)
|
- [x] 开发:梳理 IBS V7.19.0 需求。(新业务平面引入与系统集成实施 李春良 4)
|
||||||
|
- [x] 项目:IBS 智能体具体落实技术方案调研。(李春良 3)
|
||||||
|
|
||||||
# 日志
|
# 日志
|
||||||
|
|
||||||
|
feat: 初始化 MCP 服务端项目
|
||||||
|
|
||||||
|
聊天智能体,用户输入,先进行语义路由,是走知识库进行概念问题解答,还是走 MCP 智能体,可以根据我公司提供的 MCP 服务器进行选择使用,将结果经过 ai 润色后答疑。
|
||||||
|
|
||||||
# 总结
|
# 总结
|
||||||
|
|
||||||
|
今天体验了 RAG Flow、Dify、n8n,让我感觉到了自己在智能体方面的能力缺失,如果早体验这个圈子。自己的思维会更上一层。
|
||||||
|
|
||||||
|
今天实现了 MCP 的自动注册。
|
||||||
|
|
||||||
|
晚上回家田宝在玩儿水。
|
||||||
|
|
||||||
|
今天智齿要了命了。这次消肿了一定要去拔了。
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# 任务
|
||||||
|
|
||||||
|
- [x] 开发:参加 IBS 项目晨会,同步昨日问题跟进事项。(李春良 0.5)
|
||||||
|
- [ ] 开发:梳理 IBS V7.19.0 需求。(新业务平面引入与系统集成实施 李春良 4)
|
||||||
|
- [ ] 项目:IBS 智能体具体落实技术方案调研。(李春良 3)
|
||||||
|
|
||||||
|
# 日志
|
||||||
|
|
||||||
|
# 总结
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
需求自测、IBS AI 调研、元宵节、日全食、MCP Demo、第一次参与会议 AI 会议、obsidian、AI 开发规范、幼儿园、F1 开赛、OpenClaw、王繁星
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
# 关于 Node
|
|
||||||
|
|
||||||
| Node.js | Java |
|
|
||||||
| --------------- | ----------- |
|
|
||||||
| Node.js version | JDK version |
|
|
||||||
| V8 Engine | JVM |
|
|
||||||
| npm | Maven |
|
|
||||||
| N-API | JNI |
|
|
||||||
|
|
||||||
## Node.js 版本
|
|
||||||
|
|
||||||
[Node.js — Node.js 版本](https://nodejs.org/zh-cn/about/previous-releases)
|
|
||||||
|
|
||||||
# 学习资料
|
|
||||||
|
|
||||||
https://u19tul1sz9g.feishu.cn/docx/WEWJdSzF5oTnwvxHGGAc0Vojnxe?from=from_copylink
|
|
||||||
|
|
||||||
密码:M6923&65
|
|
||||||
|
|
||||||
# 第一章 开发环境与核心概念
|
|
||||||
|
|
||||||
UI = f(State)
|
|
||||||
|
|
||||||
用户界面仅仅是应用程序状态的一个函数
|
|
||||||
|
|
||||||
初始化环境
|
|
||||||
|
|
||||||
```
|
|
||||||
pnpm create vite@latest basic --template react-ts
|
|
||||||
```
|
|
||||||
|
|
||||||
导入方式:
|
|
||||||
|
|
||||||
具名导入:
|
|
||||||
|
|
||||||
```
|
|
||||||
import { ... } from 'react'
|
|
||||||
```
|
|
||||||
|
|
||||||
默认导入:
|
|
||||||
|
|
||||||
```
|
|
||||||
import ... from 'react'
|
|
||||||
```
|
|
||||||
|
|
||||||
副作用导入:
|
|
||||||
|
|
||||||
```
|
|
||||||
import './index.css'
|
|
||||||
```
|
|
||||||
|
|
||||||
# CSS
|
|
||||||
|
|
||||||
顶级作用域
|
|
||||||
|
|
||||||
```
|
|
||||||
:root {
|
|
||||||
```
|
|
||||||
|
|
||||||
媒体查询
|
|
||||||
|
|
||||||
```
|
|
||||||
@media (prefers-color-scheme: light) {
|
|
||||||
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
ID 选择器
|
|
||||||
|
|
||||||
```
|
|
||||||
#root
|
|
||||||
```
|
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
# 学习资料
|
||||||
|
|
||||||
|
https://u19tul1sz9g.feishu.cn/docx/WEWJdSzF5oTnwvxHGGAc0Vojnxe?from=from_copylink
|
||||||
|
|
||||||
|
密码:M6923&65
|
||||||
|
|
||||||
|
# 关于 Node 的理解
|
||||||
|
|
||||||
|
| Node.js | Java |
|
||||||
|
| --------------- | ----------- |
|
||||||
|
| Node.js version | JDK version |
|
||||||
|
| V8 Engine | JVM |
|
||||||
|
| Npm | Maven |
|
||||||
|
| N-API | JNI |
|
||||||
|
|
||||||
|
```
|
||||||
|
┌───────────────┐
|
||||||
|
│ JS APP │
|
||||||
|
└───────▲───────┘
|
||||||
|
│
|
||||||
|
┌───────┴───────┐
|
||||||
|
│ NPM │ ← 包管理 & 生态
|
||||||
|
└───────▲───────┘
|
||||||
|
│
|
||||||
|
┌───────┴───────┐
|
||||||
|
│ Node.js │ ← Runtime(API / EventLoop / Libuv)
|
||||||
|
└───────▲───────┘
|
||||||
|
│
|
||||||
|
┌───────┴───────┐
|
||||||
|
│ V8 │ ← JS 引擎
|
||||||
|
└───────▲───────┘
|
||||||
|
│
|
||||||
|
操作系统
|
||||||
|
```
|
||||||
|
|
||||||
|
## Node.js 版本
|
||||||
|
|
||||||
|
[Node.js](https://nodejs.org/zh-cn/about/previous-releases) 采用固定节奏发布 + LTS 生命周期,每 6 个月发布一个,相当于每年会覆盖一个 LTS。
|
||||||
|
|
||||||
|
# 第一章 开发环境与核心概念
|
||||||
|
|
||||||
|
初始化环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm create vite@latest basic2 --template react-ts
|
||||||
|
```
|
||||||
|
|
||||||
|
所谓的优雅公式:`UI = f(State)`,用户界面仅仅是应用程序状态的一个函数。
|
||||||
|
|
||||||
|
JSX 不是 HTML 而是 JavaScript 的一种特殊语法。我们编写的每一行 JSX 代码最后都会被转换为一个函数:`React.createElement()`
|
||||||
|
|
||||||
|
> 例如:
|
||||||
|
> `<h1 className="title">Hello React</h1>`
|
||||||
|
> 对应:
|
||||||
|
> `React.createElement('h1', { className: 'title' }, 'Hello React')`
|
||||||
|
|
||||||
|
可以使用 `{ }` 在 JSX 中嵌入任何 JavaScript 表达式(变量、数学、函数)。
|
||||||
|
|
||||||
|
关于声明:
|
||||||
|
|
||||||
|
| 关键字 | 作用域 | 重复声明 | 是否可以修改引用 | 推荐场景 |
|
||||||
|
| ----------- | ---------------- | ---- | -------- | -------------------------- |
|
||||||
|
| **`const`** | 块级作用域 (Block) | 不允许 | 不允许 | **默认使用**,除非变量需要重新赋值 |
|
||||||
|
| **`let`** | 块级作用域 (Block) | 不允许 | 允许 | 用于循环变量或需要修改引用的场景 |
|
||||||
|
| **`var`** | 函数作用域 (Function) | 允许 | 允许 | **严禁使用** (旧时代的产物,存在变量提升问题) |
|
||||||
|
|
||||||
|
一个组件的返回必须有一个**单一的根元素**,如果返回并列的多个元素,可以嵌套一个 `<div>`,但更好的做法是使用 `Fragment`,语法糖是 `<>`。因 JSX 最终是会被编译为 JavaScript,所以要注意不要产生关键字的冲突。这也是为什么 `class` 在 React 中要写成 `className`,同时时间名要遵循驼峰命名法,例如 `onClick`。
|
||||||
|
|
||||||
|
**导入方式**
|
||||||
|
|
||||||
|
具名导入:
|
||||||
|
|
||||||
|
```
|
||||||
|
import { ... } from 'react'
|
||||||
|
```
|
||||||
|
|
||||||
|
默认导入:
|
||||||
|
|
||||||
|
```
|
||||||
|
import ... from 'react'
|
||||||
|
```
|
||||||
|
|
||||||
|
副作用导入:
|
||||||
|
|
||||||
|
```
|
||||||
|
import './index.css'
|
||||||
|
```
|
||||||
|
|
||||||
|
React 历史写法:
|
||||||
|
|
||||||
|
这里我还是不是很理解 `(prevState) => ({ count: prevState.count + 1 })` 这个的原理,目前的理解是,他可以拿到自己作用域的 count。
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
interface CounterState {
|
||||||
|
count: number
|
||||||
|
}
|
||||||
|
|
||||||
|
class ClassCounter extends React.Component<unknown, CounterState> {
|
||||||
|
state = { count: 0 }
|
||||||
|
handleClick = () => {
|
||||||
|
// this.setState({ count: this.state.count + 1 })
|
||||||
|
this.setState((prevState) => ({ count: prevState.count + 1 }))
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Class Counter</h1>
|
||||||
|
<button onClick={this.handleClick}>数字是 {this.state.count}</button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ClassCounter
|
||||||
|
```
|
||||||
|
|
||||||
|
useState
|
||||||
|
|
||||||
|
我理解就是有了一个动态更新值的作用。
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
import { useState } from 'react'
|
||||||
|
|
||||||
|
const FunctionalCounter = () => {
|
||||||
|
const [count, setCount] = useState(0)
|
||||||
|
const handleClick = () => {
|
||||||
|
setCount((prevCount) => prevCount + 1)
|
||||||
|
setCount((prevCount) => prevCount + 1)
|
||||||
|
}
|
||||||
|
console.log(count)
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Functional Counter</h1>
|
||||||
|
<button onClick={handleClick}>数字1是 {count}</button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default FunctionalCounter
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# 第二章 组件化开发核心
|
||||||
|
|
||||||
|
Props 通信
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
type Props = {
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const PrintNmae = (name: Props) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Welcome {name.name}</h1>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default PrintNmae
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
传参
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
<PrintNmae name="John" />
|
||||||
|
```
|
||||||
|
|
||||||
|
# CSS
|
||||||
|
|
||||||
|
顶级作用域
|
||||||
|
|
||||||
|
```
|
||||||
|
:root {
|
||||||
|
```
|
||||||
|
|
||||||
|
媒体查询
|
||||||
|
|
||||||
|
```
|
||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
ID 选择器
|
||||||
|
|
||||||
|
```
|
||||||
|
#root
|
||||||
|
```
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
```
|
|
||||||
flowchart TB
|
|
||||||
subgraph Layer1["1. 用户与接入层 (Access Layer)"]
|
|
||||||
UI["Web 中台控制台\n(对话界面 / 插件管理)"]
|
|
||||||
ChatBot["企微/办公 IM 机器人"]
|
|
||||||
Card["安全审批卡片\n(Human-in-the-loop)"]
|
|
||||||
end
|
|
||||||
subgraph Tools["内置核心能力"]
|
|
||||||
RAG["RAG 问答引擎"]
|
|
||||||
CodeInterpreter["数据分析引擎\n(分析CDN优质客户)"]
|
|
||||||
end
|
|
||||||
subgraph Layer2["2. 智能体编排中台 (基于 Spring Boot & Spring AI)"]
|
|
||||||
Router["意图路由引擎 (Semantic Router)"]
|
|
||||||
Planner["Agent 调度与规划 (ReAct)"]
|
|
||||||
Tools
|
|
||||||
end
|
|
||||||
subgraph Layer3["3. 动态插件生态引擎 (Plugin Market) ⭐️核心创新"]
|
|
||||||
RegistryDB[("插件注册数据库\n(存储接口URL、参数定义)")]
|
|
||||||
SchemaConverter["动态 Schema 转换器\n(DB配置 -> LLM Function Calling)"]
|
|
||||||
Interceptor["高危操作拦截器\n(识别写操作、触发审批)"]
|
|
||||||
HttpExecutor["通用 HTTP 执行器\n(动态发起 REST 请求)"]
|
|
||||||
MCPClient["MCP 协议网关\n(未来对接标准 MCP Server)"]
|
|
||||||
end
|
|
||||||
subgraph Layer4["4. 基础设施与外部业务线 (Infrastructure & Business)"]
|
|
||||||
LLM["大语言模型 (LLM)"]
|
|
||||||
RAGFlow["现有 RAGFlow 知识库"]
|
|
||||||
IBS["IBS 系统\n(流量查验/工单)"]
|
|
||||||
CDN["CDN 下发系统\n(一键配置)"]
|
|
||||||
DNS["DNS 管理系统\n(动态查询)"]
|
|
||||||
end
|
|
||||||
UI --> Router
|
|
||||||
ChatBot --> Router
|
|
||||||
Router -- 知识库查询 --> RAG
|
|
||||||
Router -- 业务指令/查询 --> Planner
|
|
||||||
RAG <-- 检索 --> RAGFlow
|
|
||||||
Planner <-- "1. 交互与思考" --> LLM
|
|
||||||
RegistryDB -. "2. 实时加载接口配置" .-> SchemaConverter
|
|
||||||
SchemaConverter -- "3. 转换并注入可用工具" --> Planner
|
|
||||||
Planner -- "4. 生成调用指令" --> Interceptor
|
|
||||||
Interceptor -. "5a. 识别为 CDN 下发\n要求人工确认" .-> Card
|
|
||||||
Card -. 用户点击“确认” .-> Interceptor
|
|
||||||
Interceptor -- "5b. 鉴权通过放行" --> HttpExecutor
|
|
||||||
Interceptor -- 放行至新架构 --> MCPClient
|
|
||||||
HttpExecutor -- "6. 拼装动态 HTTP 请求" --> IBS
|
|
||||||
HttpExecutor -- HTTP 请求 --> CDN & DNS
|
|
||||||
MCPClient -. 未来演进: MCP通信协议 .-> DNS
|
|
||||||
|
|
||||||
Card:::highlight
|
|
||||||
IBS:::external
|
|
||||||
CDN:::external
|
|
||||||
DNS:::external
|
|
||||||
classDef core fill:#e1f5fe,stroke:#01579b,stroke-width:2px
|
|
||||||
classDef plugin fill:#fff3e0,stroke:#e65100,stroke-width:2px
|
|
||||||
classDef external fill:#f1f8e9,stroke:#33681e,stroke-width:1px
|
|
||||||
classDef highlight fill:#ffebee,stroke:#c62828,stroke-width:2px
|
|
||||||
style Layer1 fill:#fafafa,stroke:#bdbdbd,stroke-width:1px,stroke-dasharray: 5 5
|
|
||||||
style Layer2 fill:#fafafa,stroke:#bdbdbd,stroke-width:1px,stroke-dasharray: 5 5
|
|
||||||
style Layer3 fill:#fafafa,stroke:#ffb74d,stroke-width:2px,stroke-dasharray: 5 5
|
|
||||||
style Layer4 fill:#fafafa,stroke:#bdbdbd,stroke-width:1px,stroke-dasharray: 5 5
|
|
||||||
```
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
```
|
|
||||||
flowchart TB
|
|
||||||
subgraph Layer1["1. 用户侧"]
|
|
||||||
UI["对话框"]
|
|
||||||
end
|
|
||||||
subgraph Layer2["2. 智能体编排层"]
|
|
||||||
Router@{ label: "意图识别与分发<br>(<span style=\"background-color:\">语义路由,小模型更好,选择题</span>)" }
|
|
||||||
Planner["Agent 规划与调度 (ReAct)"]
|
|
||||||
LLM["大模型 (LLM)"]
|
|
||||||
end
|
|
||||||
subgraph Layer3["3. 工具检索引擎 (Tool-RAG) ⭐️"]
|
|
||||||
Embedding["Embedding 模型<br>(文本转向量)"]
|
|
||||||
VectorDB[("向量数据库<br>(Milvus / pgvector)<br>存储插件语义")]
|
|
||||||
RelationalDB[("关系型数据库<br>(MySQL)<br>存储接口物理配置")]
|
|
||||||
SchemaBuilder["Schema 组装器<br>(仅组装 Top-K 工具)"]
|
|
||||||
end
|
|
||||||
subgraph Layer4["4. 拦截与执行层"]
|
|
||||||
Interceptor["高危操作拦截器<br>(审批效果,这个需要和前端沟通方案)"]
|
|
||||||
HttpExecutor["通用 HTTP 执行器<br>(动态请求第三方组)"]
|
|
||||||
IBS["IBS / CDN / DNS 系统"]
|
|
||||||
end
|
|
||||||
UI -- "1. 输入: 查一下流量" --> Router
|
|
||||||
Router -- "2. 业务请求" --> Embedding
|
|
||||||
Embedding -- "3. 提取语义向量" --> VectorDB
|
|
||||||
VectorDB -- "4. 返回相似度 Top-3 的插件 ID" --> SchemaBuilder
|
|
||||||
RelationalDB -. "5. 根据 ID 拉取详细配置URL等" .-> SchemaBuilder
|
|
||||||
SchemaBuilder -- "6. 动态注入这 3 个工具说明" --> Planner
|
|
||||||
Planner <-- "7. 仅带 3 个工具进行交互<br>提取并完善参数" --> LLM
|
|
||||||
Planner -- "8. 决定调用某工具+参数" --> Interceptor
|
|
||||||
Interceptor -- "9. 放行/审批" --> HttpExecutor
|
|
||||||
HttpExecutor -- "10. 动态发起真实请求" --> IBS
|
|
||||||
Register["管理员注册新插件"] -. "A. 存入运行配置" .-> RelationalDB
|
|
||||||
Register -. "B. 向量化插件描述" .-> VectorDB
|
|
||||||
|
|
||||||
Router@{ shape: rect}
|
|
||||||
Embedding:::vector
|
|
||||||
VectorDB:::vector
|
|
||||||
RelationalDB:::plugin
|
|
||||||
SchemaBuilder:::vector
|
|
||||||
classDef core fill:#e1f5fe,stroke:#01579b,stroke-width:2px
|
|
||||||
classDef plugin fill:#fff3e0,stroke:#e65100,stroke-width:2px
|
|
||||||
classDef vector fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
|
|
||||||
classDef highlight fill:#ffebee,stroke:#c62828,stroke-width:2px
|
|
||||||
```
|
|
||||||
@@ -17,7 +17,7 @@ RAGFlow v0.18.0 2025-04-23(知识库)
|
|||||||
> 完全支持 MCP v0.20.0
|
> 完全支持 MCP v0.20.0
|
||||||
> 依赖 MySQL、ES、Redis、MinIO
|
> 依赖 MySQL、ES、Redis、MinIO
|
||||||
|
|
||||||
# 概念
|
# 概念理解
|
||||||
|
|
||||||
bge 向量模型。
|
bge 向量模型。
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ Function Calling / Tool Call / Tool Calling
|
|||||||
|
|
||||||
**DB-GPT** 开源的“AI 原生数据应用开发框架”,用大模型来操作数据库和数据系统。
|
**DB-GPT** 开源的“AI 原生数据应用开发框架”,用大模型来操作数据库和数据系统。
|
||||||
|
|
||||||
# 问题
|
# 问题备注
|
||||||
|
|
||||||
鉴权问题:哪个平台能调用哪些工具,哪个平台的哪些用户能调用哪些工具
|
鉴权问题:哪个平台能调用哪些工具,哪个平台的哪些用户能调用哪些工具
|
||||||
|
|
||||||
@@ -77,8 +77,6 @@ AI 平台颁发系统级别 Token 限制你能用的工具。
|
|||||||
|
|
||||||
我想查询 企业A a.com 近 5 天的峰值。
|
我想查询 企业A a.com 近 5 天的峰值。
|
||||||
|
|
||||||
# 备注
|
|
||||||
|
|
||||||
RAGFlow 版本升级至少 v0.20.0。(注意一下是否可以开启自身当作 MCP 服务的功能。)
|
RAGFlow 版本升级至少 v0.20.0。(注意一下是否可以开启自身当作 MCP 服务的功能。)
|
||||||
|
|
||||||
dify 的整体使用流程流畅很多。
|
dify 的整体使用流程流畅很多。
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
给我增加两个我们项目的 demo 工具。为我的查询峰值智能体做测试准备
|
|
||||||
|
|
||||||
1. 根据企业 ID 获取 企业的所属域名。(入参是企业 ID,响应 10 个域名, a.com, b.com… 固定十个。)但现在企业 ID 只有 企业A ,其他 企业 ID 返回无域名。
|
|
||||||
2. 根据企业 ID 和 域名 获取域名近 5 天的峰值带宽。(峰值带宽可以随机 mock)如果用户无域名 ID 输入返回需要输入域名。
|
|
||||||
|
|
||||||
现在我有一个 ibs-mcp-server :
|
|
||||||
|
|
||||||
queryDomainPeakBandwidth
|
|
||||||
|
|
||||||
根据企业 ID 和域名查询该域名近 5 天的峰值带宽数据(单位:Mbps)
|
|
||||||
|
|
||||||
queryEnterpriseDomains
|
|
||||||
|
|
||||||
根据企业 ID 查询该企业所属的域名列表
|
|
||||||
|
|
||||||
queryWeather
|
|
||||||
|
|
||||||
查询指定城市在指定日期的天气预报,返回天气状况、温度、湿度和风力信息
|
|
||||||
|
|
||||||
你能给我生成一个可以导入 ragflow 的 json agent 么?让我可以直接使用。
|
|
||||||
|
|
||||||
智能体的工作就是可以查训用户的域名,如果用户没有输入域名可以用 queryEnterpriseDomains 给用户提示。
|
|
||||||
|
|
||||||
生成到根目录。注意学习相关语法。
|
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
```
|
||||||
|
---
|
||||||
|
config:
|
||||||
|
layout: elk
|
||||||
|
---
|
||||||
|
flowchart TB
|
||||||
|
subgraph Layer1["1. 用户侧"]
|
||||||
|
UI["对话框"]
|
||||||
|
end
|
||||||
|
subgraph Layer2["2. 智能体编排层"]
|
||||||
|
Router["意图识别与分发<br>(语义路由,小模型判断快)"]
|
||||||
|
Planner["Agent 规划与调度 (ReAct)"]
|
||||||
|
LLM["大模型 (LLM)"]
|
||||||
|
RAGFlow["现有 RAGFlow<br>(知识库问答)"]
|
||||||
|
end
|
||||||
|
subgraph Layer3["3. 工具检索引擎 (Tool-RAG) ⭐️核心枢纽"]
|
||||||
|
Embedding["Embedding 模型<br>(文本转向量)"]
|
||||||
|
VectorDB[("向量数据库<br>存储插件语义<br>(按租户隔离)")]
|
||||||
|
RelationalDB@{ label: "关系型数据库<br>1. 接口物理配置<br style=\"--tw-scale-x:\">2. 角色权限表" }
|
||||||
|
SchemaBuilder["Schema 组装器<br>(仅组装 Top-K 工具)"]
|
||||||
|
end
|
||||||
|
subgraph Layer4["4. 拦截与执行层"]
|
||||||
|
Interceptor["高危操作拦截<br>(前端卡片审批流)"]
|
||||||
|
HttpExecutor["通用 HTTP 执行器<br>"]
|
||||||
|
IBS["IBS / CDN / DNS 系统"]
|
||||||
|
end
|
||||||
|
UI -- "1. 用户输入" --> Router
|
||||||
|
Router -- "2a. 查阅文档" --> RAGFlow
|
||||||
|
Router -- "2b. 业务请求/查数据" --> Embedding
|
||||||
|
Embedding -- "3. 提取语义向量" --> VectorDB
|
||||||
|
VectorDB -- "4. 返回相似度 Top-3 的插件 ID" --> SchemaBuilder
|
||||||
|
RelationalDB -. "5. 根据 ID 拉取详细配置URL等" .-> SchemaBuilder
|
||||||
|
SchemaBuilder -- "6. 动态注入这 3 个工具说明" --> Planner
|
||||||
|
Planner <-- "7. 带 3 个工具进行交互<br>提取并完善参数" --> LLM
|
||||||
|
Planner -- "8. 决定调用某工具+参数" --> Interceptor
|
||||||
|
Interceptor -- "9a. 放行/审批后走普通接口" --> HttpExecutor
|
||||||
|
HttpExecutor -- "10a. 动态发起 REST 请求" --> IBS
|
||||||
|
Register["admin 录入新插件"] -. "A. 存入运行配置" .-> RelationalDB
|
||||||
|
Register -. "B. 向量化插件描述" .-> VectorDB
|
||||||
|
|
||||||
|
Router@{ shape: rect}
|
||||||
|
RelationalDB@{ shape: cylinder}
|
||||||
|
Register@{ shape: rect}
|
||||||
|
RAGFlow:::highlight
|
||||||
|
Embedding:::vector
|
||||||
|
VectorDB:::vector
|
||||||
|
RelationalDB:::plugin
|
||||||
|
SchemaBuilder:::vector
|
||||||
|
classDef core fill:#e1f5fe,stroke:#01579b,stroke-width:2px
|
||||||
|
classDef plugin fill:#fff3e0,stroke:#e65100,stroke-width:2px
|
||||||
|
classDef vector fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
|
||||||
|
classDef highlight fill:#fff9c4,stroke:#fbc02d,stroke-width:2px
|
||||||
|
classDef external fill:#f3e5f5,stroke:#8e24aa,stroke-width:1px,stroke-dasharray: 5 5
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user