|
|
import os |
|
|
from fastapi import FastAPI |
|
|
from pydantic import BaseModel |
|
|
from llama_cpp import Llama |
|
|
from huggingface_hub import hf_hub_download |
|
|
|
|
|
|
|
|
REPO_ID = "darkshop/olama" |
|
|
FILENAME = "Llama-1B-Instruct.gguf" |
|
|
|
|
|
|
|
|
MODEL_FILE = os.path.join(os.getcwd(), FILENAME) |
|
|
|
|
|
|
|
|
if not os.path.exists(MODEL_FILE): |
|
|
print(f"Baixando {FILENAME} do Hub...") |
|
|
MODEL_FILE = hf_hub_download(repo_id=REPO_ID, filename=FILENAME) |
|
|
|
|
|
|
|
|
llm = Llama(model_path=MODEL_FILE) |
|
|
|
|
|
|
|
|
app = FastAPI(title="Darkshop Llama API") |
|
|
|
|
|
class Prompt(BaseModel): |
|
|
text: str |
|
|
max_tokens: int = 200 |
|
|
|
|
|
@app.post("/gerar") |
|
|
def gerar_texto(prompt: Prompt): |
|
|
result = llm(prompt.text, max_tokens=prompt.max_tokens) |
|
|
return {"texto": result['text']} |
|
|
|
|
|
@app.get("/") |
|
|
def root(): |
|
|
return {"mensagem": "API do modelo darkshop/olama ativa!"} |
|
|
|
|
|
|
|
|
|
|
|
|