""" 基本面分析技能 提供股票基本信息查询 """ from typing import Dict, Any from app.skills.base import BaseSkill, SkillParameter from app.services.tushare_service import tushare_service from app.services.cache_service import cache_service from app.utils.logger import logger class FundamentalSkill(BaseSkill): """基本面分析技能""" def __init__(self): super().__init__() self.name = "fundamental" self.description = "查询股票基本面信息(公司概况、行业、上市日期等)" self.parameters = [ SkillParameter( name="stock_code", type="string", description="股票代码", required=True ) ] async def execute(self, **kwargs) -> Dict[str, Any]: """ 执行基本面查询 Args: stock_code: 股票代码 Returns: 基本面信息 """ stock_code = kwargs.get("stock_code") logger.info(f"查询基本面信息: {stock_code}") # 尝试从缓存获取 cache_key = f"fundamental:{stock_code}" cached_data = cache_service.get(cache_key) if cached_data: logger.info(f"从缓存获取基本面信息: {stock_code}") return cached_data # 从Tushare获取 basic_info = tushare_service.get_stock_basic(stock_code) if not basic_info: return { "error": f"未找到股票基本信息: {stock_code}" } # 缓存1天 cache_service.set(cache_key, basic_info, ttl=86400) return basic_info