使用OpenAI ChatGPT 进行了编码尝试

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 笔记

12.pngChatGPT 是一种以类似聊天的方式进行交互的人工智能网络,从名字上看起来像是另一个“聊天机器人”,但实际上已经远超聊天的范畴了,当要求它编写一些代码时,结果相等震撼,它可以写出一些意想不到的连贯代码,而这些代码对于开发者很有启发。

开始要求它使用 JavaScript 编写一个散列(HASH)密码的函数。具体一点就是编写一个 JavaScript 函数,它接受密码的字符串输入并输出散列(HASH)密码。


function hashPassword(password) {
    return crypto.createHash("sha256").update(password).digest("hex");
}

然后逐步提高编码的难度,实现一些更加符合项目开发的需求,于是输入:

编写一个在请求正文中包含用户名和密码的 Express 路由处理程序,对密码进行哈希处理,在 MySQL 数据库中查找现有用户并检查哈希后的密码是否匹配。


const express = require("express");
const bcrypt = require("bcrypt");
const mysql = require("mysql");
// 创建 MySQL 数据库连接
const db = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "",
    database: "mydb",
});
// 连接数据库
db.connect((err) => {
    if (err) {
        throw err;
    }
    console.log("MySQL connected...");
});
// 创建 express app
const app = express();
// 路由 handler
app.post("/login", (req, res) => {
    // get username and password from request body
    const { username, password } = req.body;
    // HASH 密码
    const hashedPassword = bcrypt.hashSync(password, 10);
    // 在数据库中查找用户名称
    let sql = `SELECT * FROM users WHERE username = '${username}'`;
    let query = db.query(sql, (err, result) => {
        if (err) throw err;
        // 检查密码是否匹配
        if (bcrypt.compareSync(result[0].password, hashedPassword)) {
            res.send("Login successful!");
        } else {
            res.send("Incorrect username or password");
        }
    });
});

这段 JavaScript 代码基本是没什么问题的,可以直接复制到项目中进行调试。接下来使用别的语言来试一下:

用C语言编写一个链表结构的代码,具有根据“标识”属性在链表中添加、删除和查找节点的功能。


#include <stdio.h>
#include <stdlib.h>
// Structure for a node in the linked list
typedef struct Node {
    int identity; // Property of the node
    struct Node *next; // Pointer to the next node
} Node;
// Function to add a node to the linked list
void addNode(Node **head, int identity) {
    // Create a new node
    Node *newNode = (Node*)malloc(sizeof(Node));
    // Set the identity of the new node
    newNode->identity = identity;
    // Set the next pointer of the new node to point to the head
    newNode->next = *head;
    // Set the head to point to the new node
    *head = newNode;
}
// Function to delete a node from the linked list
void deleteNode(Node **head, int identity) {
    // Create a temporary node to traverse the linked list
    Node *temp = *head;
    // Check if the head is the node to be deleted
    if (temp != NULL && temp->identity == identity) {
        // Set the head to point to the next node
        *head = temp->next;
        // Free the memory allocated for the node
        free(temp);
        return;
    }
    // Traverse the linked list to find the node to be deleted
    while (temp != NULL && temp->identity != identity) {
        // Set the previous node to the current node
        Node *prev = temp;
        // Set the current node to the next node
        temp = temp->next;
    }
    // Check if the node was found
    if (temp == NULL) return;
    // Set the previous node to point to the next node
    prev->next = temp->next;
    // Free the memory allocated for the node
    free(temp);
}
// Function to find a node in the linked list
Node* findNode(Node *head, int identity) {
    // Create a temporary node to traverse the linked list
    Node *temp = head;
    // Traverse the linked list to find the node
    while (temp != NULL) {
        // Check if the current node has the given identity
        if (temp->identity == identity) {
            return temp;
        }
        // Set the current node to the next node
        temp = temp->next;
    }
    // Return NULL if the node was not found
    return NULL;
}
int main() {
    // Create a head node for the linked list
    Node *head = NULL;
    // Add some nodes to the linked list
    addNode(&head, 1);
    addNode(&head, 2);
    addNode(&head, 3);
    // Find a node in the linked list
    Node *node = findNode(head, 2);
    // Print the identity of the node
    printf("Node with identity 2: %d\n", node->identity);
    // Delete a node from the linked list
    deleteNode(&head, 2);
    // Find the deleted node in the linked list
    node = findNode(head, 2);
    // Check if the node was deleted
    if (node == NULL) {
        printf("Node with identity 2 was deleted\n");
    }
    return 0;
}

