Spaces:
Running
Running
TahaFawzyElshrif commited on
Commit ·
a1b8590
1
Parent(s): 9e6d645
modified processing to use queue
Browse files- Dockerfile +3 -0
- app.py +35 -2
Dockerfile
CHANGED
|
@@ -13,4 +13,7 @@ RUN pip install --no-cache-dir --upgrade pip && \
|
|
| 13 |
|
| 14 |
COPY . .
|
| 15 |
|
|
|
|
|
|
|
|
|
|
| 16 |
CMD ["python", "app.py"]
|
|
|
|
| 13 |
|
| 14 |
COPY . .
|
| 15 |
|
| 16 |
+
#CMD ["python", "Consumer.py"] won't work. reliability?
|
| 17 |
+
CMD ["python", "Consumer.py"]
|
| 18 |
+
|
| 19 |
CMD ["python", "app.py"]
|
app.py
CHANGED
|
@@ -24,9 +24,39 @@ class RequestModel(BaseModel):
|
|
| 24 |
def read_root():
|
| 25 |
return {"message": "Hello From CodeBuddyAI!"}
|
| 26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
# fill with last state
|
| 31 |
try:
|
| 32 |
state = json.loads(request.last_state)
|
|
@@ -46,6 +76,9 @@ def call(request: RequestModel):
|
|
| 46 |
return {"Data": answer}
|
| 47 |
|
| 48 |
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
if __name__ == "__main__":
|
| 51 |
uvicorn.run(app, host="0.0.0.0", port=7860)
|
|
|
|
| 24 |
def read_root():
|
| 25 |
return {"message": "Hello From CodeBuddyAI!"}
|
| 26 |
|
| 27 |
+
######################
|
| 28 |
+
# Producer
|
| 29 |
+
import pika
|
| 30 |
+
RABBITMQ_URL = os.environ["RABBITMQ_URL"]
|
| 31 |
+
QUEUE_NAME = os.environ["QUEUE_NAME"]
|
| 32 |
|
| 33 |
+
def get_connection():
|
| 34 |
+
params = pika.URLParameters(RABBITMQ_URL)
|
| 35 |
+
return pika.BlockingConnection(params)
|
| 36 |
+
|
| 37 |
+
connection = get_connection()
|
| 38 |
+
def send_message(data: dict):
|
| 39 |
+
connection = get_connection()
|
| 40 |
+
channel = connection.channel()
|
| 41 |
+
|
| 42 |
+
channel.queue_declare(queue=QUEUE_NAME, durable=True)
|
| 43 |
+
|
| 44 |
+
message = str(data)
|
| 45 |
+
|
| 46 |
+
channel.basic_publish(
|
| 47 |
+
exchange='',
|
| 48 |
+
routing_key=QUEUE_NAME,
|
| 49 |
+
body=message,
|
| 50 |
+
properties=pika.BasicProperties(
|
| 51 |
+
delivery_mode=2, # make message persistent
|
| 52 |
+
)
|
| 53 |
+
)
|
| 54 |
+
|
| 55 |
+
connection.close()
|
| 56 |
+
|
| 57 |
+
return {"status": "sent", "data": data}
|
| 58 |
+
######################
|
| 59 |
+
def old_call(request: RequestModel):
|
| 60 |
# fill with last state
|
| 61 |
try:
|
| 62 |
state = json.loads(request.last_state)
|
|
|
|
| 76 |
return {"Data": answer}
|
| 77 |
|
| 78 |
|
| 79 |
+
@app.post("/call/")
|
| 80 |
+
def call(request: RequestModel):
|
| 81 |
+
return send_message(request.model_dump())
|
| 82 |
|
| 83 |
if __name__ == "__main__":
|
| 84 |
uvicorn.run(app, host="0.0.0.0", port=7860)
|