python调用模型llama3.2生成代码并执行
文章目录
前言
基于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