Vibecoding æ¡äŸå享ïŒé¶ä»£ç æé AI ç»æ¬çæåš é¢åäººçŸ€ïŒæ çŒçšåºç¡ç纯å°çœ 项ç®åšæïŒçºŠ 2 åšïŒèŸ¹åŠèŸ¹åïŒ æç»ææïŒäžäžªèœæä»»æææ¡£èªåšèœ¬æ¢æå¿ç«¥ç»æ¬ç AI åºçš ïž ææå±ç€º AIç»æ¬ææåŸ äžåŸå±ç€ºäºäžæ¬ç± AI èªåšçæçå¿ç«¥ç»æ¬ãççžå€§åé©ãïŒå å«å°é¢ãå 容页ãäºåšé¡µãè§è²åèåŸç宿Žå 容ã åŠä¹ è·¯çº¿åŸ é¶æ®µ | ç®æ | æ¶éŽ | éŸåºŠ Demo é¶æ®µ | 5 åéè·é第äžäžª AI åºçš | 5 åé | â äžæé¶æ®µ | 宿宿Žçç»æ¬çæåš | 1-2 倩 | ââ â¡ äŒåé¶æ®µ | è§£å³å®é é®é¢ïŒæå莚é | æç» | âââ æ·±æ°Žåº | çè§£åçïŒäžŸäžåäž | è¿é¶ | ââââ 第äžé¶æ®µïŒDemoïŒ5 åéçå°ææïŒ æ žå¿ç念ïŒå«çç论ïŒå åšæïŒ
é¢åäººçŸ€ïŒæ çŒçšåºç¡ç纯å°çœ
项ç®åšæïŒçºŠ 2 åšïŒèŸ¹åŠèŸ¹åïŒ
æç»ææïŒäžäžªèœæä»»æææ¡£èªåšèœ¬æ¢æå¿ç«¥ç»æ¬ç AI åºçš

äžåŸå±ç€ºäºäžæ¬ç± AI èªåšçæçå¿ç«¥ç»æ¬ãççžå€§åé©ãïŒå å«å°é¢ãå 容页ãäºåšé¡µãè§è²åèåŸç宿Žå 容ã
| é¶æ®µ | ç®æ | æ¶éŽ | éŸåºŠ |
|---|---|---|---|
| ** Demo é¶æ®µ** | 5 åéè·é第äžäžª AI åºçš | 5 åé | â |
| ** äžæé¶æ®µ** | 宿宿Žçç»æ¬çæåš | 1-2 倩 | ââ |
| â¡ äŒåé¶æ®µ | è§£å³å®é é®é¢ïŒæå莚é | æç» | âââ |
| ** 深氎åº** | çè§£åçïŒäžŸäžåäž | è¿é¶ | ââââ |
æ žå¿ç念ïŒå«çç论ïŒå åšæïŒ5 åéå è®©äœ çå°ææã
åšçµèäžé䟿æŸäžªå°æ¹ïŒæ°å»ºäžäžªæä»¶å€¹ïŒæçAIç»æ¬
æåŒ Windsurf/CursorïŒæ Cmd+LïŒMacïŒæ Ctrl+LïŒWindowsïŒæåŒ AI å¯¹è¯æ¡ã
å€å¶ç²èŽŽè¿æ®µè¯ïŒ
ææ³åäžäžª AI ç»æ¬çæåšã 请垮æå建äžäžªæç®åççæ¬ïŒ 1. çš Python + Gradio åçé¢ 2. çšæ·èŸå ¥äžæ®µæåæè¿° 3. è°çš AI çæäžåŒ ç»æ¬é£æ ŒçåŸç 4. æŸç€ºåºæ¥ å åž®æå建项ç®ç»æåå¿ èŠçæä»¶ãâ
AI äŒåè¯äœ ïŒ
äœ åªéèŠïŒç¹å» AI ç»ç"Apply"æé®ïŒå®äŒèªåšåž®äœ å建æä»¶ã
Nano Banana Pro æ¯äžäžªåŒºå€§ç AI åŸççææå¡ïŒçšäºçæç»æ¬æåŸã


