Sử dụng miễn phí gpt-4 với Github Copilot

Sử dụng miễn phí gpt-4 với Github Copilot

Tin ngắn hàng ngày dành cho bạn
  • Từ lâu rồi suy nghĩ làm thế nào để tăng sự hiện diện thương hiệu, cũng như người dùng cho blog. Nghĩ đi nghĩ lại thì chỉ có cách chia sẻ lên mạng xã hội hoặc trông chờ họ tìm kiếm, cho đến khi...

    In cái áo này được cái tắc đường khỏi phải lăn tăn, càng đông càng vui vì hàng trăm con mắt nhìn thấy cơ mà 🤓

    (Có tác dụng thật nha 🤭)

    » Xem thêm
  • Một vòng của sự phát triển nhiều dự án khá là thú vị. Tóm tắt lại trong 3 bước: Thấy một cái gì đó phức tạp -> Làm cho nó đơn giản đi -> Thêm thắt tính năng cho đến khi nó phức tạp... -> Quay trở lại vòng lặp mới.

    Tại sao lại như vậy? Để mình lấy 2 ví dụ cho các bạn thấy.

    Markdown ra đời với mục tiêu tạo ra một định dạng văn bản thô "dễ viết, dễ đọc, dễ dàng chuyển thành một dạng gì đó như HTML". Vì thời đó chẳng ai đủ kiên nhẫn mà vừa ngồi viết vừa thêm định dạng cho văn bản hiển thị ở trên web như thế nào. Ấy vậy mà giờ đây người ta đang "nhồi nhét" hoặc tạo ra các biến thể dựa trên markdown để bổ sung thêm nhiều định dạng mới đến mức... chẳng nhớ nổi hết cú pháp.

    React cũng là một ví dụ. Từ thời PHP, việc khát khao tạo ra một cái gì đó tách biệt hẳn giao diện người dùng và phần xử lý logic chính của ứng dụng thành 2 phần riêng biệt cho dễ đọc, dễ viết. Kết quả là các thư viện UI/UX phát triển rất mạnh mẽ, mang lại khả năng tương tác với người dùng rất tốt, còn phần logic ứng dụng thì nằm ở một máy chủ riêng biệt. Bộ đôi Front-end, Back-end cũng từ đấy mà thịnh hành, không thể thiếu anh bồi bàn REST API. Ấy vậy mà giờ đây React trông cũng không khác biệt gì so với PHP là mấy, kéo theo là cả Vue, Svelte... lại cùng quy tất cả về một mối.

    Cơ mà không phải vòng lặp là xấu, ngược lại vòng lặp này mang tính tiến hoá nhiều hơn là "cải lùi". Nhiều khi lại tạo ra được cái hay hơi cái cũ thế là người ta lại dựa trên cái hay đó để tiếp tục lặp. Nói cách khác là chắc lọc tinh hoa từng tí một tí một á 😁

    » Xem thêm
  • Song song với các dự án chính thức thì thi thoảng mình vẫn thấy các dự án "bên lề" nhằm tối ưu hoặc cải tiến ngôn ngữ theo khía cạnh nào đó. Ví dụ nature-lang/nature là một dự án hướng tới cải tiến Go, mang lại một số thay đổi nhằm giúp cho việc sử dụng Go trở nên thân thiện hơn.

    Nhìn lại mới thấy hao hao JavaScript 😆

    » Xem thêm

Vấn đề

Thông tin cập nhật: Cách này không còn khả dụng nữa, thay vào đó bạn nên tham khảo bài viết Sử dụng gpt-4 miễn phí thông qua Github Models (có giới hạn) để tiếp tục sử dụng "miễn phí" trong giới hạn.

Xin chào các độc giả của 2coffee.dev! Vậy là chỉ còn có vài ngày nữa thôi, năm Quý Mão sẽ chính thức khép lại nhường chỗ cho một năm mới Giáp Thìn với hy vọng có nhiều khởi sắc hơn. Đây cũng có thể là bài viết cuối cùng trong năm cũ mà tôi muốn dành tặng cho tất cả bạn của tôi.

Cách đây vài hôm, tôi có viết một bài Biến ChatGPT thành một "chuyên gia", trong đó có nhắc đến vấn đề sử dụng API của ChatGPT thì mới có thể sử dụng được "chuyên gia" vì chỉ trong API mới cho chúng ta thiết lập role system, từ đó giúp ChatGPT thu hẹp được ngữ cảnh xuống và trả lời câu hỏi một cách chuẩn xác hơn.

Các cuộc gọi API đến ChatGPT là mất phí, tùy theo model GPT mà bạn đang sử dụng. Thú thật trước đó tôi cũng tìm đủ mọi cách để sử dụng miễn phí API nhưng mọi nỗ lực đều không đạt được.

Hôm qua, khi tình cờ "dạo" trên Github thì phát hiện ra một kho lưu trữ mã nguồn cho phép chúng ta sử dụng miễn phí gpt-4 thông qua Github Copilot. Vâng, bạn không nghe nhầm đâu, hoàn toàn miễn phí chỉ cần bạn có tài khoản Github Copilot.

