AI帮我写代码,上班摸鱼不是梦(调教过程全记录)

最近发现磁盘空间严重不足,都弹窗提示我了:

想想看到底哪个文件夹占的空间比较大,好做针对性的删除和清理。奈何Windows系统没有查看文件夹大小的工具,只能鼠标放在某个文件夹上,等提示:

AI时代都来临了,就让大语言模型帮我写一个程序吧:计算指定文件夹中所有文件夹的大小并排序。

初版

于是,我就向大语言模型提问:

你是一个卓越的Java程序员,计算指定文件夹中所有文件夹的大小并排序。

完整的代码是这样的:

import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;public class FolderSizeCalculator {public static void main(String[] args) {// 指定文件夹路径String folderPath = "/path/to/folder";// 获取文件夹列表File folder = new File(folderPath);File[] folderList = folder.listFiles(File::isDirectory);// 计算每个文件夹的大小并存储到ArrayList中ArrayList<Folder> folders = new ArrayList<>();for (File f : folderList) {long size = getFolderSize(f);Folder folderObj = new Folder(f.getName(), size);folders.add(folderObj);}// 根据文件夹大小进行排序Collections.sort(folders, Comparator.comparingLong(Folder::getSize));// 输出结果for (Folder f : folders) {System.out.println(f.getName() + " - " + formatSize(f.getSize()));}}// 递归计算文件夹大小public static long getFolderSize(File folder) {long size = 0;File[] fileList = folder.listFiles();if (fileList != null) {for (File f : fileList) {if (f.isFile()) {size += f.length();} else {size += getFolderSize(f);}}}return size;}// 格式化文件大小public static String formatSize(long size) {String[] units = {"B", "KB", "MB", "GB", "TB"};int i = 0;double s = size;while (s >= 1024 && i < units.length - 1) {s /= 1024;i++;}return String.format("%.2f %s", s, units[i]);}
}// 文件夹类
class Folder {private String name;private long size;public Folder(String name, long size) {this.name = name;this.size = size;}public String getName() {return name;}public long getSize() {return size;}
}

使用File类获取指定文件夹中的所有子文件夹,然后使用递归函数getFolderSize计算每个文件夹的大小,最后将结果存储到一个ArrayList中。程序使用Collections.sort方法根据文件夹大小对ArrayList进行排序,并使用formatSize方法格式化文件大小并输出结果。

修改一下指定文件夹的路径就可以运行,效果还不错:

社 - 646.13 KB
学 - 141.15 MB
猫 - 587.99 MB
万 - 1.52 GB

唯一有一点小瑕疵,排序是从小到大的,稍微做一下修改,把

// 根据文件夹大小进行排序
Collections.sort(folders, Comparator.comparingLong(Folder::getSize));

修改为:

// 根据文件夹大小进行排序
Collections.sort(folders, (f1, f2) -> Long.compare(f2.getSize(), f1.getSize()));

运行一下,看看效果:

万 - 1.52 GB
猫 - 587.99 MB
学 - 141.15 MB
社 - 646.13 KB

进化

每次修改需要计算的文件夹路径时,都需要修改代码重新运行,很不方便。我想到了Swing,可以用UI进行交互。于是,我又向大语言模型重新提问:

你是一个卓越的Java程序员,计算指定文件夹中所有文件夹的大小并排序,要求是使用Swing交互,包括输入指定文件夹、展示文件夹大小。

完整的代码如下:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;public class FolderSizeSorter extends JFrame {private JLabel directoryLabel;private JTextField directoryTextField;private JButton calculateButton;private JTextArea resultTextArea;public FolderSizeSorter() {super("Folder Size Sorter");// set up UI componentsdirectoryLabel = new JLabel("Directory:");directoryTextField = new JTextField(20);calculateButton = new JButton("Calculate");resultTextArea = new JTextArea(20, 40);JScrollPane scrollPane = new JScrollPane(resultTextArea);// set up layoutJPanel inputPanel = new JPanel();inputPanel.add(directoryLabel);inputPanel.add(directoryTextField);inputPanel.add(calculateButton);add(inputPanel, BorderLayout.NORTH);add(scrollPane, BorderLayout.CENTER);// set up event listenerscalculateButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {calculateFolderSizes();}});// set up window propertiessetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(500, 400);setVisible(true);}private void calculateFolderSizes() {String directoryPath = directoryTextField.getText();File directory = new File(directoryPath);if (!directory.isDirectory()) {JOptionPane.showMessageDialog(this, "Please enter a valid directory path.");return;}Map<File, Long> folderSizes = new HashMap<>();calculateFolderSizesRecursive(directory, folderSizes);List<Map.Entry<File, Long>> folderSizesList = new ArrayList<>(folderSizes.entrySet());Collections.sort(folderSizesList, new Comparator<Map.Entry<File, Long>>() {public int compare(Map.Entry<File, Long> o1, Map.Entry<File, Long> o2) {return o2.getValue().compareTo(o1.getValue());}});resultTextArea.setText("");for (Map.Entry<File, Long> folderSize : folderSizesList) {resultTextArea.append(folderSize.getKey().getPath() + " - " + formatSize(folderSize.getValue()) + "\n");}}private void calculateFolderSizesRecursive(File folder, Map<File, Long> folderSizes) {File[] files = folder.listFiles();if (files == null) {return;}long folderSize = 0;for (File file : files) {if (file.isDirectory()) {calculateFolderSizesRecursive(file, folderSizes);folderSize += folderSizes.get(file);} else {folderSize += file.length();}}folderSizes.put(folder, folderSize);}private String formatSize(long size) {String[] units = {"B", "KB", "MB", "GB", "TB"};int unitIndex = 0;double dSize = size;while (dSize >= 1024 && unitIndex < units.length - 1) {dSize /= 1024;unitIndex++;}return String.format("%.2f %s", dSize, units[unitIndex]);}public static void main(String[] args) {new FolderSizeSorter();}
}

创建了一个GUI窗口,包括一个标签、一个文本框、一个按钮,在文本框输入文件夹的路径,点击“Calculate”就可以了,效果如下图:

再进化

在使用过程中,又有了新的问题:我看到某一个文件夹比较大,想再看看这个文件夹下的文件夹大小情况,还得手动复制粘贴文件夹路径重新计算,操作起来不是很方便。于是,我又向大语言模型重新提问:

你是一个卓越的Java程序员,计算指定文件夹中所有文件夹的大小并排序,要求是使用Swing交互,包括:输入指定文件夹、以树型结构展示文件夹的大小。

完整的代码如下:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;public class FolderSizeCalculator extends JFrame {private static final long serialVersionUID = 1L;private JPanel contentPane;private JButton btnSelectFolder;private JTree tree;private DefaultTreeModel treeModel;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {FolderSizeCalculator frame = new FolderSizeCalculator();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public FolderSizeCalculator() {setTitle("Folder Size Calculator");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setLayout(new BorderLayout(0, 0));setContentPane(contentPane);btnSelectFolder = new JButton("Select Folder");btnSelectFolder.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JFileChooser fileChooser = new JFileChooser();fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);int result = fileChooser.showOpenDialog(FolderSizeCalculator.this);if (result == JFileChooser.APPROVE_OPTION) {File folder = fileChooser.getSelectedFile();DefaultMutableTreeNode root = new DefaultMutableTreeNode(folder.getName());treeModel = new DefaultTreeModel(root);tree.setModel(treeModel);calculateFolderSize(folder, root);tree.expandRow(0);}}});contentPane.add(btnSelectFolder, BorderLayout.NORTH);JScrollPane scrollPane = new JScrollPane();contentPane.add(scrollPane, BorderLayout.CENTER);tree = new JTree();scrollPane.setViewportView(tree);}private void calculateFolderSize(File folder, DefaultMutableTreeNode node) {long size = 0;List<File> subfolders = new ArrayList<>();for (File file : folder.listFiles()) {if (file.isDirectory()) {subfolders.add(file);} else {size += file.length();}}Collections.sort(subfolders);for (File subfolder : subfolders) {DefaultMutableTreeNode subnode = new DefaultMutableTreeNode(subfolder.getName());node.add(subnode);calculateFolderSize(subfolder, subnode);}node.setUserObject(node.getUserObject() + " (" + humanReadableByteCount(size, false) + ")");}private String humanReadableByteCount(long bytes, boolean si) {int unit = si ? 1000 : 1024;if (bytes < unit)return bytes + " B";int exp = (int) (Math.log(bytes) / Math.log(unit));String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i");return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);}
}