åšé¡¹ç®æ ¹ç®åœå建 .env æä»¶ïŒåŠææ²¡æçè¯ïŒïŒæ·»å 以äžé
眮ïŒ
# Nano Banana Pro APIïŒçšäº AI åŸççæïŒ NANO_BANANA_API_KEY=sk-7832cba5ad4e4119bbd1bf756ea721ab(è¿éæäŸäžäžªå¯çŽæ¥çšæ¥åæµè¯ç api_key, æé¢åºŠéå¶, 建议å®è·µçååŠåç»æ¢æèªå·±ç api_keyïŒæ³šæäžèŠæ³é²ïŒé¿å 被ä»äººäœ¿çš) NANO_BANANA_API_BASE=https://grsai.com NANO_BANANA_MODEL=nano-banana-proâ
| é 眮项 | 诎æ | é»è®€åŒ |
|---|---|---|
NANO_BANANA_API_KEY |
äœ ç API å¯é¥ | å¿ å¡« |
NANO_BANANA_API_BASE |
API æå¡å°å | https://grsai.com |
NANO_BANANA_MODEL |
䜿çšçæš¡å | nano-banana-pro |
å¯éæš¡åïŒ
nano-banana-fast - å¿«éçæïŒèŽšéäžè¬nano-banana-pro - äžäžçïŒæšèïŒæäžé¢è¿æ®µè¯å€å¶ç» AIïŒ
è¯·åž®ææ¥å ¥ Nano Banana Pro åŸççæ APIã API ä¿¡æ¯ïŒ - åºç¡ URL: https://grsai.com - ç»ç»æ¥å£: POST /v1/draw/nano-banana - ç»ææ¥è¯¢: POST /v1/draw/result - è®€è¯æ¹åŒ: Bearer Token (æŸåš Authorization header) 请æ±åæ°ïŒ - model: æš¡ååç§°ïŒåŠ "nano-banana-pro" - prompt: åŸçæè¿° - aspectRatio: åŸçæ¯äŸïŒåŠ "16:9" - imageSize: åŸç倧å°ïŒåŠ "2k" è¿åç»ææ¯åŒæ¥çïŒéèŠèœ®è¯¢ /v1/draw/result æ¥å£è·åçæç»æã 请垮æïŒ 1. å建äžäžª image_service.py æå¡ç±» 2. ä» .env 读å API Key 3. å®ç°çæåŸçåçåŸ ç»æçé»èŸâ
AI äŒåž®äœ çæå®æŽçæ¥å ¥ä»£ç ïŒ
åŠæAIçæçä»£ç æé误, å¯ä»¥æåŒæ¥å
¥ææ¡£:https://grsai.com/dashboard/documents/nano-banana, ç¶åæææç api è°çšä¿¡æ¯copy è¿æ¥, 让AIåž®äœ å®ç°å
·äœçæ¥å
¥é»èŸ, èäœ åªéèŠé
çœ®äž Token å°±å¯ä»¥äºã
AI äŒåè¯äœ è¿è¡åœä»€ïŒéåžžæ¯ïŒ
pip install gradio openai python app.pyâ
ç¶åæåŒæµè§åšïŒè®¿é® http://localhost:7860ïŒäœ å°±èœçå°äžäžªç®åççé¢äºïŒ
** æåïŒäœ å·²ç»ååºäºç¬¬äžäžª AI åºçšïŒ**
| äœ åŠå°äºä»ä¹ | 诎æ |
|---|---|
| AI çŒèŸåš | Cursor/Windsurf æ¯äœ ç"çšåºåæå" |
| 对è¯åŒåŒå | çšèªç¶è¯èšæè¿°éæ±ïŒAI åž®äœ å代ç |
| å¿«ééªè¯ | å åæå°çæ¬ïŒçå°ææåç»§ç» |
äžé¢ç Demo åªæ¯åŒèèïŒäžé¢æ¯å®æŽç项ç®åŒåè¿çšã
Vibecoding = çšèªç¶è¯èšåè¯ AI äœ æ³èŠä»ä¹ïŒè®© AI åž®äœ å代ç ã
äœ äžéèŠæçŒçšè¯æ³ïŒåªéèŠïŒ
å°±ååäžäžªçšåºåæåè倩ïŒåè¯ä»äœ æ³åä»ä¹ïŒä»åž®äœ å®ç°ã
äžäŒ äžäžªææ¡£ â AI èªåšçæäžæ¬å®æŽçç»æ¬
å å«ïŒæ äºå€§çº²ãè§è²è®Ÿè®¡ãæ¯é¡µæåŸãæç» PPT/PDF
æå¯¹ AI 诎ïŒ
"ææ³åäžäžª AI ç»æ¬çæåšãçšæ·äžäŒ äžäžª PDF ææ¡£ïŒç³»ç»èªåšæå®åæäžæ¬å¿ç«¥ç»æ¬ãéèŠæïŒææ¡£è§£æã倧纲çæãåŸççæãå¯Œåº PDF è¿å 䞪åèœãçš Python Flask åå端ã"
AI åž®æçæäºïŒ
æå¯¹ AI 诎ïŒ
"ææ¡£è§£æè¿åïŒææ³æ¯æ PDFãWordãTXT æ ŒåŒãPDF å¯èœæåŸçïŒéèŠçš OCR è¯å«ãåž®ææ¥å ¥mineru è¿äžª OCR æå¡ã"
AI åž®æå®ç°äºïŒ
å šèœçææ¡£è§£æç¥åšå šèœçææ¡£è§£æç¥åš
粟åè§£æ 髿æå å šé¢å©åAI Readyæ°æ®èªç±
æåŒçœå, 泚å莊å·, è¿å
¥éŠé¡µ.
ç¹å» 'API'ïŒå è¿è¡ API ç³è¯·, "MinerU API ç³è¯·é®å·", æäº€ååŸå¿«å°±äŒæ¶å°éè¿çç³è¯·.

