• Python代码自动转成其他编程语言代码


    如果将Python代码自动转成其他编程语言,你会尝试吗?

    今天给大家分享一个有意思的项目,它能将Python代码自动转成C++代码。这或许对搞算法的同学有点帮助。

    1. 如何实现

    该项目是 GitHub 开源项目,使用非常简单,下载后安装依赖,运行对应的Python脚本即可。

    python3 python2cppconverter.py
    

    以下面的 Python 代码为例

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

    转换成 C++ 代码如下:

    1. // C++ Code generated from Python Code: 
    2. #include <iostream>
    3. using namespace std;
    4. int add_something(int x, int y) {
    5.     cout << "casually adding some stuff together" << endl;
    6.     int z = x + y;
    7.     return z;
    8. }
    9. int main() {
    10.     cout << "Okay, lets go" << endl;
    11.     cout << add_something(52) << endl;
    12.     return 0;
    13. }

    python2cppconverter.py实际上是调用OpenAIAPI来完成代码转换。核心代码如下:

    1. openai.Completion.create(engine='code-davinci-002', 
    2.   prompt=input_prompt, 
    3.   temperature=temperature,
    4.   max_tokens=num_tokens, 
    5.   stream=STREAM, 
    6.   stop='===================\n',
    7.   top_p=1.0
    8.   frequency_penalty=0.0
    9.   presence_penalty=0.0)

    本质上就是一个函数调用,其中engine参数是代码转换模型。

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

    GPT-3OpenAI在 2020年 5 月发布的一个模型,这个模型包含1750亿的参数,比GPT-2多了两个数量级,比GPT-2有了极大的改进。

    GPT-3 在许多 NLP 数据集上实现了强大的性能,包括翻译、问答和完形填空任务,以及一些需要即时推理或领域适应的任务,例如解读单词或执行算术运算。

    code-davinci-002模型是GPT-3的后代,它的训练数据包含自然语言和来自 GitHub 的数十亿行公共代码。因此,它可以理解和生成代码,精通十多种编程语言,最擅长Python

    所以,code-davinci-002模型不止能实现编程语言之间相互转换,还可以与自然语言互转、找代码中的BUG、根据代码编写文档等。

    比如下面的例子就是为代码功能生成文字性描述

    代码转自然语言

    是不是以后就不用愁写注释了?

    再看看下面这个例子,可以为Python代码生成docstring

    docstring

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

    2. 一个坏消息

    上面说得很美好,然而现实很残酷。

    我自从下载了这个项目,从开始运行就一步一个坑。

    上面用到的OpenAI API,并不对国内开放,国内的朋友申请使用时会看到下面的提示

    国内无法使用

    上来就被卡脖子了!

    当然,国内有团队提供了解决方案,花 18 元可以买一个现成的国外账号,有效期将近 3 个月,账号内自带 18 美元。所以,OpenAI的模型是收费的,一点不清真。

    当你买了账号,获取了API key,把它配置到项目中,运行项目,准备见证时刻的奇迹时,会发现如下报错:

    No such model: code-davinci-002
    

    这是因为code-davinci-002模型处于私有测试中,需要提交申请,通过后才能调用。

    最后,我不建议大家运行code-davinci-002模型,对国内朋友来说,成本太高了。如果想看效果,可以到OpenAI官网看看文档、在线运行一些example即可。

    虽然项目没有成功运行起来,但这并不妨碍我们学习技术,这波强行不亏。

    希望今天的内容对你有用,感谢你的关注,我将持续分享优秀的 AI 项目。

    项目地址:https://github.com/alxschwrz/codex_py2cpp

    【python学习】
    学Python的伙伴,欢迎加入新的交流【君羊】:1020465983
    一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料

  • 相关阅读:
    Kamiya丨Kamiya艾美捷AREG酶联免疫吸附试验原理
    YUM源的几种常见方式
    JBoss漏洞:JBOSS反序列化漏洞合集
    java图形验证码到底是怎么生成的?
    C#中数组与列表,集合等的联系
    记一次pdjs时安装glob出现,npm ERR! code ETARGET和npm ERR! code ELIFECYCLE
    ESP32C3 LED PWM使用和ESP32差异说明
    吗西香豆素,CAS号:17692-56-7
    【CSS】H5_css美化
    Centos7 docker 容器内root身份应用自启动 & /usr/sbin/init 问题
  • 原文地址:https://blog.csdn.net/weixin_56659172/article/details/125558660