update
This commit is contained in:
parent
59efc06b99
commit
347b126977
Binary file not shown.
@ -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)
|
||||||
|
|
||||||
|
|||||||
@ -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)):
|
||||||
|
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user