liurenchaxin/docs/guides/QUICK_START_GUIDE.md

236 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 稷下学宫负载均衡系统 - 快速上手指南
## 📋 前置条件
1. **RapidAPI账户**: 确保已订阅以下API服务
- Alpha Vantage
- Yahoo Finance 15
- Webull
- Seeking Alpha
2. **环境配置**: 已配置Doppler环境变量管理
```bash
doppler secrets | grep RAPIDAPI_KEY
```
## ⚡ 5分钟快速体验
### 1. 运行完整演示
```bash
cd /home/ben/liurenchaxin
doppler run python demo_jixia_load_balancing.py
```
### 2. 查看演示结果
```bash
# 查看生成的结果文件
ls demo_results_*.json
# 查看AAPL的详细结果
cat demo_results_aapl.json | jq .
```
## 🎯 核心功能演示
### 单个仙人数据获取
```python
from src.jixia.engines.jixia_load_balancer import JixiaLoadBalancer
# 初始化
load_balancer = JixiaLoadBalancer(rapidapi_key)
# 吕洞宾获取苹果股票数据
result = load_balancer.get_data_for_immortal('吕洞宾', 'stock_quote', 'AAPL')
print(f"价格: ${result.data['price']}, 来源: {result.api_used}")
```
### 八仙论道完整演示
```python
# 进行八仙论道
results = load_balancer.conduct_immortal_debate('TSLA')
# 查看负载分布
distribution = load_balancer.get_load_distribution()
for api, stats in distribution.items():
print(f"{api}: {stats['calls']}次调用 ({stats['percentage']:.1f}%)")
```
## 📊 预期输出示例
```
🏛️ 稷下学宫八仙论道开始 - 主题: AAPL
============================================================
🎭 吕洞宾 正在获取 stock_quote 数据...
✅ 成功从 alpha_vantage 获取数据 (响应时间: 1.33s)
💰 吕洞宾: $202.38 (-2.5004%) via alpha_vantage
🎭 何仙姑 正在获取 stock_quote 数据...
✅ 成功从 yahoo_finance_15 获取数据 (响应时间: 1.87s)
💰 何仙姑: $N/A (N/A) via yahoo_finance_15
📊 负载分布统计:
alpha_vantage: 3 次调用 (37.5%) - 健康
yahoo_finance_15: 2 次调用 (25.0%) - 健康
webull: 3 次调用 (37.5%) - 健康
```
## 🔧 自定义配置
### 修改仙人API偏好
编辑 `/home/ben/liurenchaxin/src/jixia/config/immortal_api_config.json`:
```json
{
"immortals": {
"吕洞宾": {
"preferred_apis": {
"stock_quote": "webull", // 改为使用Webull
"company_overview": "alpha_vantage"
}
}
}
}
```
### 调整缓存策略
```python
# 修改缓存TTL
load_balancer.cache_ttl = 600 # 10分钟缓存
# 清空缓存
load_balancer.cache.clear()
```
## 🚨 故障排除
### 常见问题
1. **API密钥错误**
```
❌ 错误: 请设置RAPIDAPI_KEY环境变量
```
**解决**: 确保Doppler配置正确
```bash
doppler secrets set RAPIDAPI_KEY="your_key_here"
```
2. **API调用失败**
```
⚠️ alpha_vantage 不可用尝试备用API...
```
**解决**: 系统会自动故障转移,无需干预
3. **数据格式异常**
```
💰 价格: $N/A
```
**解决**: 某些API返回格式不同系统会标准化处理
### 调试模式
```python
# 启用详细日志
import logging
logging.basicConfig(level=logging.DEBUG)
# 查看API健康状态
for api, status in load_balancer.health_checker.health_status.items():
print(f"{api}: {'健康' if status['healthy'] else '异常'}")
```
## 📈 性能优化建议
### 1. 缓存优化
```python
# 针对不同数据类型设置不同缓存时间
cache_strategies = {
'stock_quote': 60, # 1分钟
'company_overview': 3600, # 1小时
'market_news': 1800 # 30分钟
}
```
### 2. 并发控制
```python
# 控制并发请求数量
import time
for immortal in immortals:
result = load_balancer.get_data_for_immortal(immortal, 'stock_quote', symbol)
time.sleep(0.2) # 避免过快请求
```
### 3. 批量处理
```python
# 批量获取多个股票数据
symbols = ['AAPL', 'TSLA', 'MSFT', 'GOOGL']
results = {}
for symbol in symbols:
results[symbol] = load_balancer.conduct_immortal_debate(symbol)
```
## 🎯 最佳实践
### 1. 监控API使用情况
```python
# 定期检查负载分布
distribution = load_balancer.get_load_distribution()
print(f"总调用次数: {sum(stats['calls'] for stats in distribution.values())}")
```
### 2. 合理使用缓存
```python
# 对于实时性要求不高的数据,优先使用缓存
result = load_balancer.get_data_for_immortal('韩湘子', 'company_overview', 'AAPL')
if result.cached:
print("使用缓存数据节省API调用")
```
### 3. 错误处理
```python
result = load_balancer.get_data_for_immortal('吕洞宾', 'stock_quote', 'AAPL')
if not result.success:
print(f"获取数据失败: {result.error}")
# 实施降级策略
else:
# 正常处理数据
process_stock_data(result.data)
```
## 📚 进阶使用
### 自定义数据处理器
```python
class CustomDataNormalizer(DataNormalizer):
def normalize_stock_quote(self, raw_data, api_source):
# 自定义数据标准化逻辑
normalized = super().normalize_stock_quote(raw_data, api_source)
# 添加自定义字段
normalized['custom_score'] = self.calculate_score(normalized)
return normalized
# 使用自定义处理器
load_balancer.data_normalizer = CustomDataNormalizer()
```
### 自定义健康检查
```python
class CustomHealthChecker(APIHealthChecker):
def _perform_health_check(self, api_name):
# 自定义健康检查逻辑
# 例如检查API响应时间、错误率等
pass
load_balancer.health_checker = CustomHealthChecker()
```
## 🎉 完成!
现在您已经掌握了稷下学宫负载均衡系统的基本使用方法。
### 下一步
- 📖 阅读完整文档: `README_jixia_load_balancing.md`
- 🔧 查看配置文件: `src/jixia/config/immortal_api_config.json`
- 💻 研究核心代码: `src/jixia/engines/jixia_load_balancer.py`
- 🚀 开始构建您的投资分析系统!
---
*🏛️ 稷下学宫 - 智慧投资,从负载均衡开始*