公司裏有一些開發的同事老是吐槽工作忙,天天加班,我想很大可能是沒利用好輪子和AI工具,總是自己瞎寫耽誤時間。
不知道大家發現沒有,其實軟體開發過程中很多都是參照輪子和元件,如果你非常熟悉Github上的開原始碼,它們可能會覆蓋你80%以上的開發工作,也就是說你無需自己寫很多程式碼,只要會裝輪子,也能出色地完成工作。
不光是軟體開發,網站開發、機器學習、數據科學、網路爬蟲等各種編程場景都是如此,你需要寫的程式碼並不多,前人早已經幫你寫好了,而且寫的可能比你出色很多。由於生成式AI的出現,編程成為最大的受益者之一,類似於Github copilot這類AI編程模型就可以幫你找輪子,自動完成程式碼的編寫,你能獲取程式碼建議,構建、偵錯和測試應用程式,編程效率會指數級的提升。
最近看到國內有一款類似的產品-程式碼小諾古力Raccoon,它是商湯開發的AI編程工具,你可以在VSCode上安裝其外掛程式,和其他VScode外掛程式一樣,用起來很方便。 用了幾周下來,我覺得Raccoon主要有兩大核心功能,首先是程式碼補全這種主流的AI輔助編程功能,當你在編寫Python或其它程式碼時,Raccoon會自動提示程式碼補全,省得你再手動寫一大串程式碼。
比如我想使用Python sklearn庫寫一個線性回歸預測模型,Raccoon能直接根據已有程式碼補全模型程式碼。
其次是對話自動生成程式碼功能,你直接提問"Python如何生成Excel檔"等問題,它會給出程式碼建議,就像在ChatGPT聊天問答一樣。這種功能非常實用,可能你只知道自己想要什麽,完全不懂怎麽程式碼實作,Raccoon的程式碼問答功能就能直接根據你的描述來生成建議和程式碼。
其他Raccoon能實作的功能還有程式碼糾錯(糾正語法錯誤),程式碼轉譯(比如把Python程式碼轉譯為JS)、程式碼解釋(解釋程式碼是幹嘛的)、程式碼重構(調整程式碼結構)等等,總得來說Raccoon在AI編程上是功能比較完善的。
Raccoon可不僅僅支持Python,它還支持Java、JS、C++、SQL等幾十種程式語言,基本做到了主流語言全覆蓋。
而且你不光可以在VSCode上使用Raccoon,像IntelliJ IDEA、Jetbrains Pycharm等各種主流的IDE編輯器也都支持Raccoon。
我覺得Raccoon等AI編程工具的出現會極大地改變現在的開發方式,超過80%的程式碼工作都可以交給AI,程式設計師以後可能更多的是思考怎麽進行最佳化創新,以及如何利用好AI。
在vscode上使用程式碼小諾古力Raccoon
可能有不少人還不知道如何使用VsCode的外掛程式功能,這裏簡單介紹下如何在VsCode上安裝和使用Raccoon,大致分為三個步驟:
1、安裝Raccoon外掛程式
你可以在VsCode外掛程式庫搜尋「Raccoon」,會出來Raccoon外掛程式,點選安裝即可,安裝好後會出現Raccoon的介紹和使用說明,可以大致看下。
安裝好後,會在Vscode側欄出現Raccoon的圖示,也就是它的功能區。
2、註冊登入Raccoon Raccoon需要登入才能使用,你需要免費註冊個Raccoon帳號,然後登入就能在Vscode上使用Raccoon了。
3、在程式碼區使用Raccoon
以程式碼補全為例,你可以先在VsCode上建個Py檔,然後寫Python程式碼,按下熱鍵 Alt + /,Raccoon就會為你提供程式碼建議。
如下是在python連線oracle數據時,Raccoon補全的程式碼
接下來,我們使用Python sklearn庫在Raccoon的幫助下來實作景區客流預測,完整程式碼如下:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tsa import ARIMA
from sklearn.metrics import mean_squared_error
# 生成模擬數據
np.random.seed(0)
days = pd.date_range(start='1/1/2020', periods=365, freq='D')
series = np.random.randn(len(days)).cumsum() + 20
series = series + np.random.randn(len(days)) * 10# 添加一些雜訊
series = series.reindex(days)
series = series.interpolate() # 填充缺失值
# 轉換數據為適合的時間序列格式
data = pd.DataFrame({'visitors': series})
data['date'] = data['date'].apply(lambda x: x.strftime('%Y-%m-%d'))
data = data.set_index('date')
# 分割數據為訓練集和測試集
train, test = train_test_split(data['visitors'], test_size=100)
train = train.dropna()
test = test.dropna()
# 使用ARIMA模型進行預測
model = ARIMA(train, order=(5,1,0)) # 選擇ARIMA模型的參數
model_fit = model.fit(disp=0)
# 預測未來一個月的客流
forecasted_data = model_fit.forecast(steps=30) # steps=30預測未來30天的數據
mse = mean_squared_error(test[-30:], forecasted_data[0]) # 計算預測誤差
print(f"Mean Squared Error: {mse}")
以下是Raccoon在進行時間序列建模過程提供的程式碼,能準確的提供模型訓練、誤差檢測等建議。
你也可以直接向Raccoon進行提問:生成一段Python,使用sklearn實作未來一個月的景區客流預測,請自己生成數據。
連續按兩次Ctrl鍵,即可喚醒側資訊看板的程式碼助手,輸入prompt即可
顯示結果如下
Raccoon會根據你的需求生成一段完整Python sklearn客流預測程式碼,你只需要稍作修改便可以作為自己的計畫程式碼。
程式碼小諾古力Raccoon功能清單
前面演示了如何在Raccoon上進行程式碼補全和對話生成程式碼,以下列舉下Raccoon各項功能的使用場景和特點,方便對號入坐去使用。
(1)程式碼補全功能 熱鍵 Alt + /啟用,使用場景非常多,適用程式碼初學者和開發老鳥,能極大提升編程效率
(2)對話自動生成程式碼 連續按兩次Ctrl鍵啟用,透過對話方式生成程式碼和建議,媲美ChatGPT程式碼功能
(3)程式碼解釋和糾錯 復制程式碼後啟用(需選擇修正),能糾正程式碼語法錯誤及不規範情況,使用非常方便
(4)程式碼轉譯 復制程式碼後啟用(需選擇轉譯),如果你使用多種程式語言,該功能會非常實用,直接在多語言間進行程式碼轉換。
(4)編程學習 一般初學編程常常因為不會搜尋,在某一個語法或功能上糾結很久,Raccoon的對話功能可以快速幫你解決問題,所以初學者可以把它當作一個編程學習工具,相當的實用。
總結
在AI快速發展的今天,AI輔助編程或者自主編程必然會成為大勢所趨,像Raccoon這樣的AI編程工具已經可以解決大部份編程問題,我們應該好好利用,積極擁抱。
加入知識星球 【我們談論數據科學】
600+ 小夥伴一起學習!