AI工具 ChatGPT-4 vs Google Bard , PostgreSQL 开发者会pick谁?
在人工智能 (AI) 进步的快节奏世界中,开发人员正在寻找最高效和突破性的解决方案来加快和提高他们的工作质量。对于 PostgreSQL 开发人员来说,选择理想的 AI 支持的工具以最专业的方式解决他们的查询至关重要。
近年来,人工智能工具的普及率飙升,开发人员越来越认识到它们在简化工作各个方面的潜力。一些最著名的 AI 工具包括 OpenAI 的 ChatGPT、Google 的 Bard、IBM 的 Watson 和 Microsoft 的 Azure Cognitive Services 等。这些工具彻底改变了开发人员解决问题的方式,并使以前耗时的任务更易于管理。在本文中,我们将重点比较 ChatGPT-4 和 Google Bard 对一系列常见 SQL 开发相关问题的响应。通过这样做,我们旨在清楚地了解每种工具的功能,并帮助您确定哪种工具更适合您在 SQL 开发领域的特定需求。
dbForge 最新下载https://www.evget.com/vendor/214
什么是ChatGPT?
ChatGPT 由 OpenAI 开发,是一种基于 GPT(Generative Pre-trained Transformer)架构的最先进的 AI 语言模型。作为一种大规模语言模型,ChatGPT 旨在生成类人文本并与用户进行对话,了解上下文并提供相关响应。它能够执行各种任务,例如回答问题、提供建议、创建内容等。
开发人员和企业可以通过将 ChatGPT 集成到他们的应用程序、服务或产品中来利用 ChatGPT 的强大功能,通过自然语言的理解和生成来增强用户体验。ChatGPT 已成功应用于客户支持、内容创建、虚拟协助以及自然语言处理必不可少的许多其他领域。
什么是Google Bard?
Google Bard 是一种大型语言模型,也称为对话式 AI 或聊天机器人,经过训练可提供丰富的信息和全面的信息。巴德接受过大量文本数据的训练,能够通过交流和生成类似人类的文本来响应范围广泛的提示和问题。
虽然仍处于开发阶段,但该工具已经可以通过多种方式帮助 SQL 开发人员,包括回答有关 SQL 语法和用法的问题、帮助调试 SQL 查询、生成针对特定任务定制的 SQL 代码,以及提供有关 SQL 的教程和文档,以及其他功能.
ChatGPT 与 Google Bard
ChatGPT 和 Google Bard 都是大型语言模型,但它们有一些关键的区别。
- 数据: ChatGPT 在截至 2021 年收集的文本和代码数据集上进行训练,而 Google Bard 在不断更新的数据集上进行训练。这意味着 Google Bard 可以访问更多最新信息,并可以提供更准确的答案。
- 准确性: Google Bard 通常比 ChatGPT 更准确,尤其是在涉及事实信息时。这是因为 Google Bard 是在更大、更新的数据集上训练的。
- 创造力:在生成文本格式(例如诗歌、代码、脚本、音乐作品、电子邮件、信件等)方面,ChatGPT 比 Google Bard 更具创造力。这是因为 ChatGPT 是在包含更广泛创意的数据集上训练的文本格式。
- 可用性: ChatGPT 可供任何想使用它的人使用,而 Google Bard 目前仅供有限数量的用户使用。
ChatGPT | Google Bard | |
开发商 | OpenAI | 谷歌 |
语言模型 | OpenAI 的 Generative Pre-training Transformer 3 (GPT-3) 或 Generative Pre-training Transformer 4 (GPT-4) 的定制版本,具体取决于版本 | Google 的对话应用程序语言模型 (LaMDA) |
数据源 | ChatGPT 使用大量文本数据进行训练,包括 Common Crawl、维基百科、书籍、文章和从开放互联网获得的各种文档等资源。然而,它的训练数据只延伸到 2021 年,这限制了它对最近世界事件和研究进展的了解。 | Bard 使用 Infiniset 进行训练,这是一个包含 Common Crawl、维基百科、文档以及来自互联网的对话和对话的数据集。据称,巴德可以进行实时网络搜索,以提供最新的查询答案和最新的研究成果。 |
价钱 | ChatGPT 向用户免费提供,而 ChatGPT Plus 每月收取 20 美元的订阅费。ChatGPT Plus 的订阅者受益于高需求期间的访问、加快响应时间、优先访问新功能以及 GPT-4 的使用。 | 有访问权限的用户可以免费使用 Bard。 |
如何使用 ChatGPT 和 Bard 进行 PostgreSQL 开发
通过提供语法和使用指导、生成 SQL 代码、协助查询调试等,人工智能可以在 PostgreSQL 开发中发挥重要作用。在本文中,我们将向 Bard 和 ChatGPT 提出与 SQL 开发相关的相同问题,然后比较和验证他们的回答。我们的目标是评估这两种人工智能在 PostgreSQL 开发环境中的可靠性和实用性。为了验证 AI 提供的答案,我们将使用市场上最好的 PostgreSQL GUI 工具之一——dbForge Studio for PostgreSQL。
先决条件
- Pagila 示例数据库
- 用于 PostgreSQL 的 dbForge Studio
- 访问 ChatGPT-4
- 访问 Google Bard
示例 #1:函数
假设,我们需要创建一个函数来返回给定时间段内租借次数最多的电影及其租借次数。让我们请 ChatGPT-4 来完成任务。
ChatGPT-4 生成了以下 SQL 代码:
CREATE OR REPLACE FUNCTION most_rented_films(start_date DATE, end_date DATE) RETURNS TABLE (film_id INTEGER, title TEXT, rental_count INTEGER) AS $$ BEGIN RETURN QUERY SELECT f.film_id, f.title, COUNT(r.rental_id) AS rental_count FROM film AS f JOIN inventory AS i ON f.film_id = i.film_id JOIN rental AS r ON i.inventory_id = r.inventory_id WHERE r.rental_date BETWEEN start_date AND end_date GROUP BY f.film_id, f.title ORDER BY rental_count DESC; END; $$ LANGUAGE plpgsql;
现在让我们打开 dbForge Studio for PostgreSQL 并验证 AI 创建的代码。
如您所见,Studio 抛出错误,因为未指定用于创建函数的架构。让我们稍微修改一下代码,然后再试一次。
这次查询成功,并且该函数现在在数据库资源管理器中可见。
现在,是时候运行 SELECT 语句以确保一切都按要求工作了。
哎呀。又出现错误。在函数语法中,rental_count 列数据类型已指定为 INTEGER,这显然是错误的。我们需要修改语法并重试。因此,工作代码如下:
CREATE OR REPLACE FUNCTION public.most_rented_films(start_date DATE, end_date DATE)
RETURNS TABLE (film_id INTEGER, title TEXT, rental_count BIGINT) AS $$
BEGIN
RETURN QUERY
SELECT f.film_id, f.title, COUNT(r.rental_id) AS rental_count
FROM film AS f
JOIN inventory AS i ON f.film_id = i.film_id
JOIN rental AS r ON i.inventory_id = r.inventory_id
WHERE r.rental_date BETWEEN start_date AND end_date
GROUP BY f.film_id, f.title
ORDER BY rental_count DESC;
END;
$$ LANGUAGE plpgsql;
因此,我们删除之前创建的函数,创建一个新函数,然后运行 SELECT。这次成功了。
现在让我们评估一下 Google Bard。
于是,我们得到了如下代码:
CREATE OR REPLACE FUNCTION most_rented_films (start_date DATE,
end_date DATE) RETURNS TABLE (
film_id INT,
film_title VARCHAR(255),
rental_count INT
)
AS
$func$
BEGINRETURN QUERY
SELECT
f.film_id,
f.film_title,
COUNT(*) AS rental_count
FROM
film_rentals fr
JOIN
films f ON f.film_id = fr.film_id
WHERE
fr.rental_date >= start_date
AND fr.rental_date < end_date
GROUP BY
f.film_id,
f.film_title
ORDER BY
rental_count DESC;END
$func$;
让我们在 Studio 中运行它,好吗?压力来了!我们得到了同样的错误——模式没有被指定。
于是,我们修改代码,再次运行。并得到另一个错误。
我们需要进一步修改查询。指定语言并执行语法后,我们运行 SELECT。并且……再次出错。
Google Bard 在其脚本中引用了不存在的表;除此之外,rental_count 列的数据类型被错误地指定为 INT。在我们解决了所有这些问题之后,我们终于得到了工作代码。不好玩,对吧?使用 Google Bard,我们不得不调整生成的代码很长一段时间,这需要一定程度的专业知识,这意味着 SQL 初学者可能无法利用它的提示。
示例 #2:日期函数
假设,我们要创建一个日期函数,返回指定范围内电影租金最高的星期几。让我们首先请 ChatGPT-4 协助我们完成这项任务。
因此,ChatGPT-4 为我们生成了以下查询:
CREATE OR REPLACE FUNCTION highest_rental_day(start_date DATE, end_date DATE)
RETURNS TEXT AS $$
DECLARE
day_of_week TEXT;
BEGIN
SELECT TO_CHAR(r.rental_date, 'Day') AS day_name
INTO day_of_week
FROM rental r
WHERE r.rental_date BETWEEN start_date AND end_date
GROUP BY EXTRACT(DOW FROM r.rental_date)::INTEGER, day_name
ORDER BY COUNT(*) DESC
LIMIT 1;RETURN day_of_week;
END;
$$ LANGUAGE plpgsql;
您可能还记得示例 #1,在 dbForge Studio for PostgreSQL 中运行此代码之前,我们需要指定架构。否则,我们会得到一个错误。
该函数已成功创建。让我们检查一下它是如何工作的。
让我们看看 Google Bard 将如何应对这项任务。
这是我们得到的代码。
CREATE FUNCTION get_highest_rental_day(
start_date DATE,
end_date DATE
) RETURNS VARCHAR(10) AS
$func$
BEGIN
DECLARE
-- Get the total number of film rentals for each day of the week.
rental_counts TABLE (
day_of_week VARCHAR(10),
total_rentals INT
);
BEGIN
-- Populate the rental_counts table.
INSERT INTO rental_counts (day_of_week, total_rentals)
SELECT
EXTRACT(DOW FROM rental_date),
COUNT(*)
FROM
film_rentals
WHERE
rental_date >= start_date
AND rental_date <= end_date
GROUP BY
EXTRACT(DOW FROM rental_date);
-- Get the day of the week with the highest number of rentals.
SELECT
day_of_week
FROM
rental_counts
ORDER BY
total_rentals DESC
LIMIT
1;
END;
END
$func$ LANGUAGE plpgsql;
我们指定架构并在 Studio for PostgreSQL 中运行它。当试图从此函数执行 SELECT 时,我们得到一个错误。PostgreSQL 中没有 TABLE 数据类型。
我们要求 Google Bard 重写语法,但我们没有得到功能代码。因此,它会因这项特定任务而被记过。
示例 #3:窗口函数
PostgreSQL 中的窗口函数是一种对与当前行相关的一组行执行计算的函数。它允许您执行高级计算,包括将当前行与指定窗口或分区内的其他行进行比较。窗口函数对于排名、累积和、移动平均等任务很有用。
假设,我们要计算每个客户的累计付款金额,并获得按付款日期排序的金额。让我们首先向 ChatGPT-4 寻求帮助。
这是我们得到的语法,如果您想自己检查一下:
SELECT
customer_id,
payment_date,
amount,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY payment_date) as cumulative_amount
FROM
payment
ORDER BY
payment_date;
现在我们打开 dbForge Studio for PostgreSQL 并运行 ChatGPT-4 为我们生成的查询。
让我们向 Google Bard 问同样的问题。
这是我们得到的代码:
SELECT
customer_id,
SUM(payment_amount) AS cumulative_sum_of_payments,
payment_date
FROM payments
GROUP BY customer_id
ORDER BY payment_date;
但是,它有很多问题:
- pagila 数据库中没有payments表,它被称为payment。
- payment_amount列也不存在。它被称为数量。
- 没有按日期分组。
- 排序由错误的列完成。
新手可能很难使用该提示,因为需要对查询进行大量修改才能正常工作。
示例 #4:JOIN 子句
JOIN用于根据它们之间的相关列组合来自关系数据库中两个或多个表的数据。它们允许您在单个查询中从多个表中检索信息,使其成为使用关系数据库的重要工具。
假设,我们想要获得所有电影及其所属类别的列表。让我们先问一下ChatGPT-4。
这是我们得到的语法
SELECT
f.title,
c.name as category
FROM
film f
JOIN
film_category fc ON f.film_id = fc.film_id
JOIN
category c ON fc.category_id = c.category_id
ORDER BY
f.title;
乍一看,查询看起来不错。让我们验证一下。
我们现在尝试Google
下面是我们得到的语法
SELECT
film.film_id,
film.title,
category.name
FROM film
JOIN film_category ON film.film_id = film_category.film_id
JOIN category ON film_category.category_id = category.category_id;
让我们在 Studio 中运行由 Google Bard 生成的查询。
如您所见,Google Bard 也完成了这项任务。查询非常相似,唯一的区别是 ChatGPT-4 添加了 ORDER BY 子句以实现更好的结果分析和可见性。
示例 #5:数据透视表
在 PostgreSQL 中,数据透视表是一种数据汇总工具,可让您聚合数据并将其从数据库转换为更易读的格式。
假设,我们想要获得一个数据透视表,按电影类别显示每个客户的总租赁金额。让我们去请 ChatGPT 为我们编写相应的查询。
ChatGPT 向我们提供了以下查询:
WITH rental_amounts AS (
SELECT
c.customer_id,
cat.name AS category,
SUM(p.amount) AS total_amount
FROM
rental r
JOIN payment p ON r.rental_id = p.rental_id
JOIN inventory i ON r.inventory_id = i.inventory_id
JOIN film f ON i.film_id = f.film_id
JOIN film_category fc ON f.film_id = fc.film_id
JOIN category cat ON fc.category_id = cat.category_id
JOIN customer c ON r.customer_id = c.customer_id
GROUP BY
c.customer_id,
cat.name
)
SELECT
customer_id,
SUM(CASE WHEN category = 'Action' THEN total_amount ELSE 0 END) AS "Action",
SUM(CASE WHEN category = 'Animation' THEN total_amount ELSE 0 END) AS "Animation",
SUM(CASE WHEN category = 'Children' THEN total_amount ELSE 0 END) AS "Children",
-- Add more categories as needed
SUM(total_amount) AS "Total"
FROM
rental_amounts
GROUP BY
customer_id
ORDER BY
customer_id;
现在是时候在 dbForge Studio for PostgreSQL 中验证它了。准备好?
相当令人印象深刻,不是吗?现在我们带着同样的请求去谷歌验证
我们得到以下代码:
WITH rental_amount AS (
SELECT
customer_id,
film_id,
SUM(rental_amount) AS total_rental_amount
FROM rental
GROUP BY customer_id, film_id
)
SELECT
customer_id,
category.name AS category,
SUM(rental_amount) AS total_rental_amount
FROM rental_amount
JOIN film_category ON rental_amount.film_id = film_category.film_id
JOIN category ON film_category.category_id = category.category_id
GROUP BY customer_id, category
ORDER BY customer_id;
然而,当我们运行 Google Bard 为我们生成的查询时,我们会遇到一些错误。
- rental表中没有film_id列,因此也无法按它进行分组。
- rental_amount列不存在。
- rental_amount.film_id = film_category.film_id JOIN 无效,因为如上所述,rental中没有film_id。
哪个人工智能工具更好?
Google Bard 和 ChatGPT-4 都在不断发展,这些工具在 AI 语言模型领域具有巨大的潜力。但是,根据本文中进行的分析,ChatGPT-4 在处理 PostgreSQL 提示方面表现出卓越的性能。ChatGPT-4 生成的代码通常需要较少的修改,从而提高了效率。此外,ChatGPT-4 拥有更高的可访问性,因为与对应的模型相比,获得对该 AI 模型的访问是一个更直接的过程。
此外,ChatGPT 生成的代码更加人性化;例如,AI 贴心地包含了 ORDER BY 和 GROUP BY 等子句,使结果更易于理解和分析。这有助于识别趋势和模式,最终改善使用输出时的整体用户体验。
Devart 提供包括Oracle、SQL Server、MySQL、PostgreSQL、InterBase以及Firebird在内的专业数据库远程管理软件,dbForge Studio for MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作。
相关文章:

AI工具 ChatGPT-4 vs Google Bard , PostgreSQL 开发者会pick谁?
在人工智能 (AI) 进步的快节奏世界中,开发人员正在寻找最高效和突破性的解决方案来加快和提高他们的工作质量。对于 PostgreSQL 开发人员来说,选择理想的 AI 支持的工具以最专业的方式解决他们的查询至关重要。 近年来,人工智能工具的普及率…...

【网络】基础知识1
目录 网络发展 独立模式 网络互联 局域网LAN 广域网WAN 什么是协议 初识网络协议 协议分层 OSI七层模型 TCP/IP四层(或五层)模型 OSI和TCP/IP对比 网络传输流程 什么是报头 局域网通信原理 同网段的主机通讯 跨网段的主机通讯 数据包封装…...

chatgpt赋能python:Python倒序range的完整指南
Python倒序range的完整指南 Python是一种高级编程语言,很多人认为它非常容易学习和使用。其中一个非常有用的功能是range()函数,可以生成数字序列。然而,有时候我们需要以相反的顺序生成这个数字序列,这时候倒序range()函数就派上…...

工作笔记!
搭建tomcat Tomcat详细使用教程 tomcat配置用戶名和密碼 tomcat设置外网能访问_tomcat让别人通过网络访问 如何在windows开端口_windows开放端口命令 tomcat进Manager 403 Access Denied You are not authorized to view this page_tomcat报错you are not_ferry_cai 关于依…...

