Spaces:
Sleeping
Sleeping
def sample_data_retrieval_agent(state): | |
"""Retrieves sample data (3 rows) from each relevant table.""" | |
relevant_tables = state.get("relevant_tables", []) | |
client = state["client"] | |
if not relevant_tables: | |
return {"sample_data": {}} | |
if client is None: | |
return {"sample_data": {"error": "Failed to connect to BigQuery."}} | |
sample_data = {} | |
for table in relevant_tables: | |
try: | |
# Clean table name if needed | |
clean_table = table.replace("`", "").strip() | |
# Query to get 3 sample rows | |
query = f""" | |
SELECT * FROM `{clean_table}` | |
LIMIT 3 | |
""" | |
query_job = client.query(query) | |
results = query_job.result() | |
# Convert results to a list of dictionaries | |
rows = [] | |
for row in results: | |
rows.append(dict(row.items())) | |
sample_data[clean_table] = rows | |
except Exception as e: | |
sample_data[clean_table] = {"error": str(e)} | |
return {"sample_data": sample_data} |