� Market Selection Simplification:
- Remove all Chinese text from CLI interface
- Remove Hong Kong Stock support (as requested)
- Keep only US Stock and China A-Share markets
- English-only error messages and validation
� Supported Markets:
1. US Stock
- Examples: SPY, AAPL, TSLA, NVDA, MSFT
- Format: 1-5 letter stock symbols
- Data Source: Yahoo Finance
- Pattern: ^[A-Z]{1,5}$
2. China A-Share
- Examples: 000001, 600036, 300001, 688001
- Format: 6-digit numeric codes
- Data Source: TongDaXin API
- Pattern: ^\d{6}$
� Technical Changes:
- Simplified market selection function
- Removed Chinese text from all user-facing messages
- Maintained TongDaXin integration for A-shares
- Kept format validation and data source routing
- English-only interface throughout
✅ Test Results:
- Market Selection: ✅ Pass
- Supported Markets: ✅ Pass (US + China A-Share only)
- Ticker Validation: ✅ Pass (English messages)
- Data Source Routing: ✅ Pass
- English-Only Interface: ✅ Pass
� User Experience:
- Clean English-only interface
- Two clear market options
- Automatic format validation
- TongDaXin real-time data for A-shares
- No language barriers for international users
Supported Chinese Exchanges:
• Shanghai Stock Exchange: 60xxxx
• Shenzhen Stock Exchange: 00xxxx
• ChiNext Board: 30xxxx
• STAR Market: 68xxxx
� Cache Integration Enhancements:
- Modify get_cache() to use IntegratedCacheManager by default
- Automatic fallback from database cache to file cache
- Intelligent cache selection based on configuration
� Integration Features:
- IntegratedCacheManager now used in CLI startup
- Supports both database and file-based caching
- Automatic detection of database availability
- Graceful degradation when databases unavailable
✅ Test Results:
- Cache selection logic: ✅ Pass
- Cache functionality: ✅ Pass
- Database cache available but disabled by default
- File cache working as fallback
� User Experience:
- Default: File-based cache (fast, no setup required)
- Optional: Database cache (enable with MONGODB_ENABLED=true)
- Seamless transition between cache types
- No breaking changes to existing functionality
� Current Status:
- Cache Type: IntegratedCacheManager
- Adaptive Cache: Disabled (databases disabled in .env)
- MongoDB: Disabled by default
- Redis: Disabled by default
- Fallback: Traditional file cache working perfectly
Now users get database cache benefits when enabled,
with automatic fallback to reliable file cache.
� Fixed Issues:
- Resolve 404 error when using DashScope LLM with OpenAI embeddings
- Add missing DashScope model options in CLI selection
- Improve embedding provider fallback logic
� Memory System Updates:
- Add DashScope embedding support (text-embedding-v3)
- Implement intelligent fallback: DashScope → OpenAI → Error
- Add proper API key validation and error messages
- Support multiple embedding providers based on LLM selection
� CLI Enhancements:
- Add DashScope models to SHALLOW_AGENT_OPTIONS and DEEP_AGENT_OPTIONS
- Support qwen-turbo, qwen-plus, qwen-max, qwen-max-longcontext
- Fix KeyError when selecting DashScope as LLM provider
✅ Test Results:
- All .env configuration tests pass
- DashScope embeddings working correctly
- Proper fallback to OpenAI when DashScope unavailable
- Memory initialization successful with real API keys
� Now users can successfully:
1. Select DashScope in CLI without errors
2. Use DashScope embeddings for memory system
3. Automatic fallback if DashScope unavailable
4. Complete end-to-end DashScope workflow
- Add DashScope to CLI LLM provider selection (first option)
- Add DashScope support in TradingAgentsGraph with proper error handling
- Import ChatDashScope adapter with fallback for missing dependencies
- Update default_config.py with DashScope configuration comments
- Create comprehensive DashScope configuration example
Features added:
- DashScope provider selection in CLI (cli/utils.py)
- LLM initialization for DashScope models (trading_graph.py)
- Configuration validation and testing (examples/dashscope_config_example.py)
- Support for qwen-turbo, qwen-plus, qwen-max models
- Proper error handling for missing dashscope package
Usage:
1. Install: pip install dashscope
2. Configure: DASHSCOPE_API_KEY in .env file
3. Select 'DashScope (Alibaba Cloud)' in CLI
4. Use models: qwen-turbo (fast), qwen-plus (balanced), qwen-max (best)
This enables Chinese users to use Alibaba Cloud's Qwen models
for financial analysis with optimized Chinese language support.
- Add .env.example with comprehensive configuration template
- Add .env with sanitized default values (no real API keys)
- Based on Chinese version configuration with English comments
- Includes all necessary API configurations:
* DashScope (Chinese LLM)
* Finnhub (Financial data)
* OpenAI, Google AI, Anthropic (Optional LLMs)
* Reddit API (Social sentiment)
* MongoDB and Redis (Database/Cache)
Configuration features:
- Clear instructions for each API key
- Database enable/disable switches
- Comprehensive comments and usage guide
- Security warnings about sensitive data
Usage:
1. Copy .env.example to .env
2. Fill in actual API keys
3. Configure at minimum: DASHSCOPE_API_KEY and FINNHUB_API_KEY
4. Run: python main.py
- Add 18 new feature files from Chinese version
- Support for Chinese market data (A-shares)
- Database integration with MongoDB
- Advanced caching system with adaptive strategies
- LLM adapters for DashScope and other providers
- API services and real-time data utilities
- Enhanced configuration management
- Comprehensive English documentation
New features:
- Chinese finance data aggregation
- TDX (TongDaXin) API integration
- Optimized China stock data provider
- Adaptive and integrated caching
- Database cache management
- Stock data services
- Real-time news utilities
Breaking changes: None (all new features are additive)
Dependencies: Added pymongo, beautifulsoup4, dashscope (optional)
For detailed information, see MERGE_SUMMARY.md
- Added support for running CLI and Ollama server via Docker
- Introduced tests for local embeddings model and standalone Docker setup
- Enabled conditional Ollama server launch via LLM_PROVIDER
Added language selection links to the README for easier access to translated versions: German, Spanish, French, Japanese, Korean, Portuguese, Russian, and Chinese.