ç³è¯·éè¿åïŒå°±å¯ä»¥å建 API Token äº(泚æ, 该 Token èŠä¿å奜ïŒåé¢èŠçšå°, äžäžèŠèœ»ææ³æŒ)ã
mineruåœåæ¯å€©æ¯æ 10000 次çå 莹è°çšïŒåºæ¬å¯ä»¥æ»¡è¶³æä»¬çæµè¯éæ±!
åšæ¥å
¥é¶æ®µ, å°APIææ¡£é¡µäžå
³äºåŠäœæ¥å
¥ API çå
šéšå
容 copy è¿æ¥, 让AIåž®æå®ç°å
·äœçæ¥å
¥é»èŸ, èäœ åªéèŠé
çœ®äž Token å°±å¯ä»¥äºã
æå¯¹ AI 诎ïŒ
"倧纲çæç Prompt äžå€ªå¥œïŒçæçå 容倪å AI åçïŒæ²¡æç«¥è¶£ãææ³èŠïŒ
- 让 AI æ®æŒ'äžç级å¿ç«¥ç»æ¬è®Ÿè®¡åž'
- æ¯é¡µèŠæåäºç®æ ãå ³é®å 容ãè§è§ç»é¢ãåžå±ç»æ
- é¿å AI åºè¯ïŒæ¯åŠ'äžä» ä» æ¯ XïŒèæ¯ Y'è¿ç§
- å°é¢èŠæå²å»åïŒå°åºèŠæä»ªåŒæ"
AI åž®æäŒåäº PromptïŒ
äœ æ¯äžäœäžç级çå¿ç«¥ç»æ¬è®Ÿè®¡åžåæ äºè®²è¿°è ã äœ å¶äœçç»æ¬èœæ ¹æ®æºçŽ æåç®æ åäŒè¿è¡è°æŽã å¡äºçææ äºïŒèäœ èŠæŸå°æäœ³ç讲述æ¹åŒã æ¯äžé¡µå¿ é¡»å å«ä»¥äž 4 䞪éšåïŒ // NARRATIVE GOAL (åäºç®æ ) // KEY CONTENT (å ³é®å 容) // VISUAL (è§è§ç»é¢) // LAYOUT (åžå±ç»æ) **è³å ³éèŠ (CRITICAL):** - é¿å "æ é¢ïŒå¯æ é¢"æ ŒåŒïŒè¿åŸ AI æ - çŠæ¢"äžä» ä» æ¯ [X]ïŒèæ¯ [Y]"è¿ç§åºè¯ - å°åºäžèŠçš"谢谢è§ç"ïŒèŠæè®Ÿè®¡æçç»æè¯â
æåç°çé®é¢ïŒ
"çæçç»æ¬éïŒåäžäžªå°ççžåšäžå页é¢é¿åŸäžäžæ ·ïŒç¬¬äžé¡µæ¯æ©è²çïŒç¬¬äžé¡µåæçº¢è²äºã"
æå¯¹ AI 诎ïŒ
"æä¹è®©è§è²åšæ¯äžé¡µéœä¿æäžèŽïŒ"
AI ç»åºçæ¹æ¡ïŒ

