能發光發熱的地方很多,各種場景化功能也不斷地被挖出來,比如寫文案、寫論文、寫代碼、、數據分析、情感咨詢、科研分析等等,讓AI真正地有“智慧”了,而不是傳統語音助手式得“人工”智能。

我最近常用來輔助寫代碼,以及自動化實現一些辦公場景,發現它真的非常好用。

下面以和SQL編程為例,你只需要提,讓來實現代碼功能。

代碼

代碼一直是很費時間的事,即使編譯器給出了錯誤提示,你有時候也很難快速找到的方法, 所以會去百度、谷歌,查等各種網站找解決方案。

但是能快速定位代碼的bug,并給出解決方案,或者它可以改寫低效率的代碼,給出更優的方案。

以代碼為例,讓識別里面的語法錯誤(這個很簡單,不能除以0)

def f(a,b):
    print(a/b)
f(4,0)

對于非語法錯誤,會給出合適的實現方法,我們使用遞推法寫個斐波那契數列,但發現并沒有輸出正確的斐波那契數列,讓給出解法。

def fib_next(n):
    a = 0
    b = 1
    for _ in range(n):
        a, b = a+b, b
    return a
if __name__ == '__main__':
    for i in range(1,9):
        print(fib_next(i),end=',')

這段代碼輸出了1,2,3,4,5,6,7,8,顯然不是斐波那契數列

能力很強,對于常見的語法錯誤,基本都能識別出來,能節省開發者大量的檢索時間。

代碼翻譯為R語言

有時我們需要將一種編程語言代碼轉換為另一種編程語言來實現,比如在項目遷移時或者開發者切換時,這會費很大的功夫。

因為能在各種編程語言間自由穿梭,所以代碼翻譯是它的強項,下面舉個例子,將一段建模的代碼翻譯為R語言。

該代碼是一個分類模型,對產品不合格品進行檢測。

# 導入必要的庫
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 創建虛擬數據集
data = {
    '硬度': [60, 70, 65, 55, 75, 80, 85, 90, 95, 100],
    '重量': [100, 120, 110, 90, 130, 150, 160, 170, 180, 190],
    '尺寸': [5, 6, 5.5, 4.5, 6.5, 7, 7.5, 8, 8.5, 9],
    '合格': [1, 1, 1, 0, 1, 1, 1, 0, 0, 0]  # 合格:1,不合格:0
}
df = pd.DataFrame(data)
# 分割特征和目標
X = df[['硬度', '重量', '尺寸']]
y = df['合格']
# 分割數據集為訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 創建決策樹分類器
classifier = DecisionTreeClassifier()
# 擬合模型
classifier.fit(X_train, y_train)
# 進行預測
y_pred = classifier.predict(X_test)
# 計算模型準確性
accuracy = accuracy_score(y_test, y_pred)
print(f'模型準確性:{accuracy * 100:.2f}%')

可以看到完美地將分類模型代碼翻譯為R語言代碼,保持了原有數據和功能,非常的清晰。

你可以嘗試將翻譯為任何其他編程語言,會節省你很多開發時間。

編寫代碼文檔

在正規的項目開發中,都需要為代碼編寫代碼文檔,方便查看和維護。

可以為你編寫代碼文檔,你只需要在這個基礎上做補充和完善,非常的方便。

以上面分類模型代碼為例,我們讓編寫代碼文檔,看看效果如何。

還是不錯完成了代碼文檔的編寫,將該代碼的功能和實現步驟都體現了出來,而且格式也比較規范。

編寫SQL查詢語句

寫SQL是數據從業者幾乎每天要做的事情,有的查詢比較復雜,會占用大量的時間,有了后只需要提出數據查詢需求,它便可以輸出查詢代碼,你只需要在這個基礎上稍作個性化修改,便可以直接用起來。

寫SQL代碼的好處是,它能高效的做代碼優化,給出較優的邏輯和用法,特別對于SQL新手來說很是方便。

這里準備了一個查詢場景:

查詢的數據是用戶網站瀏覽數據,包含用戶ID、登錄天數、UV、PV等字段,需要查詢登錄天數、UV、PV均大于中位數的用戶

具體代碼:

SELECT UserID
FROM UserWebsiteData
WHERE LoginDays > (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY LoginDays) FROM UserWebsiteData)
    AND UV > (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY UV) FROM UserWebsiteData)
    AND PV > (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY PV) FROM UserWebsiteData);

確實沒有什么毛病,雖然是邏輯較為簡單的查詢,但是代碼數量卻不少,對于這種耗費體力的SQL查詢使用能很好的解決。

優化SQL查詢語句

很多SQL新手寫代碼不考慮查詢性能,導致查詢速度非常慢,如果是自己使用還好,要是放到調度里則會浪費資源。

可能幫你優化SQL查詢代碼,以下是示例代碼,使用了子查詢,看看如何優化

SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name = 'chackca');

給出兩條建議,一是使用INNE,二是為相關列添加索引,可以加速查詢。

懂SQL的人基本都會使用這兩個方法去優化查詢,給出的建議還是非常中肯的。

結論

上面只講到輔助編程的冰山一角,可以幫助你高效編程,大大節省代碼時間和提升代碼質量,我覺得是可以好好去利用的。

用好比你去上什么編程課程要有用百倍,它比市面上很多編程老師要厲害的多。

后面我會繼續分享輔助編程實現一些自動化的場景,比如:

你如果有什么心得也可以在評論區秀一下