# ð é²é±Œèªåšåå€ç³»ç»
[](https://github.com/zhinianboke/xianyu-auto-reply)
[](https://github.com/zhinianboke/xianyu-auto-reply#-å¿«éåŒå§)
[](https://www.python.org/)
[](#ïž-çæå£°æäžäœ¿ç𿡿¬Ÿ)
## ææ°ä»£ç è·åå°å
æçšå€žå
çœçç»äœ å享äºãèªåšåèŽ§ç³»ç»æºç ãïŒç¹å»éŸæ¥æå€å¶æŽæ®µå
å®¹ïŒæåŒã倞å
APPãå³å¯è·åã /~5e4237vG5B~:/ éŸæ¥ïŒhttps://pan.quark.cn/s/88d118bd700e
> **â ïž éèŠæç€ºïŒæ¬é¡¹ç®ä»
äŸåŠä¹ ç 究䜿çšïŒäž¥çŠåäžçšéïŒäœ¿çšå请ä»ç»é
读[çæå£°æ](#ïž-çæå£°æäžäœ¿ç𿡿¬Ÿ)ã**
äžäžªåèœå®æŽçé²é±Œèªåšåå€å管çç³»ç»ïŒæ¯æå€çšæ·ãå€èŽŠå·ç®¡çïŒå
·å€æºèœåå€ãèªåšå莧ãèªåšç¡®è®€å莧ãåå管ççäŒäžçº§åèœã
## âš æ žå¿ç¹æ§
### ð å€çšæ·ç³»ç»
- **çšæ·æ³šåç»åœ** - æ¯æé®ç®±éªè¯ç 泚åïŒåŸåœ¢éªè¯ç ä¿æ€
- **æ°æ®å®å
šé犻** - æ¯äžªçšæ·çæ°æ®ç¬ç«ååšïŒäºäžå¹²æ°
- **æé管ç** - äž¥æ Œççšæ·æéæ§å¶åJWT讀è¯
- **å®å
šä¿æ€** - 鲿Žåç Žè§£ãäŒè¯ç®¡çãå®å
šæ¥å¿
### ð± å€èŽŠå·ç®¡ç
- **æ éèŽŠå·æ¯æ** - æ¯äžªçšæ·å¯ç®¡çå€äžªé²é±ŒèŽŠå·
- **ç¬ç«è¿è¡** - æ¯äžªèŽŠå·ç¬ç«çæ§ïŒäºäžåœ±å
- **宿¶ç¶æ** - 莊å·è¿æ¥ç¶æå®æ¶çæ§
- **æ¹éæäœ** - æ¯ææ¹éå¯åšãåæ¢èŽŠå·ä»»å¡
### ð€ æºèœåå€ç³»ç»
- **å
³é®è¯å¹é
** - æ¯æç²Ÿç¡®å
³é®è¯å¹é
åå€
- **æå®åååå€** - æ¯æäžºç¹å®åå讟眮äžéšçåå€å
容ïŒäŒå
级æé«
- **ååäžçšå
³é®è¯** - æ¯æäžºç¹å®åå讟眮äžçšå
³é®è¯åå€
- **éçšå
³é®è¯** - æ¯æå
šå±éçšå
³é®è¯ïŒéçšäºææåå
- **æ¹é富å
¥å¯Œåº** - æ¯æExcelæ ŒåŒçå
³é®è¯æ¹é富å
¥å¯Œåº
- **AIæºèœåå€** - éæOpenAI APIïŒæ¯æäžäžæçè§£
- **åéæ¿æ¢** - åå€å
å®¹æ¯æåšæåéïŒçšæ·åãååä¿¡æ¯ãååIDçïŒ
- **äŒå
级çç¥** - æå®åååå€ > ååäžçšå
³é®è¯ > éçšå
³é®è¯ > é»è®€åå€ > AIåå€
### ð èªåšå莧åèœ
- **æºèœå¹é
** - åºäºååä¿¡æ¯èªåšå¹é
å莧è§å
- **å€è§æ Œæ¯æ** - æ¯æåäžååçäžåè§æ Œèªåšå¹é
对åºå¡åž
- **粟确å¹é
+å
åºæºå¶** - äŒå
粟确å¹é
è§æ ŒïŒå€±èŽ¥æ¶èªåšéçº§å°æ®éå¡åž
- **å»¶æ¶å莧** - æ¯æè®Ÿçœ®åèŽ§å»¶æ¶æ¶éŽïŒ0-3600ç§ïŒ
- **å€ç§è§Šå** - æ¯æä»æ¬Ÿæ¶æ¯ãå°åæ¶æ¯çå€ç§è§Šåæ¡ä»¶
- **é²éå€å莧** - æºèœé²é倿ºå¶ïŒé¿å
éå€å莧
- **å€ç§å莧æ¹åŒ** - æ¯æåºå®æåãæ¹éæ°æ®ãAPIè°çšãåŸçåèŽ§çæ¹åŒ
- **åŸçå莧** - æ¯æäžäŒ åŸçå¹¶èªåšåéç»ä¹°å®¶ïŒåŸçèªåšäžäŒ å°CDN
- **èªåšç¡®è®€å莧** - æ£æµå°ä»æ¬Ÿåèªåšè°çšé²é±ŒAPI确讀åèŽ§ïŒæ¯æéæºå¶é²å¹¶å
- **é²éå€ç¡®è®€** - æºèœé²éå€ç¡®è®€æºå¶ïŒé¿å
éå€APIè°çš
- **订å诊æ
çŒå** - 订å诊æ
è·åæ¯ææ°æ®åºçŒåïŒå€§å¹
æåæ§èœ
- **å莧ç»è®¡** - 宿Žçå莧记åœåç»è®¡åèœ
### ðïž åå管ç
- **èªåšæ¶é** - æ¶æ¯è§Šåæ¶èªåšæ¶éååä¿¡æ¯
- **APIè·å** - éè¿é²é±ŒAPIè·å宿Žåå诊æ
- **å€è§æ Œæ¯æ** - æ¯æå€è§æ Œååçè§æ Œä¿¡æ¯ç®¡ç
- **æ¹é管ç** - æ¯ææ¹éæ¥çãçŒèŸã忢å€è§æ Œç¶æ
- **æºèœå»é** - èªåšå»éïŒé¿å
éå€ååš
### ð ååæçŽ¢åèœ
- **ç宿°æ®è·å** - åºäºPlaywrightææ¯è·åçå®é²é±Œååæ°æ®
- **æºèœæåº** - æ"人æ³èŠ"æ°éèªåšååºæå
- **å€é¡µæçŽ¢** - æ¯æäžæ¬¡æ§è·åå€é¡µååæ°æ®
- **å端å页** - çµæŽ»çå端å页æŸç€º
- **åå诊æ
** - æ¯ææ¥ç宿Žåå诊æ
ä¿¡æ¯
### ð ç³»ç»çæ§
- **宿¶æ¥å¿** - 宿Žçæäœæ¥å¿è®°åœåæ¥ç
- **æ§èœçæ§** - ç³»ç»èµæºäœ¿çšæ
åµçæ§
- **å¥åº·æ£æ¥** - æå¡ç¶æå¥åº·æ£æ¥
### ð æ°æ®ç®¡ç
- **Excel富å
¥å¯Œåº** - æ¯æå
³é®è¯æ°æ®çExcelæ ŒåŒå¯Œå
¥å¯Œåº
- **æš¡æ¿çæ** - èªåšçæå
å«ç€ºäŸæ°æ®ç富å
¥æš¡æ¿
- **æ¹éæäœ** - æ¯ææ¹éæ·»å ãæŽæ°å
³é®è¯æ°æ®
- **æ°æ®éªè¯** - 富å
¥æ¶èªåšéªè¯æ°æ®æ ŒåŒåé倿§
- **å€è§æ Œå¡åžç®¡ç** - æ¯æå建å管çå€è§æ Œå¡åž
- **å莧è§å管ç** - æ¯æå€è§æ Œå莧è§åçå建å管ç
- **æ°æ®å€ä»œ** - èªåšæ°æ®å€ä»œåæ¢å€
- **äžé®éšçœ²** - æäŸé¢æå»ºDockeréåïŒæ éçŒè¯å³å¯å¿«ééšçœ²
## ð 项ç®ç»æ
ç¹å»å±åŒæ¥ç诊ç»é¡¹ç®ç»æ
```
xianyu-auto-reply/
âââ ð æ žå¿æä»¶
â âââ Start.py # 项ç®å¯åšå
¥å£ïŒåå§åæææå¡
â âââ XianyuAutoAsync.py # é²é±ŒWebSocketè¿æ¥åæ¶æ¯å€çæ žå¿
â âââ reply_server.py # FastAPI Webæå¡åšå宿ŽAPIæ¥å£
â âââ db_manager.py # SQLiteæ°æ®åºç®¡çïŒæ¯æå€çšæ·æ°æ®é犻
â âââ cookie_manager.py # å€èŽŠå·Cookie管çåä»»å¡è°åºŠ
â âââ ai_reply_engine.py # AIæºèœåå€åŒæïŒæ¯æå€ç§AIæš¡å
â âââ file_log_collector.py # 宿¶æ¥å¿æ¶éå管çç³»ç»
â âââ config.py # å
šå±é
眮æä»¶ç®¡çåš
â âââ secure_confirm_ultra.py # èªåšç¡®è®€å莧暡åïŒå€å±å å¯ä¿æ€ïŒ
â âââ secure_freeshipping_ultra.py # èªåšå
æŒå莧暡åïŒå€å±å å¯ä¿æ€ïŒ
âââ ð ïž å·¥å
·æš¡å
â âââ utils/
â âââ xianyu_utils.py # é²é±ŒAPIå·¥å
·åœæ°ïŒå å¯ãçŸåãè§£æïŒ
â âââ message_utils.py # æ¶æ¯æ ŒåŒååå€çå·¥å
·
â âââ ws_utils.py # WebSocket客æ·ç«¯å°è£
â âââ qr_login.py # äºç»Žç ç»åœåèœ
â âââ item_search.py # ååæçŽ¢åèœïŒåºäºPlaywrightïŒæ 倎暡åŒïŒ
â âââ order_detail_fetcher.py # 订å诊æ
è·åå·¥å
·
â âââ image_utils.py # åŸçå€çå·¥å
·ïŒåçŒ©ãæ ŒåŒèœ¬æ¢ïŒ
â âââ image_uploader.py # åŸçäžäŒ å°CDNå·¥å
·
âââ ð å端çé¢
â âââ static/
â âââ index.html # 䞻管ççé¢ïŒéæææåèœæš¡åïŒ
â âââ login.html # çšæ·ç»åœé¡µé¢
â âââ register.html # çšæ·æ³šå页é¢ïŒé®ç®±éªè¯ïŒ
â âââ js/
â â âââ app.js # äž»èŠJavaScripté»èŸåææåèœæš¡å
â âââ css/
â â âââ variables.css # CSSåéå®ä¹
â â âââ layout.css # åžå±æ ·åŒ
â â âââ components.css # ç»ä»¶æ ·åŒ
â â âââ accounts.css # 莊å·ç®¡çæ ·åŒ
â â âââ keywords.css # å
³é®è¯ç®¡çæ ·åŒ
â â âââ items.css # ååç®¡çæ ·åŒ
â â âââ logs.css # æ¥å¿ç®¡çæ ·åŒ
â â âââ notifications.css # éç¥æ ·åŒ
â â âââ dashboard.css # ä»ªè¡šæ¿æ ·åŒ
â â âââ admin.css # 管çåæ ·åŒ
â â âââ app.css # äž»åºçšæ ·åŒ
â âââ lib/
â â âââ bootstrap/ # Bootstrapæ¡æ¶
â â âââ bootstrap-icons/ # BootstrapåŸæ
â âââ uploads/
â â âââ images/ # äžäŒ çåŸçæä»¶
â âââ xianyu_js_version_2.js # é²é±ŒJavaScriptå·¥å
ጼ
â âââ wechat-group.png # 埮信矀äºç»Žç
â âââ qq-group.png # QQ矀äºç»Žç
âââ ð³ Dockeréšçœ²
â âââ Dockerfile # Dockeréåæå»ºæä»¶ïŒäŒåçïŒ
â âââ Dockerfile-cn # åœå
äŒåçDockeréåæå»ºæä»¶
â âââ docker-compose.yml # Docker Composeäžé®éšçœ²é
眮
â âââ docker-compose-cn.yml # åœå
äŒåçDocker Composeé
眮
â âââ docker-deploy.sh # Dockeréšçœ²ç®¡çèæ¬ïŒLinux/macOSïŒ
â âââ docker-deploy.bat # Dockeréšçœ²ç®¡çèæ¬ïŒWindowsïŒ
â âââ entrypoint.sh # Docker容åšå¯åšèæ¬
â âââ .dockerignore # Dockeræå»ºå¿œç¥æä»¶
âââ ð Nginxé
眮
â âââ nginx/
â âââ nginx.conf # Nginxåå代çé
眮
â âââ ssl/ # SSLè¯ä¹Šç®åœ
âââ ð é
眮æä»¶
â âââ global_config.yml # å
šå±é
眮æä»¶ïŒWebSocketãAPIçïŒ
â âââ requirements.txt # PythonäŸèµå
å衚ïŒç²Ÿç®çïŒæ å
眮暡åïŒ
â âââ .gitignore # Gitå¿œç¥æä»¶é
眮ïŒå®æŽçïŒ
â âââ README.md # 项ç®è¯Žæææ¡£ïŒæ¬æä»¶ïŒ
âââ ð æ°æ®ç®åœïŒè¿è¡æ¶å建ïŒ
âââ data/ # æ°æ®ç®åœïŒDockeræèœœïŒ
â âââ xianyu_data.db # SQLiteæ°æ®åºæä»¶
âââ logs/ # ææ¥æåå²çæ¥å¿æä»¶
âââ backups/ # æ°æ®å€ä»œæä»¶
```
## ð å¿«éåŒå§
**â¡ æå¿«éšçœ²æ¹åŒïŒæšèïŒ**ïŒäœ¿çšé¢æå»ºéåïŒæ éäžèœœæºç ïŒäžæ¡åœä»€å³å¯å¯åšïŒ
### æ¹åŒäžïŒDocker äžé®éšçœ²ïŒæç®åïŒ
```bash
# 1. åå»ºæ°æ®ç®åœ
mkdir -p xianyu-auto-reply
# 2. äžé®å¯åšå®¹åš
docker run -d \
-p 8080:8080 \
-v $PWD/xianyu-auto-reply/:/app/data/ \
--name xianyu-auto-reply \
registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
# 3. 访é®ç³»ç»
# http://localhost:8080
```
**Windowsçšæ·**ïŒ
```cmd
# åå»ºæ°æ®ç®åœ
mkdir xianyu-auto-reply
# å¯åšå®¹åš
docker run -d -p 8080:8080 -v %cd%/xianyu-auto-reply/:/app/data/ --name xianyu-auto-reply registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:1.0
```
### æ¹åŒäºïŒä»æºç æå»ºéšçœ²
```bash
# 1. å
é项ç®
git clone https://github.com/zhinianboke/xianyu-auto-reply.git
cd xianyu-auto-reply
# 2. è®Ÿçœ®èæ¬æ§è¡æéïŒLinux/macOSïŒ
chmod +x docker-deploy.sh
# 3. äžé®éšçœ²ïŒèªåšæå»ºéåïŒ
./docker-deploy.sh
# 4. 访é®ç³»ç»
# http://localhost:8080
```
**Windowsçšæ·**ïŒ
```cmd
# 䜿çšWindowsæ¹å€çèæ¬ïŒæšèïŒ
docker-deploy.bat
# æè
䜿çšGit Bash/WSL
bash docker-deploy.sh
# æè
çŽæ¥äœ¿çšDocker Compose
docker-compose up -d --build
```
### æ¹åŒäžïŒæ¬å°åŒåéšçœ²
```bash
# 1. å
é项ç®
git clone https://github.com/zhinianboke/xianyu-auto-reply.git
cd xianyu-auto-reply
# 2. å建èæç¯å¢ïŒæšèïŒ
python -m venv venv
source venv/bin/activate # Linux/macOS
# æ venv\Scripts\activate # Windows
# 3. å®è£
PythonäŸèµ
pip install --upgrade pip
pip install -r requirements.txt
# 4. å®è£
Playwrightæµè§åš
playwright install chromium
playwright install-deps chromium # LinuxéèŠ
# 5. å¯åšç³»ç»
python Start.py
# 6. 访é®ç³»ç»
# http://localhost:8080
```
### ð ç¯å¢èŠæ±
- **Python**: 3.11+
- **Node.js**: 16+ (çšäºJavaScriptæ§è¡)
- **ç³»ç»**: Windows/Linux/macOS
- **å
å**: 建议2GB+
- **ååš**: 建议10GB+
- **Docker**: 20.10+ (Dockeréšçœ²)
- **Docker Compose**: 2.0+ (Dockeréšçœ²)
### ð 访é®ç³»ç»
éšçœ²å®æåïŒæšå¯ä»¥éè¿ä»¥äžæ¹åŒè®¿é®ç³»ç»ïŒ
- **Web管ççé¢**ïŒhttp://localhost:8080
- **é»è®€ç®¡çå莊å·**ïŒ
- çšæ·åïŒ`admin`
- å¯ç ïŒ`admin123`
- **APIææ¡£**ïŒhttp://localhost:8080/docs
- **å¥åº·æ£æ¥**ïŒhttp://localhost:8080/health
> â ïž **å®å
šæç€º**ïŒéŠæ¬¡ç»åœå请ç«å³ä¿®æ¹é»è®€å¯ç ïŒ
## ð ç³»ç»äœ¿çš
### 1. çšæ·æ³šå
- è®¿é® `http://localhost:8080/register.html`
- å¡«åçšæ·ä¿¡æ¯ïŒå®æé®ç®±éªè¯
- èŸå
¥åŸåœ¢éªè¯ç å®ææ³šå
### 2. æ·»å é²é±ŒèŽŠå·
- ç»åœç³»ç»åè¿å
¥äž»çé¢
- ç¹å»"æ·»å æ°èŽŠå·"
- èŸå
¥èŽŠå·IDå宿ŽçCookieåŒ
- ç³»ç»èªåšå¯åšèŽŠå·çæ§ä»»å¡
### 3. é
眮èªåšåå€
- **å
³é®è¯åå€**ïŒè®Ÿçœ®å
³é®è¯å对åºåå€å
容
- **AIåå€**ïŒé
眮OpenAI APIå¯é¥å¯çšæºèœåå€
- **é»è®€åå€**ïŒè®Ÿçœ®æªå¹é
æ¶çé»è®€åå€
### 4. 讟眮èªåšå莧
- æ·»å å莧è§åïŒè®Ÿçœ®ååå
³é®è¯åå莧å
容
- æ¯æææ¬å
容åå¡å¯æä»¶äž€ç§å莧æ¹åŒ
- ç³»ç»æ£æµå°ä»æ¬Ÿæ¶æ¯æ¶èªåšç¡®è®€å莧并èªåšå莧
### 5. 䜿çšååæçŽ¢åèœ
- 访é®ååæçޢ页é¢ïŒéèŠç»åœïŒ
- èŸå
¥æçŽ¢å
³é®è¯åæ¥è¯¢é¡µæ°
- ç³»ç»èªåšè·åçå®é²é±Œååæ°æ®
- ååæ"人æ³èŠ"æ°éèªåšæåº
- æ¯ææ¥çåå诊æ
å跳蜬å°é²é±Œé¡µé¢
## ðïž ç³»ç»æ¶æ
```
âââââââââââââââââââââââââââââââââââââââ
â Webçé¢ (FastAPI) â
â çšæ·ç®¡ç + åèœçé¢ â
âââââââââââââââ¬ââââââââââââââââââââââââ
â
âââââââââââââââŒââââââââââââââââââââââââ
â CookieManager â
â å€èŽŠå·ä»»å¡ç®¡ç â
âââââââââââââââ¬ââââââââââââââââââââââââ
â
âââââââââââââââŒââââââââââââââââââââââââ
â XianyuLive (å€å®äŸ) â
â WebSocketè¿æ¥ + æ¶æ¯å€ç â
âââââââââââââââ¬ââââââââââââââââââââââââ
â
âââââââââââââââŒââââââââââââââââââââââââ
â SQLiteæ°æ®åº â
â çšæ·æ°æ® + ååä¿¡æ¯ + é
çœ®æ°æ® â
âââââââââââââââââââââââââââââââââââââââ
```
## âš æ žå¿åèœç¹æ§
### ð èªåšåå€ç³»ç»
- **æºèœå
³é®è¯å¹é
** - æ¯æç²Ÿç¡®å¹é
åæš¡ç³å¹é
ïŒçµæŽ»é
眮åå€è§å
- **AIæºèœåå€** - éæå€ç§AIæš¡åïŒéä¹åé®ãGPTçïŒïŒæºèœçè§£çšæ·æåŸ
- **å€èŽŠå·ç®¡ç** - æ¯æåæ¶ç®¡çå€äžªé²é±ŒèŽŠå·ïŒç¬ç«é
眮åè¿è¡
- **宿¶æ¶æ¯å€ç** - WebSocketé¿è¿æ¥ïŒæ¯«ç§çº§ååºçšæ·æ¶æ¯
- **èªå®ä¹åå€æš¡æ¿** - æ¯æå äœç¬Šååšæå
容ïŒäžªæ§ååå€äœéª
### ð èªåšå莧系ç»
- **æºèœè®¢åè¯å«** - èªåšè¯å«èæåå订åïŒç²Ÿåå¹é
å莧è§å
- **å€éå®å
šéªè¯** - è¶
级å å¯ä¿æ€ïŒé²æ¢è¯¯æäœåæ°æ®æ³é²
- **æ¹éå€çèœå** - æ¯ææ¹é确讀åèŽ§ïŒæé«å€çæç
- **åŒåžžå€çæºå¶** - å®åçé误å€çåéè¯æºå¶ïŒç¡®ä¿å莧æå
- **倿ž ééç¥** - æ¯æQQãééãé£ä¹ŠãBarkãé®ä»¶çå€ç§å莧éç¥æ¹åŒ
### ð¥ å€çšæ·ç³»ç»
- **çšæ·æ³šåç»åœ** - æ¯æé®ç®±éªè¯ååŸåœ¢éªè¯ç ïŒå®å
šå¯é
- **æé管ç** - 管çååæ®éçšæ·æéå犻ïŒç²Ÿç»åæéæ§å¶
- **æ°æ®é犻** - æ¯äžªçšæ·çæ°æ®å®å
šé犻ïŒä¿æ€éç§å®å
š
- **äŒè¯ç®¡ç** - JWT Token讀è¯ïŒæ¯æèªåšç»æåå®å
šç»åº
### ð æ°æ®ç®¡ç
- **ååä¿¡æ¯ç®¡ç** - èªåšè·åå忥ååä¿¡æ¯ïŒå®æ¶æŽæ°ç¶æ
- **è®¢åæ°æ®ç»è®¡** - 诊ç»çè®¢åæ°æ®åæåå¯è§ååŸè¡š
- **å
³é®è¯ç®¡ç** - çµæŽ»çå
³é®è¯é
çœ®ïŒæ¯ææ£å衚蟟åŒ
- **æ°æ®å¯Œå
¥å¯Œåº** - æ¯æExcelæ ŒåŒçæ¹éæ°æ®æäœ
- **èªåšå€ä»œ** - 宿èªåšå€ä»œéèŠæ°æ®ïŒé²æ¢æ°æ®äž¢å€±
### ð ååæçŽ¢
- **ç宿°æ®è·å** - åºäºPlaywrightææ¯ïŒæ 倎暡åŒè·åçå®é²é±Œååæ°æ®
- **å€é¡µæçŽ¢** - æ¯æå页æçޢ忹éè·åïŒæ éå¶æ°æ®éé
- **æºèœæåº** - æ"人æ³èŠ"æ°éèªåšååºæåïŒäŒå
æŸç€ºçéšåå
- **æ°æ®å¯è§å** - çŸè§çååå±ç€ºçé¢ïŒæ¯ææåºåçé
- **å端å页** - çµæŽ»çå端å页æŸç€ºïŒæåçšæ·äœéª
- **莊å·ç¶æéªè¯** - èªå𿣿¥cookieså¯çšç¶æïŒç¡®ä¿æçŽ¢åèœæ£åžž
### ð± éç¥ç³»ç»
- **倿ž 鿝æ** - QQãééãé£ä¹ŠãBarkãé®ä»¶ã埮信ãTelegramç8ç§éç¥æ¹åŒ
- **æºèœé
眮** - å¯è§åé
眮çé¢ïŒæ¯æå€æåæ°åå å¯è®Ÿçœ®
- **宿¶æšé** - éèŠäºä»¶å®æ¶éç¥ïŒåæ¶äºè§£ç³»ç»ç¶æ
- **éç¥æš¡æ¿** - èªå®ä¹éç¥å
å®¹åæ ŒåŒïŒäžªæ§åæ¶æ¯æšé
- **ç§»åšç«¯æ¯æ** - Bark iOSæšéïŒéæ¶éå°æ¥æ¶éç¥
### ð å®å
šç¹æ§
- **Cookieå®å
šç®¡ç** - å å¯ååšçšæ·åè¯ïŒå®æèªåšå·æ°
- **Tokenèªåšå·æ°** - æºèœæ£æµåå·æ°è¿æTokenïŒä¿æè¿æ¥çš³å®
- **æäœæ¥å¿** - 诊ç»è®°åœæææäœæ¥å¿ïŒæ¯æå®¡è®¡å远螪
- **åŒåžžçæ§** - 宿¶çæ§ç³»ç»åŒåžžåé误ïŒäž»åšé¢èŠ
### ðš çšæ·çé¢
- **ç°ä»£å讟计** - åºäºBootstrap 5çååºåŒçé¢ïŒçŸè§æçš
- **å€äž»é¢æ¯æ** - æ¯æææäž»é¢åæ¢ïŒäžªæ§åçé¢äœéª
- **ç§»åšç«¯éé
** - å®çŸéé
ææºåå¹³æ¿è®Ÿå€ïŒéæ¶éå°ç®¡ç
- **宿¶æŽæ°** - ç颿°æ®å®æ¶æŽæ°ïŒæ éæåšå·æ°
## ð æ žå¿æä»¶åèœè¯Žæ
### ð æ žå¿å¯åšæš¡å
- **`Start.py`** - 项ç®å¯åšå
¥å£ïŒåå§åCookieManageråFastAPIæå¡ïŒä»æ°æ®åºå 蜜莊å·ä»»å¡å¹¶å¯åšåå°APIæå¡ïŒæ¯æç¯å¢åéé
眮
- **`XianyuAutoAsync.py`** - é²é±ŒWebSocketè¿æ¥æ žå¿ïŒå€çæ¶æ¯æ¶åãèªåšåå€ãæå®åååå€ãèªåšå莧ãååä¿¡æ¯æ¶éãAIåå€
- **`reply_server.py`** - FastAPI Webæå¡åšïŒæäŸå®æŽç管ççé¢åRESTful APIæ¥å£ïŒæ¯æå€çšæ·ç³»ç»ãJWT讀è¯ãæé管ç
- **`cookie_manager.py`** - å€èŽŠå·Cookie管çåšïŒèŽèŽ£èŽŠå·ä»»å¡çå¯åšã忢ãç¶æç®¡çå线çšå®å
šæäœïŒæ¯ææ°æ®åºæä¹
å
### ðïž æ°æ®åé
眮管ç
- **`db_manager.py`** - SQLiteæ°æ®åºç®¡çåšïŒæ¯æå€çšæ·æ°æ®é犻ãèªåšè¿ç§»ãçæ¬ç®¡çã宿ŽçCRUDæäœãé®ç®±éªè¯ãç³»ç»è®Ÿçœ®
- **`config.py`** - å
šå±é
眮æä»¶ç®¡çåšïŒå 蜜YAMLé
眮åç¯å¢åéïŒæäŸé
çœ®é¡¹è®¿é®æ¥å£ïŒæ¯æåšæé
çœ®æŽæ°
- **`global_config.yml`** - å
šå±é
眮æä»¶ïŒå
å«WebSocketãAPIãèªåšåå€ãAIãéç¥çææç³»ç»é
眮项
### ð€ æºèœåèœæš¡å
- **`ai_reply_engine.py`** - AIæºèœåå€åŒæïŒæ¯æOpenAIãéä¹åé®çå€ç§AIæš¡åïŒæåŸè¯å«ãäžäžæç®¡çã䞪æ§ååå€
- **`secure_confirm_ultra.py`** - èªåšç¡®è®€å莧暡åïŒéçšå€å±å å¯ä¿æ€ïŒè°çšé²é±ŒAPI确讀åèŽ§ç¶æïŒæ¯æéæºå¶é²å¹¶å
- **`secure_freeshipping_ultra.py`** - èªåšå
æŒå莧暡åïŒæ¯ææ¹éå€çãåŒåžžæ¢å€ãæºèœå¹é
ãè§æ Œè¯å«
- **`file_log_collector.py`** - 宿¶æ¥å¿æ¶éåšïŒæäŸWebç颿¥å¿æ¥çãæçŽ¢ãè¿æ»€ãäžèœœå管çåèœ
### ð ïž å·¥å
·æš¡å (`utils/`)
- **`xianyu_utils.py`** - é²é±ŒAPIæ žå¿å·¥å
·ïŒå
å«å å¯ç®æ³ãçŸåçæãæ°æ®è§£æãCookieå€çã请æ±å°è£
- **`message_utils.py`** - æ¶æ¯å€çå·¥å
·ïŒæ ŒåŒåæ¶æ¯å
容ãåéæ¿æ¢ãå
å®¹è¿æ»€ãæš¡æ¿æž²æã衚æ
å€ç
- **`ws_utils.py`** - WebSocket客æ·ç«¯å°è£
ïŒå€çè¿æ¥ç®¡çãå¿è·³æ£æµãéè¿æºå¶ãæ¶æ¯éåãåŒåžžæ¢å€
- **`qr_login.py`** - äºç»Žç ç»åœåèœïŒçæç»åœäºç»Žç ãç¶ææ£æµãCookieè·åãéªè¯ãèªåšå·æ°
- **`item_search.py`** - ååæçŽ¢åèœïŒåºäºPlaywrightè·åçå®é²é±Œååæ°æ®ïŒæ¯æå页ãè¿æ»€ãæåº
- **`order_detail_fetcher.py`** - 订å诊æ
è·åå·¥å
·ïŒè§£æè®¢åä¿¡æ¯ãä¹°å®¶ä¿¡æ¯ãSKU诊æ
ïŒæ¯æçŒåäŒåãéæºå¶
- **`image_utils.py`** - åŸçå€çå·¥å
·ïŒæ¯æåçŒ©ãæ ŒåŒèœ¬æ¢ãå°ºå¯žè°æŽãæ°Žå°æ·»å ã莚éäŒå
- **`image_uploader.py`** - åŸçäžäŒ å·¥å
·ïŒæ¯æå€ç§CDNæå¡åãèªåšåçŒ©ãæ ŒåŒäŒåãæ¹éäžäŒ
### ð å端çé¢ (`static/`)
- **`index.html`** - 䞻管ççé¢ïŒéæææåèœæš¡åïŒèŽŠå·ç®¡çãå
³é®è¯ç®¡çãåå管çãå莧管çãç³»ç»çæ§ãçšæ·ç®¡çç
- **`login.html`** - çšæ·ç»åœé¡µé¢ïŒæ¯æåŸåœ¢éªè¯ç ãè®°äœç»åœç¶æãå€éå®å
šéªè¯
- **`register.html`** - çšæ·æ³šå页é¢ïŒæ¯æé®ç®±éªè¯ç ã宿¶éªè¯ãå¯ç åŒºåºŠæ£æµ
- **`js/app.js`** - äž»èŠJavaScripté»èŸïŒå
嫿æåèœæš¡åïŒå端亀äºãAPIè°çšã宿¶æŽæ°ãæ°æ®ç®¡çãçšæ·ç颿§å¶
- **`css/`** - æš¡ååæ ·åŒæä»¶ïŒå
å«åžå±ãç»ä»¶ãäž»é¢çåç±»æ ·åŒïŒååºåŒè®Ÿè®¡ïŒæ¯æææäž»é¢åæ¢
- **`xianyu_js_version_2.js`** - é²é±ŒJavaScriptå·¥å
·åºïŒå å¯è§£å¯ãæ°æ®å€çãAPIå°è£
- **`lib/`** - å端äŸèµåºïŒå
å«Bootstrap 5ãBootstrap Iconsçç¬¬äžæ¹åº
- **`uploads/images/`** - åŸçäžäŒ ç®åœïŒæ¯æå莧åŸçåå
¶ä»åªäœæä»¶ååš
### ð³ éšçœ²é
眮
- **`Dockerfile`** - Dockeréåæå»ºæä»¶ïŒåºäºPython 3.11-slimïŒå
å«Playwrightæµè§åšãç³»ç»äŸèµïŒæ¯ææ 倎暡åŒè¿è¡ïŒäŒåæå»ºå±çº§
- **`Dockerfile-cn`** - åœå
äŒåçDockeréåæå»ºæä»¶ïŒäœ¿çšåœå
éåæºå éæå»ºïŒéååœå
çœç»ç¯å¢
- **`docker-compose.yml`** - Docker Composeé
çœ®ïŒæ¯æäžé®éšçœ²ã宿Žç¯å¢åéé
眮ãèµæºéå¶ãå¥åº·æ£æ¥ãå¯éNginx代ç
- **`docker-compose-cn.yml`** - åœå
äŒåçDocker Composeé
眮æä»¶ïŒäœ¿çšåœå
éåæº
- **`docker-deploy.sh`** - Dockeréšçœ²ç®¡çèæ¬ïŒæäŸæå»ºãå¯åšã忢ãéå¯ãçæ§ãæ¥å¿æ¥ççåèœïŒLinux/macOSïŒ
- **`docker-deploy.bat`** - Windowsçæ¬éšçœ²èæ¬ïŒæ¯æWindowsç¯å¢äžé®éšçœ²å管ç
- **`entrypoint.sh`** - Docker容åšå¯åšèæ¬ïŒå€çç¯å¢åå§åãç®åœå建ãæé讟眮åæå¡å¯åš
- **`nginx/nginx.conf`** - Nginxåå代çé
çœ®ïŒæ¯æèŽèœœåè¡¡ãSSLç»ç«¯ãWebSocket代çãéææä»¶æå¡
- **`requirements.txt`** - PythonäŸèµå
å衚ïŒç²Ÿç®çæ¬æ å
眮暡åïŒæåèœåç±»ç»ç»ïŒå
å«è¯Šç»çæ¬è¯Žæåå®è£
æå
- **`.gitignore`** - Gitå¿œç¥æä»¶é
眮ïŒå®æŽèŠçPythonãDockerãåç«¯ãæµè¯ãäžŽæ¶æä»¶çïŒæ¯æé¡¹ç®ç¹å®æä»¶ç±»å
- **`.dockerignore`** - Dockeræå»ºå¿œç¥æä»¶ïŒäŒåæå»ºäžäžæå€§å°åæå»ºéåºŠïŒæé€äžå¿
èŠçæä»¶åç®åœ
## ðïž è¯Šç»ææ¯æ¶æ
### ð ç³»ç»æ¶æåŸ
```
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Webå端çé¢ â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â çšæ·ç®¡ç â â 莊å·ç®¡ç â â å
³é®è¯ç®¡ç â â åå管ç â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â æ¥å¿ç®¡ç â â æ°æ®ç®¡ç â â ååæçŽ¢ â â ç³»ç»çæ§ â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â FastAPI Webæå¡åš â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â çšæ·è®€è¯ â â æé管ç â â APIæ¥å£ â â æä»¶äžäŒ â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â é®ç®±éªè¯ â â åŸåœ¢éªè¯ç â â 宿¶æ¥å¿ â â å¥åº·æ£æ¥ â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â CookieManager å€èŽŠå·ç®¡çåš â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â ä»»å¡è°åºŠ â â ç¶æçæ§ â â 线çšç®¡ç â â åŒåžžå€ç â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â XianyuLive å®äŸé矀 (å€å®äŸå¹¶è¡) â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â 莊å·Aå®äŸ â â 莊å·Bå®äŸ â â 莊å·Cå®äŸ â â ... â â
â â WebSocket â â WebSocket â â WebSocket â â â â
â â æ¶æ¯å€ç â â æ¶æ¯å€ç â â æ¶æ¯å€ç â â â â
â â èªåšåå€ â â èªåšåå€ â â èªåšåå€ â â â â
â â èªåšå莧 â â èªåšå莧 â â èªåšå莧 â â â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â èŸ
婿塿š¡å â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â AIåå€åŒæ â â åŸçå€ç â â ååæçŽ¢ â â 订åå€ç â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â æ¥å¿æ¶é â â æä»¶ç®¡ç â â éç¥æšé â â æ°æ®å€ä»œ â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â SQLiteæ°æ®åº â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â çšæ·æ°æ® â â èŽŠå·æ°æ® â â å
³é®è¯æ°æ® â â ååæ°æ® â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â åèŽ§æ°æ® â â ç³»ç»è®Ÿçœ® â â æ¥å¿æ°æ® â â ç»è®¡æ°æ® â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
```
### ð æ°æ®æµçšåŸ
```
çšæ·æ¶æ¯ â WebSocketæ¥æ¶ â æ¶æ¯è§£æ â å
³é®è¯å¹é
â åå€çæ â æ¶æ¯åé
â â â â â â
⌠⌠⌠⌠⌠âŒ
ååè¯å« è¿æ¥ç®¡ç å
å®¹è¿æ»€ AIå€ç æš¡æ¿æž²æ åé确讀
â â â â â â
⌠⌠⌠⌠⌠âŒ
æ°æ®ååš ç¶æçæ§ å®å
𿣿¥ äžäžæ åéæ¿æ¢ æ¥å¿è®°åœ
```
### ð å®å
šæ¶æ
```
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â å®å
šé²æ€å± â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â JWTè®€è¯ â â æéæ§å¶ â â æ°æ®å å¯ â â è®¿é®æ§å¶ â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
â â åŸåœ¢éªè¯ç â â é®ç®±éªè¯ â â äŒè¯ç®¡ç â â æäœæ¥å¿ â â
â âââââââââââââââ âââââââââââââââ âââââââââââââââ âââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
```
## âïž é
眮诎æ
### 管çåå¯ç é
眮
**éèŠ**ïŒäžºäºç³»ç»å®å
šïŒåŒºç建议修æ¹é»è®€ç®¡çåå¯ç ïŒ
#### é»è®€å¯ç
- **çšæ·å**ïŒ`admin`
- **é»è®€å¯ç **ïŒ`admin123`
- **åå§åæºå¶**ïŒéŠæ¬¡åå»ºæ°æ®åºæ¶èªåšå建adminçšæ·
### å
šå±é
眮æä»¶
`global_config.yml` å
å«è¯Šç»çç³»ç»é
çœ®ïŒæ¯æïŒ
- WebSocketè¿æ¥åæ°
- APIæ¥å£é
眮
- èªåšåå€è®Ÿçœ®
- åå管çé
眮
- æ¥å¿é
眮ç
## ð§ é«çº§åèœ
### AIåå€é
眮
1. åšçšæ·è®Ÿçœ®äžé
眮OpenAI APIå¯é¥
2. éæ©AIæš¡åïŒæ¯æGPT-3.5ãGPT-4ãéä¹åé®çïŒ
3. 讟眮åå€çç¥åæç€ºè¯
4. å¯çšAIåå€åèœ
### èªåšå莧è§å
1. è¿å
¥å莧管ç页é¢
2. æ·»å å莧è§åïŒè®Ÿçœ®ååå
³é®è¯
3. äžäŒ å¡å¯æä»¶æèŸå
¥å莧å
容
4. ç³»ç»èªåšå¹é
ååå¹¶å莧
### ååä¿¡æ¯ç®¡ç
1. ç³»ç»èªåšæ¶éæ¶æ¯äžçååä¿¡æ¯
2. éè¿APIè·å宿Žåå诊æ
3. æ¯ææåšçŒèŸååä¿¡æ¯
4. 䞺èªåšå莧æäŸåç¡®çååæ°æ®
## ð çæ§å绎æ€
### æ¥å¿ç®¡ç
- **宿¶æ¥å¿**ïŒWebç颿¥ç宿¶ç³»ç»æ¥å¿
- **æ¥å¿æä»¶**ïŒ`logs/` ç®åœäžçææ¥æåå²çæ¥å¿æä»¶
- **æ¥å¿çº§å«**ïŒæ¯æDEBUGãINFOãWARNINGãERROR级å«
## ð å®å
šç¹æ§
- **JWT讀è¯**ïŒå®å
šççšæ·è®€è¯æºå¶
- **åŸåœ¢éªè¯ç **ïŒé²æ¢èªåšåæ»å»
- **é®ç®±éªè¯**ïŒç¡®ä¿çšæ·é®ç®±ç宿§
- **æ°æ®é犻**ïŒçšæ·æ°æ®å®å
šé犻
- **äŒè¯ç®¡ç**ïŒå®å
šçäŒè¯è¶
æ¶æºå¶
- **æäœæ¥å¿**ïŒå®æŽççšæ·æäœè®°åœ
- **代ç å å¯**ïŒæ žå¿äžå¡é»èŸéçšå€å±å å¯ä¿æ€
## ð¡ïž ææ¯ç¹æ§
### ðïž æ¶æè®Ÿè®¡
- **埮æå¡æ¶æ**ïŒæš¡ååè®Ÿè®¡ïŒæäºç»Žæ€åæ©å±
- **åŒæ¥çŒçš**ïŒåºäºasyncioç髿§èœåŒæ¥å€ç
- **WebSocketé¿è¿æ¥**ïŒå®æ¶æ¶æ¯å€çïŒäœå»¶è¿ååº
- **RESTful API**ïŒæ ååçAPIæ¥å£è®Ÿè®¡
### ð§ ææ¯æ
- **åç«¯æ¡æ¶**ïŒFastAPI + Uvicorn
- **æ°æ®åº**ïŒSQLiteïŒèœ»éçº§ïŒæ éé¢å€é
眮ïŒ
- **åç«¯ææ¯**ïŒåçHTML/CSS/JavaScript + Bootstrap
- **WebSocket**ïŒå®æ¶ååéä¿¡
- **容åšå**ïŒDocker + Docker Compose
### ð æ§èœäŒå
- **è¿æ¥æ± 管ç**ïŒé«æçæ°æ®åºè¿æ¥ç®¡ç
- **åŒæ¥å€ç**ïŒéé»å¡I/Oæäœ
- **å
åäŒå**ïŒæºèœçŒååååŸåæ¶
- **èµæºéå¶**ïŒDocker容åšèµæºéå¶åçæ§
### ð å®å
šæºå¶
- **å€å±å å¯**ïŒææä»£ç éçš5å±çŒç æ··æ·
- **åéåéæºå**ïŒé²æ¢éæåæ
- **è¿è¡æ¶è§£å¯**ïŒä»£ç åšå
åäžåšæè§£å¯æ§è¡
- **é²é倿ºå¶**ïŒæºèœé²éå€ç¡®è®€åå莧
## ð€ èŽ¡ç®æå
欢è¿äžºé¡¹ç®ååºèŽ¡ç®ïŒæšå¯ä»¥éè¿ä»¥äžæ¹åŒåäžïŒ
### ð æäº€é®é¢
- åš [GitHub Issues](https://github.com/zhinianboke/xianyu-auto-reply/issues) äžæ¥åBug
- æåºæ°åèœå»ºè®®åæ¹è¿æè§
- å享䜿çšç»éªåæäœ³å®è·µ
### ð§ 代ç 莡ç®
- Fork 项ç®å°æšçGitHub莊å·
- å建åèœåæ¯ïŒ`git checkout -b feature/your-feature`
- æäº€æŽæ¹ïŒ`git commit -am 'Add some feature'`
- æšé忝ïŒ`git push origin feature/your-feature`
- æäº€ Pull Request
## â åžžè§é®é¢
### 1. 端å£è¢«å çš
åŠæ8080端å£è¢«å çšïŒå¯ä»¥ä¿®æ¹ `global_config.yml` æä»¶äžç `AUTO_REPLY.api.port` é
çœ®ïŒæè
åš Docker å¯åšæ¶éè¿ç¯å¢åé `WEB_PORT` æå®ç«¯å£ã
### 2. æ°æ®åºè¿æ¥å€±èŽ¥
æ£æ¥æ°æ®åºæä»¶æéïŒç¡®ä¿åºçšæè¯»åæéã
### 3. WebSocketè¿æ¥å€±èŽ¥
æ£æ¥é²ç«å¢è®Ÿçœ®ïŒç¡®ä¿WebSocket端å£å¯ä»¥è®¿é®ã
### 4. Shellèæ¬æ§è¡é误ïŒLinux/macOSïŒ
åŠæéå° `bad interpreter` é误ïŒè¯Žæèæ¬çè¡ç»æç¬Šæ ŒåŒäžæ£ç¡®ïŒ
```bash
# æ¹æ³1ïŒæåšä¿®å€è¡ç»æç¬Š
sed -i 's/\r$//' docker-deploy.sh
chmod +x docker-deploy.sh
./docker-deploy.sh
# æ¹æ³2ïŒçŽæ¥äœ¿çšbashè¿è¡
bash docker-deploy.sh
```
### 5. Docker容åšå¯åšå€±èŽ¥
åŠæéå° `exec /app/entrypoint.sh: no such file or directory` é误ïŒ
```bash
# ç¡®ä¿entrypoint.shæä»¶ååšå¹¶éæ°æå»º
docker-compose down
docker-compose build --no-cache
docker-compose up -d
```
### 6. é¢æå»ºéåæå倱莥
åŠææ æ³æåé¢æå»ºéåïŒå¯ä»¥äœ¿çšæºç æå»ºïŒ
```bash
# å
é项ç®å¹¶ä»æºç æå»º
git clone https://github.com/zhinianboke/xianyu-auto-reply.git
cd xianyu-auto-reply
./docker-deploy.sh
```
### 7. Windowsç³»ç»éšçœ²
Windowsçšæ·æšèäœ¿çšæ¹å€çèæ¬ïŒ
```cmd
# 䜿çšWindowsæ¹å€çèæ¬
docker-deploy.bat
# æè
䜿çšPowerShell
powershell -ExecutionPolicy Bypass -File docker-deploy.bat
```
## ð ææ¯æ¯æ
### ð¬ 亀æµçŸ€ç»
欢è¿å å
¥æä»¬çææ¯äº€æµçŸ€ïŒè·å宿¶åž®å©åææ°æŽæ°ïŒ
#### é²é±Œå®æ¹é²çœ®çŸ€
#### 埮信亀æµçŸ€
#### QQ亀æµçŸ€
### ð§ èç³»æ¹åŒ
- **ææ¯æ¯æ**ïŒéå°é®é¢å¯åšçŸ€å
åšè¯¢
- **åèœå»ºè®®**ïŒæ¬¢è¿æåºæ¹è¿å»ºè®®
- **BugåéŠ**ïŒåç°é®é¢è¯·åæ¶åéŠ
## ð§ž ç¹å«éž£è°¢
æ¬é¡¹ç®åèäºä»¥äžåŒæºé¡¹ç®ïŒ
- **[XianYuApis](https://github.com/cv-cat/XianYuApis)** - æäŸäºé²é±ŒAPIæ¥å£çææ¯åè
- **[XianyuAutoAgent](https://github.com/shaxiu/XianyuAutoAgent)** - æäŸäºèªåšåå€ççå®ç°æè·¯
- **[myfish](https://github.com/Kaguya233qwq/myfish)** - æäŸäºæ«ç ç»åœçå®ç°æè·¯
æè°¢è¿äºäŒç§çåŒæºé¡¹ç®äžºæ¬é¡¹ç®çåŒåæäŸäºå®è޵çåèåå¯åïŒ
## âïž çæå£°æäžäœ¿ç𿡿¬Ÿ
### ð éèŠå£°æ
**æ¬é¡¹ç®ä»
äŸåŠä¹ åç 究䜿çšïŒäž¥çŠåäžçšéïŒ**
### ð« 䜿çšéå¶
- â **çŠæ¢åäžäœ¿çš** - æ¬é¡¹ç®åå
¶è¡çäœåäžåŸçšäºä»»äœåäžç®ç
- â **çŠæ¢éå®** - äžåŸä»¥ä»»äœåœ¢åŒé宿¬é¡¹ç®æåºäºæ¬é¡¹ç®çæå¡
- â **çŠæ¢çå©** - äžåŸéè¿æ¬é¡¹ç®è¿è¡ä»»äœåœ¢åŒçç婿޻åš
- â **çŠæ¢è¿æ³äœ¿çš** - äžåŸå°æ¬é¡¹ç®çšäºä»»äœè¿æ³è¿è§æŽ»åš
### â
å
讞䜿çš
- â
**åŠä¹ ç ç©¶** - å¯çšäºäžªäººåŠä¹ åææ¯ç ç©¶
- â
**éåäžå享** - å¯åšéåäžç¯å¢äžå享å讚论
- â
**åŒæºèŽ¡ç®** - 欢è¿äžºé¡¹ç®èŽ¡ç®ä»£ç åæ¹è¿
### ð 䜿çšèŠæ±
åŠææšäœ¿çšãä¿®æ¹æå忬项ç®ïŒå¿
é¡»ïŒ
1. **ä¿çåäœè
ä¿¡æ¯** - å¿
é¡»åšæŸèäœçœ®æ 泚åäœè
åé¡¹ç®æ¥æº
2. **ä¿ççæå£°æ** - äžåŸå é€æä¿®æ¹æ¬çæå£°æ
3. **泚æä¿®æ¹å
容** - åŠæä¿®æ¹ïŒéæç¡®æ 泚修æ¹éšå
4. **éµå®åŒæºåè®®** - äž¥æ Œéµå®é¡¹ç®çåŒæºè®žå¯åè®®
### ð€ åäœè
ä¿¡æ¯
- **项ç®äœè
**ïŒzhinianboke
- **项ç®å°å**ïŒhttps://github.com/zhinianboke/xianyu-auto-reply
- **èç³»æ¹åŒ**ïŒéè¿GitHub Issuesæé¡¹ç®äº€æµçŸ€
### â ïž å
莣声æ
1. **䜿çšé£é©èªèŽ** - äœ¿çšæ¬é¡¹ç®äº§ççä»»äœé£é©ç±äœ¿çšè
èªè¡æ¿æ
2. **æ 莚éä¿è¯** - æ¬é¡¹ç®æ"ç°ç¶"æäŸïŒäžæäŸä»»äœæç€ºææç€ºçä¿è¯
3. **莣任éå¶** - äœè
äžå¯¹äœ¿çšæ¬é¡¹ç®é æçä»»äœæå€±æ¿æ
莣任
4. **åè§äœ¿çš** - 䜿çšè
éç¡®ä¿äœ¿çšè¡äžºç¬Šååœå°æ³åŸæ³è§
### ð 䟵æå€ç
åŠåç°æ¬é¡¹ç®ååšäŸµæå
容ïŒè¯·éè¿ä»¥äžæ¹åŒèç³»ïŒ
- **GitHub Issues**ïŒhttps://github.com/zhinianboke/xianyu-auto-reply/issues
- **é®ç®±èç³»**ïŒåšé¡¹ç®äº€æµçŸ€äžè·åèç³»æ¹åŒ
æä»¬å°åšæ¶å°éç¥å**ç«å³å€ç**å¹¶å é€çžå
³å
容ã
### ð€ åäœäžææ
åŠéåäžäœ¿çšæç¹æ®ææïŒè¯·éè¿é¡¹ç®äº€æµçŸ€èç³»äœè
è¿è¡ååã
---
**âïž äœ¿çšæ¬é¡¹ç®å³è¡šç€ºæšå·²é
读ãç解并åæéµå®ä»¥äžæææ¡æ¬Ÿã**
---
ð **åŒå§äœ¿çšé²é±Œèªåšåå€ç³»ç»ïŒè®©æšçé²é±Œåºéºç®¡çæŽå æºèœé«æïŒ**
**请记äœïŒä»
éåŠä¹ 䜿çšïŒçŠæ¢åäžçšéïŒ**
## Star History
[](https://www.star-history.com/#zhinianboke/xianyu-auto-reply&Date)