Spaces:
Sleeping
Sleeping
Commit ·
4b4334d
1
Parent(s): ee51219
API fixes
Browse files- api/main_api.py +16 -10
- requirements.txt +1 -0
api/main_api.py
CHANGED
|
@@ -1,23 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from fastapi import FastAPI, Request, Form
|
| 2 |
from fastapi.responses import PlainTextResponse
|
| 3 |
from pydantic import BaseModel
|
| 4 |
-
from agents.
|
|
|
|
|
|
|
| 5 |
import uvicorn
|
| 6 |
|
| 7 |
app = FastAPI()
|
| 8 |
|
| 9 |
-
# ---------- MODELO PARA USO JSON ----------
|
| 10 |
class AskInput(BaseModel):
|
| 11 |
message: str
|
| 12 |
-
model_name: str =
|
|
|
|
| 13 |
|
| 14 |
-
# ---------- ENDPOINT API REST JSON ----------
|
| 15 |
@app.post("/ask")
|
| 16 |
async def ask_json(input_data: AskInput):
|
| 17 |
-
|
|
|
|
| 18 |
return {"response": answer}
|
| 19 |
|
| 20 |
-
# ---------- ENDPOINT PARA TWILIO WHATSAPP ----------
|
| 21 |
@app.post("/whatsapp")
|
| 22 |
async def whatsapp_webhook(
|
| 23 |
request: Request,
|
|
@@ -25,15 +30,16 @@ async def whatsapp_webhook(
|
|
| 25 |
From: str = Form(...),
|
| 26 |
ProfileName: str = Form(None)
|
| 27 |
):
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
| 29 |
return PlainTextResponse(response_text)
|
| 30 |
|
| 31 |
-
# ---------- RESET AGENTES EN AMBOS CASOS ----------
|
| 32 |
@app.post("/reset")
|
| 33 |
async def reset_memory():
|
| 34 |
-
|
| 35 |
return {"status": "ok", "message": "Memory reset"}
|
| 36 |
|
| 37 |
-
# ---------- EJECUCIÓN LOCAL ----------
|
| 38 |
if __name__ == "__main__":
|
| 39 |
uvicorn.run("api.main_api:app", host="0.0.0.0", port=8000, reload=True)
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
import os
|
| 3 |
+
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
| 4 |
+
|
| 5 |
from fastapi import FastAPI, Request, Form
|
| 6 |
from fastapi.responses import PlainTextResponse
|
| 7 |
from pydantic import BaseModel
|
| 8 |
+
from agents.session import ask_jarvis, reset_cache
|
| 9 |
+
from enums.core_enums import ModelEnum
|
| 10 |
+
from config import DEFAULT_MODEL
|
| 11 |
import uvicorn
|
| 12 |
|
| 13 |
app = FastAPI()
|
| 14 |
|
|
|
|
| 15 |
class AskInput(BaseModel):
|
| 16 |
message: str
|
| 17 |
+
model_name: str = DEFAULT_MODEL.name
|
| 18 |
+
thread_id: str
|
| 19 |
|
|
|
|
| 20 |
@app.post("/ask")
|
| 21 |
async def ask_json(input_data: AskInput):
|
| 22 |
+
model_enum = ModelEnum[input_data.model_name]
|
| 23 |
+
answer = ask_jarvis(input_data.message, model_enum, input_data.thread_id)
|
| 24 |
return {"response": answer}
|
| 25 |
|
|
|
|
| 26 |
@app.post("/whatsapp")
|
| 27 |
async def whatsapp_webhook(
|
| 28 |
request: Request,
|
|
|
|
| 30 |
From: str = Form(...),
|
| 31 |
ProfileName: str = Form(None)
|
| 32 |
):
|
| 33 |
+
model_enum = DEFAULT_MODEL
|
| 34 |
+
thread_id = From # Use the phone number as thread_id to maintain continuity between messages from the same user
|
| 35 |
+
responses = ask_jarvis(Body, model_enum, thread_id)
|
| 36 |
+
response_text = "\n".join(responses)
|
| 37 |
return PlainTextResponse(response_text)
|
| 38 |
|
|
|
|
| 39 |
@app.post("/reset")
|
| 40 |
async def reset_memory():
|
| 41 |
+
reset_cache()
|
| 42 |
return {"status": "ok", "message": "Memory reset"}
|
| 43 |
|
|
|
|
| 44 |
if __name__ == "__main__":
|
| 45 |
uvicorn.run("api.main_api:app", host="0.0.0.0", port=8000, reload=True)
|
requirements.txt
CHANGED
|
@@ -8,3 +8,4 @@ cryptography
|
|
| 8 |
python-dotenv
|
| 9 |
langchain-mcp-adapters
|
| 10 |
mcp
|
|
|
|
|
|
| 8 |
python-dotenv
|
| 9 |
langchain-mcp-adapters
|
| 10 |
mcp
|
| 11 |
+
fastapi
|