Cách dùng ChatGPT để viết code

image1.pngMột trong những khám phá hấp dẫn hơn về ChatGPT là nó có thể viết mã khá tốt. Tôi đã thử nghiệm điều này vào tháng Hai khi tôi yêu cầu nó viết một plugin WordPress mà vợ tôi có thể sử dụng trên trang web của cô ấy. Nó đã làm một công việc tốt, nhưng đó là một dự án rất đơn giản.

Cách sử dụng ChatGPT để viết: Sơ yếu lý lịch| Công thức Excel | tiểu luận | Thư xin việc

Làm cách nào bạn có thể sử dụng ChatGPT để viết mã như một phần trong quá trình thực hành viết mã hàng ngày của mình? Đó là những gì chúng ta sẽ khám phá ở đây.

ChatGPT có thể làm tốt những loại mã hóa nào?

Có hai thông tin quan trọng về ChatGPT và mã hóa. Đầu tiên là trên thực tế, nó có thể viết mã hữu ích. Thứ hai là nó có thể bị lạc hoàn toàn, rơi xuống hố thỏ, đuổi theo đuôi của chính mình và tạo ra rác hoàn toàn không sử dụng được.

Tôi phát hiện ra điều này một cách khó khăn. Sau khi tôi hoàn thành plugin WordPress, tôi quyết định xem ChatGPT có thể đi được bao xa. Tôi đã viết ra một lời nhắc rất cẩn thận cho một ứng dụng Mac, bao gồm các mô tả chi tiết về các thành phần giao diện người dùng, tương tác, những gì sẽ được cung cấp trong cài đặt, cách chúng hoạt động, v.v. Sau đó, tôi đưa nó vào ChatGPT.

ChatGPT đã phản hồi bằng một loạt văn bản và mã. Sau đó, nó dừng lại giữa mã. Khi tôi yêu cầu nó tiếp tục, nó thậm chí còn nôn ra nhiều mã và văn bản hơn. Tôi đã yêu cầu tiếp tục sau khi tiếp tục và nó ngày càng tạo ra nhiều mã hơn. Nhưng... không cái nào có thể sử dụng được . Nó không xác định nơi mã sẽ đi, cách xây dựng dự án và -- khi tôi xem xét kỹ mã được tạo ra -- nó đã bỏ qua các hoạt động chính mà tôi yêu cầu, để lại các mô tả bằng văn bản đơn giản cho biết "logic chương trình ở đây. "

Sau một loạt các thử nghiệm lặp đi lặp lại, tôi thấy rõ rằng nếu bạn yêu cầu ChatGPT cung cấp một ứng dụng hoàn chỉnh, nó sẽ không thành công. Một hệ quả tất yếu của quan sát này là nếu bạn không biết gì về mã hóa và muốn ChatGPT xây dựng cho bạn thứ gì đó, nó sẽ thất bại.

Điểm thành công của ChatGPT -- và đã làm rất tốt -- là giúp những người đã biết cách viết mã xây dựng các quy trình cụ thể và hoàn thành các nhiệm vụ cụ thể. Đừng yêu cầu một ứng dụng chạy trên thanh menu. Nhưng nếu bạn yêu cầu ChatGPT tạo thói quen đặt một menu trên thanh menu, sau đó dán nó vào dự án của bạn, thì mọi việc sẽ diễn ra khá tốt.

Ngoài ra: Cách sử dụng ChatGPT để tạo ứng dụng

Ngoài ra, hãy nhớ rằng mặc dù ChatGPT dường như có một lượng kiến thức khổng lồ về miền cụ thể (và nó thường như vậy), nhưng nó lại thiếu sự khôn ngoan . Như vậy, nó có thể viết mã, nhưng nó sẽ không thể viết mã chứa các sắc thái cho các vấn đề rất cụ thể hoặc phức tạp đòi hỏi kinh nghiệm sâu sắc để hiểu.

Sử dụng ChatGPT để giới thiệu các kỹ thuật, viết các thuật toán nhỏ và tạo chương trình con. Bạn thậm chí có thể yêu cầu ChatGPT giúp bạn chia nhỏ một dự án lớn hơn thành nhiều phần và sau đó bạn có thể yêu cầu ChatGPT giúp bạn viết mã các phần đó.

Vì vậy, với ý nghĩ đó, chúng ta hãy xem xét một số bước cụ thể về cách sử dụng ChatGPT để viết mã.

Cách ChatGPT có thể giúp bạn viết mã

1. Thu hẹp và tăng cường yêu cầu của bạn

