feat: 暴露fuyao SDK全部A股接口 + AI分析轮次上限提至30
This commit is contained in:
@@ -122,8 +122,9 @@ async def collect_ai_analysis(trade_date: str) -> dict:
|
||||
total_tokens = 0
|
||||
final_content = ""
|
||||
was_truncated = False
|
||||
max_rounds = 30 # 安全上限,正常分析约 3-8 轮
|
||||
|
||||
for i in range(8):
|
||||
for i in range(max_rounds):
|
||||
response = await call_llm(messages, tools=TOOLS)
|
||||
total_tokens += response.get("usage", {}).get("total_tokens", 0)
|
||||
|
||||
@@ -138,11 +139,9 @@ async def collect_ai_analysis(trade_date: str) -> dict:
|
||||
break
|
||||
|
||||
if finish_reason == "length":
|
||||
# 响应被截断,保存已生成的内容
|
||||
was_truncated = True
|
||||
final_content = message.get("content") or ""
|
||||
if not final_content:
|
||||
# 如果当前消息没有内容,尝试从之前的消息中提取
|
||||
for msg in reversed(messages):
|
||||
if msg.get("role") == "assistant" and msg.get("content"):
|
||||
final_content = msg["content"]
|
||||
|
||||
@@ -135,6 +135,14 @@ async def prices_historical(thscode: str, start_ms: int, end_ms: int,
|
||||
interval="1d", adjust=adjust)
|
||||
|
||||
|
||||
async def corp_actions_adjustment_factors(thscode: str, from_date: str = None,
|
||||
to_date: str = None) -> dict:
|
||||
data = await _run(_sdk.corp_actions_adjustment_factors, thscode,
|
||||
**({"from": from_date} if from_date else {}),
|
||||
**({"to": to_date} if to_date else {}))
|
||||
return data or {}
|
||||
|
||||
|
||||
async def calendar_trading_days() -> list[dict]:
|
||||
return await _run(_sdk.calendar_trading_days)
|
||||
|
||||
@@ -285,3 +293,19 @@ async def limit_break_pool(date_ms=None, page=1, size=50,
|
||||
data = await _run(_sdk.special_data_limit_break_pool, date_ms=date_ms,
|
||||
page=page, size=size, sort_field=sort_field, sort_dir=sort_dir)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def hot_stock_list_history(date: str) -> dict:
|
||||
data = await _run(_sdk.special_data_hot_stock_list_history, date)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def hot_stock_rank_trend(thscode: str, start_date: str, end_date: str) -> dict:
|
||||
data = await _run(_sdk.special_data_hot_stock_rank_trend, thscode, start_date, end_date)
|
||||
return data or {}
|
||||
|
||||
|
||||
async def anomaly_analysis_stock(thscodes: str) -> dict:
|
||||
codes = [c.strip() for c in thscodes.split(",") if c.strip()]
|
||||
data = await _run(_sdk.special_data_anomaly_analysis_stock, codes)
|
||||
return data or {}
|
||||
|
||||
Reference in New Issue
Block a user