This commit is contained in:
aaron 2025-05-15 17:48:09 +08:00
parent 59efc06b99
commit 347b126977
4 changed files with 33 additions and 3 deletions

View File

@ -140,6 +140,9 @@ async def get_stock_analysis(stock_code: str, current_user: Dict[str, Any] = Dep
"response_mode": "streaming", "response_mode": "streaming",
"user": current_user["mail"] "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) response = requests.post(url, headers=headers, json=data, stream=True)

View File

@ -12,6 +12,8 @@ from cryptoai.utils.config_loader import ConfigLoader
from fastapi.responses import StreamingResponse from fastapi.responses import StreamingResponse
from cryptoai.routes.user import get_current_user from cryptoai.routes.user import get_current_user
import requests import requests
from cryptoai.api.binance_api import get_binance_api
from cryptoai.models.data_processor import DataProcessor
# 创建路由 # 创建路由
router = APIRouter() router = APIRouter()
@ -19,7 +21,7 @@ router = APIRouter()
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG)
@router.get("/crypto/search/{key}") @router.get("/search/{key}")
async def search_crypto(key: str): async def search_crypto(key: str):
manager = get_db_manager() manager = get_db_manager()
result = manager.search_token(key) result = manager.search_token(key)
@ -29,7 +31,32 @@ class CryptoAnalysisRequest(BaseModel):
symbol: str symbol: str
timeframe: Optional[str] = None 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, async def analysis_crypto(request: CryptoAnalysisRequest,
current_user: dict = Depends(get_current_user)): current_user: dict = Depends(get_current_user)):

View File

@ -29,7 +29,7 @@ services:
cryptoai-api: cryptoai-api:
build: . build: .
container_name: cryptoai-api container_name: cryptoai-api
image: cryptoai-api:0.0.23 image: cryptoai-api:0.0.24
restart: always restart: always
ports: ports:
- "8000:8000" - "8000:8000"