Bước đầu tiên này là quyết định xem bạn sẽ hỏi gì về ChatGPT -- nhưng chưa hỏi bất cứ điều gì. Quyết định những gì bạn muốn chức năng hoặc quy trình của mình thực hiện hoặc những gì bạn muốn tìm hiểu để kết hợp vào mã của mình. Quyết định các tham số bạn sẽ chuyển vào mã của mình và những gì bạn muốn thoát ra. Và sau đó nhìn vào cách bạn sẽ mô tả nó.

Hãy tưởng tượng bạn đang trả tiền cho một lập trình viên để làm việc này. Bạn có cung cấp cho người đó đủ thông tin để có thể thực hiện nhiệm vụ của mình không? Hay bạn quá mơ hồ và người mà bạn đang trả tiền có nhiều khả năng sẽ đặt câu hỏi hoặc đưa ra một thứ hoàn toàn không liên quan đến những gì bạn muốn?

Đây là một ví dụ. Giả sử tôi muốn có thể tóm tắt bất kỳ trang web nào. Tôi muốn cung cấp cho nó một cái gì đó giống như bài viết này và nhận lại một bản tóm tắt ngắn được cân nhắc kỹ lưỡng và phù hợp. Là đầu vào của tôi, tôi sẽ chỉ định một URL trang web. Đầu ra của tôi là một khối văn bản với phần tóm tắt.

2. Sử dụng ChatGPT để khám phá các thư viện và tài nguyên

Tiếp tục với ví dụ trên, một cách rất cũ để trích xuất dữ liệu trang web là tìm văn bản giữa các thẻ đoạn HTML.

Nhưng với sự gia tăng của các công cụ AI, sẽ hợp lý hơn khi sử dụng thư viện AI để thực hiện trích xuất và tóm tắt thông minh. Một trong những điểm vượt trội của ChatGPT (và đó cũng là lĩnh vực bạn có thể dễ dàng xác minh để tránh kiểu hành vi có thẩm quyền nhưng sai của nó) là tìm thư viện và tài nguyên.

OpenAI (nhà sản xuất ChatGPT) bán quyền truy cập API cho các công cụ GPT-3 và GPT-4 sẽ thực hiện chính xác những gì chúng tôi muốn. Nhưng trong trường hợp của ví dụ này, giả sử chúng ta không muốn trả phí giao dịch.

Vì vậy, hãy xem xét việc tương tác với ChatGPT để tìm hiểu cách sử dụng miễn phí một công cụ như vậy với một dự án chạy bằng PHP.

Tôi bắt đầu với lời nhắc được thiết kế để thu thập thông tin về thư viện nào sẽ cung cấp chức năng mà tôi muốn. Thư viện (dành cho những người bạn đọc không phải là lập trình viên) là một phần mã mà lập trình viên có thể truy cập để thực hiện nhiều công việc nặng nhọc cho một mục đích cụ thể. Một phần quan trọng của lập trình hiện đại là tìm và chọn thư viện phù hợp. Vì vậy, đây là một điểm khởi đầu tốt.

Trong trường hợp này, tôi đang xem các khối mã do người khác viết để tóm tắt văn bản. Đây là lời nhắc đầu tiên của tôi:

Mô tả mười thư viện AI mã nguồn mở khác nhau (và ngôn ngữ mà chúng hoạt động) mà tôi có thể sử dụng để tạo bản tóm tắt nội dung cốt lõi chính của bất kỳ trang web nào, bỏ qua mọi quảng cáo hoặc tài liệu nhúng.

Điều này mang lại cho tôi chính xác những gì tôi muốn, bao gồm cả việc đề cập đến các dịch vụ của OpenAI. Tôi nghĩ OpenAI sẽ hoạt động tốt ở đây, nhưng đối với dự án giả định này, tôi không muốn lập ngân sách cho phí API. Vì vậy, tôi sẽ thu hẹp câu hỏi.

Có bất kỳ trong số này miễn phí?

ChatGPT đã bảo hiểm rủi ro cho các vụ cá cược của mình bằng câu trả lời của nó. Đây là những gì nó nói: "Vâng, tất cả mười thư viện AI này đều là mã nguồn mở và miễn phí sử dụng. Tuy nhiên, một số trong số chúng có thể có giới hạn sử dụng hoặc yêu cầu thanh toán để truy cập vào các tính năng hoặc tài nguyên bổ sung." Vì vậy, dựa trên đó, tôi đã làm rõ truy vấn của mình.

