万能Python脚本生成器!

去年12月,OpenAI连续12天发布会直播,推出了一系列新品,首日亮相o1正式版,最后一天压轴大戏o3登场,作为新一代的推理模型,其ARC-AGI测试得分高达87.7%(人类平均水平85%),比o1要强悍不少。

o1、o3的接连发布,让拥有高推理性能的大模型逐渐成为了AI市场新宠。

图片

从我自己和身边同事使用AI大模型的场景来看,主要是内容搜索、数理推断、文案生成这三大需求,其中我觉得大模型最擅长且实用性最强的领域是数理推断。

数理推断包括代码开发、数学计算、逻辑推理之类,能解决很多实用性问题,比如自动化开发程序软件、分析科研制造数据、解决数学物理难题等,是学习工作最需要的能力。

图片

除了ChatGPT,最近国内也出了一款推理能力极强的大模型GLM-Zero-Preview,是智谱AI研发的新一代推理模型,我用它设计了一个代码开发系统-Python万能脚本生成器,非常的有用,后面会详细介绍实现流程和完整代码。

如何使用GLM-Zero-Preview模型?

GLM-Zero-Preview之所以推理能力强,是因为它基于拓展强化学习技术(ERL)开发的,这种技术通过多任务学习和复杂环境建模增强了推理能力,且对新任务的适应性更好,像GPT、Bard、LLaMA、Claude等国际主流大模型都采用了ERL技术。

图片

想使用GLM-Zero-Preview有两种方法,首先可以在智谱清言APP上使用基于GLM-Zero-Preview模型的“Zero推理模型”智能体,它能回答极具考验推理能力的问题,比如经典的零件不合格品检测问题:

图片

Zero推理模型能够精确地给出答案,其实大部分人都不一定能回答出来。

除了APP,还可以在BigModel平台调用模型GLM-Zero-Preview API,部署到自己的应用中,开发类似“数学解题大师”、“软件开发专家”这样的智能体。

图片

调用API接口其实非常简单,首先注册BigModel平台账号,然后在右上角添加新的API key,创建好后便可以在程序中(任何语言都可以)进行调用。

图片

BigModel的接口文档非常详细,还提供了Python接口的案例,当然其他语言也都支持。

图片

比如刚刚那个关于产品检测的推理题就可以通过Python接口来提问。

from zhipuai import ZhipuAI

client = ZhipuAI(api_key="your api key") 
response = client.chat.asyncCompletions.create(
    model="glm-zero-preview",  
    messages=[
        {"role": "system", "content": "Please think deeply before your response."},
        {"role": "user", "content": "有13个零件,外表完全一样,但有一个是不合格品,其重量和其它的不同,且轻重不知。请你用天平称3次,把它找出来。要求精简介绍解决方案,100字以内"}
    ],
)
print(response)

在进行部署之前,你还可以在BigModel上进行模型测试和参数调优。

主要参数包括system promp和max_tokens,其中system prompt用于定义系统角色,比如你想开发编程智能体,那system prompt就应该设置为软件开发专家之类的角色。

max_tokens则是控制模型生成文本最大长度的参数,一个汉字代表一个tokens,你可以根据不同应用需求来设置。

图片

以上测试是让GLM-Zero-Preview解一个常见的一元二次方程题,它能很快的给出准确答案和解题思路。如果用来开发一个数学解题智能体,相信也很有市场价值。

可以看到和GLM-4-Plus等其他传统模型相比,GLM-Zero-Preview在逻辑推理这样的专家任务能力上,有很明显的提升,而且它的通用能力也保持着高水平,像是一个博古通今、见微知著的科学家。

GLM-Zero-Preview VS o1-preview,孰强孰弱?

一般我们在衡量某个大模型推理能力的时候,会用到国际公认的3个重要指标,AIME 2024、MATH500 和 LiveCodeBench。

AIME 2024(美国数学邀请赛)用于评估AI模型在数学推理和解题能力,MATH500是包含500道数学题的综合数学能力评估,LiveCodeBench则是评估代码生成能力的基准测试。

GLM-Zero-Preview在这三项测试中,成绩都略高于OpenAI的o1-preview模型,可见在GLM-Zero-Preview在推理能力和代码生成方面已经达到国际主流大模型的水准。

图片

比如回答一个好玩的问题,虽然作为人来说很简单,但非常考验模型的推理能力,我们来看看GLM-Zero-Preview和o1-preview的差异。

四年级一班准备去郊游,班里有 42 名学生参加,每位学生要缴纳 35 元 活动费,老师还向学校申请了 300 元 额外补助。郊游费用方面,其中用于租车的费用是 1200 元,午餐费用为每人 25 元。另外,班主任自己还个人给大家买了250元钱的零食。

问题:班级的活动经费够吗?还剩多少钱?

算出来应该是经费不够,差480元。

这里要记住班主任自己出的钱不能算在经费里,否则差720元。

先看看o1-preview的回答:

图片

图片

很明显出错了,它把班主任自己出的钱算进去了,推断不够严谨。