于是似乎开始担心未来的程序员,对于AI的机器学习能力,肯定是强于人类的。一个程序员宝贵的职业生涯就算 20 年,就假设这个程序员在职业生涯中相当勤奋好学,可AI应该可以通过学习收集全世界所有程序员的经验!人脑无法与在极其庞大的数据集上训练有素的 AI 模型的计算能力相提并论。未来是不是有可能程序员通过AI把自己这个职业淘汰掉!


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
人工智能 机器人 API
D1net阅闻|ChatGPT、Sora又宕机 OpenAI:由上游提供商引起 仍在修复
D1net阅闻|ChatGPT、Sora又宕机 OpenAI:由上游提供商引起 仍在修复
|
人工智能 自然语言处理 机器人
OpenAI推出具有图像上传和分析功能的完整o1模型,并首次推出ChatGPT Pro
OpenAI推出具有图像上传和分析功能的完整o1模型,并首次推出ChatGPT Pro
|
人工智能 搜索推荐 iOS开发
OpenAI推出适用于iPhone的ChatGPT,与Apple实现具有里程碑意义的AI整合
OpenAI推出适用于iPhone的ChatGPT,与Apple实现具有里程碑意义的AI整合
|
前端开发 机器人 UED
OpenAI启动ChatGPT Projects,让你可以组织文件、分组聊天
OpenAI启动ChatGPT Projects,让你可以组织文件、分组聊天
|
人工智能 自然语言处理 算法
【通义】AI视界|OpenAI最新发布!ChatGPT搜索功能强势来了,挑战谷歌?
本文由【通义】自动生成,精选24小时内的重要资讯:OpenAI推出ChatGPT搜索功能挑战谷歌,微软披露130亿美元投资OpenAI,Reddit首次盈利股价暴涨20%,软银CEO孙正义看好英伟达及“超级AI”前景,谷歌云与沙特PIF共建全球AI中心。更多内容请访问通通知道。
|
人工智能 搜索推荐 机器人
OpenAI 将向企业开放 GPT-4o 模型定制版,国内怎么使用ChatGPT?
OpenAI新推功能让企业客户能定制GPT-4o模型,通过微调技术满足特定需求和业务场景,以前所未有的方式优化AI投资回报。企业上传自有数据后,可在一到两小时内完成模型定制,如滑板公司打造专业客服聊天机器人解答详细问题,大幅提升服务针对性与客户体验。目前定制限于文本数据,但仍显著增强了企业应用AI的灵活性与效率。
534 2
OpenAI 将向企业开放 GPT-4o 模型定制版,国内怎么使用ChatGPT?
|
人工智能 监控 数据挖掘
普华永道和OpenAI达成合作协议,成为首个ChatGPT Enterprise的转售商
普华永道和OpenAI达成合作协议,成为首个ChatGPT Enterprise的转售商
普华永道和OpenAI达成合作协议,成为首个ChatGPT Enterprise的转售商
|
人工智能 自然语言处理 程序员
使用 go-openai 轻松调用 chatGPT:释放无限创造力!
使用 go-openai 轻松调用 chatGPT:释放无限创造力!
|
人工智能 iOS开发 MacOS
[译][AI OpenAI] 引入 GPT-4o 及更多工具至免费版 ChatGPT 用户
我们推出了最新的旗舰模型 GPT-4o,并为免费版 ChatGPT 用户提供更多功能,包括更快的速度、改进的文本、语音和视觉能力,以及新的桌面应用程序和简化的界面。
[译][AI OpenAI] 引入 GPT-4o 及更多工具至免费版 ChatGPT 用户
|
人工智能 程序员
ChatGPT无法取代人类程序员! IEEE 35页论文测出困难编码正确率仅为0.66%
【7月更文挑战第20天】IEEE 35页论文揭示ChatGPT在复杂编码任务上的正确率仅0.66%,表明大型语言模型虽能生成语法正确代码,但在逻辑和可读性上不及人类程序员。研究强调AI在深度领域知识与推理上的局限性,提示AI辅助而非替代的角色。[链接:https://ieeexplore.ieee.org/document/10507163]
246 2

热门文章

最新文章