legitey01's picture
Update api.py
28350f5 verified
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
from llama_cpp import Llama
import traceback
app = FastAPI(title="List 2.0 Ultra Codex API")
# Identidade oficial da List Enterprise
SYSTEM_PROMPT = {
"role": "system",
"content": "Você é o List 2.0 Ultra Codex, a engine oficial de inteligência artificial da List Enterprise, integrada ao List Coder IDE. Você foi criado pela equipe da List Enterprise e pelo Legitey. Você é focado em programação, rápido e eficiente. Nunca diga que é o Claude, ChatGPT ou Qwen; você é sempre o List 2.0 Ultra Codex."
}
print("Carregando o motor List Enterprise...")
try:
llm = Llama(
model_path="/model.gguf",
n_ctx=2048,
chat_format="chatml",
n_threads=4
)
print("Motor pronto para combate!")
except Exception as e:
print(f"Erro ao carregar modelo: {e}")
@app.post("/v1/chat/completions")
async def chat(req: Request):
try:
body = await req.json()
raw_messages = body.get("messages", [])
# INJEÇÃO DE IDENTIDADE:
# Se a primeira mensagem não for de sistema, nós inserimos a nossa.
# Se for, nós adicionamos a nossa identidade no começo dela.
if not raw_messages or raw_messages[0].get("role") != "system":
messages = [SYSTEM_PROMPT] + raw_messages
else:
raw_messages[0]["content"] = SYSTEM_PROMPT["content"] + "\n\n" + raw_messages[0]["content"]
messages = raw_messages
result = llm.create_chat_completion(
messages=messages,
temperature=0.7,
max_tokens=1024
)
# Ajuste para o nome do modelo no retorno ficar bonito
result["model"] = "list-2-0-ultra-codex"
return result
except Exception as e:
error_stack = traceback.format_exc()
print(f"ERRO NA REQUISIÇÃO:\n{error_stack}")
return JSONResponse(
status_code=500,
content={"error": str(e), "stack": error_stack}
)
@app.get("/v1/models")
async def list_models():
return {
"object": "list",
"data": [
{
"id": "list-2-0-ultra-codex",
"object": "model",
"owned_by": "list-enterprise"
}
]
}
@app.get("/")
def home():
return {"status": "List Coder AI Online e Blindado!", "model": "list-2-0-ultra-codex"}