再看看GLM-Zero-Preview的回答:

图片

GLM-Zero-Preview考虑到了班主任个人费用可能不能算作班级经费,推理能力似乎更胜一筹。

除了推理能力外,GLM-Zero-Preview在响应速度、成本上也有优势,通过优化模型算法、训练方法、资源管理策略使得响应速度更快,且在保证高性能的同时,降低了对硬件资源的依赖,让成本更低。

开发“Python万能脚本生成器”

既然GLM-Zero-Preview推理能力如此之强,那用它来写代码一定会很丝滑,能够保证代码的完整性、准确性和规范性,很大程度解放码农在程序开发上的时间。

我尝试用Python Dash构建了一个web应用,叫作“Python万能脚本生成器”,核心功能是根据用户需求自动化生成Python脚本,而这背后用到的代码生成模型正是GLM-Zero-Preview。

图片

先简单介绍下Dash,这是一个用于搭建web应用的Python框架,可以使用非常少的代码鼓捣出一款酷炫的web app,很适合构建数据产品、AI应用。

图片

为什么要开发Python万能脚本生成器呢?

首先,Python作为最普及的编程语言被大部分人使用,它就像万能工具可以解决各种自动化问题,比如数据采集、数据清洗、文档编辑、可视化展示等,只需要一个简单的Python脚本,就能自动化批量处理问题,非常的适合科研、办公、实际生产使用。

图片

现在的大模型APP已经可以生成Python代码,那为什么还要开发一个单独的代码生成应用呢?

我设计的这个应用有几个特点,刚好是当下一些通用AI产品缺失的。

1、不需要复杂的prompt,只需要提出简单的需求(比如:拼接两个excel表格),就能直接生成Python脚本,而且生成的代码更加精准,因为底层已经做过提示语优化。

2、生成的内容只包含Python代码,没有其他任何的无关内容,非常简洁清爽。

3、支持编辑生成的Python代码,你可以根据需求来修改。

4、支持将生成的Python代码一键导出为.py格式文件,简单好用。

先展示下“Python万能脚本生成器”的界面,后面会讲到如何具体实现它。

图片

你只需要在左边框中填写需求,并点击生成脚本,右边便会生成对应Python代码。

案例如下:拼接5个同样字段的Excel表格

图片

生成代码后,你可以点击复制代码,也可以点击“导出为.py文件”的按钮,就能下载包含该脚本的.py格式文件。

图片

要实现这个web应用并不难,分为以下几个步骤:

1、在BigModel平台获取智谱AI API key,前面已经讲过具体步骤。可以原文链接登录获取。

图片

2、在Python中安装zhipuai和dash第三方库,前者是智谱AI Python SDK,后者是web应用框架。

图片

3、编写Dash代码(可使用Zero推理模型打辅助),构建应用框架和UI。

4、编写GLM-Zero-Preview模型调用函数,设计初始参数system promp、user prompt和max_tokens。

system promp:你是专业的Python工程师,需要针对用户给到的需求,直接生成Python脚本,注意你只需要给出代码即可,不需要除代码外其他任何文字解释,如果有解释都放在注释里,并且你需要保证完整性、准确性、可执行、规范性,代码注释清晰,可读性强。

user prompt:生成一个Python脚本,实现以下功能:{user description}

max_tokens:12000

5、保存代码到app.py文件,打开命令行工具,导航到保存 app.py 文件的目录。

运行命令python app.py启动 Dash 应用,会出现以下提示:Dash is running on http://127.0.0.1:8050/

打开浏览器,访问 http://127.0.0.1:8050/,就可看到 Dash 应用

图片

部分代码如下:

import dash
from dash import html, dcc, Input, Output, State
import dash_bootstrap_components as dbc
from zhipuai import ZhipuAI

# 初始化 Dash 应用
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
app.title = "万能Python脚本生成器"

# 设置智谱AI API Key
client = ZhipuAI(api_key="你申请的key")  # 替换为你的 API Key

# 应用布局
app.layout = dbc.Container(
......此处省略n行dash布局代码......
)

# 回调函数:生成脚本
@app.callback(
    Output("output-code", "value"),
    Input("generate-button", "n_clicks"),
    State("input-request", "value"),
    prevent_initial_call=True,)
......此处省略n行dash回调函数代码......

# 使用zhipuai调用glm-zero-preview模型
def generate_script(n_clicks, request):
    if not request:
        return "请输入有效的需求描述!"

    try:
        # 调用智谱AI API
        response = client.chat.completions.create(
            model="glm-zero-preview",
            messages=[
                {"role": "system", "content": '''你是专业的Python工程师,需要针对用户给到的需求,直接生成Python脚本,
                     注意你只需要给出代码即可,不需要除代码外其他任何文字解释,如果有解释都放在注释里。
                     并且你需要保证完整性、准确性、可执行、规范性。
                     而且代码注释清晰,可读性强。'''},
                    {"role": "user", "content": f"生成一个 Python 脚本,实现以下功能:{request}"},
            ],
            max_tokens=12000,
        )
        # 提取生成的代码
        generated_code = response.choices[0].message.content
        return generated_code
    except Exception as e:
        return f"生成脚本时出错:{str(e)}"

