Files
opencode-skill/skills/alphaear-sentiment/SKILL.md
Kunthawat Greethong 58f9380ec4 Import 9 alphaear finance skills
- alphaear-deepear-lite: DeepEar Lite API integration
- alphaear-logic-visualizer: Draw.io XML finance diagrams
- alphaear-news: Real-time finance news (10+ sources)
- alphaear-predictor: Kronos time-series forecasting
- alphaear-reporter: Professional financial reports
- alphaear-search: Web search + local RAG
- alphaear-sentiment: FinBERT/LLM sentiment analysis
- alphaear-signal-tracker: Signal evolution tracking
- alphaear-stock: A-Share/HK/US stock data

Updates:
- All scripts updated to use universal .env path
- Added JINA_API_KEY, LLM_*, DEEPSEEK_API_KEY to .env.example
- Updated load_dotenv() to use ~/.config/opencode/.env
2026-03-27 10:11:37 +07:00

58 lines
2.0 KiB
Markdown

---
name: alphaear-sentiment
description: Analyze finance text sentiment using FinBERT or LLM. Use when the user needs to determine the sentiment (positive/negative/neutral) and score of financial text markets.
---
# AlphaEar Sentiment Skill
## Overview
This skill provides sentiment analysis capabilities tailored for financial texts, supporting both FinBERT (local model) and LLM-based analysis modes.
## Capabilities
## Capabilities
### 1. Analyze Sentiment (FinBERT / Local)
Use `scripts/sentiment_tools.py` for high-speed, local sentiment analysis using FinBERT.
**Key Methods:**
- `analyze_sentiment(text)`: Get sentiment score and label using localized FinBERT model.
- **Returns**: `{'score': float, 'label': str, 'reason': str}`.
- **Score Range**: -1.0 (Negative) to 1.0 (Positive).
- `batch_update_news_sentiment(source, limit)`: Batch process unanalyzed news in the database (FinBERT only).
### 2. Analyze Sentiment (LLM / Agentic)
For higher accuracy or reasoning capabilities, **YOU (the Agent)** should perform the analysis using the Prompt below, calling the LLM directly, and then update the database if necessary.
#### Sentiment Analysis Prompt
Use this prompt to analyze financial texts if the local tool is insufficient or if reasoning is required.
```markdown
请分析以下金融/新闻文本的情绪极性。
返回严格的 JSON 格式:
{"score": <float: -1.0到1.0>, "label": "<positive/negative/neutral>", "reason": "<简短理由>"}
文本: {text}
```
**Scoring Guide:**
- **Positive (0.1 to 1.0)**: Optimistic news, profit growth, policy support, etc.
- **Negative (-1.0 to -0.1)**: Losses, sanctions, price drops, pessimism.
- **Neutral (-0.1 to 0.1)**: Factual reporting, sideways movement, ambiguous impact.
#### Helper Methods
- `update_single_news_sentiment(id, score, reason)`: Use this to save your manual analysis to the database.
## Dependencies
- `torch` (for FinBERT)
- `transformers` (for FinBERT)
- `sqlite3` (built-in)
Ensure `DatabaseManager` is initialized correctly.