From 347b126977a98f01a3b9876f23a326c59bc882d1 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Thu, 15 May 2025 17:48:09 +0800 Subject: [PATCH] update --- .../__pycache__/binance_api.cpython-313.pyc | Bin 9683 -> 9649 bytes cryptoai/routes/adata.py | 3 ++ cryptoai/routes/crypto.py | 31 ++++++++++++++++-- docker-compose.yml | 2 +- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/cryptoai/api/__pycache__/binance_api.cpython-313.pyc b/cryptoai/api/__pycache__/binance_api.cpython-313.pyc index 0831f152d3760cf100a0d262fd51a0db30df3685..b12ba3a9e17854da545d636a068410295adacf5f 100644 GIT binary patch delta 201 zcmccYz0sTZGcPX}0}w>=sbnZ@0JY``lnd~dr%2>Mj zvY;6wWB6t+;Us3p#?856_DqbEH?NgwV`5yg*+e>lg>n1lsq#)t0{pCE3q%$qFO>Yk z0Azkt+WcIxhl%m!<`NY0dbthChR|6(GO>y$ZV8Cij{d5qB@3JgLS zO&K991%}B{Y_^Q-lV`B)lVd3o0E*rcOiwL|PpwGKNX$!5jnB+W%P$fFicijGPh?D* ze34y_{SF6jM|uz6=J)LLnHWtr_jAom+1(#=BB2`r2|HW$k~F$oB;iY*XXki1ax3j>h(QDyT{ t#U3WcSDS-W>=+eem>I=BGJwdhb!-fbW*=C17|mu#ePsYrMXEq|0RXqcMN|L) diff --git a/cryptoai/routes/adata.py b/cryptoai/routes/adata.py index e6f947e..cdcca6e 100644 --- a/cryptoai/routes/adata.py +++ b/cryptoai/routes/adata.py @@ -140,6 +140,9 @@ async def get_stock_analysis(stock_code: str, current_user: Dict[str, Any] = Dep "response_mode": "streaming", "user": current_user["mail"] } + + # 保存用户提问 + get_db_manager().save_user_question(current_user["id"], stock_code, "请分析以下股票:" + stock_code + ",并给出分析报告。") response = requests.post(url, headers=headers, json=data, stream=True) diff --git a/cryptoai/routes/crypto.py b/cryptoai/routes/crypto.py index aced56c..d9594a7 100644 --- a/cryptoai/routes/crypto.py +++ b/cryptoai/routes/crypto.py @@ -12,6 +12,8 @@ from cryptoai.utils.config_loader import ConfigLoader from fastapi.responses import StreamingResponse from cryptoai.routes.user import get_current_user import requests +from cryptoai.api.binance_api import get_binance_api +from cryptoai.models.data_processor import DataProcessor # 创建路由 router = APIRouter() @@ -19,7 +21,7 @@ router = APIRouter() logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) -@router.get("/crypto/search/{key}") +@router.get("/search/{key}") async def search_crypto(key: str): manager = get_db_manager() result = manager.search_token(key) @@ -29,7 +31,32 @@ class CryptoAnalysisRequest(BaseModel): symbol: str timeframe: Optional[str] = None -@router.post("/crypto/analysis") +@router.get("/kline/{symbol}") +async def get_crypto_kline(symbol: str, timeframe: Optional[str] = None, start_time: Optional[str] = None, end_time: Optional[str] = None): + + binance_api = get_binance_api() + + if not start_time: + # 今年1月 1 日 + start_time = datetime.now().strftime("%Y-01-01 00:00:00") + if not end_time: + # 今天 + end_time = datetime.now().strftime("%Y-%m-%d 23:59:59") + + print(f"symbol: {symbol}, timeframe: {timeframe}, start_time: {start_time}, end_time: {end_time}") + + kline = binance_api.get_historical_klines(symbol, timeframe, start_time, end_time) + + data_processor = DataProcessor() + + result = data_processor.add_technical_indicators(kline).to_dict(orient="records") + + print(f"total kline: {len(result)}") + + return result + + +@router.post("/analysis") async def analysis_crypto(request: CryptoAnalysisRequest, current_user: dict = Depends(get_current_user)): diff --git a/docker-compose.yml b/docker-compose.yml index 07b52b1..242c96f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: cryptoai-api: build: . container_name: cryptoai-api - image: cryptoai-api:0.0.23 + image: cryptoai-api:0.0.24 restart: always ports: - "8000:8000"