è§è²è®Ÿå®åŸç€ºäŸïŒå å«å šèº«å§¿å¿ïŒç«ç«ãæ¥æãåäžãè¡èµ°ïŒãé¢éšè¡šæ ïŒåŒå¿ã奜å¥ãæè®¶ãåå®ïŒãå ³é®ç¹åŸæ 泚ïŒååãçŒçãæè£ ïŒ
## Character Consistency (CRITICAL) You MUST maintain character consistency with the reference image. - Keep the same: face shape, eye color, hair style, clothing - Only change: pose, expression, and interaction with the sceneâ
æå¯¹ AI 诎ïŒ
"çæäžæ¬ç»æ¬èŠå¥œå åéïŒçšæ·å¹²ççäœéªåŸå·®ãèœäžèœå®æ¶æŸç€ºè¿åºŠïŒæ¯åŠ'æ£åšè§£æææ¡£...'ã'æ£åšçæç¬¬ 3 页...'è¿æ ·ã"
AI åž®æå®ç°äº SSEïŒæå¡åšæšéäºä»¶ïŒïŒ
æå¯¹ AI 诎ïŒ
"æäžªæ°éæ±ïŒçšæ·å¯ä»¥äžäŒ èªå·±çç §çïŒæ¯åŠå©åçç §çïŒïŒè®© AI æç §çèå ¥å°ç»æ¬æåŸéãæ¯åŠç»äžäžªå¡éåºæ¯ïŒäœé颿çå®çç §çã"
AI åž®æè®Ÿè®¡äº Mixed Media æ¹æ¡ïŒ
ïž Reality Layer (çå®ç §çå±) âââ çšæ·äžäŒ çç §çïŒä¿æ 100% çå®èŽšæ Illustration Layer (æç»å±) âââ AI çæçå¡éè§è²ååºæ¯ The Glue (èåå±) âââ å 圱ç»äžã蟹çŒäº€äºâ
| äœ åŠå°äºä»ä¹ | 诎æ |
|---|---|
| è¿ä»£åŒå | äžèœ®å¯¹è¯è§£å³äžäžªé®é¢ïŒéæ¥å®å |
| Prompt 讟计 | 奜çæç€ºè¯å³å® AI èŸåºèŽšé |
| é®é¢æè¿° | éå°é®é¢èŠæè¿°ç°è±¡ïŒäžèŠçåå |
项ç®è·èµ·æ¥äºïŒäœäŒéå°åç§é®é¢ãè¿äžèæäœ æä¹è§£å³ã
â é误瀺èïŒ
"åž®æåäžäžª Flask è·¯ç±ïŒçš POST æ¹æ³ïŒæ¥æ¶ multipart/form-data..."
â æ£ç¡®ç€ºèïŒ
"æéèŠäžäžªæä»¶äžäŒ åèœïŒçšæ·å¯ä»¥äžäŒ PDF æä»¶ïŒç³»ç»ä¿ååè¿åäžäžªä»»å¡ ID"
â é误瀺èïŒ
"æ°æ®åºè¿æ¥æ± æ¯äžæ¯æé®é¢ïŒ"
â æ£ç¡®ç€ºèïŒ
"äžäŒ æä»¶åïŒææ¶åäŒæ¥é'connection timeout'ïŒå€§æŠ 10 æ¬¡éæ 2 次"
â é误瀺èïŒ
"çæçå 容äžå€å¥œ"
â æ£ç¡®ç€ºèïŒ
"ç°åšçæçæ 颿¯'ççžçæ äºïŒäžäžªå ³äºåè°çåé©'ïŒææ³èŠæŽæç«¥è¶£çïŒæ¯åŠ'å¿ïŒè¿å°±æ¯äœ èŠæŸçççžå ¥éšæå'"
â é误瀺èïŒ
"åž®æåäžäžªå®æŽçç»æ¬ç³»ç»ïŒèŠæçšæ·ç»åœãæä»¶äžäŒ ãAI çæãå¯Œåº PDFãå享å°åŸ®ä¿¡..."
â æ£ç¡®ç€ºèïŒ
"æä»¬å åæä»¶äžäŒ åèœãçšæ·äžäŒ äžäžª PDFïŒç³»ç»ä¿åå°æ¬å°ïŒè¿åæä»¶è·¯åŸã"
è¿äºåæéœèž©è¿ïŒåäº«åºæ¥è®©äœ å°èµ°åŒ¯è·¯ã
é®é¢ïŒæ API Key ååšä»£ç éïŒäžäŒ å° GitHubïŒè¢«äººççšïŒäžå€ä¹éŽæ£äº 500 åã
è§£å³ïŒ
# â é误ïŒçŽæ¥ååšä»£ç é api_key = "sk-xxxxxxxxxxxxx" # â æ£ç¡®ïŒååš .env æä»¶é # .env æä»¶ïŒäžèŠäžäŒ å° GitHubïŒ OPENAI_API_KEY=sk-xxxxxxxxxxxxx # 代ç éè¿æ ·è¯»å import os api_key = os.getenv("OPENAI_API_KEY")â
è®°äœïŒå建 .gitignore æä»¶ïŒæ .env å è¿å»ã
é®é¢ïŒç¬¬äžé¡µæ¯å¡é飿 ŒïŒç¬¬äºé¡µåæåå®é£æ Œäºã
è§£å³ïŒåšæ¯äžªåŸççæç Prompt éïŒéœå äžé£æ Œæè¿°ã
# â é误ïŒåªæè¿°å 容 prompt = "ç»äžåªççžå𿣮æé" # â æ£ç¡®ïŒå 容 + 飿 Œ prompt = """ ç»äžåªççžå𿣮æéã 飿 ŒèŠæ±ïŒ - 迪士尌ç®å æ¯ 3D åšç»é£æ Œ - æäº®æž©æçè²è° - è§è²æå€§çŒçãåæ¶Šççº¿æ¡ - èæ¯ç®æŽïŒææåçå 线 """â
é®é¢ïŒåäžäžªè§è²ïŒæ¯äžé¡µé¿åŸéœäžäžæ ·ã
è§£å³ïŒ
é®é¢ïŒçæäžæ¬ç»æ¬èŠ 5 åéïŒçšæ·ç¯ççœå±ã
è§£å³ïŒ
é®é¢ïŒPrompt åäº 2000 åïŒAI åªè®°äœäºæåå å¥ã
è§£å³ïŒ
**å ç²** æ â ïž éèŠ æ è®°å
³é®èŠæ±è¿äºæ¯æè°è¯å¥œç PromptïŒçŽæ¥å€å¶äœ¿çšã
äœ æ¯äžäœäžç级çå¿ç«¥ç»æ¬è®Ÿè®¡åžåæ äºè®²è¿°è ã ## ä»»å¡ æ ¹æ®ä»¥äžææ¡£å 容ïŒè®Ÿè®¡äžæ¬ 10-15 页çå¿ç«¥ç»æ¬å€§çº²ã ## ææ¡£å 容 {è¿éç²èŽŽææ¡£å 容} ## èŸåºèŠæ± 䞺æ¯äžé¡µæäŸïŒ 1. **æ é¢**ïŒåäºæ§æ é¢ïŒäžæ¯"æ é¢ïŒå¯æ é¢"æ ŒåŒïŒ 2. **åäºç®æ **ïŒè¿äžé¡µåšæ äºäžçäœçš 3. **å ³é®å 容**ïŒèŠå±ç€ºçæå 4. **è§è§ç»é¢**ïŒåºæ¯ãè§è²åšäœã衚æ 5. **åžå±**ïŒæåŸå»ºè®® ## çŠæ¢äºé¡¹ - çŠæ¢äœ¿çš"让æä»¬äžèµ·..."ã"å°æå们..."ç诎æè¯æ° - çŠæ¢"äžä» ä» æ¯XïŒèæ¯Y"ç AI å³éçå¥åŒ - çŠæ¢ä»¥"谢谢è§ç"ç»å°Ÿ ## èŸåºæ ŒåŒ JSON æ ŒåŒïŒäŸ¿äºçšåºè§£æâ
äœ æ¯äžäœäžäžçå¿ç«¥ç»æ¬æç»åžã ## ä»»å¡ äžºç»æ¬ç第 {页ç } 页ç»å¶æåŸã ## 页é¢å 容 æ é¢ïŒ{æ é¢} æåïŒ{å 容} åºæ¯ïŒ{è§è§æè¿°} ## 飿 ŒèŠæ± - 迪士尌ç®å æ¯ 3D åšç»é£æ Œ - æäº®æž©æçè²è°ïŒäž»è²è°äžºæ©è²ã绿è²ãèè² - è§è²æå€§çŒçãåæ¶Šççº¿æ¡ - èæ¯ç®æŽïŒææåçå 线 - 16:9 æ¯äŸïŒ4K å蟚ç ## è§è²äžèŽæ§ïŒéèŠïŒïŒ äž»è§å¿ é¡»ååèåŸä¿æäžèŽïŒ - çžåçïŒèžåãçŒçé¢è²ãååãæè£ - å¯ä»¥ååçïŒå§¿å¿ã衚æ ãäžåºæ¯çäºåš ## çŠæ¢ - çŠæ¢åºç° Markdown 笊å·ïŒ# * çïŒ - çŠæ¢æåæš¡ç³äžæž - çŠæ¢é£æ Œçªåâ
å建äžåŒ è§è²è®Ÿå®åŸïŒCharacter Reference SheetïŒã ## è§è²ä¿¡æ¯ åç§°ïŒ{è§è²å} æè¿°ïŒ{å€è§æè¿°} ## 讟å®åŸèŠæ± 1. å±ç€ºè§è²ç 3 䞪è§åºŠïŒæ£é¢ã3/4 䟧é¢ãäŸ§é¢ 2. å±ç€º 3-4 ç§è¡šæ ïŒåŒå¿ã奜å¥ãæè®¶ãæè 3. å±ç€ºå šèº«åé¢éšç¹å 4. 䜿çšå¹²åççœè²èæ¯ 5. æ æ³šå ³é®ç¹åŸïŒåè²ãçŒçé¢è²ãæè£ ç»èïŒ ## 飿 Œ {飿 Œæè¿°ïŒåŠ"迪士尌ç®å æ¯ 3D åšç»é£æ Œ"} ## åžå± 暪å 16:9ïŒåäžäžçè§è²è®Ÿè®¡çš¿äžæ ·æåâ
| äœ åŠå°äºä»ä¹ | 诎æ |
|---|---|
| æ²éæå·§ | æä¹å AI 髿æ²é |
| èž©åç»éª | åžžè§é®é¢çè§£å³æ¹æ¡ |
| Prompt æš¡æ¿ | å¯å€çšçæç€ºè¯æš¡æ¿ |
è¿äžèåž®äœ çè§£"䞺ä»ä¹"ïŒèäžåªæ¯"æä¹å"ãçè§£äºè®Ÿè®¡æè·¯ïŒäœ å°±èœäžŸäžåäžïŒååºèªå·±ç AI åºçšã
| åèœ | æè¿° | ç¶æ |
|---|---|---|
| ææ¡£è§£æ | æ¯æ PDF/Word/TXTïŒèªåšæåæåååŸç | â |
| 飿 Œéæ© | ç¯çåšç©åãåååãç®å æ¯çå€ç§é£æ Œ | â |
| å€§çº²çæ | AI èªåšè§åç»æ¬ç»æåæ¯é¡µå 容 | â |
| è§è²äžèŽæ§ | çæè§è²åèåŸïŒç¡®ä¿å šä¹Šè§è²ç»äž | â |
| ïž åŸççæ | å¹¶è¡çæææé¡µé¢æåŸ | â |
| ç §çèå | æ¯æå°çå®ç §çèå ¥æç»åºæ¯ | â |
| å¯Œåº PPT | äžé®å¯Œåºå¯çŒèŸç PPTX æä»¶ | â |
| åšç»çæ | å¯éçæç»æ¬åšç»è§é¢ïŒåžŠæçœïŒ | â |
äœ äžäŒ äžäžª PDF/Word ææ¡£ â âââââââââââââââââââââââââââââââââââââââ â 第 1 æ¥ïŒææ¡£è§£æ â â æææ¡£éçæåååŸçæååºæ¥ â âââââââââââââââââââââââââââââââââââââââ â âââââââââââââââââââââââââââââââââââââââ â 第 2 æ¥ïŒAI çæç»æ¬å€§çº² â â å³å®åå é¡µãæ¯é¡µè®²ä»ä¹ãç»ä»ä¹ â âââââââââââââââââââââââââââââââââââââââ â âââââââââââââââââââââââââââââââââââââââ â 第 3 æ¥ïŒAI çæè§è²åèåŸ â â ç¡®ä¿äž»è§åšæ¯äžé¡µé¿åŸäžæ · â âââââââââââââââââââââââââââââââââââââââ â âââââââââââââââââââââââââââââââââââââââ â 第 4 æ¥ïŒAI æ¹éçææ¯é¡µæåŸ â â æ ¹æ®å€§çº²ïŒäžé¡µäžé¡µç»åºæ¥ â âââââââââââââââââââââââââââââââââââââââ â âââââââââââââââââââââââââââââââââââââââ â 第 5 æ¥ïŒå¯Œåºæå â â æå æ PPT/PDFïŒè¿èœçæåšç»è§é¢ïŒ â âââââââââââââââââââââââââââââââââââââââ â äžæ¬å®æŽç AI ç»æ¬è¯çïŒâ

