Seesea
åºäº Rust çéç§äŒå æ°æ®èåå¹³å°ïŒæ¯æçœç»æçŽ¢ãRSS èåã倩æ°ïŒè¡ç¥šïŒçæŠçå€æš¡ææçŽ¢èœåïŒç§äººéšçœ²çäºç«¯æ°æ®è·åäžå¿ã
Installation
npx seeseaAsk AI about Seesea
Powered by Claude · Grounded in docs
I know everything about Seesea. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
SeeSea - éç§äŒå 倿𡿿°æ®èåå¹³å°
English | äžæ
ð çæµ·çåŸè¿ïŒçåŸå¹¿ - éç§äŒå çæ°æ®èåäž AI å·¥å ·å¹³å°
æŽåæçŽ¢ãRSSãè¡ç¥šãæ°æ®æž æŽç宿Žå·¥å ·éïŒåŒç®±å³çšïŒAI 婿å¯çŽæ¥è°çš
ð ç®åœ
- âš æ žå¿ç¹æ§
- ð¯ äž»èŠåèœ
- ðïž é¡¹ç®æ¶æ
- ð å¿«éåŒå§
- ð äœ¿çšæ¹æ³
- âïž é 眮诎æ
- ð€ 莡ç®
- ð 讞å¯è¯
âš æ žå¿ç¹æ§
ð€ åŒç®±å³çšç AI å·¥å ·ïŒMCP åè®®ïŒ
äžé®é 眮ïŒAI 婿ç«å³å¯çšïŒ
# è·å MCP é
眮ïŒJSON æ ŒåŒïŒå¯çŽæ¥å€å¶å° Claude DesktopãCursor ç䜿çšïŒ
seesea mcp list --format json
# æå¯åš stdio æš¡åŒäŸ AI è°çš
seesea mcp start --stdio
40+ å·¥å ·åŒç®±å³çšïŒ
- ð æçŽ¢å·¥å · - éçšæçŽ¢ãåŸçæçŽ¢ãè§é¢æçŽ¢ãåŒæå衚ïŒ7 äžªå·¥å ·ïŒ
- ð° RSS å·¥å · - Feed è·åãè§£æãæš¡æ¿ç®¡çãæŠåå建ïŒ7 äžªå·¥å ·ïŒ
- ð è¡ç¥šå·¥å · - 宿¶è¡æ ãKçº¿æ°æ®ãèµéæµåãæ¶šåè·åïŒ15 äžªå·¥å ·ïŒ
- ð§¹ æž æŽå·¥å · - ææ¬æž æŽãHTML å€çãå 容æ ååãæ¹éå€çïŒ5 äžªå·¥å ·ïŒ
- ð¥ çç¹å·¥å · - åå¹³å°çç¹ãå€å¹³å°çç¹ãå¹³å°å衚ãå¹³å°æçŽ¢ïŒ6 äžªå·¥å ·ïŒ
ð éç§äŒå
- Tor çœç»éæ: 宿Žç Tor SOCKS5 ä»£çæ¯æ
- TLS æçº¹æ··æ·: éæºå TLS 客æ·ç«¯æçº¹ïŒé¿å 被è¯å«
- DNS over HTTPS: å å¯ DNS æ¥è¯¢ïŒä¿æ€æ¥è¯¢éç§
- 请æ±å€ŽäŒªé : User-Agent 蜮æ¢ïŒReferer æ§å¶
- Cookie é犻: æ¯äžªè¯·æ±ç¬ç«ç Cookie jar
- 代çéŸæ¯æ: æ¯æå€çº§ä»£çéŸè·¯
â¡ é«æ§èœ
- Rust æ žå¿åŒæ: å åå®å šïŒé¶ææ¬æœè±¡
- åŒæ¥å¹¶å: åºäº Tokio çé«å¹¶åå€ç
- æºèœçŒå: åå±çŒå + è¯ä¹å¹é ïŒBM25 + åéçžäŒŒåºŠïŒ
- èµæºäŒå: æ åæš¡åŒä» å çš ~54MB å å
ð¯ 倿š¡æèå
- 12+ æçŽ¢åŒæ: æ¯æéçšãåŸçãè§é¢ãæ°é»æçŽ¢
- 39+ çç¹å¹³å°: æŽåç§æã莢ç»ãæ°é»ã瀟åºçç¹
- RSS 订é : æ¯æ RSS 2.0ãAtomãRDF çå€ç§æ ŒåŒ
- æµè§åšèªåšå: æ¯æ Playwright çåšæå 容æå
ð€ AI å¢åŒº
- åéæ°æ®åº: éæ QdrantïŒæ¯æè¯ä¹æçŽ¢
- LLM éæ: æ¯æ OpenAI API åæ¬å° LLM
- å 容å¢åŒº: URL å° Markdown èœ¬æ¢ + æºèœæž æŽ
- çžå ³æ§åæ: åºäºèçŸ€ç®æ³çå å®¹æž æŽåäŒå
ð¯ äž»èŠåèœ
1. æçŽ¢åŒæèå
| ç±»å« | åŒæ | 诎æ |
|---|---|---|
| éçšæçŽ¢ | Bing, Baidu, æç, 360æçŽ¢, Yandex, SO | äž»æµæçŽ¢åŒæ |
| åŸçæçŽ¢ | Unsplash, Bing Images, æçåŸç | é«èŽšéåŸçèµæº |
| è§é¢æçŽ¢ | Bilibili, Bing Videos, æçè§é¢ | äžè±æè§é¢å¹³å° |
| æ°é»æçŽ¢ | Bing News | 宿¶æ°é»èµè®¯ |
| 瀟亀æçŽ¢ | æç埮信 | åŸ®ä¿¡å ¬äŒå·æç« |
2. çç¹èµè®¯èå
ç§æç±»: ç¥ä¹ã埮åãBç«ãæé³ãGitHub TrendingãHacker News ç
莢ç»ç±»: åå°è¡è§é»ã莢è瀟ãéåæ°æ®ãæ Œéæ±ãéªç
æ°é»ç±»: æŸæ¹æ°é»ãå€å°çœãåèæ¶æ¯ãèåæ©æ¥ãè
Ÿè®¯æ°é»
瀟åºç±»: V2EXãè«éšèœãè¿æ¯è®ºåãFreebufãè±ç£
3. RSS 订é ç³»ç»
- 倿 ŒåŒæ¯æ: RSS 2.0ãAtomãRDF ç
- æš¡æ¿ç³»ç»: èªå®ä¹ RSS å 容å€çåèŸåºæ ŒåŒ
- èªåšæŽæ°: 宿¶æååå 容解æ
- æºèœè¿æ»€: åºäºå ³é®è¯çå 容çéåå»é
4. è¡ç¥šæ°æ®æå¡
- 宿¶è¡æ : Aè¡ãBè¡ãçŸè¡ã枯è¡å®æ¶è¡æ
- å岿°æ®: Kçº¿æ°æ®ãææ°æ°æ®ãæ¿åæ°æ®
- åžåºåæ: èµéæµåãæ¶šåæ¿ãè·åæ¿
- æºèœè°åºŠ: èªåšå®æ¶å·æ°è¡ç¥šæ°æ®çŒå
5. æ°æ®æž æŽå·¥å ·
- ææ¬æž æŽ: æºèœå»é€åªå£°ååäœä¿¡æ¯
- HTML å€ç: ç§»é€ HTML æ çŸïŒæåçº¯ææ¬
- å 容æ åå: ç»äžæ ŒåŒåçŒç
- æ¹éå€ç: æ¯ææ¹éæž æŽå€§éæ°æ®
6. Web ç®¡çæ§å¶å°
SeeSea Command - ç°ä»£åç Web 管ççé¢ïŒ
- ç³»ç»çæ§: 宿¶æ¥ç CPUãå åãçœç»ãç£çäœ¿çšæ åµ
- æçŽ¢åŒæç®¡ç: å¯çš/çŠçšæçŽ¢åŒæïŒæ¥çåŒæç¶æ
- çŒå管ç: æ¥ççŒåç»è®¡ïŒç®¡ççŒåæ°æ®
- æ¥å¿æ¥ç: 宿¶æ¥çç³»ç»æ¥å¿ïŒæ¯æææä»¶å级å«è¿æ»€
- é 眮管ç: æ¥çå管çç³»ç»é 眮
å¯åšç®¡çæ§å¶å°ïŒ
# å¯åšå端æå¡åšïŒç®¡çæ§å¶å°èªåšéæïŒ
seesea server
# 访é®ç®¡ççé¢
# æµè§åšæåŒ http://localhost:8000
7. åéæ°æ®åºéæ
- ææ¡£åéå: æ¯æææ¬å 容çåéåååš
- è¯ä¹æçŽ¢: åºäºåéçžäŒŒåºŠçè¯ä¹æ£çŽ¢
- æºèœçŒå: åé级å«ççŒåå¹é
- åšæäŒå: èªåšè°æŽæ¹å€ç倧å°å HNSW åæ°
8. æµè§åšèªåšå
- Playwright éæ: æ¯æ ChromiumãFirefoxãWebKit
- é身暡åŒ: Stealth æä»¶ïŒåæ£æµ
- å¹¶åæ§å¶: æµè§åšå®äŸæ± 管ç
- èªå®ä¹åŒæ: æ¯æ Python çŒåæµè§åšåŒæ
9. MCP å·¥å ·é
- æçŽ¢å·¥å ·: 7 䞪æçŽ¢çžå ³å·¥å ·ïŒææ¬ãåŸçãè§é¢æçŽ¢çïŒ
- RSS å·¥å ·: 7 䞪 RSS 订é çžå ³å·¥å ·
- è¡ç¥šå·¥å ·: 15 䞪è¡ç¥šæ°æ®å·¥å ·
- æž æŽå·¥å ·: 5 äžªæ°æ®æž æŽå·¥å ·
- çç¹å·¥å ·: 6 䞪çç¹èµè®¯å·¥å ·
ðïž é¡¹ç®æ¶æ
ç³»ç»æ¶æ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â çšæ·æ¥å£å± â
âââââââââââââââââââ¬ââââââââââââââââââ¬ââââââââââââââââââââââââââ€
â CLI å·¥å
· â REST API â Python SDK â
â â (å
çœ/å€çœ) â (Rust PyO3 ç»å®) â
âââââââââââââââââââŽââââââââââââââââââŽââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â æ žå¿æå¡å± â
âââââââââââââââââââ¬ââââââââââââââââââ¬ââââââââââââââââââââââââââ€
â æçŽ¢çŒæåš â ç»æèååš â æ¥è¯¢å€çåš â
â EnginePool â Aggregator â QueryProcessor â
âââââââââââââââââââŽââââââââââââââââââŽââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â æ°æ®è·åå± â
ââââââââââââââââ¬âââââââââââââââ¬âââââââââââââââ¬ââââââââââââââââ€
â WebæçŽ¢åŒæ â RSSèååš â æµè§åšåŒæ â çç¹è·ååš â
â 12+ Engines â RSS Parser â Playwright â 39+ Platformsâ
ââââââââââââââââŽâââââââââââââââŽâââââââââââââââŽââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â AI å¢åŒºå± â
âââââââââââââââââââ¬ââââââââââââââââââ¬ââââââââââââââââââââââââââ€
â åéæ°æ®åº â LLM éæ â å
容å€ç â
â Qdrant Store â OpenAI/Local â Cleaner/Parser â
âââââââââââââââââââŽââââââââââââââââââŽââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â åºç¡è®Ÿæœå± â
âââââââââââââââââââ¬ââââââââââââââââââ¬ââââââââââââââââââââââââââ€
â éç§çœç» â çŒåç³»ç» â é
眮管ç â
â Tor/Proxy â RocksDB â Config Manager â
âââââââââââââââââââŽââââââââââââââââââŽââââââââââââââââââââââââââ
ç®åœç»æ
SeeSea-1/
âââ seesea/ # Python SDK
â âââ seesea/
â â âââ sdk/ # SDK æš¡å
â â â âââ search/ # æçޢ客æ·ç«¯
â â â âââ cache/ # çŒå客æ·ç«¯
â â â âââ rss/ # RSS 客æ·ç«¯
â â â âââ net/ # çœç»å®¢æ·ç«¯
â â â âââ engines/ # æçŽ¢åŒæ
â â â âââ stock/ # è¡ç¥šå®¢æ·ç«¯
â â â âââ cleaner/ # æ°æ®æž
æŽ
â â â âââ vector/ # åéååš
â â âââ mcp/ # MCP å·¥å
·
â â â âââ search.py
â â â âââ rss.py
â â â âââ stock.py
â â â âââ cleaner.py
â â â âââ hot.py
â â âââ embeddings/ # åéåæš¡å
â â âââ browser/ # æµè§åšåŒæ
â â âââ cli.py # åœä»€è¡å
¥å£
â âââ pyproject.toml
âââ seesea-core/ # Rust æ žå¿åŒæ
â âââ crates/
â â âââ seesea-api/ # API æå¡åš
â â âââ seesea-cache/ # çŒåç³»ç»
â â âââ seesea-config/ # é
眮管ç
â â âââ seesea-event/ # äºä»¶ç³»ç»
â â âââ seesea-hot/ # çç¹è·å
â â âââ seesea-net/ # çœç»å±
â â âââ seesea-rss/ # RSS è§£æ
â â âââ seesea-search/ # æçŽ¢åŒæ
â â âââ seesea-stock/ # è¡ç¥šæ°æ®
â â âââ seesea-vector-store/ # åéååš
â â âââ seesea-python-bindings/ # Python ç»å®
â âââ config/ # è°åºŠåšé
眮
â â âââ scheduler.toml
â âââ Cargo.toml
âââ seesea-command/ # Web ç®¡çæ§å¶å°
â âââ components/ # React ç»ä»¶
â â âââ Dashboard.tsx
â â âââ EnginesPanel.tsx
â â âââ CachePanel.tsx
â â âââ ConfigPanel.tsx
â â âââ LogsPanel.tsx
â âââ hooks/ # èªå®ä¹ Hooks
â âââ services/ # API æå¡
â âââ package.json
âââ config/ # é
眮æä»¶
â âââ default.toml
â âââ development.toml
âââ examples/ # 瀺äŸä»£ç
â âââ 01_search_demo.py
â âââ 02_rss_demo.py
â âââ 03_stock_demo.py
â âââ 04_cache_demo.py
â âââ 05_cleaner_demo.py
âââ venv/ # Python èæç¯å¢
âââ README.md
ææ¯æ
åç«¯æ žå¿ (Rust)
- Rust 2024 + Tokio + Axum
- RocksDB (åµå ¥åŒæ°æ®åº)
- PyO3 (Python ç»å®)
å端æå¡ (React + Vite)
- React 19 + TypeScript
- Vite + TailwindCSS
- Recharts (æ°æ®å¯è§å)
- Lucide Icons
AI & æ°æ® (Python)
- Qdrant (åéæ°æ®åº)
- OpenAI / llama-cpp (LLM)
- Playwright (æµè§åšèªåšå)
- akshare (è¡ç¥šæ°æ®)
ð å¿«éåŒå§
ç³»ç»èŠæ±
- Python 3.10+
- Rust 1.70+ (ä» çŒè¯æ¶éèŠ)
- Linux/macOS/Windows (Android/Termux 乿¯æ)
å®è£ æ¥éª€
1. å建èæç¯å¢
# å建 Python èæç¯å¢
python3 -m venv venv
# æ¿æŽ»èæç¯å¢
source venv/bin/activate # Linux/macOS
# æ
venv\Scripts\activate # Windows
2. çŒè¯ Rust æ žå¿
cd seesea-core
# çŒè¯ Rust æ žå¿äžº Python wheel
maturin build --release --strip --skip-auditwheel
# å®è£
wheel
pip install target/wheels/seesea_core-*.whl
3. å®è£ Python SDK
cd ../seesea
# å®è£
åºç¡äŸèµå¹¶å®è£
SDK
pip install -e .
# å¯éïŒå®è£
MCP æ¯æ
pip install -e ".[mcp]"
# å¯éïŒå®è£
æµè§å𿝿
pip install -e ".[browser]"
# å¯éïŒå®è£
åŒåå·¥å
·
pip install -e ".[dev]"
4. éªè¯å®è£
# æµè¯ Rust æ žå¿
python -c "import seesea_core; print('â
seesea_core å®è£
æå')"
# æµè¯ Python SDK
python -c "from seesea.embeddings.standard import StandardEmbedder; print('â
seesea SDK å®è£
æå')"
# æµè¯ MCP æ¯æ
python -c "from seesea.mcp import create_mcp_server; print('â
MCP æ¯æ å®è£
æå')"
# æµè¯ CLI åœä»€
seesea --help
ð äœ¿çšæ¹æ³
1. ð€ AI 婿éæïŒæšèïŒ
SeeSea æäŸå®æŽç MCP åè®®æ¯æïŒå¯è¢« ClaudeãCursorãOpenAI ç AI å©æçŽæ¥è°çšã
è·å MCP é 眮ïŒ
# æ¥çå¯çšå·¥å
·ïŒææ¬æ ŒåŒïŒ
seesea mcp list
# è·å MCP é
眮ïŒJSON æ ŒåŒïŒå¯çŽæ¥å€å¶äœ¿çšïŒ
seesea mcp list --format json
JSON é 眮瀺äŸïŒ
{
"mcpServers": {
"seesea": {
"command": "python",
"args": ["-m", "seesea.cli", "mcp", "start", "--stdio"],
"description": "SeeSea MCP æå¡åš - æçŽ¢ãRSSãè¡ç¥šãçç¹ãæ°æ®æž
æŽ"
}
}
}
åš Claude Desktop äžäœ¿çšïŒ
å°äžè¿° JSON é
眮å€å¶å° ~/.claude/claude_desktop_config.json æä»¶äžïŒå³å¯åš Claude äžçŽæ¥äœ¿çš SeeSea ç 40+ å·¥å
·ã
åš Cursor äžäœ¿çšïŒ
å°äžè¿° JSON é 眮å€å¶å° Cursor ç MCP 讟眮äžïŒå³å¯åš Cursor äžäœ¿çšã
2. å¯åš API æå¡åš
# å¯åšæå¡åšïŒé»è®€ 127.0.0.1:8888ïŒ
seesea server
# èªå®ä¹ç«¯å£
seesea server --host 0.0.0.0 --port 8080
# 䜿çšèªå®ä¹é
眮
seesea server -c /path/to/config.toml
3. æµè¯ API
# å¥åº·æ£æ¥
curl http://127.0.0.1:8888/api/health
# æçŽ¢æµè¯
curl -X POST http://127.0.0.1:8888/api/search \
-H "Content-Type: application/json" \
-d '{"query": "SeeSea æ°æ®èå", "page": 1, "page_size": 5}'
# åŸçæçŽ¢
curl -X POST http://127.0.0.1:8888/api/search \
-H "Content-Type: application/json" \
-d '{"query": "飿¯", "engine_type": "image", "page_size": 5}'
# è§é¢æçŽ¢
curl -X POST http://127.0.0.1:8888/api/search \
-H "Content-Type: application/json" \
-d '{"query": "çŒçšæçš", "engine_type": "video", "page_size": 5}'
4. å¯åšè¡ç¥šæ°æ®è°åºŠåš
# å¯åšè¡ç¥šæ°æ®è°åºŠåšïŒèªåšå®æ¶å·æ°ïŒ
seesea stock-scheduler
# 䜿çšèªå®ä¹é
眮
seesea stock-scheduler -c /path/to/scheduler.toml
è°åºŠåšäŒèªåšæ§è¡ä»¥äžä»»å¡ïŒ
- è·å A è¡ãB è¡ãç§åæ¿ä»£ç å衚
- è·å宿¶è¡æ ãææ°æ°æ®
- è·åè¡äžæ¿åãæŠå¿µæ¿å
- è·åæ¶šåæ± ãè·åæ±
- è·ååžåºèµéæµå
5. äœ¿çš Python SDK
from seesea.sdk.search import SearchClient
# åå§åæçޢ客æ·ç«¯
search_client = SearchClient()
# åºç¡ææ¬æçŽ¢ïŒé»è®€ïŒ
with search_client:
result = search_client.search('人工æºèœææ°è¿å±', page_size=5)
if result.success:
print(f'ç»ææ°é: {len(result.data.items)}')
print(f'䜿çšåŒæ: {result.data.engines_used}')
for item in result.data.items[:3]:
print(f'- {item.title}')
# åŸçæçŽ¢ïŒåªäœ¿çšåŸçåŒæïŒ
with search_client:
result = search_client.search('å¯ç±ç«åª', engine_type='image', page_size=5)
if result.success:
print(f'ç»ææ°é: {len(result.data.items)}')
print(f'䜿çšåŒæ: {result.data.engines_used}')
# è§é¢æçŽ¢ïŒåªäœ¿çšè§é¢åŒæïŒ
with search_client:
result = search_client.search('Pythonæçš', engine_type='video', page_size=5)
if result.success:
print(f'ç»ææ°é: {len(result.data.items)}')
print(f'䜿çšåŒæ: {result.data.engines_used}')
6. äœ¿çšæ°æ®æž æŽå·¥å ·
from seesea.sdk.cleaner import CleanerClient
# åå§åæž
æŽå®¢æ·ç«¯
cleaner = CleanerClient()
with cleaner:
# æž
æŽææ¬
result = cleaner.clean_text(" æµè¯ææ¬ ")
if result.success:
print(result.data) # "æµè¯ææ¬"
# ç§»é€ HTML
result = cleaner.remove_html("<p>Hello <b>World</b></p>")
if result.success:
print(result.data) # "Hello World"
# æ ååææ¬
result = cleaner.normalize_text("è¿æ¯äžäžªæµè¯ã")
if result.success:
print(result.data)
# æå URL
result = cleaner.extract_urls("è®¿é® https://example.com äºè§£æŽå€")
if result.success:
print(result.data) # ["https://example.com"]
# æ¹éæž
æŽ
result = cleaner.clean_batch(["ææ¬1", "ææ¬2", "ææ¬3"])
if result.success:
print(result.data)
7. èªå®ä¹æçŽ¢åŒæïŒéèŠå å¯åšæå¡åšïŒ
èªå®ä¹æçŽ¢åŒæéèŠå å¯åš API æå¡åšä»¥åå§å Rust æ žå¿åŒæã
# å
å¯åšæå¡åš
seesea server &
ç¶ååš Python äžäœ¿çšïŒ
from seesea.sdk.engines import BaseSearchEngine
class MyEngine(BaseSearchEngine):
engine_name = 'my_engine'
engine_type = 'web'
description = 'æçæçŽ¢åŒæ'
version = '1.0.0'
author = 'Your Name'
supports_pagination = True
supports_language_filter = False
supports_region_filter = False
supports_time_range = False
max_page_size = 20
default_page_size = 10
def search(self, query, page=1, page_size=None, **kwargs):
# å®ç°æçŽ¢é»èŸ
return {
'success': True,
'results': [
{
'title': f'æçŽ¢ç»æ: {query}',
'url': 'https://example.com',
'content': 'å
容æè¿°'
}
],
'total_results': 1,
'elapsed_ms': 100
}
âïž é 眮诎æ
äž»é
眮æä»¶äœäº config/default.tomlïŒ
[cache]
# çŒåå端: "rocks_db", "redis", "memory", "hybrid", "custom"
# RocksDB: åµå
¥åŒæ°æ®åºïŒé»è®€ïŒæä¹
åå°ç£çïŒ
# Redis: ååžåŒçŒå
# Memory: 纯å
åçŒåïŒæå¿«ïŒ
# Hybrid: æ··åçŒåïŒå
å + ç£çïŒ
# Custom: èªå®ä¹å端
backend = "rocks_db"
database_path = ".seesea/cache.db" # RocksDB æ°æ®åºè·¯åŸ
ttl = 3600 # çŒåè¿ææ¶éŽïŒç§ïŒ
max_size = 1073741824 # æå€§çŒå倧å°ïŒåèïŒ
[general]
# åºåæš¡åŒ: "global", "china", "custom"
region_mode = "china"
[network]
# éç§çœç»é
眮
enable_tor = false
enable_doh = true
è°åºŠåšé 眮
è¡ç¥šæ°æ®è°åºŠåšé
眮æä»¶äœäº seesea-core/config/scheduler.tomlïŒ
[scheduler]
# æ¯åŠå¯çšè°åºŠåš
enabled = true
# å·¥äœçº¿çšæ°
worker_threads = 4
# é»è®€æ¥æçç¥
# - current: 䜿çšåœåæ¥æ
# - last_trading_day: äœ¿çšæè¿äº€ææ¥
# - specified: äœ¿çšæå®æ¥æ
# - last_workday: 䜿çšäžäžäžªå·¥äœæ¥
default_date_strategy = "last_trading_day"
[scheduler.trading_days]
# äº€ææ¥æ°æ®æº
data_source = "api"
# äº€ææ¥çŒåè·¯åŸ
cache_path = ""
# çŒåè¿ææ¶éŽïŒå°æ¶ïŒ
cache_ttl_hours = 24
# æ¯åŠå¯çšèåæ¥è·³è¿
skip_holidays = true
# ä»»å¡é
眮å衚
[[scheduler.tasks]]
name = "Aè¡ä»£ç åç§°"
task_type = "stock_info_a_code_name"
enabled = true
date_strategy = "current"
[[scheduler.tasks]]
name = "æ¶šåæ± "
task_type = "stock_zt_pool_em"
enabled = true
date_strategy = "last_trading_day"
Pro åèœïŒå¯éïŒ
åŠéå¯çš AI å¢åŒºåèœïŒ
# å®è£
llama-cpp-python
pip install llama-cpp-python
# Pro æš¡åŒäŒèªåšäœ¿çšé«èŽšéç Qwen3-Embedding æš¡å
MCP åèœïŒå¯éïŒ
åŠéå¯çš MCP åèœïŒ
# å®è£
FastMCP
pip install -e ".[mcp]"
# å¯åš MCP æå¡åš
seesea mcp start --stdio
ð€ 莡ç®
æ¬¢è¿æäº€ Issue å Pull RequestïŒ
åŒåç¯å¢è®Ÿçœ®
# å
éä»åº
git clone <repository-url>
cd SeeSea
# å®è£
äŸèµ
python3 -m venv venv
source venv/bin/activate
# æå»º Rust æ žå¿
cd seesea-core
maturin develop --release
# å®è£
Python SDK
cd ../seesea
pip install -e ".[dev,browser]"
代ç è§è
- Rust:
cargo fmt+cargo clippy - Python:
black+ruff
ð æŽå€ææ¡£
- æ¶æææ¡£
- Pro åèœ
- é 眮诎æ
- API ææ¡£ - OpenAPI 3.1 è§è
- å端项ç®
- 瀺äŸä»£ç
ð æŽæ°æ¥å¿
v2.2.2 (2026-01-27)
æ°å¢åèœïŒ
- âš MCP åè®®æ¯æ: æ°å¢ Model Context Protocol æ¯æïŒæäŸ 40+ å·¥å ·äŸ LLM è°çš
- âš çç¹è¶å¿å·¥å ·: æ°å¢çç¹æ°æ®è·åå·¥å ·ïŒæ¯æ 39+ çç¹å¹³å°
- âš è¡ç¥šæ°æ®è°åºŠåš: æ°å¢èªåšå®æ¶å·æ°è¡ç¥šæ°æ®çè°åºŠåš
- âš æ°æ®æž æŽå·¥å ·: æ°å¢ææ¬æž æŽãHTML å€çãå 容æ ååçå·¥å ·
- âš è¡ç¥šå®¢æ·ç«¯: 宿Žçè¡ç¥šæ°æ®è·å SDKïŒåºäº akshareïŒ
- âš Web ç®¡çæ§å¶å°: æ°å¢ SeeSea Command 管ççé¢ïŒReact + ViteïŒ
æ¹è¿ïŒ
- ð§ åŒæåç±»äŒå: ææ¬æçŽ¢ãåŸçæçŽ¢ãè§é¢æçŽ¢æç¡®åç±»
- ð§ é 眮项å®å: ä¿®å€ææé 眮项ïŒç¡®ä¿ææé 眮éœè¢«æ£ç¡®äœ¿çš
- ð§ ç±»åå®å š: ä¿®å€ææ mypy ç±»åæ£æ¥é误
- ð§ 代ç 莚é: éè¿ ruff å black ä»£ç æ£æ¥
ä¿®å€ïŒ
- ð è°åºŠåšå¯åš: ä¿®å€è¡ç¥šè°åºŠåšæ æ³ä¿æè¿è¡çé®é¢
- ð çŒå客æ·ç«¯: ä¿®å€ CacheClient å CleanerClient çå®ç°
- ð æ¥å¿è·¯åŸ: ä¿®å€æ¥å¿ç®åœè·¯åŸïŒç»äžå° ~/.seesea/logs
- ð åæ°é误: ä¿®å€è¡ç¥š API ç symbol åæ°é误
ð 讞å¯è¯
AGPL-3.0 License
éèŠæç€º: AGPL-3.0 èŠæ±åŠææšä¿®æ¹æ¬èœ¯ä»¶å¹¶éè¿çœç»æäŸæå¡ïŒå¿ é¡»å ¬åŒä¿®æ¹åçæºä»£ç ã
- â å éšäœ¿çš: äžéèŠå ¬åŒæºç
- â 䞪人/ç»ç»å éšéšçœ²: äžéèŠå ¬åŒæºç
- â äœäžºçœç»æå¡æäŸç»å€éšçšæ·: å¿ é¡»å ¬åŒæºç
è¯Šè§ LICENSE æä»¶ã
