File size: 1,126 Bytes
dc47049
2b56f22
 
 
 
 
dc47049
 
2b56f22
 
 
 
 
 
 
 
 
 
 
 
 
8e70d15
 
 
 
 
2b56f22
 
 
 
 
 
 
dc47049
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from fastapi import FastAPI, Request, HTTPException
from fastapi.responses import JSONResponse
from transformers import pipeline

app = FastAPI()

# Initialize the text generation pipeline with trust_remote_code=True
pipe = pipeline("text-generation", model="microsoft/Phi-3-mini-4k-instruct", trust_remote_code=True)

@app.middleware("http")
async def log_requests(request: Request, call_next):
    print(f"Incoming request: {request.method} {request.url}")
    response = await call_next(request)
    return response

@app.get("/")
def read_root():
    return {
        "message": "Welcome to the FastAPI text generation API! Use the /generate endpoint with a 'text' query parameter."
    }

@app.post("/generate")
def generate(payload: dict):
    text = payload.get("text", "")
    if not text:
        raise HTTPException(status_code=400, detail="Text input is required.")
    try:
        output = pipe(text)
        return {"output": output[0]["generated_text"]}
    except Exception as e:
        return JSONResponse(
            status_code=500,
            content={"error": f"An error occurred: {str(e)}"}
        )