Thư viện nào trong số những thư viện này không có giới hạn sử dụng và không yêu cầu bất kỳ khoản thanh toán hoặc giấy phép bổ sung nào?

Lưu ý rằng đây là một cuộc trò chuyện rất nhiều. Tôi không phải hỏi lại câu hỏi ban đầu. Tôi chỉ đang đi sâu vào vấn đề giống như cách mà tôi có thể làm nếu tôi có một chuyên gia trong tay và đang tìm kiếm sự làm sáng tỏ. Trong trường hợp này, ChatGPT đã cho tôi tám lựa chọn thư viện, nhưng không có lựa chọn nào đề cập đến ngôn ngữ PHP mà tôi dự định viết mã. Vì vậy, đây là lời nhắc tiếp theo:

Trong số 8 thư viện đó, tôi có thể sử dụng thư viện nào với PHP không?

Nó trả về ba thư viện, nhưng tôi không chắc mỗi thư viện đã làm gì. Vì vậy, một câu hỏi khác:

Sự khác biệt giữa Sumy, Gensim và NLTK là gì?

Tôi vẫn không chắc chắn, vì vậy tôi làm rõ kế hoạch sử dụng của mình rồi hỏi:

Nếu tôi muốn tạo bản tóm tắt các bài báo trên trang web, thư viện nào sẽ hoạt động tốt hơn?

Câu trả lời mà tôi nhận được rất rõ ràng và đầy hứa hẹn: "Sumy được thiết kế đặc biệt để tóm tắt văn bản, có nhiệm vụ tạo một bản tóm tắt nắm bắt thông tin quan trọng nhất từ một đoạn văn bản." Vì vậy, bây giờ là lúc để xem những gì liên quan đến việc sử dụng nó với PHP. Tôi đã hỏi câu hỏi cuối cùng của mình cho phần này của dự án:

Bạn có thể giải thích cách sử dụng Sumy từ PHP không?

Vui lòng chơi trên máy tính của bạn và dán các lời nhắc này vào phiên bản ChatGPT của bạn. Lưu ý rằng, ở bước 1, tôi đã quyết định mô-đun chương trình nào tôi sẽ nhận trợ giúp. Sau đó, trong bước này, tôi đã trò chuyện với ChatGPT để quyết định sử dụng thư viện nào và cách tích hợp nó vào dự án của mình.

Điều đó có vẻ không giống như lập trình, nhưng tôi đảm bảo với bạn là như vậy. Lập trình không chỉ là viết các dòng mã lên một trang. Lập trình là tìm cách tích hợp tất cả các tài nguyên và hệ thống khác nhau lại với nhau và cách giao tiếp với tất cả các thành phần khác nhau trong giải pháp của bạn. Ở đây, ChatGPT đã giúp tôi thực hiện phân tích tích hợp đó.

Nhân tiện, tôi tò mò liệu Bard của Google có thể trợ giúp theo cách tương tự hay không. Bard thực sự không thể viết mã, nhưng nó đã cung cấp thêm một số thông tin chi tiết về khía cạnh lập kế hoạch của chương trình dựa trên các phản hồi của ChatGPT. Vì vậy, đừng ngần ngại sử dụng nhiều công cụ để sắp xếp các câu trả lời mà bạn muốn. Đây là câu chuyện đó: Bard so với ChatGPT: Bard có thể giúp bạn viết mã không? Kể từ khi tôi viết bài báo đó, Google đã bổ sung một số khả năng viết mã cho Bard, nhưng chúng không hoàn toàn tuyệt vời. Bạn có thể đọc về nó ở đây: Tôi đã thử nghiệm các kỹ năng viết mã mới của Google Bard. Nó đã không diễn ra tốt đẹp.

Mã hóa là tiếp theo.

3. Yêu cầu ChatGPT viết mã ví dụ

Được rồi, chúng ta hãy tạm dừng ở đây. Bài viết này có tựa đề "Cách sử dụng ChatGPT để viết mã." Và nó sẽ! Nhưng chúng tôi thực sự đang yêu cầu ChatGPT viết mã ví dụ . Chờ đợi. Cái gì?

Ngoài ra: GPT-4 là gì? Đây là tất cả những gì bạn cần biết