这个程序中,创建了一个继承自JFrameFolderSizeCalculator类,并在其中创建了一个用户界面。

我们可以通过点击“Select Folder”按钮来选择要计算大小的文件夹。一旦用户选择了一个文件夹,程序将会计算该文件夹中所有文件夹的大小,并将结果以树形结构展示出来。

计算文件夹大小的方法是calculateFolderSize,它使用递归来遍历文件夹及其子文件夹,计算它们的大小。该方法将每个子文件夹作为一个节点添加到树中,并将文件夹大小添加到节点名称中。

humanReadableByteCount是一个辅助方法,用于将文件大小从字节转换为人类可读的格式(如MB、GB等)。

运行一下,看看效果:

发现了问题,子文件夹的大小反而比父文件夹的大,仔细阅读了一下代码发现:在calculateFolderSize方法中累加了文件的大小,没有累加子文件夹的大小。于是,我又向大语言模型重新提问:

你是一个卓越的Java程序员,把以下方法改下成计算文件下所有文件夹和文件的大小的总和

大语言模型增加了一个calculateTotalSize方法:

private long calculateTotalSize(File folder) {long totalSize = 0;if (folder.isDirectory()) {for (File file : folder.listFiles()) {if (file.isDirectory()) {totalSize += calculateTotalSize(file);} else {totalSize += file.length();}}} else {totalSize = folder.length();}return totalSize;
}

