Skip to main content

Project

Represents a project in the Galileo platform. Projects are containers for logs, traces, and other data in Galileo. All logs are stored within a project, and users can create and manage projects to organize their LLM usage data. Arguments
  • created_at (datetime.datetime): The timestamp when the project was created.
  • created_by (str): The identifier of the user who created the project.
  • id (str): The unique identifier of the project.
  • updated_at (datetime.datetime): The timestamp when the project was last updated.
  • bookmark (Union[Unset, bool]): Whether the project is bookmarked. Defaults to False.
  • name (Union[None, Unset, str]): The name of the project.
  • permissions (Union[Unset, list["Permission"]])): The permissions associated with the project.
  • type (Union[None, ProjectType, Unset]): The type of the project, typically GEN_AI.

Projects

create

def create(self, name: str) -> Project
Creates a new project. Arguments
  • name (str): The name of the project.
Raises
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • Project: The created project.

delete_project

def delete_project(self, id: Optional[str]=None, name: Optional[str]=None) -> bool
Internal method to handle project deletion logic.

get

def get(self,
        *,
        id: Optional[str]=None,
        name: Optional[str]=None) -> Optional[Project]
Retrieves a project by id or name (exactly one of id or name must be provided). Arguments
  • id (str): The id of the project.
  • name (str): The name of the project.
Raises
  • ValueError: If neither or both id and name are provided.
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • Project: The project.

get_with_env_fallbacks

def get_with_env_fallbacks(self,
                           *,
                           id: Optional[str]=None,
                           name: Optional[str]=None) -> Optional[Project]
Retrieves a project by id or name. Either id or name must be provided, but not both. If neither is provided, the method will attempt to read from the environment variables GALILEO_PROJECT_ID and GALILEO_PROJECT. If both environment variables are set, a ValueError is raised. Arguments
  • id (str): The id of the project.
  • name (str): The name of the project.
Raises
  • ValueError: If neither or both id and name are provided.
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • Project: The project.

list

def list(self) -> list[Project]
Lists all projects. Raises
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • list[Project]: A list of projects.

create_project

def create_project(name: str) -> Project
Creates a new project. Arguments
  • name (str): The name of the project.
  • type_ (ProjectType): The type of the project.
Raises
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • Project: The created project.

delete_project

def delete_project(*, id: Optional[str]=None, name: Optional[str]=None) -> bool
Deletes a gen_ai project by ID or name (exactly one of id or name must be provided). Arguments
  • id (str): The ID of the project to delete.
  • name (str): The name of the project to delete.
Raises
  • ValueError: If neither or both id and name are provided.
  • ProjectsAPIException: If the server returns an error response or if the project is not a gen_ai project.
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • bool: True if the project was successfully deleted, False otherwise.
Examples
delete_project(id="8aed99a3-c678-49a3-80e8-2bf914eda7a5")
delete_project(name="my-project")

get_project

def get_project(*,
                id: Optional[str]=None,
                name: Optional[str]=None) -> Optional[Project]
Retrieves a project by id or name (exactly one of id or name must be provided). Arguments
  • id (str): The id of the project.
  • name (str): The name of the project.
  • with_content (bool): Whether to return the content of the project. Default is False.
Raises
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • Project: The project.

list_projects

def list_projects() -> list[Project]
Lists all projects. Arguments
  • limit (Union[Unset, int]): The maximum number of projects to return. Default is 100.
Raises
  • errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
  • httpx.TimeoutException: If the request takes longer than Client.timeout.
Returns
  • list[Project]: A list of projects.

list_user_project_collaborators

def list_user_project_collaborators(project_id: str) -> list[UserCollaborator]
List all users that a project is shared with. Arguments
  • project_id (str): The ID of the project.
Returns
  • List[UserCollaborator]: A list of users that the project is shared with.

share_project_with_user

def share_project_with_user(project_id: str,
                            user_id: str,
                            role: CollaboratorRole=CollaboratorRole.VIEWER) -> UserCollaborator
Share a project with a user. Arguments
  • project_id (str): The ID of the project.
  • user_id (str): The ID of the user.
  • role (CollaboratorRole): The role to assign to the user.
Returns
  • UserCollaborator: The created user collaborator object.

unshare_project_with_user

def unshare_project_with_user(project_id: str, user_id: str) -> None
Unshare a project with a user. Arguments
  • project_id (str): The ID of the project.
  • user_id (str): The ID of the user.

update_user_project_collaborator

def update_user_project_collaborator(project_id: str,
                                     user_id: str,
                                     role: CollaboratorRole=CollaboratorRole.VIEWER) -> UserCollaborator
Update a user’s role for a project. Arguments
  • project_id (str): The ID of the project.
  • user_id (str): The ID of the user.
  • role (CollaboratorRole): The new role to assign to the user.
Returns
  • UserCollaborator: The updated user collaborator object.
I