暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用GLM-Zero-Preview制作python脚本生成器

老柴杂货铺 2025-01-16
113

除了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,创建好后便可以在程序中(任何语言都可以)进行调用。

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

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

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

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

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

先展示下“Python万能脚本生成器”的界面(有点丑,这不重要),后面会讲到如何具体实现它。

附:完整实现代码
    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="your_api_key")  # 替换为你的 API Key
    # 应用布局
    app.layout = dbc.Container(
        [
            dbc.Row(
                dbc.Col(
                    html.H1("Python脚本生成器", className="text-center mb-4"),
                    width=12
                )
            ),
            dbc.Row(
                [
                    dbc.Col(
                        dcc.Textarea(
                            id="input-request",
                            placeholder="请输入你的需求描述...",
                            style={"width""100%""height"150},
                        ),
                        width=8
                    ),
                    dbc.Col(
                        dbc.Button(
                            "生成脚本",
                            id="generate-button",
                            color="primary",
                            className="w-100 h-100"
                        ),
                        width=4
                    )
                ],
                className="mb-4"
            ),
            dbc.Row(
                dbc.Col(
                    dcc.Textarea(
                        id="output-code",
                        readOnly=True,
                        style={"width""100%""height"400},
                        placeholder="生成的代码将显示在这里..."
                    )
                )
            )
        ],
        fluid=True,
        className="p-4"
    )
    # 回调函数:生成脚本
    @app.callback(
        Output("output-code""value"),
        Input("generate-button""n_clicks"),
        State("input-request""value"),
        prevent_initial_call=True,)
    # 生成dash回调函数
    #......此处省略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)



    文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论