Tôi đã yêu cầu ChatGPT viết một plugin WordPress mà tôi cần. Nó hoàn thành trong chưa đầy 5 phút

gettyimages-1246766124.jpg

Không muốn quá tỉ mỉ nhưng tôi cảm thấy hơi hoang mang. Như là một thí nghiệm, tôi đã yêu cầu ChatGPT viết một plugin có thể giúp vợ tôi tiết kiệm thời gian khi quản lý trang web của mình. Tôi viết mô tả ngắn và ChatGPT đã viết toàn bộ: giao diện người dùng, logic và tất cả.

Trong vòng không đến năm phút.

Cũng có: Những chatbot AI tốt nhất: ChatGPT và những lựa chọn thú vị khác để thử

Có những hệ quả. Chúng ta sẽ tìm hiểu điều đó trong một vài phút. Trước tiên, hãy để tôi giới thiệu cho bạn trải nghiệm và những điều đã xảy ra.

Nhu cầu

line-randomizer-paypal-demo-wordpress-2023-01-31-23-41-28.jpg

Vợ tôi là chủ sở hữu của một trang web thương mại điện tử dựa trên WordPress tập trung vào một sở thích phổ biến. Cô ấy cũng quản lý một nhóm Facebook rất sôi động dành cho khách hàng của trang web. Mỗi tháng, cô ấy sẽ tạo ra một danh sách tên được ngẫu nhiên hoá, và sau đó sử dụng danh sách này trong một hiệu ứng quay vòng bằng cách sử dụng một bánh xe ảo cho nhóm Facebook. Cô ấy đã sử dụng một trang web trên Internet để làm công việc ngẫu nhiên hóa danh sách một cách tương đối tốt, nhưng giá phải trả để xuất danh sách đó cao hơn giá trị thực sự.

Cũng: Liệu AI có thể giúp chúng ta tránh ChatGPT không? Tôi đã thử 3 công cụ trực tuyến để tìm hiểu

Khi tôi nhìn cô ấy vật lộn để lấy lại những tên ngẫu nhiên, tôi nghĩ rằng có lẽ nên viết một plugin WordPress nhanh chóng để cài đặt trên trang web của cô ấy. Cô ấy thường truy cập vào bảng điều khiển hàng ngày, vì vậy có một công cụ như vậy sẽ hữu ích.

Nhưng ngay cả một plugin đơn giản cũng mất tôi vài ngày để viết, với các phần giao diện người dùng và mã logic, và tôi đang bận rộn với các dự án trong thời gian này.

Và sau đó tôi nghĩ đến ChatGPT. Có một số cuộc thảo luận về ChatGPT như một công cụ lập trình trên các phương tiện truyền thông, nên tôi quyết định thử nó.

Yêu cầu

Chìa khóa để có ChatGPT tạo ra bất cứ điều gì là một đề bài được viết cẩn thận. Trong trường hợp lập trình, hãy tưởng tượng mình là một người quản lý hoặc khách hàng. Bạn phải rõ ràng mô tả những gì bạn cần để có được những gì bạn muốn. Tôi bắt đầu bằng một đề bài cực kỳ cơ bản, chỉ để xem nó có hoạt động hay không. Dưới đây là đề bài mà tôi đã sử dụng:

hình mã

Viết một plugin WordPress tương thích PHP 8, cung cấp một trường nhập văn bản nơi có thể dán một danh sách các dòng vào đó và một nút nhấn, khi nhấn vào đó, sẽ xáo trộn các dòng trong danh sách và hiển thị kết quả trong một trường nhập văn bản thứ hai.

Chỉ trong một phút, nó tạo ra mã bạn thấy bên phải. Tôi đã sao chép mã đã tạo vào một tệp .php, đặt nó vào một thư mục có cùng tên gốc với tệp .php, nén nó và tải lên máy chủ của cô ấy. Nó hoạt động.

Cũng có: Các hacker Nga đang cố gắng xâm nhập vào ChatGPT, theo Check Point