Chúng ta hãy rõ ràng. Trừ khi bạn đang viết một hàm rất nhỏ (như trình sắp xếp dòng/bộ ngẫu nhiên mà ChatGPT đã viết cho vợ tôi), ChatGPT sẽ không thể viết mã cuối cùng của bạn. Đầu tiên, bạn sẽ phải duy trì nó. ChatGPT rất tệ trong việc sửa đổi mã đã viết. Kinh khủng, như trong, nó không làm điều đó. Vì vậy, để nhận được mã mới, bạn phải yêu cầu ChatGPT tạo mã mới. Như tôi đã tìm thấy trước đây, ngay cả khi lời nhắc của bạn hầu như giống hệt nhau, ChatGPT có thể thay đổi những gì nó mang lại cho bạn theo những cách rất bất ngờ.

Vì vậy, điểm mấu chốt: ChatGPT không thể duy trì mã của bạn hoặc thậm chí chỉnh sửa nó.

Điều đó có nghĩa là bạn phải tự làm điều đó. Như chúng ta biết, bản nháp đầu tiên của một đoạn mã hiếm khi là mã cuối cùng. Vì vậy, ngay cả khi bạn mong đợi ChatGPT tạo mã cuối cùng, thì đó thực sự sẽ là điểm khởi đầu, điểm mà bạn cần hoàn thành, tích hợp mã đó vào dự án lớn hơn của mình, kiểm tra mã, tinh chỉnh mã, gỡ lỗi, v.v. .

Ngoài ra: Tôi đã yêu cầu ChatGPT viết một tập phim Star Trek ngắn. Nó thực sự đã thành công

Nhưng điều đó không có nghĩa là mã ví dụ là vô giá trị. Cách xa nó. Hãy xem lời nhắc mà tôi đã viết dựa trên dự án mà tôi đã mô tả trước đó. Đây là phần đầu tiên:

Viết một hàm PHP có tên là summary_article.

Là đầu vào, summary_article sẽ được chuyển một URL tới một bài báo trên trang web liên quan đến tin tức như ZDNET.com hoặc Reuters.com.

Tôi đang nói với ChatGPT ngôn ngữ lập trình mà nó nên sử dụng. Tôi cũng đang cho nó biết thông tin đầu vào, nhưng trong khi làm như vậy, tôi cung cấp hai trang web làm mẫu để giúp ChatGPT hiểu phong cách bài viết. Thành thật mà nói, tôi không chắc ChatGPT đã không bỏ qua một chút hướng dẫn đó. Tiếp theo, tôi sẽ cho nó biết cách thực hiện phần lớn công việc:

Bên trong summary_article, truy xuất nội dung của trang web tại URL được cung cấp. Sử dụng thư viện Sumy từ bên trong PHP và bất kỳ thư viện cần thiết nào khác, trích xuất nội dung chính của bài viết, bỏ qua mọi quảng cáo hoặc tài liệu nhúng và tóm tắt bài viết trong khoảng 50 từ. Hãy chắc chắn rằng bản tóm tắt bao gồm các câu hoàn chỉnh. Bạn có thể vượt quá 50 từ để hoàn thành câu cuối cùng, nếu cần.

Điều này rất giống với cách tôi hướng dẫn nhân viên. Tôi muốn người đó biết rằng họ không chỉ giới hạn ở Sumy. Nếu họ cần một công cụ khác, tôi muốn họ sử dụng nó.

Tôi cũng đã chỉ định một số từ gần đúng để tạo giới hạn cho những gì tôi muốn dưới dạng tóm tắt. Phiên bản mới hơn của quy trình có thể lấy số đó làm tham số. Sau đó tôi đã kết thúc bằng cách nói những gì tôi muốn như một kết quả:

Khi quá trình xử lý hoàn tất, hãy viết mã summary_article để nó trả về bản tóm tắt ở dạng văn bản thuần túy.

Mã kết quả là khá đơn giản. ChatGPT đã gọi một thư viện khác (Goose) để truy xuất nội dung bài viết. Sau đó, nó chuyển điều đó cho Summy với giới hạn 50 từ, rồi trả về kết quả. Đó là nó. Nhưng một khi những điều cơ bản được viết ra, vấn đề chỉ là lập trình để quay lại và thêm các chỉnh sửa, tùy chỉnh những gì được chuyển đến hai thư viện và cung cấp kết quả.image2.png

Một điểm lưu ý thú vị. ChatGPT đã tạo một lệnh gọi mẫu cho quy trình mà nó đã viết, sử dụng một URL từ sau năm 2021 (khi tập dữ liệu của ChatGPT kết thúc).

Tôi đã kiểm tra URL đó với cả trang web của Reuters và Wayback Machine, và nó không tồn tại. ChatGPT vừa được tạo ra.

câu hỏi thường gặp

