1773109225
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
请为我的公司设计一个智能体方案(公司内部 AI 能力中台 / AI 插件市场)。
|
||||
|
||||
目前公司的主要业务是:用户可以通过我们的平台引入域名,域名在平台产生计费计量后,可以查询相关的流量情况或带宽情况。
|
||||
|
||||
我们现在已经有了一个 RAGFlow 流程,但也仅限于实现基础的知识库智能问答。
|
||||
|
||||
我们现在的目标是:
|
||||
|
||||
1. 支持IBS动态数据查询(工单进展、域名配置、运营数据、订购数据等);
|
||||
2. 智能分析CDN优质客户;
|
||||
3. 团队纵向扩展:支持融合CDN配置一键下发下发、DNS动态数据查询
|
||||
4. 实现通过对话查询流量或峰值带宽的效果。
|
||||
5. 构建一个总体的、标准化的智能体框架。
|
||||
6. 我们的后端代码以 Java 为主,希望这个框架是可对接的,后续能方便其他业务组(比如做 DNS 指令下发的团队)接入。
|
||||
7. 实现一键 AI 智能下发。其他小组只需按照我们提供的规范提供接口,就可以接入到我们的智能体中,通过对话框完成业务操作。
|
||||
|
||||
请帮我设计一个完整汇报可行性方案,并给出技术选型建议:
|
||||
|
||||
1. 语言环境:基于 Java 语言。
|
||||
2. 技术选型:是否建议使用 Spring Boot 或 Spring AI?
|
||||
3. 框架评估:目前比较火的 AI 框架,比如 MCP(Model Context Protocol),是否适合我们的业务场景?
|
||||
4. 架构设计:如何设计才能保证后期智能体的高可扩展性?比如其他组提供一个接口规范,我们就能为其提供智能服务。
|
||||
|
||||
比如先说一个简单的流程:我要查流量,那肯定是智能体去编排,决定调用某一个智能体的 Agent 工具,然后发起流量查询等等。这是一个简单的流程。
|
||||
|
||||
比如现在我整个服务已经跑起来了,此时隔壁的项目组给了我一个配置下发的接口,并告诉了我这个接口的参数以及请求地址。我能不能通过“可配置化”的形式,直接在我的页面上把它的地址、需要的参数等信息输入进去,这样我的智能体就拥有了这个能力,而不需要停服务或者进行二次开发。
|
||||
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user