java设计模式之享元设计模式的前世今生
享元设计模式是什么? 享元设计模式是一种结构型设计模式,它的目的是在大规模重复使用相似对象时提高内存利用率和性能。它通过共享对象的公共部分来减少所需要的内存,从而在系统中同时存在更多的对象。 享元设计模式通过将对象分为可共享的内…...

RESTful:理解REST架构风格、RESTful API
一、REST架构风格 REST(英文Representational State Transfer)是一种基于客户端和服务器的架构风格,用于构建可伸缩、可维护的Web服务。REST的核心思想是,将Web应用程序的功能作为资源来表示,使用统一的标识符&#x…...

网络面试题:什么是 TCP/IP?
目录标题 什么是 TCP/IP?1) 网络接口层:2) 网络层:3) 传输层:4) 应用层: 2.数据包3.网络接口层4.网络层1) IP:2)地址解析协议 ARP3)子网 5 传输层1)UDP:2)TCP: 6 应用层运行在TCP协议上的协议:运行在UDP协议上的协议&…...

毫米波雷达模块在自动驾驶系统中的关键功能
随着自动驾驶技术的快速发展,毫米波雷达模块作为一项关键技术,为自动驾驶系统提供了重要的感知和决策能力。毫米波雷达模块通过实时探测和跟踪周围环境中的车辆、行人和障碍物,提供精确的距离和速度信息,帮助自动驾驶车辆做出准确…...

