-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
35 lines (28 loc) · 946 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
31
32
33
34
35
from fastapi import FastAPI, Form, Request
from utils import send_message, download_audio
from model import response_from_gemini
import os
app = FastAPI()
@app.post("/message")
async def reply(request: Request):
twilio_request = await request.form()
print(twilio_request)
text_message = twilio_request.get("Body", "").strip()
number = twilio_request.get("From").replace("whatsapp:","")
print(number, text_message)
audio_url = twilio_request.get("MediaUrl0", "")
if text_message:
response = response_from_gemini(text_message)
send_message(number, response)
print(response)
if audio_url:
audio_message = download_audio(audio_url)
text = audio_to_text(audio_message)
response = response_from_gemini(text)
send_message(number, response)
if os.path.exists(audio_message):
os.remove(audio_message)
return ""
# if __name__ == "__main__":
# import uvicorn
# uvicorn.run(app, host='127.0.0.1', port=12745, reload=True)