最精品网站建设如何将自己做的网站放到网上

news/2025/9/23 19:32:41/文章来源:
最精品网站建设,如何将自己做的网站放到网上,wordpress开发者手册,出名的包装设计ChatGPT插件平台有望成为影响深远的下一件大事#xff0c;因此对于开发者来说#xff0c;有必要对ChatGPT插件的开发有一定的了解。原文: Writing a ChatGPT Plugin With Go[1] 我工作的附带福利之一是偶尔可以接触试用一些很酷的新技术#xff0c;最近的一项技… ChatGPT插件平台有望成为影响深远的下一件大事因此对于开发者来说有必要对ChatGPT插件的开发有一定的了解。原文: Writing a ChatGPT Plugin With Go[1] 我工作的附带福利之一是偶尔可以接触试用一些很酷的新技术最近的一项技术是OpenAI的ChatGPT插件平台。 ChatGPT是一款突破性的AI聊天机器人无论好坏它都席卷了世界。在2023年3月ChatGPT插件和插件平台的发布引发了持续关注(包括我)这可是件大事。 如果你把ChatGPT的发布等同于2007年发布iPhone那么插件的发布就像是在2008年发布的移动应用和App Store。这不仅是当今最强大、最先进的AI模型开发服务平台也是一个可以立即触达1亿用户的机会。 对于像我这样的程序员来说就像猫薄荷之于猫一样当我拿到访问权限时立马跳了起来。 ChatGPT插件非常简单实际上只不过是ChatGPT调用并获取信息的API可以基于返回信息向用户提供答案。是的你没看错ChatGPT插件只是标准API。 那么怎么实现ChatGPT插件呢实现ChatGPT插件必须提供2个文件: 描述插件的manifest文件(本质上是JSON文件) 描述插件中API的 OpenAPI [2]规范(YAML文件) 接下来看看我是如何创建新加坡HDB停车场插件的。 停车场插件 我决定从一个非常简单的插件开始。在新加坡住房发展局(HDB)[3]是负责公共住房的政府机构。公共住房在新加坡是件大事约有80%的人住在公共住房中因此HDB停车场占新加坡住宅停车场的大部分。 我想创建一个插件可以告诉我关于新加坡HDB停车场的使用情况。这些信息都可以在data.gov.sg上获得这是一个免费数据门户网站提供新加坡政府的公开数据集和API。 简而言之插件有两个功能: 提供HDB停车场的资料可以指定地点或指定停车场 提供HDB停车场的可用情况可以指定地点或指定停车场 data.gov.sg门户网站有个针对这些目标很有用的API——HDB停车场使用情况API[4]这是一个实时API。至于HDB停车场信息有一个定期更新的数据集称为HDB停车场信息[5]。幸运的是HDB停车场信息数据集是CKAN action API的前端。 无论如何现在这两种功能都有API可用。这就完事了对吧没那么快。CKAN action API根据日期参数在数据集中返回所有内容并不完全有用。我不能把所有数据都转到ChatGPT去数据集是324kb超过了token限制。然而解决这个问题相对简单只需要过滤一下。 此外我们不能直接公开API。记住ChatGPT插件需要manifest文件和OpenAI规范。manifest文件还指向像logo和合法页面这样的东西需要提供具有相同域名和插件URL的电子邮件。所有这一切都意味着我们真的需要开发一个单独的API程序在将data.gov.sg API发布到ChatGPT之前用来进行处理。 API程序 我用Go语言开发了API程序这是很自然的选择Go非常适合API。由于很多AI的东西都用Python我最近一直在使用Python所以也比较渴望回到Go。 JSON数据结构 我们从JSON数据结构定义开始。 package mainimport time// for car park informationtype CarParkData struct { CarParkInfo []struct {  TotalLots     string json:total_lots  LotType       string json:lot_type  LotsAvailable string json:lots_available } json:carpark_info CarParkNumber  string json:carpark_number UpdateDatetime string json:update_datetime}type CarParkAvailability struct { Items []struct {  Timestamp time.Time     json:timestamp  Data      []CarParkData json:carpark_data } json:items}// for car park availabilitytype CarParkRecord struct { FullCount           string  json:_full_count ShortTermParking    string  json:short_term_parking CarParkType         string  json:car_park_type YCoord              string  json:y_coord XCoord              string  json:x_coord Rank                float64 json:rank FreeParking         string  json:free_parking GantryHeight        string  json:gantry_height CarParkBasement     string  json:car_park_basement NightParking        string  json:night_parking Address             string  json:address CarParkDecks        string  json:car_park_decks ID                  int     json:_id CarParkNo           string  json:car_park_no TypeOfParkingSystem string  json:type_of_parking_system}type CarParks struct { Help    string json:help Success bool   json:success Result  struct {  ResourceID string json:resource_id  Fields     []struct {   Type string json:type   ID   string json:id  } json:fields  Q       string          json:q  Records []CarParkRecord json:records  Links   struct {   Start string json:start   Next  string json:next  } json:_links  Total int json:total } json:result} 看起来很复杂但其实我作弊了我只是从data.gov.sg API中获取JSON样本和输出并使用Matt Holt提供的JSON-to-Struct[6]服务该服务会立即创建相应的结构体然后只需根据需要对其进行调整。 API 接下来是API程序本身。 package mainimport ( encoding/json io log net/http net/url os time)const infoUrl  https://data.gov.sg/api/action/datastore_search?\  resource_id139a3035-e624-4f56-b63f-89ae28d4ae4cqconst availUrl  https://api.data.gov.sg/v1/transport/\  carpark-availability?date_timefunc main() { port : os.Getenv(PORT) mux : http.NewServeMux() mux.Handle(/static/, http.StripPrefix(/static,   http.FileServer(http.Dir(./static)))) mux.Handle(/.well-known/ai-plugin.json, cors(manifest)) mux.Handle(/openapi.yaml, cors(specs)) mux.Handle(/info, cors(info)) mux.Handle(/availability, cors(availability)) server : http.Server{  Addr:    :  port,  Handler: mux, } server.ListenAndServe()}// middleware to set CORS for handlersfunc cors(h http.HandlerFunc) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {  w.Header().Set(Access-Control-Allow-Origin, *)  w.Header().Set(Access-Control-Allow-Methods, GET)  w.Header().Set(Access-Control-Allow-Headers,     Origin,Content-Type,OpenAI-Conversation-ID,OpenAI-Ephemeral-User-ID)  h.ServeHTTP(w, r) })}// returns openai.yaml filefunc specs(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, openapi.yaml)}// returns .well-known/ai-plugin.json filefunc manifest(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, .well-known/ai-plugin.json)}// handler function// get information on car parkfunc info(w http.ResponseWriter, r *http.Request) { query : r.URL.Query().Get(q) records : getCarParkRecords(query) w.Header().Set(Content-Type, application/json) json.NewEncoder(w).Encode(records)}// handler function// get availability on car parkfunc availability(w http.ResponseWriter, r *http.Request) { // get the car parks requested query : r.URL.Query().Get(q) records : getCarParkRecords(query) // get the availability of car parks in Singapore now now : time.Now() dt : now.Format(time.RFC3339) availability : new(CarParkAvailability) carparkdata : []CarParkData{} resp, err : http.Get(availUrl  url.QueryEscape(dt)) if err ! nil {  log.Println(Cannot call url, availUrldt, err) } defer resp.Body.Close() data, err : io.ReadAll(resp.Body) if err ! nil {  log.Println(Cannot read JSON file, err) } err  json.Unmarshal(data, availability) if err ! nil {  log.Println(Error unmarshalling json data:, err) } // filter off those that we want to look for for _, item : range availability.Items {  for _, data : range item.Data {   for _, record : range records {    if data.CarParkNumber  record.CarParkNo {     carparkdata  append(carparkdata, data)    }   }  } } w.Header().Set(Content-Type, application/json) json.NewEncoder(w).Encode(carparkdata)}// get card park records based on a queryfunc getCarParkRecords(query string) []CarParkRecord { carparks : new(CarParks) resp, err : http.Get(infoUrl  query) if err ! nil {  log.Println(Cannot call url, infoUrlquery, err) } defer resp.Body.Close() data, err : io.ReadAll(resp.Body) if err ! nil {  log.Println(Cannot read JSON file, err) } err  json.Unmarshal(data, carparks) if err ! nil {  log.Println(Error unmarshalling json data:, err) } return carparks.Result.Records} 这就是整个API程序大约120行左右代码。我们来分析一下。 Manifest文件 之前提到有两个文件定义ChatGPT插件一个是manifest文件需要放在运行API程序的服务器上的.well-known/ai-plugin.json路径下。 为此我提供了一个JSON文件。如果不需要身份验证则格式相对简单。 {    schema_version: v1,    name_for_human: HDB Car Park,    name_for_model: hdbcarpark,    description_for_human: For checking availability of car park \      lots at various HDB car parks around Singapore.,    description_for_model: For checking availability of car park \      lots at various HDB car parks around Singapore.,    auth: {      type: none    },    api: {      type: openapi,      url: https://carpark.sausheong.com/openapi.yaml,      is_user_authenticated: false    },    logo_url: https://carpark.sausheong.com/static/logo.png,    contact_email: sausheongsausheong.com,    legal_info_url: https://carpark.sausheong.com/static/legal.html} OpenAPI规范 第二个是API的OpenAPI规范。和前面一样我提供了openapi.yaml文件文件位置在上面的manifest文件中指定。 openapi: 3.0.1info:  title: HDB Car Park  description: For checking avaiability of car park lots at various HDB \    car parks around Singapore  version: v1servers:  - url: https://carpark.sausheong.compaths:  /info?q{location}:    get:      operationId: getCarParkInfo      summary: Get information about HDB car parks at a location      parameters:      - in: path        name: location        schema:            type: string        required: true        description: location to search for HDB car parks      responses:        200:          description: OK          content:            application/json:              schema:                $ref: #/components/schemas/getCarParkInfo  /availability?q{location}:    get:      operationId: getCarParkAvailability      summary: Get availability of HDB car parks in Singapore at this moment      parameters:      - in: path        name: location        schema:            type: string        required: true        description: location to search for HDB car parks            responses:        200:          description: OK          content:            application/json:              schema:                $ref: #/components/schemas/getCarParkAvailability components:  schemas:    getCarParkInfo:      type: array      items:         type: object        properties:           _full_count:             type: string          short_term_parking:             type: string          car_park_type:             type: string          y_coord:             type: string          x_coord:             type: string          rank:             type: number          free_parking:             type: string          gantry_height:             type: string          car_park_basement:             type: string          night_parking:             type: string          address:             type: string          car_park_decks:             type: string          _id:             type: integer            format: int          car_park_no:             type: string          type_of_parking_system:             type: string    getCarParkAvailability:      type: object      properties:         timestamp:           type: string          format: date-time        carpark_data:           type: array          items:             type: object            properties:               carpark_info:                 type: array                items:                   type: object                  properties:                     total_lots:                       type: string                    lot_type:                       type: string                    lots_available:                       type: string              carpark_number:                 type: string              update_datetime:                 type: string 该文件定义了两个路径/info和/availability用于提供对应的两个功能。这两个路径还可以接受查询参数location用于过滤位置。 接下来看看具体功能。 停车场信息 getCarParkRecords函数直接向data.gov.sg API发送GET请求并返回CarParkRecord结构的切片。 // get card park records based on a queryfunc getCarParkRecords(query string) []CarParkRecord { carparks : new(CarParks) resp, err : http.Get(infoUrl  query) if err ! nil {  log.Println(Cannot call url, infoUrlquery, err) } defer resp.Body.Close() data, err : io.ReadAll(resp.Body) if err ! nil {  log.Println(Cannot read JSON file, err) } err  json.Unmarshal(data, carparks) if err ! nil {  log.Println(Error unmarshalling json data:, err) } return carparks.Result.Records} info处理程序使用getCarParkRecords来获取记录并作为JSON响应返回。 // get information on car parkfunc info(w http.ResponseWriter, r *http.Request) { query : r.URL.Query().Get(q) records : getCarParkRecords(query) w.Header().Set(Content-Type, application/json) json.NewEncoder(w).Encode(records)} 停车场使用情况 检查停车场的使用情况稍微有点棘手。availability处理程序首先调用getCarParkRecords来获取感兴趣的停车场。 然后调用data.gov.sg CKAN API来获取新加坡所有HDB停车场的当前使用情况并放入CarParkAvailability结构体中。 // get availability on car parkfunc availability(w http.ResponseWriter, r *http.Request) { // get the car parks requested query : r.URL.Query().Get(q) records : getCarParkRecords(query[:len(query)-1]) // get the availability of car parks in Singapore now now : time.Now() dt : now.Format(time.RFC3339) availability : new(CarParkAvailability) carparkdata : []CarParkData{} resp, err : http.Get(availUrl  url.QueryEscape(dt)) if err ! nil {  log.Println(Cannot call url, availUrldt, err) } defer resp.Body.Close() data, err : io.ReadAll(resp.Body) if err ! nil {  log.Println(Cannot read JSON file, err) } err  json.Unmarshal(data, availability) if err ! nil {  log.Println(Error unmarshalling json data:, err) } // filter off those that we want to look for for _, item : range availability.Items {  for _, data : range item.Data {   for _, record : range records {    if data.CarParkNumber  record.CarParkNo {     carparkdata  append(carparkdata, data)    }   }  } } w.Header().Set(Content-Type, application/json) json.NewEncoder(w).Encode(carparkdata)} 然后遍历CarParkAvailability和CarParkRecords中的停车场数据并匹配停车场编号以过滤CarParkAvailability。最后以JSON格式返回停车场使用数据。 启用CORS 需要注意要为API程序启用CORS(跨域资源共享Cross-Origin Resource Sharing)从而允许ChatGPT调用API。我将其实现为每个处理程序的HTTP中间件。 // middleware to set CORS for handlersfunc cors(h http.HandlerFunc) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {  w.Header().Set(Access-Control-Allow-Origin, https://chat.openai.com)  w.Header().Set(Access-Control-Allow-Methods, GET)  w.Header().Set(Access-Control-Allow-Headers,     Origin,Content-Type,OpenAI-Conversation-ID,OpenAI-Ephemeral-User-ID)  h.ServeHTTP(w, r) })} 就这么多! 部署插件 ChatGPT允许我们安装运行在计算机上的插件也就是说可以在本地主机上运行这对于测试和调试非常有用。同时也意味着需要将manifest文件和OpenAPI规范指向localhost。 一旦对测试结果感到满意就可以将其部署到互联网上让最多15个用户进行测试。部署插件类似于部署任何API在此不再详述除了需要为服务提供适当的域名并且API域名需要与manifest文件中的联系电子邮件地址相匹配还需要通过HTTPS运行。 一旦部署了API就可以将其作为插件安装在ChatGPT上。 为什么这么繁琐? 如果你认为对于API来说太过于繁琐只要看看当我在ChatGPT上问更复杂的问题时这个插件是如何回应的。请记住插件不只是向用户提供数据也为当今最先进的AI模型之一提供数据以用于回答问题。 我试着比较多层停车场和地面停车场这很有效感觉我是在问一个拥有所有数据并能够为我分析数据的人。 问: 在淡滨尼多层停车场是否比地面停车场有更多可用车位? ChatGPT: 根据数据这里是淡滨尼多层停车场和地面停车场的比较: 多层停车场: 总停车位: 26,486 空停车位: 14,070 空停车位占比: 53.1% 地面停车场: 总停车位: 26,486 空停车位: 198 空停车位占比: 18.6% 因此与地面停车场相比淡滨尼的多层停车场的可用车位比例更高。 接下来我试着问哪个停车场车位最多离这里有多远。 *问: 淡滨尼哪个停车场的车位最多地址是什么? 离淡滨尼购物中心有多远? ChatGPT: 淡滨尼可用车位最多的停车场位于NT5共有1489个车位其中有812个空车位。 此停车场地址为淡滨尼中环7号510C座/淡滨尼广场。 至于到淡滨尼购物中心的距离我需要计算一下请稍等。 NT5停车场位于淡滨尼中环7号510C座/淡滨尼广场距离淡滨尼购物中心约500米步行大约6分钟。请注意实际时间可能会根据路线和步行速度而有所不同。 这就很有意思了当ChatGPT没有数据时就会胡编乱造。它不知道停车场离购物中心有多远所以就编了一个数字猜测人们从停车场走到购物中心需要多长时间。实际距离为1公里步行时间约为12分钟(谷歌地图)。 我还试着让它比较新加坡两个不同地区的停车场使用情况也很有效。 问: 淡滨尼的空停车位与宏茂桥相比占停车场容量的百分比如何? ChatGPT: 以下是淡滨尼和宏茂桥的停车场可用情况: 淡滨尼: 总停车位: 13,739 空停车位: 4,751 空停车位占比: 34.6% 宏茂桥: 总停车位: 30,544 空停车位: 9,380 空停车位占比: 30.7% 请注意这些数字是实时更新的随时可能会发生变化。 总结 编写ChatGPT插件非常简单并且是一个强大的工具。编写插件的技能与目前技能没什么不同不像刚开始开发移动应用时需要更多专业技能。很容易看出当它正式发布时很可能会有一个插件热潮。更令人兴奋的是插件可以相互协作以提供协同功能。 ChatGPT仍然存在问题当数据不可用时会产生幻觉现象。然而从长远来看这是可以解决的。我认为一个潜力巨大的AI市场正在开始。 代码 可以从下面Git仓库获得所有代码。 ChatGPT plugin for Singapore HDB car park availability[7] 你好我是俞凡在Motorola做过研发现在在Mavenir做技术工作对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣平时喜欢阅读、思考相信持续学习、终身成长欢迎一起交流学习。为了方便大家以后能第一时间看到文章请朋友们关注公众号DeepNoMind并设个星标吧如果能一键三连(转发、点赞、在看)则能给我带来更多的支持和动力激励我持续写下去和大家共同成长进步 参考资料 [1] Writing a ChatGPT Plugin With Go: https://betterprogramming.pub/writing-a-chatgpt-plugin-with-go-c5a70764915d [2] OpenAPI: https://www.openapis.org [3] 住房发展局(HDB): https://www.hdb.gov.sg/cs/infoweb/homepage [4] HDB停车场使用情况API: https://data.gov.sg/dataset/carpark-availability [5] HDB停车场信息: https://data.gov.sg/dataset/hdb-carpark-information [6] JSON-to-Struct: https://mholt.github.io/json-to-go [7] ChatGPT plugin for Singapore HDB car park availability: https://github.com/sausheong/carpark-cgpt/tree/main - END - 本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《CBI 技术有聊》对话 OpenCSG:智能体落地困境与企业转型的必然路径