关于开发中对端口(port)的几点理解
一、服务端的端口是固定的,客户端的端口是随机的 客户端端口是随机的,比如访问百度,系统为浏览器分配了个端口1024。过一会重开电脑,访问了新浪,可能还是用1024端口,我不关浏览器,还要再开一个浏…...

qt 5.14.2 arm 交叉环境搭建过程
主要参考 https://blog.csdn.net/anmo_moan/article/details/126960630 https://blog.csdn.net/a648642694/article/details/89302843 1 下载编译器&设置 1.1 gcc-linaro-12.2.1-2023.01-x86_64_arm-linux-gnueabihf.tar.xz 下载编译器 1.2. /home/zsf/arm linaro 压缩包…...

apt remove purge的区别 删除包的同时删除配置文件
1、apt remove purge的区别 查看 man apt apt remove:删除软件包,不删除配置文件。这么做的目的是将来再次安装这个包时 原来的配置文件会自动加载供使用。也可以避免误删除包,配置文件还在的话,重新安装一次软件包就可以恢复到…...

电商|跨境电商如何选择API接口和ERP
随着跨境电商企业规模升级,平台提供的卖家后台系统往往无法满足有一定规模的店铺和独立站卖家。日常运营中,中大型跨境电商往往面临以下几种挑战: 多店铺、多平台订单管理难 库存数据集成难,经常缺货 物流管理难,手…...

