AI Coding 編程

AI 編程

工具 描述 特点 費用
GitHub Copilot 基于人工智能的代码补全工具,可以理解你的代码,并生成相应的建议。它可以根据你的编程习惯进行学习和改进,使其建议更加个性化。 个性化的代码补全,学习并改进你的编程习惯 $10/month
Tabnine 全能的AI代码补全工具,支持超过20种编程语言。它使用了GPT-3模型来理解和预测你的代码。Tabnine可以通过学习你的代码风格,并将此信息与其大型代码库进行比较,以生成最准确的代码补全建议。 支持20种以上的编程语言,使用GPT-3模型,学习你的代码风格 Free $12/ month
AWS Whisper AWS的一项自然语言理解(NLU)服务,可以将人类语言转化为机器可读的指令。然而,Whisper主要用于语音识别和语音助手,而不是代码补全。 适用于语音识别和语音助手,不专门用于代码补全 Free

Copilot

Tabnine

AWS Whisper

在 Windows 下 VS Code 配合 Python + Anaconda virtual environment 非常好用。特別目前整合 OpenAI Copilot ($10/month) 或是 Amazon Code Whisper (Free) AI 功能更是如虎添翼。

之前一個比較困擾的問題是如何在 WSL(2) 下做同樣的事: VS Code 配合 Python + (WSL2) Anaconda virtual environment.

因爲 WSL2 的 Ubuntu 的 “AI 相容性” 還是比起 Windows 好。有些 LLM 的 github 還是需要在 Ubuntu 環境下執行。

Method

首先參考 Visual Studio Code 的説明:

  1. 先切換到 WSL2, 可以在 PS 下使用 bash 或是 wsl2

    1
    PS> bash
    
  2. 接下來在 WSL2 下執行 VS Code. 如果沒有 install, 會自動 install VS Code

    1
    code . 
    

    理論上也可以在 PS 下直接執行; wsl code .

再來在 VS Code install WSL!

  • VSCode,先安裝由Microsoft提供的這個WSL這個插件 (如圖1) image-20231209222848740

  • 接著點到側邊欄的WSL(安裝完重啟VSCode會出現),右鍵連進WSL (如圖2)

image-20231209223002999

  • 稍微等一下,會自動重新打開一個視窗,右下角會出現綠色的WSL (如圖3)

    image-20231209223105152

接著在WSL這個VSCode視窗繼續安裝python插件:Python (如圖4). 注意這應該只有 connector, 不是真的 Python interpreter.

image-20231209223136705

安裝好之後,接下來要設定Conda路徑,到File -> Prereferences -> Settings -> 在搜尋列輸入conda -> 選擇Remote [WSL: Ubuntu-22.04] -> 找到Python: Conda Path -> 填入你在WSL安裝的conda路徑,如下圖5所示。

1
/home/allen/anaconda3/bin/conda

image-20231209223320957

接著設定存檔時自動排版,如下圖6所示:

image-20231209223343644

最後要設定預設的Interpreter,ctrl + shift + p啟動Command Palette -> 輸入python interpreter -> 會讓你選預設要進入的環境 (如圖7)。

image-20231209223422128

此時可以打開一個python檔案,寫一些code,按存檔時如果你的python環境沒有安裝formatter,會跳出提醒問你要安裝哪種 (如圖8),有black, autopep8和yapf三種可以選,選了會問你要用Conda安裝還是pip (如圖9),然後VSCode會幫你啟動環境,然後下指令自動安裝 (如圖10)。

image-20231209223535760

測試

設定完成之後就可以測試了,故意寫一段需要排版,而且沒有對齊的python程式。我這邊的formatter是用black。

import    pandas
import            os,sys  # 逗號後面沒有空格

if   __name__=='__main__'   :  #   等號前後沒有空格,單引號雙引號混用
    num =         "1"   #     故意空很多個空格

    if  num.isdigit()   :  #     故意空很多個空格
        print ( 'num is a digit'   )  # 小括號前故意空很多個空格

接著按存檔,就會自動幫你排版成統一的格式。

1

image-20231209223727466

Reference

WSL2: VSCode + Conda + Formatter使用設定: https://medium.com/@mh.yang/wsl2-vscode-conda-formatter%E4%BD%BF%E7%94%A8%E8%A8%AD%E5%AE%9A-acca390e94c8

(知乎) win10+wsl2+vs code+python平台搭建笔记

(知乎) WSL2: VSCode + Virtualenv的使用与配置 (知乎)

https://code.visualstudio.com/blogs/2019/09/03/wsl2