JRealValdes commited on
Commit
4b4334d
·
1 Parent(s): ee51219

API fixes

Browse files
Files changed (2) hide show
  1. api/main_api.py +16 -10
  2. 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.assistant import ask_jarvis, reset_agents_cache
 
 
5
  import uvicorn
6
 
7
  app = FastAPI()
8
 
9
- # ---------- MODELO PARA USO JSON ----------
10
  class AskInput(BaseModel):
11
  message: str
12
- model_name: str = "GPT_3_5"
 
13
 
14
- # ---------- ENDPOINT API REST JSON ----------
15
  @app.post("/ask")
16
  async def ask_json(input_data: AskInput):
17
- answer = ask_jarvis(input_data.message, input_data.model_name)
 
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
- response_text = ask_jarvis(Body, "GPT_3_5")
 
 
 
29
  return PlainTextResponse(response_text)
30
 
31
- # ---------- RESET AGENTES EN AMBOS CASOS ----------
32
  @app.post("/reset")
33
  async def reset_memory():
34
- reset_agents_cache()
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