Khi tôi cho thấy nó cho vợ tôi, cô ấy đã ấn tượng và ngạc nhiên một cách thích hợp. Nhưng sau đó, ý tưởng đã bắt đầu xoay vòng và cô ấy yêu cầu một tính năng mới: đảm bảo tên trùng lặp không được đặt cạnh nhau.

Đối với ứng dụng của cô ấy, đôi khi cô ấy sẽ cần liệt kê tên của một người nhiều lần trên danh sách. Nhưng cô ấy không muốn những bản sao đó tập trung với nhau.

Tôi đã sửa đổi câu hỏi ban đầu của mình, thêm vào những điều kiện bổ sung sau đây:

...đảm bảo rằng không có hai mục giống nhau liền kề (trừ khi không còn cách nào khác)...với số dòng được gửi đi và số dòng trong kết quả giống nhau.

Tôi đã bao gồm cụm từ "trừ khi không còn lựa chọn nào khác" và yêu cầu về số lượng giống nhau vì tôi muốn đảm bảo rằng tất cả các tên đều được bao gồm và tôi lo lắng rằng nó sẽ ưu tiên việc không có hai tên liền kề nhau hơn việc giữ toàn bộ danh sách tên.

Vài giây sau, tôi đã có một plugin mới. Tôi tải lên máy chủ và thử nghiệm. Nó hoạt động, nhưng kết quả bao gồm một số dòng trống. Vì vậy, tôi đã thêm điều kiện này vào lệnh trước đó:

... mà không có các dòng trống...

Ngay bây giờ, tôi đã tập quen với thời gian phản hồi, luôn dưới 1 phút. Một lần tải lên và kiểm tra nữa, và lại, nó hoạt động.

Cũng cần lưu ý: Cách sử dụng ChatGPT

Tôi muốn thêm một tính năng cuối cùng, chỉ để xác nhận có bao nhiêu dòng đã được xử lý. Tôi muốn plugin hiển thị số lượng dòng cho các trường nhập và xuất. Dưới đây là phần bổ sung đó:

...Dưới trường đầu tiên, hiển thị văn bản "Dòng để làm ngẫu nhiên: " với số dòng không trống trong trường nguồn. Dưới trường thứ hai, hiển thị văn bản "Các dòng đã được làm ngẫu nhiên: " với số dòng không trống trong trường đích.

Điều này đã hoạt động, phần lớn. Trước khi chạy, trường đầu ra chỉ hiển thị một dòng. Nhưng sau khi quá trình ngẫu nhiên hoàn thành, nó hiển thị đúng số dòng trong cả hai trường.

Chất lượng mã nguồn

Tổng thể, chất lượng mã nguồn đã rất tốt. Tôi chỉ hiển thị phản hồi gốc vì nếu không, nó sẽ không phù hợp trong bài viết. Chương trình đã đúng cách tạo ra khối tiêu đề của WordPress và viết giao diện người dùng bảng điều khiển cho plugin, cũng như xử lý logic của plugin.

Nó đã đặt những dòng tóm tắt của tôi phía trên các trường dữ liệu, dù tôi đã chỉ định ở dưới, nhưng đó không phải là một phàn nàn lớn. Đó là cùng loại lỗi mà một khách hàng có thể nhận từ một nhà thầu con người, và sau đó yêu cầu một chút công việc sửa chữa để khắc phục.

Cũng vậy: Công cụ viết AI của Notion có thể viết bài này được không?

Hệ thống mã đã hoạt động, nhưng nó không tích hợp đầy đủ tất cả các best practice cho lập trình WordPress. Ví dụ, nó không khử trùng dữ liệu nhập từ người dùng. Cộng đồng WordPress luôn coi trọng việc khử trùng dữ liệu đầu vào để ngăn chặn hacker đưa dữ liệu gây hỏng trang web — và hệ thống mã này không có điều đó.