Cho những ai chưa biết thì Github Copilot là một con AI của Github, nó sẽ giúp chúng ta trong vấn đề viết mã. Cá nhân tôi đã sử dụng Copilot được hơn một năm và nhận ra lợi ích của nó tương xứng với giá 10$ một tháng. Đúng rồi! Ý tôi là bạn cần bỏ ra 10$ hàng tháng để sử dụng Copilot. Nếu bạn đọc có hứng thú, có thể tôi sẽ viết một bài về Copilot trong tương lai.

Vì vậy, điều kiện tiên quyết để sử dụng gpt-4 miễn phí là phải có Github Copilot. Tiếp theo, hãy xem cách khai thác gpt-4 từ Copilot như thế nào nhé!

Copilot và Copilot Chat

Nếu tôi nhớ không nhầm, Copilot được Github giới thiệu trước khi mô hình ChatGPT được công bố rộng rãi trên toàn thế giới. Khi nghe tin Copilot sắp ra mắt, tôi đã tò mò vào xem nó có gì, họ mô tả Copilot như một trợ lý viết mã thực thụ, nghĩa là thay vì viết một mình thì nó sẽ cũng viết cùng, dựa trên những gì bạn đã viết hoặc muốn viết.

Sau khi OpenAI công bố mô hình GPT, như một làn sóng, các nhà phát triển bắt đầu tích hợp nó vào trong sản phẩm để khiến ứng dụng của họ trở nên thông mình và có tính tương tác cao hơn. Thay vì ngồi bấm nút, chọn tính năng thì giờ đây, chỉ cần giao tiếp tực tiếp với sản phẩm thông qua văn bản hoặc lời nói thì ngay lập tức nó sẽ hiểu và giúp chúng ta làm công việc đó.

Copilot cũng không ngoại lệ, tính năng Copilot Chat Beta đã được giới thiệu sau một khoảng thời gian ngắn từ khi có ChatGPT. Về cơ bản, nó được tích hợp trong trình Editor/IDE, mà chúng là trình soạn thảo mã nguồn cho nên Copilot Chat có ngữ cảnh mã mà bạn đang viết, từ đó giúp cho nó hiểu hơn về bối cảnh và đưa ra câu trả lời chính xác cho điều mà bạn đang hỏi.

Ví dụ đây là một đoạn mã nguồn cho hàm mounted trang tìm kiếm của tôi:

  async mounted() {
    await this.fetchResult();

    if (!this.isHasResult) {
      this.resetLimitOffset();
      await this.fetchOtherResult();
    }

    process.nextTick(() => {
      this.isMounted = true;

      setTimeout(() => {
        window.lazyload();
      }, 1500);
    });
  },  

Thử nhờ Copilot giải thích mounted là làm cái gì, chúng ta có kết quả:

Thử nhờ Copilot giải thích

Nhìn chung, Copilot Chat sử dụng "GPT model" để trả lời các câu hỏi của chúng ta. Vì thế nên đã có một "pháp sư" nào đó trên Github tận dụng điều này để mang gpt-4 ra ngoài sử dụng. Tức là ngữ cảnh sử dụng giờ đây không bị bó hẹp trong code nữa, mà bạn có thể hỏi nó bất cứ câu hỏi nào, thậm chí biến nó thành "chuyên gia".

Có người thắc mắc thế sao không chat trực tiếp với Copilot Chat? Thì Github đã cao tay hơn, họ ngăn chặn các câu hỏi không liên quan đến code, chỉ trả lời cho những câu hỏi liên quan.

Bạn còn nhớ NextChat (ChatGPT Next Web) chứ? Sau một vài thiết lập đơn giản thì giờ đây nó đang hoạt động với gpt-4 của Copilot Chat thay vì với API key của OpenAI, tức là không bị tính tiền gọi API nữa.

Đến đây chắc hẳn nhiều bạn đọc đang rất nóng lòng muốn thử. Sở dĩ tôi nói nhiều vậy là chỉ muốn trình bày một cách ngắn gọn về cách mà công cụ copilot-gpt4-service đang khai thác gpt-4.

Thiết lập

copilot-gpt4-service là kho lưu trữ mà tôi nhắc đến ở đầu bài viết. "Convert Github Copilot to ChatGPT" là dòng mô tả rất ngắn gọn mà đi vào đúng vào trọng tâm, nó cho phép tạo ra một máy chủ gpt-4 cục bộ dựa trên Github Copilot của bạn.

Tuy nhiên trước khi sử dụng có một vài lưu ý hết sức quan trọng là chỉ sử dụng cho mục đích cá nhân, chỉ một mình bạn sử dụng thôi thì càng tốt, bởi vì tài khoản Copilot hoặc thậm chí Github có thể bị cấm nếu lạm dụng.

Về cơ bản, khi khởi động mã nguồn này lên, nó sẽ tạo ra một máy chủ proxy đến ChatGPT. Bạn còn nhớ địa chỉ api của ChatGPT chứ? Đó là: https://api.openai.com thì sau triển khai bằng copilot-gpt4-service, một địa chỉ cục bộ (local) được tạo ra để kết nối là http://localhost:8080.