在该方法中,首先检查传递的文件夹是否是文件夹类型。如果是文件夹,则迭代遍历其所有子项,如果子项是文件夹,则递归调用该方法以计算其大小;如果子项是文件,则将其大小加到总大小中。如果传递的文件夹是文件,则直接返回其大小。最终,该方法返回总大小。

将以上方法集成到原有方法中,用于计算文件夹下所有文件和文件夹的大小总和。以下是修改后的示例代码:

private void calculateFolderSize(File folder, DefaultMutableTreeNode node) {long size = calculateTotalSize(folder);List<File> subfolders = new ArrayList<>();for (File file : folder.listFiles()) {if (file.isDirectory()) {subfolders.add(file);}}Collections.sort(subfolders);for (File subfolder : subfolders) {DefaultMutableTreeNode subnode = new DefaultMutableTreeNode(subfolder.getName());node.add(subnode);calculateFolderSize(subfolder, subnode);}node.setUserObject(node.getUserObject() + " (" + humanReadableByteCount(size, false) + ")");
}

我们可以发现大语言模型修改后的代码性能不是很好,因为calculateFolderSize方法就是一个递归方法,在这个递归方法里还要对每个文件夹再做一次递归。

我们完全可以在一次递归中完成整个计算过程。于是,我又向大语言模型重新提问:

你是一个卓越的Java程序员,把以下方法改写为计算文件下所有文件夹和文件的大小的总和,要求性能最优:

很遗憾,我虽然给大语言模型扣上了卓越的帽子,但回答仍然不理想。

只能自己动手了,把calculateFolderSize方法修改为:

private long calculateFolderSize(File folder, DefaultMutableTreeNode node) {long size = 0;Map<DefaultMutableTreeNode, Long> nodeMap = new HashMap<>();for (File file : folder.listFiles()) {if (file.isDirectory()) {DefaultMutableTreeNode subnode = new DefaultMutableTreeNode(file.getName());long subSize = calculateFolderSize(file, subnode);nodeMap.put(subnode, subSize);size += subSize;} else {size += file.length();}}List<Entry<DefaultMutableTreeNode, Long>> nodes = new ArrayList<>(nodeMap.entrySet());Collections.sort(nodes, (o1,o2)-> o2.getValue().compareTo(o1.getValue()));for (Map.Entry<DefaultMutableTreeNode, Long> entry : nodes) {node.add(entry.getKey());}node.setUserObject(node.getUserObject() + " (" + humanReadableByteCount(size, false) + ")");return size;
}

运行一下,看看效果:

结尾

自从大语言模型等AI技术在全球范围内广泛应用以来,许多人开始担忧自己是否会被AI所取代。尽管AI在众多领域展现出了惊人的能力,但要想完全替代人类,仍需克服诸多难题。

在本文中,尽管AI已经展示出较高的技术水平,但它仍然需要我的改进和优化来完成我所提供的任务。AI可以被视为一种工具,协助我解决复杂问题,提高工作效率。

因此,真正可能替代你的并非AI本身,而是那些能够熟练运用AI技术的人。

附:最终完整代码