Như một bài kiểm tra sau đó, tôi đã chỉ dẫn AI khử trùng đầu vào, và nó đã... tới một mức độ. Nó đã khử trùng đầu vào bên trong hàm PHP, nhưng nó không khử trùng đầu vào khi gọi PHP trong HTML. Điều đó nhất định đã tạo ra một cơ hội cho những kẻ tấn công.

Nó cũng đặt mục menu của plugin vào phần Cài đặt. Tôi có thể sẽ đặt nó dưới phần Công cụ hoặc tạo một mục menu riêng cho tính năng này. Vì tôi không chỉ định nơi nó nên được triệu gọi từ, tôi nghĩ ChatGPT đã đưa ra một quyết định khá hợp lý khi đặt mục menu ở nơi hiện tại.

Tôi đã thêm một yêu cầu cuối cùng vào yêu cầu của mình, yêu cầu trí tuệ nhân tạo đặt tên cho plugin:

Viết một plugin WordPress tương thích với PHP 8, gọi là "Robo Randomizer", mà...

Rất kỳ lạ là, trí tuệ nhân tạo đã cung cấp cho tôi một plugin hoàn toàn khác, tạo ra một plugin cung cấp mã viết tắt thay vì giao diện dashboard. Hãy để tôi giải thích điều đó cho người dùng WordPress khác, vì nó rất thú vị.

Khi viết một cái gì đó như thế này, bạn có thể làm cho nó có sẵn trên trang web cho khách truy cập (gọi là phần giao diện frontend) hoặc cho những người đăng nhập vào bảng điều khiển của trang web để duy trì phần bên (gọi là phần backend). Trong tập lệnh ban đầu của tôi, tôi không chỉ định rõ frontend hay backend, nhưng trí tuệ nhân tạo đã viết đúng những gì tôi muốn, đó là một giao diện backend, bảng điều khiển cho công cụ.

Ngoài ra: OpenAI đang tuyển dụng các nhà phát triển để cải thiện khả năng viết code của ChatGPT

Nhưng lần này, nó quyết định viết plugin như một công cụ frontend, thực hiện thông qua một shortcode. Trong WordPress, bạn có thể nhúng shortcode (tương tự như [randomize lines]) vào một bài viết và nó sẽ chạy mã trong một plugin. Phiên bản cuối cùng mà trí tuệ nhân tạo tạo ra đã cho tôi một shortcode như vậy, sẽ cho phép tính năng randomize lines được trình bày cho các khách truy cập trang web.

Sau đó, ChatGPT hơi mất đường rồi. Tôi không thể thêm tính năng bổ sung vào phiên bản gốc của plugin và ChatGPT chủ yếu chỉ lặp lại việc tạo ra phiên bản rút gọn. Rõ ràng, việc bảo trì mã nguồn không phải là một điểm mạnh của ChatGPT.

Hậu quả

Rõ ràng, đây là một tiện ích đơn giản. Kích thước của nó xấp xỉ như các bài tập mà tôi đã giao cho sinh viên năm đầu học lập trình khi tôi dạy tại UC Berkeley. Nó không đạt đến sự phức tạp của các tiện ích mã nguồn mở WordPress lớn hơn rất nhiều mà tôi duy trì cho hơn 50.000 người dùng.

Cũng: Với chatbot AI, liệu chúng ta có đang tìm câu trả lời ở những nơi sai lầm?

Trong tuần trước, khi tôi lần đầu sử dụng ChatGPT để xây dựng plugin nhanh cho vợ tôi và tweet về điều đó, người theo dõi trên mạng xã hội của tôi đã phản đối. Dưới đây là một số lo ngại của họ:

Nó có xấu xa không? Một người lo lắng rằng trí tuệ nhân tạo sẽ nhúng thông tin độc hại (hoặc ít nhất là quảng cáo) trong plugin và người dùng không là lập trình viên sẽ không bao giờ biết. Nhưng thực tế là, nếu bạn không phải là người viết mã và không thể đọc mã, thì ngay cả khi bạn có hợp đồng với một con người khác, bạn cũng không thực sự biết những gì bên trong. Tất cả đều phụ thuộc vào việc tin cậy vào uy tín hoặc nhờ ai đó mà bạn tin tưởng nhìn qua mã. Trong trường hợp của mã được sản xuất trong cuộc thử nghiệm của tôi, nó rất sạch sẽ.

