ThongCoding's picture
s
8d85a2c
raw
history blame
1.32 kB
import os
import requests
from llama_cpp import Llama
MODEL_URL = "https://huggingface.co/MaziyarPanahi/Llama-3.2-1B-Instruct-GGUF/resolve/main/Llama-3.2-1B-Instruct.Q4_K_M.gguf"
MODEL_FILENAME = "Llama-3.2-1B-Instruct.Q4_K_M.gguf"
MODEL_PATH = f"./models/{MODEL_FILENAME}"
def download_model():
os.makedirs("./models", exist_ok=True)
print("📦 Downloading GGUF model directly from URL...")
with requests.get(MODEL_URL, stream=True) as r:
r.raise_for_status()
with open(MODEL_PATH, "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
print(f"✅ Model downloaded to {MODEL_PATH}")
# Only download if not already present
if not os.path.exists(MODEL_PATH):
download_model()
# Load model with llama-cpp-python
llm = Llama(
model_path=MODEL_PATH,
n_ctx=512,
n_batch=512,
n_threads=6,
chat_format="llama-3",
verbose=False
)
def generate_structure(prompt: str) -> str:
messages = [
{"role": "system", "content": "You are a Minecraft-style structure planner. You always respond with strictly valid JSON describing a 3D structure."},
{"role": "user", "content": prompt}
]
output = llm.create_chat_completion(messages=messages)
return output["choices"][0]["message"]["content"]