Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

wraps.py 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from collections.abc import Callable
  2. from functools import wraps
  3. from controllers.console.datasets.error import PipelineNotFoundError
  4. from extensions.ext_database import db
  5. from libs.login import current_user
  6. from models.account import Account
  7. from models.dataset import Pipeline
  8. def get_rag_pipeline(
  9. view: Callable | None = None,
  10. ):
  11. def decorator(view_func):
  12. @wraps(view_func)
  13. def decorated_view(*args, **kwargs):
  14. if not kwargs.get("pipeline_id"):
  15. raise ValueError("missing pipeline_id in path parameters")
  16. if not isinstance(current_user, Account):
  17. raise ValueError("current_user is not an account")
  18. pipeline_id = kwargs.get("pipeline_id")
  19. pipeline_id = str(pipeline_id)
  20. del kwargs["pipeline_id"]
  21. pipeline = (
  22. db.session.query(Pipeline)
  23. .where(Pipeline.id == pipeline_id, Pipeline.tenant_id == current_user.current_tenant_id)
  24. .first()
  25. )
  26. if not pipeline:
  27. raise PipelineNotFoundError()
  28. kwargs["pipeline"] = pipeline
  29. return view_func(*args, **kwargs)
  30. return decorated_view
  31. if view is None:
  32. return decorator
  33. else:
  34. return decorator(view)