1import{_ as p,c,b as t,a,e as s,d as l,w as i,r as d,o as u}from"./app-BNAFTfp7.js";const o={};function r(v,n){const e=d("RouteLink");return u(),c("div",null,[n[11]||(n[11]=t(`<h1 id="_06-codex-æä½³å®è·µ" tabindex="-1"><a class="header-anchor" href="#_06-codex-æä½³å®è·µ"><span>06 - Codex æä½³å®è·µ</span></a></h1><blockquote><p>ä»å ¥é¨å°ç²¾éï¼æå»ºé«æç AI è¾ å©ç¼ç¨å·¥ä½æµ</p></blockquote><h2 id="ð-æ¬ç« ç®æ " tabindex="-1"><a class="header-anchor" href="#ð-æ¬ç« ç®æ "><span>ð æ¬ç« ç®æ </span></a></h2><p>å¦å®æ¬ç« ï¼ä½ å°è½å¤ï¼</p><ul><li>ææ¡ç¼åé«è´¨éæç¤ºè¯çæå·§</li><li>建ç«é«æçç¼ç¨å·¥ä½æµ</li><li>ç¡®ä¿ä»£ç è´¨éåå®å ¨</li><li>å®ç°å¢éåä½çæä½³å®è·µ</li></ul><hr><h2 id="âï¸-æç¤ºè¯å·¥ç¨" tabindex="-1"><a class="header-anchor" href="#âï¸-æç¤ºè¯å·¥ç¨"><span>âï¸ æç¤ºè¯å·¥ç¨</span></a></h2><h3 id="æç¤ºè¯çå个维度" tabindex="-1"><a class="header-anchor" href="#æç¤ºè¯çå个维度"><span>æç¤ºè¯çå个维度</span></a></h3><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">好çæç¤ºè¯ = æ¸ æ° + å ·ä½ + ä¸ä¸æ + 约æ</span> 2<span class="line"></span> 3<span class="line">1. æ¸ æ°ï¼Clarityï¼</span> 4<span class="line"> ââ æç¡®è¯´æè¦åä»ä¹</span> 5<span class="line"></span> 6<span class="line">2. å ·ä½ï¼Specificityï¼</span> 7<span class="line"> ââ æä¾è¯¦ç»çè¦æ±åéå¶</span> 8<span class="line"></span> 9<span class="line">3. ä¸ä¸æï¼Contextï¼</span> 10<span class="line"> ââ ç»åºå¿ è¦çèæ¯ä¿¡æ¯</span> 11<span class="line"></span> 12<span class="line">4. 约æï¼Constraintsï¼</span> 13<span class="line"> ââ æç¡®ææ¯æ ã飿 ¼çéå¶</span> 14<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="æç¤ºè¯æ¨¡æ¿" tabindex="-1"><a class="header-anchor" href="#æç¤ºè¯æ¨¡æ¿"><span>æç¤ºè¯æ¨¡æ¿</span></a></h3><h4 id="模æ¿-1-åè½å¼å" tabindex="-1"><a class="header-anchor" href="#模æ¿-1-åè½å¼å"><span>æ¨¡æ¿ 1ï¼åè½å¼å</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">ãåè½æè¿°ã</span> 15<span class="line">ç®æ´æç¡®å°æè¿°è¦å®ç°çåè½</span> 16<span class="line"></span> 17<span class="line">ãææ¯è¦æ±ã</span> 18<span class="line">- ç¼ç¨è¯è¨ï¼[Python/JavaScript/...]</span> 19<span class="line">- æ¡æ¶ï¼[React/Django/...]</span> 20<span class="line">- çæ¬ï¼[Python 3.10/Node 18/...]</span> 21<span class="line"></span> 22<span class="line">ãè¾å ¥è¾åºã</span> 23<span class="line">è¾å ¥ï¼</span> 24<span class="line"> - åæ°1ï¼ç±»åï¼è¯´æ</span> 25<span class="line"> - åæ°2ï¼ç±»åï¼è¯´æ</span> 26<span class="line"></span> 27<span class="line">è¾åºï¼</span> 28<span class="line"> - è¿åå¼ç±»ååæ ¼å¼</span> 29<span class="line"></span> 30<span class="line">ãç¹æ®è¦æ±ã</span> 31<span class="line">- é误å¤çï¼å¦ä½å¤çå¼å¸¸</span> 32<span class="line">- æ§è½è¦æ±ï¼ååºæ¶é´/å åéå¶</span> 33<span class="line">- å®å ¨èèï¼è¾å ¥éªè¯/æéæ£æ¥</span> 34<span class="line"></span> 35<span class="line">ã示ä¾ã</span> 36<span class="line">è¾å ¥ç¤ºä¾ï¼xxx</span> 37<span class="line">è¾åºç¤ºä¾ï¼xxx</span> 38<span class="line"></span> 39<span class="line">ã代ç 飿 ¼ã</span> 40<span class="line">- éµå¾ª [PEP 8/Airbnb Style/...]</span> 41<span class="line">- æ·»å ç±»åæ³¨è§£</span> 42<span class="line">- å å«è¯¦ç»æ³¨é</span> 43<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>å®é 示ä¾</strong>ï¼</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">ãåè½æè¿°ã</span> 44<span class="line">å建ä¸ä¸ªå¼æ¥å½æ°ï¼ä»å¤ä¸ªAPIå¹¶è¡è·åæ°æ®ï¼å¹¶èåç
44»æ</span> 45<span class="line"></span> 46<span class="line">ãææ¯è¦æ±ã</span> 47<span class="line">- ç¼ç¨è¯è¨ï¼Python 3.10+</span> 48<span class="line">- ä½¿ç¨ asyncio å aiohttp</span> 49<span class="line">- 使ç¨ç±»å注解</span> 50<span class="line"></span> 51<span class="line">ãè¾å ¥è¾åºã</span> 52<span class="line">è¾å ¥ï¼</span> 53<span class="line"> - urls: List[str] - API URL å表</span> 54<span class="line"> - timeout: int - è¶ æ¶æ¶é´ï¼ç§ï¼ï¼é»è®¤10</span> 55<span class="line"></span> 56<span class="line">è¾åºï¼</span> 57<span class="line"> - Dict[str, Any] - é®ä¸ºURLï¼å¼ä¸ºååºæ°æ®æé误信æ¯</span> 58<span class="line"></span> 59<span class="line">ãç¹æ®è¦æ±ã</span> 60<span class="line">- é误å¤çï¼å个API失败ä¸å½±åå ¶ä»</span> 61<span class="line">- è¶ æ¶æ§å¶ï¼æ¯ä¸ªè¯·æ±ç¬ç«è¶ æ¶</span> 62<span class="line">- å¹¶åéå¶ï¼æå¤åæ¶10个请æ±</span> 63<span class="line"></span> 64<span class="line">ã示ä¾ã</span> 65<span class="line">è¾å ¥ï¼</span> 66<span class="line"> urls = [</span> 67<span class="line"> "https://api1.com/data",</span> 68<span class="line"> "https://api2.com/data"</span> 69<span class="line"> ]</span> 70<span class="line"> timeout = 5</span> 71<span class="line"></span> 72<span class="line">è¾åºï¼</span> 73<span class="line"> {</span> 74<span class="line"> "https://api1.com/data": {"status": "success", "data": {...}},</span> 75<span class="line"> "https://api2.com/data": {"status": "error", "error": "Timeout"}</span> 76<span class="line"> }</span> 77<span class="line"></span> 78<span class="line">ã代ç 飿 ¼ã</span> 79<span class="line">- éµå¾ª PEP 8</span> 80<span class="line">- æ·»å docstring</span> 81<span class="line">- ä½¿ç¨ typing 模åçç±»åæ³¨è§£</span> 82<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="模æ¿-2-代ç ä¼å" tabindex="-1"><a class="header-anchor" href="#模æ¿-2-代ç ä¼å"><span>æ¨¡æ¿ 2ï¼ä»£ç ä¼å</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">ãå½å代ç ã</span> 83<span class="line">\`\`\`[language]</span> 84<span class="line">[ç²è´´ç°æä»£ç ]</span> 85<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ãé®é¢æè¿°ã</p><ul><li>æ§è½ç¶é¢ï¼[å ·ä½é®é¢]</li><li>å¯è¯»æ§é®é¢ï¼[å ·ä½é®é¢]</li><li>ç»´æ¤æ§é®é¢ï¼[å ·ä½é®é¢]</li></ul><p>ãä¼åç®æ ã</p><ol><li>主è¦ç®æ ï¼[æ§è½/å¯è¯»æ§/å¯ç»´æ¤æ§]</li><li>次è¦ç®æ ï¼[...]</li></ol><p>ãçº¦ææ¡ä»¶ã</p><ul><li>ä¿æåè½ä¸å</li><li>å ¼å®¹ç°ææ¥å£</li><li>ä¸å¼å ¥æ°çä¾èµï¼å¦éç¨ï¼</li></ul><p>ãææè¾åºã</p><ol><li>ä¼ååç代ç </li><li>ä¼å说æ</li><li>æ§è½å¯¹æ¯ï¼å¦éç¨ï¼</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 86<span class="line">**å®é 示ä¾**ï¼</span> 87<span class="line"></span> 88<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ãå½å代ç ã</p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">process_users</span><span class="token punctuation">(</span>users<span class="token punctuation">)</span><span class="token punctuation">:</span></span> 89<span class="line"> result <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span></span> 90<span class="line"> <span class="token keyword">
90for</span> user <span class="token keyword">in</span> users<span class="token punctuation">:</span></span> 91<span class="line"> <span class="token keyword">if</span> user<span class="token punctuation">[</span><span class="token string">'age'</span><span class="token punctuation">]</span> <span class="token operator">></span> <span class="token number">18</span><span class="token punctuation">:</span></span> 92<span class="line"> name <span class="token operator">=</span> user<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>upper<span class="token punctuation">(</span><span class="token punctuation">)</span></span> 93<span class="line"> email <span class="token operator">=</span> user<span class="token punctuation">[</span><span class="token string">'email'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span></span> 94<span class="line"> result<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token punctuation">{</span></span> 95<span class="line"> <span class="token string">'name'</span><span class="token punctuation">:</span> name<span class="token punctuation">,</span></span> 96<span class="line"> <span class="token string">'email'</span><span class="token punctuation">:</span> email<span class="token punctuation">,</span></span> 97<span class="line"> <span class="token string">'adult'</span><span class="token punctuation">:</span> <span class="token boolean">True</span></span> 98<span class="line"> <span class="token punctuation">}</span><span class="token punctuation">)</span></span> 99<span class="line"> <span class="token keyword">return</span> result</span> 100<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ãé®é¢æè¿°ã</p><ul><li>æ§è½é®é¢ï¼å¤ç大éç¨æ·æ¶å¾æ ¢</li><li>å¯è¯»æ§é®é¢ï¼é»è¾æ··å¨ä¸èµ·</li><li>没æç±»å注解åé误å¤ç</li></ul><p>ãä¼åç®æ ã</p><ol><li>主è¦ï¼æåæ§è½ï¼å¤ç10ä¸ç¨æ·ï¼</li><li>次è¦ï¼æé«å¯è¯»æ§ï¼æ·»å é误å¤ç</li></ol><p>ãçº¦ææ¡ä»¶ã</p><ul><li>ä¿æå½æ°ç¾å</li><li>Python 3.8+</li><li>ä¸å¼å ¥å¤é¨ä¾èµ</li></ul><p>ãææè¾åºã</p><ol><li>ä¼ååç代ç ï¼ä½¿ç¨å表æ¨å¯¼å¼çï¼</li><li>æ§è½æå说æ</li><li>æ·»å ç±»åæ³¨è§£åé误å¤ç</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 101<span class="line">#### æ¨¡æ¿ 3ï¼Bug ä¿®å¤</span> 102<span class="line"></span> 103<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ãé误ç°è±¡ã æè¿°åºç°çé误æå¼å¸¸è¡ä¸º</p><p>ãé误代ç ã</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">[ç²è´´æé®é¢ç代ç ]</span> 104<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>ãé误信æ¯ã</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">[ç²è´´å®æ´çéè¯¯å æ ]</span> 105<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>ã颿è¡ä¸ºã æè¿°æ£ç¡®çè¡ä¸ºåºè¯¥æ¯ä»ä¹</p><p>ãç¯å¢ä¿¡æ¯ã</p><ul><li>è¯è¨çæ¬ï¼[...]</li><li>ä¾èµçæ¬ï¼[...]</li><li>æä½ç³»ç»ï¼[...]</li></ul><p>ãå·²å°è¯çæ¹æ¡ã</p><ol><li>[æ¹æ¡1] - ç»æï¼[...]</li><li>[æ¹æ¡2] - ç»æï¼[...]</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 106<span class="line">### å°æ ·æ¬å¦ä¹ ï¼Few-shot Learningï¼</span> 107<span class="line"></span> 108<span class="line">#### 示ä¾é©±å¨çæ</span> 109<span class="line"></span> 110<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ãä»»å¡ã åå»ºæ°æ®éªè¯å½æ°</p><p>ãç¤ºä¾ 1ã è¾å ¥ï¼é®ç®±å符串 åè½ï¼éªè¯é®ç®±æ ¼å¼</p><p>def validate_email(email: str) -> bool: """éªè¯é®ç®±æ ¼å¼""" import re pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$' return bool(re.match(pattern, email))</p><p>ãç¤ºä¾ 2ã è¾å ¥ï¼ææºå·å符串 åè½ï¼éªè¯ä¸å½ææºå·æ ¼å¼</p><p>def validate_phone(phone: str) -> bool: """éªè¯ä¸å½ææºå·æ ¼å¼""" import re pattern = r'^1[3-9]\\d{9}$' return bool(re.match(pattern, phone))</p><p>ãç°å¨è¯·å建ã è¾å ¥ï¼èº«ä»½è¯å·å符串 åè½ï¼éªè¯ä¸å½èº«ä»½è¯å·æ ¼å¼ï¼18ä½ï¼</p><h1 id="ai-伿¨¡ä»¿ä¸è¿°æ¨¡å¼çæç±»ä¼¼ç»æç代ç " tabindex="-1"><a class="header-anchor" href="#ai-伿¨¡ä»¿ä¸è¿°æ¨¡å¼çæç±»ä¼¼ç»æç代ç "><span>AI 伿¨¡ä»¿ä¸è¿°æ¨¡å¼çæç±»ä¼¼ç»æç代ç </span></a></h1><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 111<span class="line">### æç»´é¾ï¼Chain of Thoughtï¼</span> 112<span class="line"></span> 113<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ä¸å¥½çæç¤ºï¼ "ä¼åè¿ä¸ªç®æ³"</p><p>好çæç¤ºï¼å å«æç»´é¾ï¼ï¼ "请åæè¿ä¸ªç®æ³ï¼</p><ol><li>é¦å è¯å«ç®æ³çæ¶é´å¤æåº¦</li><li>æ¾åºä¸»è¦çæ§è½ç¶é¢</li><li>æåº3ç§ä¼åæ¹æ¡</li><li>æ¯è¾åæ¹æ¡çä¼ç¼ºç¹</li><li>éæ©æä½³æ¹æ¡å¹¶å®ç°</li><li>åæä¼ååçå¤æåº¦"</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 114<span class="line">---</span> 115<span class="line"></span> 116<span class="line">## ð 工使µè®¾è®¡</span> 117<span class="line"></span> 118<span class="line">### æ¥å¸¸ç¼ç 工使µ</span> 119<span class="line"></span> 120<span class="line">
120#### æµç¨å¾</span> 121<span class="line"></span> 122<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ââââââââââââââââââââââââââââââââââââââââ â æ¥å¸¸ç¼ç 工使µ â âââââââââââââââââââââââââââââââââââââââ⤠â â â 1. ð éæ±åæ â â ââ æç¡®è¦å®ç°çåè½ â â â â 2. ð¤ æ¹æ¡è®¾è®¡ â â ââ ä¸ AI è®¨è®ºææ¯æ¹æ¡ â â â â 3. âï¸ ä»£ç çæ â â ââ 让 AI çææ¡æ¶ä»£ç â â ââ 人工审æ¥åè°æ´ â â â â 4. ð 代ç å®¡æ¥ â â ââ AI 审æ¥ä»£ç è´¨é â â ââ 人工审æ¥ä¸å¡é»è¾ â â â â 5. 𧪠æµè¯ â â ââ AI çææµè¯ç¨ä¾ â â ââ è¿è¡æµè¯ â â â â 6. ð ææ¡£ â â ââ AI çæææ¡£åæ³¨é â â â â 7. ð æäº¤ â â ââ Git commit & push â â â ââââââââââââââââââââââââââââââââââââââââ</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 123<span class="line">#### å®é æä½ç¤ºä¾</span> 124<span class="line"></span> 125<span class="line">**åºæ¯**ï¼å¼åä¸ä¸ªç¨æ·æ³¨åAPI</span> 126<span class="line"></span> 127<span class="line">**Step 1ï¼éæ±åæ**</span> 128<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ä½ çè¾å ¥ï¼ "æéè¦å建ä¸ä¸ªç¨æ·æ³¨åAPIï¼éè¦èèåªäºæ¹é¢ï¼"</p><p>AI è¾åºï¼</p><ol><li>æ°æ®éªè¯ï¼é®ç®±ãå¯ç 强度ï¼</li><li>å¯ç å å¯åå¨</li><li>é®ç®±å¯ä¸æ§æ£æ¥</li><li>åééªè¯é®ä»¶</li><li>é误å¤ç</li><li>éçéå¶</li><li>æ¥å¿è®°å½</li></ol><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 129<span class="line">**Step 2ï¼æ¹æ¡è®¾è®¡**</span> 130<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>ä½ çè¾å ¥ï¼ "ä½¿ç¨ FastAPI å®ç°ï¼è¯·ç»åºææ¯æ¹æ¡"</p><p>AI è¾åºï¼ ææ¯æ ï¼</p><ul><li>FastAPIï¼web æ¡æ¶ï¼</li><li>Pydanticï¼æ°æ®éªè¯ï¼</li><li>bcryptï¼å¯ç å å¯ï¼</li><li>SQLAlchemyï¼æ°æ®åºï¼</li><li>Celeryï¼å¼æ¥ä»»å¡ï¼åéé®ä»¶ï¼</li></ul><p>æ¶æè®¾è®¡ï¼ /api/auth/register ââ éªè¯è¾å ¥ ââ æ£æ¥ç¨æ·æ¯å¦åå¨ ââ å å¯å¯ç ââ ä¿åå°æ°æ®åº ââ 触åé®ä»¶åé</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 131<span class="line">**Step 3ï¼ä»£ç çæ**</span> 132<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>ä½ çè¾å ¥ï¼ "å®ç°è¿ä¸ª APIï¼å å«å®æ´çé误å¤çåéªè¯"</p><p>AI çæå®æ´ä»£ç ï¼è§ä¸æ¹ï¼</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 133<span class="line">**Step 4ï¼ä»£ç 审æ¥**</span> 134<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>ä½ çè¾å ¥ï¼ "审æ¥è¿æ®µä»£ç ï¼éç¹å ³æ³¨å®å ¨æ§"</p><p>AI 审æ¥ç»æï¼ â å¯ç å 坿£ç¡® â SQL æ³¨å ¥é²æ¤ â ï¸ å»ºè®®æ·»å 请æ±é¢çéå¶ â ï¸ å»ºè®®æ·»å é®ç®±æ ¼å¼äºæ¬¡éªè¯ â ç¼ºå° CSRF ä¿æ¤</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 135<span class="line">**Step 5ï¼æµè¯**</span> 136<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>ä½ çè¾å ¥ï¼ "çæå®æ´çæµè¯ç¨ä¾"</p><p>AI çæ pytest æµè¯ä»£ç </p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 137<span class="line">### 代ç 审æ¥å·¥ä½æµ</span> 138<span class="line"></span> 139<span class="line">#### AI è¾ å©ä»£ç å®¡æ¥æ£æ¥æ¸ å</span> 140<span class="line"></span> 141<span class="line">\`\`\`yaml</span> 142<span class="line">代ç è´¨é:</span> 143<span class="line"> - [ ] å½åæ¯å¦æ¸ æ°</span> 144<span class="line"> - [ ] ä»£ç æ¯å¦ç®æ´</span> 145<span class="line"> - [ ] æ¯å¦æéå¤ä»£ç </span> 146<span class="line"> - [ ] æ³¨éæ¯å¦å å</span> 147<span class="line"></span> 148<span class="line">åè½æ£ç¡®æ§:</span> 149<span class="line"> - [ ] æ¯å¦å®ç°äºéæ±</span> 150<span class="line"> - [ ] è¾¹çæ åµæ¯å¦å¤ç</span> 151<span class="line"> - [ ] é误å¤çæ¯å¦å®å</span> 152<span class="line"></span> 153<span class="line">æ§è½:</span> 154<span class="line"> - [ ] æ¯å¦ææ§è½ç¶é¢</span> 155<span class="line"> - [ ] æ°æ®åºæ¥è¯¢æ¯å¦ä¼å</span> 156<span class="line"> - [ ] æ¯å¦æå åæ³æ¼</span> 157<span class="line"></span> 158<span class="line">å®å ¨æ§:</span> 159<span class="line"> - [ ] è¾å ¥éªè¯</span> 160<span class="line"> - [ ] SQL æ³¨å ¥é²æ¤</span> 161<span class="line"> - [ ] XSS 鲿¤</span> 162<span class="line"> - [ ] ææä¿¡æ¯ä¿æ¤</span> 163<span class="line"></span> 164<span class="line">å¯ç»´æ¤æ§:</span> 165<span class="line"> - [ ] 代ç ç»ææ¸ æ°</span> 166<span class="line"> - [ ] 模åå设计</span> 167<span class="line"> - [ ] ææ¡£å®æ´</span> 168<span class="line"> - [ ] æäºæµè¯</span> 169<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="使ç¨-ai-è¿è¡ä»£ç 审æ¥" tabindex="-1"><a class="header-anchor" href="#使ç¨-ai-è¿è¡ä»£ç 审æ¥"><span>ä½¿ç¨ AI è¿è¡ä»£ç 审æ¥</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">code_review_with_ai</span><span class="token punctuation">(</span>code<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span>
169 focus<span class="token punctuation">:</span> <span class="token builtin">str</span> <span class="token operator">=</span> <span class="token string">"all"</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> 170<span class="line"> <span class="token triple-quoted-string string">"""ä½¿ç¨ AI è¿è¡ä»£ç 审æ¥"""</span></span> 171<span class="line"> </span> 172<span class="line"> prompt <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"""</span> 173<span class="line"> 请审æ¥ä»¥ä¸ä»£ç ï¼éç¹å ³æ³¨ï¼</span><span class="token interpolation"><span class="token punctuation">{</span>focus<span class="token punctuation">}</span></span><span class="token string"></span> 174<span class="line"> </span> 175<span class="line"> \`\`\`</span> 176<span class="line"> </span><span class="token interpolation"><span class="token punctuation">{</span>code<span class="token punctuation">}</span></span><span class="token string"></span> 177<span class="line"> \`\`\`</span> 178<span class="line"> </span> 179<span class="line"> 请æä»¥ä¸æ ¼å¼è¾åºï¼</span> 180<span class="line"> </span> 181<span class="line"> ## ð¯ æ´ä½è¯ä»·</span> 182<span class="line"> [æ»ä½è¯ä»·]</span> 183<span class="line"> </span> 184<span class="line"> ## â ä¼ç¹</span> 185<span class="line"> - [ä¼ç¹1]</span> 186<span class="line"> - [ä¼ç¹2]</span> 187<span class="line"> </span> 188<span class="line"> ## â ï¸ é®é¢</span> 189<span class="line"> ### 严éé®é¢</span> 190<span class="line"> - [é®é¢1]</span> 191<span class="line"> - ä½ç½®ï¼[è¡å·]</span> 192<span class="line"> - 说æï¼[...]</span> 193<span class="line"> - 建议ï¼[...]</span> 194<span class="line"> </span> 195<span class="line"> ### ä¸è¬é®é¢</span> 196<span class="line"> - [é®é¢2]</span> 197<span class="line"> - ä½ç½®ï¼[è¡å·]</span> 198<span class="line"> - 说æï¼[...]</span> 199<span class="line"> - 建议ï¼[...]</span> 200<span class="line"> </span> 201<span class="line"> ## ð¡ ä¼å建议</span> 202<span class="line"> - [建议1]</span> 203<span class="line"> - [建议2]</span> 204<span class="line"> </span> 205<span class="line"> ## ð æ¹è¿åç代ç </span> 206<span class="line"> \`\`\`[language]</span> 207<span class="line"> [æ¹è¿åç代ç ]</span> 208<span class="line"> \`\`\`</span> 209<span class="line"> """</span></span></span> 210<span class="line"> </span> 211<span class="line"> <span class="token keyword">return</span> call_ai<span class="token punctuation">(</span>prompt<span class="token punctuation">)</span></span> 212<span class="line"></span> 213<span class="line"><span class="token comment"># 使ç¨ç¤ºä¾</span></span> 214<span class="line">review <span class="token operator">=</span> code_review_with_ai<span class="token punctuation">(</span></span> 215<span class="line"> code<span class="token operator">=</span>my_code<span class="token punctuation">,</span></span> 216<span class="line"> focus<span class="token operator">=</span><span class="token string">"å®å ¨æ§åæ§è½"</span></span> 217<span class="line"><span class="token punctuation">)</span></span> 218<span class="line"></span> 219<span class="line"><span class="token keyword">print</span><span class="token punctuation">(</span>review<span class="token punctuation">)</span></span> 220<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="æµè¯é©±å¨å¼å工使µ" tabindex="-1"><a class="header-anchor" href="#æµè¯é©±å¨å¼å工使µ"><span>æµè¯é©±å¨å¼å工使µ</span></a></h3><h4 id="tdd-with-ai" tabindex="-1"><a class="header-anchor" href="#tdd-with-ai"><span>TDD with AI</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">ä¼ ç» TDDï¼</span> 221<span class="line"> 1. åæµè¯</span> 222<span class="line"> 2. è¿è¡æµè¯ï¼å¤±è´¥ï¼</span> 223<span class="line"> 3. å代ç </span> 224<span class="line"> 4. è¿è¡æµè¯ï¼éè¿ï¼</span> 225<span class="line"> 5. éæ</span> 226<span class="line"></span> 227<span class="line">AI è¾ å© TDDï¼</span> 228<span class="line"> 1. æè¿°éæ± â AI çææµè¯</span> 229<span class="line"> 2. è¿è¡æµè¯ï¼å¤±è´¥ï¼</span> 230<span class="line">
230 3. æè¿°å®ç° â AI çæä»£ç </span> 231<span class="line"> 4. è¿è¡æµè¯ï¼å¯è½å¤±è´¥ï¼</span> 232<span class="line"> 5. ä¸ AI 讨论é®é¢ â ä¿®å¤ä»£ç </span> 233<span class="line"> 6. è¿è¡æµè¯ï¼éè¿ï¼</span> 234<span class="line"> 7. AI å»ºè®®éææ¹æ¡ â éæ</span> 235<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>示ä¾</strong>ï¼</p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># Step 1ï¼è®© AI çææµè¯</span></span> 236<span class="line">ä½ çè¾å ¥ï¼</span> 237<span class="line"><span class="token triple-quoted-string string">"""</span> 238<span class="line">åè½ï¼è®¡ç®è´ç©è½¦æ»ä»·</span> 239<span class="line">éæ±ï¼</span> 240<span class="line">- æ¯æææ£</span> 241<span class="line">- æ¯æä¼æ å¸</span> 242<span class="line">- æ»¡åæ´»å¨</span> 243<span class="line">è¯·çææµè¯ç¨ä¾</span> 244<span class="line">"""</span></span> 245<span class="line"></span> 246<span class="line"><span class="token comment"># AI çææµè¯</span></span> 247<span class="line">\`\`\`python</span> 248<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_basic</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> 249<span class="line"> <span class="token triple-quoted-string string">"""åºæ¬ä»·æ ¼è®¡ç®"""</span></span> 250<span class="line"> cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span> 251<span class="line"> cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">"Apple"</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span> 252<span class="line"> <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">20.0</span></span> 253<span class="line"></span> 254<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_with_discount</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> 255<span class="line"> <span class="token triple-quoted-string string">"""åºç¨ææ£"""</span></span> 256<span class="line"> cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span> 257<span class="line"> cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">"Apple"</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span> 258<span class="line"> cart<span class="token punctuation">.</span>
258apply_discount<span class="token punctuation">(</span><span class="token number">0.1</span><span class="token punctuation">)</span> <span class="token comment"># 10% ææ£</span></span> 259<span class="line"> <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">18.0</span></span> 260<span class="line"></span> 261<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_with_coupon</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> 262<span class="line"> <span class="token triple-quoted-string string">"""使ç¨ä¼æ å¸"""</span></span> 263<span class="line"> cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span> 264<span class="line"> cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">"Apple"</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span> 265<span class="line"> cart<span class="token punctuation">.</span>apply_coupon<span class="token punctuation">(</span>Coupon<span class="token punctuation">(</span><span class="token string">"SAVE5"</span><span class="token punctuation">,</span> <span class="token number">5.0</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span> 266<span class="line"> <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">15.0</span></span> 267<span class="line"></span> 268<span class="line"><span class="token keyword">def</span> <span class="token function">test_calculate_total_full_price</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> 269<span class="line"> <span class="token triple-quoted-string string">"""æ»¡åæ´»å¨"""</span></span> 270<span class="line"> cart <span class="token operator">=</span> Cart<span class="token punctuation">(</span><span class="token punctuation">)</span></span> 271<span class="line"> cart<span class="token punctuation">.</span>add_item<span class="token punctuation">(</span>Item<span class="token punctuation">(</span><span class="token string">"Apple"</span><span class="token punctuation">,</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># æ»è®¡100</span></span> 272<span class="line"> <span class="token comment"># 满100å20</span></span> 273<span class="line"> <span class="token keyword">assert</span> cart<span class="token punctuation">.</span>calculate_total<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">80.0</span></span> 274<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>
274<h1 id="step-2-让-ai-å®ç°åè½" tabindex="-1"><a class="header-anchor" href="#step-2-让-ai-å®ç°åè½"><span>Step 2ï¼è®© AI å®ç°åè½</span></a></h1><p>ä½ çè¾å ¥ï¼ """ æ ¹æ®ä¸è¿°æµè¯ç¨ä¾ï¼å®ç° Cart ç±»åç¸å ³é»è¾ """</p><h1 id="ai-çæå®ç°ä»£ç " tabindex="-1"><a class="header-anchor" href="#ai-çæå®ç°ä»£ç "><span>AI çæå®ç°ä»£ç ...</span></a></h1><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line"></span> 275<span class="line">---</span> 276<span class="line"></span> 277<span class="line">## â è´¨éä¿è¯</span> 278<span class="line"></span> 279<span class="line">### 代ç è´¨éæ£æ¥</span> 280<span class="line"></span> 281<span class="line">#### èªå¨åæ£æ¥æµç¨</span> 282<span class="line"></span> 283<span class="line">\`\`\`bash</span> 284<span class="line"># 1. 代ç 飿 ¼æ£æ¥</span> 285<span class="line">pylint your_code.py</span> 286<span class="line">flake8 your_code.py</span> 287<span class="line"></span> 288<span class="line"># 2. ç±»åæ£æ¥</span> 289<span class="line">mypy your_code.py</span> 290<span class="line"></span> 291<span class="line"># 3. å®å ¨æ£æ¥</span> 292<span class="line">bandit your_code.py</span> 293<span class="line"></span> 294<span class="line"># 4. æµè¯è¦çç</span> 295<span class="line">pytest --cov=your_module tests/</span> 296<span class="line"></span> 297<span class="line"># 5. å¤æåº¦åæ</span> 298<span class="line">radon cc your_code.py</span> 299<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="使ç¨-ai-è¾ å©è´¨éæ£æ¥" tabindex="-1"><a class="header-anchor" href="#使ç¨-ai-è¾ å©è´¨éæ£æ¥"><span>ä½¿ç¨ AI è¾ å©è´¨éæ£æ¥</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">ai_quality_check</span><span class="token punctuation">(</span>code<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> 300<span class="line"> <span class="token triple-quoted-string string">"""AI è¾ å©è´¨éæ£æ¥"""</span></span> 301<span class="line"> </span> 302<span class="line"> checks <span class="token operator">=</span> <span class="token punctuation">{</span></span> 303<span class="line"> <span class="token string">"代ç 飿 ¼"</span><span class="token punctuation">:</span> check_code_style<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span> 304<span class="line"> <span class="token string">"ç±»åå®å ¨"</span><span class="token punctuation">:</span> check_type_safety<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span> 305<span class="line"> <span class="token string">"å®å ¨æ¼æ´"</span><span class="token punctuation">:</span> check_security<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span> 306<span class="line">
306 <span class="token string">"æ§è½é®é¢"</span><span class="token punctuation">:</span> check_performance<span class="token punctuation">(</span>code<span class="token punctuation">)</span><span class="token punctuation">,</span></span> 307<span class="line"> <span class="token string">"代ç å¤æåº¦"</span><span class="token punctuation">:</span> check_complexity<span class="token punctuation">(</span>code<span class="token punctuation">)</span></span> 308<span class="line"> <span class="token punctuation">}</span></span> 309<span class="line"> </span> 310<span class="line"> <span class="token comment"># çææ¥å</span></span> 311<span class="line"> report <span class="token operator">=</span> generate_report<span class="token punctuation">(</span>checks<span class="token punctuation">)</span></span> 312<span class="line"> </span> 313<span class="line"> <span class="token comment"># AI æä¾æ¹è¿å»ºè®®</span></span> 314<span class="line"> suggestions <span class="token operator">=</span> ai_suggest_improvements<span class="token punctuation">(</span>code<span class="token punctuation">,</span> checks<span class="token punctuation">)</span></span> 315<span class="line"> </span> 316<span class="line"> <span class="token keyword">return</span> <span class="token punctuation">{</span></span> 317<span class="line"> <span class="token string">"report"</span><span class="token punctuation">:</span> report<span class="token punctuation">,</span></span> 318<span class="line"> <span class="token string">"suggestions"</span><span class="token punctuation">:</span> suggestions</span> 319<span class="line"> <span class="token punctuation">}</span></span> 320<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="å®å ¨æ§æä½³å®è·µ" tabindex="-1"><a class="header-anchor" href="#å®å ¨æ§æä½³å®è·µ"><span>å®å ¨æ§æä½³å®è·µ</span></a></h3><h4 id="å®å ¨æ£æ¥æ¸ å" tabindex="-1"><a class="header-anchor" href="#å®å ¨æ£æ¥æ¸ å"><span>å®å ¨æ£æ¥æ¸ å</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">def</span> <span class="token function">security_checklist</span><span class="token punctuation">(</span>code<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span><span class="token punctuation">:</span></span> 321<span class="line"> <span class="token triple-quoted-string string">"""å®å ¨æ£æ¥æ¸ å"""</span></span> 322<span class="line"> </span> 323<span class="line"> prompt <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"""</span> 324<span class="line"> è¯·æ£æ¥ä»¥ä¸ä»£ç çå®å ¨æ§ï¼</span> 325<span class="line"> </span> 326<span class="line"> \`\`\`</span> 327<span class="line"> </span><span class="token interpolation"><span class="token punctuation">{</span>code<span class="token punctuation">}</span></span><span class="token string"></span> 328<span class="line"> \`\`\`</span> 329<span class="line"> </span> 330<span class="line"> éç¹æ£æ¥ï¼</span> 331<span class="line"> </span> 332<span class="line"> 1. è¾å ¥éªè¯</span> 333<span class="line"> - [ ] ææç¨æ·è¾å ¥é½ç»è¿éªè¯</span> 334<span class="line"> - [ ] 使ç¨ç½ååèéé»åå</span> 335<span class="line"> - [ ] é¿åº¦éå¶</span> 336<span class="line"> </span> 337<span class="line"> 2. SQL æ³¨å ¥</span> 338<span class="line"> - [ ] 使ç¨åæ°åæ¥è¯¢</span> 339<span class="line"> - [ ] é¿å 卿 SQL æ¼æ¥</span> 340<span class="line"> </span> 341<span class="line"> 3. XSS 鲿¤</span> 342<span class="line"> - [ ] è¾åºç¼ç </span> 343<span class="line"> - [ ] Content Security Policy</span> 344<span class="line"> </span> 345<span class="line"> 4. è®¤è¯ææ</span> 346<span class="line"> - [ ] å¯ç å å¯åå¨</span> 347<span class="line">
347 - [ ] ä¼è¯ç®¡çå®å ¨</span> 348<span class="line"> - [ ] æéæ£æ¥</span> 349<span class="line"> </span> 350<span class="line"> 5. æææ°æ®</span> 351<span class="line"> - [ ] ä¸å¨æ¥å¿ä¸è®°å½ææä¿¡æ¯</span> 352<span class="line"> - [ ] 使ç¨ç¯å¢åéåå¨å¯é¥</span> 353<span class="line"> - [ ] å å¯ä¼ è¾</span> 354<span class="line"> </span> 355<span class="line"> 6. é误å¤ç</span> 356<span class="line"> - [ ] 䏿³é²ç³»ç»ä¿¡æ¯</span> 357<span class="line"> - [ ] ç»ä¸é误ååºæ ¼å¼</span> 358<span class="line"> </span> 359<span class="line"> å¯¹äºæ¯ä¸ªæ£æ¥é¡¹ï¼</span> 360<span class="line"> - â éè¿</span> 361<span class="line"> - â ï¸ éè¦æ¹è¿</span> 362<span class="line"> - â åå¨é®é¢</span> 363<span class="line"> </span> 364<span class="line"> å¹¶ç»åºå ·ä½çæ¹è¿å»ºè®®ã</span> 365<span class="line"> """</span></span></span> 366<span class="line"> </span> 367<span class="line"> <span class="token keyword">return</span> call_ai<span class="token punctuation">(</span>prompt<span class="token punctuation">)</span></span> 368<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="常è§å®å ¨é®é¢åä¿®å¤" tabindex="-1"><a class="header-anchor" href="#常è§å®å ¨é®é¢åä¿®å¤"><span>常è§å®å ¨é®é¢åä¿®å¤</span></a></h4><p><strong>é®é¢ 1ï¼SQL æ³¨å ¥</strong></p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># â ä¸å®å ¨</span></span> 369<span class="line"><span class="token keyword">def</span> <span class="token function">get_user</span><span class="token punctuation">(</span>username<span class="token punctuation">)</span><span class="token punctuation">:</span></span> 370<span class="line"> query <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"SELECT * FROM users WHERE username = '</span><span class="token interpolation"><span class="token punctuation">{</span>username<span class="token punctuation">}</span></span><span class="token string">'"</span></span></span> 371<span class="line"> <span class="token keyword">return</span> db<span class="token punctuation">.</span>execute<span class="token punctuation">(</span>query<span class="token punctuation">)</span></span> 372<span class="line"></span> 373<span class="line"><span class="token comment"># â å®å ¨</span></span> 374<span class="line"><span class="token keyword">def</span> <span class="token function">get_user</span><span class="token punctuation">(</span>username<span class="token punctuation">)</span><span class="token punctuation">:</span></span> 375<span class="line"> query <span class="token operator">=</span> <span class="token string">"SELECT * FROM users WHERE username = ?"</span></span> 376<span class="line"> <span class="token keyword">return</span> db<span class="token punctuation">.</span>execute<span class="token punctuation">(</span>query<span class="token punctuation">,</span> <span class="token punctuation">(</span>username<span class="token punctuation">,</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span> 377<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>é®é¢ 2ï¼å¯ç åå¨</strong></p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment">
377# â ä¸å®å ¨</span></span> 378<span class="line"><span class="token keyword">def</span> <span class="token function">save_password</span><span class="token punctuation">(</span>password<span class="token punctuation">)</span><span class="token punctuation">:</span></span> 379<span class="line"> user<span class="token punctuation">.</span>password <span class="token operator">=</span> password <span class="token comment"># ææåå¨</span></span> 380<span class="line"></span> 381<span class="line"><span class="token comment"># â å®å ¨</span></span> 382<span class="line"><span class="token keyword">import</span> bcrypt</span> 383<span class="line"></span> 384<span class="line"><span class="token keyword">def</span> <span class="token function">save_password</span><span class="token punctuation">(</span>password<span class="token punctuation">)</span><span class="token punctuation">:</span></span> 385<span class="line"> salt <span class="token operator">=</span> bcrypt<span class="token punctuation">.</span>gensalt<span class="token punctuation">(</span><span class="token punctuation">)</span></span> 386<span class="line"> hashed <span class="token operator">=</span> bcrypt<span class="token punctuation">.</span>hashpw<span class="token punctuation">(</span>password<span class="token punctuation">.</span>encode<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> salt<span class="token punctuation">)</span></span> 387<span class="line"> user<span class="token punctuation">.</span>password <span class="token operator">=</span> hashed</span> 388<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>é®é¢ 3ï¼ææä¿¡æ¯æ³é²</strong></p><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># â ä¸å®å ¨</span></span> 389<span class="line">API_KEY <span class="token operator">=</span> <span class="token string">"sk-1234567890abcdef"</span> <span class="token comment"># 硬ç¼ç å¨ä»£ç ä¸</span></span> 390<span class="line"></span> 391<span class="line"><span class="token comment"># â å®å ¨</span></span> 392<span class="line"><span class="token keyword">import</span> os</span> 393<span class="line">API_KEY <span class="token operator">=</span> os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"API_KEY"</span><span class="token punctuation">)</span> <span class="token comment"># ä»ç¯å¢åé读å</span></span> 394<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="ð¥-å¢éåä½" tabindex="-1"><a class="header-anchor" href="#ð¥-å¢éåä½"><span>ð¥ å¢éåä½</span></a></h2><h3 id="å¢é使ç¨è§è" tabindex="-1"><a class="header-anchor" href="#å¢é使ç¨è§è"><span>å¢é使ç¨è§è</span></a></h3><h4 id="æç¤ºè¯åºç®¡ç" tabindex="-1"><a class="header-anchor" href="#æç¤ºè¯åºç®¡ç"><span>æç¤ºè¯åºç®¡ç</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">å¢éå ±äº«çæç¤ºè¯åºï¼</span> 395<span class="line"></span> 396<span class="line">project/</span> 397<span class="line">âââ .prompts/</span> 398<span class="line">â âââ python/</span> 399<span class="line">â â âââ api-endpoint.md</span> 400<span class="line">â â âââ data-model.md</span> 401<span class="line">â â âââ unit-test.md</span> 402<span class="line">â âââ frontend/</span> 403<span class="line">â â âââ react-component.md</span> 404<span class="line">â â âââ api-integration.md</span> 405<span class="line">â âââ devops/</span> 406<span class="line">â âââ docker.md</span> 407<span class="line">â âââ ci-cd.md</span> 408<span class="line">âââ README.md</span> 409<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>ç¤ºä¾æç¤ºè¯æ¨¡æ¿</strong> (<code>api-endpoint.md</code>)ï¼</p><div class="language-markdown line-numbers-mode" data-highlighter="prismjs" data-ext="md"><pre><code class="language-markdown"><span class="line"><span class="token title important"><span class="token punctuation">#</span> API 端ç¹å¼å模æ¿</span></span> 410<span class="line"></span> 411<span class="line"><span class="token title important"><span class="token punctuation">##</span> æç¤ºè¯</span></span> 412<span class="line"></span> 413<span class="line">å建ä¸ä¸ª RESTful API 端ç¹ï¼</span> 414<span class="line"></span> 415<span class="line">ãåè½ã</span> 416<span class="line">{åè½æè¿°}</span> 417<span class="line"></span> 418<span class="line">ãè·¯ç±ã</span> 419<span class="line"><span class="token list punctuation">-</span> æ¹æ³ï¼{GET/POST/PUT/DELETE}</span> 420<span class="line"><span class="token list punctuation">-</span> è·¯å¾ï¼{/api/v1/...}</span> 421<span class="line"></span> 422<span class="line">ã请æ±ã</span> 423<span class="line"><span class="token list punctuation">-</span> Headersï¼{...}</span> 424<span class="line"><span class="token list punctuation">-</span> Bodyï¼{...}</span> 425<span class="line"></span> 426<span class="line">ãååºã</span> 427<span class="line"><span class="token list punctuation">-</span> æåï¼{200, æ°æ®æ ¼å¼}</span> 428<span class="line"><span class="token list punctuation">-</span> 失败ï¼{é误ç , éè¯¯æ ¼å¼}</span> 429<span class="line"></span> 430<span class="line">ãéªè¯ã</span> 431<span class="line"><span class="token list punctuation">-</span> è¾å ¥éªè¯è§å</span> 432<span class="line"><span class="token list punctuation">-</span> æééªè¯</span> 433<span class="line"></span> 434<span class="line">ãé误å¤çã</span> 435<span class="line"><span class="token list punctuation">-</span> å¼å¸¸ç±»ååå¤çæ¹å¼</span> 436<span class="line"></span> 437<span class="line">ãææ¡£ã</span> 438<span class="line"><span class="token list punctuation">-</span> çæ OpenAPI/Swagger ææ¡£</span> 439<span class="line"></span> 440<span class="line"><span class="token title important"><span class="token punctuation">##</span> 使ç¨ç¤ºä¾</span></span> 441<span class="line"></span> 442<span class="line">[ç²è´´ä¸ä¸ªå ·ä½ç¤ºä¾]</span> 443<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="代ç 飿 ¼ç»ä¸" tabindex="-1">
443<a class="header-anchor" href="#代ç 飿 ¼ç»ä¸"><span>代ç 飿 ¼ç»ä¸</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token comment"># .ai-config.yaml</span></span> 444<span class="line"></span> 445<span class="line"><span class="token comment"># AI çæä»£ç ç飿 ¼é ç½®</span></span> 446<span class="line">code_style<span class="token punctuation">:</span></span> 447<span class="line"> language<span class="token punctuation">:</span> python</span> 448<span class="line"> version<span class="token punctuation">:</span> <span class="token string">"3.10+"</span></span> 449<span class="line"> </span> 450<span class="line"> formatting<span class="token punctuation">:</span></span> 451<span class="line"> line_length<span class="token punctuation">:</span> <span class="token number">88</span></span> 452<span class="line"> quotes<span class="token punctuation">:</span> double</span> 453<span class="line"> indent<span class="token punctuation">:</span> <span class="token number">4</span></span> 454<span class="line"> </span> 455<span class="line"> naming<span class="token punctuation">:</span></span> 456<span class="line"> function<span class="token punctuation">:</span> snake_case</span> 457<span class="line"> <span class="token keyword">class</span><span class="token punctuation">:</span> PascalCase</span> 458<span class="line"> constant<span class="token punctuation">:</span> UPPER_CASE</span> 459<span class="line"> </span> 460<span class="line"> documentation<span class="token punctuation">:</span></span> 461<span class="line"> style<span class="token punctuation">:</span> google <span class="token comment"># Google, NumPy, or reStructuredText</span></span> 462<span class="line"> include_examples<span class="token punctuation">:</span> true</span> 463<span class="line">
463 include_types<span class="token punctuation">:</span> true</span> 464<span class="line"> </span> 465<span class="line"> imports<span class="token punctuation">:</span></span> 466<span class="line"> order<span class="token punctuation">:</span> <span class="token punctuation">[</span>stdlib<span class="token punctuation">,</span> third_party<span class="token punctuation">,</span> local<span class="token punctuation">]</span></span> 467<span class="line"> <span class="token builtin">format</span><span class="token punctuation">:</span> black</span> 468<span class="line"> </span> 469<span class="line"> type_hints<span class="token punctuation">:</span></span> 470<span class="line"> enabled<span class="token punctuation">:</span> true</span> 471<span class="line"> strict<span class="token punctuation">:</span> false</span> 472<span class="line"> </span> 473<span class="line"> error_handling<span class="token punctuation">:</span></span> 474<span class="line"> prefer_specific_exceptions<span class="token punctuation">:</span> true</span> 475<span class="line"> always_cleanup<span class="token punctuation">:</span> true</span> 476<span class="line"> </span> 477<span class="line"> testing<span class="token punctuation">:</span></span> 478<span class="line"> framework<span class="token punctuation">:</span> pytest</span> 479<span class="line"> coverage_target<span class="token punctuation">:</span> <span class="token number">80</span></span> 480<span class="line"> include_edge_cases<span class="token punctuation">:</span> true</span> 481<span class="line"></span> 482<span class="line"><span class="token comment"># ä½¿ç¨æ¹å¼</span></span> 483<span class="line"><span class="token comment"># å¨æç¤ºè¯ä¸å¼ç¨ï¼</span></span> 484<span class="line"><span class="token comment"># "请æç §æä»¬ç代ç 飿 ¼é ç½®çæä»£ç ï¼åè .ai-config.yamlï¼"</span></span> 485<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="git-commit-è§è" tabindex="-1"><a class="header-anchor" href="#git-commit-è§è"><span>Git Commit è§è</span></a></h4><div class="language-bash line-numbers-mode" data-highlighter="prismjs" data-ext="sh"><pre><code class="language-bash"><span class="line"><span class="token comment"># ä½¿ç¨ AI çæè§èç commit message</span></span> 486<span class="line"></span> 487<span class="line"><span class="token comment"># ä½ çè¾å ¥ï¼</span></span> 488<span class="line"><span class="token function">git</span> <span class="token function">diff</span> <span class="token operator">|</span> ai-commit</span> 489<span class="line"></span> 490<span class="line"><span class="token comment"># AI çæï¼</span></span> 491<span class="line">feat<span class="token punctuation">(</span>auth<span class="token punctuation">)</span>: æ·»å ç¨æ·æ³¨åAPI</span> 492<span class="line"></span> 493<span class="line">- å®ç°ç¨æ·æ³¨å端ç¹</span> 494<span class="line">- æ·»å é®ç®±éªè¯</span> 495<span class="line">- å®ç°å¯ç å å¯åå¨</span> 496<span class="line">- æ·»å åå æµè¯ï¼è¦çç85%ï¼</span> 497<span class="line"></span> 498<span class="line">Breaking Changes: None</span> 499<span class="line">Closes: <span class="token comment">#123</span></span> 500<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="ç¥è¯åºå»ºè®¾" tabindex="-1"><a class="header-anchor" href="#ç¥è¯åºå»ºè®¾"><span>ç¥è¯åºå»ºè®¾</span></a></h3><h4 id="项ç®ç¥è¯åºç»æ" tabindex="-1"><a class="header-anchor" href="#项ç®ç¥è¯åºç»æ"><span>项ç®ç¥è¯åºç»æ</span></a></h4><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">项ç®ç¥è¯åº/</span> 501<span class="line">âââ 01-æ¶æè®¾è®¡/</span> 502<span class="line">â âââ ç³»ç»æ¶æ.md</span> 503<span class="line">â âââ æ°æ®åºè®¾è®¡.md</span> 504<span class="line">â âââ API设计.md</span> 505<span class="line">â</span> 506<span class="line">âââ 02-å¼åè§è/</span> 507<span class="line">â âââ 代ç 飿 ¼æå.md</span> 508<span class="line">â âââ Git工使µ.md</span> 509<span class="line">â âââ æµè¯è§è.md</span> 510<span class="line">â</span> 511<span class="line">âââ 03-å¸¸è§æ¨¡å¼/</span> 512<span class="line">â âââ è®¤è¯æææ¨¡å¼.md</span> 513<span class="line">â âââ é误å¤ç模å¼.md</span> 514<span class="line">â âââ æ°æ®éªè¯æ¨¡å¼.md</span> 515<span class="line">â</span> 516<span class="line">âââ 04-é®é¢è§£å³/</span> 517<span class="line">â âââ 常è§é®é¢FAQ.md</span> 518<span class="line">â âââ æ§è½ä¼åæ¡ä¾.md</span> 519<span class="line">â âââ Bugä¿®å¤è®°å½.md</span> 520<span class="line">â</span> 521<span class="line">âââ 05-æä½³å®è·µ/</span> 522<span class="line"> âââ å®å ¨æä½³å®è·µ.md</span> 523<span class="line"> âââ æ§è½æä½³å®è·µ.md</span> 524<span class="line"> âââ å¯ç»´æ¤æ§æä½³å®è·µ.md</span> 525<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="使ç¨-ai-ç»´æ¤ç¥è¯åº" tabindex="-1"><a class="header-anchor" href="#使ç¨-ai-ç»´æ¤ç¥è¯åº"><span>ä½¿ç¨ AI ç»´æ¤ç¥è¯åº</span></a></h4><div class="language-python line-numbers-mode" data-highlighter="prismjs" data-ext="py"><pre><code class="language-python"><span class="line"><span class="token keyword">async</span> <span class="token keyword">def</span> <span class="token function">update_knowledge_base</span><span class="token punctuation">(</span>
525code_changes<span class="token punctuation">,</span> issue_resolution<span class="token punctuation">)</span><span class="token punctuation">:</span></span> 526<span class="line"> <span class="token triple-quoted-string string">"""èªå¨æ´æ°ç¥è¯åº"""</span></span> 527<span class="line"> </span> 528<span class="line"> <span class="token comment"># 1. åæä»£ç åæ´</span></span> 529<span class="line"> patterns <span class="token operator">=</span> <span class="token keyword">await</span> ai_analyze_patterns<span class="token punctuation">(</span>code_changes<span class="token punctuation">)</span></span> 530<span class="line"> </span> 531<span class="line"> <span class="token comment"># 2. æåæä½³å®è·µ</span></span> 532<span class="line"> <span class="token keyword">if</span> is_good_practice<span class="token punctuation">(</span>patterns<span class="token punctuation">)</span><span class="token punctuation">:</span></span> 533<span class="line"> <span class="token keyword">await</span> add_to_knowledge_base<span class="token punctuation">(</span></span> 534<span class="line"> category<span class="token operator">=</span><span class="token string">"æä½³å®è·µ"</span><span class="token punctuation">,</span></span> 535<span class="line"> content<span class="token operator">=</span>patterns</span> 536<span class="line"> <span class="token punctuation">)</span></span> 537<span class="line"> </span> 538<span class="line"> <span class="token comment"># 3. è®°å½é®é¢è§£å³æ¹æ¡</span></span> 539<span class="line"> <span class="token keyword">if</span> issue_resolution<span class="token punctuation">:</span></span> 540<span class="line"> <span class="token keyword">await</span> add_to_knowledge_base<span class="token punctuation">(</span></span> 541<span class="line"> category<span class="token operator">=</span><span class="token string">"é®é¢è§£å³"</span><span class="token punctuation">,</span></span> 542<span class="line"> content<span class="token operator">=</span><span class="token punctuation">{</span></span> 543<span class="line"> <span class="token string">"problem"</span><span class="token punctuation">:</span> issue_resolution<span class="token punctuation">.</span>problem<span class="token punctuation">,</span></span> 544<span class="line"> <span class="token string">"solution"</span><span class="token punctuation">:</span> issue_resolution<span class="token punctuation">.</span>solution<span class="token punctuation">,</span></span> 545<span class="line"> <span class="token string">"code"</span><span class="token punctuation">:</span> issue_resolution<span class="token punctuation">.</span>code</span> 546<span class="line"> <span class="token punctuation">}</span></span> 547<span class="line"> <span class="token punctuation">)</span></span> 548<span class="line"> </span> 549<span class="line"> <span class="token comment"># 4. çæææ¡£</span></span> 550<span class="line"> doc <span class="token operator">=</span> <span class="token keyword">await</span> ai_generate_documentation<span class="token punctuation">(</span>patterns<span class="token punctuation">)</span></span> 551<span class="line"> <span class="token keyword">await</span> save_documentation<span class="token punctuation">(</span>doc<span class="token punctuation">)</span></span> 552<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="ð¡-æä½³å®è·µæ»ç»" tabindex="-1"><a class="header-anchor" href="#ð¡-æä½³å®è·µæ»ç»"><span>ð¡ æä½³å®è·µæ»ç»</span></a></h2><h3 id="æ ¸å¿åå" tabindex="-1"><a class="header-anchor" href="#æ ¸å¿åå"><span>æ ¸å¿åå</span></a></h3><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">1. 人æºåå</span> 553<span class="line"> ââ AI çæï¼äººå·¥å®¡æ¥</span> 554<span class="line"></span> 555<span class="line">2. æç»è¿ä»£</span> 556<span class="line"> ââ 䏿ä¼åæç¤ºè¯å工使µ</span> 557<span class="line"></span> 558<span class="line">3. è´¨éä¼å </span> 559<span class="line"> ââ 代ç è´¨éä¸è½å¦¥å</span> 560<span class="line"></span> 561<span class="line">4. å®å ¨ç¬¬ä¸</span> 562<span class="line"> ââ å§ç»èèå®å ¨æ§</span> 563<span class="line"></span> 564<span class="line">5. å¢éåä½</span> 565<span class="line"> ââ ç»ä¸è§èï¼å ±äº«ç¥è¯</span> 566<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="常è§é·é±" tabindex="-1"><a class="header-anchor" href="#常è§é·é±"><span>常è§é·é±</span></a></h3><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">â ç²ç®ä¿¡ä»» AI çæç代ç </span> 567<span class="line"> â å§ç»å®¡æ¥åæµè¯</span> 568<span class="line"></span> 569<span class="line">â æç¤ºè¯è¿äºç®å</span> 570<span class="line"> â æä¾å åçä¸ä¸æå约æ</span> 571<span class="line"></span> 572<span class="line">â 忽è§å®å ¨æ§</span> 573<span class="line"> â éç¹å ³æ³¨å®å ¨é®é¢</span> 574<span class="line"></span> 575<span class="line">â ä¸åæµè¯</span> 576<span class="line"> â AI å¯ä»¥å¸®å©çææµè¯</span> 577<span class="line"></span> 578<span class="line">â ç¼ºä¹ææ¡£</span> 579<span class="line"> â å©ç¨ AI çæææ¡£</span> 580<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><hr><h2 id="ð¯-ä¸ä¸æ¥" tabindex="-1"><a class="header-anchor" href="#ð¯-ä¸ä¸æ¥"><span>ð¯ ä¸ä¸æ¥</span></a></h2><p>ææ¡äºæä½³å®è·µåï¼ç»§ç»å¦ä¹ ï¼</p>`,127)),a("ul",null,[a("li",null,[n[1]||(n[1]=s("ð ",-1)),l(e,{to:"/ai-programming/codex/07-optimization-tips.html"},{default:i(()=>[...n[0]||(n[0]=[s("07 - æ§è½ä¼åæå·§",-1)])]),_:1}),n[2]||(n[2]=s(" - æåæçåé使æ¬",-1))]),a("li",null,[n[4]||(n[4]=s("ð ",-1)),l(e,{to:"/ai-programming/codex/08-practical-cases.html"},{default:i(()=>[...n[3]||(n[3]=[s("08 - 宿æ¡ä¾é",-1)])]),_:1}),n[5]||(n[5]=s(" - å®è·µé¡¹ç®",-1))]),a("li",null,[n[7]||(n[7]=s("ð ",-1)),l(e,{to:"/ai-programming/codex/09-troubleshooting.html"},{default:i(()=>[...n[6]||(n[6]=[s("09 - 常è§é®é¢ä¸æ éæé¤",-1)])]),_:1}),n[8]||(n[8]=s(" - è§£å³å ·ä½é®é¢",-1))])]),n[12]||(n[12]=a("hr",null,null,-1)),a("p",null,[n[10]||(n[10]=s("ð ",-1)),l(e,{to:"/ai-programming/codex/07-optimization-tips.html"},{default:i(()=>[...n[9]||(n[9]=[s("ä¸ä¸ç« ï¼07 - æ§è½ä¼åæå·§",-1)])]),_:1})])])}const b=p(o,[["render",r]]),k=JSON.parse('{"path":"/ai-programming/codex/06-best-practices.html","title":"Codex æä½³å®è·µ","lang":"zh-CN","frontmatter":{"title":"Codex æä½³å®è·µ","description":"ææ¡é«æä½¿ç¨ Codex ççç¥ãæå·§å工使µ","lang":"zh-CN"}
580,"git":{"updatedTime":1766413539000,"contributors":[{"name":"wsyx","username":"","email":"[email protected]","commits":1}],"changelog":[{"hash":"6f88b92aa0bd0fb67a38a1ba536877d410aa38fb","time":1766413539000,"email":"[email protected]","author":"wsyx","message":"featï¼æç« ç»æä¼å"}]},"filePathRelative":"ai-programming/codex/06-best-practices.md"}');export{b as comp,k as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.