智能体热潮下的冷思考 2025 年,“智能体(Agent)”无疑是 AI 行业的焦点。它被称为继“大模型”之后的第二次浪潮,资本热情与行业跟风让它迅速升温。然而,在热潮背后,企业的现实却并不乐观:算力闲置、数据不足、…

汕头个人网站推广建设提升审美网站

为什么80%的码农都做不了架构师?>>> 1.面试题 例如: ip计算后的值=53文本内容:1,100,北京 101,1000,上海 1001,3001,广州 ...求ip53对应的省份2.代码如下: #!/usr/bin/python # coding: utf8def ip_find(i…

58和搜房那个网站做房产好wordpress主题插件下载

你拿起一个计算器,输入“26”,计算器会输出“8”;过了一会儿,你又在这个计算器上输入“26”,它依然会输出“8”。这种靠谱的计算器——对于同一个输入,它始终还给我们同一个输出——我们称之为线性计算器或…

直播网站开发报价wordpress 屏蔽

在企业内网开发环境方面,文件服务器是一个非常重要的环节。在这当中,Samba服务器由于其权限控制的高度灵活性,在这里抚琴煮酒会进行一些列详细的说明。之前我们已经介绍了Samba服务器一些入门和基本的更换用户、端口监听、列表控制等技巧&…

