python调用模型llama3.2生成代码并执行

文章目录

  • 前言
  • 一、Meta Llama 3.2
  • 二、使用步骤
  • 1. 任务说明
  • 2. Demo
  • 3. 运行结果
  • 总结

  • 前言

    基于chat对话大模型,生成代码文件。用Python脚本实现自动执行。


    一、Meta Llama 3.2

    Meta Llama 3.2 多语言大型语言模型 (LLM) 集合是 1B 和 3B 大小(文本输入/文本输出)的预训练和指令调整生成模型的集合。Llama 3.2 指令调整的纯文本模型针对多语言对话使用案例进行了优化,包括代理检索和摘要任务。在常见的行业基准上,它们的性能优于许多可用的开源和封闭式聊天模型。

    二、使用步骤

    1. 任务说明

    llama生成读取txt文档的python脚本,并执行。
    Tip: prompt如何设计; generate函数中options如何设置;对话输出格式为markdown,如何导出py脚本。
    测试txt文件如下图:

    2. Demo

    代码如下(示例):

    from ollama import generate   # ollama 生成
    import re      # 用于将Markdown文件转为py脚本
    import subprocess   # 用于执行生成的脚本
    
    prompt = '''使用python写一段读取test.txt的代码,尽量精简,只要代码无需介绍'''
    
    response = generate(
      model='llama3.2:1b', #'codegemma:2b',
      prompt=prompt,
      # suffix=suffix,
      options={
        'num_predict': 128,
        'temperature': 0,
        'top_p': 0.9,
        'stop': ['<EOT>'],
      },
    )
    
    out = response['response']
    print(out)
    
    # 匹配 Markdown 中的 Python 代码块
    code_blocks = re.findall(r"```python(.*?)```", out, re.DOTALL)
    # 匹配非代码块的文本,并作为注释处理
    comments = re.split(r"python.*?", out, flags=re.DOTALL)
    print("code_blocks: ", code_blocks)
    
    output_filename="output.py"
    # 将结果写入文件
    with open(output_filename, "w") as f:
      f.write("\n".join(code_blocks))
    
    # Step 5: 执行生成的代码
    print("\nExecuting Generated Code:")
    result = subprocess.run(["python", "output.py"], capture_output=True, text=True)
    print(result.stdout)  # 输出代码执行结果
    

    3. 运行结果


    生成的脚本:


    总结

    llama3.2虽然不是直接生成代码,但可以通过提取markdown中的代码部分,实现和codegemma等代码生成模型同样的功能。

    作者:cladel

    物联沃分享整理
    物联沃-IOTWORD物联网 » python调用模型llama3.2生成代码并执行

    发表回复