imagegpt / app.py
zliang's picture
Update app.py
ce16251 verified
raw
history blame
2.01 kB
from fastapi import FastAPI
import base64
import os
import sys
import uvicorn
from imagekitio import ImageKit
from imagekitio.models.ListAndSearchFileRequestOptions import ListAndSearchFileRequestOptions
from fastapi.middleware.cors import CORSMiddleware
import base64
app = FastAPI()
# Configure CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["https://aiphotographer.github.io"], # Allows only this origin
allow_credentials=True,
allow_methods=["*"], # Allows all methods
allow_headers=["*"], # Allows all headers
)
imagekit = ImageKit(
public_key=os.environ.get("public_key"),
private_key=os.environ.get("private_key"),
url_endpoint=os.environ.get("url_endpoint")
)
@app.get("/")
def read_root():
return {
"introduction": "Welcome to the AI Photo Creator App! Here's how to use it: "
"Step 1: 📸 Tell me what picture you want to take, and I will create one for you. "
"Step 2: 🌍 If you feel satisfied with the photo created by me, you can copy and paste "
"the photo address and share your photo on our crowd-sourced AI photography website."
}
@app.get("/image_upload")
def upload_image(url):
try:
# Upload the image to ImageKit
upload = imagekit.upload(
file=url,
file_name="image.jpg",
)
# Return the upload response
return {"message": "uploaded successfuly, check https://chatzl.github.io/photographer.html for your work!"}
except Exception as e:
return {"error": str(e)}
@app.get("/images_list")
async def get_images():
list_files = imagekit.list_files(options=ListAndSearchFileRequestOptions(search_query='createdAt >= "7d"'))
list_files_sorted=sorted(list_files.response_metadata.raw, key=lambda x: x['createdAt'],reverse=True)
return list_files_sorted
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860)