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

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

Threads
  • Có bạn nào trong lúc code mà bị "ngẫn tò te" hoặc "lú lẫn" trong mớ hỗn độn của mình viết ra chưa. Những lúc như thế tôi thường hay ngừng lại, thư giãn đầu óc, hoặc để mai tính tiếp. Ấy vậy mà rất hiệu quả nhé! Lúc sau xem lại cái tự nhiên thấy vấn đề ở đâu ngay.

    Hoặc cũng có thể thử áp dụng phương pháp "chú vịt vàng" - thử giải thích vấn đề đang gặp phải với vịt xem, nó sẽ cho thấy mâu thuẫn trong lời nói ra.

    Còn không có tiền mua vịt to thì xe túi mù ra vịt bé giống mình nè 😅

    » Xem thêm
  • Ơ buồn cười thật. Ai cũng biết GIF là định dạng ảnh động thường được dùng thay cho video clip để hiển thị các nội dung ngắn trên nền tảng web. GIF tiện hơn các nội dung dạng video là vì nó được hiển thị như một bức ảnh và được hỗ trợ rộng rãi. Cơ mà GIF có dung lượng nặng quá.

    Nói thật nhiều lúc mình có vài cái hành động muốn hiển thị lên web cho mọi người xem, cơ mà định dạng GIF nó nặng với cả cũng không biết cách tối ưu cho nhẹ xuống. Hôm nay lên mạng tìm hiểu xem định dạng nào có khả năng thay thế GIF trong tương lai thì mọi người biết đó là gì không? Là WEBP (webp)!!! Đúng vậy, là định dạng ảnh mà mình đang dùng trên blog lâu nay luôn á, mà giờ mới biết là nó hiển thị được cả ảnh động nữa, hơi quê 😆

    Kết hợp với ffmpeg nữa là chuyển được tất tần tật video clip thành webp được ngay. Để vài nửa ngồi chế lại cái cli một tí là dùng ngon luôn mọi người ạ 🤪

    » Xem thêm
  • Cảm giác như Github Copilot đang cố gắng mở rộng thị trường cho anh em developer á. Mới trước họ ra mắt Github Open Copilot Chat thì mới đây lại thêm cái Using GitHub Copilot in the command line dùng để giải thích hoặc gợi ý lệnh trong terminal.

    Đây, cách dùng rất đơn giản thôi, ví dụ muốn nó giải thích câu lệnh sudo apt-get để làm gì, thì:

    $ gh copilot explain "sudo apt-get"

    Hoặc nhờ nó gợi ý lệnh mong muốn, sử dụng tiếng Việt được luôn nhé (kể cả tiếng Việt không dấu vẫn hiểu 😳)

    $ gh copilot suggest "xoá commit chưa push"

    Mình đã kiểm tra và thấy lệnh ra rất đúng, xịn thật 🤓

    » Xem thêm

Vấ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é!

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.
Author

Xin chào, tôi tên là Hoài - một anh Dev kể chuyện bằng cách viết ✍️ và làm sản phẩm 🚀. Với nhiều năm kinh nghiệm lập trình, tôi đã đóng góp một phần công sức cho nhiều sản phẩm mang lại giá trị cho người dùng tại nơi đang làm việc, cũng như cho chính bản thân. Sở thích của tôi là đọc, viết, nghiên cứu... Tôi tạo ra trang Blog này với sứ mệnh mang đến những bài viết chất lượng cho độc giả của 2coffee.dev.Hãy theo dõi tôi qua các kênh LinkedIn, Facebook, Instagram, Telegram.

Bạn thấy bài viết này có ích?
Không

Bình luận (7)

Nội dung bình luận...
Avatar
Ẩn danh5 tháng 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ống5 tháng 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 danh6 tháng 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ống6 tháng 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 danh6 tháng 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ống6 tháng 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 danh7 tháng 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ống7 tháng 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ùng8 tháng 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ống8 tháng 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 danh8 tháng 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ống8 tháng 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 danh9 tháng 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ống9 tháng trước
Bạn cho mình xin link của extension đó được không ạ?