AI驱åšçè¢«åšæ¶å
¥æºäŒèååš
èªåšè¿œèžª · è¯ä¹å»é · LLMæºèœè¯å · äžªæ§æšè
è¿äžªé¡¹ç®å€äºæ©æåŒåé¶æ®µïŒè¿æªèŸŸå°"ç产å¯çš"ãååšè¿éæ¯äžºäºäžè®©ä»»äœäººè¢«äžé¢ç åèœå衚误富ïŒ
| äºé¡¹ | çå®ç°ç¶ |
|---|---|
| å¯äžèœœçå®è£ å | äžååšãä»åºæªåå»ºä»»äœ ReleaseïŒæ²¡æ .msi / .dmg / .AppImage / .apk |
| çº¿äžæŒç€ºç«ç¹ | äžååšã请äžèŠå°è¯è®¿é® app.autoincome.dev |
| æ¡é¢ç«¯ / ç§»åšç«¯ | ä» ç®åœèææ¶ïŒæªæå»º |
| å®é è¿è¡éªè¯ | éèŠ PostgreSQL + Redis + LLM API Key æèœè·èµ·æ¥ïŒäœè æªæäŸä»»äœå®æºéªè¯è®°åœ |
| 代ç 莚é | å·²æçå®çŒºé·è¢«ä¿®å€ïŒè¯Šè§ CHANGELOGïŒïŒéææ£æ¥ä»æå€§éåé飿 Œé®é¢ |
| 绎æ€ç¶æ | å šéšæäº€éäžåš 2026-05-15 äžå€©å ïŒæ€åæªåæŽæ° |
å®èœåä»ä¹ïŒæäŸäžå¥å®æŽç代ç 骚æ¶ââFastAPI å端ãSQLAlchemy æš¡åãCelery ä»»å¡ã Docker/K8s çŒæãReact å端ãä»¥åæ¥å ¥å€å®¶ LLM çåææµçšã éåäœäžº"åŠäœæå»ºè¿ç±»ç³»ç»"çåèå®ç°æ¥é 读ã
å®äžèœåä»ä¹ïŒåŒç®±å³çšãæ³çæ£è·èµ·æ¥éèŠèªå·±è¡¥éœæ°æ®åºãRedisãLLM KeyïŒ å¹¶å奜螩åçåå€ã
AutoIncome æ¯äžäžª AI 驱åšçå¯äž/è¢«åšæ¶å ¥æºäŒèåå¹³å°ïŒèªåšçæ§è¥å¹²å ¬åŒä¿¡æ¯æºïŒ éè¿å€§è¯èšæš¡ååå 容åæãè¯ä¹å»éå䞪æ§åæšèïŒåž®çšæ·ä»æµ·éä¿¡æ¯éçåºåŒåŸè¡åšçæºäŒã
äžåäºç®åçä¿¡æ¯ç¬è«ïŒAutoIncome 䜿çšçå®ç倧è¯èšæš¡åïŒæ¯æ Moonshot/KimiãOpenRouterãOpenAI åæ¬å° OllamaïŒå¯¹æ¯äžæ¡æºäŒè¿è¡æ·±åºŠåæïŒçæå¯è¡æ§ãæ¶ææ§ãå¯ä¿¡åºŠãæ¶çæ¯åå¯å€å¶æ§äºäžªç»ŽåºŠçè¯åïŒå¹¶ç»åçšæ·ç»ååå人åé¢çæºèœæšèã
äžè¡šäžç â 衚瀺"代ç å·²å®ç°"ïŒäžçäº"å·²éªè¯åšçå®ç¯å¢å¯çš"ã
| èœå | å®ç°æ¹åŒ | ç¶æ |
|---|---|---|
| LLMå å®¹åæ | è°çš Moonshot/OpenRouter/OpenAI/Ollama API 对æºäŒææ¬è¿è¡æ·±åºŠåæ | â |
| æºèœäºç»Žè¯å | AIè¯äŒ°å¯è¡æ§/æ¶ææ§/å¯ä¿¡åºŠ/æ¶çæ¯/å¯å€å¶æ§ïŒäžè§ååŒæèå | â |
| è¯ä¹å»é | LLMåµå ¥åé + äœåŒŠçžäŒŒåºŠïŒè¯å«æ¹åãç¿»è¯åçéå€å 容 | â |
| 䞪æ§åæšè | åºäºçšæ·æèœãæ¶éŽé¢ç®ãé£é©å奜ïŒLLMçæå¹é çç± | â |
| é£é©è¯å« | AIèªåšè¯å«è¯éªãäŒ éãèµéççé«é£é©å 容 | â |
| æºèœæèŠ | èªåšçæäžææèŠåæ žå¿èŠç¹ | â |
| å¹³å° | æ°æ®æº | ç¶æ |
|---|---|---|
| V2EX | /api/topics/show.json 宿¶API |
â |
| ç¥ä¹ | çæ + é«èµåçè§£æ | â |
| GitHub | Trending + Sponsors æ¢çŽ¢ | â |
| å³å» | ååå 容æå | â |
| RSS | èªå®ä¹RSSæºè®¢é | â |
- JWTè®€è¯ + Tokené»åå
- bcryptå¯ç ååž
- éçéå¶ (SlowAPI)
- CORS / CSP / HSTS å®å šå€Ž
- SQLæ³šå ¥é²æ€ (SQLAlchemy ORM)
- XSS鲿€ (bleach)
- 请æ±äœå€§å°éå¶
- 审计æ¥å¿ + PII è±æ
- å®å šçžå ³ä»£ç åç § OWASP Top 10 çæè·¯çŒåïŒæªåè¿ç¬¬äžæ¹å®å šå®¡è®¡ïŒäžçäº"åè§"ïŒ
| ç»ä»¶ | ææ¯ | 诎æ |
|---|---|---|
| Webæ¡æ¶ | FastAPI + Uvicorn | åŒæ¥é«æ§èœAPI |
| æ°æ®åº | PostgreSQL 16 + asyncpg | äž»ååš + è¿æ¥æ± |
| çŒå | Redis 7 | ç»æçŒåãååžåŒéæµãSession |
| ä»»å¡éå | Celery + Redis | åŒæ¥ç¬è«ã宿¶ä»»å¡ |
| çæ§ | Prometheus + Grafana | HTTPææ ãäžå¡ææ ãåèŠ |
| æ¥å¿ | structlog + JSON | ç»æåæ¥å¿ã远螪 |
| å端 | React 18 + Vite + Tailwind CSS | ç°ä»£åSPA管ççé¢ |
| å®¹åš | Docker + Compose | 倿å¡çŒæ |
| K8séšçœ² | Helm Chart | Chart å·²åå¥œïŒæªåšä»»äœé矀éªè¯ |
| CI/CD | GitHub Actions | 黿项ïŒruffïŒçå®çŒºé·è§åïŒ+ pytestïŒmypy/bandit 䞺é黿æ¥å |
åç«¯çæºç éœåšæ¬ä»åºå ïŒäœææ ååžä»»äœå¯æ§è¡å®è£ å ïŒä»åºå°æªåå»ºä»»äœ ReleaseïŒã äžè¡šåŠå®æ 泚æ¯äžç«¯åœåçå¯è¿è¡çšåºŠïŒè¯·å¿æ"代ç ååš"ç解䞺"å¯ä»¥çŽæ¥äžèœœäœ¿çš"ã
| 端 | ææ¯ | ç®åœ | åœåç¶æ |
|---|---|---|---|
| Web 管çåå° | React 18 + Vite + Tailwind | frontend/ |
å¯è¿è¡ïŒæºç å¯åšåæ¬å°è®¿é® |
| Windows / macOS / Linux æ¡é¢ç«¯ | Tauri (Rust + Web) | clients/desktop/ |
ä» æèææ¶ïŒæªæå»ºãæªååžå®è£ å |
| Android / iOS | React Native | clients/mobile/ |
ä» æé¡µé¢èææ¶ïŒæªæå»ºãæªååž |
| å®çœ | Next.js | website/ |
å¯è¿è¡ïŒæºç å¯åš |
| æµè§åšæä»¶ | â | â | æªåŒå§ |
æ¬ä»åºæ²¡æçº¿äžæŒç€ºç«ç¹ïŒä¹æ²¡æå¯äžèœœç .msi / .dmg / .AppImage / .apkã
éèŠäœéªè¯·æäžæ¹"æ¹åŒäžïŒæºç è¿è¡"åšæ¬å°å¯åšã
åæïŒæ¬æºå·²è£ DockerïŒäžäœ éèŠå åå€äžäžª LLM API KeyïŒåŠå AI åèœäžå¯çšã
git clone https://github.com/dfhhvc/auto92811.git
cd auto92811
# å€å¶ç¯å¢é
眮
cp .env.example .env
# çŒèŸ .env å¡«å
¥æ°æ®åºå¯ç å LLM API Key
# å¯åšå
šéšæå¡ïŒå端 + å端 + DB + Redis + GrafanaïŒ
docker-compose up -d
# æ¥çç¶æ
docker-compose ps
# æ¥çæ¥å¿
docker-compose logs -f appå¯åšå访é®ïŒ
- ð Web管çåå°: http://localhost:3000
- ð¡ API ææ¡£: http://localhost:8080/api/docs
- ð Grafana çæ§: http://localhost:3001
- ð¥ Prometheus: http://localhost:9090
Helm Chart æºç åš k8s/autoincome/ïŒæªååžå°ä»»äœ Helm ä»åºïŒ
å æ€è¯·çŽæ¥ä»æ¬å°è·¯åŸå®è£
ïŒäžèŠäœ¿çš helm repo addïŒïŒ
# 仿¬å° Chart ç®åœå®è£
helm install autoincome ./k8s/autoincome \
--set config.secretKey=$(openssl rand -hex 32) \
--set llm.moonshot.enabled=true \
--set llm.moonshot.apiKey=$MOONSHOT_API_KEY
# æ¥ç Pod ç¶æ
kubectl get pods -l app.kubernetes.io/name=autoincome泚æïŒChart äžç
ingressé»è®€ååäž CORS çœååæåautoincome.devïŒ è¯¥ååå¹¶éæ¬é¡¹ç®ææïŒéšçœ²å请å¡å¿ åšvalues.yamläžæ¹æäœ èªå·±çååã
# 1. å端
cd autoincome
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
alembic upgrade head
uvicorn autoincome.api.main:app --reload --port 8080
# 2. å端ïŒåŠäžäžªç»ç«¯ïŒ
cd frontend
npm install
npm run dev
# 3. Celery WorkerïŒåäžäžªç»ç«¯ïŒ
celery -A autoincome.core.tasks worker -l infoAutoIncome çAIåèœéèŠé 眮è³å°äžäžªLLMæäŸåãæ¯æä»¥äžæ¹åŒïŒæäŒå 级èªåšåéïŒïŒ
# æ¹åŒ1ïŒMoonshot (Kimi) â æšè
AUTOINCOME_MOONSHOT_API_KEY=sk-xxxxxxxx
AUTOINCOME_MOONSHOT_MODEL=moonshot-v1-8k
# æ¹åŒ2ïŒOpenRouter
AUTOINCOME_OPENROUTER_API_KEY=sk-or-xxxxxxxx
# æ¹åŒ3ïŒOpenAI
OPENAI_API_KEY=sk-xxxxxxxx
# æ¹åŒ4ïŒæ¬å° OllamaïŒæ éAPI KeyïŒ
OLLAMA_HOST=http://localhost:11434/v1
OLLAMA_MODEL=qwen2.5:7bé
眮åéè¿ /api/v1/health éªè¯AIåŒæç¶æã
# è¿è¡å
šéšæµè¯
pytest
# èŠççæ¥å
pytest --cov=autoincome --cov-report=html
# ä»£ç æ£æ¥
ruff check src tests
mypy src
bandit -r src
safety check
# åç«¯æ£æ¥
cd frontend && npm run lint| ç«¯ç¹ | æ¹æ³ | 诎æ |
|---|---|---|
/api/v1/health |
GET | å¥åº·æ£æ¥ïŒå«DB/Redis/AIç¶æïŒ |
/api/v1/opportunities |
GET | å衚 + çé |
/api/v1/opportunities/{id} |
GET | 诊æ |
/api/v1/opportunities/scan |
POST | AIæºèœæ«æ |
/api/v1/opportunities |
POST | å建ïŒåžŠAIåæïŒ |
/api/v1/auth/login |
POST | JWTç»åœ |
/api/v1/auth/register |
POST | 泚å |
/api/v1/income |
GET/POST | æ¶ç远螪 |
/api/v1/community/vote |
POST | 瀟åºéªè¯æç¥š |
/api/v1/admin/stats |
GET | 管çç»è®¡ |
/metrics |
GET | Prometheusææ |
å®æŽææ¡£å¯åšåè®¿é® /api/docsïŒSwagger UIïŒã
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â 客æ·ç«¯å± â
â âââââââââââ âââââââââââ âââââââââââ âââââââââââââââââââ â
â â Web SPA â â Desktop â â Mobile â â æµè§åšæä»¶ â â
â â React â â Tauri â â RN â â (计å) â â
â ââââââ¬âââââ ââââââ¬âââââ ââââââ¬âââââ âââââââââââââââââââ â
â âââââââââââââââŽââââââââââââââ â
â â â
â Nginx / Ingress â
âââââââââââââââââââââââââââ¬ââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââŒââââââââââââââââââââââââââââââââââââââââ
â ⌠â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â AutoIncome API (FastAPI + Uvicorn) â â
â â âââââââââââââââ âââââââââââââââ âââââââââââââââââââ â â
â â â æºäŒCRUD â â AIåæåŒæ â â 讀è¯/å®å
šäžéŽä»¶ â â â
â â â ç¬è«è°åºŠ â â LLM Client â â éé/审计/CSP â â â
â â â å»é/è¯å â â è¯ä¹å»é â â JWT/é»åå â â â
â â âââââââââââââââ âââââââââââââââ âââââââââââââââââââ â â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â â
â ââââââââââââââ âââââââŽââââââ âââââââââââââââ âââââââââââ â
â âPostgreSQL â â Redis â â Celery â âPrometheusâ â
â â äž»ååš â â çŒå/éå â â åŒæ¥Worker â â ææ æ¶é â â
â ââââââââââââââ âââââââââââââ âââââââââââââââ âââââââââââ â
â â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
- â ææå¯ç bcrypt ååžååš
- â JWT Token é»ååæ³šéæºå¶
- â SlowAPI éçéå¶ïŒå¯é 眮ïŒ
- â å®å šååºå€ŽïŒCSP / HSTS / X-Frame-OptionsïŒ
- â SQLæ³šå ¥é²æ€ïŒORMåæ°åæ¥è¯¢ïŒ
- â XSS鲿€ïŒbleachèŸåºè¿æ»€ïŒ
- â 请æ±äœå€§å°éå¶
- â PIIèªåšè±ææ¥å¿
- â 审计æ¥å¿å šéŸè·¯è¿œèžª
- â 容åšérootè¿è¡
- â åªè¯»æ ¹æä»¶ç³»ç»
autoincome/
âââ src/autoincome/ # Pythonå端
â âââ api/ # FastAPIè·¯ç±
â â âââ routers/ # åæš¡åAPI
â â âââ schemas/ # Pydanticæš¡å
â âââ core/ # æ žå¿åŒæ
â â âââ ai/ # ð AIæš¡åïŒLLM/è¯ä¹å»é/æšèïŒ
â â âââ spiders/ # å¹³å°ç¬è«
â â âââ analyzer/ # è¯åäžæšè
â â âââ aggregator/ # å»éåŒæ
â â âââ captcha/ # ð éªè¯ç å€ç
â â âââ notifier/ # éç¥æšé
â â âââ tasks/ # Celeryä»»å¡
â â âââ database.py # æ°æ®åºæš¡å
â â âââ cache.py # RedisçŒå
â â âââ security.py # å®å
šå·¥å
·
â â âââ metrics.py # Prometheusææ
â âââ web/ # éæå
¥å£
âââ frontend/ # ð React管ççé¢
â âââ src/
â â âââ components/ # å¯å€çšç»ä»¶
â â âââ pages/ # 页é¢
â â âââ hooks/ # èªå®ä¹Hooks
â â âââ utils/ # APIå·¥å
·
â â âââ types/ # TypeScriptç±»å
â âââ package.json
âââ k8s/autoincome/ # ð Helm Chart
â âââ templates/ # K8sèµæºæš¡æ¿
â âââ values.yaml # é»è®€é
眮
â âââ Chart.yaml
âââ clients/ # ð å€å¹³å°å®¢æ·ç«¯
â âââ desktop/ # Tauriæ¡é¢ç«¯
â âââ mobile/ # React Nativeç§»åšç«¯
âââ website/ # ð å®çœ
âââ docker/ # Dockeræå»ºæä»¶
âââ docker-compose.yml # äžé®å¯åš
âââ pyproject.toml # PythonäŸèµ
âââ README.md
æ¬¢è¿æäº€ Issue å PRïŒè¯·å é 读 CONTRIBUTING.mdã
# æ¬å°åŒåæµçš
git clone https://github.com/dfhhvc/auto92811.git
cd auto92811
pre-commit install
pytestMIT License â è¯Šè§ LICENSE
Built with â€ïž by AutoIncome Team