Điều đó có phải là tốt nhất nó có thể? Ở đây, mọi người đang so sánh mã AI với một tiêu chuẩn khác ngay cả so với các lập trình viên con người. Tôi là một lập trình viên giỏi, nhưng mã của tôi có lỗi. Nó không thể là tốt nhất nó có thể được ... ít nhất là ban đầu. Nhưng với con người, mã sẽ trở nên tốt hơn theo thời gian. Tôi không biết liệu một AI có thể lấy mã hiện có, cải thiện, gỡ lỗi và nâng cao nó hay không. Tuy nhiên, đôi khi chỉ cần để mọi thứ hoạt động. Không phải lúc nào cũng quan trọng nó có phải là tốt nhất trong những tốt nhất. Đủ tốt thường là đủ tốt. Và nó đã sinh ra mã đủ tốt.

Liệu nó có giảm số lượng công việc lập trình của con người? Hầu như không thể chối cãi. Tôi không thích thấy máy tính lấy đi công việc của bất kỳ ai (đặc biệt là nếu đó là một công việc mà tôi có thể muốn). Trí tuệ nhân tạo nhất định là một lựa chọn cho các dự án nhanh và dễ dàng, dù đó là viết văn bản hay lập trình. Lương của mọi người sẽ bị ảnh hưởng, không còn nghi ngờ gì.

Tôi đã nghiên cứu trí tuệ nhân tạo (AI) trong nhiều thập kỷ. Tôi đã làm luận văn về AI. Nhưng dù có toàn bộ kiến thức đó, sự bùng nổ về trí tuệ nhân tạo sinh sản chất lượng cao đã làm tôi ngạc nhiên. Tuy nhiên, nhìn vào hiện tại, chúng ta đang đạt được một mức độ sản xuất "đủ tốt". Thật không may, đó là điều mà nhiều khách hàng đòi hỏi.

Tuy nhiên - ít nhất là trong thời điểm hiện tại - ChatGPT và các bạn của nó không thể viết được các bài phân tích chi tiết như thế này, vì chúng phản ánh ý kiến, giai thoại và nhiều năm kinh nghiệm. Và trong khi chúng có thể viết các tiến trình con và hàm cho các dự án lập trình lớn hơn, chúng không thể viết được các dự án lập trình quan trọng.

Cũng có: Demo đối thủ của Google ChatGPT gặp sự cố

Ví dụ, trong suốt năm vừa qua, tôi đã phải tham gia 20-30 cuộc họp với một nhà cung cấp API lớn để tích hợp dịch vụ của họ vào dự án của tôi. Hầu hết các cuộc họp đó kết hợp giữa các vấn đề kinh doanh, yêu cầu kỹ thuật và chính sách cấp phép. Tôi thách thức bất kỳ trí tuệ nhân tạo nào để có thể chịu đựng, hiểu rõ các yếu tố tinh vi và đáp ứng yêu cầu đối tác trong tình huống văn phòng phẩm và sau đó tạo ra các mô-đun mã mà mọi người có thể đồng ý.

Vâng, tôi hơi hoảng hốt khi thấy rằng plugin mà tôi "tạo" cho vợ tôi lại hoạt động tốt như vậy. Nhưng trí tuệ nhân tạo còn một quãng đường dài phải đi trước khi có thể thay thế các nhà phát triển và nhà văn có kinh nghiệm - miễn là khách hàng muốn những tác phẩm mà các nhà phát triển và nhà văn có kinh nghiệm tạo ra. Và điều đó, các bạn của tôi, là điều mà tôi lo lắng.

Bài viết liên quan

Xem thêm >>

Khai phá sức mạnh của AI với HIX.AI!