# 运行应用
if __name__ == "__main__":
    app.run_server(debug=True)

你可以在自己电脑本地实现这个web应用,非常的实用且有趣。

后台回复:脚本,获取全部代码

总结

如今AI推理模型的能力越来越强,随着o1、o3、GLM-Zero-Preview等推理模型的接连发布,我相信会涌现出非常多的AI应用,在编程、数学、逻辑推断等各个方向都会有广阔的应用方向。

作为个人,其实也可以开发一些简单的AI应用,配合GLM-Zero-Preview模型的能力,可玩的场景也很多,想象力是无穷的,AI赋能的场景也是无限的。

<think>好的,用户想找一个通用的自动化处理脚本工具,可以解决多种问题。首先,我需要回顾一下用户提供的引用内容,看看有什么相关的信息。 引用[1]提到Shell脚本的优势,包括跨平台、易学、文本处理能力强,还有灵活性和提高效率。引用[3]则介绍了expect工具,用于自动化交互,比如处理需要输入提示符的情况。引用[4]提到了用Java编写自动化脚本,但可能更适合有编程基础的用户。用户的需求是寻找一个通用的工具,可能需要结合这些信息。 用户可能希望这个工具既能处理常规任务,又能处理需要交互的情况,比如自动登录或者填写表单。Shell脚本本身已经很强大,但遇到需要交互的时候可能需要配合expect。另外,用户可能不太熟悉编程,所以易用性很重要。 接下来,我需要考虑有哪些工具或方法能满足通用和多功能的自动化需求。Shell脚本加上expect是一个组合,可以覆盖大部分情况。Python也是一个不错的选择,因为有丰富的库,比如subprocess可以调用系统命令,paramiko处理SSH,selenium做网页自动化,但用户可能更倾向于不需要学习新语言的方法。 然后,用户可能需要的应用场景包括文件处理、系统管理、网络操作、数据备份等。Shell脚本已经可以处理这些,但如果涉及到更复杂的逻辑,可能需要更高级的脚本语言。不过根据引用内容,用户可能更熟悉Shell,所以推荐Shell为主,再结合其他工具如expect或Python。 最后,要确保回答结构清晰,分点说明工具、核心功能、应用场景,并提供示例。同时,按照用户要求生成相关问题,比如比较工具、优化脚本的方法等。还需要注意引用标记的正确使用,比如在提到Shell的优势时加上[^1],提到expect时加上[^3]。</think>### 通用多功能自动化处理脚本工具推荐 #### 1. **Shell脚本 + Expect工具** **核心功能**: - **基础任务自动化**:文件操作、系统监控、日志分析、批量任务调度(基于Shell脚本的跨平台兼容性和文本处理能力)[^1]。 - **交互式任务处理**:自动登录服务器、密码输入、命令行交互(通过Expect的`expect-send`机制实现自动化应答)[^3]。 - **扩展性**:可调用Python、Perl等脚本语言或C/C++程序增强功能。 **示例(备份文件并自动上传到远程服务器)**: ```bash #!/bin/bash # 本地备份 tar -czf backup.tar.gz /data # 使用Expect自动上传 expect << EOF spawn scp backup.tar.gz user@remote:/backup/ expect "password:" send "your_password\r" expect eof EOF ``` --- #### 2. **Python脚本** **核心功能**: - **复杂逻辑处理**:条件判断、循环、异常处理(Python语法更灵活)。 - **跨平台API集成**:调用系统命令(`subprocess`模块)、网络请求(`requests`库)、数据库操作。 - **高级自动化**:Web自动化(Selenium)、GUI操作(PyAutoGUI)。 **示例(自动化文件分类)**: ```python import os import shutil for file in os.listdir("."): if file.endswith(".txt"): shutil.move(file, "text_files/") elif file.endswith(".jpg"): shutil.move(file, "images/") ``` --- #### 3. **Ansible** **核心功能**: - **批量服务器管理**:通过YAML配置文件实现服务部署、配置同步(无需在目标机器安装客户端)。 - **幂等性设计**:确保脚本多次执行结果一致。 **示例(批量安装软件)**: ```yaml - hosts: webservers tasks: - name: Install Nginx apt: name: nginx state: present ``` --- ### 选择工具的关键因素 | 工具类型 | 适用场景 | 学习成本 | 扩展性 | |----------------|-----------------------------------|----------|-------------| | Shell + Expect | 系统管理、简单交互任务 | 低 | 中等 | | Python | 复杂逻辑、跨平台API调用 | 中 | 高 | | Ansible | 大规模服务器集群配置管理 | 中 | 高 | --- ### 应用场景示例 1. **数据处理**:用Shell脚本结合`awk`清洗日志。 2. **定时任务**:通过Cron调度Python脚本每日抓取网页数据。 3. **交互式运维**:用Expect自动处理SSH登录后的软件升级流程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Python大数据分析

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值