def _get_one()

in genai-on-vertex-ai/gemini/evals_playbook/utils/evals_playbook.py [0:0]


    def _get_one(self, table_class, where_keys, limit_offset=1, as_dict=False):
        client = bigquery.Client(project=cfg.PROJECT_ID)
        table_name = BQ_TABLE_MAP.get(table_class).get("table_name")
        table_id = f"{cfg.PROJECT_ID}.{cfg.BQ_DATASET_ID}.{table_name}"
        table = client.get_table(table_id)
        cols = [schema.name for schema in table.schema]
        
        if where_keys:
            where_clause = "WHERE "
            where_clause += "AND ".join([f"{k} = '{v}'"for k,v in where_keys.items()])
        sql = f"""
            SELECT {", ".join(cols)}
            FROM `{table_id}`
            {where_clause}
            ORDER BY create_datetime DESC
            LIMIT {limit_offset}
        """
        df = client.query_and_wait(sql).to_dataframe()
        if as_dict:
            return df.to_dict(orient='records')
        else:
            return df