Spaces:
Sleeping
Sleeping
| from langchain.tools import tool | |
| from configs.config import get_settings | |
| from runs.database.db import connect_to_db | |
| from runs.etl.pipeline import read | |
| def get_yfinance_source_tool() -> str: | |
| """ | |
| Retrieve the latest gold price data from the database and return it as a | |
| Markdown table. Returns the most recent rows (configurable via MAX_ROWS). | |
| The table schema includes: Date (index), Open, High, Low, Close, Adj Close, Volume. | |
| Returns: | |
| str: Markdown-formatted DataFrame, or a descriptive error message. | |
| """ | |
| MAX_ROWS = 30 | |
| try: | |
| with connect_to_db() as conn: | |
| df = read(conn, "gold_price") | |
| if df.empty: | |
| return "No gold price data found in the database." | |
| df = df.sort_index(ascending=False)[:MAX_ROWS] | |
| return df.to_markdown(index=True) | |
| except Exception as e: | |
| return f"Error retrieving gold price data: {e}" | |