ZuperAI-14B / toolkit /api.py
Tyesee's picture
toolkit: api.py
01eaedc verified
Raw History Blame Contribute Delete
1.35 kB
# -*- coding: utf-8 -*-
"""Чистое REST API (№7): модель по HTTP — для интеграции с ботами/программами.
Запуск:
venv/Scripts/python.exe api.py # порт 8002
venv/Scripts/python.exe api.py 9000 # свой порт
Эндпоинты:
GET /health -> {"ok": true, "brain": "..."}
POST /generate {"prompt": "...", "backend": "deepseek"} -> {"text": "...", "backend": "..."}
Пример (curl):
curl -X POST http://127.0.0.1:8002/generate -H "Content-Type: application/json" ^
-d "{\"prompt\": \"напиши функцию суммы\", \"backend\": \"deepseek\"}"
"""
import sys
from fastapi import FastAPI
from pydantic import BaseModel
from brain import pick, generate
app = FastAPI(title="ZuperAI API")
class GenReq(BaseModel):
prompt: str
backend: str = None
max_tokens: int = 1024
@app.get("/health")
def health():
return {"ok": True, "brain": pick()}
@app.post("/generate")
def gen(req: GenReq):
b = pick(req.backend)
msgs = [{"role": "user", "content": req.prompt}]
return {"text": generate(b, msgs, req.max_tokens), "backend": b}
if __name__ == "__main__":
import uvicorn
port = int(sys.argv[1]) if len(sys.argv) > 1 else 8002
uvicorn.run(app, host="127.0.0.1", port=port)