|
Download README.md from parafmax/Price_Prediction_Using_LlamaIndex: direct link, hf CLI and curl.
- Browser
- Download file 2.63 kB
-
https://huggingface.co/parafmax/Price_Prediction_Using_LlamaIndex/resolve/main/README.md
- Command line
-
hf download hf://parafmax/Price_Prediction_Using_LlamaIndex/README.md
-
curl -L -o README.md https://huggingface.co/parafmax/Price_Prediction_Using_LlamaIndex/resolve/main/README.md
2.63 kB
| license: llama3.3 | |
| datasets: | |
| - HuggingFaceTB/finemath | |
| base_model: | |
| - Datou1111/shou_xin | |
| from llama_index import SimpleKeywordTableIndex, Document | |
| from datetime import datetime, timedelta | |
| import requests | |
| import numpy as np | |
| import pandas as pd | |
| # Fetch historical price data | |
| def fetch_price_data(symbol="ETHUSDT", interval="1h", limit=500): | |
| """ | |
| Fetch historical price data from Binance API. | |
| """ | |
| url = f"https://api.binance.com/api/v3/klines?symbol={symbol}&interval={interval}&limit={limit}" | |
| response = requests.get(url) | |
| data = response.json() | |
| # Parse to DataFrame | |
| df = pd.DataFrame(data, columns=[ | |
| "timestamp", "open", "high", "low", "close", "volume", "close_time", | |
| "quote_asset_volume", "number_of_trades", "taker_buy_base", | |
| "taker_buy_quote", "ignore" | |
| ]) | |
| df["timestamp"] = pd.to_datetime(df["timestamp"], unit="ms") | |
| df["close"] = df["close"].astype(float) | |
| return df[["timestamp", "close"]] | |
| # Prepare price history as documents | |
| def prepare_documents(df, window_size=5): | |
| """ | |
| Convert sliding price windows into Llama documents. | |
| """ | |
| prices = df["close"].values | |
| timestamps = df["timestamp"].values | |
| documents = [] | |
| for i in range(len(prices) - window_size): | |
| time_range = f"{timestamps[i]} to {timestamps[i + window_size]}" | |
| price_window = prices[i:i + window_size] | |
| content = f"Price trend from {time_range}: {price_window.tolist()}" | |
| documents.append(Document(content)) | |
| return documents | |
| # LlamaIndex-based predictive task | |
| def train_with_llama_index(documents): | |
| """ | |
| Create a Simple Keyword Table Index to simulate trend prediction using LlamaIndex. | |
| """ | |
| index = SimpleKeywordTableIndex.from_documents(documents) | |
| # Simulating a market prediction | |
| prompt = ( | |
| "Based on historical trends, what might be the next ETH/USDT price, " | |
| "assuming consistent linear progression? Focus on patterns." | |
| ) | |
| response = index.query(prompt) | |
| return response | |
| # Main pipeline | |
| def main(): | |
| # Step 1: Fetch historical data | |
| symbol = "ETHUSDT" | |
| df = fetch_price_data(symbol) | |
| print("Fetched historical data:") | |
| print(df.head()) | |
| # Step 2: Prepare documents for LlamaIndex | |
| window_size = 5 | |
| documents = prepare_documents(df, window_size) | |
| # Step 3: Train a Simple Keyword Table Index and predict trends | |
| prediction_response = train_with_llama_index(documents) | |
| # Step 4: Display response | |
| print(f"\nPrediction response from LlamaIndex:\n{prediction_response}") | |
| # Entry point | |
| if __name__ == "__main__": | |
| main() |