ChatGPT có thay thế lập trình viên không?

Không phải bây giờ - hoặc, ít nhất - chưa. Lập trình ChatGPT ở trình độ của một sinh viên năm nhất tài năng lập trình, nhưng nó lười (như sinh viên năm nhất ấy). Nó có thể làm giảm nhu cầu đối với các lập trình viên mới bắt đầu, nhưng ở cấp độ hiện tại, tôi nghĩ nó sẽ giúp cuộc sống của các lập trình viên mới bắt đầu (và thậm chí cả những lập trình viên có nhiều kinh nghiệm hơn) viết mã và tra cứu thông tin trở nên dễ dàng hơn. Nó chắc chắn là một công cụ tiết kiệm thời gian, nhưng có rất ít dự án lập trình mà nó có thể tự thực hiện -- ít nhất là bây giờ. Vào năm 2030? Ai biết.

Làm cách nào để nhận câu trả lời mã hóa trong ChatGPT?

Chỉ cần hỏi nó. Bạn đã thấy ở trên cách tôi sử dụng hộp thoại thảo luận tương tác để thu hẹp các câu trả lời tôi muốn. Khi bạn đang làm việc với ChatGPT, đừng mong đợi một câu hỏi sẽ thực hiện mọi công việc một cách kỳ diệu cho bạn. Nhưng hãy sử dụng ChatGPT làm công cụ trợ giúp và tài nguyên, nó sẽ cung cấp cho bạn nhiều thông tin rất hữu ích. Tất nhiên, hãy kiểm tra thông tin đó -- bởi vì, như John Schulman, đồng sáng lập OpenAI, nói, "Mối quan tâm lớn nhất của chúng tôi là về tính thực tế, bởi vì mô hình thích bịa đặt mọi thứ."

Nếu tôi sử dụng ChatGPT để viết mã của mình, ai sở hữu nó?

Hóa ra, vẫn chưa có nhiều án lệ trả lời dứt khoát câu hỏi này. Hoa Kỳ, Canada và Vương quốc Anh yêu cầu thứ gì đó có bản quyền phải được tạo ra bởi bàn tay con người, vì vậy mã do công cụ AI tạo ra có thể không có bản quyền. Ngoài ra còn có các vấn đề về trách nhiệm pháp lý dựa trên nguồn gốc của mã đào tạo và cách sử dụng mã kết quả. ZDNET đã nghiên cứu sâu về chủ đề này, nói chuyện với các chuyên gia pháp lý và sản xuất ba bài viết sau. Nếu bạn lo lắng về vấn đề này (và nếu bạn đang sử dụng AI để trợ giúp viết mã thì bạn nên lo lắng), tôi khuyên bạn nên đọc chúng.

  • Ai sở hữu mã? Nếu AI của ChatGPT giúp viết ứng dụng của bạn, thì ứng dụng đó có còn thuộc về bạn không?
  • Nếu bạn sử dụng mã do AI tạo, bạn sẽ phải chịu trách nhiệm pháp lý gì?
  • Một câu hỏi hóc búa: Ai sở hữu mã, hình ảnh và câu chuyện do AI tạo ra?

ChatGPT biết những ngôn ngữ lập trình nào?

Hầu hết trong số họ. Tôi đã rất lạc hướng khi thử điều này. Tôi đã thử nghiệm các ngôn ngữ hiện đại phổ biến, như PHP, Python, Java, Kotlin, Swift, C#, v.v. Nhưng sau đó tôi đã yêu cầu nó viết mã bằng các ngôn ngữ thời kỳ đen tối ít người biết đến như COBOL, Fortran, Forth, LISP, ALGOL, RPG (trình tạo chương trình báo cáo, không phải trò chơi nhập vai) và thậm chí cả hợp ngữ IBM/360.

Khi đóng băng trên chiếc bánh, tôi đã đưa ra lời nhắc này:

Viết một chuỗi hiển thị 'Xin chào, thế giới' bằng đèn nhấp nháy ascii trên bảng điều khiển phía trước của PDP 8/e

PDP 8/e là chiếc máy tính đầu tiên của tôi và ChatGPT thực sự đã hướng dẫn tôi bật/tắt chương trình bằng cách sử dụng các công tắc ở mặt trước. Tôi đã rất ấn tượng, hân hoan và hơi sợ hãi.

Điểm mấu chốt là gì? ChatGPT có thể là một công cụ rất hữu ích. Chỉ cần không gán siêu năng lực cho nó. Chưa.

Bài viết liên quan

Xem thêm >>

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