code: def _get_or_create_project(
      session,
      project_name,
      description=None,
      system_tags=None,
      project_id=None,
  ):
      """Return the ID of an existing project, or if it does not exist, make a new one and return that ID instead."""
      project_system_tags = []
      if not project_id:
          res = session.send(
              projects.GetAllRequest(
                  name=exact_match_regex(project_name),
                  only_fields=["id", "system_tags"]
                  if system_tags
                  else ["id"],
                  search_hidden=True,
                  _allow_extra_fields_=True,
              )
          )
          if res and res.response and res.response.projects:
              project_id = res.response.projects[0].id
              if system_tags:
                  project_system_tags = res.response.projects[
                      0
                  ].system_tags
  
      if (
          project_id
          and system_tags
          and (
              not project_system_tags
              or not set(system_tags).issubset(project_system_tags)
          )
      ):
          # set system_tags
          session.send(
              projects.UpdateRequest(
                  project=project_id,
                  system_tags=list(
                      set((project_system_tags or []) + system_tags)
                  ),
              )
          )
  
      if project_id:
          return project_id
  
      # project was not found, so create a new one
      res = session.send(
          projects.CreateRequest(
              name=project_name,
              description=description or "",
              system_tags=system_tags,
          )
      )
      return res.response.id if res else None
  
imports: import getpass
  import re
  from _socket import gethostname
  from datetime import datetime
  from typing import Optional, Any
  from ..backend_api.services import projects, queues
  from ..debugging.log import get_logger, LoggerRoot
label_desc: Use image node_id 5 for calling a global function with example usage: _get_or_create_project(session, project_name, description, system_tags, project_id) and returns: unknown, project_id