medically / app.py
AxL95's picture
Update app.py
800cf25 verified
raw
history blame
2.01 kB
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
from fastapi.staticfiles import StaticFiles
from fastapi import Request
import requests
import numpy as np
import argparse
import os
HOST = os.environ.get("API_URL", "0.0.0.0")
PORT = os.environ.get("PORT", 7860)
parser = argparse.ArgumentParser()
parser.add_argument("--host", default=HOST)
parser.add_argument("--port", type=int, default=PORT)
parser.add_argument("--reload", action="store_true", default=True)
parser.add_argument("--ssl_certfile")
parser.add_argument("--ssl_keyfile")
args = parser.parse_args()
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
HF_TOKEN = os.getenv("REACT_APP_HF_TOKEN")
@app.get("/invert")
async def invert(text: str):
return {
"original": text,
"inverted": text[::-1],
}
@app.post("/api/chat")
async def chat(request: Request):
data = await request.json()
user_message = data.get("message", "")
headers = {"Authorization": f"Bearer {HF_TOKEN}"}
payload = {
"inputs": {
"past_user_inputs": [],
"generated_responses": [],
"text": user_message
}
}
response = requests.post(
"https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.3",
headers=headers,
json=payload
)
result = response.json()
return {"response": result}
@app.get("/data")
async def get_data():
data = {"data": np.random.rand(100).tolist()}
return JSONResponse(data)
app.mount("/", StaticFiles(directory="static", html=True), name="static")
if __name__ == "__main__":
import uvicorn
print(args)
uvicorn.run(
"app:app",
host=args.host,
port=args.port,
reload=args.reload,
ssl_certfile=args.ssl_certfile,
ssl_keyfile=args.ssl_keyfile,
)