测试人员的启蒙指南
文章目录 一. 了解测试1. 生活中的测试场景2. 什么是软件测试3. 实战练习 二. 软件测试和软件开发的区别三. 软件测试和软件调试的区别四. 软件测试的发展五. 软件测试的岗位六. 一个优秀的软件测试人员具备的素质 本篇中介绍测试人员是干什么的, 起到启蒙和了解的作用, 重点是…...

Linux工具:vim常用快捷键
1、拷贝行(一般模式下) 拷贝当前行 将光标移动到指定行,yy 移动到想要粘贴的行,p 即可把拷贝的行粘贴到该行下方 拷贝n行 将光标移动到指定行,比如拷贝5行,5yy 移动到想要粘贴的行,p 即可把拷贝的几行粘贴到该行下方…...

TA-lib第三方库安装问题
因为学习的需要,用到Talib库做写指标分析,但是百度了好久,说是去要某某网站下载对应版本的文件进行本地安装,但是把…404 Not found 然后通过查找,Ta-lib库的安装已经迁移到这里了 https://github.com/TA-Lib/ta-lib-p…...

接口测试的测试要点
接口测试的测试要点,你知道都有哪些吗? 接口测试是软件测试中的重要组成部分,它的目的是评估接口的质量和可靠性,以保证系统的正常运行。在进行接口测试时,必须要考虑到以下几个方面: 测试用例的编写 测试…...

