Hjgugugjhuhjggg commited on
Commit
e57eacb
verified
1 Parent(s): 42b241b

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -0
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import uvicorn
2
+ from fastapi import FastAPI
3
+ from pydantic import BaseModel
4
+ import subprocess
5
+ import os
6
+
7
+ # Inicializar la aplicaci贸n FastAPI
8
+ app = FastAPI()
9
+
10
+ # Definir la estructura de entrada para el prompt de la API
11
+ class PromptRequest(BaseModel):
12
+ prompt: str
13
+
14
+ # Ruta principal para ejecutar el modelo
15
+ @app.post("/generate/")
16
+ async def generate_text(request: PromptRequest):
17
+ model_path = "/content/executorch/Llama-3.2-1B-Instruct-SpinQuant_INT4_EO8.pte"
18
+ tokenizer_path = "/content/executorch/tokenizer.model"
19
+ prompt = request.prompt
20
+
21
+ # Ejecutar el modelo llamando a la funci贸n que ejecuta el comando
22
+ result = run_llama_model(model_path, tokenizer_path, prompt)
23
+
24
+ return {"generated_text": result}
25
+
26
+ def run_command(command):
27
+ """Ejecutar un comando en el shell."""
28
+ result = subprocess.run(command, shell=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
29
+ if result.returncode != 0:
30
+ return f"Error ejecutando el comando: {result.stderr}"
31
+ return result.stdout
32
+
33
+ def run_llama_model(model_path, tokenizer_path, prompt):
34
+ """Ejecutar el modelo Llama."""
35
+ cmd = f"cd /content/executorch/cmake-out/examples/models/llama && ./llama_main --model_path={model_path} --tokenizer_path={tokenizer_path} --prompt='{prompt}'"
36
+ return run_command(cmd)
37
+
38
+ # Iniciar el servidor Uvicorn directamente desde el c贸digo Python
39
+ if __name__ == "__main__":
40
+ uvicorn.run(app, host="0.0.0.0", port=8000, reload=True)