import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;public class FolderSizeCalculator extends JFrame {private static final long serialVersionUID = 1L;private JPanel contentPane;private JButton btnSelectFolder;private JTree tree;private DefaultTreeModel treeModel;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(() -> {try {FolderSizeCalculator frame = new FolderSizeCalculator();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}});}/*** Create the frame.*/public FolderSizeCalculator() {setTitle("Folder Size Calculator");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setLayout(new BorderLayout(0, 0));setContentPane(contentPane);btnSelectFolder = new JButton("Select Folder");btnSelectFolder.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {JFileChooser fileChooser = new JFileChooser();fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);int result = fileChooser.showOpenDialog(FolderSizeCalculator.this);if (result == JFileChooser.APPROVE_OPTION) {File folder = fileChooser.getSelectedFile();DefaultMutableTreeNode root = new DefaultMutableTreeNode(folder.getName());treeModel = new DefaultTreeModel(root);tree.setModel(treeModel);calculateFolderSize(folder, root);tree.expandRow(0);}}});contentPane.add(btnSelectFolder, BorderLayout.NORTH);JScrollPane scrollPane = new JScrollPane();contentPane.add(scrollPane, BorderLayout.CENTER);tree = new JTree();scrollPane.setViewportView(tree);}private long calculateFolderSize(File folder, DefaultMutableTreeNode node) {long size = 0;Map<DefaultMutableTreeNode, Long> nodeMap = new HashMap<>();for (File file : folder.listFiles()) {if (file.isDirectory()) {DefaultMutableTreeNode subnode = new DefaultMutableTreeNode(file.getName());long subSize = calculateFolderSize(file, subnode);nodeMap.put(subnode, subSize);size += subSize;} else {size += file.length();}}List<Entry<DefaultMutableTreeNode, Long>> nodes = new ArrayList<>(nodeMap.entrySet());nodes.sort((o1, o2) -> o2.getValue().compareTo(o1.getValue()));for (Map.Entry<DefaultMutableTreeNode, Long> entry : nodes) {node.add(entry.getKey());}node.setUserObject(node.getUserObject() + " (" + humanReadableByteCount(size, false) + ")");return size;}private String humanReadableByteCount(long bytes, boolean si) {int unit = si ? 1000 : 1024;if (bytes < unit) {return bytes + " B";}int exp = (int) (Math.log(bytes) / Math.log(unit));String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i");return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);}}

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

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

相关文章

程序员躺平摸鱼指南

温馨提醒&#xff1a;本文提供的上班摸鱼指南&#xff0c;不建议经常性使用&#xff0c;以免被炒鱿鱼。 1、项目编译和debug&#xff1a;命令行界面或者IDE界面不停的刷新各种奇怪的字符&#xff0c;并把程序最大化整个屏幕&#xff0c;看起来就非常忙碌 2、假装windows或者开…

小米万兆路由器里的 Docker 安装 chatgpt-next-web,打造自己的专属ChatGPT

小米万兆路由器里的 Docker 安装 chatgpt-next-web&#xff0c;打造自己的专属ChatGPT 0. 先体验一下效果1. 准备工作2. 查看Docker Hub镜像信息3. 拉取 ChatGPT-Next-Web 镜像和运行容器4. 感谢99. (Optional)其他 小米2022年12月份发布了万兆路由器&#xff0c;里面可以使用D…

chatgpt教我内存对齐,对齐了但没完全对齐?

文章目录 内存对齐关于chatgpt的回答总结 内存对齐 关于chatgpt的回答 我与chatgpt的对话如下&#xff1a; 我现在来描述与总结上述对话都干了啥以及我为什么要问这个。 我本来是在学习rapidjson源码里面的内存池实现&#xff0c;然后 RAPIDJSON_ALIGN 没有看懂&#xff0c;…

用PostMan调用chatGPT API示例

官网:OpenAI 登录,左上角选择API Key 生成一个API key 添加请求头 添加请求体

【ChatGPT实战案例】ChatGPT如何帮助产品经理高效工作?

目录 一、使用ChatGPT梳理主要工作方向​ 二、使用ChatGPT对具体工作提供思路 1、产品规划和定位 2、市场调研和分析 2.1 进行市场研究和竞争对手分析 2.2 生成用户画像和用户配置文件 3、需求收集和整理 3.1 估客户需求和反馈 4、产品设计和开发 4.1 生成产品想法和…

【学习ChatGPT】1. 复习:Seq2Seq、Transformer、GPT

ref. https://zhuanlan.zhihu.com/p/360932588 https://zhuanlan.zhihu.com/p/611472975 目录 2014年-Seq2Seq模型2015年-注意力Seq2Seq模型Google2017年-Transformer模型: Attention is all you need注意力机制 OpenAI2018年-GPT无监督预训练&#xff1a;神经网络语言模型无监…

ChatGPT将要创造出来的新职业有哪些?

根据当前趋势和数据分析&#xff0c;基于AI和ChatGPT等技术可能创造出的十个新兴职业以及每个职业的潜在需求评分。满分10分&#xff0c;分数越高表示需求可能性越大。请注意&#xff0c;这些评分和解释是基于目前的技术发展水平和趋势。 AI训练师 - 9分&#xff1a;随着AI系统…

学会ChatGPT模型调参,让你的文章质量飞速提升(提供免费测试网站)

在阐述观点的时候&#xff0c;首先分享一个免费且无需登录即可使用&#xff0c;结合问答与绘图&#xff0c;可调节模型参数的AI&#xff08;懂的都懂,手动狗头&#xff09;公益平台&#xff1a; https://shdily.com Temperature和Top_p都是用于控制生成文本的多样性和准确性的…

王国维《人间词话》风格评析七律之冠《登高》-ChatGPT调试

杜甫先生习诗当峥嵘岁月&#xff0c;因禅静福地育天才&#xff0c;故嘉名而扬。其诗风甘露脆玉&#xff0c;让人称道。《登高》一诗&#xff0c;被誉为七言诗之首。本文谦陈顾虑&#xff0c;为诗友愚论。余不执意与常规&#xff0c;不徇情以赞叹&#xff0c;纯生为素志&#xf…

极客故事|AI Hackathon:从每一个微小的时刻开始

上周末&#xff0c;由 SegmentFault 思否和 ONES 主办&#xff0c;SegmentFault AI Hackathon 杭州站暨思否 11 周年特别活动在杭州圆满结束。大赛延续 Hack with AI, Rebuild Everything with AI 的主题&#xff0c;鼓励开发者使用 Generative AI 技术构建创新应用&#xff0c…

前沿分享|ChatGPT对于科研和学业能带来哪些帮助—来自大学生视角

正在上传…重新上传取消 ChatGPT云炬学长 2015年包括Elon Musk、Sam Altman和 Greg Brockman在内的多位工程师和研究人员共同创办了OpenAI, 公司的核心宗旨在于“实现安全的通用人工智能(AGI)”&#xff0c;使其有益于人类。就在2022年11月, OpenAI发布了ChatGPT, 它创建类似…

chat_wordpress:ChatGPT SEO 关键词批量生成内容,批量发布到 WordPress

ChatGPT是一个基于GPT-3.5架构的大型语言模型&#xff0c;由OpenAI训练。它使用深度学习技术&#xff0c;通过学习大量的文本数据&#xff0c;可以生成人类类似的自然语言文本。ChatGPT是一个非常强大的对话引擎&#xff0c;可以进行对话、回答问题、完成任务等。ChatGPT是一个…

百度被曝3月推出自家ChatGPT/ 小米全球副总裁辞职/ 苹果折叠屏iPad有消息了...今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好&#xff01;今天是1月31日&#xff01; 2023年头个月马上就过完了。&#xff08;是不是Flag都还没立起来&#xff1f;&#xff09; 那么&#xff0c;今天科技圈都在关注哪些新鲜事&#xff1f; 一起来看看。 小米全球副总裁、…

佛教生物学(Buddhist Biology):发展现状与发展战略

佛教生物学&#xff08;Buddhist Biology&#xff09;&#xff1a;发展现状与发展战略 李升伟 1.佛教生物学&#xff08;Buddhist Biology&#xff09;的概念&#xff08;内涵与外延&#xff09;是什么&#xff1f; 佛教生物学&#xff08;Buddhist Biology&#xff09;是一门…

时间基础概念及Linux中的时间函数

时间基础概念及Linux中的时间函数 时间相关概念GMT 时间UTC 时间时区 Time Zone夏令时 DST本地时间 localtime Linux 系统中的时间时钟基础概念系统节拍数 jiffiesLinux系统查看时间及配置时区获取时间函数获取 当前时间 time()获取 当前时间&#xff08;微秒&#xff09; gett…

Android Studio||gif/glide/jre包导入失败/动态效果(内含源代码

step by step. 目录 效果&#xff1a; 1.加入依赖 如果jre包导入后没有标红但是还是无法运行&#xff1a; 2.添加ImageVIew 3.效果图&#xff1a; 终于成功了qwq 效果&#xff1a; 1.加入依赖 Android studio 图片加载框架Glide介绍及使用_秀川冈坂的博客-CSDN博客在泰…

腾讯智能识别终端设备获授权;微软将推动必应商业变现;Meta减少数字藏品;高通推出首款5G物联网处理器丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 腾讯智能识别终端设备获授权 3月14日&#xff0c; 腾讯科技&#xff08;深圳&#xff09;有限公司申请的“智能识别终端”外观专利获授权。摘要显示&#xff0c;本外观设计产品用于身份核验、交易支付等&#x…

基于反馈的Query改写:你说过的,我才最懂

​一、前言 本文对之前做过一段时间的Query改写&#xff08;纠错&#xff0c;本文不严格区分这两种叫法&#xff09;做一些总结&#xff0c;算法原理可以参考亚马逊的这篇论文&#xff1a;Feedback-Based Self-Learning in Large-Scale Conversational AI Agents。 二、方法 …

朋友的身份证被骗子注册了支付宝开通了花呗,消费了三千被催债才知道花呗被盗如何处理?

自己花了就自己花了呗&#xff0c;啥叫被盗了&#xff0c;我有充分的理由怀疑你撒谎。 先来看下花呗是怎么开通的 步骤1&#xff1a;首先要在支付宝进行实名认证&#xff0c;在支付宝手机版个人信息中进行实名认证后&#xff0c;才具备基本的开通花呗的基本资格。 步骤2&…

起底51信用卡:年赚21亿涉暴力催收,子公司给714高炮导流

独角兽51信用卡和他的创始人孙海涛正陷入一场巨大的风波中。这家此前知名度局限在业内和杭州本地的互联网金融公司&#xff0c;正被推向大众视野。 今年9月以来&#xff0c;杭州警方接上级部门线索传递&#xff0c;结合日常工作发现&#xff0c;51信用卡涉及大量各地异常投诉信…