h5电子商城网站开发wordpress ajax分页插件

简介: 上文说到云计算的十余年发展让整个互联网行业发生了翻天覆地的变化,Serverless 作为云计算的产物,或者说是云计算在某个时代的表现,被很多人认为是真正意义上的云计算,关于“Serverless 是什么”这个问题&#x…

Mac怎么搭建网站开发环境怎么做网站二维码

用户与角色之间的关系 我们在做用户模块的时候,漏掉了最后一个功能。在新增功能中是可以选择角色的。 用户与角色之间的关系也是多对多 一个用户对应多个角色一个角色可以被多个用户使用。现在呢,我们的用户表已经是写的了。我们最好就不要修改原有的用户…

微信官方网站公众平台什么叫网站降权

一、搭建开发环境 搭建环境可以从这里开始: 微信小程序从零开始开发步骤(一)搭建开发环境 - 简书 二、程序示例 1、AppleMusic https://download.csdn.net/download/m0_54925305/89977187 2、仿B站首页 https://download.csdn.net/downlo…

太原网站开发团队公司申请邮箱怎么申请

Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。Input 输入有多组…

怀化市建设局门户网站保定有哪些做网站的地方

springboot配置swagger Swagger 是什么Swagger配置springboot代码展示总结 Swagger 是什么 Swagger 是一个用于构建、文档和调用 RESTful Web 服务的强大工具。它提供了以下几方面的好处: 自动生成 API 文档: Swagger 可以自动生成 API 文档,包括接口的…

