in UI/dbai_src/dbai.py [0:0]
def create_metadata_cache(self):
"""
create the metadata cache file for the specified Tables in DB
for all columns
"""
gen_description_prompt = """
Based on the columns information of this table.
Generate a very brief description for this table.
TABLE: {table_id}
columns_info: {columns_info}
"""
if self.tables_list in [[], [''], '']:
api_response = self.bq_client.list_tables(self.dataset_id)
self.tables_list = [table.table_id for table in api_response]
metadata = {}
for table_id in self.tables_list:
columns_info = self.bq_client.get_table(
f'{self.dataset_id}.{table_id}'
).to_api_repr()['schema']
# remove unwanted details like 'mode'
for field in columns_info.get('fields', []):
field.pop('mode', None)
metadata[table_id] = {}
metadata[table_id]["table_name"] = table_id
metadata[table_id]["columns_info"] = columns_info
prompt = gen_description_prompt.format(table_id=table_id,
columns_info=columns_info
)
metadata[table_id]["table_description"] = gemini.generate_content(
prompt
).text
return metadata