You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

agent_providers.py 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from flask_login import current_user
  2. from flask_restx import Resource, fields
  3. from controllers.console import api, console_ns
  4. from controllers.console.wraps import account_initialization_required, setup_required
  5. from core.model_runtime.utils.encoders import jsonable_encoder
  6. from libs.login import login_required
  7. from services.agent_service import AgentService
  8. @console_ns.route("/workspaces/current/agent-providers")
  9. class AgentProviderListApi(Resource):
  10. @api.doc("list_agent_providers")
  11. @api.doc(description="Get list of available agent providers")
  12. @api.response(
  13. 200,
  14. "Success",
  15. fields.List(fields.Raw(description="Agent provider information")),
  16. )
  17. @setup_required
  18. @login_required
  19. @account_initialization_required
  20. def get(self):
  21. user = current_user
  22. user_id = user.id
  23. tenant_id = user.current_tenant_id
  24. return jsonable_encoder(AgentService.list_agent_providers(user_id, tenant_id))
  25. @console_ns.route("/workspaces/current/agent-provider/<path:provider_name>")
  26. class AgentProviderApi(Resource):
  27. @api.doc("get_agent_provider")
  28. @api.doc(description="Get specific agent provider details")
  29. @api.doc(params={"provider_name": "Agent provider name"})
  30. @api.response(
  31. 200,
  32. "Success",
  33. fields.Raw(description="Agent provider details"),
  34. )
  35. @setup_required
  36. @login_required
  37. @account_initialization_required
  38. def get(self, provider_name: str):
  39. user = current_user
  40. user_id = user.id
  41. tenant_id = user.current_tenant_id
  42. return jsonable_encoder(AgentService.get_agent_provider(user_id, tenant_id, provider_name))