北京网站定制流程网页版微信登录入口官网

AI 对话【人工智能】 前言版权开源推荐AI 对话v0版本:基础v1版本:对话数据表tag.jsTagController v2版本:回复中textarea.jsChatController v3版本:流式输出chatLast.jsChatController v4版本:多轮对话QianfanUtilChat…

个人对软件工程的理解

我认为,软件工程的概念可以拆分为以下六个方面: 1. 系统化开发 系统化开发强调在软件开发过程中采用科学的方法和结构化流程,而不是随意编写代码。它要求开发团队按照从需求分析到设计、实现、测试、部署和维护的完…

9/23

今天进行了工程实训,学习了与机械臂,3D打印有关的计算机相关知识。

数组入门:从零基础到排序算法 - 教程

数组入门:从零基础到排序算法 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

国家摄影网站广州谷歌推广

欢迎来到MindGraph,这是一个概念验证、开源的、以API为先的基于图形的项目,旨在通过自然语言的交互(输入和输出)来构建和定制CRM解决方案。该原型旨在便于集成和扩展。以下是关于X的公告,提供更多背景信息。开始之前&a…

server2008 做网站最牛的科技网站建设

我们在使用电脑浏览网页的时候有可能会想截取整篇网页,由于页面在电脑上显示不全,阅读的时候都需要滚动条来看,直接截屏根本截不全整个网页,这时候就需要截取网页的长截图了,那么怎么使用浏览器截长图呢? 1、以Edge浏…

河南网站seo推广湖南网站建设方案优化

PHP版本的AI电话机器人系统具有以下优势: 提升客户体验:AI电话机器人能够为客户提供724小时的服务,无论何时客户有疑问或需要帮助,都可以得到及时响应1。 提高工作效率和客户满意度:AI电话机器人系统具有智能回答问题…

织梦网站模板套用做铝板的网站

在做性能测试过程中有一件很重要的事情需要去完成,那就是分析性能指标数据,可以这样说做性能测试的整个过程都跟指标数据息息相关,下面来说一下常见的一些性能指标数据: 1.吞吐量 2.并发数 3.思考时间 4.响应时间 5.点击数 …

h5 响应式手机网站网络推广应该怎么做啊

全套笔记资料代码移步&#xff1a; 前往gitee仓库查看 感兴趣的小伙伴可以自取哦&#xff0c;欢迎大家点赞转发~ 全套教程部分目录&#xff1a; 部分文件图片&#xff1a; 认识Vue3 1. Vue3组合式API体验 通过 Counter 案例 体验Vue3新引入的组合式API vue <script> ex…

网站建设案例渠道微信推广营销

调度约束 Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面建立 Pod 和 Container。…