直流电机 PID 控制系统仿真研究(Simulink实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

第三章 向量与线性方程组
引言 题型总结中推荐例题有蓝皮书的题型较为重要,只有吉米多维奇的题型次之。码字不易,如果这篇文章对您有帮助的话,希望您能点赞、评论、收藏,投币、转发、关注。您的鼓励就是我前进的动力! 知识点思维导图 补充&…...

数组题目总结 -- 花式遍历
目录 一. 反转字符串中的单词思路和代码:I. 博主的做法II. 东哥的做法III. 其他做法1补充知识点: IV. 其他做法2 二. 旋转图像思路和代码:I. 博主的做法II. 东哥的做法 三. 旋转图像(逆时针旋转90)思路和代码ÿ…...

Android 12.0开机过滤部分通知声音(莫名其妙的通知声音)
1.概述 在12.0的开发产品的时候,有时候在开机的时候会有一些通知的声音,但是由于系统模块太多,也搞不清楚到底是哪个模块发出的通知声音,所以就需要从通知的流程来屏蔽这些通知声音 2.开机过滤部分通知声音(莫名其妙的通知声音)核心代码 frameworks/base/core/java/androi…...

LeetCode-0525
102. 二叉树的层序遍历(中等) 思路:使用hash记录深度 class Solution {public List<List<Integer>> levelOrder(TreeNode root) {if(rootnull)return new ArrayList<>();Map<TreeNode,Integer> deep new HashMap&…...

【Linux 】scp命令
前言 Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。 scp命令 前言一、示例1. 从本地复制到远程2. 从…...

Docker部署yolov5
目录 环境下载源码构建Docker镜像运行docker镜像运行目标检测出现partially initialized module cv2 has no attribute _registerMatType错误出现ImportError: libSM.so.6: cannot open shared object file: No such file or directory错误出现AttributeError: Upsample object…...

如何在 Axios 中去控制 Loading?大有学问!
目录 前言 按钮loading 局部loading 全局loading 前言 loading 的展示和取消可以说是每个前端对接口的时候都要关心的一个问题。这篇文章将要帮你解决的就是如何结合axios更加简洁的处理loading展示与取消的逻辑。 首先在我们平时处理业务的时候loading一般分为三种&#x…...

充电桩检测设备厂家TK4860C交流充电桩检定装置
TK4860系列是专门针对现有交流充电桩现场检测过程中接线复杂、负载笨重、现场检测效率低等问题而研制的一系列高效检测仪器,旨在更好的开展充电桩的强制检定工作。 充电桩检测设备是一款在交流充电桩充电过程中实时检测充电电量的标准仪器,仪器以新能源…...

一文3000字实现基于Selenium+Python的web自动化测试框架
一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefo…...

Android 12系统源码_窗口管理(二)WindowManager对窗口的管理过程
前言 上一篇我们具体分析了窗口管理者WindowManagerService的启动流程,对于WindowManagerService有了一个初步的认识。在此基础上,我本打算应该进一步分析WindowManagerService是如何管理系统中的各种窗口的,然而由于Android系统的架构设计,在分析WindowManagerService之前…...

python3.8,torch1.10.2+cu113、torch-geometric 安装
【1】conda create -n name python=3.8 【2】安装 torch 注意先看可适应的最高cuda版本 https://data.pyg.org/whl/ 版本对应 【3】按照顺序安装torch-geometric: torch-sparse、torch-scatter、torch-cluster、 torch-spline-conv \torch-geometric pip install torc…...

堆(heap)、栈(stack)
在程序中,栈和堆是两种非常重要的数据结构。它们都用来存储数据,但是它们的定义略有不同。 栈Stack: 栈是一种线性的数据结构,它以 “后进先出”(LIFO)的方式存储数据。栈中的内存空间在编译时就已经确定,大…...

企业级API网关之典型应用场景
目 录 01 企业面对API与网关的现状 02 APIGW介绍及企业应用场景 03 总结 01 企业面对API与网关的现状 在企业中,进行新的系统/应用/产品开发时,具有周密的流程:从需求分析、设计、开发、测试、发布与验收。所以,一…...