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