-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
30 lines (25 loc) · 870 Bytes
/
main.py
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
import json
import os
import firebase_admin
import openai
from fastapi_poe import make_app
from firebase_admin import credentials
from modal import Image, Secret, Stub, asgi_app
from imagen_bot import ImaGenBot
image = Image.debian_slim().pip_install_from_requirements("requirements.txt")
stub = Stub("imagen-poe-app")
@stub.function(image=image, secret=Secret.from_name("imagen-poe-secret"))
@asgi_app()
def fastapi_app():
openai.api_key = os.environ["OPENAI_API_KEY"]
cred = credentials.Certificate(json.loads(os.environ["FIREBASE_KEY_JSON"]))
firebase_admin.initialize_app(
cred,
{
"storageBucket": "imagen-poe.appspot.com",
"databaseURL": "https://imagen-poe-default-rtdb.firebaseio.com/",
},
)
bot = ImaGenBot()
app = make_app(bot, access_key=os.environ["POE_ACCESS_KEY"])
return app