File size: 2,117 Bytes
d9d1d8d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import os
import re
import requests
from tqdm import tqdm
from model import ask
from agentgen import create_image
from tools import *
if not os.path.exists("agent"):
os.makedirs("agent")
def save_to_file(filename, file_content):
if not filename.startswith("agent/"):
filename = os.path.join("agent", filename)
os.makedirs(os.path.dirname(filename), exist_ok=True)
print(f"Creating file: {filename}")
with open(filename, "w", encoding="utf-8") as file:
file.write(file_content)
print(f"File {filename} created successfully.")
def parse_and_run(response):
code_blocks = re.findall(r'```python(.*?)```', response, re.DOTALL)
for block in tqdm(code_blocks, desc="Executing Code Blocks", unit="block"):
code = block.strip()
try:
exec(code, globals())
except Exception as e:
print(f"\nError executing code block:\n{code}\n\nException: {e}")
auto_detect_html_and_link_css()
def run_agent(task):
build_robotstxt_file()
build_license_file()
build_css_file()
system_prompt = f"""
You are an AI agent, your response must be in python code, using only the following functions:
save_to_file(filename,file_content)
create_image(filename, prompt)
save_to_file() saves a file with the given filename and content.
create_image() creates an image with the given filename and prompt. for example as prompt you can use "A beautiful landscape with mountains and a river", or any image you want.
Based on this task: {task}, make all the files. These are the files you need to create:
- A file named "index.html" with the HTML content.
- A file named "style.css" with the CSS content.
- A file named "script.js" with the JavaScript content or just console.log("app started") if no JS is needed.
- An image file named "logo.png" with the logo image.
- A README.md file with a description of the project and how to run it.
- Any other files you deem necessary for the project.
Your task is:
{task}
"""
print("\nSending task to agent...\n")
response = ask(system_prompt)
parse_and_run(response)
|