首頁  >  文章  >  後端開發  >  Python程式碼自動轉成其他程式語言程式碼

Python程式碼自動轉成其他程式語言程式碼

王林
王林轉載
2023-04-12 12:34:142187瀏覽

Python程式碼自動轉成其他程式語言程式碼

哈嘍,大家好。

如果將Python程式碼自動轉換成其他程式語言,你會嘗試嗎?

今天要跟大家分享一個有趣的項目,它能將Python程式碼自動轉換成C 程式碼。這或許對搞演算法的同學有點幫助。

1. 如何實作

該專案是 GitHub 開源項目,使用非常簡單,下載後安裝依賴,運行對應的Python腳本即可。

python3 python2cppconverter.py

以下面的Python 程式碼為例

def add_something(x, y):
print("casually adding some stuff together")
z = x + y
return z
if __name__ == "__main__":
print('Okay, lets go')
print(add_something(5, 2))

轉換成C 程式碼如下:

// C++ Code generated from Python Code:
#include <iostream>
using namespace std;
int add_something(int x, int y) {
cout << "casually adding some stuff together" << endl;
int z = x + y;
return z;
}
int main() {
cout << "Okay, lets go" << endl;
cout << add_something(5, 2) << endl;
return 0;
}

python2cppconverter.py實際上是呼叫OpenAI的API來完成程式碼轉換。核心程式碼如下:

openai.Completion.create(engine='code-davinci-002',
prompt=input_prompt,
temperature=temperature,
max_tokens=num_tokens,
stream=STREAM,
stop='===================n',
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0)

本質上就是一個函數調用,其中engine參數是程式碼轉換模型。

介紹code-davinci-002之前,先來了解下GPT-3模型。

GPT-3是OpenAI在 2020年 5 月發布的一個模型,這個模型包含1750億的參數,比GPT-2多了兩個數量級,比GPT-2有了極大的改進。

GPT-3 在許多 NLP 資料集上實現了強大的效能,包括翻譯、問答和完形填空任務,以及一些需要即時推理或領域適應的任務,例如解讀單字或執行算術運算。

code-davinci-002模型是GPT-3的後代,它的訓練資料包含自然語言和來自 GitHub 的數十億行公共代碼。因此,它可以理解和產生程式碼,精通十多種程式語言,最擅長Python。

所以,code-davinci-002模型不只實現程式語言之間相互轉換,還可以與自然語言互轉、找程式碼中的BUG、根據程式編寫文件等。

例如下面的例子就是為程式碼功能產生文字性描述

Python程式碼自動轉成其他程式語言程式碼

#程式碼轉自然語言

是不是以後就不用愁寫註釋了?

再看看下面這個例子,可以為Python程式碼產生docstring

Python程式碼自動轉成其他程式語言程式碼

#docstring

其他例子大家可以看OpenAI官網。

2. 一個壞消息

上面說得很美好,然而現實很殘酷。

我自從下載了這個項目,從開始運行就一步一個坑。

上面用到的OpenAI API,並不對國內開放,國內的朋友申請使用時會看到下面的提示

Python程式碼自動轉成其他程式語言程式碼

##國內無法使用

上來就被卡脖子了!

當然,國內有團隊提供了解決方案,花 18 元可以買一個現成的國外帳號,有效期將近 3 個月,帳號內自備 18 美元。所以,OpenAI的模型是要收費的,一點不清楚。

Python程式碼自動轉成其他程式語言程式碼

當你買了帳號,獲取了API key,把它配置到項目中,運行項目,準備見證時刻的奇蹟時,會發現如下報錯:

No such model: code-davinci-002

這是因為code-davinci-002模型處於私有測試中,需要提交申請,通過後才能呼叫。

最後,我不建議大家運行code-davinci-002模型,對國內朋友來說,成本太高了。如果想看效果,可以到OpenAI官網看看文件、線上運行一些example即可。

雖然專案沒有成功運作起來,但這並不妨礙我們學習技術,這波強行不虧。

Python程式碼自動轉成其他程式語言程式碼

希望今天的內容對你有用,感謝你的關注,我將持續分享優秀的 AI 專案。

以上是Python程式碼自動轉成其他程式語言程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除