æ¶æè¯ŽæïŒ
| å±çº§ | ç»ä»¶ | 诎æ |
|---|---|---|
| å端 | React + Vite + TypeScript | Upload PDFãOCR é¢è§ã倧纲çŒèŸãç»æ¬é¢è§/å¯Œåº |
| å端 Controllers | storybook / page / export / task | 4 䞪 Blueprint è·¯ç±æš¡å |
| Services å± | FileParser / AIService / ExportSvc / FileService | æ žå¿äžå¡é»èŸ + TaskManager åŒæ¥ä»»å¡éå |
| AI Providers | TextProvider / ImageProvider | 坿æç AI æš¡åéé å± |
| æ°æ®åº | SQLAlchemy + SQLite | Storybook / StorybookPage / Task / CharacterReference |
| å€éšæå¡ | MinerU / Qwen / Gemini / WebSearch / Nano Banana Pro | PDF è§£æãå 容åæãèçœæçŽ¢ãåŸåçæ |
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â AI ç»æ¬çæå®æŽæµçš â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ çšæ·èŸå ¥ âââ äž»é¢/ææ¡£å 容 (parsed_content) âââ 飿 Œå ³é®è¯ (style_keyword): "ç¯çåšç©å"ã"宫åŽéª" âââ åèåŸç (reference_images): 飿 ŒåèåŸ âââ çŽ æåŸç (source_images): éèŠåµå ¥ç»æ¬ççå®ç §ç â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â Stage 1: 飿 Œçæ (Style Generator) â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†â èŸå ¥: â â - theme (äž»é¢) â â - style_keyword (飿 Œå ³é®è¯) â â - reference_images (åèåŸç) â 倿𡿠LLM åæåŸç飿 Œ â â - target_audience (ç®æ åäŒ) â â â â èŸåº: â â - style_config JSON (讟计çŸåŠãé è²ãåäœãè§è§å çŽ ãè§è²é£æ Œ) â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â style_config âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â Stage 2: å€§çº²çæ (Outline Generator) â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†â èŸå ¥: â â - parsed_content (ææ¡£å 容) â â - background_knowledge (èçœæçŽ¢çèæ¯ç¥è¯) â â - style_config (æ¥èª Stage 1) â â - source_images (çŽ æåŸçå衚) â åç¥ LLM æå€å°åŒ åŸçå¯çš â â - user_prompt, target_audience, subject, theme_character â â â â èŸåº: â â - 宿Žç»æ¬å€§çº² JSON â â - title, style_config, sections â â - æ¯é¡µ slide: title, narrative_goal, content, visual_description, â â layout, embedded_images (åŠ ["IMG_1", "IMG_2"]) â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â 倧纲 + embedded_images âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â Stage 3: åŸççæ (Image Generator) â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ†â 对æ¯äžª slide æ§è¡: â â â â 1. æ£æ¥ embedded_images æ¯åŠäžºç©º â â âââ æåŸç â äœ¿çš REALITY_PATCH_TEMPLATE â â âââ æ åŸç â äœ¿çš STANDARD_TEMPLATE â â â â 2. æŒæ¥è§è§æä»€: â â - style_config.design_aesthetic â â - slide.visual_description â â - Reality Layer / Illustration Layer / The Glue (åŠæåŸç) â â â â 3. è°çšå€æš¡æ API: â â - prompt: æŒæ¥åçè§è§æä»€ â â - images: source_images äžå¯¹åºççå®åŸç (IMG_1 â source_images[0]) â â â â èŸåº: â â - æ¯é¡µççæåŸç (Mixed Media: æç» + çå®ç §çèå) â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â æç»ç»æ¬ (åŸç + æå)â
é®é¢ïŒçŽæ¥è®© AI "æææ¡£åæç»æ¬" 倪暡ç³ïŒAI äžç¥éä»åªäžæã
è§£å³ïŒææ 5 äžªæž æ°çæ¥éª€ïŒæ¯äžæ¥åªåäžä»¶äºã
â é误æè·¯ïŒäžæ¥å°äœ "AIïŒæè¿äžª PDF åæç»æ¬" â AI æµäºïŒäžç¥éèŠåä»ä¹ â æ£ç¡®æè·¯ïŒæµæ°Žçº¿ æ¥éª€1ïŒæåæå â æ¥éª€2ïŒçæå€§çº² â æ¥éª€3ïŒç»è§è² â æ¥éª€4ïŒç»æ¯é¡µ â æ¥éª€5ïŒæå â æ¯äžæ¥éœåŸæž æ°ïŒAI èœç²Ÿåæ§è¡â
ç±»æ¯ïŒPrompt å°±åäœ ç»åšåžçèè°±
| æå·§ | 诎æ | ç€ºäŸ |
|---|---|---|
| è§è²æ®æŒ | 让 AI è¿å ¥äžäžè§è² | "äœ æ¯äžç级å¿ç«¥ç»æ¬è®Ÿè®¡åž" |
| ç»æåèŸåº | è§å®èŸåºæ ŒåŒ | "æ¯é¡µå¿ é¡»å å«ïŒåäºç®æ ãå ³é®å 容ãè§è§ç»é¢ãåžå±" |
| èŽé¢çºŠæ | åè¯ AI äžèŠåä»ä¹ | "çŠæ¢äœ¿çš'äžä» ä» æ¯XïŒèæ¯Y'è¿ç§å¥åŒ" |
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â çé¢å± (Gradio) - çšæ·çå°ççé¢ â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â æå¡å± (Services) - å ·äœçäžå¡é»èŸ â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â AI å± (Providers) - ååç§ AI æš¡åéä¿¡ â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â æ°æ®å± (Database) - ååšç»æ¬ä¿¡æ¯ â ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
奜å€ïŒæ³æ¢äžäžª AI æš¡åïŒåªæ¹ AI å±ïŒå ¶ä»å±äžçšåšã
â 忥å€çïŒç¹å»"çæ" â çœå± 5 åé â çªç¶å šéšåºæ¥ â åŒæ¥å€çïŒç¹å»"çæ" â "æ£åšè§£æææ¡£..." â "æ£åšçæå€§çº²..." â "第 1 页çæå®æ â" [æŸç€ºåŸç] â "第 2 页çæå®æ â" [æŸç€ºåŸç]â
AIç»æ¬/ âââ backend/ # å端代ç â âââ app.py # Flask åºçšå ¥å£ â âââ config.py # é 眮æä»¶ â âââ requirements.txt # Python äŸèµ â âââ .env # ç¯å¢åéïŒAPI Key æŸè¿éïŒ â â â âââ controllers/ # API æ¥å£ â âââ services/ # äžå¡é»èŸ â âââ models/ # æ°æ®æš¡å â âââ prompts/ # Prompt æš¡æ¿ â âââ utils/ # å·¥å ·åœæ° â âââ uploads/ # äžäŒ çæä»¶ âââ outputs/ # çæçç»æ¬ âââ docs/ # ææ¡£â
| æä»¶/æä»¶å€¹ | äœçš | å°çœçè§£ |
|---|---|---|
app.py |
çšåºå ¥å£ | åå»è¿è¡çé£äžªæä»¶ |
.env |
å¯é¥ | API Key æŸè¿éïŒäžèŠäžäŒ |
services/ |
é»èŸ | çæ£å¹²æŽ»ç代ç |
prompts/ |
æç€ºè¯ | ç» AI çæä»€æš¡æ¿ |
A: å¯ä»¥ïŒå ³é®æ¯ïŒæéæ±æè¿°æž æ¥ãéå°é®é¢åæ¶é® AIãäžèŠææ¥éã
A: AI çŒèŸåšå 莹çå€çšïŒAPI æµè¯é¶æ®µå€§æŠå ååïŒåŒåé¶æ®µçšæ¬å°çµèå 莹ã
A: ææ¡£è§£æ 10-30 ç§ + å€§çº²çæ 20-40 ç§ + åŸççæ 2-5 åé = æ»è®¡çºŠ 3-6 åé
docs/APIææ¡£-æä»¶äžäŒ äžè§£æ.mddocs/SSE-APIææ¡£.mddocs/AIPromot-AI ç»æ¬çæå®æŽæµçš.md| æ¹å | 诎æ | éŸåºŠ |
|---|---|---|
| å€èœ®å¯¹è¯ | è®©çšæ·å AI 对è¯ä¿®æ¹ç»æ¬ | âââ |
| æŽå€å¯Œåºæ ŒåŒ | è§é¢ïŒåžŠæçœïŒãçµå乊ïŒePubïŒ | ââ |
| æš¡æ¿åžåº | é¢è®Ÿå€ç§ç»æ¬æš¡æ¿ | âââ |
| åäžå | çšæ·ç³»ç»ãä»è޹åèœ | ââââ |
| äœ åŠå°äºä»ä¹ | 诎æ |
|---|---|
| æ¶ææç»Ž | æä¹è®Ÿè®¡äžäžªå¯æ©å±çç³»ç» |
| 讟计åå | æµæ°Žçº¿ãåå±ãåŒæ¥å€ç |
| è¿é¶æ¹å | åå®ä¹åè¿èœåŸåªèµ° |
Vibecoding äžæ¯è®©äœ åæçšåºåïŒèæ¯è®©äœ äžéèŠæäžºçšåºåä¹èœåé 蜯件ã
è¿äžª AI ç»æ¬é¡¹ç®ïŒä»æ³æ³å°æåïŒå šçšéœæ¯å AI 对è¯å®æçã
äœ ä¹å¯ä»¥ã
*æ¬ææ¡£ç± Vibecoding çæïŒçš AI åå ³äº AI çæ äº *