|
from fastapi import FastAPI, Request, Form |
|
from fastapi.responses import PlainTextResponse |
|
import requests |
|
|
|
app = FastAPI() |
|
|
|
|
|
conversation_histories = {} |
|
|
|
API_URL = "https://riohdigital-teste-de-assistentes.hf.space/api/v1/prediction/61bb3fef-765f-43c4-bb49-15597ffa7169" |
|
|
|
def query(payload): |
|
response = requests.post(API_URL, json=payload) |
|
return response.json() |
|
|
|
@app.post("/whatsapp") |
|
async def reply_whatsapp(request: Request): |
|
form = await request.form() |
|
incoming_msg = form.get('Body', '').lower() |
|
from_number = form.get('From') |
|
|
|
print(incoming_msg) |
|
print(from_number) |
|
|
|
|
|
user_history = conversation_histories.get(from_number, []) |
|
|
|
|
|
user_history.append(incoming_msg) |
|
|
|
|
|
conversation_histories[from_number] = user_history |
|
|
|
|
|
history_text = " ".join(user_history) |
|
|
|
output = query({ |
|
"question": history_text, |
|
}) |
|
|
|
|
|
user_history.append(output['text']) |
|
|
|
|
|
conversation_histories[from_number] = user_history |
|
|
|
return PlainTextResponse(output['text'], status_code=200) |