Adicionar app/tasks.py

This commit is contained in:
2026-08-19 21:33:26 -03:00
parent 619f2283cd
commit 45aa3086e2
+40
View File
@@ -0,0 +1,40 @@
# All comments are in English.
from celery_app import celery
import requests
import json
import uuid
from models import Message, Conversation
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from config import Config
engine = create_engine(Config.DATABASE_URL)
SessionLocal = sessionmaker(bind=engine)
@celery.task(bind=True, max_retries=3)
def generate_task(self, conversation_id, model, prompt):
"""Runs an Ollama generation asynchronously."""
try:
url = f"{Config.OLLAMA_BASE_URL}/api/generate"
payload = {"model": model, "prompt": prompt}
r = requests.post(url, json=payload)
r.raise_for_status()
output = r.json().get("response", "")
db = SessionLocal()
msg = Message(
id=str(uuid.uuid4()),
conversation_id=conversation_id,
role="assistant",
content=output,
)
db.add(msg)
db.commit()
db.close()
return output
except Exception as e:
raise self.retry(exc=e, countdown=2)