Nếu dùng Docker, cách nhanh nhất để tạo máy chủ là dùng 1 lệnh duy nhất:

$ docker run -d \
  --name copilot-gpt4-service \
  --restart always \
  -p 8080:8080 \
  aaamoon/copilot-gpt4-service:latest

Bạn sẽ cần làm thêm một bước để lấy được GitHub Copilot Plugin Token, sử dụng token đó thay cho OpenAI API key là đã có thể sử dụng được. Cách lấy khá đơn giản, ví dụ dành cho MacOS/Linux:

$ python3 <(curl -fsSL https://raw.githubusercontent.com/aaamoon/copilot-gpt4-service/master/shells/get_copilot_token.py)

Nhưng trước đó cần cài thêm thư viện requests của python:

pip install requests
# hoặc python3
pip3 install requests

Rồi làm theo hướng dẫn chi tiết trong kết quả trả về là xong.

Cuối cùng, vào thiết lập lại cấu hình trong NextChat.

thiết lập lại cấu hình trong NextChat

Hãy thử xem gpt-4 có hoạt động không nào!

thử xem gpt-4 có hoạt động không

Nếu chưa tin model trên là gpt-4, tác giả đã đề xuất một cách kiểm tra là hỏi một câu hỏi: "Why weren't I invited when my parents got married?". gpt-3.5 trả lời có đại ý là "They considered you too young at that time, so they didn't invite you.", còn gpt-4 thì trả lời một cách chính xác: "They got married before you were born".

Bạn cũng có thể triển khai máy chủ GPT này lên mạng internet với một vài thông số cấu hình bảo mật như trong hướng dẫn. Tuy nhiên dù bằng cách nào đi nữa, thì cũng nên nhớ chỉ sử dụng cho mục đích cá nhân thôi nhé!

Cao cấp
Hello

5 bài học sâu sắc

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (7)

Nội dung bình luận...
Avatar
Ẩn danh1 năm trước

Trong bản cập nhật mới, chỉ còn sử dụng được model 3.5-turbo với model 4 và 4-0613. Các model khác đểu không sử dụng được. Bản cập nhật cũ sử dụng được tất cả model trên nextchat. Ad biết cách fix không ạ?

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Dạo này Github đang thắt chặt lắm bạn ạ, tạm thời chưa có cách 🥲

Avatar
Ẩn danh1 năm trước

Có cách nào để áp dụng API này vào pentestGPT được không?https://github.com/GreyDGL/PentestGPT

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Mình thấy có chỗ cấu hình OPENAI_BASEURL='https://api.xxxx.xxx/v1', bạn thay thành http://localhost:8080 với OPENAI_KEY là Token lấy được ở hướng dẫn trong bài viết xem sao.

Avatar
Ẩn danh1 năm trước

Mình có để model như trên nhưng khi hỏi "Why weren't I invited when my parents got married?" thì nó không trả lời như GPT4 bác ơi :(

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Mình vừa kiểm tra lại, giờ nó trả lời như gpt 3.5 rồi, chắc bị fix mất rồi 😕. Cơ mà ít ra vẫn dùng được API miễn phí bạn ạ.

Avatar
Ẩn danh1 năm trước

Hình như bị github chặt đầu mất rồi =)) Bạn biết giờ tác giả họ move repo qua đâu ko ta

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Thế ạ, mình vẫn đang còn session nên vẫn dùng được bình thường từ hồi đó đến giờ. Mình tìm thấy bản fork tương tự repo cũ, bạn thử xem có được không nhé: https://gitlab.com/fatelulu/copilot-gpt4-service

Avatar
Huy Tùng1 năm trước

Cho mình hỏi mình có thử triển khai trên server docker public ra dạng http://ip:port xong add vào nextchat thì nó lại không hoạt động, còn chạy nội bộ ở localhost thì lại dc nhỉ

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Bạn thử truy cập thẳng vào ip:port hoặc ip:port/healthz để xem trạng thái của service có ok không?

Avatar
Ẩn danh1 năm trước

https://marketplace.visualstudio.com/items?itemName=GitHub.copilot

là cái extension link trên này ạ, e thấy ad có để hình trên bài viết hình như là xài đc cái extension này với cái copilot-gpt4-service, e có config http.proxy trong setting của vscode mà k đc, còn xài với nextchat như hướng dẫn thì đc r ạ

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Mình cũng chưa hình dung ra tại sao bạn lại muốn triển khai cách đó nhưng thư viện copilot-gpt4-service không làm được như thế đâu bạn. Trong tài liệu họ có mô tả thư viện chỉ cung cấp một vài đầu API cho tương thích với APT Chats của ChatGPT thôi bạn ạ.

Avatar
Ẩn danh1 năm trước

làm sao để config cái này xài cho copilot extension trong vscode vậy ạ, mình setting http proxy mà k đc như hình trên

Trả lời
Avatar
Xuân Hoài Tống1 năm trước

Bạn cho mình xin link của extension đó được không ạ?