<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[liangbo.me]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://liangbo.me/</link><image><url>https://liangbo.me/favicon.png</url><title>liangbo.me</title><link>https://liangbo.me/</link></image><generator>Ghost 5.87</generator><lastBuildDate>Sun, 19 Apr 2026 13:05:52 GMT</lastBuildDate><atom:link href="https://liangbo.me/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[开发者福音：只需一个 API Key，完美集成 GPT-4、Claude 与 Gemini]]></title><description><![CDATA[<p>&#x4F5C;&#x4E3A;&#x5F00;&#x53D1;&#x8005;&#xFF0C;&#x6211;&#x4EEC;&#x7ECF;&#x5E38;&#x9762;&#x4E34;&#x8FD9;&#x6837;&#x7684;&#x70E6;&#x607C;&#xFF1A;&#x4E3A;&#x4E86;&#x6D4B;&#x8BD5;&#x4E0D;&#x540C;&#x7684; AI &#x6A21;&#x578B;&#xFF0C;&#x9700;&#x8981;&#x540C;&#x65F6;&#x7EF4;&#x62A4; OpenAI&#x3001;Anthropic &#x548C; Google &#x7684;&#x8D26;&#x53F7;&#xFF0C;&#x5FCD;&#x53D7;&#x7E41;&#x7410;&#x7684;&#x652F;</p>]]></description><link>https://liangbo.me/kai-fa-zhe-fu-yin-zhi-xu-yi-ge-api-key-wan-mei-ji-cheng-gpt-4-claude-yu-gemini/</link><guid isPermaLink="false">696a06c9cebec600013262dc</guid><dc:creator><![CDATA[Liang Bo]]></dc:creator><pubDate>Fri, 16 Jan 2026 09:41:00 GMT</pubDate><media:content url="https://liangbo.me/content/images/2026/01/ScreenShot_2026-01-16_173937_022.png" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2026/01/ScreenShot_2026-01-16_173937_022.png" alt="&#x5F00;&#x53D1;&#x8005;&#x798F;&#x97F3;&#xFF1A;&#x53EA;&#x9700;&#x4E00;&#x4E2A; API Key&#xFF0C;&#x5B8C;&#x7F8E;&#x96C6;&#x6210; GPT-4&#x3001;Claude &#x4E0E; Gemini"><p>&#x4F5C;&#x4E3A;&#x5F00;&#x53D1;&#x8005;&#xFF0C;&#x6211;&#x4EEC;&#x7ECF;&#x5E38;&#x9762;&#x4E34;&#x8FD9;&#x6837;&#x7684;&#x70E6;&#x607C;&#xFF1A;&#x4E3A;&#x4E86;&#x6D4B;&#x8BD5;&#x4E0D;&#x540C;&#x7684; AI &#x6A21;&#x578B;&#xFF0C;&#x9700;&#x8981;&#x540C;&#x65F6;&#x7EF4;&#x62A4; OpenAI&#x3001;Anthropic &#x548C; Google &#x7684;&#x8D26;&#x53F7;&#xFF0C;&#x5FCD;&#x53D7;&#x7E41;&#x7410;&#x7684;&#x652F;&#x4ED8;&#x6D41;&#x7A0B;&#xFF0C;&#x8FD8;&#x8981;&#x5728;&#x4EE3;&#x7801;&#x91CC;&#x5199;&#x4E00;&#x5927;&#x5806;&#x517C;&#x5BB9;&#x903B;&#x8F91;&#x3002;&#x6700;&#x8FD1;&#x6211;&#x53D1;&#x73B0;&#x4E86;&#x4E00;&#x4E2A;&#x795E;&#x5668; &#x2014;&#x2014; <strong>CloudHarb</strong>&#x3002;</p><p>&#x5B83;&#x662F;&#x4E00;&#x4E2A;<strong>&#x7EDF;&#x4E00;&#x7684; AI &#x6A21;&#x578B;&#x7F51;&#x5173;</strong>&#xFF0C;&#x80FD;&#x8BA9;&#x4F60;&#x901A;&#x8FC7;&#x4E00;&#x4E2A; API Key &#x63A5;&#x5165; 100 &#x591A;&#x4E2A;&#x4E3B;&#x6D41;&#x6A21;&#x578B;&#x3002;&#x4ECA;&#x5929;&#x5206;&#x4EAB;&#x4E00;&#x4E0B;&#x5982;&#x4F55;&#x5229;&#x7528;&#x5B83;&#x5FEB;&#x901F;&#x6784;&#x5EFA;&#x4F60;&#x7684; AI &#x5E94;&#x7528;&#x3002;</p><h2 id="1-%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9-cloudharb%EF%BC%9F"><strong>1. &#x4E3A;&#x4EC0;&#x4E48;&#x9009;&#x62E9; CloudHarb&#xFF1F;</strong></h2><p></p><p>&#x5728;&#x5C1D;&#x8BD5;&#x4E86;&#x591A;&#x79CD;&#x65B9;&#x6848;&#x540E;&#xFF0C;CloudHarb &#x7684;&#x51E0;&#x4E2A;&#x6838;&#x5FC3;&#x4F18;&#x52BF;&#x975E;&#x5E38;&#x5438;&#x5F15;&#x6211;&#xFF1A;&#x2022; <strong>&#x6781;&#x81F4;&#x517C;&#x5BB9;&#xFF1A;</strong> &#x5B8C;&#x7F8E;&#x652F;&#x6301; OpenAI SDK&#xFF0C;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x4F60;&#x73B0;&#x6709;&#x7684;&#x4EE3;&#x7801;&#x51E0;&#x4E4E;<strong>&#x65E0;&#x9700;&#x6539;&#x52A8;</strong>&#x5373;&#x53EF;&#x65E0;&#x7F1D;&#x5207;&#x6362;&#x6A21;&#x578B;&#x3002;&#x2022; <strong>&#x8D85;&#x9AD8;&#x6027;&#x80FD;&#xFF1A;</strong> &#x7CFB;&#x7EDF;&#x5728;&#x7EBF;<strong>&#x5EF6;&#x8FDF;&#x5C0F;&#x4E8E; 100ms</strong>&#xFF0C;&#x4E14;&#x62E5;&#x6709; <strong>99.9% &#x7684;&#x53EF;&#x7528;&#x6027;</strong>&#x4FDD;&#x969C;&#x3002;&#x2022; <strong>&#x5DE5;&#x5177;&#x94FE;&#x4E30;&#x5BCC;&#xFF1A;</strong> &#x9664;&#x4E86;&#x4EE3;&#x7801;&#x8C03;&#x7528;&#xFF0C;&#x5B83;&#x8FD8;&#x539F;&#x751F;&#x652F;&#x6301; <strong>Claude Code</strong>&#x3001;<strong>OpenAI Codex CLI</strong>&#x3001;<strong>Cursor</strong> &#x548C; <strong>LangChain</strong> &#x7B49;&#x70ED;&#x95E8;&#x5F00;&#x53D1;&#x5DE5;&#x5177;&#x3002;&#x2022; <strong>&#x6210;&#x672C;&#x900F;&#x660E;&#xFF1A;</strong> &#x91C7;&#x7528;<strong>&#x6309;&#x91CF;&#x8BA1;&#x8D39;</strong>&#x6A21;&#x5F0F;&#xFF0C;&#x6CA1;&#x6709;&#x6708;&#x8D39;&#x6216;&#x9690;&#x85CF;&#x6210;&#x672C;&#xFF0C;&#x6BCF;&#x4E00;&#x5206;&#x94B1;&#x7684; Token &#x6D88;&#x8017;&#x3001;&#x5EF6;&#x8FDF;&#x90FD;&#x80FD;&#x5B9E;&#x65F6;&#x8FFD;&#x8E2A;&#x3002;<strong>2. &#x5FEB;&#x901F;&#x4E0A;&#x624B;&#xFF1A;&#x53EA;&#x9700;&#x6539;&#x52A8;&#x4E00;&#x884C;&#x4EE3;&#x7801;</strong>&#x5982;&#x679C;&#x4F60;&#x5DF2;&#x7ECF;&#x6709;&#x4E86;&#x4E00;&#x4E2A;&#x4F7F;&#x7528; OpenAI SDK &#x7684; Python &#x9879;&#x76EE;&#xFF0C;&#x5207;&#x6362;&#x5230; CloudHarb &#x53EA;&#x9700;&#x4E09;&#x6B65;&#xFF1A;1. <strong>&#x83B7;&#x53D6; Key&#xFF1A;</strong> &#x5728; CloudHarb &#x5B98;&#x7F51;<strong>&#x514D;&#x8D39;&#x6CE8;&#x518C;</strong>&#xFF08;&#x65E0;&#x9700;&#x4FE1;&#x7528;&#x5361;&#xFF0C;&#x6CE8;&#x518C;&#x5373;&#x9001;&#x514D;&#x8D39;&#x989D;&#x5EA6;&#xFF09;&#x5E76;&#x521B;&#x5EFA;&#x4F60;&#x7684; API Key&#x3002;</p><h2 id="2-%E4%BF%AE%E6%94%B9-base-url%EF%BC%9A">2. <strong>&#x4FEE;&#x6539; Base URL&#xFF1A;</strong> </h2><p>&#x5C06; API &#x7684;&#x8BF7;&#x6C42;&#x5730;&#x5740;&#x6307;&#x5411; CloudHarb &#x7684;&#x7EDF;&#x4E00;&#x7AEF;&#x70B9;&#x3002;3. <strong>&#x66F4;&#x6362;&#x6A21;&#x578B;&#xFF1A;</strong> &#x76F4;&#x63A5;&#x5728;&#x53C2;&#x6570;&#x4E2D;&#x6307;&#x5B9A;&#x4F60;&#x60F3;&#x7528;&#x7684;&#x6A21;&#x578B;&#xFF08;&#x5982; <code>gpt-4o-mini</code> &#x6216; <code>claude-3</code>&#xFF09;&#x3002;</p><p><strong>Python &#x4EE3;&#x7801;&#x793A;&#x4F8B;&#xFF1A;</strong></p><pre><code># pip install openai
from openai import OpenAI

# 1. &#x586B;&#x5165;&#x4F60;&#x7684; CloudHarb API Key
# 2. &#x4FEE;&#x6539; base_url &#x4E3A; CloudHarb &#x7EDF;&#x4E00;&#x63A5;&#x53E3;
client = OpenAI(
    api_key=&apos;YOUR_CLOUDHARB_API_KEY&apos;,
    base_url=&apos;https://api.cloudharb.com/endpoint&apos;
)

# 3. &#x968F;&#x5FC3;&#x5207;&#x6362;&#x6A21;&#x578B;&#xFF0C;&#x65E0;&#x9700;&#x91CD;&#x6784;&#x4EE3;&#x7801;
completion = client.chat.completions.create(
    model=&apos;gpt-4o-mini&apos;, 
    messages=[{&apos;role&apos;: &apos;user&apos;, &apos;content&apos;: &apos;Hello CloudHarb!&apos;}]
)

print(completion.choices.message.content)
</code></pre><p>&#x901A;&#x8FC7;&#x8FD9;&#x79CD;&#x65B9;&#x5F0F;&#xFF0C;CloudHarb &#x5145;&#x5F53;&#x4E86;&#x4F60;&#x7684;&#x5E94;&#x7528;&#x4E0E;&#x5404;&#x5927;&#x6A21;&#x578B;&#x5546;&#x4E4B;&#x95F4;&#x7684;&#x4E2D;&#x8F6C;&#x7AD9;&#xFF0C;&#x5B9E;&#x73B0;&#x4E86;&#x201C;<strong>&#x4E00;&#x4E2A;&#x63A5;&#x53E3;&#x8C03;&#x7528;&#x6240;&#x6709;&#x6A21;&#x578B;</strong>&#x201D;&#x3002;</p><h2 id="3-%E8%BF%9B%E9%98%B6%E7%8E%A9%E6%B3%95%EF%BC%9A"><strong>3. &#x8FDB;&#x9636;&#x73A9;&#x6CD5;&#xFF1A;</strong></h2><p><strong>&#x5728;&#x7EC8;&#x7AEF;&#x4F7F;&#x7528; Claude Code, </strong>CloudHarb &#x4E5F;&#x662F;&#x76EE;&#x524D;&#x5C11;&#x6709;&#x7684;&#x5B8C;&#x7F8E;&#x652F;&#x6301; <strong>Claude Code</strong>&#xFF08;Anthropic &#x5B98;&#x65B9;&#x547D;&#x4EE4;&#x884C;&#x5DE5;&#x5177;&#xFF09;&#x548C; <strong>Codex CLI</strong> &#x7684;&#x7F51;&#x5173;&#x3002;&#x4F60;&#x53EA;&#x9700;&#x8981;&#x5728;&#x7EC8;&#x7AEF;&#x4E2D;&#x7B80;&#x5355;&#x8BBE;&#x7F6E;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#xFF0C;&#x5373;&#x53EF;&#x76F4;&#x63A5;&#x5728;&#x547D;&#x4EE4;&#x884C;&#x4E0E; Claude &#x5BF9;&#x8BDD;&#x7F16;&#x7A0B;&#xFF1A;&#x2022; <strong>&#x64CD;&#x4F5C;&#x65B9;&#x5F0F;&#xFF1A;</strong> &#x53EA;&#x9700;&#x8BBE;&#x7F6E;&#x5BF9;&#x5E94;&#x7684; API Key &#x73AF;&#x5883;&#x53D8;&#x91CF;&#xFF0C;&#x65E0;&#x9700;&#x590D;&#x6742;&#x7684;&#x4E2D;&#x95F4;&#x914D;&#x7F6E;&#x3002;&#x2022; <strong>&#x9002;&#x7528;&#x573A;&#x666F;&#xFF1A;</strong> &#x975E;&#x5E38;&#x9002;&#x5408;&#x4E60;&#x60EF;&#x4E8E;&#x7EC8;&#x7AEF;&#x64CD;&#x4F5C;&#x3001;&#x8FFD;&#x6C42;&#x6781;&#x81F4;&#x6548;&#x7387;&#x7684;&#x5F00;&#x53D1;&#x8005;&#x3002;</p><h2 id="4-%E7%B2%BE%E7%BB%86%E5%8C%96%E7%AE%A1%E7%90%86%EF%BC%9A"><strong>4. &#x7CBE;&#x7EC6;&#x5316;&#x7BA1;&#x7406;&#xFF1A;</strong></h2><p><strong>&#x4E3A;&#x4E0D;&#x540C;&#x9879;&#x76EE;&#x5206;&#x914D; Key</strong>CloudHarb &#x63D0;&#x4F9B;&#x4E86;&#x975E;&#x5E38;&#x5B9E;&#x7528;&#x7684;<strong>&#x591A; Key &#x7BA1;&#x7406;</strong>&#x529F;&#x80FD;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x4E3A;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#xFF08;<code>prod-key</code>&#xFF09;&#x548C;&#x5F00;&#x53D1;&#x73AF;&#x5883;&#xFF08;<code>dev-key</code>&#xFF09;&#x521B;&#x5EFA;&#x72EC;&#x7ACB;&#x7684; Key&#x3002;&#x8FD9;&#x6837;&#x505A;&#x7684;&#x6700;&#x5927;&#x597D;&#x5904;&#x662F;&#xFF1A;&#x4F60;&#x53EF;&#x4EE5;&#x6E05;&#x6670;&#x5730;&#x770B;&#x5230;&#x6BCF;&#x4E2A;&#x9879;&#x76EE;&#x7684; <strong>Token &#x7528;&#x91CF;&#x3001;&#x8D39;&#x7528;&#x548C;&#x5EF6;&#x8FDF;&#x5B9E;&#x65F6;&#x6570;&#x636E;</strong>&#xFF0C;&#x518D;&#x4E5F;&#x4E0D;&#x4F1A;&#x9762;&#x5BF9;&#x4E00;&#x56E2;&#x4E71;&#x9EBB;&#x7684;&#x8D26;&#x5355;&#x53D1;&#x6101;&#x4E86;&#x3002;<strong>&#x7ED3;&#x8BED;</strong>&#x65E0;&#x8BBA;&#x4F60;&#x662F;&#x4E2A;&#x4EBA;&#x5F00;&#x53D1;&#x8005;&#x8FDB;&#x884C;&#x5C0F;&#x89C4;&#x6A21;&#x6D4B;&#x8BD5;&#xFF0C;&#x8FD8;&#x662F;&#x4F01;&#x4E1A;&#x7EA7;&#x4E1A;&#x52A1;&#x9700;&#x8981;&#x4E13;&#x5C5E;&#x7684;&#x9AD8;&#x5E76;&#x53D1;&#x901A;&#x9053;&#x4E0E;&#x79C1;&#x6709;&#x5316;&#x90E8;&#x7F72;&#xFF0C;CloudHarb &#x90FD;&#x63D0;&#x4F9B;&#x4E86;&#x6781;&#x5177;&#x5F39;&#x6027;&#x7684;&#x5B9A;&#x4EF7;&#x65B9;&#x6848;&#x3002;<strong>&#x73B0;&#x5728;&#x6CE8;&#x518C;&#x5373;&#x53EF;&#x5373;&#x523B;&#x5F00;&#x59CB;&#x4F53;&#x9A8C;&#xFF0C;&#x65E0;&#x9700;&#x4FE1;&#x7528;&#x5361;&#xFF0C;&#x968F;&#x65F6;&#x53EF;&#x4EE5;&#x53D6;&#x6D88;&#x3002;</strong></p><p>&#x1F449; <a href="https://cloudharb.com/?ref=liangbo.me" rel="noreferrer">&#x7ACB;&#x5373;&#x524D;&#x5F80; CloudHarb &#x5B98;&#x7F51;</a></p>]]></content:encoded></item><item><title><![CDATA[使用GTP 3.5 Turbo来进行Fine Tuning(微调)]]></title><description><![CDATA[GPT 3.5 Turbo 的微调功能已经上线有一段时间了。本文我们将讨论如何开始进行微调，包括使用场景和示例。]]></description><link>https://liangbo.me/shi-yong-gtp-3-5-turbolai-jin-xing-fine-tuning/</link><guid isPermaLink="false">66860f1cb6891c0001494cb5</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Mon, 24 Jun 2024 03:41:47 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-p3g7c0lshxcgz0hzw0xhxq.png" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-p3g7c0lshxcgz0hzw0xhxq.png" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)"><p>GPT 3.5 Turbo &#x7684;&#x5FAE;&#x8C03;&#x529F;&#x80FD;&#x5DF2;&#x7ECF;&#x4E0A;&#x7EBF;&#x6709;&#x4E00;&#x6BB5;&#x65F6;&#x95F4;&#x4E86;&#x3002;&#x672C;&#x6587;&#x6211;&#x4EEC;&#x5C06;&#x8BA8;&#x8BBA;&#x5982;&#x4F55;&#x5F00;&#x59CB;&#x8FDB;&#x884C;&#x5FAE;&#x8C03;&#xFF0C;&#x5305;&#x62EC;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x548C;&#x793A;&#x4F8B;&#x3002;</p><p><strong>Fine Tuning(&#x5FAE;&#x8C03;)</strong>&#x7684;&#x6982;&#x5FF5;&#x662F;&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x5305;&#x542B;&#x6A21;&#x578B;&#x8F93;&#x51FA;&#x7684;&#x8BAD;&#x7EC3;&#x793A;&#x4F8B;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x9488;&#x5BF9;&#x7279;&#x5B9A;&#x7684;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x6539;&#x8FDB;&#x6A21;&#x578B;&#x7684;&#x8868;&#x73B0;&#x3002;&#x6B63;&#x5982; OpenAI &#x6240;&#x5F3A;&#x8C03;&#x7684;&#x90A3;&#x6837;&#xFF1A;</p><blockquote>Early tests have shown a fine-tuned version of GPT-3.5 Turbo can match, or even outperform, base GPT-4-level capabilities on certain narrow tasks.</blockquote><p>OpenAI&#x63D0;&#x5230;, &#x901A;&#x8FC7;&#x65E9;&#x671F;&#x6D4B;&#x8BD5;&#x7ED3;&#x679C;&#x53D1;&#x73B0;&#xFF0C;&#x7ECF;&#x8FC7;&#x5FAE;&#x8C03;&#x7684; GPT-3.5 Turbo &#x5728;&#x67D0;&#x4E9B;&#x7279;&#x5B9A;&#x4EFB;&#x52A1;&#x4E0A;&#x53EF;&#x4EE5;&#x8FBE;&#x5230;&#x751A;&#x81F3;&#x8D85;&#x8FC7;&#x57FA;&#x7840;&#x7248; GPT-4 &#x7684;&#x6027;&#x80FD;&#x6C34;&#x5E73;&#x3002;</p><p>&#x63A5;&#x4E0B;&#x6765;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x8BE6;&#x7EC6;&#x8BA8;&#x8BBA;&#x4EC0;&#x4E48;&#x662F;&#x5FAE;&#x8C03;&#x3001;&#x5FAE;&#x8C03;&#x7684;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x548C;&#x793A;&#x4F8B;&#xFF0C;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x5F00;&#x59CB;&#x81EA;&#x5DF1;&#x7684;&#x5FAE;&#x8C03;&#x9879;&#x76EE;&#x3002;</p><ul><li>&#x4EC0;&#x4E48;&#x662F; GPT 3.5 Turbo &#x5FAE;&#x8C03;&#xFF1F;</li><li>GPT 3.5 Turbo &#x5FAE;&#x8C03;&#x662F;&#x5982;&#x4F55;&#x5DE5;&#x4F5C;&#x7684;&#xFF1F;</li><li>GPT 3.5 Turbo &#x5FAE;&#x8C03;&#x7684;&#x4F7F;&#x7528;&#x573A;&#x666F;?</li><li>&#x5982;&#x4F55;&#x5F00;&#x59CB;&#x8FDB;&#x884C; GPT 3.5 Turbo &#x5FAE;&#x8C03;?</li></ul><hr><h3 id="%E4%BB%80%E4%B9%88%E6%98%AF-gpt-35-turbo-%E5%BE%AE%E8%B0%83%EF%BC%9F">&#x4EC0;&#x4E48;&#x662F; GPT 3.5 Turbo &#x5FAE;&#x8C03;&#xFF1F;</h3><p>&#x5FAE;&#x8C03;&#x662F;&#x6307;&#x7528;&#x7279;&#x5B9A;&#x4E8E;&#x60A8;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x7684;&#x793A;&#x4F8B;&#x6765;&#x8FDB;&#x4E00;&#x6B65;&#x4F18;&#x5316;&#x4E00;&#x4E2A;&#x5DF2;&#x7ECF;&#x9884;&#x8BAD;&#x7EC3;&#x7684;&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#xFF08;&#x5982; GPT 3.5 Turbo&#xFF09;&#x7684;&#x8FC7;&#x7A0B;&#x3002;&#x60A8;&#x53EF;&#x80FD;&#x77E5;&#x9053;&#xFF0C;GPT &#x6A21;&#x578B;&#x662F;&#x901A;&#x8FC7;&#x51E0;&#x4E4E;&#x6574;&#x4E2A;&#x4E92;&#x8054;&#x7F51;&#x7684;&#x6587;&#x672C;&#x6570;&#x636E;&#x8FDB;&#x884C;&#x8BAD;&#x7EC3;&#x7684;&#x3002;</p><p>&#x867D;&#x7136;&#x8FD9;&#x4E9B;&#x6A21;&#x578B;&#x672C;&#x8EAB;&#x5DF2;&#x7ECF;&#x975E;&#x5E38;&#x51FA;&#x8272;&#xFF0C;&#x4F46;&#x901A;&#x8FC7;&#x5FAE;&#x8C03;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x7279;&#x5B9A;&#x4EFB;&#x52A1;&#x5BF9;&#x6A21;&#x578B;&#x8FDB;&#x884C;&#x5B9A;&#x5236;&#xFF0C;&#x4ECE;&#x800C;&#x751F;&#x6210;&#x66F4;&#x53EF;&#x9760;&#x7684;&#x8F93;&#x51FA;&#x3002;</p><blockquote>&#x5FAE;&#x8C03;&#x662F;&#x6307;&#x5728;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x3001;&#x66F4;&#x5C0F;&#x7684;&#x5B9A;&#x5236;&#x6570;&#x636E;&#x96C6;&#x4E0A;&#x5BF9;&#x5DF2;&#x7ECF;&#x9884;&#x8BAD;&#x7EC3;&#x7684;&#x6A21;&#x578B;&#x8FDB;&#x884C;&#x8BAD;&#x7EC3;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C;&#x4EE5;&#x4F7F;&#x5176;&#x9002;&#x5E94;&#x7279;&#x5B9A;&#x4EFB;&#x52A1;&#x6216;&#x8868;&#x73B0;&#x51FA;&#x7279;&#x5B9A;&#x7684;&#x884C;&#x4E3A;&#x3002;</blockquote><p>&#x4F8B;&#x5982;&#xFF0C;&#x54C1;&#x724C;&#x53EF;&#x80FD;&#x5E0C;&#x671B;&#x5BF9; GPT 3.5 Turbo &#x8FDB;&#x884C;&#x5FAE;&#x8C03;&#xFF0C;&#x4EE5;&#x5339;&#x914D;&#x4E00;&#x81F4;&#x7684;&#x8BED;&#x8C03;&#xFF0C;&#x63D0;&#x4F9B;&#x5177;&#x6709;&#x7279;&#x5B9A;&#x683C;&#x5F0F;&#x7684;&#x66F4;&#x53EF;&#x9760;&#x8F93;&#x51FA;&#x7B49;&#x3002;</p><p>&#x5FAE;&#x8C03;&#x6700;&#x6210;&#x529F;&#x7684;&#x5E94;&#x7528;&#x4E4B;&#x4E00;&#x6765;&#x81EA; OpenAI &#x81EA;&#x8EAB;&#xFF08;&#x5F53;&#x7136;&#xFF09;&#xFF0C;&#x4ED6;&#x4EEC;&#x901A;&#x8FC7; Function Calling &#x529F;&#x80FD;&#x5C55;&#x73B0;&#x4E86;&#x8FD9;&#x4E00;&#x70B9;&#x3002;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x4ED6;&#x4EEC;&#x5BF9; gpt-3.5-turbo-0613 &#x548C; gpt-4&#x2013;0613 &#x6A21;&#x578B;&#x8FDB;&#x884C;&#x4E86;&#x5FAE;&#x8C03;&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x591F;&#x667A;&#x80FD;&#x5730;&#x9009;&#x62E9;&#x8F93;&#x51FA;&#x5305;&#x542B;&#x8C03;&#x7528;&#x51FD;&#x6570;&#x53C2;&#x6570;&#x7684; JSON &#x5BF9;&#x8C61;&#x3002;</p><p>&#x603B;&#x4E4B;&#xFF0C;OpenAI &#x5F3A;&#x8C03;&#xFF0C;&#x5FAE;&#x8C03;&#x63D0;&#x4F9B;&#x4E86;&#x4EE5;&#x4E0B;&#x51E0;&#x4E2A;&#x597D;&#x5904;&#xFF1A;</p><ol><li><strong>&#x66F4;&#x9AD8;&#x8D28;&#x91CF;&#x7684;&#x7ED3;&#x679C;</strong>&#xFF1A;&#x76F8;&#x6BD4;&#x76F4;&#x63A5;&#x63D0;&#x793A;&#xFF0C;&#x5FAE;&#x8C03;&#x80FD;&#x591F;&#x4EA7;&#x751F;&#x66F4;&#x9AD8;&#x8D28;&#x91CF;&#x7684;&#x8F93;&#x51FA;&#x3002;</li><li><strong>&#x80FD;&#x591F;&#x8BAD;&#x7EC3;&#x66F4;&#x591A;&#x793A;&#x4F8B;</strong>&#xFF1A;&#x5FAE;&#x8C03;&#x5141;&#x8BB8;&#x4F7F;&#x7528;&#x6BD4;&#x5355;&#x4E2A;&#x63D0;&#x793A;&#x4E2D;&#x6240;&#x80FD;&#x5BB9;&#x7EB3;&#x7684;&#x66F4;&#x591A;&#x7684;&#x793A;&#x4F8B;&#x8FDB;&#x884C;&#x8BAD;&#x7EC3;&#x3002;</li><li><strong>&#x8282;&#x7701; Token</strong>&#xFF1A;&#x7531;&#x4E8E;&#x63D0;&#x793A;&#x66F4;&#x77ED;&#xFF0C;&#x5FAE;&#x8C03;&#x80FD;&#x591F;&#x8282;&#x7701; Token &#x7684;&#x4F7F;&#x7528;&#x3002;</li><li><strong>&#x964D;&#x4F4E;&#x5EF6;&#x8FDF;</strong>&#xFF1A;&#x5FAE;&#x8C03;&#x53EF;&#x4EE5;&#x51CF;&#x5C11;&#x8BF7;&#x6C42;&#x7684;&#x5EF6;&#x8FDF;&#x3002;</li></ol><hr><h3 id="gpt-35-turbo-%E5%BE%AE%E8%B0%83%E7%9A%84%E7%A4%BA%E4%BE%8B%E5%92%8C%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF">GPT 3.5 Turbo &#x5FAE;&#x8C03;&#x7684;&#x793A;&#x4F8B;&#x548C;&#x4F7F;&#x7528;&#x573A;&#x666F;</h3><p>&#x6B63;&#x5982;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;&#xFF0C;&#x5FAE;&#x8C03;&#x53EF;&#x4EE5;&#x6539;&#x5584;&#x6A21;&#x578B;&#x5728;&#x7279;&#x5B9A;&#x4EFB;&#x52A1;&#x4E0A;&#x7684;&#x8868;&#x73B0;&#x3002;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E9B;&#x5FAE;&#x8C03;&#x7684;&#x5B9E;&#x9645;&#x5E94;&#x7528;&#x793A;&#x4F8B;&#xFF1A;</p><h4 id="%E6%94%B9%E5%96%84%E7%9A%84%E5%BC%95%E5%AF%BC%E8%83%BD%E5%8A%9B">&#x6539;&#x5584;&#x7684;&#x5F15;&#x5BFC;&#x80FD;&#x529B;</h4><p>&#x5F15;&#x5BFC;&#x80FD;&#x529B;&#x662F;&#x6307;&#x901A;&#x8FC7;&#x6307;&#x4EE4;&#x5C06;&#x6A21;&#x578B;&#x7684;&#x54CD;&#x5E94;&#x5F15;&#x5BFC;&#x5230;&#x7279;&#x5B9A;&#x65B9;&#x5411;&#x6216;&#x7ED3;&#x679C;&#x7684;&#x80FD;&#x529B;&#x3002;</p><p><strong>&#x793A;&#x4F8B;</strong>&#xFF1A;&#x4E00;&#x4E2A;&#x7ECF;&#x8FC7;&#x5F15;&#x5BFC;&#x80FD;&#x529B;&#x5FAE;&#x8C03;&#x7684;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x5BFC;&#x5E08;&#x53EF;&#x4EE5;&#x8C03;&#x6574;&#x5176;&#x56DE;&#x7B54;&#xFF0C;&#x4F7F;&#x4E4B;&#x9002;&#x5E94;&#x4E94;&#x5E74;&#x7EA7;&#x5B66;&#x751F;&#x7684;&#x6C34;&#x5E73;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x63D0;&#x4F9B;&#x590D;&#x6742;&#x7684;&#x5927;&#x5B66;&#x6C34;&#x5E73;&#x89E3;&#x91CA;&#x3002;</p><h4 id="%E5%8F%AF%E9%9D%A0%E7%9A%84%E8%BE%93%E5%87%BA%E6%A0%BC%E5%BC%8F">&#x53EF;&#x9760;&#x7684;&#x8F93;&#x51FA;&#x683C;&#x5F0F;</h4><p>&#x786E;&#x4FDD;&#x6A21;&#x578B;&#x7684;&#x54CD;&#x5E94;&#x5177;&#x6709;&#x4E00;&#x81F4;&#x4E14;&#x9884;&#x671F;&#x7684;&#x7ED3;&#x6784;&#x3002;</p><p><strong>&#x793A;&#x4F8B;</strong>&#xFF1A;&#x4E00;&#x5BB6;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x516C;&#x53F8;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5E26;&#x6709;&#x683C;&#x5F0F;&#x5316;&#x4EE3;&#x7801;&#x7684;&#x6570;&#x636E;&#x96C6;&#x5BF9; GPT-3.5 Turbo &#x8FDB;&#x884C;&#x5FAE;&#x8C03;&#xFF0C;&#x786E;&#x4FDD;&#x7528;&#x6237;&#x5728;&#x7F16;&#x5199; Python &#x6216; JavaScript &#x65F6;&#xFF0C;&#x6A21;&#x578B;&#x80FD;&#x591F;&#x5EFA;&#x8BAE;&#x7B26;&#x5408;&#x8BED;&#x6CD5;&#x7684;&#x8865;&#x5168;&#x3002;</p><h4 id="%E5%AE%9A%E5%88%B6%E8%AF%AD%E8%B0%83">&#x5B9A;&#x5236;&#x8BED;&#x8C03;</h4><p>&#x8C03;&#x6574;&#x6A21;&#x578B;&#x4EE5;&#x53CD;&#x6620;&#x7279;&#x5B9A;&#x54C1;&#x724C;&#x6216;&#x8BED;&#x8C03;&#x3002;</p><p><strong>&#x793A;&#x4F8B;</strong>&#xFF1A;Old Spice &#x54C1;&#x724C;&#x901A;&#x8FC7;&#x5FAE;&#x8C03; GPT-3.5 Turbo &#x5F00;&#x53D1;&#x4E00;&#x4E2A;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#xFF0C;&#x8BE5;&#x673A;&#x5668;&#x4EBA;&#x4EE5;&#x5E7D;&#x9ED8;&#x548C;&#x53E4;&#x602A;&#x7684;&#x65B9;&#x5F0F;&#x56DE;&#x5E94;&#xFF0C;&#x53CD;&#x6620;&#x51FA;&#x4ED6;&#x4EEC;&#x72EC;&#x7279;&#x7684;&#x54C1;&#x724C;&#x8BED;&#x8C03;&#x3002;</p><h4 id="%E6%88%90%E6%9C%AC%E6%95%88%E7%9B%8A%E8%BE%93%E5%87%BA">&#x6210;&#x672C;&#x6548;&#x76CA;&#x8F93;&#x51FA;</h4><p>&#x8C03;&#x6574;&#x6A21;&#x578B;&#x4EE5;&#x63D0;&#x4F9B;&#x7B80;&#x6D01;&#x7684;&#x8F93;&#x51FA;&#xFF0C;&#x4ECE;&#x800C;&#x8282;&#x7701; API &#x6210;&#x672C;&#x3002;</p><p><strong>&#x793A;&#x4F8B;</strong>&#xFF1A;&#x4E00;&#x5BB6;&#x5A92;&#x4F53;&#x516C;&#x53F8;&#x901A;&#x8FC7;&#x5FAE;&#x8C03; GPT-3.5 Turbo &#x63D0;&#x4F9B;&#x7B80;&#x77ED;&#x7684;&#x65B0;&#x95FB;&#x6458;&#x8981;&#xFF0C;&#x786E;&#x4FDD;&#x66F4;&#x5FEB;&#x7684; API &#x8C03;&#x7528;&#x548C;&#x51CF;&#x5C11;&#x9AD8;&#x6D41;&#x91CF;&#x79FB;&#x52A8;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x7684;&#x6210;&#x672C;&#x3002;</p><p>&#x6B63;&#x5982;&#x4F60;&#x6240;&#x770B;&#x5230;&#x7684;&#xFF0C;&#x5FAE;&#x8C03;&#x7684;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x975E;&#x5E38;&#x5E7F;&#x6CDB;&#xFF0C;&#x51E0;&#x4E4E;&#x9002;&#x7528;&#x4E8E;&#x4EFB;&#x4F55;&#x8BA4;&#x771F;&#x8003;&#x8651;&#x5C06; GPT &#x6A21;&#x578B;&#x96C6;&#x6210;&#x5230;&#x5176;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6216;&#x4E1A;&#x52A1;&#x4E2D;&#x7684;&#x4F01;&#x4E1A;&#x3002;</p><hr><h3 id="gpt-35-turbo-%E5%BE%AE%E8%B0%83%E7%9A%84%E5%AE%9A%E4%BB%B7">GPT-3.5 Turbo &#x5FAE;&#x8C03;&#x7684;&#x5B9A;&#x4EF7;</h3><p>&#x5FAE;&#x8C03;&#x7684;&#x6210;&#x672C;&#x7ED3;&#x6784;&#x5982;&#x4E0B;&#xFF1A;</p><ul><li><strong>&#x8BAD;&#x7EC3;&#x6210;&#x672C;</strong>&#xFF1A;&#x6BCF; 1,000 &#x4E2A; Token &#x6536;&#x8D39; $0.008</li><li><strong>&#x4F7F;&#x7528;&#x6210;&#x672C;</strong>&#xFF1A;</li><li>&#x8F93;&#x5165;&#xFF1A;&#x6BCF; 1,000 &#x4E2A; Token &#x6536;&#x8D39; $0.012</li><li>&#x8F93;&#x51FA;&#xFF1A;&#x6BCF; 1,000 &#x4E2A; Token &#x6536;&#x8D39; $0.016</li></ul><p>&#x4F8B;&#x5982;&#xFF0C;&#x5982;&#x679C;&#x60A8;&#x4F7F;&#x7528;&#x5305;&#x542B; 100,000 &#x4E2A; Token &#x7684;&#x8BAD;&#x7EC3;&#x6587;&#x4EF6;&#x5BF9; GPT-3.5 Turbo &#x8FDB;&#x884C;&#x5FAE;&#x8C03;&#xFF0C;&#x5E76;&#x8FD0;&#x884C; 3 &#x4E2A; epoch&#xFF0C;&#x9884;&#x8BA1;&#x8BAD;&#x7EC3;&#x6210;&#x672C;&#x7EA6;&#x4E3A; $2.40&#x3002;</p><h3 id="%E9%80%90%E6%AD%A5%E6%8C%87%E5%8D%97%EF%BC%9A%E5%A6%82%E4%BD%95%E5%AF%B9-gpt-35-turbo-%E8%BF%9B%E8%A1%8C%E5%BE%AE%E8%B0%83">&#x9010;&#x6B65;&#x6307;&#x5357;&#xFF1A;&#x5982;&#x4F55;&#x5BF9; GPT-3.5 Turbo &#x8FDB;&#x884C;&#x5FAE;&#x8C03;</h3><p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x77E5;&#x9053;&#x4E86;&#x4EC0;&#x4E48;&#x662F;&#x5FAE;&#x8C03;&#xFF0C;&#x5E76;&#x4E14;&#x6709;&#x4E86;&#x4E00;&#x4E9B;&#x5B9E;&#x9645;&#x793A;&#x4F8B;&#xFF0C;&#x4E0B;&#x9762;&#x662F;&#x5F00;&#x59CB;&#x4F7F;&#x7528; GPT-3.5 Turbo &#x8FDB;&#x884C;&#x5FAE;&#x8C03;&#x7684;&#x8BE6;&#x7EC6;&#x6B65;&#x9AA4;&#xFF1A;</p><ol><li>&#x51C6;&#x5907;&#x60A8;&#x7684;&#x6570;&#x636E;</li><li>&#x4E0A;&#x4F20;&#x6587;&#x4EF6;</li><li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5FAE;&#x8C03;&#x4EFB;&#x52A1;</li><li>&#x90E8;&#x7F72;&#x5FAE;&#x8C03;&#x540E;&#x7684;&#x6A21;&#x578B;</li></ol><h4 id="%E6%AD%A5%E9%AA%A4-1%EF%BC%9A%E5%87%86%E5%A4%87%E6%82%A8%E7%9A%84%E6%95%B0%E6%8D%AE">&#x6B65;&#x9AA4; 1&#xFF1A;&#x51C6;&#x5907;&#x60A8;&#x7684;&#x6570;&#x636E;</h4><p>&#x4E0E;&#x4EE5;&#x5F80;&#x7684; GPT &#x5FAE;&#x8C03;&#x4E0D;&#x540C;&#xFF0C;&#x4F7F;&#x7528; 3.5 Turbo &#x6211;&#x4EEC;&#x9700;&#x8981;&#x6309;&#x7167;&#x5BF9;&#x8BDD;&#x6D41;&#x7A0B;&#x6765;&#x7ED3;&#x6784;&#x5316;&#x8BAD;&#x7EC3;&#xFF0C;&#x5F15;&#x5BFC;&#x6A21;&#x578B;&#x7684;&#x884C;&#x4E3A;&#x3002;&#x4E3A;&#x6B64;&#xFF0C;&#x6211;&#x4EEC;&#x4F7F;&#x7528; GPT 3.5 Turbo &#x7684;&#x6D88;&#x606F;&#x8F93;&#x5165;&#xFF1A;</p><p>&#x804A;&#x5929;&#x6A21;&#x578B;&#x5C06;&#x4E00;&#x7CFB;&#x5217;&#x6D88;&#x606F;&#x4F5C;&#x4E3A;&#x8F93;&#x5165;&#xFF0C;&#x5E76;&#x8FD4;&#x56DE;&#x6A21;&#x578B;&#x751F;&#x6210;&#x7684;&#x6D88;&#x606F;&#x4F5C;&#x4E3A;&#x8F93;&#x51FA;&#x3002;&#x867D;&#x7136;&#x804A;&#x5929;&#x683C;&#x5F0F;&#x65E8;&#x5728;&#x4F7F;&#x591A;&#x8F6E;&#x5BF9;&#x8BDD;&#x53D8;&#x5F97;&#x7B80;&#x5355;&#xFF0C;&#x4F46;&#x5BF9;&#x4E8E;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x5BF9;&#x8BDD;&#x7684;&#x5355;&#x8F6E;&#x4EFB;&#x52A1;&#x540C;&#x6837;&#x6709;&#x7528;&#x3002;</p><p>&#x603B;&#x7ED3;&#x4E00;&#x4E0B;&#xFF0C;&#x8FD9;&#x91CC;&#x662F;&#x6BCF;&#x4E2A;&#x6D88;&#x606F;&#x89D2;&#x8272;&#x7684;&#x4F5C;&#x7528;&#xFF1A;</p><ul><li>&#x7CFB;&#x7EDF;&#x6D88;&#x606F;&#x5E2E;&#x52A9;&#x8BBE;&#x7F6E;&#x52A9;&#x624B;&#x7684;&#x884C;&#x4E3A;&#x3002;</li><li>&#x7528;&#x6237;&#x6D88;&#x606F;&#x63D0;&#x4F9B;&#x8BF7;&#x6C42;&#xFF0C;&#x4F9B;&#x52A9;&#x624B;&#x56DE;&#x5E94;&#x3002;</li><li>&#x52A9;&#x624B;&#x6D88;&#x606F;&#x5B58;&#x50A8;&#x5148;&#x524D;&#x7684;&#x804A;&#x5929;&#x54CD;&#x5E94;&#xFF0C;&#x5E76;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x7ED9;&#x51FA;&#x6240;&#x9700;&#x884C;&#x4E3A;&#x7684;&#x793A;&#x4F8B;&#x3002;</li></ul><p>&#x53EF;&#x4EE5;&#x770B;&#x51FA;&#xFF0C;&#x4E3A;&#x4E86;&#x5FAE;&#x8C03;&#x7684;&#x76EE;&#x7684;&#xFF0C;&#x76EE;&#x6807;&#x662F;&#x63D0;&#x4F9B;&#x7528;&#x6237;&#x8F93;&#x5165;&#x548C;&#x671F;&#x671B;&#x7684;&#x52A9;&#x624B;&#x54CD;&#x5E94;&#x7684;&#x793A;&#x4F8B;&#x3002;&#x4F8B;&#x5982;&#xFF0C;OpenAI &#x63D0;&#x4F9B;&#x4E86;&#x4EE5;&#x4E0B;&#x793A;&#x4F8B;&#xFF0C;&#x7528;&#x4E8E;&#x5FAE;&#x8C03;&#x4E00;&#x4E2A;&#x5076;&#x5C14;&#x62FC;&#x5199;&#x9519;&#x8BEF;&#x7684;&#x52A9;&#x624B;&#xFF08;&#x975E;&#x5E38;&#x5B9E;&#x7528;&#xFF0C;&#x6211;&#x77E5;&#x9053;&#xFF09;&#xFF1A;</p><pre><code class="language-json">{ 
  &quot;messages&quot;: [ 
    { &quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;You are an assistant that occasionally misspells words&quot; }, 
    { &quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Tell me a story.&quot; }, 
    { &quot;role&quot;: &quot;assistant&quot;, &quot;content&quot;: &quot;One day a student went to schoool.&quot; } 
  ] 
}</code></pre><p>&#x8FD9;&#x91CC;&#x662F;&#x4ED6;&#x4EEC;&#x5FAE;&#x8C03;&#x6587;&#x6863;&#x4E2D;&#x7684;&#x53E6;&#x4E00;&#x4E2A;&#x4F8B;&#x5B50;&#xFF0C;&#x7528;&#x4E8E;&#x5FAE;&#x8C03;&#x65E2;&#x4E25;&#x8C28;&#x53C8;&#x5E26;&#x70B9;&#x8BBD;&#x523A;&#x7684;&#x52A9;&#x624B;&#xFF1A;</p><pre><code class="language-json">{&quot;messages&quot;: [{&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;Marv is a factual chatbot that is also sarcastic.&quot;}, {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;What&apos;s the capital of France?&quot;}, {&quot;role&quot;: &quot;assistant&quot;, &quot;content&quot;: &quot;Paris, as if everyone doesn&apos;t know that already.&quot;}]} 
{&quot;messages&quot;: [{&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;Marv is a factual chatbot that is also sarcastic.&quot;}, {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Who wrote &apos;Romeo and Juliet&apos;?&quot;}, {&quot;role&quot;: &quot;assistant&quot;, &quot;content&quot;: &quot;Oh, just some guy named William Shakespeare. Ever heard of him?&quot;}]}</code></pre><p>&#x5728;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6709;&#x4E09;&#x4E2A;&#x8BAD;&#x7EC3;&#x793A;&#x4F8B;&#xFF08;&#x5373;&#x5BF9;&#x8BDD;&#xFF09;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x4F5C;&#x8BAD;&#x7EC3;&#x96C6;&#x3002;&#x73B0;&#x5728;&#xFF0C;&#x95EE;&#x9898;&#x662F;&#x2026;</p><h4 id="%E5%AF%B9%E4%BA%8E-gpt-35-turbo-%E7%9A%84%E5%BE%AE%E8%B0%83%EF%BC%8C%E6%82%A8%E5%BA%94%E8%AF%A5%E6%8F%90%E4%BE%9B%E5%A4%9A%E5%B0%91%E8%AE%AD%E7%BB%83%E7%A4%BA%E4%BE%8B%EF%BC%9F">&#x5BF9;&#x4E8E; GPT-3.5-turbo &#x7684;&#x5FAE;&#x8C03;&#xFF0C;&#x60A8;&#x5E94;&#x8BE5;&#x63D0;&#x4F9B;&#x591A;&#x5C11;&#x8BAD;&#x7EC3;&#x793A;&#x4F8B;&#xFF1F;</h4><p>OpenAI &#x5EFA;&#x8BAE;&#x81F3;&#x5C11;&#x63D0;&#x4F9B; 10 &#x4E2A;&#x8BAD;&#x7EC3;&#x793A;&#x4F8B;&#xFF0C;&#x5C3D;&#x7BA1;&#x6B63;&#x5982;&#x4ED6;&#x4EEC;&#x5F3A;&#x8C03;&#x7684;&#x90A3;&#x6837;&#xFF1A;</p><p>&#x901A;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x4F7F;&#x7528; gpt-3.5-turbo &#x8FDB;&#x884C;&#x5FAE;&#x8C03;&#xFF0C;&#x5728; 50 &#x5230; 100 &#x4E2A;&#x8BAD;&#x7EC3;&#x793A;&#x4F8B;&#x4E0A;&#x901A;&#x5E38;&#x4F1A;&#x770B;&#x5230;&#x660E;&#x663E;&#x7684;&#x6539;&#x5584;&#xFF0C;&#x4F46;&#x6B63;&#x786E;&#x7684;&#x6570;&#x91CF;&#x4F1A;&#x6839;&#x636E;&#x5177;&#x4F53;&#x7684;&#x4F7F;&#x7528;&#x6848;&#x4F8B;&#x800C;&#x6709;&#x5F88;&#x5927;&#x53D8;&#x5316;&#x3002;</p><p>&#x6839;&#x636E;&#x6211;&#x4EE5;&#x5F80;&#x7684;&#x5FAE;&#x8C03;&#x7ECF;&#x9A8C;&#xFF0C;&#x6211;&#x901A;&#x5E38;&#x4F1A;&#x4F7F;&#x7528;&#x81F3;&#x5C11; 100 &#x4E2A;&#x793A;&#x4F8B;&#x6765;&#x83B7;&#x5F97;&#x6700;&#x4F73;&#x7ED3;&#x679C;&#xFF0C;&#x6709;&#x65F6;&#x751A;&#x81F3;&#x4F1A;&#x4F7F;&#x7528;&#x8D85;&#x8FC7; 10,000 &#x4E2A;&#x8BAD;&#x7EC3;&#x793A;&#x4F8B;&#x3002;</p><p>&#x597D;&#x4E86;&#xFF0C;&#x5F53;&#x6211;&#x4EEC;&#x6709;&#x4E86;&#x8BAD;&#x7EC3;&#x793A;&#x4F8B;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5C06;&#x5176;&#x4FDD;&#x5B58;&#x5728;&#x4E00;&#x4E2A; JSONL &#x6587;&#x4EF6;&#x4E2D;&#x3002;&#x5728;&#x8FD9;&#x4E2A;&#x6F14;&#x793A;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x5C06;&#x6D4B;&#x8BD5;&#x8FD9;&#x4E2A;&#x65E2;&#x4E25;&#x8C28;&#x53C8;&#x5E26;&#x70B9;&#x8BBD;&#x523A;&#x7684;&#x52A9;&#x624B;&#xFF0C;&#x5E76;&#x521B;&#x5EFA; 7 &#x4E2A;&#x7C7B;&#x4F3C;&#x7684;&#x793A;&#x4F8B;&#xFF0C;&#x4EE5;&#x8FBE;&#x5230;&#x81F3;&#x5C11; 10 &#x4E2A;&#x7684;&#x6700;&#x4F4E;&#x8981;&#x6C42;&#x3002;</p><p>&#x5728;&#x521B;&#x5EFA;&#x5FAE;&#x8C03;&#x4EFB;&#x52A1;&#x4E4B;&#x524D;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x6570;&#x636E;&#x683C;&#x5F0F;&#x5316;&#x811A;&#x672C;&#x6765;&#x786E;&#x4FDD;&#x6211;&#x4EEC;&#x7684;&#x683C;&#x5F0F;&#x6B63;&#x786E;&#x3002;</p><p>&#x597D;&#x7684;&#xFF0C;&#x770B;&#x8D77;&#x6765;&#x4E0D;&#x9519;&#xFF0C;&#x73B0;&#x5728;&#x8FDB;&#x5165;&#x4E0B;&#x4E00;&#x6B65;&#xFF0C;&#x4E0A;&#x4F20;&#x6211;&#x4EEC;&#x7684; JSONL &#x6587;&#x4EF6;&#x3002;</p><h4 id="%E6%AD%A5%E9%AA%A4-2%EF%BC%9A%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6">&#x6B65;&#x9AA4; 2&#xFF1A;&#x4E0A;&#x4F20;&#x6587;&#x4EF6;</h4><p>&#x63A5;&#x4E0B;&#x6765;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x4F7F;&#x7528; OpenAI &#x7684; API &#x4E0A;&#x4F20;&#x6211;&#x4EEC;&#x7684;&#x7ED3;&#x6784;&#x5316;&#x6570;&#x636E;&#xFF0C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF0C;&#x8BF7;&#x6CE8;&#x610F;&#x5728;&#x8FD0;&#x884C;&#x4E4B;&#x524D;&#x60A8;&#x9700;&#x8981;&#x8BBE;&#x7F6E;&#x60A8;&#x7684; OpenAI API &#x5BC6;&#x94A5;&#xFF1A;</p><pre><code class="language-python">openai.File.create( 
  file=open(&quot;/content/fine_tuning_data.jsonl&quot;, &quot;rb&quot;), 
  purpose=&apos;fine-tune&apos; 
)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-xatuy5wnxzczkuo8g7877a.png" class="kg-image" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)" loading="lazy" width="800" height="325" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-xatuy5wnxzczkuo8g7877a.png 600w, https://liangbo.me/content/images/2024/07/1-xatuy5wnxzczkuo8g7877a.png 800w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E6%AD%A5%E9%AA%A4-3%EF%BC%9A%E5%88%9B%E5%BB%BA%E5%BE%AE%E8%B0%83%E4%BB%BB%E5%8A%A1">&#x6B65;&#x9AA4; 3&#xFF1A;&#x521B;&#x5EFA;&#x5FAE;&#x8C03;&#x4EFB;&#x52A1;</h4><p>&#x5728;&#x4E0A;&#x4F20;&#x6211;&#x4EEC;&#x7684;&#x8BAD;&#x7EC3;&#x6570;&#x636E;&#x4E4B;&#x540E;&#xFF0C;&#x73B0;&#x5728;&#x8BA9;&#x6211;&#x4EEC;&#x6309;&#x7167;&#x4EE5;&#x4E0B;&#x6B65;&#x9AA4;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5FAE;&#x8C03;&#x4EFB;&#x52A1;&#xFF0C;&#x60A8;&#x53EA;&#x9700;&#x66F4;&#x65B0; file-abc123&#xFF0C;&#x5C06;&#x5176;&#x66FF;&#x6362;&#x4E3A;&#x524D;&#x4E00;&#x6B65;&#x751F;&#x6210;&#x7684;&#x6587;&#x4EF6; ID&#xFF1A;</p><pre><code class="language-python">openai.api_key = os.getenv(&quot;OPENAI_API_KEY&quot;) 
openai.FineTuningJob.create(training_file=&quot;file-abc123&quot;, model=&quot;gpt-3.5-turbo&quot;)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-wd4w66hwkl1vydfczmp2xa.png" class="kg-image" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)" loading="lazy" width="800" height="323" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-wd4w66hwkl1vydfczmp2xa.png 600w, https://liangbo.me/content/images/2024/07/1-wd4w66hwkl1vydfczmp2xa.png 800w" sizes="(min-width: 720px) 720px"></figure><p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x72B6;&#x6001;&#x5DF2;&#x521B;&#x5EFA;&#xFF0C;&#x53EA;&#x9700;&#x7B49;&#x5F85;&#x51E0;&#x5206;&#x949F;&#x5B8C;&#x6210;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x53EF;&#x4EE5;&#x6309;&#x4EE5;&#x4E0B;&#x65B9;&#x5F0F;&#x68C0;&#x67E5;&#x72B6;&#x6001;&#xFF1A;</p><pre><code class="language-bash">openai.FineTuningJob.retrieve(&quot;ft-abc123&quot;)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-3nla_hr-zlwg-q_bqcykha.png" class="kg-image" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)" loading="lazy" width="800" height="341" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-3nla_hr-zlwg-q_bqcykha.png 600w, https://liangbo.me/content/images/2024/07/1-3nla_hr-zlwg-q_bqcykha.png 800w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E6%AD%A5%E9%AA%A4-4%EF%BC%9A%E4%BD%BF%E7%94%A8%E5%BE%AE%E8%B0%83%E5%90%8E%E7%9A%84%E6%A8%A1%E5%9E%8B">&#x6B65;&#x9AA4; 4&#xFF1A;&#x4F7F;&#x7528;&#x5FAE;&#x8C03;&#x540E;&#x7684;&#x6A21;&#x578B;</h4><p>&#x73B0;&#x5728;&#x5FAE;&#x8C03;&#x4EFB;&#x52A1;&#x5DF2;&#x5B8C;&#x6210;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x6309;&#x4EE5;&#x4E0B;&#x6B65;&#x9AA4;&#x8FDB;&#x884C;&#x6D4B;&#x8BD5;&#xFF0C;&#x6CE8;&#x610F;&#x60A8;&#x9700;&#x8981;&#x66F4;&#x65B0;&#x6B64;&#x5904;&#x7684; OpenAI &#x7EC4;&#x7EC7;&#x7F16;&#x53F7;&#x4EE5;&#x53CA;&#x5FAE;&#x8C03;&#x4EFB;&#x52A1;&#x7684;&#x81EA;&#x5B9A;&#x4E49; ID<code>ft:gpt-3.5-turbo:my-org:custom_suffix:id</code>:</p><pre><code class="language-python">completion = openai.ChatCompletion.create( 
  model=&quot;ft:gpt-3.5-turbo:my-org:custom_suffix:id&quot;, 
  messages=[ 
    {&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;Marv is a factual chatbot that is also sarcastic.&quot;}, 
    {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;What&apos;s the capital of France?&quot;} 
  ] 
) 
 
print(completion.choices[0].message)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-aoqkn-e3qlsme9xkmgxota.png" class="kg-image" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)" loading="lazy" width="800" height="102" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-aoqkn-e3qlsme9xkmgxota.png 600w, https://liangbo.me/content/images/2024/07/1-aoqkn-e3qlsme9xkmgxota.png 800w" sizes="(min-width: 720px) 720px"></figure><p>&#x73B0;&#x5728;&#x5F88;&#x96BE;&#x8BF4;&#x662F;&#x5FAE;&#x8C03;&#x8FD8;&#x662F;&#x7CFB;&#x7EDF;&#x6D88;&#x606F;&#x5BFC;&#x81F4;&#x4E86;&#x8FD9;&#x4E2A;&#x54CD;&#x5E94;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x53EA;&#x63D0;&#x4F9B;&#x4E86; 10 &#x4E2A;&#x793A;&#x4F8B;&#xFF0C;&#x6240;&#x4EE5;&#x9700;&#x8981;&#x8FDB;&#x884C;&#x66F4;&#x6DF1;&#x5165;&#x7684;&#x5B9E;&#x9A8C;&#xFF0C;&#x8FD9;&#x5C06;&#x5728;&#x672A;&#x6765;&#x7684;&#x6307;&#x5357;&#x4E2D;&#x8FDB;&#x884C;&#x8BA8;&#x8BBA;&#x3002;</p><hr><h3 id="%E6%80%BB%E7%BB%93%EF%BC%9Agpt-35-turbo-%E5%BE%AE%E8%B0%83">&#x603B;&#x7ED3;&#xFF1A;GPT 3.5 Turbo &#x5FAE;&#x8C03;</h3><p>&#x867D;&#x7136;&#x5FAE;&#x8C03;&#x662F;&#x63D0;&#x793A;&#x5DE5;&#x7A0B;&#x5E08;&#x5DE5;&#x5177;&#x5305;&#x4E2D;&#x7684;&#x4E00;&#x4E2A;&#x5F3A;&#x5927;&#x5DE5;&#x5177;&#xFF0C;&#x4F46;&#x9700;&#x8981;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;&#x5728;&#x8BD5;&#x56FE;&#x63D0;&#x9AD8;&#x6A21;&#x578B;&#x6027;&#x80FD;&#x65F6;&#xFF0C;&#x901A;&#x5E38;&#x4E0D;&#x5E94;&#x603B;&#x662F;&#x5C06;&#x5FAE;&#x8C03;&#x4F5C;&#x4E3A;&#x7B2C;&#x4E00;&#x9009;&#x62E9;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x6211;&#x5EFA;&#x8BAE;&#x5148;&#x4ECE;&#x4E00;&#x4E9B;&#x57FA;&#x672C;&#x7684;&#x63D0;&#x793A;&#x5DE5;&#x7A0B;&#x5F00;&#x59CB;&#xFF08;&#x4F8B;&#x5982;&#x901A;&#x8FC7; few shot &#x5B66;&#x4E60;&#x63D0;&#x4F9B;&#x51E0;&#x4E2A;&#x793A;&#x4F8B;&#xFF09;&#xFF0C;&#x4EE5;&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A;&#x57FA;&#x51C6;&#xFF0C;&#x7136;&#x540E;&#x518D;&#x5C1D;&#x8BD5;&#x5FAE;&#x8C03;&#xFF0C;&#x770B;&#x770B;&#x6539;&#x8FDB;&#x6548;&#x679C;&#x5982;&#x4F55;&#x663E;&#x8457;&#x3002;</p><p>&#x5C3D;&#x7BA1;&#x5982;&#x6B64;&#xFF0C;&#x8003;&#x8651;&#x5230;&#x5FAE;&#x8C03;&#x53EF;&#x4EE5;&#x4F7F; 3.5 Turbo &#x7684;&#x6027;&#x80FD;&#x8FBE;&#x5230;&#x7C7B;&#x4F3C;&#x4E8E; GPT-4 &#x7684;&#x6C34;&#x5E73;&#xFF0C;&#x5982;&#x679C;&#x60A8;&#x8FD0;&#x884C;&#x7684;&#x662F;&#x5927;&#x89C4;&#x6A21;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#xFF0C;&#x5FAE;&#x8C03;&#x7684;&#x6210;&#x672C;&#x8282;&#x7EA6;&#x80AF;&#x5B9A;&#x4F1A;&#x7D2F;&#x79EF;&#x8D77;&#x6765;&#x3002;</p><p>&#x672C;&#x6587;&#x4E2D;&#x6211;&#x4EEC;&#x53EA;&#x662F;&#x521D;&#x6B65;&#x4ECB;&#x7ECD;&#x4E86;&#x5FAE;&#x8C03;&#x7684;&#x6F5C;&#x529B;&#xFF0C;&#x56E0;&#x6B64;&#x5728;&#x672A;&#x6765;&#x7684;&#x6307;&#x5357;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x63D0;&#x4F9B;&#x66F4;&#x591A;&#x5C55;&#x793A;&#x5982;&#x4F55;&#x5229;&#x7528;&#x8FD9;&#x4E00;&#x65B0;&#x80FD;&#x529B;&#x7684;&#x5B9E;&#x9645;&#x793A;&#x4F8B;&#x3002;</p><hr><p>&#x53C2;&#x8003;:</p>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.mlq.ai/gpt-3-5-turbo-fine-tuning/?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Getting Started with GPT 3.5 Turbo Fine Tuning</div><div class="kg-bookmark-description">GPT 3.5 Turbo fine tuning has arrived. In this guide we discuss how to get started with fine tuning, including use&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-h4vhacatvwj0sndq.png" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)"></div></a></figure>
<!--kg-card-end: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://wenews.cc/p/a75zzM?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ChatGPT-4o&#xFF0C;OpenAI&#x7684;&#x4E00;&#x5C0F;&#x6B65;&#xFF0C;&#x4EBA;&#x985E;&#x300C;AI&#x52A9;&#x7406;&#x300D;&#x7684;&#x4E00;&#x5927;&#x6B65;</div><div class="kg-bookmark-description">&#x79D1;&#x5E7B;&#x96FB;&#x5F71;&#x300C;Her&#x300D;&#x7684;&#x5287;&#x60C5;&#x6B63;&#x5728;&#x6210;&#x70BA;&#x73FE;&#x5BE6;&#x3002;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://wenews.cc/wenews.ico" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)"><span class="kg-bookmark-author">&#x5FAE;&#x982D;&#x689D; - ChatGPT-4o&#xFF0C;OpenAI&#x7684;&#x4E00;&#x5C0F;&#x6B65;&#xFF0C;&#x4EBA;&#x985E;&#x300C;AI&#x52A9;&#x7406;&#x300D;&#x7684;&#x4E00;&#x5927;&#x6B65;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://mmbiz.ik2.in/mmbiz_jpg/8cu01Kavc5axQLT7JDKToichNw9pMPGk2vZK7YicRv5NjSkbJIN3ic98S0o81Yj10YsBrLjaLfQmPeQicFC0ES6TuQ/0?wx_fmt=jpeg" alt="&#x4F7F;&#x7528;GTP 3.5 Turbo&#x6765;&#x8FDB;&#x884C;Fine Tuning(&#x5FAE;&#x8C03;)"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[可以参考一下这个]]></title><description><![CDATA[https://github.com/premthomas/Ollama-and-Agents]]></description><link>https://liangbo.me/e5-8f-af-e4-bb-a5-e5-8f-82-e8-80-83-e4-b8-80-e4-b8-8b-e8-bf-99-e4-b8-aa/</link><guid isPermaLink="false">66860f1cb6891c0001494cb9</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Thu, 28 Mar 2024 12:36:13 GMT</pubDate><content:encoded><![CDATA[<p>&#x53EF;&#x4EE5;&#x53C2;&#x8003;&#x4E00;&#x4E0B;&#x8FD9;&#x4E2A;</p><p><a href="https://github.com/premthomas/Ollama-and-Agents?ref=liangbo.me" rel="noopener">https://github.com/premthomas/Ollama-and-Agents</a></p>]]></content:encoded></item><item><title><![CDATA[当我想用ChatGPT-Next-Web来套壳Azure OpenAI Service时]]></title><description><![CDATA[使用Cloudflare worker来代理Azure OpenAI API， 并将其转换为兼容OpenAI的API]]></description><link>https://liangbo.me/e5-bd-93-e6-88-91-e6-83-b3-e7-94-a8chatgpt-next-web-e6-9d-a5-e5-a5-97-e5-a3-b3azure-openai-service-e6-97-b6/</link><guid isPermaLink="false">66860f1cb6891c0001494cb7</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Thu, 21 Mar 2024 14:31:18 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-swie_6q5tjwebrhjvreagq.png" medium="image"/><content:encoded><![CDATA[<blockquote>&#x4F7F;&#x7528;Cloudflare worker&#x6765;&#x4EE3;&#x7406;Azure OpenAI API&#xFF0C; &#x5E76;&#x5C06;&#x5176;&#x8F6C;&#x6362;&#x4E3A;&#x517C;&#x5BB9;OpenAI&#x7684;API</blockquote><img src="https://liangbo.me/content/images/2024/07/1-swie_6q5tjwebrhjvreagq.png" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;"><p>&#x4E00;&#x76F4;&#x6CA1;&#x80FD;&#x641E;&#x5B9A;OpenAI&#x7684;&#x8BA2;&#x9605;&#xFF0C; &#x5C31;&#x56E0;&#x4E3A;&#x6CA1;&#x6709;&#x641E;&#x5B9A;&#x56FD;&#x5916;&#x7684;&#x4FE1;&#x7528;&#x5361;&#xFF0C; &#x6240;&#x4EE5;&#x5C31;&#x4E00;&#x76F4;&#x4F7F;&#x7528;GPT-3.5&#x6765;&#x5904;&#x7406;&#x65E5;&#x5E38;&#x7684;&#x6587;&#x5B57;&#x751F;&#x6210;&#x5DE5;&#x4F5C;&#xFF0C; &#x4F8B;&#x5982;&#x5199;&#x6587;&#x6863;&#xFF0C; &#x751F;&#x6210;&#x4E00;&#x4E9B;&#x7B80;&#x5355;&#x7684;&#x811A;&#x672C;&#x548C;&#x7A0B;&#x5E8F;&#x4EE3;&#x7801;&#x4EE5;&#x53CA;&#x5E2E;&#x52A9;review&#x4EE3;&#x7801;&#x3002; &#x5076;&#x5C14;&#x4F1A;&#x901A;&#x8FC7;Azure &#x7684; AI Studio&#x6765;&#x8C03;&#x7528;gpt-4&#x7684;&#x6A21;&#x578B;&#xFF0C; &#x603B;&#x89C9;&#x5F97;&#x5BF9;&#x8BDD;&#x5185;&#x5BB9;&#x548C;3.5&#x5DEE;&#x4E0D;&#x591A;&#xFF0C; &#x6700;&#x8FD1;&#x516C;&#x53F8;&#x6709;&#x60F3;&#x505A;&#x804C;&#x80FD;&#x6587;&#x6863;&#x52A9;&#x7406;&#x6216;&#x8005;&#x804C;&#x80FD;&#x6280;&#x672F;&#x652F;&#x6301;&#x7684;&#x529F;&#x80FD;&#xFF0C; &#x4E3A;&#x4E86;&#x80FD;&#x704C;&#x5165;&#x4E00;&#x4E9B;&#x77E5;&#x8BC6;&#x5E93;&#x7684;&#x5185;&#x5BB9;&#xFF0C; &#x4E0D;&#x5F97;&#x4E0D;&#x53BB;Azure&#x4E0A;&#x5F04;&#x4E00;&#x4E0B;Customized Model&#xFF0C; &#x7531;&#x4E8E;Azure&#x7684;Portal&#x6709;&#x4E9B;&#x6162;&#xFF0C; &#x6240;&#x4EE5;&#x60F3;&#x5230;&#x4E86;&#x76EE;&#x524D;&#x6BD4;&#x8F83;&#x6D41;&#x884C;&#x7684;ChatGPT Web UI, &#x4E5F;&#x5C31;&#x662F;&#x672C;&#x6587;&#x8981;&#x8BF4;&#x7684;ChatGPT-Next-Web.</p><hr><h3 id="%E6%90%9E%E5%AE%9Achatgpt-next-web">&#x641E;&#x5B9A;ChatGPT-Next-Web</h3><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-6c4u9fzioznukq4kfg2j2a-jpeg.jpg" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="640" height="480" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-6c4u9fzioznukq4kfg2j2a-jpeg.jpg 600w, https://liangbo.me/content/images/2024/07/1-6c4u9fzioznukq4kfg2j2a-jpeg.jpg 640w"></figure><p>&#x8FD9;&#x4E2A;&#x6BD4;&#x8F83;&#x7B80;&#x5355;&#xFF0C; &#x4F7F;&#x7528;Docker&#x7684;&#x8BDD;&#xFF0C; &#x771F;&#x7684;&#x5C31;&#x662F;&#x4E00;&#x884C;&#x547D;&#x4EE4;, &#x4E0D;&#x8FC7;&#xFF0C; &#x95EE;&#x9898;&#x662F;&#xFF0C; &#x6211;&#x53D1;&#x73B0;&#x5B83;&#x5BF9;Azure OpenAI API&#x652F;&#x6301;&#x7B49;&#x4E8E;&#x96F6;&#xFF0C; &#x6240;&#x4EE5;&#xFF0C; &#x5728;&#x641E;&#x5B9A;&#x8FD9;&#x4E2A;&#x4E4B;&#x524D;&#xFF0C; &#x8FD8;&#x5F97;&#x60F3;&#x4E2A;&#x66F2;&#x7EBF;&#x6551;&#x56FD;&#x7684;&#x529E;&#x6CD5;&#xFF0C; &#x4E8E;&#x662F;&#xFF0C; &#x6211;&#x60F3;&#x5230;&#xFF0C; &#x8981;&#x4E0D;&#x6211;&#x81EA;&#x5DF1;&#x7528;Python&#x6765;&#x505A;&#x4E00;&#x4E2A;API Wrap&#xFF0C; &#x4E8E;&#x662F;&#xFF0C; &#x6211;&#x5F00;&#x59CB;&#x51C6;&#x5907;&#x5377;&#x3002;&#x3002;&#x3002;</p><p>&#x4F46;&#x662F;&#xFF0C; &#x61D2;&#x866B;&#x5982;&#x6211;&#xFF0C; &#x600E;&#x4E48;&#x53EF;&#x80FD;&#x5C31;&#x8FD9;&#x4E48;&#x8F7B;&#x6613;&#x5F97;&#x5F00;&#x59CB;&#x81EA;&#x5DF1;&#x5199;&#x4EE3;&#x7801;&#xFF1F; &#x6216;&#x8005;&#xFF0C; &#x6211;&#x8FD8;&#x4F1A;&#x5199;&#x4EE3;&#x7801;&#x5417;&#xFF1F; &#x81EA;&#x4ECE;&#x7528;&#x4E86;&#x8FD9;&#x4E9B;AI&#x5DE5;&#x5177;&#x540E;&#xFF0C; &#x6211;&#x7684;&#x5927;&#x8111;&#x5C31;&#x4E00;&#x76F4;&#x5904;&#x4E8E;&#x8EBA;&#x5E73;&#x72B6;&#x6001;&#xFF0C; &#x4E8E;&#x662F;&#xFF0C; &#x627E;&#x5230;&#x4E86;&#x8FD9;&#x4E2A;</p><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/hbsgithub/deno-azure-openai-proxy?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - hbsgithub/deno-azure-openai-proxy: One-click deploy! Free to use, no server required. A&#x2026;</div><div class="kg-bookmark-description">One-click deploy! Free to use, no server required. A Deno Deploy script to proxy OpenAI&apos;s request to Azure OpenAI&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-drethhcjnezzhgy0.png" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;"></div></a></figure><!--kg-card-end: html--><p>&#x548C;&#x8FD9;&#x4E2A;</p><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/haibbo/cf-openai-azure-proxy?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - haibbo/cf-openai-azure-proxy: A Cloudflare worker script to proxy OpenAI&apos;s request to&#x2026;</div><div class="kg-bookmark-description">A Cloudflare worker script to proxy OpenAI&apos;s request to Azure OpenAI Service - haibbo/cf-openai-azure-proxy</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-svkphm09a83gutbg.png" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;"></div></a></figure><!--kg-card-end: html--><p>&#x56E0;&#x4E3A;&#x6211;&#x6709;&#x5728;&#x4F7F;&#x7528;cloudflare, &#x6240;&#x4EE5;&#x6211;&#x51B3;&#x5B9A;&#x8BD5;&#x4E00;&#x8BD5;Cloudflare worker&#x6765;&#x4EE3;&#x7406;Azure OpenAI API&#xFF0C; &#x5E76;&#x5C06;&#x5176;&#x8F6C;&#x6362;&#x4E3A;&#x517C;&#x5BB9;OpenAI API&#x683C;&#x5F0F;&#x3002;</p><h3 id="cloudflare-work-%E8%BF%90%E8%A1%8C-cf-openai-azure-proxy">Cloudflare Work &#x8FD0;&#x884C; cf-openai-azure-proxy</h3><p>&#x8FD9;&#x4E2A;proxy&#x4EE3;&#x7801;&#x771F;&#x7684;&#x5F88;&#x7B80;&#x5355;&#xFF0C; &#x5C31;&#x4E00;&#x4E2A;js&#x6587;&#x4EF6;&#xFF0C; copy&#x5230;Cloudflare&#x7684;worker&#x91CC;&#x5C31;&#x597D;&#xFF0C; &#x8FD9;&#x662F;&#x5177;&#x4F53;&#x7684;&#x6B65;&#x9AA4;</p><h4 id="%E6%96%B0%E5%BB%BA%E4%B8%80%E4%B8%AAworker-application">&#x65B0;&#x5EFA;&#x4E00;&#x4E2A;worker application</h4><p>&#x767B;&#x5F55;&#x5230;Cloudflare dashboard, &#x5728;&#x5DE6;&#x8FB9;&#x7684;&#x83DC;&#x5355;&#x4E0A;&#x8FDB;&#x5165;Workers &amp; Pages, &#x5E76;&#x4ECE;&#x53F3;&#x4E0A;&#x89D2;&#x70B9;&#x51FB; Create application&#xFF0C; &#x5E76;&#x4E14;&#x8FDB;&#x5165;Worker&#x754C;&#x9762;&#x540E;&#xFF0C; Create Worder&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-kxlo5eikltx_wqtn_i_jxg-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="1654" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-kxlo5eikltx_wqtn_i_jxg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-kxlo5eikltx_wqtn_i_jxg-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-kxlo5eikltx_wqtn_i_jxg-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-kxlo5eikltx_wqtn_i_jxg-2x.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;Worker Application</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-x9fcxcevyqyimouozo5cpg-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="610" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-x9fcxcevyqyimouozo5cpg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-x9fcxcevyqyimouozo5cpg-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-x9fcxcevyqyimouozo5cpg-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-x9fcxcevyqyimouozo5cpg-2x.png 2202w" sizes="(min-width: 720px) 720px"><figcaption>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;worker</figcaption></figure><h4 id="%E9%83%A8%E7%BD%B2%E6%88%91%E4%BB%AC%E7%9A%84worker">&#x90E8;&#x7F72;&#x6211;&#x4EEC;&#x7684;Worker</h4><p>&#x63A5;&#x4E0B;&#x6765;&#x6211;&#x4EEC;&#x5C31;&#x53EF;&#x4EE5;&#x90E8;&#x7F72;&#x4E00;&#x4E2A;&#x65B0;&#x7684;worker, &#x4E3A;&#x6211;&#x4EEC;&#x7684;worker&#x53D6;&#x4E00;&#x4E2A;&#x540D;&#x5B57;&#xFF0C; &#x8FD9;&#x91CC;&#x6211;&#x79F0;&#x4E4B;&#x4E3A; &#x201C;my-azure-openai-wrapper-01&#x201D;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-n2udd-74ipht6d92sy7xzq-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="1638" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-n2udd-74ipht6d92sy7xzq-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-n2udd-74ipht6d92sy7xzq-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-n2udd-74ipht6d92sy7xzq-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-n2udd-74ipht6d92sy7xzq-2x.png 2244w" sizes="(min-width: 720px) 720px"><figcaption>&#x90E8;&#x7F72;&#x4E00;&#x4E2A;&#x65B0;&#x7684;worker</figcaption></figure><p>&#x8FD9;&#x91CC;&#xFF0C; &#x6211;&#x4EEC;&#x4E0D;&#x9700;&#x8981;&#x4FEE;&#x6539;&#x4EE3;&#x7801;&#xFF0C; &#x800C;&#x662F;&#x76F4;&#x63A5;&#x70B9; Deploy. &#x56E0;&#x4E3A;&#x90E8;&#x7F72;&#x540E;&#xFF0C; &#x6211;&#x4EEC;&#x5C31;&#x53EF;&#x4EE5;&#x7F16;&#x8F91;&#x4EE3;&#x7801;&#x4E86;&#x3002;</p><h4 id="%E7%BC%96%E8%BE%91worker%E4%BB%A3%E7%A0%81">&#x7F16;&#x8F91;Worker&#x4EE3;&#x7801;</h4><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-tkbis9yb4auc99w3kyctmg-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="1092" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-tkbis9yb4auc99w3kyctmg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-tkbis9yb4auc99w3kyctmg-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-tkbis9yb4auc99w3kyctmg-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-tkbis9yb4auc99w3kyctmg-2x.png 2252w" sizes="(min-width: 720px) 720px"><figcaption>&#x7F16;&#x8F91;&#x4EE3;&#x7801;</figcaption></figure><p>&#x5230;&#x8FD9;&#x6B65;&#x5C31;&#x53EF;&#x4EE5;&#x9009;&#x62E9; Edit code&#x6765;&#x7F16;&#x8F91;&#x4EE3;&#x7801;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;</p><p><a href="https://raw.githubusercontent.com/haibbo/cf-openai-azure-proxy/main/cf-openai-azure-proxy.js?ref=liangbo.me" rel="nofollow noopener">https://raw.githubusercontent.com/haibbo/cf-openai-azure-proxy/main/cf-openai-azure-proxy.js</a></p><p>&#x8FD9;&#x91CC;&#x7684;&#x4EE3;&#x7801;Copy&#x5230;&#x4EE3;&#x7801;&#x6846;&#x91CC;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-a-uz9-65o3bxxiydoo4f_w-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="788" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-a-uz9-65o3bxxiydoo4f_w-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-a-uz9-65o3bxxiydoo4f_w-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-a-uz9-65o3bxxiydoo4f_w-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-a-uz9-65o3bxxiydoo4f_w-2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>&#x7EA2;&#x8272;&#x6846;&#x91CC;&#x7684;&#x662F;&#x9700;&#x8981;&#x4FEE;&#x6539;&#x7684;&#x4EE3;&#x7801;&#xFF0C; &#x8FD9;&#x91CC;&#x7684;&#x4FE1;&#x606F;&#xFF0C; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;Azure Portal&#x91CC;&#x627E;&#x5230;&#x3002;</p><h3 id="%E4%BF%AE%E6%94%B9-worker-%E4%BB%A3%E7%A0%81">&#x4FEE;&#x6539; Worker &#x4EE3;&#x7801;</h3><p>&#x8FDB;&#x5165;&#x5230;Azure Portal, &#x5E76;&#x641C;&#x7D22;OpenAI, &#x8FD9;&#x65F6;&#x5019;&#x4F1A;&#x8DF3;&#x51FA;&#x4EA7;&#x54C1;&#xFF0C; &#x6211;&#x4EEC;&#x76F4;&#x63A5;&#x9009;&#x62E9;&#x8FDB;&#x5165;&#x5230;Azure OpenAI</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-ynbjpee0zhjjobyw6phwtw-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="402" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-ynbjpee0zhjjobyw6phwtw-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-ynbjpee0zhjjobyw6phwtw-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-ynbjpee0zhjjobyw6phwtw-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-ynbjpee0zhjjobyw6phwtw-2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-_gr_2oa2cqlnhzjoequy-w-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="443" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-_gr_2oa2cqlnhzjoequy-w-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-_gr_2oa2cqlnhzjoequy-w-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-_gr_2oa2cqlnhzjoequy-w-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-_gr_2oa2cqlnhzjoequy-w-2x.png 2168w" sizes="(min-width: 720px) 720px"></figure><pre><code class="language-cpp">// The name of your Azure OpenAI Resource. 
const resourceName=&quot;xx-openai-inst-1&quot;</code></pre><p>&#x5C06;&#x4EE3;&#x7801;&#x4E2D;&#x7684; resourceName&#x7684;&#x503C;&#x4FEE;&#x6539;&#x4E3A;&#x4F60;&#x7684;Azure OpenAI&#x7684;&#x5B9E;&#x4F8B;&#x540D;&#x79F0;</p><p>&#x7136;&#x540E;&#x8FDB;&#x5165;&#x5230;&#x5B9E;&#x4F8B;&#xFF0C; &#x5E76;&#x90E8;&#x7F72;&#x6211;&#x4EEC;&#x8981;&#x4F7F;&#x7528;&#x7684;&#x6A21;&#x578B;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-kh9a8w6urqfmutbx9jibkw-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="882" height="1444" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-kh9a8w6urqfmutbx9jibkw-2x.png 600w, https://liangbo.me/content/images/2024/07/1-kh9a8w6urqfmutbx9jibkw-2x.png 882w" sizes="(min-width: 720px) 720px"></figure><p>&#x8BF4;&#x5B9E;&#x8BDD;&#xFF0C; Azure Portal&#x91CC;&#x7684;OpenAI Studio&#x7F51;&#x9875;&#x52A0;&#x8F7D;&#x592A;&#x6162;&#x4E86;&#xFF0C; &#x8FD9;&#x4E5F;&#x662F;&#x4E3A;&#x4EC0;&#x4E48;&#x4F1A;&#x6709;&#x8FD9;&#x7BC7;&#x6587;&#x7AE0;&#x7684;&#x539F;&#x56E0;&#xFF0C; &#x54C8;&#x54C8;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-qdb8fnsptaoldwde1oo-za-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="985" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-qdb8fnsptaoldwde1oo-za-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-qdb8fnsptaoldwde1oo-za-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-qdb8fnsptaoldwde1oo-za-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-qdb8fnsptaoldwde1oo-za-2x.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>&#x5DF2;&#x7ECF;&#x90E8;&#x7F72;&#x597D;&#x7684;&#x6A21;&#x578B;</figcaption></figure><p>&#x8FD9;&#x91CC;&#x5C31;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x7684;&#x6A21;&#x578B;&#x4E86;&#xFF0C; &#x8FD9;&#x91CC;&#x6211;&#x4EEC;&#x628A;&#x4EE3;&#x7801;&#x4E2D;&#x7684;mapper&#x90E8;&#x5206;&#x4E5F;&#x6539;&#x6210;&#x6211;&#x4EEC;&#x7684;&#x6A21;&#x578B;&#x90E8;&#x7F72;&#x540D;&#x79F0;</p><pre><code class="language-javascript">// The deployment name you chose when you deployed the model. 
const mapper = { 
    &apos;gpt-3.5-turbo&apos;: &quot;general-gpt35-turbo-deployment-1&quot;, 
    &apos;gpt-3.5-turbo-0613&apos;: &quot;general-gpt35-turbo-deployment-1&quot;, 
//   &apos;gpt-3.5-turbo-1106&apos;: DEPLOY_NAME_GPT35, 
  // &apos;gpt-3.5-turbo-16k&apos;: DEPLOY_NAME_GPT35, 
    &apos;gpt-4&apos;: &quot;general-gpt4-deployment-1&quot;, 
    &apos;gpt-4-0613&apos;: &quot;general-gpt4-deployment-1&quot;, 
  // &apos;gpt-4-1106-preview&apos;: DEPLOY_NAME_GPT4, 
  // &apos;gpt-4-32k&apos;: DEPLOY_NAME_GPT4, 
  // &apos;dall-e-3&apos;: typeof DEPLOY_NAME_DALLE3 !== &apos;undefined&apos; ? DEPLOY_NAME_DALLE3 : &quot;dalle3&quot;, 
};</code></pre><p>&#x6709;&#x4E9B;&#x6A21;&#x578B;&#x6CA1;&#x6709;&#x90E8;&#x7F72;&#xFF0C; &#x81EA;&#x7136;&#x5C31;&#x4E0D;&#x9700;&#x8981;&#x586B;&#x5199;&#x4E86;&#xFF0C; &#x6211;&#x4EEC;&#x8FD9;&#x91CC;&#x5148;&#x5C31;&#x4F7F;&#x7528;&#x8FD9;&#x4E24;&#x4E2A;&#x6A21;&#x578B;,</p><p>GPT-3.5&#x548C;GPT-4&#xFF0C;&#x4FEE;&#x6539;&#x597D;&#x5C31;&#x56DE;&#x5230;Cloudflare&#x7684;&#x7F51;&#x9875;&#x4E0A;&#xFF0C; &#x70B9;Save and deploy.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-d4dvxnd6fro3gfunkchh_g-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="350" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-d4dvxnd6fro3gfunkchh_g-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-d4dvxnd6fro3gfunkchh_g-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-d4dvxnd6fro3gfunkchh_g-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-d4dvxnd6fro3gfunkchh_g-2x.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>&#x5B8C;&#x6210;Cloudflare Worker&#x7684;&#x90E8;&#x7F72;</figcaption></figure><p>&#x5728;&#x622A;&#x56FE;&#x7684;&#x8FD9;&#x4E24;&#x5904;&#x90FD;&#x53EF;&#x4EE5;&#x83B7;&#x53D6;&#x5230;&#x6211;&#x4EEC;&#x521A;&#x521A;&#x8BBE;&#x7F6E;&#x7684;worker&#x7684;URL</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="545" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x.png 2370w" sizes="(min-width: 720px) 720px"></figure><p>&#x628A;&#x8FD9;&#x4E2A;URL&#x8BB0;&#x5F55;&#x4E0B;&#x6765;&#xFF0C; &#x6211;&#x4EEC;&#x63A5;&#x4E0B;&#x6765;&#x8981;&#x5728; ChatGPT-Next-Web&#x91CC;&#x8981;&#x7528;&#x3002;</p><h3 id="%E4%BD%BF%E7%94%A8docker%E9%83%A8%E7%BD%B2%E5%92%8C%E9%85%8D%E7%BD%AEchatgpt-next-web">&#x4F7F;&#x7528;Docker&#x90E8;&#x7F72;&#x548C;&#x914D;&#x7F6E;ChatGPT-Next-Web</h3><p>&#x4E3A;&#x4E86;&#x7B80;&#x5316;&#x90E8;&#x7F72;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C; &#x6211;&#x4EEC;&#x8FD9;&#x91CC;&#x76F4;&#x63A5;&#x4F7F;&#x7528;Docker compose&#x6765;&#x5B8C;&#x6210;Web UI&#x7684;&#x90E8;&#x7F72;&#x548C;&#x914D;&#x7F6E;&#xFF0C; &#x5982;&#x679C;&#x4F60;&#x7684;&#x7535;&#x8111;&#x4E0A;&#x5DF2;&#x7ECF;&#x5B89;&#x88C5;&#x4E86;Docker&#x548C;Docker compose&#xFF0C; &#x90A3;&#x4E48;&#x606D;&#x559C;&#x4F60;&#xFF0C; &#x4E0D;&#x9700;&#x8981;&#x518D;&#x505A;&#x5176;&#x4ED6;&#x7684;&#x5DE5;&#x4F5C;&#xFF0C; &#x6211;&#x4EEC;&#x76F4;&#x63A5;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;&#x5939;&#xFF0C; chatgpt-next-web&#xFF0C; &#x7136;&#x540E;&#x65B0;&#x5EFA;&#x4E00;&#x4E2A;&#x6587;&#x4EF6;&#x540D;&#x53EB; docker-compose.yml</p><pre><code class="language-perl">version: &quot;3.9&quot; 
services: 
  chatgpt-next-web: 
    container_name: chatgpt-next-web 
    image: yidadaa/chatgpt-next-web 
    ports: 
      - 18303:3000 
    environment: 
      - OPENAI_API_KEY=&#x8FD9;&#x91CC;&#x6709;&#x4E2A;key&#x54E6; 
      - GOOGLE_API_KEY=$GOOGLE_API_KEY 
      - CODE=&#x8FD9;&#x91CC;&#x53EF;&#x4EE5;&#x5B58;&#x4E2A;admin&#x5BC6;&#x7801;&#x54E6; 
      - BASE_URL=https://my-azure-openai-wrapper-01.xxxxxxxx.workers.dev/ 
      - OPENAI_ORG_ID=&#x8FD9;&#x91CC;&#x662F;Azure OpenAI&#x7684;&#x8BA2;&#x9605;ID 
      - HIDE_USER_API_KEY=$HIDE_USER_API_KEY 
      - DISABLE_GPT4=$DISABLE_GPT4 
      - ENABLE_BALANCE_QUERY=$ENABLE_BALANCE_QUERY 
      - DISABLE_FAST_LINK=$DISABLE_FAST_LINK 
      - OPENAI_SB=$OPENAI_SB</code></pre><p>&#x9700;&#x8981;&#x4F60;&#x4FEE;&#x6539;&#x7684;&#x90E8;&#x5206;:</p><pre><code class="language-css">OPENAI_API_KEY 
CODE 
BASE_URL 
OPENAI_ORG_ID</code></pre><p>&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#x54EA;&#x91CC;&#x627E;&#x5462;?</p><p>&#x8FD8;&#x8BB0;&#x5F97;&#x4E4B;&#x524D;&#x8981;&#x8BB0;&#x5F55;&#x7684;URL&#x4E48;&#xFF1F;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x-1.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="545" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x-1.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x-1.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x-1.png 1600w, https://liangbo.me/content/images/2024/07/1-pvuaabrpkcjml3qzok4qdq-2x-1.png 2370w" sizes="(min-width: 720px) 720px"></figure><p>&#x8FD9;&#x4E2A;&#x5C31;&#x662F;BASE_URL&#x4E86;&#x3002;</p><p><strong>&#x9996;&#x5148; CODE &#x53EF;&#x4EE5;&#x968F;&#x4FBF;&#x586B;&#xFF0C; &#x8FD9;&#x91CC;&#x662F;&#x4F60;&#x767B;&#x5F55;&#x5230;ChatGPT-Next-Web&#x7684;&#x5BC6;&#x7801;, &#x6211;&#x4EEC;&#x5C31;&#x8BBE;&#x7F6E;&#x4E3A; CHATGPT2024 &#x597D;&#x4E86;&#xFF0C; </strong>OPENAI_API_KEY, OPENAI_ORG_ID&#x8FD9;&#x4E24;&#x4E2A;&#x53EF;&#x4EE5;&#x5728;&#x8FD9;&#x91CC;&#x627E;&#xFF0C; &#x9996;&#x5148; ORG_ID&#x5C31;&#x662F;&#x4E0B;&#x56FE;&#x4E2D;&#x7684;Subscription ID</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-o952bdkxx-omlrvb7bczuq-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="1690" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-o952bdkxx-omlrvb7bczuq-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-o952bdkxx-omlrvb7bczuq-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-o952bdkxx-omlrvb7bczuq-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-o952bdkxx-omlrvb7bczuq-2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>&#x7136;&#x540E;&#x5728; Keys and Endpoint &#x91CC;&#x5C31;&#x53EF;&#x4EE5;&#x770B;&#x5230; API_KEY&#x4E86;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-bmcndpq4pa0w5taa4yei9a-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="843" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-bmcndpq4pa0w5taa4yei9a-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-bmcndpq4pa0w5taa4yei9a-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-bmcndpq4pa0w5taa4yei9a-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-bmcndpq4pa0w5taa4yei9a-2x.png 2084w" sizes="(min-width: 720px) 720px"></figure><h3 id="%E4%B8%80%E5%88%87%E5%B0%B1%E7%BB%AA%EF%BC%8C-%E8%BF%90%E8%A1%8Cchatgpt-next-web">&#x4E00;&#x5207;&#x5C31;&#x7EEA;&#xFF0C; &#x8FD0;&#x884C;ChatGPT-Next-Web</h3><pre><code class="language-typescript">docker compose up -d</code></pre><p>&#x7136;&#x540E;&#x6253;&#x5F00;&#x6D4F;&#x89C8;&#x5668;&#xFF0C; &#x8FDB;&#x5165; <a href="http://docker-host-ip:18303/?ref=liangbo.me" rel="noopener">http://docker-host-ip:18303</a></p><p>&#x8FD9;&#x91CC;docker-host-ip &#x5C31;&#x662F;&#x4F60;&#x521A;&#x521A;&#x8FD0;&#x884C;docker compose&#x7684;&#x90A3;&#x4E2A;&#x7535;&#x8111;&#x7684;ip&#xFF0C; &#x901A;&#x5E38;&#x6211;&#x4EEC;&#x505A;&#x5B9E;&#x9A8C;&#x90FD;&#x662F;&#x5728;&#x672C;&#x673A;&#x505A;&#xFF0C; &#x90A3;&#x4E48;&#x5C31;&#x4F7F;&#x7528; http://localhost:18303&#xFF0C; &#x5E94;&#x8BE5;&#x5C31;&#x53EF;&#x4EE5;&#x770B;&#x5230;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-7lnxaehtbqenr5tbwtdoqg-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="1599" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-7lnxaehtbqenr5tbwtdoqg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-7lnxaehtbqenr5tbwtdoqg-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-7lnxaehtbqenr5tbwtdoqg-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-7lnxaehtbqenr5tbwtdoqg-2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1--xwqyapiwslciaazcev40g-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="1656" srcset="https://liangbo.me/content/images/size/w600/2024/07/1--xwqyapiwslciaazcev40g-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1--xwqyapiwslciaazcev40g-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1--xwqyapiwslciaazcev40g-2x.png 1600w, https://liangbo.me/content/images/2024/07/1--xwqyapiwslciaazcev40g-2x.png 2348w" sizes="(min-width: 720px) 720px"></figure><p>&#x8F93;&#x5165;&#x6211;&#x4EEC;&#x5148;&#x524D;&#x8BBE;&#x7F6E;&#x7684;CODE, <em>CHATGPT2024 &#xFF0C;</em>&#x7136;&#x540E;&#x5728;OpenAI API Key&#x8F93;&#x5165;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x5728;Azure &#x91CC;copy&#x6765;&#x7684;API_KEY&#xFF0C; &#x4E3A;&#x4EC0;&#x4E48;&#x8FD9;&#x91CC;&#x8FD8;&#x8981;&#x8F93;&#x5165;&#xFF0C; &#x6211;&#x4E5F;&#x4E0D;&#x662F;&#x5F88;&#x6E05;&#x695A;&#xFF0C; &#x660E;&#x660E;&#x6211;&#x4EEC;&#x5728;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x91CC;&#x5DF2;&#x7ECF;&#x914D;&#x7F6E;&#x4E86;&#xFF0C; &#x8FD8;&#x671B;&#x77E5;&#x9053;&#x7684;&#x670B;&#x53CB;&#x544A;&#x8BC9;&#x6211;&#x3002;</p><p>&#x8FDB;&#x53BB;&#x540E;&#xFF0C; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x8F93;&#x5165;&#x6846;&#x4E0A;&#x65B9;&#x9009;&#x62E9;&#x4E00;&#x4E2A;&#x6A21;&#x578B;&#xFF0C; &#x8FD9;&#x91CC;&#x6211;&#x9009;&#x62E9;GPT-4</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-uidlkzsvnwwx3tfpgamb3g-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="1916" height="356" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-uidlkzsvnwwx3tfpgamb3g-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-uidlkzsvnwwx3tfpgamb3g-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-uidlkzsvnwwx3tfpgamb3g-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-uidlkzsvnwwx3tfpgamb3g-2x.png 1916w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-axdspebcbevq8-wbypia8w-2x.png" class="kg-image" alt="&#x5F53;&#x6211;&#x60F3;&#x7528;ChatGPT-Next-Web&#x6765;&#x5957;&#x58F3;Azure OpenAI Service&#x65F6;" loading="lazy" width="2000" height="1548" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-axdspebcbevq8-wbypia8w-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-axdspebcbevq8-wbypia8w-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-axdspebcbevq8-wbypia8w-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-axdspebcbevq8-wbypia8w-2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>&#x5927;&#x529F;&#x544A;&#x6210;&#x3002; &#x5E0C;&#x671B;&#x5927;&#x5BB6;&#x559C;&#x6B22;&#x8FD9;&#x4E2A;&#x6559;&#x7A0B;&#xFF0C; &#x5982;&#x679C;&#x6709;&#x95EE;&#x9898;&#xFF0C; &#x4E5F;&#x6B22;&#x8FCE;&#x5728;&#x4E0B;&#x65B9;&#x7559;&#x8A00;&#x63A2;&#x8BA8;&#x3002;</p><p>&#x6700;&#x8FD1;&#x7528;ChatGPT&#x7684;&#x63D0;&#x793A;&#x8BCD;+github copilot&#x505A;&#x4E86;&#x4E00;&#x4E2A;&#x5C0F;&#x7834;&#x7AD9;&#xFF0C; &#x6536;&#x96C6;&#x4E00;&#x4E9B;&#x6587;&#x7AE0;&#xFF0C; &#x6709;&#x65F6;&#x95F4;&#x6211;&#x518D;&#x53D1;&#x4E00;&#x7BC7;&#x6587;&#x7AE0;&#x6765;&#x8BB2;&#x8BB2;&#x8FC7;&#x7A0B;</p><p><a href="https://wenews.cc/?ref=liangbo.me" rel="noopener">https://wenews.cc</a></p>]]></content:encoded></item><item><title><![CDATA[Go channels 进阶 — 从初学者到初学者+ ;)]]></title><description><![CDATA[Go 语言的并发模型是其最吸引人的特性之一，而通道（channels）作为实现并发通信的关键机制，是 Go 语言中的重要组成部分。本文将深入研究通道，探索其在并发编程中的作用、使用方式以及一些高级特性。]]></description><link>https://liangbo.me/go-channels-e8-bf-9b-e9-98-b6-e4-bb-8e-e5-88-9d-e5-ad-a6-e8-80-85-e5-88-b0-e5-88-9d-e5-ad-a6-e8-80-85/</link><guid isPermaLink="false">66860f1cb6891c0001494cbb</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Mon, 29 Jan 2024 02:45:59 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-qmksrfsd1bdf8_xontf2ag.png" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-qmksrfsd1bdf8_xontf2ag.png" alt="Go channels &#x8FDB;&#x9636;&#x200A;&#x2014;&#x200A;&#x4ECE;&#x521D;&#x5B66;&#x8005;&#x5230;&#x521D;&#x5B66;&#x8005;+&#xA0;;)"><p>Go &#x8BED;&#x8A00;&#x7684;&#x5E76;&#x53D1;&#x6A21;&#x578B;&#x662F;&#x5176;&#x6700;&#x5438;&#x5F15;&#x4EBA;&#x7684;&#x7279;&#x6027;&#x4E4B;&#x4E00;&#xFF0C;&#x800C;&#x901A;&#x9053;&#xFF08;channels&#xFF09;&#x4F5C;&#x4E3A;&#x5B9E;&#x73B0;&#x5E76;&#x53D1;&#x901A;&#x4FE1;&#x7684;&#x5173;&#x952E;&#x673A;&#x5236;&#xFF0C;&#x662F; Go &#x8BED;&#x8A00;&#x4E2D;&#x7684;&#x91CD;&#x8981;&#x7EC4;&#x6210;&#x90E8;&#x5206;&#x3002;&#x672C;&#x6587;&#x5C06;&#x6DF1;&#x5165;&#x7814;&#x7A76;&#x901A;&#x9053;&#xFF0C;&#x63A2;&#x7D22;&#x5176;&#x5728;&#x5E76;&#x53D1;&#x7F16;&#x7A0B;&#x4E2D;&#x7684;&#x4F5C;&#x7528;&#x3001;&#x4F7F;&#x7528;&#x65B9;&#x5F0F;&#x4EE5;&#x53CA;&#x4E00;&#x4E9B;&#x9AD8;&#x7EA7;&#x7279;&#x6027;&#x3002;</p><h3 id="1-%E4%BB%80%E4%B9%88%E6%98%AFgo-channel">1. &#x4EC0;&#x4E48;&#x662F;Go Channel ?</h3><p>Channel&#x662F;&#x5141;&#x8BB8; goroutines&#xFF08;&#x8F7B;&#x91CF;&#x7EA7;&#x7EBF;&#x7A0B;&#x6216;&#x534F;&#x7A0B;&#xFF09;&#x76F8;&#x4E92;&#x901A;&#x4FE1;&#x5E76;&#x540C;&#x6B65;&#x5B83;&#x4EEC;&#x7684;&#x6267;&#x884C;&#x7684;&#x901A;&#x9053;&#x3002;&#x5B83;&#x4EEC;&#x662F;&#x7C7B;&#x578B;&#x5B89;&#x5168;&#x7684;&#xFF0C;&#x786E;&#x4FDD;&#x5728; goroutines &#x4E4B;&#x95F4;&#x53D1;&#x9001;&#x7684;&#x6570;&#x636E;&#x7B26;&#x5408;&#x6307;&#x5B9A;&#x7684;&#x7C7B;&#x578B;&#x3002;</p><p>&#x4ECE;&#x6982;&#x5FF5;&#x4E0A;&#x6765;&#x8BF4;&#xFF0C;&#x53EF;&#x4EE5;&#x5C06;Channel&#x89C6;&#x4E3A;&#x7BA1;&#x9053;&#xFF0C;&#x5176;&#x4E2D;&#x6570;&#x636E;&#x53EF;&#x4EE5;&#x4ECE;&#x4E00;&#x7AEF;&#x53D1;&#x9001;&#xFF0C;&#x4ECE;&#x53E6;&#x4E00;&#x7AEF;&#x63A5;&#x6536;&#x3002;</p><p>&#x4E0B;&#x9762;&#x4EE3;&#x7801;&#x662F;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;Channel</p><pre><code class="language-go">ch := make(chan int) // declare a channel of type int</code></pre><h3 id="2-%E5%9F%BA%E6%9C%AC%E7%9A%84channel%E6%93%8D%E4%BD%9C">2. &#x57FA;&#x672C;&#x7684;Channel&#x64CD;&#x4F5C;</h3><h4 id="%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6">&#x53D1;&#x9001;&#x548C;&#x63A5;&#x6536;</h4><p>&#x5411;Channel&#x53D1;&#x9001;&#x4E00;&#x4E2A;&#x503C;</p><pre><code class="language-go">ch &lt;- 5 // Send value 5 into the channel</code></pre><p>&#x4ECE;Channel&#x63A5;&#x6536;&#x4E00;&#x4E2A;&#x503C;</p><pre><code class="language-go">value := &lt;-ch // Receive a value from the channel</code></pre><p>&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x6F14;&#x793A;&#x4E86;&#x5982;&#x4F55;&#x4F7F;&#x7528;Channel&#x4ECE;&#x4E24;&#x4E2A;goroutine&#x91CC;&#x540C;&#x6B65;&#x6570;&#x636E;</p><pre><code class="language-go">package main 
import ( 
 &quot;fmt&quot; 
 &quot;time&quot; 
) 
func main() { 
 message := make(chan string) 
 go func() { // sending goroutine 
  time.Sleep(time.Second * 2) 
  message &lt;- &quot;Hello from goroutine!&quot; 
 }() 
 msg := &lt;-message // receiving in main goroutine 
 fmt.Println(msg) 
}</code></pre><h4 id="%E5%85%B3%E9%97%ADchannel">&#x5173;&#x95ED;Channel</h4><p>&#x5F53;&#x53D1;&#x9001;&#x8005;&#x4E0D;&#x518D;&#x53D1;&#x9001;&#x503C;&#x65F6;&#xFF0C;&#x5E94;&#x8BE5;&#x7531;&#x53D1;&#x9001;&#x8005;&#x4E3B;&#x52A8;&#x5173;&#x95ED;Channel&#x3002;</p><pre><code class="language-go">close(ch)</code></pre><h3 id="3-%E9%AB%98%E7%BA%A7channel%E6%8A%80%E6%9C%AF">3. &#x9AD8;&#x7EA7;Channel&#x6280;&#x672F;</h3><h4 id="buffered-channels">Buffered Channels</h4><p>Channel&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#x662F;&#x65E0;&#x7F13;&#x51B2;(unbuffered)&#x7684;&#xFF0C;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x5728;&#x53D1;&#x9001;&#x65F6;&#x4F1A;&#x963B;&#x585E;&#xFF0C;&#x9664;&#x975E;&#x6709;&#x76F8;&#x5E94;&#x7684;&#x63A5;&#x6536;&#x64CD;&#x4F5C;&#x3002;Buffered Channels&#x5141;&#x8BB8;&#x60A8;&#x5728;&#x963B;&#x585E;&#x4E4B;&#x524D;&#x53D1;&#x9001;&#x591A;&#x4E2A;&#x503C;&#x3002;</p><p>Buffered Channels&#x5177;&#x6709;&#x5BB9;&#x91CF;&#xFF0C;&#x5141;&#x8BB8;&#x5B83;&#x5728;&#x963B;&#x585E;&#x53D1;&#x9001;&#x8005;&#x4E4B;&#x524D;&#x4FDD;&#x7559;&#x591A;&#x4E2A;&#x503C;&#x3002;</p><pre><code class="language-go">ch := make(chan int, 3) // A buffered channel with capacity 3 
ch &lt;- 1 
ch &lt;- 2 
// ch &lt;- 3 would block</code></pre><p>&#x5728;&#x4E0B;&#x9762;&#x7684;&#x793A;&#x4F8B;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#xFF1A;</p><ol><li>&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5BB9;&#x91CF;&#x4E3A;3&#x7684;Buffered Channel</li><li>&#x542F;&#x52A8;5&#x4E2A;&#x8FD0;&#x884C;&#x4EFB;&#x52A1;&#x7684; goroutine&#x3002;</li><li>&#x4F7F;&#x7528;Channel&#x786E;&#x4FDD;&#x4E00;&#x6B21;&#x53EA;&#x6709;3&#x4E2A;&#x4EFB;&#x52A1;&#x6B63;&#x5728;&#x8FDB;&#x884C;&#x4E2D;&#x3002;</li></ol><pre><code class="language-go">package main 
 
import ( 
 &quot;fmt&quot; 
 &quot;time&quot; 
) 
 
func worker(id int, ch chan int) { 
 // Pretend we&apos;re doing some work 
 fmt.Printf(&quot;Worker %d started\n&quot;, id) 
 time.Sleep(time.Second) 
 fmt.Printf(&quot;Worker %d finished\n&quot;, id) 
 &lt;-ch // Signal we&apos;re done 
} 
 
func main() { 
 // Create a buffered channel 
 bufferedChannel := make(chan int, 3) 
 
 // Start 5 workers 
 for i := 1; i &lt;= 5; i++ { 
  go worker(i, bufferedChannel) 
  bufferedChannel &lt;- i // Fill the channel slot to represent a worker in-progress 
 } 
 
 // Wait for all workers to finish 
 // This is a simple way to wait; in real-world scenarios, you might use sync.WaitGroup or similar 
 time.Sleep(7 * time.Second) 
}</code></pre><p>&#x5728;&#x8FD0;&#x884C;&#x4E0A;&#x8FF0;&#x4EE3;&#x7801;&#x65F6;&#xFF0C;&#x60A8;&#x4F1A;&#x6CE8;&#x610F;&#x5230;&#x53EA;&#x6709;3&#x4E2A;&#x4EFB;&#x52A1;&#x7ACB;&#x5373;&#x542F;&#x52A8;&#x3002;&#x6BCF;&#x5F53;&#x4E00;&#x4E2A;&#x4EFB;&#x52A1;&#x5B8C;&#x6210;&#x65F6;&#xFF0C;&#x53E6;&#x4E00;&#x4E2A;&#x5C31;&#x4F1A;&#x542F;&#x52A8;&#xFF0C;&#x76F4;&#x5230;&#x6240;&#x6709;5&#x4E2A;&#x5DE5;&#x4F5C;&#x7A0B;&#x5E8F;&#x90FD;&#x6267;&#x884C;&#x5B8C;&#x6BD5;&#x3002;&#x8FD9;&#x79CD;&#x884C;&#x4E3A;&#x53D7;&#x5230;Buffered Channel&#x7684;&#x63A7;&#x5236;&#xFF0C;&#x5B83;&#x4E00;&#x6B21;&#x53EA;&#x5141;&#x8BB8;3&#x4E2A;&#x201C;&#x4EFB;&#x52A1;&#x201D;&#xFF08;&#x4EE3;&#x8868;&#x6B63;&#x5728;&#x8FDB;&#x884C;&#x4E2D;&#x7684;&#x4EFB;&#x52A1;&#xFF09;&#x5B58;&#x5728;&#x3002;</p><p>Buffered Channel&#x7684;&#x5DE5;&#x4F5C;&#x539F;&#x7406;&#x53D6;&#x51B3;&#x4E86;&#x53EA;&#x6709;3&#x4E2A;&#x4EFB;&#x52A1;&#x7ACB;&#x5373;&#x88AB;&#x6267;&#x884C;&#x3002; &#x5B83;&#x53EF;&#x4EE5;&#x5728;&#x4E0D;&#x963B;&#x585E;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x5BB9;&#x7EB3;&#x6307;&#x5B9A;&#x6570;&#x91CF;&#x7684;&#x503C;&#x3002;&#x5F53;&#x60A8;&#x5C1D;&#x8BD5;&#x5411;Channel&#x53D1;&#x9001;&#x6570;&#x636E;&#x6216;&#x4ECE;&#x7A7A;Channel&#x63A5;&#x6536;&#x6570;&#x636E;&#x65F6;&#xFF0C;&#x5B83;&#x5C06;&#x5206;&#x522B;&#x963B;&#x585E;&#xFF0C;&#x76F4;&#x5230;&#x6709;&#x7A7A;&#x95F4;&#x53EF;&#x7528;&#x6216;&#x503C;&#x53EF;&#x7528;&#x4E3A;&#x6B62;&#x3002;</p><p>&#x5728;&#x4E0A;&#x9762;&#x7684;&#x793A;&#x4F8B;&#x4E2D;&#xFF1A;</p><pre><code class="language-go">bufferedChannel := make(chan int, 3)</code></pre><p>&#x6211;&#x4EEC;&#x521B;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;&#x5BB9;&#x91CF;&#x4E3A;3&#x7684;Channel&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x5B83;&#x53EF;&#x4EE5;&#x5BB9;&#x7EB3;&#x6700;&#x591A;3&#x4E2A;&#x503C;&#x800C;&#x4E0D;&#x4F1A;&#x963B;&#x585E;&#x3002;</p><p>&#x7136;&#x540E;&#x6211;&#x4EEC;&#x5FAA;&#x73AF;&#x5E76;&#x542F;&#x52A8;5&#x4E2A;&#x4EFB;&#x52A1;&#xFF1A;</p><pre><code class="language-go">for i := 1; i &lt;= 5; i++ { 
 go worker(i, bufferedChannel) 
 bufferedChannel &lt;- i  
}</code></pre><p>&#x5BF9;&#x4E8E;&#x5FAA;&#x73AF;&#x7684;&#x6BCF;&#x6B21;&#x8FED;&#x4EE3;&#xFF0C;&#x6211;&#x4EEC;&#xFF1A;</p><ol><li>&#x542F;&#x52A8;&#x4E00;&#x4E2A;&#x6267;&#x884C;&#x4EFB;&#x52A1;&#x7684; goroutine&#x3002;</li><li>&#x5411;Channel&#x53D1;&#x9001;&#x4E00;&#x4E2A;&#x503C;&#xFF08;i&#xFF09;&#x3002;</li></ol><p>&#x5982;&#x679C;Channel&#x5DF2;&#x6EE1;&#xFF0C;&#x5219;Send&#x64CD;&#x4F5C;&#xFF08;bufferedChannel &lt;- i&#xFF09;&#x4F1A;&#x963B;&#x585E;&#x3002;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x7531;&#x4E8E;&#x901A;&#x9053;&#x7684;&#x5BB9;&#x91CF;&#x4E3A;3&#xFF0C;&#x4E00;&#x65E6;&#x6211;&#x4EEC;&#x542F;&#x52A8;&#x4E86;3&#x4E2A;&#x4EFB;&#x52A1;&#x5E76;&#x5411;Channel&#x53D1;&#x9001;&#x4E86;3&#x4E2A;&#x503C;&#xFF0C;Send&#x64CD;&#x4F5C;&#x5C31;&#x4F1A;&#x963B;&#x585E;&#x3002;</p><p>&#x5728;&#x542F;&#x52A8;&#x4E86;&#x524D;3&#x4E2A;&#x4EFB;&#x52A1;&#x4E4B;&#x540E;&#xFF0C;&#x4E3B; goroutine &#x5C06;&#x5728;&#x7B2C;&#x56DB;&#x6B21;&#x53D1;&#x9001;&#x64CD;&#x4F5C;&#x4E0A;&#x963B;&#x585E;&#xFF0C;&#x56E0;&#x4E3A;Channel&#x5DF2;&#x6EE1;&#x3002;&#x5B83;&#x5C06;&#x4FDD;&#x6301;&#x963B;&#x585E;&#xFF0C;&#x76F4;&#x5230;&#x5176;&#x4E2D;&#x4E00;&#x4E2A;&#x4EFB;&#x52A1;&#x5B8C;&#x6210;&#x5E76;&#x4ECE;Channel&#x8BFB;&#x53D6;&#x4E00;&#x4E2A;&#x503C;&#xFF0C;&#x91CA;&#x653E;&#x4E00;&#x4E2A;&#x63D2;&#x69FD;(slot)&#x3002;</p><p>&#x5728;&#x4EFB;&#x52A1;&#x51FD;&#x6570;&#x5185;&#x90E8;&#xFF0C;&#x5B8C;&#x6210;&#x5176;&#x4EFB;&#x52A1;&#x540E;&#xFF1A;</p><pre><code class="language-typescript">&lt;-ch</code></pre><p>&#x4EFB;&#x52A1;&#x4ECE;Channel&#x4E2D;&#x8BFB;&#x53D6;&#xFF08;&#x6216;&#x201C;&#x63A5;&#x6536;&#x201D;&#xFF09;&#x4E00;&#x4E2A;&#x503C;&#xFF0C;&#x56E0;&#x6B64;&#x79FB;&#x9664;&#x4E86;&#x4E00;&#x4E2A;&#x9879;&#x76EE;&#xFF0C;&#x4E3A;&#x4E0B;&#x4E00;&#x4E2A;&#x4EFB;&#x52A1;&#x817E;&#x51FA;&#x4E86;&#x7A7A;&#x95F4;&#x3002;</p><p>&#x603B;&#x800C;&#x8A00;&#x4E4B;&#xFF1A;&#x53EA;&#x6709;3&#x4E2A;&#x4EFB;&#x52A1;&#x4F1A;&#x7ACB;&#x5373;&#x542F;&#x52A8;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x4F7F;&#x7528;Buffered Channel&#x4F5C;&#x4E3A;&#x4FE1;&#x53F7;&#x91CF;&#x6765;&#x63A7;&#x5236;&#x5E76;&#x53D1;&#x6027;&#x3002;&#x901A;&#x9053;&#x7684;&#x5BB9;&#x91CF;&#x51B3;&#x5B9A;&#x4E86;&#x53EF;&#x4EE5;&#x540C;&#x65F6;&#x8FD0;&#x884C;&#x7684;&#x4EFB;&#x52A1;&#x6570;&#x91CF;&#x3002;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5B83;&#x8BBE;&#x7F6E;&#x4E3A;3&#xFF0C;&#x56E0;&#x6B64;&#x53EA;&#x6709;&#x4E09;&#x4E2A;&#x5DE5;&#x4F5C;&#x7A0B;&#x5E8F;&#x53EF;&#x4EE5;&#x7ACB;&#x5373;&#x542F;&#x52A8;&#x3002;&#x968F;&#x7740;&#x6BCF;&#x4E2A;&#x4EFB;&#x52A1;&#x5B8C;&#x6210;&#x5E76;&#x5728;&#x901A;&#x9053;&#x4E2D;&#x91CA;&#x653E;&#x4E00;&#x4E2A;&#x63D2;&#x69FD;&#xFF0C;&#x53E6;&#x4E00;&#x4E2A;&#x4EFB;&#x52A1;&#x5F00;&#x59CB;&#x6267;&#x884C;&#x3002;</p><h4 id="%E9%81%8D%E5%8E%86channel">&#x904D;&#x5386;Channel</h4><p>&#x904D;&#x5386;Channel&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x63A5;&#x6536;&#x503C;&#xFF0C;&#x76F4;&#x5230;&#x901A;&#x9053;&#x88AB;&#x5173;&#x95ED;&#x3002;&#x4E3A;&#x4E86;&#x8BA9;&#x8FD9;&#x4E2A;&#x65B9;&#x6CD5;&#x597D;&#x7528;&#xFF0C;&#x53D1;&#x9001;&#x8005;&#x5FC5;&#x987B;&#x5173;&#x95ED;Channel&#x4EE5;&#x8868;&#x793A;&#x4E0D;&#x4F1A;&#x518D;&#x53D1;&#x9001;&#x66F4;&#x591A;&#x6570;&#x636E;&#x3002;</p><pre><code class="language-go">ch := make(chan int, 3) 
ch &lt;- 1 
ch &lt;- 2 
ch &lt;- 3 
close(ch) 
 
for v := range ch { 
 fmt.Println(v) 
}</code></pre><h4 id="select%E8%AF%AD%E6%B3%95">Select&#x8BED;&#x6CD5;</h4><p>&#x7528;&#x4E8E;&#x5904;&#x7406;&#x591A;&#x4E2A;Channel&#x7684;&#x60C5;&#x51B5;&#xFF0C;Select&#x5141;&#x8BB8;&#x4E00;&#x4E2A; goroutine &#x7B49;&#x5F85;&#x591A;&#x4E2A;&#x901A;&#x4FE1;&#x64CD;&#x4F5C;&#x3002;Select&#x8BED;&#x6CD5;&#x7C7B;&#x4F3C;&#x4E8E; switch &#x8BED;&#x53E5;&#xFF0C;&#x4F46;&#x7528;&#x4E8E;Channel&#xFF1A;</p><pre><code class="language-go">ch1 := make(chan int) 
ch2 := make(chan int) 
 
go func() { 
 time.Sleep(time.Second * 1) 
 ch1 &lt;- 1 
}() 
 
go func() { 
 time.Sleep(time.Second * 2) 
 ch2 &lt;- 2 
}() 
 
for i := 0; i &lt; 2; i++ { 
 select { 
 case msg1 := &lt;-ch1: 
  fmt.Println(&quot;Received from ch1:&quot;, msg1) 
 case msg2 := &lt;-ch2: 
  fmt.Println(&quot;Received from ch2:&quot;, msg2) 
 } 
}</code></pre><p>&#x5728; select &#x8BED;&#x53E5;&#x4E2D;&#x7684;&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x5728;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;Channel&#x53EF;&#x4EE5;&#x7ACB;&#x5373;&#x53D1;&#x9001;&#x6216;&#x63A5;&#x6536;&#x65F6;&#x6267;&#x884C;&#x3002;</p><pre><code class="language-go">select { 
case msg := &lt;-ch: 
 fmt.Println(&quot;Received:&quot;, msg) 
default: 
 fmt.Println(&quot;No message received.&quot;) 
}</code></pre><h4 id="%E6%A3%80%E6%9F%A5channel%E6%98%AF%E5%90%A6%E5%B7%B2%E8%A2%AB%E5%85%B3%E9%97%AD">&#x68C0;&#x67E5;Channel&#x662F;&#x5426;&#x5DF2;&#x88AB;&#x5173;&#x95ED;</h4><p>&#x5982;&#x679C;&#x4ECE;Channel&#x63A5;&#x6536;&#x6570;&#x636E;&#xFF0C;&#x5E76;&#x4E14;&#x8BE5;Channel&#x5DF2;&#x5173;&#x95ED;&#xFF0C;&#x5219;&#x8FD8;&#x5C06;&#x63A5;&#x6536;&#x5230;&#x4E00;&#x4E2A;&#x5E03;&#x5C14;&#x503C;&#xFF0C;&#x6307;&#x793A;Channel&#x662F;&#x5426;&#x4ECD;&#x7136;&#x5904;&#x4E8E;&#x6253;&#x5F00;&#x72B6;&#x6001;&#x3002;</p><pre><code class="language-go">v, open := &lt;-ch 
if !open { 
 fmt.Println(&quot;Channel is closed!&quot;) 
}</code></pre><h3 id="4-%E7%8E%B0%E5%AE%9E%E4%B8%AD%E4%BD%BF%E7%94%A8channel%E7%9A%84%E5%9C%BA%E6%99%AF%E5%92%8C%E4%BE%8B%E5%AD%90">4. &#x73B0;&#x5B9E;&#x4E2D;&#x4F7F;&#x7528;Channel&#x7684;&#x573A;&#x666F;&#x548C;&#x4F8B;&#x5B50;</h3><h4 id="%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97">&#x4EFB;&#x52A1;&#x961F;&#x5217;</h4><p>Go &#x8BED;&#x8A00;&#x7684;Channel&#x53EF;&#x4EE5;&#x7528;&#x4E8E;&#x5B9E;&#x73B0;&#x4EFB;&#x52A1;&#x961F;&#x5217;&#xFF0C;&#x591A;&#x4E2A;Producer&#x53EF;&#x4EE5;&#x6DFB;&#x52A0;&#x4EFB;&#x52A1;&#xFF0C;&#x591A;&#x4E2A;Consumer&#x53EF;&#x4EE5;&#x5E76;&#x53D1;&#x5904;&#x7406;&#x5B83;&#x4EEC;&#x3002;</p><h4 id="%E5%8F%91%E5%B8%83%E8%80%85%E8%AE%A2%E9%98%85%E8%80%85%E6%A8%A1%E5%BC%8F">&#x53D1;&#x5E03;&#x8005;/&#x8BA2;&#x9605;&#x8005;&#x6A21;&#x5F0F;</h4><p>Channel&#x53EF;&#x4EE5;&#x7528;&#x4E8E;&#x521B;&#x5EFA;&#x53D1;&#x5E03;&#x8005;/&#x8BA2;&#x9605;&#x8005;&#x6A21;&#x578B;&#xFF0C;&#x591A;&#x4E2A;&#x8BA2;&#x9605;&#x8005;&#x53EF;&#x4EE5;&#x76D1;&#x542C;&#x53D1;&#x5E03;&#x8005;&#x53D1;&#x51FA;&#x7684;&#x4E8B;&#x4EF6;&#x6216;&#x6D88;&#x606F;&#x3002;</p><pre><code class="language-go">package main 
 
import ( 
 &quot;fmt&quot; 
 &quot;sync&quot; 
) 
 
// PubSub is the main structure for our simple pub-sub system. 
type PubSub struct { 
 // mu is a RWMutex that allows multiple goroutines to read from the subscribers map, 
 // but only one goroutine to write to it at any given time. 
 mu sync.RWMutex 
 
 // subscribers is a map where the key is a topic (as a string) and the value is 
 // a slice of channels. Each channel corresponds to a subscriber listening to that topic. 
 subscribers map[string][]chan int 
} 
 
// NewPubSub creates a new PubSub instance and initializes its subscribers map. 
func NewPubSub() *PubSub { 
 return &amp;PubSub{ 
  subscribers: make(map[string][]chan int), 
 } 
} 
 
// Subscribe allows a subscriber to get updates for a specific topic.  
// It returns a channel on which the subscriber will receive these updates. 
func (ps *PubSub) Subscribe(topic string) &lt;-chan int { 
 // Lock the map for writing. 
 ps.mu.Lock() 
 defer ps.mu.Unlock() 
 
 // Create a new channel for this subscriber. 
 ch := make(chan int, 1) 
  
 // Append this subscriber&apos;s channel to the slice of channels for the given topic. 
 ps.subscribers[topic] = append(ps.subscribers[topic], ch) 
  
 // Return the channel to the subscriber. 
 return ch 
} 
 
// Publish sends the given value to all subscribers of a specific topic. 
func (ps *PubSub) Publish(topic string, value int) { 
 // Lock the map for reading. 
 ps.mu.RLock() 
 defer ps.mu.RUnlock() 
 
 // Iterate over all channels (subscribers) for this topic and send the value. 
 for _, subscriber := range ps.subscribers[topic] { 
  subscriber &lt;- value 
 } 
} 
 
// Close removes a specific subscriber from a topic and closes its channel. 
func (ps *PubSub) Close(topic string, subCh &lt;-chan int) { 
 // Lock the map for writing. 
 ps.mu.Lock() 
 defer ps.mu.Unlock() 
 
 // Find the subscriber&apos;s channel in the slice for the given topic. 
 subscribers, found := ps.subscribers[topic] 
 if !found { 
  return 
 } 
 
 for i, subscriber := range subscribers { 
  if subscriber == subCh { 
   // Close the channel. 
   close(subscriber) 
    
   // Remove this channel from the slice. 
   ps.subscribers[topic] = append(subscribers[:i], subscribers[i+1:]...) 
   break 
  } 
 } 
} 
 
// Main function demonstrating the pub-sub functionality. 
func main() { 
 // Create a new pub-sub instance. 
 ps := NewPubSub() 
 
 // A subscriber subscribes to &quot;topic1&quot;. 
 subscriber := ps.Subscribe(&quot;topic1&quot;) 
 
 // A publisher publishes the value 42 to &quot;topic1&quot;. 
 go func() { 
  ps.Publish(&quot;topic1&quot;, 42) 
 }() 
 
 // The subscriber receives the value. 
 value := &lt;-subscriber 
 fmt.Println(&quot;Received value:&quot;, value) // Expected: Received value: 42 
 
 // Close the subscriber&apos;s channel and remove it from the topic&apos;s subscribers. 
 ps.Close(&quot;topic1&quot;, subscriber) 
}</code></pre><p>&#x8FD9;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x53D1;&#x5E03;-&#x8BA2;&#x9605;&#x5B9E;&#x73B0;&#x6F14;&#x793A;&#x4E86;&#x5982;&#x4F55;&#x4F7F;&#x7528; Go &#x7684;Channel&#x548C; goroutines &#x6765;&#x521B;&#x5EFA;&#x5E76;&#x53D1;&#x7CFB;&#x7EDF;&#x3002;&#x6CE8;&#x91CA;&#x63D0;&#x4F9B;&#x4E86;&#x5173;&#x4E8E;&#x4EE3;&#x7801;&#x5404;&#x90E8;&#x5206;&#x76EE;&#x7684;&#x548C;&#x529F;&#x80FD;&#x7684;&#x89C1;&#x89E3;&#x3002;</p><p>&#x5DE5;&#x4F5C;&#x539F;&#x7406;&#xFF1A;</p><ol><li>PubSub &#x7ED3;&#x6784;&#x4F53;&#x5305;&#x542B;&#x4E86;&#x6BCF;&#x4E2A;&#x4E3B;&#x9898;&#x7684;&#x8BA2;&#x9605;&#x8005;&#x6620;&#x5C04;&#x3002;</li><li>Subscribe &#x65B9;&#x6CD5;&#x8BA9;&#x8BA2;&#x9605;&#x8005;&#x83B7;&#x53D6;&#x4E00;&#x4E2A;Channel&#xFF0C;&#x901A;&#x8FC7;&#x8BE5;Channel&#x4ED6;&#x4EEC;&#x5C06;&#x63A5;&#x6536;&#x7279;&#x5B9A;&#x4E3B;&#x9898;&#x7684;&#x4E8B;&#x4EF6;&#x3002;</li><li>Publish &#x65B9;&#x6CD5;&#x5C06;&#x7ED9;&#x5B9A;&#x7684;&#x503C;&#x53D1;&#x9001;&#x5230;&#x8BE5;&#x4E3B;&#x9898;&#x7684;&#x6240;&#x6709;&#x8BA2;&#x9605;&#x8005;&#x3002;</li><li>Close &#x65B9;&#x6CD5;&#x79FB;&#x9664;&#x8BA2;&#x9605;&#x8005;&#x7684;&#x901A;&#x9053;&#x5E76;&#x5173;&#x95ED;&#x5B83;&#x3002;</li></ol><h4 id="%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%EF%BC%9A">&#x9519;&#x8BEF;&#x5904;&#x7406;&#xFF1A;</h4><p>&#x5728;&#x5E76;&#x53D1;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#xFF0C;Channel&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x4F20;&#x9012;&#x548C;&#x5904;&#x7406;&#x6765;&#x81EA; goroutine &#x7684;&#x9519;&#x8BEF;&#xFF0C;&#x5C06;&#x5176;&#x4F20;&#x9012;&#x56DE;&#x4E3B;&#x7A0B;&#x5E8F;&#x3002;</p><h3 id="5-%E4%BD%BF%E7%94%A8channel%E7%9A%84%E7%AA%8D%E9%97%A8%E5%92%8C%E6%8A%80%E5%B7%A7">5. &#x4F7F;&#x7528;Channel&#x7684;&#x7A8D;&#x95E8;&#x548C;&#x6280;&#x5DE7;</h3><ul><li>&#x907F;&#x514D;&#x5168;&#x5C40;Channel(Global Channel)&#xFF1A;&#x4E0E;&#x5176;&#x4F7F;&#x7528;&#x5168;&#x5C40;Channel&#xFF0C;&#x6700;&#x597D;&#x5C06;Channel&#x4F5C;&#x4E3A;&#x51FD;&#x6570;&#x53C2;&#x6570;&#x4F20;&#x9012;&#x3002;&#x8FD9;&#x6837;&#x6709;&#x52A9;&#x4E8E;&#x66F4;&#x597D;&#x5730;&#x5C01;&#x88C5;&#x3002;</li><li>&#x68C0;&#x6D4B;&#x6B7B;&#x9501;&#xFF1A;Go &#x7684;&#x8FD0;&#x884C;&#x65F6;&#x53EF;&#x4EE5;&#x68C0;&#x6D4B;&#x5230;&#x67D0;&#x4E9B;&#x6B7B;&#x9501;&#xFF0C;&#x5E76;&#x5728;&#x9047;&#x5230;&#x6B7B;&#x9501;&#x65F6;&#x5F15;&#x53D1; panic&#x3002;</li><li>Nil Channel&#xFF1A;&#x5BF9;Nil Channel&#x8FDB;&#x884C;&#x53D1;&#x9001;&#x64CD;&#x4F5C;&#x4F1A;&#x6C38;&#x4E45;&#x963B;&#x585E;&#xFF0C;&#x800C;&#x4ECE;&#x7A7A;&#x901A;&#x9053;&#x63A5;&#x6536;&#x5C06;&#x59CB;&#x7EC8;&#x963B;&#x585E;&#x3002;</li><li>&#x907F;&#x514D;&#x201C;&#x5FD9;&#x7B49;&#x5F85;&#x201D;&#xFF1A;&#x4E0E;&#x5176;&#x9891;&#x7E41;&#x8F6E;&#x8BE2;Channel&#xFF0C;&#x4E0D;&#x5982;&#x5229;&#x7528; select &#x6216; range &#x6709;&#x6548;&#x5730;&#x7B49;&#x5F85;&#x503C;&#x7684;&#x5230;&#x6765;&#x3002;</li></ul><h3 id="conclusion">Conclusion</h3><p>Channel&#x662F; Go &#x8BED;&#x8A00;&#x5E76;&#x53D1;&#x6A21;&#x578B;&#x7684;&#x6838;&#x5FC3;&#x3002;&#x6DF1;&#x5165;&#x7406;&#x89E3;&#x5B83;&#x4EEC;&#x53EF;&#x4EE5;&#x91CA;&#x653E; Go &#x4E2D;&#x5E76;&#x53D1;&#x7F16;&#x7A0B;&#x7684;&#x771F;&#x6B63;&#x529B;&#x91CF;&#x3002;&#x4ECE;&#x57FA;&#x672C;&#x7684;&#x53D1;&#x9001;/&#x63A5;&#x6536;&#x64CD;&#x4F5C;&#x5230;&#x9AD8;&#x7EA7;&#x6A21;&#x5F0F;&#x5982;&#x53D1;&#x5E03;/&#x8BA2;&#x9605;&#xFF0C;&#x901A;&#x9053;&#x4E3A;&#x6784;&#x5EFA;&#x9AD8;&#x6548;&#x7684;&#x5E76;&#x53D1;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x63D0;&#x4F9B;&#x4E86;&#x4E30;&#x5BCC;&#x7684;&#x9009;&#x62E9;&#x3002;</p><p>&#x65E0;&#x8BBA;&#x60A8;&#x662F;&#x521D;&#x5B66;&#x8005;&#x521A;&#x521A;&#x5F00;&#x59CB;&#x5B66;&#x4E60; Go&#xFF0C;&#x8FD8;&#x662F;&#x7ECF;&#x9A8C;&#x4E30;&#x5BCC;&#x7684;&#x4E13;&#x4E1A;&#x4EBA;&#x58EB;&#x60F3;&#x8981;&#x5B8C;&#x5584;&#x81EA;&#x5DF1;&#x7684;&#x7406;&#x89E3;&#xFF0C;Channel&#x4ECD;&#x7136;&#x662F;&#x5FC5;&#x987B;&#x638C;&#x63E1;&#x7684;&#x5173;&#x952E;&#x6784;&#x9020;&#x3002;&#x62E5;&#x62B1;&#x5B83;&#x4EEC;&#xFF0C;&#x5C1D;&#x8BD5;&#x5B83;&#x4EEC;&#xFF0C;&#x8BA9; Go &#x7684;&#x5E76;&#x53D1;&#x6027;&#x63A8;&#x52A8;&#x60A8;&#x7684;&#x4E0B;&#x4E00;&#x4E2A;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[补充信息：]]></title><description><![CDATA[目前用ollama 已经可以很方便的在自己的电脑上运行llama2]]></description><link>https://liangbo.me/e8-a1-a5-e5-85-85-e4-bf-a1-e6-81-af/</link><guid isPermaLink="false">66860f1cb6891c0001494cbc</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Wed, 24 Jan 2024 09:19:44 GMT</pubDate><content:encoded><![CDATA[<p>&#x8865;&#x5145;&#x4FE1;&#x606F;&#xFF1A;</p><p>&#x76EE;&#x524D;&#x7528;ollama &#x5DF2;&#x7ECF;&#x53EF;&#x4EE5;&#x5F88;&#x65B9;&#x4FBF;&#x7684;&#x5728;&#x81EA;&#x5DF1;&#x7684;&#x7535;&#x8111;&#x4E0A;&#x8FD0;&#x884C;llama2</p>]]></content:encoded></item><item><title><![CDATA[这套Go语言开发框架组合真的非常高效]]></title><description><![CDATA[我尝试过很多框架，从Django/Flask和Laravel到NextJS和SvelteKit。到目前为止，这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈/框架。]]></description><link>https://liangbo.me/e8-bf-99-e5-a5-97go-e8-af-ad-e8-a8-80-e5-bc-80-e5-8f-91-e6-a1-86-e6-9e-b6-e7-bb-84-e5-90-88-e7-9c-9f-e7-9a-84-e9-9d-9e-e5-b8-b8-e9-ab-98-e6-95-88/</link><guid isPermaLink="false">66860f1cb6891c0001494cbd</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Thu, 04 Jan 2024 03:07:00 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-0wk56ztay29xvpcijegtcq.png" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-0wk56ztay29xvpcijegtcq.png" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"><p>&#x6211;&#x5C1D;&#x8BD5;&#x8FC7;&#x5F88;&#x591A;&#x6846;&#x67B6;&#xFF0C;&#x4ECE;Django/Flask&#x548C;Laravel&#x5230;NextJS&#x548C;SvelteKit&#x3002;&#x5230;&#x76EE;&#x524D;&#x4E3A;&#x6B62;&#xFF0C;&#x8FD9;&#x662F;&#x6211;&#x552F;&#x4E00;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x7684;&#x4E0D;&#x4F1A;&#x8BA9;&#x6211;&#x611F;&#x5230;&#x75AF;&#x72C2;&#x6216;&#x8005;&#x653E;&#x5F03;&#x9879;&#x76EE;&#x7684;&#x5806;&#x6808;/&#x6846;&#x67B6;&#x3002;</p><p>&#x6211;&#x559C;&#x6B22;&#x6240;&#x6709;&#x8FD9;&#x4E9B;&#x6846;&#x67B6;&#xFF0C;&#x4F46;&#x6211;&#x53EA;&#x662F;&#x4E0D;&#x592A;&#x9002;&#x5E94;&#x5B83;&#x4EEC;&#x7684;&#x8BBE;&#x8BA1;&#x65B9;&#x5F0F;&#x3002;&#x5B9E;&#x9645;&#x4E0A;&#xFF0C;&#x6211;&#x662F;&#x4E00;&#x4E2A;&#x5F31;&#x9E21;&#x7A0B;&#x5E8F;&#x5458;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x4EEC;&#x90FD;&#x975E;&#x5E38;&#x9AD8;&#x6548;&#xFF0C;&#x800C;&#x4E14;&#x62E5;&#x6709;&#x5F3A;&#x5927;&#x7684;&#x751F;&#x6001;&#x7CFB;&#x7EDF;&#xFF0C;&#x4F46;&#x662F;&#xFF0C;&#x7B97;&#x4E86;&#x3002;</p><p>&#x5982;&#x679C;&#x4F60;&#x8FD8;&#x6CA1;&#x6709;&#x88AB;Go&#x540C;&#x5316;&#xFF0C;&#x90A3;&#x4E48;&#x6211;&#x5C06;&#x7ED9;&#x51FA;&#x4E00;&#x4E9B;&#x6211;&#x4E3A;&#x4EC0;&#x4E48;&#x5982;&#x6B64;&#x559C;&#x6B22;&#x5B83;&#x7684;&#x539F;&#x56E0;&#x3002;</p><ul><li>&#x5FEB;&#x901F;&#x7F16;&#x8BD1;&#x6210;&#x5355;&#x4E00;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;</li><li>&#x5E72;&#x51C0;&#x7684;&#x8BED;&#x6CD5;&#x6700;&#x7EC8;&#x4EA7;&#x751F;&#x6613;&#x4E8E;&#x9605;&#x8BFB;&#x7684;&#x4EE3;&#x7801;&#x5E93;</li><li>&#x9002;&#x5408;&#x56E2;&#x961F;&#x534F;&#x4F5C;&#xFF0C; &#x4E0D;&#x7528;&#x62C5;&#x5FC3;&#x5927;&#x5BB6;&#x5199;&#x51FA;&#x98CE;&#x683C;&#x8FE5;&#x5F02;&#x7684;&#x4EE3;&#x7801;</li><li>&#x63D0;&#x4F9B;&#x4E86;go test/profile&#x5DE5;&#x5177;&#xFF0C; &#x548C;vscode&#x914D;&#x5408;&#x975E;&#x5E38;&#x597D;</li></ul><p>&#x4E0B;&#x9762;&#x4ECB;&#x7ECD;&#x4E00;&#x4E0B;&#x6211;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x6846;&#x67B6;&#x548C;&#x5DE5;&#x5177;&#x3002;</p><h3 id="web%E6%A1%86%E6%9E%B6">Web&#x6846;&#x67B6;</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://gofiber.io/?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Fiber</div><div class="kg-bookmark-description">An Express-inspired web framework written in Go.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-wmbi0d-xw2fxlwag.png" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"></div></a></figure>
<!--kg-card-end: html-->
<p><strong>Fiber</strong> &#x662F;&#x4E00;&#x4E2A;&#x53D7;&#x5230; <a href="https://github.com/expressjs/express?ref=liangbo.me" rel="nofollow noopener noreferrer noopener">Express</a> &#x542F;&#x53D1;&#x7684; <strong>Web &#x6846;&#x67B6;</strong>&#xFF0C;&#x57FA;&#x4E8E;&#x4F7F;&#x7528; <a href="https://golang.org/doc/?ref=liangbo.me" rel="nofollow noopener noreferrer noopener">Go</a> &#x8BED;&#x8A00;&#x7F16;&#x5199;&#x7684;<strong>&#x6700;&#x5FEB;&#x7684; HTTP &#x5F15;&#x64CE; </strong><a href="https://github.com/valyala/fasthttp?ref=liangbo.me" rel="nofollow noopener noreferrer noopener">Fasthttp</a> &#x6784;&#x5EFA;&#x3002;&#x65E8;&#x5728;&#x901A;&#x8FC7;<strong>&#x96F6;&#x5185;&#x5B58;&#x5206;&#x914D;</strong>&#x548C;<strong>&#x9AD8;&#x6027;&#x80FD;&#x670D;&#x52A1;</strong>&#xFF0C;&#x4F7F;<strong>&#x5FEB;&#x901F;</strong>&#x5F00;&#x53D1;&#x66F4;&#x52A0;&#x7B80;&#x4FBF;&#x3002;</p><p>&#x4ECE; Node.js &#x5207;&#x6362;&#x5230; Go &#x7684;&#x65B0; gopher &#x5728;&#x5F00;&#x59CB;&#x6784;&#x5EFA; Web &#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6216;&#x5FAE;&#x670D;&#x52A1;&#x4E4B;&#x524D;&#x9700;&#x8981;&#x7ECF;&#x5386;&#x5B66;&#x4E60;&#x8FC7;&#x7A0B;&#x3002; Fiber &#x4F5C;&#x4E3A;&#x4E00;&#x4E2A; Web &#x6846;&#x67B6; &#xFF0C;&#x662F;&#x6309;&#x7167;&#x6781;&#x7B80;&#x4E3B;&#x4E49;&#x7684;&#x601D;&#x60F3;&#x5E76;&#x9075;&#x5FAA; UNIX &#x65B9;&#x5F0F;&#x521B;&#x5EFA;&#x7684;&#xFF0C;&#x56E0;&#x6B64;&#x65B0;&#x7684; gopher &#x53EF;&#x4EE5;&#x5728;&#x70ED;&#x70C8;&#x548C;&#x53EF;&#x4FE1;&#x8D56;&#x7684;&#x6B22;&#x8FCE;&#x4E2D;&#x8FC5;&#x901F;&#x8FDB;&#x5165; Go &#x7684;&#x4E16;&#x754C;&#x3002;</p><h3 id="html%E6%A8%A1%E7%89%88%E5%BC%95%E6%93%8E">HTML&#x6A21;&#x7248;&#x5F15;&#x64CE;</h3><h4 id="jet">Jet</h4>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/CloudyKit/jet?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - CloudyKit/jet: Jet template engine</div><div class="kg-bookmark-description">Jet template engine. Contribute to CloudyKit/jet development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-launmabopo0gr2oc.png" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"></div></a></figure>
<!--kg-card-end: html-->
<pre><code class="language-bash">go get github.com/gofiber/template/jet/v2</code></pre><p>Fiber&#x53EA;&#x63D0;&#x4F9B;&#x4E86;9&#x79CD;&#x6A21;&#x677F;&#x7CFB;&#x7EDF;&#xFF0C;&#x800C;&#x5728;&#x6240;&#x6709;&#x8FD9;&#x4E9B;&#x7CFB;&#x7EDF;&#x4E2D;&#xFF0C;Jet&#x662F;&#x6211;&#x6700;&#x559C;&#x6B22;&#x7684;&#x3002;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x9009;&#x62E9;&#x5176;&#x4ED6;&#x7684;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x8FD9;&#x91CC;&#x627E;&#x5230;&#x5B83;&#x4EEC;&#x7684;&#x5217;&#x8868;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x5EFA;&#x8BAE;&#x4F60;&#x8981;&#x6CE8;&#x610F;&#x90A3;&#x4E9B;&#x529F;&#x80FD;&#x4E0D;&#x662F;&#x5F88;&#x591A;&#x7684;&#x6A21;&#x677F;&#x5F15;&#x64CE;&#xFF0C;&#x7279;&#x522B;&#x662F;Django&#xFF0C;&#x56E0;&#x4E3A;&#x4F60;&#x6700;&#x7EC8;&#x4E0D;&#x5F97;&#x4E0D;&#x5C06;&#x5927;&#x91CF;&#x7684;&#x903B;&#x8F91;&#x79FB;&#x52A8;&#x5230;Go&#x4E2D;&#xFF0C;&#x800C;&#x4E0D;&#x80FD;&#x76F4;&#x63A5;&#x5728;&#x6A21;&#x677F;&#x8BED;&#x8A00;&#x4E2D;&#x5B8C;&#x6210;&#x3002;</p><h4 id="htmx">HTMX</h4>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://htmx.org/?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">htmx - high power tools for html</div><div class="kg-bookmark-description">htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-i3w-ofcqx7nofp7j.png" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"></div></a></figure>
<!--kg-card-end: html-->
<p>Htmx&#x662F;&#x4E00;&#x4E2A;JavaScript&#x5E93;&#xFF0C;&#x7528;&#x4E8E;&#x6267;&#x884C;AJAX&#x8BF7;&#x6C42;&#xFF0C;&#x89E6;&#x53D1;CSS&#x8F6C;&#x6362;&#xFF0C;&#x4EE5;&#x53CA;&#x76F4;&#x63A5;&#x4ECE;HTML&#x5143;&#x7D20;&#x8C03;&#x7528;WebSocket&#x548C;&#x670D;&#x52A1;&#x5668;&#x53D1;&#x9001;&#x7684;&#x4E8B;&#x4EF6;&#x3002;Htmx&#x53EF;&#x4EE5;&#x8BA9;&#x4F60;&#x7528;&#x7B80;&#x5355;&#x7684;&#x6807;&#x8BB0;&#x5EFA;&#x7ACB;&#x73B0;&#x4EE3;&#x548C;&#x5F3A;&#x5927;&#x7684;&#x7528;&#x6237;&#x754C;&#x9762;&#x3002;</p><p>&#x8FD9;&#x4E2A;&#x5E93;&#x7684;&#x91CD;&#x91CF;&#x4E3A;~10KB&#xFF08;min.gz&#x2019;d&#xFF09;&#xFF0C;&#x5B83;&#x662F;&#x65E0;&#x4F9D;&#x8D56;&#x6027;&#x7684;&#xFF08;&#x4E5F;&#x5C31;&#x662F;&#x8BF4;&#xFF0C;&#x5B83;&#x4E0D;&#x9700;&#x8981;&#x4EFB;&#x4F55;&#x5176;&#x4ED6;&#x7684;JavaScript&#x5305;&#x6765;&#x8FD0;&#x884C;&#xFF09;&#xFF0C;&#x800C;&#x4E14;&#x5B83;&#x8FD8;&#x4E0E;IE11&#x517C;&#x5BB9;&#x3002;</p><h4 id="alpinejs">AlpineJS</h4>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://alpinejs.dev/?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Alpine.js</div><div class="kg-bookmark-description">A rugged, minimal framework for composing behavior directly in your markup.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-kag73-uhfnu9z3c6.jpg" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"></div></a></figure>
<!--kg-card-end: html-->
<p>&#x8FD9;&#x4E2A;&#x5DE5;&#x5177;&#x53EF;&#x4EE5;&#x589E;&#x52A0;&#x4E00;&#x4E9B;&#x524D;&#x7AEF;&#x7684;&#x4EA4;&#x4E92;&#x6027;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x628A;&#x5B83;&#x770B;&#x6210;&#x662F;&#x65B0;&#x4E00;&#x4EE3;&#x7684;jQuery&#x3002;</p><h4 id="daisyui-tailwind">DaisyUI &amp; Tailwind</h4>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://daisyui.com/?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">daisyUI - Tailwind CSS Components ( version 4 update is here )</div><div class="kg-bookmark-description">Best Tailwind Components Library - Free UI components for Tailwind CSS</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-0vuk_fwssma36dag.jpg" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"></div></a></figure>
<!--kg-card-end: html-->
<p>&#x5982;&#x5927;&#x591A;&#x6570;&#x540E;&#x7AEF;&#x5F00;&#x53D1;&#x8005;&#xFF0C;&#x4F60;&#x53EF;&#x80FD;&#x4F1A;&#x540C;&#x610F;&#x6211;&#x8BF4;&#x7684;&#xFF0C;&#x6211;&#x8BA8;&#x538C;&#x5199;CSS&#xFF0C;&#x4F46;&#x4EC5;&#x4EC5;&#x4F7F;&#x7528;Tailwind&#x5C31;&#x51E0;&#x4E4E;&#x65E0;&#x6CD5;&#x5FCD;&#x53D7;&#xFF0C;&#x56E0;&#x4E3A;&#x4F60;&#x5F97;&#x9762;&#x5BF9;&#x4E00;&#x4E2A;&#x5143;&#x7D20;&#x6709;20&#x4E2A;&#x4E0D;&#x540C;&#x7684;class&#x3002;&#x8FD9;&#x5C31;&#x662F;DaisyUI&#x7684;&#x7528;&#x6B66;&#x4E4B;&#x5730;&#xFF0C;&#x5B83;&#x63D0;&#x4F9B;&#x4E86;&#x9884;&#x5148;&#x8BBE;&#x8BA1;&#x7684;&#x7C7B;&#xFF0C;&#x540C;&#x65F6;&#x8FD8;&#x80FD;&#x4F7F;&#x7528;Tailwind&#x8FDB;&#x884C;&#x5E03;&#x5C40;&#xFF0C;&#x6BD4;&#x5982;&#x2019;flex&#x2019;&#x3002;</p><h3 id="%E6%95%B0%E6%8D%AE%E5%BA%93">&#x6570;&#x636E;&#x5E93;</h3><h4 id="supabase">Supabase</h4>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://supabase.com/?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Supabase | The Open Source Firebase Alternative</div><div class="kg-bookmark-description">Build production-grade applications with a Postgres database, Authentication, instant APIs, Realtime, Functions&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-aj1gjmlgplonz1-g.jpg" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"></div></a></figure>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/nedpals/supabase-go?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - nedpals/supabase-go: Unofficial Supabase client library for Go.</div><div class="kg-bookmark-description">Unofficial Supabase client library for Go. Contribute to nedpals/supabase-go development by creating an account on&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-an-2oo2dhkjnscpv.png" alt="&#x8FD9;&#x5957;Go&#x8BED;&#x8A00;&#x5F00;&#x53D1;&#x6846;&#x67B6;&#x7EC4;&#x5408;&#x771F;&#x7684;&#x975E;&#x5E38;&#x9AD8;&#x6548;"></div></a></figure>
<!--kg-card-end: html-->
<p>&#x5982;&#x679C;&#x6CA1;&#x6709;Supabase&#xFF0C;&#x8FD9;&#x5957;&#x7EC4;&#x5408;&#x62F3;&#x771F;&#x7684;&#x5C31;&#x65E0;&#x6CD5;&#x5F88;&#x597D;&#x5DE5;&#x4F5C;&#x4E86;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x4F9D;&#x8D56;&#x4E8E;&#x8EAB;&#x4EFD;&#x9A8C;&#x8BC1;&#xFF0C;&#x800C;&#x4E14;ORM&#x4E5F;&#x5F88;&#x597D;&#x3002;&#x5982;&#x679C;&#x4F60;&#x66F4;&#x559C;&#x6B22;&#x4F7F;&#x7528;&#x4E0D;&#x540C;&#x7684;ORM&#x6216;&#x8005;&#x53EA;&#x662F;SQL&#xFF0C;&#x90A3;&#x4E48;&#x8FD9;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x5728;&#x5E95;&#x5C42;&#xFF0C;Supabase&#x53EA;&#x662F;PostgreSQL&#xFF0C;&#x4ED6;&#x4EEC;&#x63D0;&#x4F9B;&#x4E86;&#x8FDE;&#x63A5;&#x5230;&#x6570;&#x636E;&#x5E93;&#x7684;&#x51ED;&#x636E;&#x3002;</p><p>&#x6B64;&#x5916;&#xFF0C;&#x4EC5;&#x4EC5;&#x80FD;&#x591F;&#x7B80;&#x5355;&#x5730;&#x8BBE;&#x7F6E;&#x4E00;&#x4E2A;API&#x5BC6;&#x94A5;&#x6765;&#x8BBE;&#x7F6E;&#x6570;&#x636E;&#x5E93;&#xFF0C;&#x5C31;&#x80FD;&#x8BA9;&#x6211;&#x5FC3;&#x91CC;&#x8F7B;&#x677E;&#x5F88;&#x591A;&#xFF0C;&#x8FD9;&#x5728;&#x5F00;&#x59CB;&#x4E00;&#x4E2A;&#x9879;&#x76EE;&#x7684;&#x521D;&#x671F;&#x975E;&#x5E38;&#x91CD;&#x8981;&#xFF0C;&#x56E0;&#x4E3A;&#x65F6;&#x95F4;&#x771F;&#x7684;&#x662F;&#x975E;&#x5E38;&#x91CD;&#x8981;&#x7684;&#xFF0C;&#x70ED;&#x60C5;&#x4F1A;&#x968F;&#x7740;&#x65F6;&#x95F4;&#x7684;&#x63A8;&#x79FB;&#x800C;&#x6D88;&#x9000;&#x3002;&#x7F16;&#x7A0B;&#x662F;&#x65E0;&#x804A;&#x7684;&#xFF0C;&#x5C31;&#x6211;&#x4E2A;&#x4EBA;&#x800C;&#x8A00;&#xFF0C;&#x5B83;&#x771F;&#x7684;&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x5FC3;&#x7406;&#x6E38;&#x620F;&#xFF0C;&#x8981;&#x4E0D;&#x65AD;&#x627E;&#x5230;&#x5728;&#x5F00;&#x53D1;&#x9879;&#x76EE;&#x65F6;&#x83B7;&#x53D6;&#x591A;&#x5DF4;&#x80FA;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x4EE5;&#x4FDD;&#x6301;&#x6211;&#x5BF9;&#x6B64;&#x7684;&#x5174;&#x8DA3;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[Golang 开源项目2023年终盘点]]></title><description><![CDATA[作为一名程序员， 我平时非常关注关于Go, Python, Java, C#和Javascript相关的一些开源项目， 这里我整理了一份目前最受欢迎的一些Golang开源项目， 按照Github上Star的数量排序， 依次是]]></description><link>https://liangbo.me/golang-e5-bc-80-e6-ba-90-e9-a1-b9-e7-9b-ae2023-e5-b9-b4-e7-bb-88-e7-9b-98-e7-82-b9/</link><guid isPermaLink="false">66860f1cb6891c0001494cbe</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Fri, 29 Dec 2023 03:41:36 GMT</pubDate><content:encoded><![CDATA[<p>&#x4F5C;&#x4E3A;&#x4E00;&#x540D;&#x7A0B;&#x5E8F;&#x5458;&#xFF0C; &#x6211;&#x5E73;&#x65F6;&#x975E;&#x5E38;&#x5173;&#x6CE8;&#x5173;&#x4E8E;Go, Python, Java, C#&#x548C;Javascript&#x76F8;&#x5173;&#x7684;&#x4E00;&#x4E9B;&#x5F00;&#x6E90;&#x9879;&#x76EE;&#xFF0C; &#x8FD9;&#x91CC;&#x6211;&#x6574;&#x7406;&#x4E86;&#x4E00;&#x4EFD;&#x76EE;&#x524D;&#x6700;&#x53D7;&#x6B22;&#x8FCE;&#x7684;&#x4E00;&#x4E9B;Golang&#x5F00;&#x6E90;&#x9879;&#x76EE;&#xFF0C; &#x6309;&#x7167;Github&#x4E0A;Star&#x7684;&#x6570;&#x91CF;&#x6392;&#x5E8F;&#xFF0C; &#x4F9D;&#x6B21;&#x662F;</p><h3 id="project-based-learning">project-based-learning</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/practical-tutorials/project-based-learning?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - practical-tutorials/project-based-learning: Curated list of project-based tutorials</div><div class="kg-bookmark-description">Curated list of project-based tutorials. Contribute to practical-tutorials/project-based-learning development by&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-juehyjfaydaz-xbb.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x7F16;&#x7A0B;&#x76F8;&#x5173;&#x6559;&#x7A0B;&#x5217;&#x8868;&#xFF0C;&#x4E3A;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x53EF;&#x4EE5;&#x5728;&#x5176;&#x4E2D;&#x5B66;&#x4E60;&#x5982;&#x4F55;&#x4ECE;&#x5934;&#x5F00;&#x59CB;&#x6784;&#x5EFA;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x3002; &#x8FD9;&#x4E9B;&#x6559;&#x7A0B;&#x5206;&#x4E3A;&#x4E0D;&#x540C;&#x7684;&#x4E3B;&#x8981;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x3002; &#x6559;&#x7A0B;&#x53EF;&#x80FD;&#x6D89;&#x53CA;&#x591A;&#x79CD;&#x6280;&#x672F;&#x548C;&#x8BED;&#x8A00;&#x3002;144k stars</p><h3 id="go">go</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/golang/go?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - golang/go: The Go programming language</div><div class="kg-bookmark-description">The Go programming language. Contribute to golang/go development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-b3kz8klcrniio8at.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>Go&#x662F;&#x4E00;&#x95E8;&#x7F16;&#x8BD1;&#x578B;&#x7684;&#x548C;&#x9759;&#x6001;&#x7684;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x3002; Go&#x8BDE;&#x751F;&#x4E8E;&#x8C37;&#x6B4C;&#x7814;&#x7A76;&#x9662;&#x3002; Go&#x7684;&#x6838;&#x5FC3;&#x8BBE;&#x8BA1;&#x6210;&#x5458;&#x4E2D;&#x5305;&#x62EC;&#x5F88;&#x591A;&#x6709;&#x7740;&#x6570;&#x5341;&#x5E74;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x7814;&#x7A76;&#x9886;&#x57DF;&#x7ECF;&#x9A8C;&#x7684;&#x7814;&#x7A76;&#x8005;&#x3002;</p><p>Go&#x6709;&#x5F88;&#x591A;&#x7279;&#x6027;&#xFF0C;&#x6709;&#x4E00;&#x4E9B;&#x662F;&#x72EC;&#x7279;&#x7684;&#xFF0C;&#x6709;&#x4E00;&#x4E9B;&#x501F;&#x9274;&#x4E8E;&#x4E00;&#x4E9B;&#x5176;&#x5B83;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#xFF1A;</p><ul><li>&#x5185;&#x7F6E;&#x5E76;&#x53D1;&#x7F16;&#x7A0B;&#x652F;&#x6301;&#xFF1A;</li><li>&#x4F7F;&#x7528;&#x534F;&#x7A0B;&#xFF08;goroutine&#xFF09;&#x505A;&#x4E3A;&#x57FA;&#x672C;&#x7684;&#x8BA1;&#x7B97;&#x5355;&#x5143;&#x3002;&#x8F7B;&#x677E;&#x5730;&#x521B;&#x5EFA;&#x534F;&#x7A0B;&#x3002;</li><li>&#x4F7F;&#x7528;&#x901A;&#x9053;&#xFF08;channel&#xFF09;&#x6765;&#x5B9E;&#x73B0;&#x534F;&#x7A0B;&#x95F4;&#x7684;&#x540C;&#x6B65;&#x548C;&#x901A;&#x4FE1;&#x3002;</li><li>&#x5185;&#x7F6E;&#x4E86;&#x6620;&#x5C04;&#xFF08;map&#xFF09;&#x548C;&#x5207;&#x7247;&#xFF08;slice&#xFF09;&#x7C7B;&#x578B;&#x3002;</li><li>&#x652F;&#x6301;&#x591A;&#x6001;&#xFF08;polymorphism&#xFF09;&#x3002;</li><li>&#x4F7F;&#x7528;&#x63A5;&#x53E3;&#xFF08;interface&#xFF09;&#x6765;&#x5B9E;&#x73B0;&#x88DD;&#x76D2;&#xFF08;value boxing&#xFF09;&#x548C;&#x53CD;&#x5C04;&#xFF08;reflection&#xFF09;&#x3002;</li><li>&#x652F;&#x6301;&#x6307;&#x9488;&#x3002;</li><li>&#x652F;&#x6301;&#x51FD;&#x6570;&#x95ED;&#x5305;&#xFF08;closure&#xFF09;&#x3002;</li><li>&#x652F;&#x6301;&#x65B9;&#x6CD5;&#x3002;</li><li>&#x652F;&#x6301;&#x5EF6;&#x8FDF;&#x51FD;&#x6570;&#x8C03;&#x7528;&#xFF08;defer&#xFF09;&#x3002;</li><li>&#x652F;&#x6301;&#x7C7B;&#x578B;&#x5185;&#x5D4C;&#xFF08;type embedding&#xFF09;&#x3002;</li><li>&#x652F;&#x6301;&#x7C7B;&#x578B;&#x63A8;&#x65AD;&#xFF08;type deduction or type inference&#xFF09;&#x3002;</li><li>&#x5185;&#x5B58;&#x5B89;&#x5168;&#x3002;</li><li>&#x81EA;&#x52A8;&#x5783;&#x573E;&#x56DE;&#x6536;&#x3002;</li><li>&#x826F;&#x597D;&#x7684;&#x4EE3;&#x7801;&#x8DE8;&#x5E73;&#x53F0;&#x6027;&#x3002;</li><li>&#x81EA;&#x5B9A;&#x4E49;&#x6CDB;&#x578B;&#xFF08;&#x4ECE;Go 1.18&#x5F00;&#x59CB;&#xFF09;&#x3002;</li></ul><p>117k stars.</p><h3 id="awesome-go">awesome-go</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/avelino/awesome-go?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - avelino/awesome-go: A curated list of awesome Go frameworks, libraries and software</div><div class="kg-bookmark-description">A curated list of awesome Go frameworks, libraries and software - GitHub - avelino/awesome-go: A curated list of&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-cwmu2tpn13bkhjg4.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>Awesome Go, Golang&#x76F8;&#x5173;&#x8D44;&#x6599;&#x7684;&#x7CBE;&#x9009;&#x5217;&#x8868;&#xFF0C; &#x5305;&#x542B;&#x6846;&#x67B6;&#x3001;&#x5E93;&#x548C;&#x6210;&#x54C1;&#x8F6F;&#x4EF6;&#xFF0C; &#x5B83;&#x65E0;&#x9700;&#x6708;&#x8D39;&#xFF0C;&#x8D21;&#x732E;&#x8005;&#x4EEC;&#x901A;&#x8FC7;&#x52AA;&#x529B;&#x5DE5;&#x4F5C;&#x6765;&#x7EF4;&#x6301;&#x5B83;&#x7684;&#x8FD0;&#x884C;&#x3002; &#x7528;&#x7B79;&#x96C6;&#x5230;&#x7684;&#x5584;&#x6B3E;&#x6765;&#x56DE;&#x62A5;&#x6BCF;&#x4E00;&#x4F4D;&#x53C2;&#x4E0E;&#x8005;&#x7684;&#x52AA;&#x529B;&#xFF01; &#x60A8;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x9879;&#x76EE;&#x5982;&#x4F55;&#x8BA1;&#x7B97;&#x8BA1;&#x8D39;&#x548C;&#x5206;&#x914D;&#x52DF;&#x96C6;&#x5230;&#x7684;&#x8D44;&#x91D1;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x5411;&#x6574;&#x4E2A;&#x793E;&#x533A;&#x5F00;&#x653E;&#x3002;</p><p>114k stars</p><h3 id="caddy">Caddy</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/caddyserver/caddy?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - caddyserver/caddy: Fast and extensible multi-platform HTTP/1-2-3 web server with automatic&#x2026;</div><div class="kg-bookmark-description">Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS - GitHub - caddyserver/caddy: Fast and&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-w4kbv7won-qyvzc5.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>&#x5728;&#x8FFD;&#x6C42;&#x6027;&#x80FD;&#x7684;&#x9053;&#x8DEF;&#x4E0A;&#xFF0C;nginx&#x5DF2;&#x7ECF;&#x4E00;&#x9A91;&#x7EDD;&#x5C18;&#x3002;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#x8BDE;&#x751F;&#x7684; Caddy&#x6709;&#x4EC0;&#x4E48;&#x7279;&#x6027;&#x5462;&#xFF1F;</p><p>Caddy&#x7684;&#x4F5C;&#x8005;Matt Holt&#x6709;&#x8FD9;&#x6837;&#x7684;&#x7406;&#x5FF5;&#xFF1A; &#x5176;&#x4ED6;Web Server&#x4E3A;Web&#x800C;&#x8BBE;&#x8BA1;&#xFF0C;Caddy&#x4E3A;human&#x8BBE;&#x8BA1;&#x3002;&#x4E00;&#x53E5;&#x8BDD;&#x5C31;&#x662F; Caddy&#x4E3B;&#x6253;&#x6613;&#x7528;&#x6027;&#xFF0C;&#x4F7F;&#x7528;&#x914D;&#x7F6E;&#x7B80;&#x5355;&#x3002;</p><p>Caddy&#x6709;&#x4E0B;&#x9762;&#x8FD9;&#x4E9B;&#x5F00;&#x7BB1;&#x5373;&#x7528;&#x7684;&#x7279;&#x6027;:</p><ul><li>&#x5168;&#x81EA;&#x52A8;&#x652F;&#x6301;HTTP/2&#x534F;&#x8BAE;&#xFF0C;&#x65E0;&#x9700;&#x4EFB;&#x4F55;&#x914D;&#x7F6E;&#x3002;</li><li>Caddy &#x4F7F;&#x7528; Let&#x2019;s Encrypt &#x8BA9;&#x4F60;&#x7684;&#x7AD9;&#x70B9;&#x5168;&#x81EA;&#x52A8;&#x53D8;&#x6210;HTTPS&#xFF0C;&#x65E0;&#x9700;&#x4EFB;&#x4F55;&#x914D;&#x7F6E;&#x3002;</li><li>&#x5408;&#x7406;&#x4F7F;&#x7528;&#x591A;&#x6838;&#x591A;&#x6838; &#x5F97;&#x76CA;&#x4E8E;go&#x7684;&#x7279;&#x6027;</li><li>&#x5B8C;&#x5168;&#x652F;&#x6301;IPv6&#x73AF;&#x5883;</li><li>Caddy &#x5BF9;WebSockets&#x6709;&#x5F88;&#x597D;&#x7684;&#x652F;&#x6301;</li><li>&#x81EA;&#x52A8;&#x628A;Markdown&#x8F6C;&#x6210; HTML</li><li>Caddy &#x5BF9;log&#x683C;&#x5F0F;&#x7684;&#x5B9A;&#x4E49;&#x5F88;&#x5BB9;&#x6613;</li><li>&#x6613;&#x4E8E;&#x90E8;&#x7F72; &#x5F97;&#x76CA;&#x4E8E;go&#x7684;&#x7279;&#x6027;&#xFF0C;caddy&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x5C0F;&#x5C0F;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;&#xFF0C;&#x6CA1;&#x6709;&#x4F9D;&#x8D56;&#xFF0C;&#x5F88;&#x597D;&#x90E8;&#x7F72;</li><li>&#x5F97;&#x76CA;&#x4E8E;Go&#x7684;&#x8DE8;&#x5E73;&#x53F0;&#x7279;&#x6027;&#xFF0C;Caddy&#x5F88;&#x5BB9;&#x6613;&#x7684;&#x652F;&#x6301;&#x4E86;&#x4E09;&#x5927;&#x4E3B;&#x6D41;&#x7CFB;&#x7EDF;&#xFF1A;Windows&#x3001; Linux&#x3001;Mac</li></ul><blockquote><em>&#x201C;&#x51E0;&#x4E4E;&#x6240;&#x6709;&#x7684;&#x529F;&#x80FD;&#x5728;Caddy&#x91CC;&#x7684;&#x90FD;&#x662F;&#x63D2;&#x4EF6;&#xFF0C;HTTP&#x670D;&#x52A1;&#x5668;&#x662F;&#x63D2;&#x4EF6;&#xFF0C;&#x9AD8;&#x7EA7;&#x7684;TLS&#x7279;&#x6027;&#x4E5F;&#x662F;&#x63D2;&#x4EF6;&#xFF0C;&#x6BCF;&#x4E00;&#x884C;&#x547D;&#x4EE4;&#x5B9E;&#x73B0;&#x7684;&#x529F;&#x80FD;&#x90FD;&#x662F;&#x4E00;&#x4E2A;&#x63D2;&#x4EF6;&#x201D;</em></blockquote><p>51.3k stars</p><h3 id="act">act</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/nektos/act?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - nektos/act: Run your GitHub Actions locally &#x1F680;</div><div class="kg-bookmark-description">Run your GitHub Actions locally &#x1F680;. Contribute to nektos/act development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-roe9e2ovnl6n_mb4.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p><code>act</code> &#x662F;&#x4E00;&#x4E2A; <code>github action</code> &#x7684;&#x672C;&#x5730;&#x8FD0;&#x884C;&#x5DE5;&#x5177;&#xFF0C;&#x53EF;&#x4EE5;&#x5728;&#x672C;&#x5730;&#x8FD0;&#x884C; <code>github action</code> &#x7684; <code>workflow</code>&#xFF0C;&#x65B9;&#x4FBF;&#x8C03;&#x8BD5;&#x3002;</p><p>46.3k stars</p><h3 id="traefik">traefik</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/traefik/traefik?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - traefik/traefik: The Cloud Native Application Proxy</div><div class="kg-bookmark-description">The Cloud Native Application Proxy. Contribute to traefik/traefik development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-xs6hefj0jw9fhpsl.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>Traefik &#xFF08;&#x53D1;&#x97F3;&#x548C; traffic &#x76F8;&#x540C;&#xFF0C;&#x91C7;&#x7528; Golang &#x7F16;&#x5199;&#xFF09;&#x662F;&#x4E00;&#x4E2A;&#x4E91;&#x539F;&#x751F;&#x7684;&#x65B0;&#x578B;&#x7684; HTTP &#x53CD;&#x5411;&#x4EE3;&#x7406;&#x3001;&#x8D1F;&#x8F7D;&#x5747;&#x8861;&#x8F6F;&#x4EF6;&#x3002;&#x5B83;&#x8D1F;&#x8D23;&#x63A5;&#x6536;&#x7CFB;&#x7EDF;&#x7684;&#x8BF7;&#x6C42;&#xFF0C;&#x7136;&#x540E;&#x4F7F;&#x7528;&#x5408;&#x9002;&#x7684;&#x7EC4;&#x4EF6;&#x6765;&#x5BF9;&#x8FD9;&#x4E9B;&#x8BF7;&#x6C42;&#x8FDB;&#x884C;&#x5904;&#x7406;&#x3002;Traefik &#x517C;&#x5BB9;&#x6240;&#x6709;&#x4E3B;&#x6D41;&#x7684;&#x96C6;&#x7FA4;&#x6280;&#x672F;&#xFF0C;&#x6BD4;&#x5982; Kubernetes&#xFF0C;Docker&#xFF0C;Docker Swarm&#xFF0C;AWS&#xFF0C;Mesos&#xFF0C;Marathon&#xFF0C;&#x7B49;&#x7B49;&#xFF1B;&#x5E76;&#x4E14;&#x53EF;&#x4EE5;&#x540C;&#x65F6;&#x5904;&#x7406;&#x591A;&#x79CD;&#x65B9;&#x5F0F;&#x3002;&#xFF08;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x7528;&#x4E8E;&#x5728;&#x88F8;&#x673A;&#x4E0A;&#x8FD0;&#x884C;&#x7684;&#x6BD4;&#x8F83;&#x65E7;&#x7684;&#x8F6F;&#x4EF6;&#x3002;&#xFF09;</p><p>&#x4F7F;&#x7528; Traefik&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x7EF4;&#x62A4;&#x6216;&#x8005;&#x540C;&#x6B65;&#x4E00;&#x4E2A;&#x72EC;&#x7ACB;&#x7684;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#xFF1A;&#x56E0;&#x4E3A;&#x4E00;&#x5207;&#x90FD;&#x4F1A;&#x81EA;&#x52A8;&#x914D;&#x7F6E;&#xFF0C;&#x5B9E;&#x65F6;&#x64CD;&#x4F5C;&#x7684;&#xFF08;&#x65E0;&#x9700;&#x91CD;&#x65B0;&#x542F;&#x52A8;&#xFF0C;&#x4E0D;&#x4F1A;&#x4E2D;&#x65AD;&#x8FDE;&#x63A5;&#xFF09;&#x3002;&#x4F7F;&#x7528; Traefik&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x82B1;&#x66F4;&#x591A;&#x7684;&#x65F6;&#x95F4;&#x5728;&#x7CFB;&#x7EDF;&#x7684;&#x5F00;&#x53D1;&#x548C;&#x65B0;&#x529F;&#x80FD;&#x4E0A;&#x9762;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5728;&#x914D;&#x7F6E;&#x548C;&#x7EF4;&#x62A4;&#x5DE5;&#x4F5C;&#x72B6;&#x6001;&#x4E0A;&#x9762;&#x82B1;&#x8D39;&#x5927;&#x91CF;&#x65F6;&#x95F4;&#x3002;</p><p>Traefik &#x4E5F;&#x88AB;&#x79F0;&#x4E4B;&#x4E3A;&#x8FB9;&#x7F18;&#x8DEF;&#x7531;&#x5668;&#xFF08;Edge Router&#xFF09;&#xFF0C;&#x662F;&#x4F60;&#x6574;&#x4E2A;&#x5E73;&#x53F0;&#x7684;&#x5927;&#x95E8;&#xFF0C;&#x62E6;&#x622A;&#x5E76;&#x8DEF;&#x7531;&#x6BCF;&#x4E2A;&#x4F20;&#x5165;&#x7684;&#x8BF7;&#x6C42;&#xFF1A;&#x5B83;&#x77E5;&#x9053;&#x6240;&#x6709;&#x7684;&#x903B;&#x8F91;&#x548C;&#x89C4;&#x5219;&#xFF0C;&#x8FD9;&#x4E9B;&#x89C4;&#x5219;&#x786E;&#x5B9A;&#x54EA;&#x4E9B;&#x670D;&#x52A1;&#x5904;&#x7406;&#x54EA;&#x4E9B;&#x8BF7;&#x6C42;&#xFF1B;&#x4F20;&#x7EDF;&#x7684;&#x53CD;&#x5411;&#x4EE3;&#x7406;&#x9700;&#x8981;&#x4E00;&#x4E2A;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#xFF0C;&#x5176;&#x4E2D;&#x5305;&#x542B;&#x8DEF;&#x7531;&#x5230;&#x4F60;&#x670D;&#x52A1;&#x7684;&#x6240;&#x6709;&#x53EF;&#x80FD;&#x8DEF;&#x7531;&#xFF0C;&#x800C; Traefik &#x4F1A;&#x5B9E;&#x65F6;&#x68C0;&#x6D4B;&#x670D;&#x52A1;&#x5E76;&#x81EA;&#x52A8;&#x66F4;&#x65B0;&#x8DEF;&#x7531;&#x89C4;&#x5219;&#xFF0C;&#x53EF;&#x4EE5;&#x81EA;&#x52A8;&#x670D;&#x52A1;&#x53D1;&#x73B0;&#x3002;</p><p>46k stars</p><h3 id="v2ray-core">v2ray-core</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/v2ray/v2ray-core?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - v2ray/v2ray-core: A platform for building proxies to bypass network restrictions.</div><div class="kg-bookmark-description">A platform for building proxies to bypass network restrictions. - GitHub - v2ray/v2ray-core: A platform for building&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-meqbryyuyddq_rt_.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>V2Ray&#x662F;&#x4E00;&#x4E2A;&#x4F18;&#x79C0;&#x7684;&#x5F00;&#x6E90;&#x7F51;&#x7EDC;&#x4EE3;&#x7406;<a href="https://www.fly63.com/tool?ref=liangbo.me" rel="noopener">&#x5DE5;&#x5177;</a>&#xFF0C;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x4F60;&#x7545;&#x723D;&#x4F53;&#x9A8C;&#x4E92;&#x8054;&#x7F51;&#xFF0C;&#x76EE;&#x524D;&#x5DF2;&#x7ECF;&#x5168;&#x5E73;&#x53F0;&#x652F;&#x6301;Windows&#x3001;Mac&#x3001;Android&#x3001;IOS&#x3001;Linux&#x7B49;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x7684;&#x4F7F;&#x7528;&#x3002;&#x76F8;&#x5BF9;&#x8D77;Shadowsocks&#x6765;&#x8BF4;&#x5C5E;&#x4E8E;&#x540E;&#x8D77;&#x4E4B;&#x79C0;&#xFF0C;&#x5728;&#x6DF7;&#x6DC6;&#x80FD;&#x529B;&#x3001;&#x517C;&#x5BB9;&#x6027;&#x3001;&#x901F;&#x5EA6;&#x4E0A;&#x6709;&#x7740;&#x72EC;&#x5230;&#x7684;&#x4F18;&#x70B9;&#x3002;</p><p>44.2k stars</p><h3 id="golang-standardsproject-layout">golang-standards/project-layout</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/golang-standards/project-layout?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - golang-standards/project-layout: Standard Go Project Layout</div><div class="kg-bookmark-description">Standard Go Project Layout. Contribute to golang-standards/project-layout development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-kssxp8ulmoycg4gm.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>&#x8FD9;&#x662F; Go &#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x9879;&#x76EE;&#x7684;&#x57FA;&#x672C;&#x5E03;&#x5C40;&#x3002;&#x5B83;&#x4E0D;&#x662F;&#x6838;&#x5FC3; Go &#x5F00;&#x53D1;&#x56E2;&#x961F;&#x5B9A;&#x4E49;&#x7684;&#x5B98;&#x65B9;&#x6807;&#x51C6;&#xFF1B;&#x7136;&#x800C;&#xFF0C;&#x5B83;&#x662F; Go &#x751F;&#x6001;&#x7CFB;&#x7EDF;&#x4E2D;&#x4E00;&#x7EC4;&#x5E38;&#x89C1;&#x7684;&#x8001;&#x9879;&#x76EE;&#x548C;&#x65B0;&#x9879;&#x76EE;&#x7684;&#x5E03;&#x5C40;&#x6A21;&#x5F0F;&#x3002;&#x5176;&#x4E2D;&#x4E00;&#x4E9B;&#x6A21;&#x5F0F;&#x6BD4;&#x5176;&#x4ED6;&#x6A21;&#x5F0F;&#x66F4;&#x53D7;&#x6B22;&#x8FCE;&#x3002;&#x5B83;&#x8FD8;&#x5177;&#x6709;&#x8BB8;&#x591A;&#x5C0F;&#x7684;&#x589E;&#x5F3A;&#xFF0C;&#x4EE5;&#x53CA;&#x5BF9;&#x4EFB;&#x4F55;&#x8DB3;&#x591F;&#x5927;&#x7684;&#x5B9E;&#x9645;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x901A;&#x7528;&#x7684;&#x51E0;&#x4E2A;&#x652F;&#x6301;&#x76EE;&#x5F55;&#x3002;</p><p>&#x5982;&#x679C;&#x4F60;&#x5C1D;&#x8BD5;&#x5B66;&#x4E60; Go&#xFF0C;&#x6216;&#x8005;&#x4F60;&#x6B63;&#x5728;&#x4E3A;&#x81EA;&#x5DF1;&#x5EFA;&#x7ACB;&#x4E00;&#x4E2A; PoC &#x6216;&#x4E00;&#x4E2A;&#x73A9;&#x5177;&#x9879;&#x76EE;&#xFF0C;&#x8FD9;&#x4E2A;&#x9879;&#x76EE;&#x5E03;&#x5C40;&#x662F;&#x6CA1;&#x5565;&#x5FC5;&#x8981;&#x7684;&#x3002;&#x4ECE;&#x4E00;&#x4E9B;&#x975E;&#x5E38;&#x7B80;&#x5355;&#x7684;&#x4E8B;&#x60C5;&#x5F00;&#x59CB;(&#x4E00;&#x4E2A; <code>main.go</code> &#x6587;&#x4EF6;&#x7EF0;&#x7EF0;&#x6709;&#x4F59;)&#x3002;&#x968F;&#x7740;&#x9879;&#x76EE;&#x7684;&#x589E;&#x957F;&#xFF0C;&#x8BF7;&#x8BB0;&#x4F4F;&#x4FDD;&#x6301;&#x4EE3;&#x7801;&#x7ED3;&#x6784;&#x826F;&#x597D;&#x975E;&#x5E38;&#x91CD;&#x8981;&#xFF0C;&#x5426;&#x5219;&#x4F60;&#x6700;&#x7EC8;&#x4F1A;&#x5F97;&#x5230;&#x4E00;&#x4E2A;&#x51CC;&#x4E71;&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x8FD9;&#x5176;&#x4E2D;&#x5C31;&#x5305;&#x542B;&#x5927;&#x91CF;&#x9690;&#x85CF;&#x7684;&#x4F9D;&#x8D56;&#x9879;&#x548C;&#x5168;&#x5C40;&#x72B6;&#x6001;&#x3002;&#x5F53;&#x6709;&#x66F4;&#x591A;&#x7684;&#x4EBA;&#x53C2;&#x4E0E;&#x8FD9;&#x4E2A;&#x9879;&#x76EE;&#x65F6;&#xFF0C;&#x4F60;&#x5C06;&#x9700;&#x8981;&#x66F4;&#x591A;&#x7684;&#x7ED3;&#x6784;&#x3002;&#x8FD9;&#x65F6;&#x5019;&#xFF0C;&#x4ECB;&#x7ECD;&#x4E00;&#x79CD;&#x7BA1;&#x7406;&#x5305;/&#x5E93;&#x7684;&#x901A;&#x7528;&#x65B9;&#x6CD5;&#x662F;&#x5F88;&#x91CD;&#x8981;&#x7684;&#x3002;&#x5F53;&#x4F60;&#x6709;&#x4E00;&#x4E2A;&#x5F00;&#x6E90;&#x9879;&#x76EE;&#x65F6;&#xFF0C;&#x6216;&#x8005;&#x5F53;&#x4F60;&#x77E5;&#x9053;&#x5176;&#x4ED6;&#x9879;&#x76EE;&#x4ECE;&#x4F60;&#x7684;&#x9879;&#x76EE;&#x5B58;&#x50A8;&#x5E93;&#x4E2D;&#x5BFC;&#x5165;&#x4EE3;&#x7801;&#x65F6;&#xFF0C;&#x8FD9;&#x65F6;&#x5019;&#x62E5;&#x6709;&#x79C1;&#x6709;(&#x53C8;&#x540D; <code>internal</code>)&#x5305;&#x548C;&#x4EE3;&#x7801;&#x5C31;&#x5F88;&#x91CD;&#x8981;&#x3002;&#x514B;&#x9686;&#x5B58;&#x50A8;&#x5E93;&#xFF0C;&#x4FDD;&#x7559;&#x4F60;&#x9700;&#x8981;&#x7684;&#x5185;&#x5BB9;&#xFF0C;&#x5220;&#x9664;&#x5176;&#x4ED6;&#x6240;&#x6709;&#x7684;&#x5185;&#x5BB9;&#xFF01;&#x4EC5;&#x4EC5;&#x56E0;&#x4E3A;&#x5B83;&#x5728;&#x90A3;&#x91CC;&#x5E76;&#x4E0D;&#x610F;&#x5473;&#x7740;&#x4F60;&#x5FC5;&#x987B;&#x5168;&#x90E8;&#x4F7F;&#x7528;&#x5B83;&#x3002;&#x8FD9;&#x4E9B;&#x6A21;&#x5F0F;&#x90FD;&#x6CA1;&#x6709;&#x5728;&#x6BCF;&#x4E2A;&#x9879;&#x76EE;&#x4E2D;&#x4F7F;&#x7528;&#x3002;&#x751A;&#x81F3; <code>vendor</code> &#x6A21;&#x5F0F;&#x4E5F;&#x4E0D;&#x662F;&#x901A;&#x7528;&#x7684;&#x3002;</p><p>43.7k stars</p><h3 id="rclone">rclone</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/rclone/rclone?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - rclone/rclone: &quot;rsync for cloud storage&quot; - Google Drive, S3, Dropbox, Backblaze B2, One&#x2026;</div><div class="kg-bookmark-description">&quot;rsync for cloud storage&quot; - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-fqyfj-pcwmkfgb7z.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p><code>Rclone</code> &#x662F;&#x4E00;&#x4E2A;&#x547D;&#x4EE4;&#x884C;&#x7A0B;&#x5E8F;&#xFF0C;&#x7528;&#x4E8E;&#x7BA1;&#x7406;&#x4E91;&#x5B58;&#x50A8;&#x4E0A;&#x7684;&#x6587;&#x4EF6;&#x3002;&#x5B83;&#x662F;&#x4E91;&#x4F9B;&#x5E94;&#x5546; Web &#x5B58;&#x50A8;&#x63A5;&#x53E3;&#x7684;&#x529F;&#x80FD;&#x4E30;&#x5BCC;&#x7684;&#x66FF;&#x4EE3;&#x65B9;&#x6848;&#x3002;&#x8D85;&#x8FC7; 70 &#x79CD;&#x4E91;&#x5B58;&#x50A8;&#x4EA7;&#x54C1;&#x652F;&#x6301; <code>Rclone</code>&#xFF0C;&#x5305;&#x62EC; S3 &#x5BF9;&#x8C61;&#x5B58;&#x50A8;&#x3001;&#x5546;&#x4E1A;&#x548C;&#x6D88;&#x8D39;&#x8005;&#x6587;&#x4EF6;&#x5B58;&#x50A8;&#x670D;&#x52A1;&#x4EE5;&#x53CA;&#x6807;&#x51C6;&#x4F20;&#x8F93;&#x534F;&#x8BAE;&#x3002;</p><p>41.8k stars</p><h3 id="gitea">Gitea</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/go-gitea/gitea?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - go-gitea/gitea: Git with a cup of tea! Painless self-hosted all-in-one software&#x2026;</div><div class="kg-bookmark-description">Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-ovwu45-0x82pgcmq.jpg" alt></div></a></figure>
<!--kg-card-end: html-->
<p>Gitea &#x662F;&#x4E00;&#x6B3E;&#x4F7F;&#x7528; Golang &#x7F16;&#x5199;&#x7684;&#x53EF;&#x81EA;&#x8FD0;&#x8425;&#x7684;&#x4EE3;&#x7801;&#x7BA1;&#x7406;&#x5DE5;&#x5177;&#x3002;</p><p>&#x5728;&#x8FD9;&#x4E2A;&#x9886;&#x57DF;&#xFF0C;&#x540D;&#x6C14;&#x6700;&#x54CD;&#x7684;&#x5E94;&#x8BE5;&#x662F; Gitlab&#x3002;</p><p>&#x4F46;&#x5B9E;&#x9645;&#x4F7F;&#x7528;&#x4E2D;Gitlab&#x4E5F;&#x6709;&#x70B9;&#x95EE;&#x9898;&#xFF0C;&#x9996;&#x5148;&#x5C31;&#x662F;&#x8D44;&#x6E90;&#x5360;&#x7528;&#x3002;Gitlab &#x662F;&#x4F7F;&#x7528; ruby &#x7F16;&#x5199;&#x7684;&#xFF0C;&#x597D;&#x51E0;&#x5E74;&#x4E4B;&#x524D;&#x521A;&#x51FA;&#x6765;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x4E00;&#x53F0;1G&#x5185;&#x5B58;&#x7684;&#x865A;&#x62DF;&#x4E3B;&#x673A;&#x8FDE;&#x5B89;&#x88C5;&#x8FD0;&#x884C;&#x90FD;&#x505A;&#x4E0D;&#x5230;&#xFF0C;&#x7740;&#x5B9E;&#x9707;&#x60CA;&#x3002;</p><p>&#x65F6;&#x81F3;&#x4ECA;&#x65E5;&#x90FD;&#x5DF2;&#x7ECF;&#x53D1;&#x5C55;&#x5230;&#x4E86;&#x4EE5;docker&#x955C; &#x50CF;&#x5206;&#x53D1;&#xFF0C;gitlab &#x4ECD;&#x65E7;&#x4F1A;&#x6709;&#x4F53;&#x79EF;&#x548C;&#x8FD0;&#x884C;&#x65F6;&#x8D44;&#x6E90;&#x5360;&#x7528;&#x7684;&#x95EE;&#x9898;&#x3002;&#x53E6;&#x4E00;&#x70B9;&#x5C31;&#x662F;&#x529F;&#x80FD;&#xFF0C;&#x5BF9;&#x4E8E;&#x4E00;&#x822C;&#x6807;&#x51C6;&#x56E2;&#x961F;&#x6765;&#x8BF4;&#xFF0C;gitlab&#x7684;&#x529F;&#x80FD;&#x592A;&#x8FC7;&#x4E8E;&#x4E30;&#x5BCC;&#xFF0C;&#x8FD9;&#x662F;&#x5F80;&#x597D;&#x7684;&#x5730;&#x65B9;&#x8BF4;&#xFF0C;&#x5F80;&#x574F;&#x7684;&#x5730;&#x65B9;&#x8BF4;&#x5C31;&#x662F;&#x5B83;&#x5305;&#x542B;&#x4E86;&#x592A;&#x591A;&#x4E0D;&#x9700;&#x8981;&#x7684;&#x4E1C;&#x897F;&#xFF0C;&#x800C;&#x8FD9;&#x4E9B;&#x4E1C;&#x897F;&#x8FD8;&#x5360;&#x7528;&#x78C1;&#x76D8;&#x548C;&#x8FD0;&#x884C;&#x65F6;&#x8D44;&#x6E90;&#x3002;</p><p>&#x540C;&#x65F6; Gitlab &#x7684;&#x8BB8;&#x53EF;&#x8BC1;&#x653F;&#x7B56;&#x5BF9;&#x65B0;&#x7684;&#x7528;&#x6237;&#x4E5F;&#x4E0D;&#x662F;&#x975E;&#x5E38;&#x53CB;&#x597D;&#xFF0C;&#x4E3B;&#x8981;&#x5728;&#x4E8E;&#x4E0E;&#x5176;&#x4ED6;&#x5E73;&#x53F0;&#x7684;&#x540C;&#x6B65;&#x4E0A;&#x9762;&#x3002;</p><p>39.9k stars</p><h3 id="cobra">cobra</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/spf13/cobra?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - spf13/cobra: A Commander for modern Go CLI interactions</div><div class="kg-bookmark-description">A Commander for modern Go CLI interactions. Contribute to spf13/cobra development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-wkxkxe__e4fhsji0.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>cobra&#x65E2;&#x662F;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;&#x521B;&#x5EFA;&#x5F3A;&#x5927;&#x73B0;&#x4EE3;CLI&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x7684;&#x5E93;&#xFF0C;&#x4E5F;&#x662F;&#x4E00;&#x4E2A;&#x751F;&#x6210;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x548C;&#x547D;&#x4EE4;&#x6587;&#x4EF6;&#x7684;&#x7A0B;&#x5E8F;&#x3002;cobra&#x88AB;&#x7528;&#x5728;&#x5F88;&#x591A;go&#x8BED;&#x8A00;&#x7684;&#x9879;&#x76EE;&#x4E2D;&#xFF0C;&#x6BD4;&#x5982; Kubernetes&#x3001;Docker&#x3001;Istio&#x3001;ETCD&#x3001;Hugo&#x3001;Github CLI&#x7B49;&#x7B49;&#xFF0C;<a href="https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fspf13%2Fcobra%2Fblob%2Fmaster%2Fprojects_using_cobra.md&amp;ref=liangbo.me" rel="noopener">&#x6B64;&#x5217;&#x8868;</a>&#x5305;&#x542B;&#x5F88;&#x591A;&#x5E7F;&#x6CDB;&#x4F7F;&#x7528;cobra&#x7684;&#x9879;&#x76EE;&#x5217;&#x8868;</p><p>34.6k stars</p><h3 id="gorm">GORM</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/go-gorm/gorm?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - go-gorm/gorm: The fantastic ORM library for Golang, aims to be developer friendly</div><div class="kg-bookmark-description">The fantastic ORM library for Golang, aims to be developer friendly - GitHub - go-gorm/gorm: The fantastic ORM library&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-0z9jq1yhzmwz-7un.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>Gorm &#x662F; Golang &#x7684;&#x4E00;&#x4E2A; orm &#x6846;&#x67B6;&#x3002;ORM &#x662F;&#x901A;&#x8FC7;&#x5B9E;&#x4F8B;&#x5BF9;&#x8C61;&#x7684;&#x8BED;&#x6CD5;&#xFF0C;&#x5B8C;&#x6210;&#x5173;&#x7CFB;&#x578B; &#x6570;&#x636E;&#x5E93;&#x7684;&#x64CD;&#x4F5C;&#xFF0C;&#x662F;&#x201D;&#x5BF9;&#x8C61;-&#x5173;&#x7CFB;&#x6620;&#x5C04;&#x201D;(Object/Relational Mapping) &#x7684;&#x7F29;&#x5199;&#x3002;&#x4F7F;&#x7528; ORM &#x6846;&#x67B6;&#x53EF;&#x4EE5;&#x8BA9;&#x6211;&#x4EEC;&#x66F4;&#x65B9;&#x4FBF;&#x7684;&#x64CD;&#x4F5C;&#x6570;&#x636E;&#x5E93;&#x3002;</p><p>Gorm&#x5B98;&#x65B9;&#x652F;&#x6301;&#x7684;&#x6570;&#x636E;&#x5E93;&#x7C7B;&#x578B;&#x6709;: MySQL, PostgreSQL, SQlite, SQL Server</p><p>&#x4F5C;&#x8005;&#x662F;&#x4E2D;&#x56FD;&#x4EBA;&#xFF0C;&#x4E2D;&#x6587;&#x6587;&#x6863;&#x9F50;&#x5168;&#xFF0C;&#x5BF9;&#x5F00;&#x53D1;&#x8005;&#x53CB;&#x597D;&#xFF0C;&#x652F;&#x6301;&#x4E3B;&#x6D41;&#x6570;&#x636E;&#x5E93;&#x3002;</p><ul><li>&#x5168;&#x529F;&#x80FD; ORM</li><li>&#x5173;&#x8054; (&#x62E5;&#x6709;&#x4E00;&#x4E2A;&#xFF0C;&#x62E5;&#x6709;&#x591A;&#x4E2A;&#xFF0C;&#x5C5E;&#x4E8E;&#xFF0C;&#x591A;&#x5BF9;&#x591A;&#xFF0C;&#x591A;&#x6001;&#xFF0C;&#x5355;&#x8868;&#x7EE7;&#x627F;)</li><li>Create&#xFF0C;Save&#xFF0C;Update&#xFF0C;Delete&#xFF0C;Find &#x4E2D;&#x94A9;&#x5B50;&#x65B9;&#x6CD5;</li><li>&#x652F;&#x6301; Preload&#x3001;Joins &#x7684;&#x9884;&#x52A0;&#x8F7D;</li><li>&#x4E8B;&#x52A1;&#xFF0C;&#x5D4C;&#x5957;&#x4E8B;&#x52A1;&#xFF0C;Save Point&#xFF0C;Rollback To to Saved Point</li><li>Context&#x3001;&#x9884;&#x7F16;&#x8BD1;&#x6A21;&#x5F0F;&#x3001;DryRun &#x6A21;&#x5F0F;</li><li>&#x6279;&#x91CF;&#x63D2;&#x5165;&#xFF0C;FindInBatches&#xFF0C;Find/Create with Map&#xFF0C;&#x4F7F;&#x7528; SQL &#x8868;&#x8FBE;&#x5F0F;&#x3001;Context Valuer &#x8FDB;&#x884C; CRUD</li><li>SQL &#x6784;&#x5EFA;&#x5668;&#xFF0C;Upsert&#xFF0C;&#x9501;&#xFF0C;Optimizer/Index/Comment Hint&#xFF0C;&#x547D;&#x540D;&#x53C2;&#x6570;&#xFF0C;&#x5B50;&#x67E5;&#x8BE2;</li><li>&#x590D;&#x5408;&#x4E3B;&#x952E;&#xFF0C;&#x7D22;&#x5F15;&#xFF0C;&#x7EA6;&#x675F;</li><li>&#x81EA;&#x52A8;&#x8FC1;&#x79FB;</li><li>&#x81EA;&#x5B9A;&#x4E49; Logger</li><li>&#x7075;&#x6D3B;&#x7684;&#x53EF;&#x6269;&#x5C55;&#x63D2;&#x4EF6; API&#xFF1A;Database Resolver&#xFF08;&#x591A;&#x6570;&#x636E;&#x5E93;&#xFF0C;&#x8BFB;&#x5199;&#x5206;&#x79BB;&#xFF09;&#x3001;Prometheus&#x2026;</li><li>&#x6BCF;&#x4E2A;&#x7279;&#x6027;&#x90FD;&#x7ECF;&#x8FC7;&#x4E86;&#x6D4B;&#x8BD5;&#x7684;&#x91CD;&#x91CD;&#x8003;&#x9A8C;</li><li>&#x5F00;&#x53D1;&#x8005;&#x53CB;&#x597D;</li></ul><p>34.4k stars</p><h3 id="cli">cli</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/cli/cli?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - cli/cli: GitHub&apos;s official command line tool</div><div class="kg-bookmark-description">GitHub&apos;s official command line tool. Contribute to cli/cli development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-kf-pc6p7ev27vgct.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>&#x8FD9;&#x662F;Github&#x5B98;&#x65B9;&#x7684;cli&#x547D;&#x4EE4;&#x884C;&#x5DE5;&#x5177;&#xFF0C; &#x901A;&#x8FC7;&#x6B64;&#x5DE5;&#x5177;&#xFF0C; Github&#x5C06;&#x6240;&#x6709;&#x529F;&#x80FD;&#x5E26;&#x5230;&#x4E86;Terminal&#x7EC8;&#x7AEF;&#x4E0A;&#x3002;</p><p>34.1k stars</p><h3 id="alist">alist</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/alist-org/alist?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - alist-org/alist: &#x1F5C2;&#xFE0F;A file list/WebDAV program that supports multiple storages, powered by&#x2026;</div><div class="kg-bookmark-description">&#x1F5C2;&#xFE0F;A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / &#x4E00;&#x4E2A;&#x652F;&#x6301;&#x591A;&#x5B58;&#x50A8;&#x7684;&#x6587;&#x4EF6;&#x5217;&#x8868;/WebDAV&#x7A0B;&#x5E8F;&#xFF0C;&#x4F7F;&#x7528;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-esv5hqkodn_t-p_g.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>&#x4E00;&#x4E2A;&#x652F;&#x6301;&#x591A;&#x79CD;&#x5B58;&#x50A8;&#x7684;&#x6587;&#x4EF6;&#x5217;&#x8868;&#x7A0B;&#x5E8F;&#xFF0C; &#x4F7F;&#x7528;Gin&#x548C;Solidjs&#x5F00;&#x53D1;&#x3002;</p><p>1&#x3001;&#x652F;&#x6301;&#x591A;&#x5B58;&#x50A8;&#x5E73;&#x53F0;&#x3002;&#x4F8B;&#x5982;&#x672C;&#x5730;&#x5B58;&#x50A8;&#x3001;&#x963F;&#x91CC;&#x7F51;&#x76D8;&#x3001;&#x767E;&#x5EA6;&#x7F51;&#x76D8;&#x3001;360&#x7F51;&#x76D8;&#x3001;&#x5929;&#x7FFC;&#x7F51;&#x76D8;&#x3001;&#x8C37;&#x6B4C;&#x4E91;&#x5B58;&#x50A8;&#x3001;&#x53C8;&#x62CD;&#x4E91;&#x3001;&#x5938;&#x514B;&#x7F51;&#x76D8;&#x548C;&#x84DD;&#x594F;&#x4E91;&#x7B49;&#x7B49;&#x5E38;&#x7528;&#x7684;&#x7F51;&#x76D8;&#x3002;&#x603B;&#x4F53;&#x7B97;&#x4E0B;&#x6765;&#x5DEE;&#x4E0D;&#x591A;&#x652F;&#x6301;30&#x5DE6;&#x53F3;&#x7684;&#x7F51;&#x76D8;&#x5E73;&#x53F0;&#x3002;</p><p>2&#x3001;&#x914D;&#x7F6E;&#x7B80;&#x5355;&#x3002;&#x4E00;&#x4E2A;&#x5F3A;&#x5927;&#x7684;&#x7CFB;&#x7EDF;&#xFF0C;&#x4E00;&#x822C;&#x6765;&#x8BF4;&#xFF0C;&#x5B89;&#x88C5;&#x4E0E;&#x914D;&#x7F6E;&#x5C31;&#x5F88;&#x590D;&#x6742;&#x3002;AList&#x6070;&#x6070;&#x76F8;&#x53CD;&#x3002;&#x5B98;&#x65B9;&#x652F;&#x6301;&#x591A;&#x79CD;&#x5B89;&#x88C5;&#x65B9;&#x5F0F;&#xFF0C;&#x6E90;&#x7801;&#x5B89;&#x88C5;&#x3001;Docker&#x5B89;&#x88C5;&#x3001;&#x4E00;&#x952E;&#x5B89;&#x88C5;&#x7B49;&#x7B49;&#x5B89;&#x88C5;&#x65B9;&#x5F0F;&#x3002;&#x6BCF;&#x4E00;&#x79CD;&#x5B89;&#x88C5;&#x65B9;&#x5F0F;&#x90FD;&#x975E;&#x5E38;&#x7684;&#x7B80;&#x5355;&#xFF0C;&#x76F4;&#x63A5;&#x5B89;&#x88C5;&#x5B98;&#x7F51;&#x6587;&#x6863;&#x64CD;&#x4F5C;&#x5373;&#x53EF;&#x3002;</p><p>3&#x3001;&#x4F7F;&#x7528;&#x7B80;&#x5355;&#x3002;&#x5F53;&#x6211;&#x4EEC;&#x5B89;&#x88C5;&#x597D;&#x4E4B;&#x540E;&#xFF0C;&#x76F4;&#x63A5;&#x5C31;&#x53EF;&#x4EE5;&#x8BBF;&#x95EE;&#xFF0C;&#x4E0A;&#x4F20;&#x89C6;&#x9891;&#x3001;&#x56FE;&#x7247;&#x3001;&#x538B;&#x7F29;&#x5305;&#x548C;&#x5E38;&#x7528;&#x7684;&#x529E;&#x516C;&#x8F6F;&#x4EF6;&#x7B49;&#x7B49;&#x6587;&#x4EF6;&#x683C;&#x5F0F;&#xFF0C;&#x90FD;&#x662F;&#x652F;&#x6301;&#x7684;&#x3002;</p><p>4&#x3001;&#x4F53;&#x9A8C;&#x6027;&#x597D;&#x3002;&#x4E0A;&#x4F20;&#x5230;&#x8BE5;&#x8F6F;&#x4EF6;&#x4E4B;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x968F;&#x65F6;&#x968F;&#x5730;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x94FE;&#x63A5;&#x8BBF;&#x95EE;&#x3001;&#x9884;&#x89C8;&#x3001;&#x5206;&#x4EAB;&#x548C;&#x4E0B;&#x8F7D;&#x7B49;&#x64CD;&#x4F5C;&#x3002;&#x4F7F;&#x7528;&#x8D77;&#x6765;&#x4E5F;&#x975E;&#x5E38;&#x7684;&#x4FBF;&#x6377;&#x3002;</p><p>6&#x3001;&#x5F00;&#x6E90;&#x4F7F;&#x7528;&#x3002;&#x9879;&#x76EE;&#x91C7;&#x7528;<code>AGPL-3.0 license</code>&#x5F00;&#x6E90;&#x534F;&#x8BAE;&#xFF0C;&#x56E0;&#x6B64;&#x4F60;&#x5B8C;&#x5168;&#x53EF;&#x4EE5;&#x653E;&#x5FC3;&#x4F7F;&#x7528;&#xFF0C;&#x540C;&#x65F6;&#x4E5F;&#x53EF;&#x4EE5;&#x57FA;&#x4E8E;&#x6B64;&#x8FDB;&#x884C;&#x4E8C;&#x6B21;&#x5F00;&#x53D1;&#x4F7F;&#x7528;&#x3002;</p><p>7&#x3001;&#x6027;&#x80FD;&#x597D;&#x3002;&#x9879;&#x76EE;&#x4F7F;&#x7528;Go&#x548C;Solidjs&#x5F00;&#x53D1;&#xFF0C;Go&#x672C;&#x8EAB;&#x6027;&#x80FD;&#x5C31;&#x662F;&#x975E;&#x5E38;&#x597D;&#x7684;&#x4E00;&#x6B3E;&#x670D;&#x52A1;&#x7AEF;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#xFF0C;&#x8FD9;&#x4E5F;&#x4F7F;&#x5F97;&#x8F6F;&#x4EF6;&#x5728;&#x6027;&#x80FD;&#x4E0A;&#x975E;&#x5E38;&#x597D;&#x3002;</p><p>33.7k stars</p><h3 id="docker-compose">Docker Compose</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/docker/compose?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - docker/compose: Define and run multi-container applications with Docker</div><div class="kg-bookmark-description">Define and run multi-container applications with Docker - GitHub - docker/compose: Define and run multi-container&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-lc_w7tlyctiq_i9t.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p><code>Compose</code> &#x9879;&#x76EE;&#x662F; Docker &#x5B98;&#x65B9;&#x7684;&#x5F00;&#x6E90;&#x9879;&#x76EE;&#xFF0C;&#x8D1F;&#x8D23;&#x5B9E;&#x73B0;&#x5BF9; Docker &#x5BB9;&#x5668;&#x96C6;&#x7FA4;&#x7684;&#x5FEB;&#x901F;&#x7F16;&#x6392;&#x3002;&#x4ECE;&#x529F;&#x80FD;&#x4E0A;&#x770B;&#xFF0C;&#x8DDF; <code>OpenStack</code> &#x4E2D;&#x7684; <code>Heat</code> &#x5341;&#x5206;&#x7C7B;&#x4F3C;&#x3002;</p><p><code>Compose</code> &#x5B9A;&#x4F4D;&#x662F; &#x300C;&#x5B9A;&#x4E49;&#x548C;&#x8FD0;&#x884C;&#x591A;&#x4E2A; Docker &#x5BB9;&#x5668;&#x7684;&#x5E94;&#x7528;&#xFF08;Defining and running multi-container Docker applications&#xFF09;&#x300D;&#xFF0C;&#x5176;&#x524D;&#x8EAB;&#x662F;&#x5F00;&#x6E90;&#x9879;&#x76EE; Fig&#x3002;<code>Compose</code> &#x5141;&#x8BB8;&#x7528;&#x6237;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x5355;&#x72EC;&#x7684; <code>docker-compose.yml</code> &#x6A21;&#x677F;&#x6587;&#x4EF6;&#xFF08;YAML &#x683C;&#x5F0F;&#xFF09;&#x6765;&#x5B9A;&#x4E49;&#x4E00;&#x7EC4;&#x76F8;&#x5173;&#x8054;&#x7684;&#x5E94;&#x7528;&#x5BB9;&#x5668;&#x4E3A;&#x4E00;&#x4E2A;&#x9879;&#x76EE;&#xFF08;project&#xFF09;&#x3002;</p><p><code>Compose</code> &#x4E2D;&#x6709;&#x4E24;&#x4E2A;&#x91CD;&#x8981;&#x7684;&#x6982;&#x5FF5;&#xFF1A;</p><ul><li>&#x670D;&#x52A1; (<code>service</code>)&#xFF1A;&#x4E00;&#x4E2A;&#x5E94;&#x7528;&#x7684;&#x5BB9;&#x5668;&#xFF0C;&#x5B9E;&#x9645;&#x4E0A;&#x53EF;&#x4EE5;&#x5305;&#x62EC;&#x82E5;&#x5E72;&#x8FD0;&#x884C;&#x76F8;&#x540C;&#x955C;&#x50CF;&#x7684;&#x5BB9;&#x5668;&#x5B9E;&#x4F8B;&#x3002;</li><li>&#x9879;&#x76EE; (<code>project</code>)&#xFF1A;&#x7531;&#x4E00;&#x7EC4;&#x5173;&#x8054;&#x7684;&#x5E94;&#x7528;&#x5BB9;&#x5668;&#x7EC4;&#x6210;&#x7684;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x4E1A;&#x52A1;&#x5355;&#x5143;&#xFF0C;&#x5728; <code>docker-compose.yml</code> &#x6587;&#x4EF6;&#x4E2D;&#x5B9A;&#x4E49;&#x3002;</li></ul><p><code>Compose</code> &#x7684;&#x9ED8;&#x8BA4;&#x7BA1;&#x7406;&#x5BF9;&#x8C61;&#x662F;&#x9879;&#x76EE;&#xFF0C;&#x901A;&#x8FC7;&#x5B50;&#x547D;&#x4EE4;&#x5BF9;&#x9879;&#x76EE;&#x4E2D;&#x7684;&#x4E00;&#x7EC4;&#x5BB9;&#x5668;&#x8FDB;&#x884C;&#x4FBF;&#x6377;&#x5730;&#x751F;&#x547D;&#x5468;&#x671F;&#x7BA1;&#x7406;&#x3002;</p><p><code>Compose</code> &#x9879;&#x76EE;&#x7531; Python &#x7F16;&#x5199;&#xFF0C;&#x5B9E;&#x73B0;&#x4E0A;&#x8C03;&#x7528;&#x4E86; Docker &#x670D;&#x52A1;&#x63D0;&#x4F9B;&#x7684; API &#x6765;&#x5BF9;&#x5BB9;&#x5668;&#x8FDB;&#x884C;&#x7BA1;&#x7406;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x53EA;&#x8981;&#x6240;&#x64CD;&#x4F5C;&#x7684;&#x5E73;&#x53F0;&#x652F;&#x6301; Docker API&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x5728;&#x5176;&#x4E0A;&#x5229;&#x7528; <code>Compose</code> &#x6765;&#x8FDB;&#x884C;&#x7F16;&#x6392;&#x7BA1;&#x7406;&#x3002;</p><p>31.3k stars</p><h3 id="leetcode-go">LeetCode-Go</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/halfrost/LeetCode-Go?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - halfrost/LeetCode-Go: &#x2705; Solutions to LeetCode by Go, 100% test coverage, runtime beats&#x2026;</div><div class="kg-bookmark-description">&#x2705; Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% / LeetCode &#x9898;&#x89E3; - GitHub - halfrost/LeetCode-Go: &#x2705;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-g1li5kla4zpttzkt.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>&#x8BF4;&#x5230; LeetCode&#xFF0C;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x7A0B;&#x5E8F;&#x5458;&#x6765;&#x8BF4;&#xFF0C;&#x5E94;&#x8BE5;&#x4E0D;&#x964C;&#x751F;&#xFF0C;&#x8FD1;&#x51E0;&#x5E74;&#x53C2;&#x52A0;&#x9762;&#x8BD5;&#x90FD;&#x4F1A;&#x63D0;&#x5230;&#x5B83;&#x3002;&#x56FD;&#x5185;&#x5916;&#x7684;&#x7A0B;&#x5E8F;&#x5458;&#x7528;&#x5B83;&#x5237;&#x9898;&#x4E3B;&#x8981;&#x662F;&#x4E3A;&#x4E86;&#x9762;&#x8BD5;&#x3002;&#x636E;&#x5386;&#x53F2;&#x8BB0;&#x8F7D;&#xFF0C;&#x8FD9;&#x4E2A;&#x7F51;&#x7AD9; 2011 &#x5E74;&#x5C31;&#x6210;&#x7ACB;&#x4E86;&#xFF0C;&#x9A6C;&#x4E0A;&#x5C31;&#x8981;&#x5230;&#x81EA;&#x5DF1; 10 &#x5468;&#x5E74;&#x7684;&#x751F;&#x65E5;&#x4E86;&#x3002;&#x6BCF;&#x5468;&#x4E3E;&#x884C;&#x5468;&#x8D5B;&#xFF0C;&#x53CC;&#x5468;&#x8D5B;&#xFF0C;&#x6708;&#x8D5B;&#xFF0C;&#x5728;&#x6709;&#x9650;&#x65F6;&#x95F4;&#x5185;&#x7F16;&#x7801;&#xFF0C;&#x786E;&#x5B9E;&#x975E;&#x5E38;&#x80FD;&#x8003;&#x9A8C;&#x4EBA;&#x7684;&#x7B97;&#x6CD5;&#x80FD;&#x529B;&#x3002;&#x4E00;&#x4E9B;&#x5927;&#x516C;&#x53F8;&#x8D5E;&#x52A9;&#x51A0;&#x540D;&#x7684;&#x6BD4;&#x8D5B;&#x83B7;&#x5F97;&#x524D;&#x51E0;&#x540D;&#x9664;&#x4E86;&#x6709;&#x5956;&#x54C1;&#xFF0C;&#x8FD8;&#x80FD;&#x76F4;&#x63A5;&#x62FF;&#x5230;&#x5185;&#x63A8;&#x7684;&#x673A;&#x4F1A;&#x3002;</p><p>&#x4F5C;&#x8005;&#x5237;&#x9898;&#x5237;&#x4E86;&#x4E00;&#x5E74;&#x4E86;&#xFF0C;&#x60F3;&#x548C;&#x5927;&#x5BB6;&#x5206;&#x4EAB;&#x5206;&#x4EAB;&#x4E00;&#x4E9B;&#x505A;&#x9898;&#x5FC3;&#x5F97;&#xFF0C;&#x89E3;&#x9898;&#x65B9;&#x6CD5;&#x3002;&#x60F3;&#x548C;&#x6709;&#x76F8;&#x540C;&#x7231;&#x597D;&#x7684;&#x4EBA;&#x4EA4;&#x4E2A;&#x670B;&#x53CB;&#xFF0C;&#x4E00;&#x8D77;&#x4EA4;&#x6D41;&#x5B66;&#x4E60;&#x3002;&#x5BF9;&#x4E8E;&#x81EA;&#x5DF1;&#x6765;&#x8BF4;&#xFF0C;&#x5199;&#x9898;&#x89E3;&#x4E5F;&#x662F;&#x4E00;&#x79CD;&#x63D0;&#x9AD8;&#x3002;&#x628A;&#x4E00;&#x9053;&#x6DF1;&#x5965;&#x7684;&#x9898;&#x76EE;&#x8BB2;&#x7ED9;&#x4E00;&#x70B9;&#x90FD;&#x6CA1;&#x6709;&#x5934;&#x7EEA;&#x7684;&#x4EBA;&#xFF0C;&#x5E76;&#x80FD;&#x8BA9;&#x4ED6;&#x5B8C;&#x5168;&#x542C;&#x61C2;&#xFF0C;&#x5F88;&#x80FD;&#x953B;&#x70BC;&#x4EBA;&#x7684;&#x8868;&#x8FBE;&#x80FD;&#x529B;&#x3002;&#x5728;&#x8BB2;&#x89E3;&#x4E2D;&#x5F88;&#x53EF;&#x80FD;&#x8FD8;&#x4F1A;&#x9047;&#x5230;&#x542C;&#x8005;&#x7684;&#x4E00;&#x4E9B;&#x63D0;&#x95EE;&#xFF0C;&#x8FD9;&#x4E9B;&#x95EE;&#x9898;&#x53EF;&#x80FD;&#x662F;&#x81EA;&#x5DF1;&#x7684;&#x77E5;&#x8BC6;&#x6F0F;&#x6D1E;&#xFF0C;&#x5F3A;&#x8FEB;&#x81EA;&#x5DF1;&#x53BB;&#x5F25;&#x8865;&#x3002;&#x7B14;&#x8005;&#x5728;&#x516C;&#x53F8;&#x505A;&#x8FC7;&#x76F8;&#x5173;&#x7684;&#x5206;&#x4EAB;&#xFF0C;&#x611F;&#x53D7;&#x5F88;&#x6DF1;&#xFF0C;&#x53CC;&#x65B9;&#x53D7;&#x76CA;&#x90FD;&#x8FD8;&#x4E0D;&#x9519;&#x3002;</p><p>31.1k stars</p><h3 id="photoprism">PhotoPrism</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/photoprism/photoprism?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - photoprism/photoprism: AI-Powered Photos App for the Decentralized Web &#x1F308;&#x1F48E;&#x2728;</div><div class="kg-bookmark-description">AI-Powered Photos App for the Decentralized Web &#x1F308;&#x1F48E;&#x2728; - GitHub - photoprism/photoprism: AI-Powered Photos App for the&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-reeftctg2h-swbo3.jpg" alt></div></a></figure>
<!--kg-card-end: html-->
<p>&#x57FA;&#x4E8E; go &#x8BED;&#x8A00;&#x548C; Google TensorFlow &#x5F00;&#x53D1;&#xFF0C;&#x652F;&#x6301;&#x4EBA;&#x8138;&#x8BC6;&#x522B;&#x3001;&#x5143;&#x6570;&#x636E;&#x63D0;&#x53D6;&#x548C;&#x5F3A;&#x5927;&#x7684;&#x641C;&#x7D22;&#xFF0C; &#x662F;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x5F3A;&#x5927;&#x7684;&#x7167;&#x7247;&#x7BA1;&#x7406;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x3002;&#x867D;&#x7136;&#x662F; web &#x5E94;&#x7528;&#xFF0C;&#x4F46;&#x662F;&#x65E0;&#x8BBA;&#x662F;&#x5728;&#x624B;&#x673A;&#x3001;&#x5E73;&#x677F;&#x7535;&#x8111;&#x8FD8;&#x662F;&#x53F0;&#x5F0F;&#x7535;&#x8111;&#x4E0A;&#xFF0C;PhotoPrism &#x90FD;&#x63D0;&#x4F9B;&#x4E86;&#x539F;&#x751F;&#x5E94;&#x7528;&#x822C;&#x7684;&#x4F53;&#x9A8C;&#x3002;</p><p>photoprism&#x6709;&#x51E0;&#x4E2A;&#x4F18;&#x70B9;&#xFF1A;</p><p>1&#x3001;&#x652F;&#x6301;AI&#x8BC6;&#x522B;&#xFF0C;&#x652F;&#x6301;&#x641C;&#x7D22;&#xFF0C;&#x4E0D;&#x8FC7;&#x51C6;&#x786E;&#x5EA6;&#x4E00;&#x822C;&#x3002;</p><p>2&#x3001;&#x9AD8;&#x7EA7;&#x63D0;&#x53D6;&#x5143;&#x6570;&#x636E;&#x3002;&#x652F;&#x6301;&#x7684;&#x5B57;&#x6BB5;&#x5305;&#x62EC;&#x6807;&#x9898;&#x3001;&#x8BF4;&#x660E;&#x3001;&#x65E5;&#x671F;&#x3001;&#x4F4D;&#x7F6E;&#x3001;&#x76F8;&#x673A;&#x3001;&#x955C;&#x5934;&#x3001;ISO&#x3001;F &#x503C;&#x3001;&#x66DD;&#x5149;&#x3001;&#x7126;&#x8DDD;&#x3001;&#x4E3B;&#x9898;&#x3001;&#x827A;&#x672F;&#x5BB6;&#x3001;&#x5173;&#x952E;&#x5B57;&#x548C;&#x7248;&#x6743;&#x3002;</p><p>3&#x3001;&#x652F;&#x6301;&#x5730;&#x56FE;&#x548C;&#x5730;&#x70B9;&#x3002;</p><p>4&#x3001;&#x62E5;&#x6709;&#x4E30;&#x5BCC;&#x7684;&#x6587;&#x4EF6;&#x683C;&#x5F0F;&#x652F;&#x6301;&#xFF0C;&#x652F;&#x6301;&#x7D22;&#x5F15;&#x3001;&#x67E5;&#x770B;&#x548C;&#x8F6C;&#x6362;&#x6700;&#x6D41;&#x884C;&#x7684;&#x56FE;&#x50CF;&#x3001;&#x89C6;&#x9891;&#x548C; RAW &#x683C;&#x5F0F;&#xFF0C;&#x5305;&#x62EC; JPEG&#x3001;PNG&#x3001;GIF&#x3001;BMP&#x3001;HEIF&#x3001;HEIC&#x3001;MP4&#x3001;MOV&#x3001;WebP &#x548C; WebM&#x3002;&#x6211;&#x4EEC;&#x7684;&#x76EE;&#x6807;&#x662F;&#x4E3A;&#x6240;&#x6709;RAW &#x56FE;&#x50CF;&#x63D0;&#x4F9B;&#x4E00;&#x6D41;&#x7684;&#x652F;&#x6301;&#xFF0C;&#x65E0;&#x8BBA;&#x76F8;&#x673A;&#x54C1;&#x724C;&#x548C;&#x578B;&#x53F7;&#x3002;</p><p>5&#x3001;&#x652F;&#x6301;&#x91CD;&#x590D;&#x68C0;&#x6D4B;&#x3002;</p><p>6&#x3001;&#x652F;&#x6301;&#x4F7F;&#x7528;PhotoSync&#x5728;&#x540E;&#x53F0;&#x5B89;&#x5168;&#x5730;&#x5907;&#x4EFD; iOS &#x548C; Android &#x624B;&#x673A;&#x3002;Microsoft &#x7684; Windows Explorer &#x548C; Apple &#x7684; Finder &#x7B49; WebDAV &#x5BA2;&#x6237;&#x7AEF;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8FDE;&#x63A5;&#x5230; PhotoPrism&#xFF0C;&#x5141;&#x8BB8;&#x60A8;&#x4ECE;&#x8BA1;&#x7B97;&#x673A;&#x6253;&#x5F00;&#x3001;&#x7F16;&#x8F91;&#x548C;&#x5220;&#x9664;&#x6587;&#x4EF6;&#xFF0C;&#x5C31;&#x50CF;&#x5B83;&#x4EEC;&#x5728;&#x672C;&#x5730;&#x4E00;&#x6837;&#x3002;</p><p>30.6k stars</p><h3 id="fiber">Fiber</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/gofiber/fiber?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - gofiber/fiber: &#x26A1;&#xFE0F; Express inspired web framework written in Go</div><div class="kg-bookmark-description">&#x26A1;&#xFE0F; Express inspired web framework written in Go. Contribute to gofiber/fiber development by creating an account on&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-axqrb3ajapbudh-u.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>Fiber&#x662F;&#x4E00;&#x4E2A;&#x53D7;&#x5230;<a href="https://github.com/expressjs/express?ref=liangbo.me" rel="noopener"> Express </a>&#x542F;&#x53D1;&#x7684;Web&#x6846;&#x67B6;&#xFF0C;&#x57FA;&#x4E8E;&#x4F7F;&#x7528; <a href="https://go.dev/doc/?ref=liangbo.me" rel="nofollow noopener">Go </a>&#x8BED;&#x8A00;&#x7F16;&#x5199;&#x7684;&#x6700;&#x5FEB;&#x7684; HTTP &#x5F15;&#x64CE; <a href="https://github.com/valyala/fasthttp?ref=liangbo.me" rel="noopener">Fasthttp </a>&#x6784;&#x5EFA;&#x3002;&#x65E8;&#x5728;&#x901A;&#x8FC7;&#x96F6;&#x5185;&#x5B58;&#x5206;&#x914D;&#x548C;&#x9AD8;&#x6027;&#x80FD;&#x670D;&#x52A1;&#xFF0C;&#x4F7F;&#x5FEB;&#x901F;&#x5F00;&#x53D1;&#x66F4;&#x52A0;&#x7B80;&#x4FBF;&#x3002;</p><p>&#x4ECE; <a href="https://nodejs.org/en/about/?ref=liangbo.me" rel="nofollow noopener">Node.js</a> &#x5207;&#x6362;&#x5230; <a href="https://go.dev/doc/?ref=liangbo.me" rel="nofollow noopener">Go</a> &#x7684;&#x65B0; <code>gopher</code> &#x5728;&#x5F00;&#x59CB;&#x6784;&#x5EFA; <code>Web</code> &#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6216;&#x5FAE;&#x670D;&#x52A1;&#x4E4B;&#x524D;&#x9700;&#x8981;&#x7ECF;&#x5386;&#x4E00;&#x6BB5;&#x8270;&#x96BE;&#x7684;&#x5B66;&#x4E60;&#x8FC7;&#x7A0B;&#x3002; &#x800C; <code>Fiber</code>&#xFF0C;&#x4E00;&#x4E2A;&#x57FA;&#x4E8E;&#x6781;&#x7B80;&#x4E3B;&#x4E49;&#x5E76;&#x4E14;&#x9075;&#x5FAA; UNIX &#x65B9;&#x5F0F;&#x521B;&#x5EFA;&#x7684; Web &#x6846;&#x67B6;&#xFF0C; &#x4F7F;&#x65B0;&#x7684; <code>gopher</code> &#x53EF;&#x4EE5;&#x5728;&#x70ED;&#x70C8;&#x548C;&#x53EF;&#x4FE1;&#x8D56;&#x7684;&#x6B22;&#x8FCE;&#x4E2D;&#x8FC5;&#x901F;&#x8FDB;&#x5165; <code>Go</code> &#x7684;&#x4E16;&#x754C;&#x3002;</p><p><code>Fiber</code>&#x53D7;&#x5230;&#x4E86;&#x4E92;&#x8054;&#x7F51;&#x4E0A;&#x6700;&#x6D41;&#x884C;&#x7684;<code>Web</code>&#x6846;&#x67B6;<code>Express</code>&#x7684;&#x542F;&#x53D1; &#x3002;&#x6211;&#x4EEC;&#x7ED3;&#x5408;&#x4E86;<code>Express</code>&#x7684;&#x6613;&#x7528;&#x6027;&#x548C;<code>Go</code>&#x7684;&#x539F;&#x59CB;&#x6027;&#x80FD; &#x3002;&#x5982;&#x679C;&#x60A8;&#x66FE;&#x7ECF;&#x4F7F;&#x7528;<code>Node.js</code>&#x6784;&#x5EFA;<code>Web</code>&#x5E94;&#x7528;&#x7A0B;&#x5E8F;(<em>&#x4F7F;&#x7528; Express &#x6216;&#x7C7B;&#x4F3C;&#x6846;&#x67B6;</em>)&#xFF0C;&#x90A3;&#x4E48;&#x8BB8;&#x591A;&#x65B9;&#x6CD5;&#x548C;&#x539F;&#x7406;&#x5BF9;&#x60A8;&#x6765;&#x8BF4;&#x5E94;&#x8BE5;&#x975E;&#x5E38;&#x6613;&#x61C2;&#x3002;</p><p>29.7k stars</p><h3 id="pocketbase">pocketbase</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/pocketbase/pocketbase?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - pocketbase/pocketbase: Open Source realtime backend in 1 file</div><div class="kg-bookmark-description">Open Source realtime backend in 1 file. Contribute to pocketbase/pocketbase development by creating an account on&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-tpxenhdh9supcrui.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p><a href="https://github.com/pocketbase/pocketbase?ref=liangbo.me" rel="noopener">PocketBase</a> &#x662F;&#x4E00;&#x4E2A; Go &#x7F16;&#x5199;&#x7684;&#x5F00;&#x6E90;&#x540E;&#x7AEF; [[BaaS]] Backend-as-a-Service&#xFF0C;&#x53EA;&#x7528;&#x4E86;&#x4E00;&#x4E2A;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;&#x5C31;&#x53EF;&#x4EE5;&#x5B9E;&#x73B0;&#xFF1A;</p><ul><li>&#x5185;&#x5D4C;&#x7684; SQLite &#x6570;&#x636E;&#x5E93;</li><li>Auth &#x7BA1;&#x7406;</li><li>&#x5185;&#x7F6E;&#x7684;&#x6587;&#x4EF6;&#x5B58;&#x50A8;&#x548C;&#x7528;&#x6237;&#x7BA1;&#x7406;</li><li>&#x65B9;&#x4FBF;&#x7684; Admin &#x7BA1;&#x7406;&#x9762;&#x677F;&#xFF08;Dashboard&#xFF09; &#x7BA1;&#x7406;&#x6240;&#x6709;&#x7684;&#x8D44;&#x6E90;</li><li>&#x7B80;&#x5355;&#x7684; REST-ish API</li></ul><p>28.5k stars</p><h3 id="linkedin-skill-assessments-quizzes">linkedin-skill-assessments-quizzes</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/Ebazhanov/linkedin-skill-assessments-quizzes?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - Ebazhanov/linkedin-skill-assessments-quizzes: Full reference of LinkedIn answers 2023 for&#x2026;</div><div class="kg-bookmark-description">Full reference of LinkedIn answers 2023 for skill assessments (aws-lambda, rest-api, javascript, react, git, html&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-qsnrsyyc0mh0y3zx.jpg" alt></div></a></figure>
<!--kg-card-end: html-->
<p>LinkedIn &#x6280;&#x80FD;&#x8BC4;&#x4F30;&#x7B54;&#x6848; 2023 &#x7684;&#x5B8C;&#x6574;&#x53C2;&#x8003;&#xFF08;aws-lambda&#x3001;rest-api&#x3001;javascript&#x3001;react&#x3001;git&#x3001;html&#x3001;jquery&#x3001;mongodb&#x3001;java&#x3001;Go&#x3001;python&#x3001;&#x673A;&#x5668;&#x5B66;&#x4E60;&#x3001;power-point&#xFF09;linkedin excel &#x6D4B;&#x8BD5; l&#xF6;sungen&#x3001;linkedin &#x673A;&#x5668;&#x5B66;&#x4E60;&#x6D4B;&#x8BD5; LinkedIn &#x6D4B;&#x8BD5;&#x9898;&#x53CA;&#x7B54;&#x6848;</p><p>27.7k stars</p><h3 id="mattermost">Mattermost</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/mattermost/mattermost?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - mattermost/mattermost: Mattermost is an open source platform for secure collaboration&#x2026;</div><div class="kg-bookmark-description">Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..&#xA0;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-xp3kgkkj3_fhfrkv.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p><strong>Mattermost</strong>&#x662F;&#x4E00;&#x5957;<a href="https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6?ref=liangbo.me" rel="noopener">&#x5F00;&#x653E;&#x6E90;&#x4EE3;&#x7801;</a>&#x3001;&#x53EF;&#x81EA;&#x884C;&#x67B6;&#x8BBE;&#x7684;<a href="https://zh.wikipedia.org/wiki/%E7%BD%91%E7%BB%9C%E8%81%8A%E5%A4%A9?ref=liangbo.me" rel="noopener">&#x5728;&#x7EBF;&#x804A;&#x5929;&#x670D;&#x52A1;</a>&#xFF0C;&#x6709;&#x5206;&#x4EAB;&#x6587;&#x4EF6;&#x3001;&#x641C;&#x7D22;&#x4E0E;&#x96C6;&#x6210;&#x5176;&#x4ED6;&#x670D;&#x52A1;&#x7B49;&#x529F;&#x80FD;&#x3002;&#x5B83;&#x88AB;&#x8BBE;&#x8BA1;&#x6210;&#x7528;&#x4E8E;&#x7EC4;&#x7EC7;&#x4E0E;&#x516C;&#x53F8;&#x7684;&#x5185;&#x90E8;&#x6C9F;&#x901A;&#xFF0C;&#x4E14;&#x4E3B;&#x8981;&#x5C06;&#x5176;&#x4F5C;&#x4E3A;<a href="https://zh.wikipedia.org/wiki/Slack_%28%E8%BB%9F%E9%AB%94%29?ref=liangbo.me" rel="noopener">Slack</a>&#x4E0E;<a href="https://zh.wikipedia.org/wiki/Microsoft_Teams?ref=liangbo.me" rel="noopener">Microsoft Teams</a>&#x7684;&#x5F00;&#x653E;&#x6E90;&#x4EE3;&#x7801;&#x66FF;&#x4EE3;&#x54C1;&#x3002;</p><p>Mattermost&#x7684;&#x4EE3;&#x7801;&#x539F;&#x672C;&#x662F;&#x79C1;&#x6709;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x5176;&#x88AB;&#x5F53;&#x4F5C;&#x6E38;&#x620F;&#x5F00;&#x53D1;&#x5DE5;&#x4F5C;&#x5BA4;SpinPunch&#x7684;&#x5185;&#x90E8;&#x804A;&#x5929;&#x5DE5;&#x5177;&#xFF0C;&#x4F46;&#x4E0D;&#x4E45;&#x540E;&#x5C31;&#x5F00;&#x653E;&#x6E90;&#x4EE3;&#x7801;&#x4E86;&#x3002;1.0&#x7248;&#x672C;&#x4E8E;2015&#x5E74;10&#x6708;2&#x65E5;&#x53D1;&#x5E03;&#x3002;</p><p>&#x6B64;&#x9879;&#x76EE;&#x7531;Mattermost&#x516C;&#x53F8;&#x7EF4;&#x62A4;&#x4E0E;&#x5F00;&#x53D1;&#x3002;Mattermost&#x900F;&#x8FC7;&#x8D29;&#x552E;&#x652F;&#x6301;&#x670D;&#x52A1;&#x4E0E;&#x672A;&#x5728;&#x5F00;&#x653E;&#x6E90;&#x4EE3;&#x7801;&#x7248;&#x672C;&#x4E2D;&#x63D0;&#x4F9B;&#x7684;&#x989D;&#x5916;&#x529F;&#x80FD;&#x6765;&#x76C8;&#x5229;&#x3002;</p><p>Mattermost&#x6709;<a href="https://zh.wikipedia.org/wiki/Microsoft_Windows?ref=liangbo.me" rel="noopener">Windows</a>&#x3001;<a href="https://zh.wikipedia.org/wiki/MacOS?ref=liangbo.me" rel="noopener">macOS</a>&#x4E0E;<a href="https://zh.wikipedia.org/wiki/Linux?ref=liangbo.me" rel="noopener">Linux</a>&#x7684;&#x684C;&#x9762;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#xFF0C;&#x4EE5;&#x53CA;<a href="https://zh.wikipedia.org/wiki/IOS?ref=liangbo.me" rel="noopener">iOS</a>&#x4E0E;<a href="https://zh.wikipedia.org/wiki/Android?ref=liangbo.me" rel="noopener">Android</a>&#x7684;&#x79FB;&#x52A8;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x3002;</p><p>&#x5728;&#x5A92;&#x4F53;&#x4E0A;&#xFF0C;Mattermost&#x5728;&#x5927;&#x591A;&#x6570;&#x60C5;&#x51B5;&#x4E0B;&#x88AB;&#x8BA4;&#x4E3A;&#x662F;&#x8F83;&#x6D41;&#x884C;&#x7684;Slack&#x7684;&#x66FF;&#x4EE3;&#x54C1;&#x3002;&#x5176;&#x4E5F;&#x4EE5;&#x201D;GitLab Mattermost&#x201D;&#x4E4B;&#x540D;&#x96C6;&#x6210;&#x5230;<a href="https://zh.wikipedia.org/wiki/GitLab?ref=liangbo.me" rel="noopener">GitLab</a>&#x4E2D;&#xFF0C;&#x867D;&#x7136;GitLab&#x5728;2017&#x5E74;&#x6536;&#x8D2D;&#x4E86;&#x53E6;&#x4E00;&#x4E2A;&#x4E5F;&#x76F8;&#x5F53;&#x6D41;&#x884C;&#x7684;&#x804A;&#x5929;&#x5DE5;&#x5177;<a href="https://zh.wikipedia.org/wiki/Gitter?ref=liangbo.me" rel="noopener">Gitter</a>&#x3002;</p><p>27.1k stars</p><h3 id="go-zero">go-zero</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/zeromicro/go-zero?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - zeromicro/go-zero: A cloud-native Go microservices framework with cli tool for&#x2026;</div><div class="kg-bookmark-description">A cloud-native Go microservices framework with cli tool for productivity. - GitHub - zeromicro/go-zero: A cloud-native&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-wnvpga0lwf0vtosa.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>go-zero &#x662F;&#x4E00;&#x4E2A;&#x96C6;&#x6210;&#x4E86;&#x5404;&#x79CD;&#x5DE5;&#x7A0B;&#x5B9E;&#x8DF5;&#x7684; web &#x548C; rpc &#x6846;&#x67B6;&#x3002;&#x901A;&#x8FC7;&#x5F39;&#x6027;&#x8BBE;&#x8BA1;&#x4FDD;&#x969C;&#x4E86;&#x5927;&#x5E76;&#x53D1;&#x670D;&#x52A1;&#x7AEF;&#x7684;&#x7A33;&#x5B9A;&#x6027;&#xFF0C;&#x7ECF;&#x53D7;&#x4E86;&#x5145;&#x5206;&#x7684;&#x5B9E;&#x6218;&#x68C0;&#x9A8C;&#x3002;</p><p>go-zero &#x5305;&#x542B;&#x6781;&#x7B80;&#x7684; API &#x5B9A;&#x4E49;&#x548C;&#x751F;&#x6210;&#x5DE5;&#x5177; goctl&#xFF0C;&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x5B9A;&#x4E49;&#x7684; api &#x6587;&#x4EF6;&#x4E00;&#x952E;&#x751F;&#x6210; Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript &#x4EE3;&#x7801;&#xFF0C;&#x5E76;&#x53EF;&#x76F4;&#x63A5;&#x8FD0;&#x884C;&#x3002;</p><p>&#x4F7F;&#x7528; go-zero &#x7684;&#x597D;&#x5904;&#xFF1A;</p><ul><li>&#x8F7B;&#x677E;&#x83B7;&#x5F97;&#x652F;&#x6491;&#x5343;&#x4E07;&#x65E5;&#x6D3B;&#x670D;&#x52A1;&#x7684;&#x7A33;&#x5B9A;&#x6027;</li><li>&#x5185;&#x5EFA;&#x7EA7;&#x8054;&#x8D85;&#x65F6;&#x63A7;&#x5236;&#x3001;&#x9650;&#x6D41;&#x3001;&#x81EA;&#x9002;&#x5E94;&#x7194;&#x65AD;&#x3001;&#x81EA;&#x9002;&#x5E94;&#x964D;&#x8F7D;&#x7B49;&#x5FAE;&#x670D;&#x52A1;&#x6CBB;&#x7406;&#x80FD;&#x529B;</li><li>&#x65E0;&#x9700;&#x914D;&#x7F6E;&#x548C;&#x989D;&#x5916;&#x4EE3;&#x7801;</li><li>&#x5FAE;&#x670D;&#x52A1;&#x6CBB;&#x7406;&#x4E2D;&#x95F4;&#x4EF6;&#x53EF;&#x65E0;&#x7F1D;&#x96C6;&#x6210;&#x5230;&#x5176;&#x5B83;&#x73B0;&#x6709;&#x6846;&#x67B6;&#x4F7F;&#x7528;</li><li>&#x6781;&#x7B80;&#x7684; API &#x63CF;&#x8FF0;&#xFF0C;&#x4E00;&#x952E;&#x751F;&#x6210;&#x5404;&#x7AEF;&#x4EE3;&#x7801;</li><li>&#x81EA;&#x52A8;&#x6821;&#x9A8C;&#x5BA2;&#x6237;&#x7AEF;&#x8BF7;&#x6C42;&#x53C2;&#x6570;&#x5408;&#x6CD5;&#x6027;</li><li>&#x5927;&#x91CF;&#x5FAE;&#x670D;&#x52A1;&#x6CBB;&#x7406;&#x548C;&#x5E76;&#x53D1;&#x5DE5;&#x5177;&#x5305;</li></ul><p>26.7k stars</p><h3 id="go-kit">go-kit</h3>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/go-kit/kit?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - go-kit/kit: A standard library for microservices.</div><div class="kg-bookmark-description">A standard library for microservices. Contribute to go-kit/kit development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-oekqoabdyoidrg91.png" alt></div></a></figure>
<!--kg-card-end: html-->
<p>Go-kit &#x5E76;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x5FAE;&#x670D;&#x52A1;&#x6846;&#x67B6;&#xFF0C;&#x800C;&#x662F;&#x4E00;&#x5957;&#x5FAE;&#x670D;&#x52A1;&#x5DE5;&#x5177;&#x96C6;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7528;&#x5DE5;&#x5177;Go-kit&#x4E3A; Go &#x521B;&#x5EFA;&#x5FAE;&#x670D;&#x52A1;&#xFF0C;&#x5305;&#x542B;&#x5305;&#x548C;&#x63A5;&#x53E3;&#xFF0C;&#x6709;&#x70B9;&#x7C7B;&#x4F3C;&#x4E8E;JAVA Spring Boot&#xFF0C;&#x4F46;&#x662F;&#x6CA1;&#x90A3;&#x4E48;&#x5F3A;&#x5927;&#x3002;&#x53EF;&#x4EE5;&#x5229;&#x7528;Go-kit&#x63D0;&#x4F9B;&#x7684;API&#x548C;&#x89C4;&#x8303;&#x53EF;&#x4EE5;&#x521B;&#x5EFA;&#x5065;&#x58EE;&#x7684;&#xFF0C;&#x53EF;&#x7EF4;&#x62A4;&#x6027;&#x9AD8;&#x7684;&#x5FAE;&#x670D;&#x52A1;&#x4F53;&#x7CFB;&#xFF0C;&#x5B83;&#x63D0;&#x4F9B;&#x4E86;&#x7528;&#x4E8E;&#x5B9E;&#x73B0;&#x7CFB;&#x7EDF;&#x76D1;&#x63A7;&#x548C;&#x5F39;&#x6027;&#x6A21;&#x5F0F;&#x7EC4;&#x4EF6;&#x7684;&#x5E93;&#xFF0C;&#x4F8B;&#x5982;&#x65E5;&#x5FD7;&#x8BB0;&#x5F55;&#x3001;&#x8DDF;&#x8E2A;&#x3001;&#x9650;&#x6D41;&#x548C;&#x7194;&#x65AD;&#x7B49;&#xFF0C;&#x8FD9;&#x4E9B;&#x5E93;&#x53EF;&#x4EE5;&#x534F;&#x52A9;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x63D0;&#x9AD8;&#x5FAE;&#x670D;&#x52A1;&#x67B6;&#x6784;&#x7684;&#x6027;&#x80FD;&#x548C;&#x7A33;&#x5B9A;&#x6027;&#x3002;</p><p>25.8k stars</p>]]></content:encoded></item><item><title><![CDATA[如何更好地使用GitHub Copilot：Prompts、技巧和用例]]></title><description><![CDATA[本文出于学习的需求， 原封不动的翻译了来自Github的一篇Blog, 所有的Credits都属于原文作者， 如果您有任何想法和建议， 请至原文发表评论， 如果本文作为指引有帮助到您， 也请感谢原文的作者 Rizel Scarlett 和 Michelle Mannering…]]></description><link>https://liangbo.me/e5-a6-82-e4-bd-95-e6-9b-b4-e5-a5-bd-e5-9c-b0-e4-bd-bf-e7-94-a8github-copilot-prompts-e6-8a-80-e5-b7-a7-e5-92-8c-e7-94-a8-e4-be-8b/</link><guid isPermaLink="false">66860f1cb6891c0001494cbf</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Mon, 07 Aug 2023 06:33:35 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-bmzxnn22jzxthovv_16gfw-png.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-bmzxnn22jzxthovv_16gfw-png.jpg" alt="&#x5982;&#x4F55;&#x66F4;&#x597D;&#x5730;&#x4F7F;&#x7528;GitHub Copilot&#xFF1A;Prompts&#x3001;&#x6280;&#x5DE7;&#x548C;&#x7528;&#x4F8B;"><p>&#x672C;&#x6587;&#x51FA;&#x4E8E;&#x5B66;&#x4E60;&#x7684;&#x9700;&#x6C42;&#xFF0C; &#x539F;&#x5C01;&#x4E0D;&#x52A8;&#x7684;&#x7FFB;&#x8BD1;&#x4E86;&#x6765;&#x81EA;Github&#x7684;&#x4E00;&#x7BC7;Blog, &#x6240;&#x6709;&#x7684;Credits&#x90FD;&#x5C5E;&#x4E8E;&#x539F;&#x6587;&#x4F5C;&#x8005;&#xFF0C; &#x5982;&#x679C;&#x60A8;&#x6709;&#x4EFB;&#x4F55;&#x60F3;&#x6CD5;&#x548C;&#x5EFA;&#x8BAE;&#xFF0C; &#x8BF7;&#x81F3;&#x539F;&#x6587;&#x53D1;&#x8868;&#x8BC4;&#x8BBA;&#xFF0C; &#x5982;&#x679C;&#x672C;&#x6587;&#x4F5C;&#x4E3A;&#x6307;&#x5F15;&#x6709;&#x5E2E;&#x52A9;&#x5230;&#x60A8;&#xFF0C; &#x4E5F;&#x8BF7;&#x611F;&#x8C22;&#x539F;&#x6587;&#x7684;&#x4F5C;&#x8005; <a href="https://github.blog/author/blackgirlbytes/?ref=liangbo.me" rel="noopener">Rizel Scarlett</a> &#x548C; <a href="https://github.blog/author/mishmanners/?ref=liangbo.me" rel="noopener">Michelle Mannering</a> , &#x539F;&#x6587;&#x5730;&#x5740;:</p><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How to use GitHub Copilot: Prompts, tips, and use cases - The GitHub Blog</div><div class="kg-bookmark-description">In this prompt guide for GitHub Copilot, two GitHub developer advocates, Rizel and Michelle, will share examples and&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-fjkptuwj5i8nvecx.jpg" alt="&#x5982;&#x4F55;&#x66F4;&#x597D;&#x5730;&#x4F7F;&#x7528;GitHub Copilot&#xFF1A;Prompts&#x3001;&#x6280;&#x5DE7;&#x548C;&#x7528;&#x4F8B;"></div></a></figure><!--kg-card-end: html--><hr><p>&#x751F;&#x6210;&#x5F0F;AI&#x7F16;&#x7A0B;&#x5DE5;&#x5177;&#x6B63;&#x5728;&#x6539;&#x53D8;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x65E5;&#x5E38;Coding&#x7684;&#x65B9;&#x5F0F;&#x3002;&#x4ECE;&#x5199;&#x6587;&#x6863;&#x5230;&#x751F;&#x6210;&#x5355;&#x5143;&#x6D4B;&#x8BD5;&#xFF0C;&#x8FD9;&#x4E9B;&#x5DE5;&#x5177;&#x6B63;&#x5728;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x5927;&#x5E45;&#x63D0;&#x5347;&#x5DE5;&#x4F5C;&#x6548;&#x7387;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x5C31;&#x50CF;&#x4EFB;&#x4F55;&#x65B0;&#x5174;&#x6280;&#x672F;&#x4E00;&#x6837;&#xFF0C;&#x603B;&#x4F1A;&#x6709;&#x4E00;&#x4E2A;&#x5B66;&#x4E60;&#x66F2;&#x7EBF;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x65E0;&#x8BBA;&#x662F;&#x521D;&#x5B66;&#x8005;&#x8FD8;&#x662F;&#x7ECF;&#x9A8C;&#x4E30;&#x5BCC;&#x7684;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x5728;&#x4F7F;&#x7528;AI&#x8F85;&#x52A9;&#x7F16;&#x7A0B;&#x52A9;&#x624B;&#x4E0D;&#x80FD;&#x751F;&#x6210;&#x4ED6;&#x4EEC;&#x60F3;&#x8981;&#x7684;&#x8F93;&#x51FA;&#x65F6;&#x3002;&#x53EF;&#x80FD;&#x4F1A;&#x611F;&#x5230;&#x6CAE;&#x4E27;&#x3002; &#xFF08;&#x8BF4;&#x7684;&#x662F;&#x4F60;&#x5417;? &#x1F602; )</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x5F53;&#x6211;&#x4EEC;&#x8981;&#x6C42;GitHub Copilot&#x4F7F;&#x7528;p5.js&#x6765;&#x7ED8;&#x5236;&#x4E00;&#x4E2A;&#x51B0;&#x6DC7;&#x6DCB;&#x9525;&#x578B;&#x1F366;&#xFF0C;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;&#x8BBE;&#x8BA1;&#x521B;&#x610F;&#x7684;JavaScript&#x5E93;&#xFF0C;&#x6211;&#x4EEC;&#x603B;&#x662F;&#x6536;&#x5230;&#x65E0;&#x5173;&#x7684;&#x5EFA;&#x8BAE;&#x200A;&#x2014;&#x200A;&#x6216;&#x8005;&#x6709;&#x65F6;&#x6839;&#x672C;&#x6CA1;&#x6709;&#x5EFA;&#x8BAE;&#x3002;&#x4F46;&#x662F;&#x5F53;&#x6211;&#x4EEC;&#x4E86;&#x89E3;&#x4E86;GitHub Copilot&#x5904;&#x7406;&#x4FE1;&#x606F;&#x7684;&#x65B9;&#x5F0F;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x610F;&#x8BC6;&#x5230;&#x6211;&#x4EEC;&#x5FC5;&#x987B;&#x8C03;&#x6574;&#x4E0E;&#x5B83;&#x6C9F;&#x901A;&#x7684;&#x65B9;&#x5F0F;&#x3002;</p><p>&#x4EE5;&#x4E0B;&#x662F;GitHub Copilot&#x751F;&#x6210;&#x65E0;&#x6548;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x7684;&#x4E00;&#x4E2A;&#x793A;&#x4F8B;&#xFF1A;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-melnllxdhjxaroifwim_za.gif" class="kg-image" alt="&#x5982;&#x4F55;&#x66F4;&#x597D;&#x5730;&#x4F7F;&#x7528;GitHub Copilot&#xFF1A;Prompts&#x3001;&#x6280;&#x5DE7;&#x548C;&#x7528;&#x4F8B;" loading="lazy" width="600" height="375" srcset="https://liangbo.me/content/images/2024/07/1-melnllxdhjxaroifwim_za.gif 600w"></figure><p>&#x5F53;&#x6211;&#x4EEC;&#x8C03;&#x6574;&#x4E86;Prompt &#x540E;&#xFF0C; Copilot &#x7ED9;&#x51FA;&#x4E86;&#x66F4;&#x7CBE;&#x786E;&#x7684;&#x7ED3;&#x679C;:</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-ymj713mamz34oy9fht5y2w.gif" class="kg-image" alt="&#x5982;&#x4F55;&#x66F4;&#x597D;&#x5730;&#x4F7F;&#x7528;GitHub Copilot&#xFF1A;Prompts&#x3001;&#x6280;&#x5DE7;&#x548C;&#x7528;&#x4F8B;" loading="lazy" width="600" height="375" srcset="https://liangbo.me/content/images/2024/07/1-ymj713mamz34oy9fht5y2w.gif 600w"></figure><p>&#x5728;&#x8FD9;&#x4E2A;GitHub Copilot&#x6307;&#x5357;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x6DB5;&#x76D6;&#xFF1A;</p><ul><li>&#x4EC0;&#x4E48;&#x662F;Prompt&#xFF0C;&#x4EE5;&#x53CA;&#x4EC0;&#x4E48;&#x662F;Prompt Engineering&#xFF08;&#x63D0;&#x793A;&#x5DE5;&#x7A0B;&#x53D6;&#x51B3;&#x4E8E;&#x60A8;&#x662F;&#x5728;&#x4E0E;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x4EA4;&#x8C08;&#x8FD8;&#x662F;&#x4E0E;&#x673A;&#x5668;&#x5B66;&#x4E60;&#x7814;&#x7A76;&#x4EBA;&#x5458;&#x4EA4;&#x8C08;&#xFF09;&#x3002;</li><li>&#x4F7F;&#x7528;GitHub Copilot&#x8FDB;&#x884C;&#x63D0;&#x793A;&#x65F6;&#x7684;&#x4E09;&#x4E2A;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#x548C;&#x4E09;&#x4E2A;&#x989D;&#x5916;&#x7684;&#x63D0;&#x793A;&#x3002;</li><li>&#x4E00;&#x4E2A;&#x793A;&#x4F8B;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x5C1D;&#x8BD5;&#x5728;&#x63D0;&#x793A;GitHub Copilot&#x5E2E;&#x52A9;&#x60A8;&#x6784;&#x5EFA;&#x6D4F;&#x89C8;&#x5668;&#x6269;&#x5C55;&#x65F6;&#x8FDB;&#x884C;&#x64CD;&#x4F5C;&#x3002;</li></ul><h4 id="%E8%BF%9B%E6%AD%A5%E8%83%9C%E4%BA%8E%E5%AE%8C%E7%BE%8E%E8%81%8A%E8%83%9C%E4%BA%8E%E6%97%A0-progress-over-perfection">&#x8FDB;&#x6B65;&#x80DC;&#x4E8E;&#x5B8C;&#x7F8E;/&#x804A;&#x80DC;&#x4E8E;&#x65E0; Progress over perfection</h4><p>&#x5373;&#x4F7F;&#x6211;&#x4EEC;&#x5728;&#x4F7F;&#x7528;AI&#x65B9;&#x9762;&#x6709;&#x7ECF;&#x9A8C;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x8BA4;&#x8BC6;&#x5230;&#x6BCF;&#x4E2A;&#x4EBA;&#x5728;&#x4F7F;&#x7528;&#x751F;&#x6210;&#x5F0F;AI&#x6280;&#x672F;&#x65F6;&#x90FD;&#x4F1A;&#x6709;&#x8BD5;&#x9519;&#x9636;&#x6BB5;&#x3002;&#x6211;&#x4EEC;&#x4E5F;&#x77E5;&#x9053;&#x63D0;&#x4F9B;&#x901A;&#x7528;&#x7684;Prompt-crafting&#x6280;&#x5DE7;&#x662F;&#x4E00;&#x4E2A;&#x6311;&#x6218;&#xFF0C;&#x56E0;&#x4E3A;&#x6A21;&#x578B;&#x5404;&#x4E0D;&#x76F8;&#x540C;&#xFF0C;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x6240;&#x5904;&#x7406;&#x7684;&#x4E2A;&#x4F53;&#x95EE;&#x9898;&#x4E5F;&#x662F;&#x5404;&#x5F02;&#x7684;&#x3002;&#x8FD9;&#x5E76;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x5168;&#x9762;&#x7684;&#x6307;&#x5357;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x6211;&#x4EEC;&#x5728;&#x5206;&#x4EAB;&#x6211;&#x4EEC;&#x5728;Prompt-crafting&#x65B9;&#x9762;&#x7684;&#x6240;&#x5B66;&#xFF0C;&#x4EE5;&#x52A0;&#x901F;&#x5728;&#x8FD9;&#x4E2A;&#x65B0;&#x65F6;&#x4EE3;&#x7684;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x4E2D;&#x7684;&#x96C6;&#x4F53;&#x5B66;&#x4E60;&#x3002;</p><h3 id="%E4%BB%80%E4%B9%88%E6%98%AFprompt%EF%BC%8C%E4%BB%80%E4%B9%88%E6%98%AFprompt-engineering%EF%BC%9F-%E8%BF%99%E5%8F%96%E5%86%B3%E4%BA%8E%E4%BD%BF%E7%94%A8%E5%AF%B9%E8%B1%A1%E6%98%AF%E8%B0%81%E3%80%82">&#x4EC0;&#x4E48;&#x662F;Prompt&#xFF0C;&#x4EC0;&#x4E48;&#x662F;Prompt Engineering&#xFF1F; &#x8FD9;&#x53D6;&#x51B3;&#x4E8E;&#x4F7F;&#x7528;&#x5BF9;&#x8C61;&#x662F;&#x8C01;&#x3002;</h3><p>&#x5728;&#x751F;&#x6210;&#x5F0F;AI &#x7F16;&#x7A0B;&#x5DE5;&#x5177;&#x7684;&#x80CC;&#x666F;&#x4E0B;&#xFF0C;&#x201D;Prompt&#x201D;&#x53EF;&#x80FD;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x542B;&#x4E49;&#xFF0C;&#x8FD9;&#x53D6;&#x51B3;&#x4E8E;&#x4F60;&#x662F;&#x5728;&#x8BE2;&#x95EE;&#x6B63;&#x5728;&#x6784;&#x5EFA;&#x548C;&#x5FAE;&#x8C03;&#x8FD9;&#x4E9B;&#x5DE5;&#x5177;&#x7684;&#x673A;&#x5668;&#x5B66;&#x4E60;&#xFF08;ML&#xFF09;&#x7814;&#x7A76;&#x4EBA;&#x5458;&#xFF0C;&#x8FD8;&#x662F;&#x5728;&#x8BE2;&#x95EE;&#x5C06;&#x5B83;&#x4EEC;&#x7528;&#x4E8E;&#x96C6;&#x6210;&#x5F00;&#x53D1;&#x73AF;&#x5883;&#xFF08;IDE&#xFF09;&#x7684;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x3002;</p><p>&#x5728;&#x672C;&#x6307;&#x5357;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4ECE;&#x4F7F;&#x7528;&#x96C6;&#x6210;&#x5F00;&#x53D1;&#x73AF;&#x5883;&#x4E2D;&#x7684;&#x751F;&#x6210;&#x5F0F;AI&#x7F16;&#x7A0B;&#x5DE5;&#x5177;&#x7684;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x89D2;&#x5EA6;&#x5B9A;&#x4E49;&#x8FD9;&#x4E9B;&#x672F;&#x8BED;&#x3002;&#x4F46;&#x4E3A;&#x4E86;&#x8BA9;&#x60A8;&#x6709;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x7684;&#x753B;&#x9762;&#xFF0C;&#x6211;&#x4EEC;&#x5728;&#x4E0B;&#x9762;&#x7684;&#x56FE;&#x8868;&#x4E2D;&#x4E5F;&#x6DFB;&#x52A0;&#x4E86;&#x673A;&#x5668;&#x5B66;&#x4E60;&#x7814;&#x7A76;&#x4EBA;&#x5458;&#x7684;&#x5B9A;&#x4E49;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-8i-skjn9iknwvl4spre5yg-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x66F4;&#x597D;&#x5730;&#x4F7F;&#x7528;GitHub Copilot&#xFF1A;Prompts&#x3001;&#x6280;&#x5DE7;&#x548C;&#x7528;&#x4F8B;" loading="lazy" width="2000" height="785" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-8i-skjn9iknwvl4spre5yg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-8i-skjn9iknwvl4spre5yg-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-8i-skjn9iknwvl4spre5yg-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-8i-skjn9iknwvl4spre5yg-2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><h3 id="%E4%BD%BF%E7%94%A8github-copilot%E8%BF%9B%E8%A1%8C%E6%8F%90%E7%A4%BA%E6%9E%84%E5%BB%BA%E7%9A%84%E4%B8%89%E4%B8%AA%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%EF%BC%9A">&#x4F7F;&#x7528;GitHub Copilot&#x8FDB;&#x884C;&#x63D0;&#x793A;&#x6784;&#x5EFA;&#x7684;&#x4E09;&#x4E2A;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#xFF1A;</h3><h4 id="1-%E8%AE%BE%E7%BD%AE%E4%B8%80%E4%B8%AAhigh-level%E7%9A%84%E7%9B%AE%E6%A0%87%E3%80%82%F0%9F%96%BC%EF%B8%8F">1 . &#x8BBE;&#x7F6E;&#x4E00;&#x4E2A;High-level&#x7684;&#x76EE;&#x6807;&#x3002;&#x1F5BC;&#xFE0F;</h4><p>&#x5982;&#x679C;&#x60A8;&#x6709;&#x4E00;&#x4E2A;&#x7A7A;&#x767D;&#x6587;&#x4EF6;&#x6216;&#x7A7A;&#x7684;&#x4EE3;&#x7801;&#x5E93;&#xFF0C;&#x8FD9;&#x4F1A;&#x975E;&#x5E38;&#x6709;&#x5E2E;&#x52A9;&#x3002;&#x6362;&#x53E5;&#x8BDD;&#x8BF4;&#xFF0C;&#x5982;&#x679C;GitHub Copilot&#x5BF9;&#x60A8;&#x8981;&#x6784;&#x5EFA;&#x6216;&#x5B8C;&#x6210;&#x7684;&#x5185;&#x5BB9;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x4E0A;&#x4E0B;&#x6587;&#xFF0C;&#x4E0E;AI&#x7ED3;&#x5BF9;&#x7F16;&#x7A0B;&#x8BBE;&#x7F6E;&#x9636;&#x6BB5;&#x4F1A;&#x975E;&#x5E38;&#x6709;&#x7528;&#x3002;&#x5728;&#x60A8;&#x8BE6;&#x7EC6;&#x4ECB;&#x7ECD;&#x7EC6;&#x8282;&#x4E4B;&#x524D;&#xFF0C;&#x901A;&#x8FC7;&#x5927;&#x81F4;&#x63CF;&#x8FF0;&#x60A8;&#x5E0C;&#x671B;&#x5B83;&#x751F;&#x6210;&#x7684;&#x4EE3;&#x7801;&#x6765;&#x4E3A;GitHub Copilot&#x94FA;&#x5E73;&#x9053;&#x8DEF;&#x3002;</p><p>&#x5728;&#x63D0;&#x793A;GitHub Copilot&#x65F6;&#xFF0C;&#x5C06;&#x8FD9;&#x4E2A;&#x8FC7;&#x7A0B;&#x770B;&#x4F5C;&#x662F;&#x4E0E;&#x67D0;&#x4EBA;&#x8FDB;&#x884C;&#x5BF9;&#x8BDD;&#xFF1A;&#x6211;&#x5E94;&#x8BE5;&#x5982;&#x4F55;&#x62C6;&#x5206;&#x95EE;&#x9898;&#xFF0C;&#x4EE5;&#x4FBF;&#x6211;&#x4EEC;&#x4E00;&#x8D77;&#x89E3;&#x51B3;&#x5B83;&#xFF1F;&#x6211;&#x5E94;&#x8BE5;&#x5982;&#x4F55;&#x4E0E;&#x8FD9;&#x4E2A;&#x4EBA;&#x4E00;&#x8D77;&#x8FDB;&#x884C;&#x7ED3;&#x5BF9;&#x7F16;&#x7A0B;&#xFF1F;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x5728;&#x6784;&#x5EFA;Next.js&#x4E2D;&#x7684;Markdown&#x7F16;&#x8F91;&#x5668;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7F16;&#x5199;&#x8FD9;&#x6837;&#x7684;&#x6CE8;&#x91CA;&#xFF1A;</p><pre><code class="language-cpp">/* 
Create a basic markdown editor in Next.js with the following features: 
- Use react hooks 
- Create state for markdown with default text &quot;type markdown here&quot; 
- A text area where users can write markdown  
- Show a live preview of the markdown text as I type 
- Support for basic markdown syntax like headers, bold, italics  
- Use React markdown npm package  
- The markdown text and resulting HTML should be saved in the component&apos;s state and updated in real time  
*/</code></pre><p>&#x8FD9;&#x5C06;&#x4FC3;&#x4F7F;GitHub Copilot&#x751F;&#x6210;&#x4EE5;&#x4E0B;&#x4EE3;&#x7801;&#xFF0C;&#x5E76;&#x5728;&#x4E0D;&#x5230;30&#x79D2;&#x5185;&#x751F;&#x6210;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x7B80;&#x5355;&#x3001;&#x672A;&#x7ECF;&#x6837;&#x5F0F;&#x5316;&#x4F46;&#x529F;&#x80FD;&#x6B63;&#x5E38;&#x7684;Markdown&#x7F16;&#x8F91;&#x5668;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x540E;&#x7EED;&#x4E3A;&#x7EC4;&#x4EF6;&#x6DFB;&#x52A0;&#x6837;&#x5F0F;&#xFF1A;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-ahluz9azi0iikdvgawgazq.gif" class="kg-image" alt="&#x5982;&#x4F55;&#x66F4;&#x597D;&#x5730;&#x4F7F;&#x7528;GitHub Copilot&#xFF1A;Prompts&#x3001;&#x6280;&#x5DE7;&#x548C;&#x7528;&#x4F8B;" loading="lazy" width="600" height="375" srcset="https://liangbo.me/content/images/2024/07/1-ahluz9azi0iikdvgawgazq.gif 600w"></figure><blockquote>Note: &#x8FD9;&#x79CD;&#x8BE6;&#x7EC6;&#x7A0B;&#x5EA6;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x60A8;&#x521B;&#x5EFA;&#x66F4;&#x7B26;&#x5408;&#x9884;&#x671F;&#x7684;&#x8F93;&#x51FA;&#xFF0C;&#x4F46;&#x7ED3;&#x679C;&#x4ECD;&#x53EF;&#x80FD;&#x662F;&#x975E;&#x786E;&#x5B9A;&#x7684;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5728;&#x6CE8;&#x91CA;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x63D0;&#x793A;GitHub Copilot&#x521B;&#x5EFA;&#x9ED8;&#x8BA4;&#x6587;&#x672C;&#xFF0C;&#x663E;&#x793A;&#x201C;&#x5728;&#x6B64;&#x952E;&#x5165;Markdown&#x201D;&#xFF0C;&#x4F46;&#x5B83;&#x5B9E;&#x9645;&#x4E0A;&#x751F;&#x6210;&#x4E86;&#x201C;Markdown&#x9884;&#x89C8;&#x201D;&#x4F5C;&#x4E3A;&#x9ED8;&#x8BA4;&#x6587;&#x5B57;&#x3002;</blockquote><h4 id="2-%E8%AE%A9%E6%82%A8%E7%9A%84%E8%AF%B7%E6%B1%82%E7%AE%80%E5%8D%95%E6%98%8E%E7%A1%AE%E3%80%82%E6%97%A8%E5%9C%A8%E4%BB%8Egithub-copilot%E8%8E%B7%E5%BE%97%E7%AE%80%E7%9F%AD%E7%9A%84%E8%BE%93%E5%87%BA%E3%80%82%F0%9F%97%A8%EF%B8%8F">2 . &#x8BA9;&#x60A8;&#x7684;&#x8BF7;&#x6C42;&#x7B80;&#x5355;&#x660E;&#x786E;&#x3002;&#x65E8;&#x5728;&#x4ECE;GitHub Copilot&#x83B7;&#x5F97;&#x7B80;&#x77ED;&#x7684;&#x8F93;&#x51FA;&#x3002;&#x1F5E8;&#xFE0F;</h4><p>&#x4E00;&#x65E6;&#x60A8;&#x5411;AI&#x4F20;&#x8FBE;&#x4E86;&#x9996;&#x8981;&#x76EE;&#x6807;&#xFF0C;&#x9610;&#x8FF0;&#x5B83;&#x9700;&#x8981;&#x9075;&#x5FAA;&#x7684;&#x903B;&#x8F91;&#x548C;&#x6B65;&#x9AA4;&#x6765;&#x5B9E;&#x73B0;&#x8BE5;&#x76EE;&#x6807;&#x3002;&#x5F53;&#x60A8;&#x5C06;&#x4E8B;&#x60C5;&#x5206;&#x89E3;&#x65F6;&#xFF0C;GitHub Copilot&#x66F4;&#x597D;&#x5730;&#x7406;&#x89E3;&#x60A8;&#x7684;&#x76EE;&#x6807;&#x3002;&#xFF08;&#x60F3;&#x8C61;&#x4E00;&#x4E0B;&#x60A8;&#x6B63;&#x5728;&#x7F16;&#x5199;&#x98DF;&#x8C31;&#x3002;&#x60A8;&#x4F1A;&#x5C06;&#x70F9;&#x996A;&#x8FC7;&#x7A0B;&#x5206;&#x89E3;&#x6210;&#x79BB;&#x6563;&#x7684;&#x6B65;&#x9AA4;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5199;&#x4E00;&#x6BB5;&#x63CF;&#x8FF0;&#x60A8;&#x60F3;&#x5236;&#x4F5C;&#x7684;&#x83DC;&#x80B4;&#x7684;&#x6BB5;&#x843D;&#x3002;&#xFF09;</p><p>&#x8BA9;GitHub Copilot&#x5728;&#x6BCF;&#x4E2A;&#x6B65;&#x9AA4;&#x4E4B;&#x540E;&#x751F;&#x6210;&#x4EE3;&#x7801;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x8981;&#x6C42;&#x5B83;&#x4E00;&#x6B21;&#x751F;&#x6210;&#x5927;&#x91CF;&#x4EE3;&#x7801;&#x3002;</p><p>&#x4EE5;&#x4E0B;&#x662F;&#x6211;&#x4EEC;&#x4E3A;GitHub Copilot&#x63D0;&#x4F9B;&#x7684;&#x9010;&#x6B65;&#x53CD;&#x8F6C;&#x51FD;&#x6570;&#x7684;&#x793A;&#x4F8B;&#x8BF4;&#x660E;&#xFF1A;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-z5fxepz_t8lztymrzcye0g.gif" class="kg-image" alt="&#x5982;&#x4F55;&#x66F4;&#x597D;&#x5730;&#x4F7F;&#x7528;GitHub Copilot&#xFF1A;Prompts&#x3001;&#x6280;&#x5DE7;&#x548C;&#x7528;&#x4F8B;" loading="lazy" width="1920" height="1080" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-z5fxepz_t8lztymrzcye0g.gif 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-z5fxepz_t8lztymrzcye0g.gif 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-z5fxepz_t8lztymrzcye0g.gif 1600w, https://liangbo.me/content/images/2024/07/1-z5fxepz_t8lztymrzcye0g.gif 1920w" sizes="(min-width: 720px) 720px"></figure><h4 id="3-%E7%BB%99github-copilot%E6%8F%90%E4%BE%9B%E4%B8%80%E4%B8%AA%E6%88%96%E4%B8%A4%E4%B8%AA%E7%A4%BA%E4%BE%8B%E3%80%82%E2%9C%8D%EF%B8%8F">3 . &#x7ED9;GitHub Copilot&#x63D0;&#x4F9B;&#x4E00;&#x4E2A;&#x6216;&#x4E24;&#x4E2A;&#x793A;&#x4F8B;&#x3002;&#x270D;&#xFE0F;</h4><p>&#x4ECE;&#x793A;&#x4F8B;&#x4E2D;&#x5B66;&#x4E60;&#x4E0D;&#x4EC5;&#x5BF9;&#x4EBA;&#x7C7B;&#x6709;&#x7528;&#xFF0C;&#x5BF9;&#x60A8;&#x7684;AI&#x914D;&#x5BF9;&#x7A0B;&#x5E8F;&#x5458;&#x4E5F;&#x662F;&#x5982;&#x6B64;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x60F3;&#x8981;&#x4ECE;&#x4E0B;&#x9762;&#x7684;&#x6570;&#x636E;&#x6570;&#x7EC4;&#x4E2D;&#x63D0;&#x53D6;&#x540D;&#x79F0;&#x5E76;&#x5C06;&#x5176;&#x5B58;&#x50A8;&#x5728;&#x4E00;&#x4E2A;&#x65B0;&#x6570;&#x7EC4;&#x4E2D;&#xFF1A;</p><pre><code class="language-typescript">const data = [ 
  [ 
    { name: &apos;John&apos;, age: 25 }, 
    { name: &apos;Jane&apos;, age: 30 } 
  ], 
  [ 
    { name: &apos;Bob&apos;, age: 40 } 
  ] 
];</code></pre><p>&#x5F53;&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x5411;GitHub Copilot&#x5C55;&#x793A;&#x793A;&#x4F8B;&#x65F6;&#x2026;</p><pre><code class="language-typescript">// Map through an array of arrays of objects to transform data 
const data = [ 
  [ 
    { name: &apos;John&apos;, age: 25 }, 
    { name: &apos;Jane&apos;, age: 30 } 
  ], 
  [ 
    { name: &apos;Bob&apos;, age: 40 } 
  ] 
]; 
 
const mappedData = data.map(x =&gt; [x.name](http://x.name/)); 
 
console.log(mappedData); 
 
// Results: [undefined, undefined]</code></pre><p>&#x5B83;&#x751F;&#x6210;&#x4E86;&#x4E00;&#x4E2A;map&#x7684;&#x9519;&#x8BEF;&#x7528;&#x6CD5;</p><pre><code class="language-typescript">const mappedData = data.map(x =&gt; [x.name](http://x.name/)); 
 
console.log(mappedData); 
 
// Results: [undefined, undefined]</code></pre><p>&#x76F8;&#x6BD4;&#x4E4B;&#x4E0B;&#xFF0C;&#x5F53;&#x6211;&#x4EEC;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x793A;&#x4F8B;&#x65F6;&#x2026;</p><pre><code class="language-typescript">// Map through an array of arrays of objects 
// Example: Extract names from the data array 
// Desired outcome: [&apos;John&apos;, &apos;Jane&apos;, &apos;Bob&apos;] 
const data = [ 
  [{ name: &apos;John&apos;, age: 25 }, { name: &apos;Jane&apos;, age: 30 }], 
  [{ name: &apos;Bob&apos;, age: 40 }] 
]; 
 
 
const mappedData = data.flatMap(sublist =&gt; sublist.map(person =&gt; person.name)); 
 
console.log(mappedData);</code></pre><p>&#x6211;&#x4EEC;&#x5F97;&#x5230;&#x4E86;&#x4E00;&#x4E2A;&#x6211;&#x4EEC;&#x60F3;&#x8981;&#x7684;&#x7ED3;&#x679C;</p><pre><code class="language-typescript">const mappedData = data.flatMap(sublist =&gt; sublist.map(person =&gt; person.name)); 
 
console.log(mappedData); 
// Results: [&apos;John&apos;, &apos;Jane&apos;, &apos;Bob&apos;]</code></pre><h3 id="%E4%B8%8Egithub-copilot%E8%BF%9B%E8%A1%8C%E6%8F%90%E7%A4%BA%E6%9E%84%E5%BB%BA%E7%9A%84%E5%8F%A6%E5%A4%96%E4%B8%89%E4%B8%AA%E6%8A%80%E5%B7%A7">&#x4E0E;GitHub Copilot&#x8FDB;&#x884C;&#x63D0;&#x793A;&#x6784;&#x5EFA;&#x7684;&#x53E6;&#x5916;&#x4E09;&#x4E2A;&#x6280;&#x5DE7;</h3><p>&#x4EE5;&#x4E0B;&#x662F;&#x4E09;&#x4E2A;&#x989D;&#x5916;&#x7684;&#x63D0;&#x793A;&#xFF0C;&#x4EE5;&#x5E2E;&#x52A9;&#x5F15;&#x5BFC;&#x60A8;&#x4E0E;GitHub Copilot&#x7684;&#x5BF9;&#x8BDD;&#x3002;</p><h4 id="1-%E5%B0%9D%E8%AF%95%E4%B8%8D%E5%90%8C%E7%9A%84prompt%E3%80%82">1 . &#x5C1D;&#x8BD5;&#x4E0D;&#x540C;&#x7684;Prompt&#x3002;</h4><p>&#x5C31;&#x50CF;&#x5BF9;&#x8BDD;&#x66F4;&#x591A;&#x662F;&#x4E00;&#x95E8;&#x827A;&#x672F;&#x800C;&#x4E0D;&#x662F;&#x79D1;&#x5B66;&#x4E00;&#x6837;&#xFF0C;&#x63D0;&#x793A;&#x6784;&#x5EFA;&#x4E5F;&#x662F;&#x5982;&#x6B64;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x5982;&#x679C;&#x60A8;&#x5728;&#x7B2C;&#x4E00;&#x6B21;&#x5C1D;&#x8BD5;&#x65F6;&#x6CA1;&#x6709;&#x5F97;&#x5230;&#x60A8;&#x60F3;&#x8981;&#x7684;&#x7ED3;&#x679C;&#xFF0C;&#x8BF7;&#x6309;&#x7167;&#x4E0A;&#x9762;&#x7684;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#x91CD;&#x65B0;&#x6784;&#x5EFA;&#x60A8;&#x7684;&#x63D0;&#x793A;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x63D0;&#x793A;&#x5F88;&#x6A21;&#x7CCA;&#x3002;&#x5B83;&#x6CA1;&#x6709;&#x4E3A;GitHub Copilot&#x751F;&#x6210;&#x76F8;&#x5173;&#x5EFA;&#x8BAE;&#x63D0;&#x4F9B;&#x4EFB;&#x4F55;&#x4E0A;&#x4E0B;&#x6587;&#x6216;&#x754C;&#x9650;&#x3002;</p><pre><code class="language-python"># Write some code for grades.py</code></pre><p>&#x6211;&#x4EEC;&#x5BF9;&#x63D0;&#x793A;&#x8FDB;&#x884C;&#x4E86;&#x8FED;&#x4EE3;&#xFF0C;&#x4F7F;&#x5176;&#x66F4;&#x5177;&#x4F53;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x4ECD;&#x7136;&#x6CA1;&#x6709;&#x5F97;&#x5230;&#x6211;&#x4EEC;&#x6B63;&#x5728;&#x5BFB;&#x627E;&#x7684;&#x786E;&#x5207;&#x7ED3;&#x679C;&#x3002;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x5F88;&#x597D;&#x7684;&#x63D0;&#x9192;&#xFF0C;&#x5373;&#x4F7F;&#x542C;&#x8D77;&#x6765;&#x589E;&#x52A0;&#x63D0;&#x793A;&#x7684;&#x5177;&#x4F53;&#x6027;&#x4E5F;&#x6BD4;&#x8F83;&#x56F0;&#x96BE;&#x3002;&#x4ECE;&#x4E00;&#x5F00;&#x59CB;&#x5C31;&#x5F88;&#x96BE;&#x77E5;&#x9053;&#x60A8;&#x5E94;&#x8BE5;&#x5305;&#x62EC;&#x54EA;&#x4E9B;&#x6709;&#x5173;&#x76EE;&#x6807;&#x7684;&#x7EC6;&#x8282;&#xFF0C;&#x4EE5;&#x4ECE;GitHub Copilot&#x751F;&#x6210;&#x6700;&#x6709;&#x7528;&#x7684;&#x5EFA;&#x8BAE;&#x3002;&#x8FD9;&#x5C31;&#x662F;&#x4E3A;&#x4EC0;&#x4E48;&#x6211;&#x4EEC;&#x9F13;&#x52B1;&#x8FDB;&#x884C;&#x5C1D;&#x8BD5;&#x3002;</p><p>&#x4E0B;&#x9762;&#x7248;&#x672C;&#x7684;&#x63D0;&#x793A;&#x6BD4;&#x4E0A;&#x9762;&#x7684;&#x7248;&#x672C;&#x66F4;&#x5177;&#x4F53;&#xFF0C;&#x4F46;&#x5B83;&#x5E76;&#x6CA1;&#x6709;&#x660E;&#x786E;&#x5B9A;&#x4E49;&#x8F93;&#x5165;&#x548C;&#x8F93;&#x51FA;&#x8981;&#x6C42;&#x3002;</p><pre><code class="language-python"># Implement a function in grades.py to calculate the average grade</code></pre><p>&#x6211;&#x4EEC;&#x518D;&#x6B21;&#x5C1D;&#x8BD5;&#x4E86;&#x63D0;&#x793A;&#xFF0C;&#x901A;&#x8FC7;&#x8BBE;&#x5B9A;&#x754C;&#x9650;&#x548C;&#x6982;&#x8FF0;&#x6211;&#x4EEC;&#x5E0C;&#x671B;&#x51FD;&#x6570;&#x6267;&#x884C;&#x7684;&#x64CD;&#x4F5C;&#x3002;&#x6211;&#x4EEC;&#x8FD8;&#x91CD;&#x65B0;&#x8868;&#x8FF0;&#x4E86;&#x6CE8;&#x91CA;&#xFF0C;&#x4F7F;&#x51FD;&#x6570;&#x66F4;&#x52A0;&#x6E05;&#x6670;&#xFF08;&#x4E3A;GitHub Copilot&#x63D0;&#x4F9B;&#x660E;&#x786E;&#x7684;&#x9A8C;&#x8BC1;&#x610F;&#x56FE;&#xFF09;&#x3002;</p><p>&#x8FD9;&#x4E00;&#x6B21;&#xFF0C;&#x6211;&#x4EEC;&#x5F97;&#x5230;&#x4E86;&#x6211;&#x4EEC;&#x6240;&#x671F;&#x671B;&#x7684;&#x7ED3;&#x679C;&#x3002;</p><pre><code class="language-python"># Implement the function calculate_average_grade in grades.py that takes a list of grades as input and returns the average grade as a floating-point number</code></pre><h4 id="2-%E4%BF%9D%E6%8C%81%E4%B8%80%E4%BA%9B%E7%9B%B8%E5%85%B3%E7%9A%84%E6%A0%87%E7%AD%BE%E9%A1%B5%E6%89%93%E5%BC%80%E3%80%82">2 . &#x4FDD;&#x6301;&#x4E00;&#x4E9B;&#x76F8;&#x5173;&#x7684;&#x6807;&#x7B7E;&#x9875;&#x6253;&#x5F00;&#x3002;</h4><p>&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x786E;&#x5207;&#x7684;&#x6807;&#x7B7E;&#x9875;&#x6570;&#x91CF;&#xFF0C;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;GitHub Copilot&#x5BF9;&#x60A8;&#x7684;&#x4EE3;&#x7801;&#x8FDB;&#x884C;&#x4E0A;&#x4E0B;&#x6587;&#x5904;&#x7406;&#xFF0C;&#x4F46;&#x6839;&#x636E;&#x6211;&#x4EEC;&#x7684;&#x7ECF;&#x9A8C;&#xFF0C;&#x6211;&#x4EEC;&#x53D1;&#x73B0;&#x4FDD;&#x6301;&#x4E00;&#x4E2A;&#x6216;&#x4E24;&#x4E2A;&#x6807;&#x7B7E;&#x9875;&#x662F;&#x6709;&#x5E2E;&#x52A9;&#x7684;&#x3002;</p><p>GitHub Copilot&#x4F7F;&#x7528;&#x4E00;&#x79CD;&#x79F0;&#x4E3A;&#x90BB;&#x8FD1;&#x6807;&#x7B7E;&#x9875;&#x7684;&#x6280;&#x672F;&#xFF0C;&#x5B83;&#x5141;&#x8BB8;AI&#x914D;&#x5BF9;&#x7A0B;&#x5E8F;&#x5458;&#x901A;&#x8FC7;&#x5904;&#x7406;&#x5728;&#x60A8;&#x7684;IDE&#x4E2D;&#x6253;&#x5F00;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x6765;&#x5BF9;&#x60A8;&#x7684;&#x4EE3;&#x7801;&#x8FDB;&#x884C;&#x4E0A;&#x4E0B;&#x6587;&#x5904;&#x7406;&#xFF0C;&#x800C;&#x4E0D;&#x4EC5;&#x4EC5;&#x662F;&#x60A8;&#x6B63;&#x5728;&#x5DE5;&#x4F5C;&#x7684;&#x5355;&#x4E2A;&#x6587;&#x4EF6;&#x3002;&#x4F46;&#x662F;&#xFF0C;&#x5E76;&#x4E0D;&#x4FDD;&#x8BC1;GitHub Copilot&#x4F1A;&#x8BA4;&#x4E3A;&#x6240;&#x6709;&#x6253;&#x5F00;&#x7684;&#x6587;&#x4EF6;&#x90FD;&#x662F;&#x60A8;&#x7684;&#x4EE3;&#x7801;&#x6240;&#x9700;&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#x3002;</p><h4 id="3-%E4%BD%BF%E7%94%A8%E8%89%AF%E5%A5%BD%E7%9A%84%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5%E3%80%82">3 . &#x4F7F;&#x7528;&#x826F;&#x597D;&#x7684;&#x7F16;&#x7801;&#x5B9E;&#x8DF5;&#x3002;</h4><p>&#x8FD9;&#x5305;&#x62EC;&#x63D0;&#x4F9B;&#x63CF;&#x8FF0;&#x6027;&#x7684;&#x53D8;&#x91CF;&#x540D;&#x548C;&#x51FD;&#x6570;&#xFF0C;&#x5E76;&#x9075;&#x5FAA;&#x4E00;&#x81F4;&#x7684;&#x7F16;&#x7801;&#x98CE;&#x683C;&#x548C;&#x6A21;&#x5F0F;&#x3002;&#x6211;&#x4EEC;&#x53D1;&#x73B0;&#x4E0E;GitHub Copilot&#x4E00;&#x8D77;&#x5DE5;&#x4F5C;&#x9F13;&#x52B1;&#x6211;&#x4EEC;&#x9075;&#x5FAA;&#x6211;&#x4EEC;&#x5728;&#x6574;&#x4E2A;&#x804C;&#x4E1A;&#x751F;&#x6DAF;&#x4E2D;&#x5B66;&#x5230;&#x7684;&#x826F;&#x597D;&#x7F16;&#x7801;&#x5B9E;&#x8DF5;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x5728;&#x8FD9;&#x91CC;&#xFF0C;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x4E86;&#x4E00;&#x4E2A;&#x63CF;&#x8FF0;&#x6027;&#x7684;&#x51FD;&#x6570;&#x540D;&#x79F0;&#xFF0C;&#x5E76;&#x9075;&#x5FAA;&#x4E86;&#x4EE3;&#x7801;&#x5E93;&#x4E2D;&#x4F7F;&#x7528;&#x86C7;&#x5F62;&#x547D;&#x540D;&#x6CD5;&#x7684;&#x6A21;&#x5F0F;&#x3002;</p><pre><code class="language-python">def authenticate_user(username, password):</code></pre><p>&#x7ED3;&#x679C;&#xFF0C;GitHub Copilot&#x751F;&#x6210;&#x4E86;&#x4E00;&#x4E2A;&#x76F8;&#x5173;&#x7684;&#x4EE3;&#x7801;&#x5EFA;&#x8BAE;&#xFF1A;</p><pre><code class="language-python">def authenticate_user(username, password): 
    # Code for authenticating the user 
    if is_valid_user(username, password): 
        generate_session_token(username) 
        return True 
    else: 
        return False</code></pre><p>&#x4E0E;&#x4E0B;&#x9762;&#x7684;&#x793A;&#x4F8B;&#x76F8;&#x6BD4;&#xFF0C;&#x6211;&#x4EEC;&#x5F15;&#x5165;&#x4E86;&#x4E0D;&#x4E00;&#x81F4;&#x7684;&#x7F16;&#x7801;&#x98CE;&#x683C;&#x5E76;&#x4E14;&#x7ED9;&#x51FD;&#x6570;&#x53D6;&#x4E86;&#x4E00;&#x4E2A;&#x4E0D;&#x6070;&#x5F53;&#x7684;&#x540D;&#x79F0;&#x3002;</p><pre><code class="language-python">def rndpwd(l):</code></pre><p>&#x4E0E;&#x5EFA;&#x8BAE;&#x4EE3;&#x7801;&#x4E0D;&#x540C;&#xFF0C;GitHub Copilot&#x751F;&#x6210;&#x4E86;&#x4E00;&#x6761;&#x6CE8;&#x91CA;&#xFF0C;&#x4E0A;&#x9762;&#x5199;&#x7740;&#x201C;&#x4EE3;&#x7801;&#x653E;&#x5728;&#x8FD9;&#x91CC;&#x3002;&#x201D;</p><pre><code class="language-python">def rndpwd(l): 
    # Code goes here</code></pre><h3 id="%E6%80%BB%E7%BB%93">&#x603B;&#x7ED3;</h3><p>&#x751F;&#x6210;&#x5F0F;AI&#x7F16;&#x7A0B;&#x5DE5;&#x5177;&#x80CC;&#x540E;&#x7684;&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#xFF08;LLMs&#xFF09;&#x88AB;&#x8BBE;&#x8BA1;&#x7528;&#x4E8E;&#x4ECE;&#x5176;&#x8BAD;&#x7EC3;&#x6570;&#x636E;&#x4E2D;&#x627E;&#x5230;&#x5E76;&#x63A8;&#x65AD;&#x51FA;&#x6A21;&#x5F0F;&#xFF0C;&#x5C06;&#x8FD9;&#x4E9B;&#x6A21;&#x5F0F;&#x5E94;&#x7528;&#x4E8E;&#x73B0;&#x6709;&#x8BED;&#x8A00;&#xFF0C;&#x7136;&#x540E;&#x751F;&#x6210;&#x9075;&#x5FAA;&#x8FD9;&#x4E9B;&#x6A21;&#x5F0F;&#x7684;&#x4EE3;&#x7801;&#x3002;&#x9274;&#x4E8E;&#x8FD9;&#x4E9B;&#x6A21;&#x578B;&#x7684;&#x89C4;&#x6A21;&#x4E4B;&#x5927;&#xFF0C;&#x5B83;&#x4EEC;&#x53EF;&#x80FD;&#x4F1A;&#x751F;&#x6210;&#x751A;&#x81F3;&#x5C1A;&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x4EE3;&#x7801;&#x5E8F;&#x5217;&#x3002;&#x5C31;&#x50CF;&#x60A8;&#x4F1A;&#x5BA1;&#x67E5;&#x540C;&#x4E8B;&#x7684;&#x4EE3;&#x7801;&#x4E00;&#x6837;&#xFF0C;&#x60A8;&#x5E94;&#x8BE5;&#x59CB;&#x7EC8;&#x8BC4;&#x4F30;&#x3001;&#x5206;&#x6790;&#x548C;&#x9A8C;&#x8BC1;&#x7531;AI&#x751F;&#x6210;&#x7684;&#x4EE3;&#x7801;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[在本地使用CPU运行Llama 2模型来实现文档Q&A]]></title><description><![CDATA[第三方商业大型语言模型（LLM）提供商，如OpenAI的GPT4，通过简单的API调用使LLM的使用更加容易。然而，由于数据隐私和合规等各种原因，我们可能仍需要在企业内部部署或私有模型推理。]]></description><link>https://liangbo.me/e5-9c-a8-e6-9c-ac-e5-9c-b0-e4-bd-bf-e7-94-a8cpu-e8-bf-90-e8-a1-8cllama-2-e6-a8-a1-e5-9e-8b-e6-9d-a5-e5-ae-9e-e7-8e-b0-e6-96-87-e6-a1-a3q-a/</link><guid isPermaLink="false">66860f1cb6891c0001494cc1</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Sat, 22 Jul 2023 05:41:33 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-qwo9t02ybiuh-dqiulwbng-2x.png" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-qwo9t02ybiuh-dqiulwbng-2x.png" alt="&#x5728;&#x672C;&#x5730;&#x4F7F;&#x7528;CPU&#x8FD0;&#x884C;Llama 2&#x6A21;&#x578B;&#x6765;&#x5B9E;&#x73B0;&#x6587;&#x6863;Q&amp;A"><p>&#x7B2C;&#x4E09;&#x65B9;&#x5546;&#x4E1A;&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#xFF08;LLM&#xFF09;&#x63D0;&#x4F9B;&#x5546;&#xFF0C;&#x5982;OpenAI&#x7684;GPT4&#xFF0C;&#x901A;&#x8FC7;&#x7B80;&#x5355;&#x7684;API&#x8C03;&#x7528;&#x4F7F;LLM&#x7684;&#x4F7F;&#x7528;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x7531;&#x4E8E;&#x6570;&#x636E;&#x9690;&#x79C1;&#x548C;&#x5408;&#x89C4;&#x7B49;&#x5404;&#x79CD;&#x539F;&#x56E0;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x80FD;&#x4ECD;&#x9700;&#x8981;&#x5728;&#x4F01;&#x4E1A;&#x5185;&#x90E8;&#x90E8;&#x7F72;&#x6216;&#x79C1;&#x6709;&#x6A21;&#x578B;&#x63A8;&#x7406;&#x3002;</p><p>&#x5F00;&#x6E90;LLM&#x7684;&#x666E;&#x53CA;&#x8BA9;&#x6211;&#x4EEC;&#x79C1;&#x6709;&#x5316;&#x90E8;&#x7F72;&#x5927;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x79F0;&#x4E3A;&#x53EF;&#x80FD;&#xFF0C;&#x4ECE;&#x800C;&#x51CF;&#x5C11;&#x4E86;&#x5BF9;&#x8FD9;&#x4E9B;&#x7B2C;&#x4E09;&#x65B9;&#x63D0;&#x4F9B;&#x5546;&#x7684;&#x4F9D;&#x8D56;&#x3002;</p><p>&#x5F53;&#x6211;&#x4EEC;&#x5C06;&#x5F00;&#x6E90;&#x6A21;&#x578B;&#x6258;&#x7BA1;&#x5728;&#x672C;&#x5730;&#x6216;&#x4E91;&#x7AEF;&#x65F6;&#xFF0C;&#x4E13;&#x7528;&#x7684;&#x8BA1;&#x7B97;&#x80FD;&#x529B;&#x6210;&#x4E3A;&#x4E00;&#x4E2A;&#x5173;&#x952E;&#x8003;&#x8651;&#x56E0;&#x7D20;&#x3002;&#x867D;&#x7136;GPU&#x5B9E;&#x4F8B;&#x53EF;&#x80FD;&#x662F;&#x6700;&#x4F73;&#x9009;&#x62E9;&#xFF0C;&#x4F46;&#x6210;&#x672C;&#x4E5F;&#x5F88;&#x5BB9;&#x6613;&#x4E00;&#x98DE;&#x51B2;&#x5929;&#xFF0C; &#x518D;&#x52A0;&#x4E0A;&#x73B0;&#x5728;&#x4E00;&#x5361;&#x96BE;&#x6C42;&#xFF0C; &#x60F3;&#x8DD1;&#x6A21;&#x578B;&#x4E5F;&#x53D8;&#x6210;&#x4E86;&#x4E00;&#x4E2A;&#x4E0D;&#x7B80;&#x5355;&#x7684;&#x4E8B;&#x60C5;&#x3002;</p><p>&#x5728;&#x8FD9;&#x4E2A;&#x6307;&#x5357;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x63A2;&#x8BA8;&#x5982;&#x4F55;&#x4F7F;&#x7528;CPU&#x5728;&#x672C;&#x5730;Python&#x4E2D;&#x8FD0;&#x884C;&#x5F00;&#x6E90;&#x5E76;&#x7ECF;&#x8FC7;&#x8F7B;&#x91CF;&#x5316;&#x7684;LLM&#x6A21;&#x578B;&#xFF0C;&#x7528;&#x4E8E;&#x68C0;&#x7D22;&#x589E;&#x5F3A;&#x751F;&#x6210;&#xFF08;Retrieval-augmented generation, &#x4E5F;&#x79F0;&#x4E3A;Document Q&amp;A&#xFF09;&#x3002;&#x800C;&#x4E14;&#x6211;&#x4EEC;&#x5C06;&#x5728;&#x8FD9;&#x4E2A;&#x9879;&#x76EE;&#x4E2D;&#x5229;&#x7528;&#x6700;&#x65B0;&#x3001;&#x9AD8;&#x6027;&#x80FD;&#x7684;Llama 2&#x804A;&#x5929;&#x6A21;&#x578B;&#x3002;</p><hr><h3 id="quantization%E9%87%8F%E5%8C%96%E7%AE%80%E4%BB%8B">Quantization(&#x91CF;&#x5316;)&#x7B80;&#x4ECB;</h3><p>&#x867D;&#x7136;LLM&#x5C55;&#x73B0;&#x4E86;&#x51FA;&#x8272;&#x7684;&#x80FD;&#x529B;&#xFF0C;&#x4F46;&#x5176;&#x8FD0;&#x884C;&#x6240;&#x8981;&#x6C42;&#x7684;&#x8BA1;&#x7B97;&#x548C;&#x5185;&#x5B58;&#x8D44;&#x6E90;&#x8F83;&#x9AD8;&#x3002;&#x4E3A;&#x4E86;&#x5E94;&#x5BF9;&#x8FD9;&#x4E00;&#x95EE;&#x9898;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;Quantization&#x6765;&#x538B;&#x7F29;&#x8FD9;&#x4E9B;&#x6A21;&#x578B;&#xFF0C;&#x4EE5;&#x51CF;&#x5C11;&#x5185;&#x5B58;&#x5360;&#x7528;&#x5E76;&#x52A0;&#x901F;&#x63A8;&#x7406;&#x8BA1;&#x7B97;&#x8FC7;&#x7A0B;&#xFF0C;&#x540C;&#x65F6;&#x4FDD;&#x6301;&#x6A21;&#x578B;&#x7684;&#x6027;&#x80FD;&#x548C;&#x6548;&#x679C;&#x3002;</p><p>Quantization&#x662F;&#x4E00;&#x79CD;&#x5C06;&#x7528;&#x4E8E;&#x8868;&#x793A;&#x6570;&#x5B57;&#x6216;&#x503C;&#x7684;&#x4F4D;&#x6570;&#x51CF;&#x5C11;&#x7684;&#x6280;&#x672F;&#x3002;&#x5728;LLM&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#x4E2D;&#xFF0C;&#x5B83;&#x6D89;&#x53CA;&#x901A;&#x8FC7;&#x5C06;&#x6743;&#x91CD;&#x5B58;&#x50A8;&#x5728;&#x8F83;&#x4F4E;&#x7CBE;&#x5EA6;&#x7684;&#x6570;&#x636E;&#x7C7B;&#x578B;&#x4E2D;&#x6765;&#x51CF;&#x5C11;&#x6A21;&#x578B;&#x53C2;&#x6570;&#x7684;&#x7CBE;&#x5EA6;&#x3002;</p><p>&#x7531;&#x4E8E;&#x5B83;&#x51CF;&#x5C0F;&#x4E86;&#x6A21;&#x578B;&#x5927;&#x5C0F;&#xFF0C;&#x91CF;&#x5316;&#x6709;&#x52A9;&#x4E8E;&#x5728;&#x8D44;&#x6E90;&#x53D7;&#x9650;&#x7684;&#x8BBE;&#x5907;&#x4E0A;&#x90E8;&#x7F72;&#x6A21;&#x578B;&#xFF0C;&#x4F8B;&#x5982;&#x4EC5;&#x6709;CPU&#x4F46;&#x6CA1;&#x6709;GPU&#x7684;&#x8BBE;&#x5907;&#x6216;&#x5D4C;&#x5165;&#x5F0F;&#x7CFB;&#x7EDF;&#x3002;</p><p>&#x4E00;&#x79CD;&#x5E38;&#x89C1;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x5C06;&#x6A21;&#x578B;&#x6743;&#x91CD;&#x4ECE;&#x539F;&#x59CB;&#x7684;16&#x4F4D;&#x6D6E;&#x70B9;&#x6570;&#x503C;&#x91CF;&#x5316;&#x4E3A;&#x8F83;&#x4F4E;&#x7CBE;&#x5EA6;&#x7684;8&#x4F4D;&#x6574;&#x6570;&#x503C;&#x3002;</p><h3 id="%E5%B7%A5%E5%85%B7%E5%92%8C%E6%95%B0%E6%8D%AE">&#x5DE5;&#x5177;&#x548C;&#x6570;&#x636E;</h3><p>&#x4E0B;&#x56FE;&#x5C55;&#x793A;&#x4E86;&#x6211;&#x4EEC;&#x5C06;&#x5728;&#x672C;&#x9879;&#x76EE;&#x4E2D;&#x6784;&#x5EFA;&#x7684;Document Q&amp;A&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x7684;&#x67B6;&#x6784;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-o9g7rgijgq-7tnh2iedjgw-2x.png" class="kg-image" alt="&#x5728;&#x672C;&#x5730;&#x4F7F;&#x7528;CPU&#x8FD0;&#x884C;Llama 2&#x6A21;&#x578B;&#x6765;&#x5B9E;&#x73B0;&#x6587;&#x6863;Q&amp;A" loading="lazy" width="2000" height="1123" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-o9g7rgijgq-7tnh2iedjgw-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-o9g7rgijgq-7tnh2iedjgw-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-o9g7rgijgq-7tnh2iedjgw-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-o9g7rgijgq-7tnh2iedjgw-2x.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Document Q&amp;A&#xA0;&#x67B6;&#x6784;</figcaption></figure><p>&#x6211;&#x4EEC;&#x5C06;&#x5728;&#x6B64;&#x9879;&#x76EE;&#x4E2D;&#x8FD0;&#x884C;Document Q&amp;A&#x7684;&#x6587;&#x4EF6;&#x662F;&#x66FC;&#x8054;&#x8DB3;&#x7403;&#x4FF1;&#x4E50;&#x90E8;&#x7684;2022&#x5E74;&#x516C;&#x5F00;&#x5E74;&#x5EA6;&#x62A5;&#x544A;&#xFF0C;&#x5171;177&#x9875;&#x3002;</p><blockquote>&#x6570;&#x636E;&#x6765;&#x6E90;&#xFF1A;Manchester United Plc (2022). 2022 Annual Report 2022 on Form 20-F. <a href="https://ir.manutd.com/~/media/Files/M/Manutd-IR/documents/manu-20f-2022-09-24.pdf?ref=liangbo.me" rel="nofollow noopener">https://ir.manutd.com/~/media/Files/M/Manutd-IR/documents/manu-20f-2022-09-24.pdf</a> (CC0: Public Domain, as SEC content is public domain and free to use)</blockquote><p>&#x6B64;&#x793A;&#x4F8B;&#x7684;&#x8FD0;&#x884C;&#x73AF;&#x5883;&#x914D;&#x5907;&#x4E86;<strong>AMD Ryzen 5 5600X 6&#x6838;CPU</strong>&#xFF0C;<strong>16GB &#x5185;&#x5B58;&#xFF08;DDR4 3600&#xFF09;</strong>&#x3002;&#x867D;&#x7136;&#x5B83;&#x8FD8;&#x88C5;&#x4E86;&#x4E00;&#x5757;RTX 3060TI 8G&#x663E;&#x5361;&#xFF0C;&#x4F46;&#x5728;&#x672C;&#x793A;&#x4F8B;&#x4E2D;&#x4E0D;&#x4F1A;&#x4F7F;&#x7528;&#x5B83;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x5C06;&#x8BA8;&#x8BBA;&#x5982;&#x4F55;&#x4EC5;&#x4F7F;&#x7528;CPU&#x6765;&#x8FD0;&#x884C;&#x6A21;&#x578B;&#x3002;</p><p>&#x4E00;&#x4E0B;&#x662F;&#x6784;&#x5EFA;&#x8FD9;&#x4E2A;&#x540E;&#x7AEF;&#x5E94;&#x7528;&#x65F6;&#x5C06;&#x4F7F;&#x7528;&#x7684;&#x5DE5;&#x5177;&#xFF1A;</p><h4 id="langchain"><strong>LangChain:</strong></h4><p><a href="https://python.langchain.com/docs/get_started?ref=liangbo.me" rel="noopener">LangChain</a>&#x662F;&#x4E00;&#x4E2A;&#x76EE;&#x524D;&#x6D41;&#x884C;&#x7684;&#x7528;&#x4E8E;&#x5F00;&#x53D1;LLM&#x9A71;&#x52A8;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x6846;&#x67B6;&#xFF0C;&#x5B83;&#x63D0;&#x4F9B;&#x4E86;&#x5404;&#x79CD;&#x96C6;&#x6210;&#x63A5;&#x53E3;&#x548C;&#x6570;&#x636E;&#x8FDE;&#x63A5;&#x63A5;&#x53E3;&#xFF0C;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x94FE;&#x5F0F;&#x7F16;&#x6392;&#x4E0D;&#x540C;&#x7684;&#x6A21;&#x5757;&#xFF0C;&#x4EE5;&#x521B;&#x5EFA;&#x9AD8;&#x7EA7;&#x7528;&#x4F8B;&#xFF0C;&#x5982;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x3001;&#x6570;&#x636E;&#x5206;&#x6790;&#x548C;Document Q&amp;A&#x3002;</p><h4 id="c-transformers"><strong>C Transformers:</strong></h4><p><a href="https://github.com/marella/ctransformers?ref=liangbo.me" rel="noopener">C Transformers</a>&#x662F;&#x63D0;&#x4F9B;&#x4E00;&#x4E2A;Transformer&#x6A21;&#x578B;&#x7684;Python&#x5E93;&#xFF0C;&#x5B83;&#x4F7F;&#x7528;<a href="https://github.com/ggerganov/ggml?ref=liangbo.me" rel="noopener">GGML</a>&#x5E93;C/C++&#x7ED1;&#x5B9A;&#x3002;&#x8BF4;&#x5230;&#x8FD9;&#x70B9;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x9996;&#x5148;&#x4E86;&#x89E3;&#x4E00;&#x4E0B;GGML&#x662F;&#x4EC0;&#x4E48;&#x3002;</p><p><a href="https://ggml.ai/?ref=liangbo.me" rel="noopener">ggml.ai</a>&#x56E2;&#x961F;&#x5F00;&#x53D1;&#x7684;GGML&#x5E93;&#x662F;&#x4E00;&#x4E2A;&#x4E3A;&#x673A;&#x5668;&#x5B66;&#x4E60;&#x8BBE;&#x8BA1;&#x7684;Tensor Library&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x5728;&#x6D88;&#x8D39;&#x7EA7;&#x786C;&#x4EF6;&#x4E0A;&#x9AD8;&#x6027;&#x80FD;&#x8FD0;&#x884C;&#x5927;&#x6A21;&#x578B;&#x3002;&#x8FD9;&#x662F;&#x901A;&#x8FC7;&#x6574;&#x6570;&#x91CF;&#x5316;&#x652F;&#x6301;&#x548C;&#x5185;&#x7F6E;&#x4F18;&#x5316;&#x7B97;&#x6CD5;&#x5B9E;&#x73B0;&#x7684;&#x3002;</p><p>&#x56E0;&#x6B64;&#xFF0C;LLM&#x7684;GGML&#x7248;&#x672C;&#xFF08;&#x4EE5;&#x4E8C;&#x8FDB;&#x5236;&#x683C;&#x5F0F;&#x91CF;&#x5316;&#x8FC7;&#x7684;&#x6A21;&#x578B;&#xFF09;&#x53EF;&#x4EE5;&#x5728;CPU&#x4E0A;&#x9AD8;&#x6548;&#x5730;&#x8FD0;&#x884C;&#x3002;&#x9274;&#x4E8E;&#x6211;&#x4EEC;&#x5728;&#x672C;&#x9879;&#x76EE;&#x4E2D;&#x4F7F;&#x7528;Python&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;C Transformers&#x5E93;&#xFF0C;&#x5176;&#x4E3A;GGML&#x6A21;&#x578B;&#x63D0;&#x4F9B;&#x4E86;Python&#x7ED1;&#x5B9A;&#x3002;</p><p>C Transformers&#x652F;&#x6301;&#x4E00;&#x4E9B;&#x5E38;&#x89C1;&#x7684;&#x5F00;&#x6E90;&#x6A21;&#x578B;&#xFF0C;&#x5305;&#x62EC;&#x76EE;&#x524D;&#x6D41;&#x884C;&#x7684;&#x4E00;&#x4E9B;&#x6A21;&#x578B;&#xFF0C;&#x5982;Llama&#x3001;GPT4All-J&#x3001;MPT&#x548C;Falcon&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-zebjoarpzq5ybbbgeekzjw-2x.png" class="kg-image" alt="&#x5728;&#x672C;&#x5730;&#x4F7F;&#x7528;CPU&#x8FD0;&#x884C;Llama 2&#x6A21;&#x578B;&#x6765;&#x5B9E;&#x73B0;&#x6587;&#x6863;Q&amp;A" loading="lazy" width="1278" height="1726" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-zebjoarpzq5ybbbgeekzjw-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-zebjoarpzq5ybbbgeekzjw-2x.png 1000w, https://liangbo.me/content/images/2024/07/1-zebjoarpzq5ybbbgeekzjw-2x.png 1278w" sizes="(min-width: 720px) 720px"><figcaption>C Transformers&#x652F;&#x6301;&#x7684;&#x5927;&#x8BED;&#x8A00;&#x6A21;&#x578B;</figcaption></figure><h4 id="sentence-transformers%E5%B5%8C%E5%85%A5%E6%A8%A1%E5%9E%8B">Sentence-Transformers&#x5D4C;&#x5165;&#x6A21;&#x578B;</h4><p><a href="https://github.com/UKPLab/sentence-transformers?ref=liangbo.me" rel="noopener">Sentence-transformers</a>&#x662F;&#x4E00;&#x4E2A;Python&#x5E93;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x751F;&#x6210;&#x8BED;&#x53E5;&#x3001;&#x6587;&#x672C;&#x548C;&#x56FE;&#x50CF;&#x7684;&#x5D4C;&#x5165;&#xFF08;&#x7A20;&#x5BC6;&#x5411;&#x91CF;&#x8868;&#x793A; Dense Vector Representations&#xFF09;&#x7684;&#x7B80;&#x4FBF;&#x65B9;&#x6CD5;&#x3002;</p><p>&#x5B83;&#x4F7F;&#x7528;&#x6237;&#x80FD;&#x591F;&#x751F;&#x6210;100&#x591A;&#x79CD;&#x8BED;&#x8A00;&#x7684;&#x5173;&#x8054;&#x8BED;&#x53E5;&#xFF0C;&#x7136;&#x540E;&#x53EF;&#x4EE5;&#x8FDB;&#x884C;&#x6BD4;&#x8F83;&#xFF0C;&#x627E;&#x5230;&#x5177;&#x6709;&#x76F8;&#x4F3C;&#x542B;&#x4E49;&#x7684;&#x53E5;&#x5B50;&#x3002;</p><p>&#x5728;&#x8FD9;&#x4E2A;&#x9879;&#x76EE;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;&#x5F00;&#x6E90;&#x7684;<a href="https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2?ref=liangbo.me" rel="noopener">all-MiniLM-L6-v2</a>&#x6A21;&#x578B;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x5177;&#x6709;&#x6700;&#x4F73;&#x7684;&#x901F;&#x5EA6;&#x548C;&#x51FA;&#x8272;&#x7684;&#x901A;&#x7528;&#x751F;&#x6210;&#x8D28;&#x91CF;&#x3002;</p><h4 id="faiss">FAISS</h4><p><a href="https://github.com/facebookresearch/faiss?ref=liangbo.me" rel="noopener">Facebook AI Similarity Search (FAISS) </a>&#x662F;&#x4E00;&#x4E2A;&#x4E13;&#x4E3A;&#x9AD8;&#x6548;&#x7684;&#x7A20;&#x5BC6;&#x5411;&#x91CF;(Dense Vector)&#x76F8;&#x4F3C;&#x6027;&#x641C;&#x7D22;&#x548C;&#x805A;&#x548C;&#x7C7B;&#x800C;&#x8BBE;&#x8BA1;&#x7684;&#x5E93;&#x3002;</p><p>&#x7ED9;&#x5B9A;&#x4E00;&#x7EC4;&#x8F93;&#x5165;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;FAISS&#x5BF9;&#x5B83;&#x4EEC;&#x8FDB;&#x884C;&#x7D22;&#x5F15;&#xFF0C;&#x5E76;&#x5229;&#x7528;&#x5176;&#x5F3A;&#x5927;&#x7684;&#x8BED;&#x4E49;&#x641C;&#x7D22;&#x7B97;&#x6CD5;&#x5728;&#x7D22;&#x5F15;&#x5185;&#x641C;&#x7D22;&#x6700;&#x76F8;&#x4F3C;&#x7684;&#x5411;&#x91CF;&#x3002;</p><p>&#x867D;&#x7136;&#x5B83;&#x5728;&#x4F20;&#x7EDF;&#x610F;&#x4E49;&#x4E0A;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x5B8C;&#x6574;&#x7684;&#x5411;&#x91CF;&#x5B58;&#x50A8;&#xFF08;&#x50CF;&#x6570;&#x636E;&#x5E93;&#x7BA1;&#x7406;&#x7CFB;&#x7EDF;&#xFF09;&#xFF0C;&#x4F46;&#x5B83;&#x4EE5;&#x4F18;&#x5316;&#x7684;&#x65B9;&#x5F0F;&#x5904;&#x7406;&#x5411;&#x91CF;&#x7684;&#x5B58;&#x50A8;&#xFF0C;&#x4EE5;&#x5B9E;&#x73B0;&#x9AD8;&#x6548;&#x7684;&#x76F8;&#x90BB;&#x641C;&#x7D22;&#x3002;</p><h4 id="poetry">Poetry</h4><p>&#x5728;&#x8FD9;&#x4E2A;&#x9879;&#x76EE;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;<a href="https://python-poetry.org/?ref=liangbo.me" rel="noopener">Poetry</a>&#x6765;&#x8BBE;&#x7F6E;virtualenv&#x5E76;&#x5904;&#x7406;Python&#x5305;&#x7BA1;&#x7406;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x6613;&#x4E8E;&#x4F7F;&#x7528;&#x4E14;&#x4E00;&#x81F4;&#x6027;&#x8F83;&#x597D;&#x3002;</p><p>&#x4E4B;&#x524D;&#x4F7F;&#x7528;&#x8FC7;venv&#x7684;&#x8BDD;&#xFF0C;&#x6211;&#x5F3A;&#x70C8;&#x63A8;&#x8350;&#x5207;&#x6362;&#x5230;Poetry&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x53EF;&#x4EE5;&#x4F7F;&#x4F9D;&#x8D56;&#x7BA1;&#x7406;&#x66F4;&#x52A0;&#x9AD8;&#x6548;&#x548C;&#x65E0;&#x7F1D;&#x3002;</p><h3 id="%E5%BC%80%E6%BA%90llm%E9%80%89%E6%8B%A9">&#x5F00;&#x6E90;LLM&#x9009;&#x62E9;</h3><p>&#x5F00;&#x6E90;LLM&#x76EE;&#x524D;&#x53D6;&#x5F97;&#x4E86;&#x5DE8;&#x5927;&#x7684;&#x8FDB;&#x5C55;&#xFF0C;&#x5E76;&#x4E14;&#x53EF;&#x4EE5;&#x5728;Hugging Face&#x7684;<a href="https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?ref=liangbo.me" rel="noopener">Open LLM&#x6392;&#x884C;&#x699C;</a>&#x4E0A;&#x627E;&#x5230;&#x8BB8;&#x591A;LLM&#x3002;</p><p>&#x57FA;&#x4E8E;&#x4EE5;&#x4E0B;&#x8003;&#x8651;&#xFF0C;&#x6211;&#x9009;&#x62E9;&#x4E86;&#x6700;&#x65B0;&#x7684;&#x5F00;&#x6E90;Llama-2&#x2013;7B-Chat&#x6A21;&#x578B;&#xFF08;GGML 8-bit&#xFF09;&#x7528;&#x4E8E;&#x8FD9;&#x4E2A;&#x9879;&#x76EE;&#xFF1A;</p><h4 id="model-type%EF%BC%88llama-2%EF%BC%89">Model Type&#xFF08;Llama 2&#xFF09;</h4><ul><li>C Transformers&#x652F;&#x6301;&#x7684;&#x5F00;&#x6E90;&#x6A21;&#x578B;&#x3002;</li><li>&#x6839;&#x636E;Open LLM&#x6392;&#x884C;&#x699C;&#x7684;&#x6392;&#x540D;&#xFF08;&#x622A;&#x81F3;2023&#x5E74;7&#x6708;&#xFF09;&#xFF0C;&#x76EE;&#x524D;&#x662F;&#x591A;&#x4E2A;&#x6307;&#x6807;&#x4E2D;&#x8868;&#x73B0;&#x6700;&#x597D;&#x7684;&#x6A21;&#x578B;&#x3002;</li><li>&#x76F8;&#x6BD4;&#x65E9;&#x671F;&#x7684;Llama&#x6A21;&#x578B;&#xFF0C;&#x5728;&#x4E4B;&#x524D;&#x7684;&#x57FA;&#x51C6;&#x6D4B;&#x8BD5;&#x4E2D;&#x8868;&#x73B0;&#x51FA;&#x4E86;&#x5DE8;&#x5927;&#x7684;&#x6539;&#x8FDB;&#x3002;</li><li>&#x5728;&#x793E;&#x533A;&#x4E2D;&#x88AB;&#x5E7F;&#x6CDB;&#x63D0;&#x53CA;&#x548C;&#x4E0B;&#x8F7D;&#x3002;</li></ul><h4 id="model-size%EF%BC%887b%EF%BC%89">Model Size&#xFF08;7B&#xFF09;</h4><ul><li>&#x8003;&#x8651;&#x5230;&#x6211;&#x4EEC;&#x6267;&#x884C;&#x7684;&#x662F;Document Q&amp;A&#x4EFB;&#x52A1;&#xFF0C;LLM&#x4E3B;&#x8981;&#x7528;&#x4E8E;&#x5BF9;&#x6587;&#x6863;&#x5757;&#x8FDB;&#x884C;&#x76F8;&#x5BF9;&#x7B80;&#x5355;&#x7684;&#x6458;&#x8981;&#x3002;&#x56E0;&#x6B64;&#xFF0C;7B&#x6A21;&#x578B;&#x5927;&#x5C0F;&#x7B26;&#x5408;&#x6211;&#x4EEC;&#x7684;&#x9700;&#x6C42;&#xFF0C;&#x56E0;&#x4E3A;&#x5728;&#x8FD9;&#x4E2A;&#x4EFB;&#x52A1;&#x4E2D;&#x6211;&#x4EEC;&#x6280;&#x672F;&#x4E0A;&#x4E0D;&#x9700;&#x8981;&#x8FC7;&#x4E8E;&#x5E9E;&#x5927;&#x7684;&#x6A21;&#x578B;&#xFF08;&#x4F8B;&#x5982;65B&#x53CA;&#x4EE5;&#x4E0A;&#xFF09;&#x3002;</li></ul><h4 id="find-tuned-version%EF%BC%88llama-2%E2%80%937b-chat%EF%BC%89">Find-tuned Version&#xFF08;Llama-2&#x2013;7B-Chat&#xFF09;</h4><ul><li>Llama-2&#x2013;7B&#x57FA;&#x672C;&#x6A21;&#x578B;&#x662F;&#x7528;&#x4E8E;&#x6587;&#x672C;&#x8865;&#x5168;&#x7684;&#xFF0C;&#x56E0;&#x6B64;&#x7F3A;&#x4E4F;&#x5728;Document Q&amp;A&#x573A;&#x666F;&#x4E2D;&#x5B9E;&#x73B0;&#x6700;&#x4F73;&#x6027;&#x80FD;&#x6240;&#x9700;&#x7684;&#x5FAE;&#x8C03;&#x3002;</li><li>Llama-2&#x2013;7B-Chat&#x6A21;&#x578B;&#x662F;&#x6211;&#x4EEC;&#x76EE;&#x6807;&#x573A;&#x666F;&#x7684;&#x7406;&#x60F3;&#x9009;&#x62E9;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x4E13;&#x4E3A;&#x5BF9;&#x8BDD;&#x548C;&#x95EE;&#x7B54;&#x800C;&#x8BBE;&#x8BA1;&#x3002;</li><li>&#x8BE5;&#x6A21;&#x578B;&#x5305;&#x542B;&#x4E86;&#x90E8;&#x5206;&#x7528;&#x4E8E;&#x5546;&#x4E1A;&#x7528;&#x9014;&#x7684;&#x6388;&#x6743;&#x3002;&#x8FD9;&#x662F;&#x56E0;&#x4E3A;&#x7ECF;&#x8FC7;&#x5FAE;&#x8C03;&#x7684;Llama-2-Chat&#x6A21;&#x578B;&#x4F7F;&#x7528;&#x4E86;&#x516C;&#x5F00;&#x53EF;&#x7528;&#x7684;&#x6307;&#x4EE4;&#x6570;&#x636E;&#x96C6;&#x548C;&#x8D85;&#x8FC7;100&#x4E07;&#x4E2A;&#x4EBA;&#x7684;&#x6CE8;&#x91CA;&#x3002;</li></ul><h4 id="quantized-format%EF%BC%888-bit%EF%BC%89">Quantized Format&#xFF08;8-bit&#xFF09;</h4><ul><li>&#x8003;&#x8651;&#x5230;&#x5185;&#x5B58;&#x9650;&#x5236;&#xFF0C;8-bit GGML&#x7248;&#x672C;&#x662F;&#x5408;&#x9002;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x53EA;&#x9700;&#x8981;9.6GB&#x7684;&#x5185;&#x5B58;&#x5927;&#x5C0F;&#x3002;</li><li>8-bit&#x683C;&#x5F0F;&#x7684;&#x54CD;&#x5E94;&#x8D28;&#x91CF;&#x4E0E;16-bit&#x76F8;&#x5F53;&#x3002;</li><li>&#x539F;&#x59CB;&#x7684;&#x672A;&#x91CF;&#x5316;16-bit&#x6A21;&#x578B;&#x9700;&#x8981;&#x7EA6;15GB&#x7684;&#x5185;&#x5B58;&#xFF0C;&#x8FD9;&#x592A;&#x63A5;&#x8FD1;16GB RAM&#x9650;&#x5236;&#x4E86;&#x3002;</li><li>&#x5176;&#x4ED6;&#x8F83;&#x5C0F;&#x7684;&#x91CF;&#x5316;&#x683C;&#x5F0F;&#xFF08;&#x5982;4-bit&#x548C;5-bit&#xFF09;&#x4E5F;&#x53EF;&#x7528;&#xFF0C;&#x4F46;&#x5B83;&#x4EEC;&#x4F1A;&#x4EE5;&#x7CBE;&#x5EA6;&#x548C;&#x54CD;&#x5E94;&#x8D28;&#x91CF;&#x4E3A;&#x4EE3;&#x4EF7;&#x3002;</li></ul><h3 id="%E5%AE%9E%E7%8E%B0%E6%AD%A5%E9%AA%A4">&#x5B9E;&#x73B0;&#x6B65;&#x9AA4;</h3><p>&#x65E2;&#x7136;&#x6211;&#x4EEC;&#x4E86;&#x89E3;&#x4E86;&#x5404;&#x79CD;&#x7EC4;&#x4EF6;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x9010;&#x6B65;&#x4ECB;&#x7ECD;&#x5982;&#x4F55;&#x6784;&#x5EFA;Document Q&amp;A&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x3002;&#x6587;&#x4E2D;&#x76F8;&#x5173;&#x4EE3;&#x7801;&#x53EF;&#x4EE5;&#x5728;&#x6B64;<a href="https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference?ref=liangbo.me" rel="noopener">GitHub Repo</a>&#x4E2D;&#x627E;&#x5230;&#xFF0C;&#x6240;&#x6709;&#x4F9D;&#x8D56;&#x9879;&#x90FD;&#x53EF;&#x4EE5;&#x5728;requirements.txt&#x6587;&#x4EF6;&#x4E2D;&#x627E;&#x5230;&#x3002;</p><blockquote>&#x6CE8;&#x610F;&#xFF1A;&#x7531;&#x4E8E;&#x5DF2;&#x7ECF;&#x6709;&#x8BB8;&#x591A;&#x6559;&#x7A0B;&#x53EF;&#x4F9B;&#x53C2;&#x8003;&#xFF0C;&#x6211;&#x4EEC;&#x4E0D;&#x4F1A;&#x5C55;&#x5F00;&#x8BA8;&#x8BBA;Document Q&amp;A&#x7EC4;&#x4EF6;&#xFF08;&#x4F8B;&#x5982;&#x6587;&#x672C;&#x5206;&#x5757;&#x3001;&#x5411;&#x91CF;&#x5B58;&#x50A8;&#x8BBE;&#x7F6E;&#xFF09;&#x7684;&#x590D;&#x6742;&#x6027;&#x548C;&#x7EC6;&#x8282;&#x3002;&#x672C;&#x6587;&#x5C06;&#x4E13;&#x6CE8;&#x4E8E;&#x5F00;&#x6E90;LLM&#x548C;CPU&#x63A8;&#x7406;&#x65B9;&#x9762;&#x3002;</blockquote><h4 id="%E7%AC%AC%E4%B8%80%E6%AD%A5-%E2%80%94-%E5%A4%84%E7%90%86%E6%95%B0%E6%8D%AE%E5%B9%B6%E6%9E%84%E5%BB%BA%E5%90%91%E9%87%8F%E5%AD%98%E5%82%A8">&#x7B2C;&#x4E00;&#x6B65;&#x200A;&#x2014;&#x200A;&#x5904;&#x7406;&#x6570;&#x636E;&#x5E76;&#x6784;&#x5EFA;&#x5411;&#x91CF;&#x5B58;&#x50A8;</h4><p>&#x5728;&#x8FD9;&#x4E00;&#x6B65;&#x9AA4;&#x4E2D;&#xFF0C;&#x5C06;&#x6267;&#x884C;&#x4E09;&#x4E2A;&#x4EFB;&#x52A1;&#xFF1A;</p><ol><li>&#x6570;&#x636E;&#x5BFC;&#x5165;&#x548C;&#x5C06;&#x6587;&#x672C;&#x62C6;&#x4E3A;&#x6587;&#x672C;&#x5757;(Chunks)</li><li>&#x52A0;&#x8F7D;&#x5D4C;&#x5165;&#x6A21;&#x578B;&#xFF08;sentence-transformers&#xFF09;</li><li>&#x5BF9;&#x5757;&#x8FDB;&#x884C;&#x7D22;&#x5F15;&#xFF0C;&#x5E76;&#x5C06;&#x5176;&#x5B58;&#x50A8;&#x5728;FAISS&#x5411;&#x91CF;&#x5B58;&#x50A8;&#x4E2D;&#x3002;</li></ol><pre><code class="language-python"># File: db_build.py 
 
from langchain.vectorstores import FAISS 
from langchain.text_splitter import RecursiveCharacterTextSplitter 
from langchain.document_loaders import PyPDFLoader, DirectoryLoader 
from langchain.embeddings import HuggingFaceEmbeddings 
 
# Load PDF file from data path 
loader = DirectoryLoader(&apos;data/&apos;, 
                         glob=&quot;*.pdf&quot;, 
                         loader_cls=PyPDFLoader) 
documents = loader.load() 
 
# Split text from PDF into chunks 
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, 
                                               chunk_overlap=50) 
texts = text_splitter.split_documents(documents) 
 
# Load embeddings model 
embeddings = HuggingFaceEmbeddings(model_name=&apos;sentence-transformers/all-MiniLM-L6-v2&apos;, 
                                   model_kwargs={&apos;device&apos;: &apos;cpu&apos;}) 
 
# Build and persist FAISS vector store 
vectorstore = FAISS.from_documents(texts, embeddings) 
vectorstore.save_local(&apos;vectorstore/db_faiss&apos;)</code></pre><p>&#x8FD0;&#x884C;&#x4E0A;&#x8FF0;Python&#x811A;&#x672C;&#x540E;&#xFF0C;&#x5411;&#x91CF;&#x5B58;&#x50A8;&#x5C06;&#x5728;&#x672C;&#x5730;&#x76EE;&#x5F55;&#x4E2D;&#x751F;&#x6210;&#x5E76;&#x4FDD;&#x5B58;&#x4E3A;&#x2019;vectorstore/db_faiss&#x2019;&#xFF0C;&#x5DF2;&#x51C6;&#x5907;&#x597D;&#x8FDB;&#x884C;&#x8BED;&#x4E49;&#x641C;&#x7D22;&#x548C;&#x68C0;&#x7D22;&#x3002;</p><h4 id="%E7%AC%AC%E4%BA%8C%E6%AD%A5-%E2%80%94-%E8%AE%BE%E7%BD%AEprompt-template">&#x7B2C;&#x4E8C;&#x6B65;&#x200A;&#x2014;&#x200A;&#x8BBE;&#x7F6E;Prompt Template</h4><p>&#x8003;&#x8651;&#x5230;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x7684;&#x662F;Llama-2&#x2013;7B-Chat&#x6A21;&#x578B;&#xFF0C;&#x6211;&#x4EEC;&#x5FC5;&#x987B;&#x6CE8;&#x610F;&#x5728;&#x8FD9;&#x91CC;&#x4F7F;&#x7528;&#x7684;Prompt Template&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;OpenAI&#x7684;GPT&#x6A21;&#x578B;&#x662F;&#x4E3A;&#x5BF9;&#x8BDD;&#x8F93;&#x5165;&#x548C;&#x6D88;&#x606F;&#x8F93;&#x51FA;&#x800C;&#x8BBE;&#x8BA1;&#x7684;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;Prompt Template&#x5E94;&#x8BE5;&#x662F;&#x7C7B;&#x4F3C;&#x4E8E;<a href="https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/chatgpt?pivots=programming-language-chat-ml&amp;ref=liangbo.me" rel="noopener">&#x5BF9;&#x8BDD;&#x8BB0;&#x5F55;&#x7684;&#x683C;&#x5F0F;</a>&#xFF08;&#x4F8B;&#x5982;&#xFF0C;&#x5206;&#x7CFB;&#x7EDF;&#x6D88;&#x606F;&#x548C;&#x7528;&#x6237;&#x6D88;&#x606F;&#xFF09;&#x3002;</p><p>&#x7136;&#x800C;&#xFF0C;&#x5728;&#x8FD9;&#x91CC;&#x8FD9;&#x6837;&#x7684;&#x6A21;&#x677F;&#x5C31;&#x4E0D;&#x9002;&#x7528;&#x7528;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x7684;Llama 2&#x6A21;&#x578B;&#x6CA1;&#x6709;&#x4E13;&#x95E8;&#x9488;&#x5BF9;&#x8FD9;&#x79CD;&#x7C7B;&#x578B;&#x7684;&#x5BF9;&#x8BDD;&#x63A5;&#x53E3;&#x8FDB;&#x884C;&#x4F18;&#x5316;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x66F4;&#x9002;&#x5408;&#x4F7F;&#x7528;&#x7ECF;&#x5178;&#x7684;Prompt Template&#xFF0C;&#x5982;&#x4E0B;&#x6240;&#x793A;&#xFF1A;</p><pre><code class="language-ini"># File: prompts.py 
 
qa_template = &quot;&quot;&quot;Use the following pieces of information to answer the user&apos;s question. 
If you don&apos;t know the answer, just say that you don&apos;t know, don&apos;t try to make up an answer. 
Context: {context} 
Question: {question} 
Only return the helpful answer below and nothing else. 
Helpful answer: 
&quot;&quot;&quot;</code></pre><blockquote>&#x6CE8;&#x610F;&#xFF1A;&#x8F83;&#x5C0F;&#x7684;LLM&#xFF0C;&#x5982;7B&#x6A21;&#x578B;&#xFF0C;&#x5BF9;&#x683C;&#x5F0F;&#x8981;&#x6C42;&#x8F83;&#x4E3A;&#x654F;&#x611F;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5F53;&#x6211;&#x4FEE;&#x6539;Prompt Template&#x7684;&#x7A7A;&#x683C;&#x548C;&#x7F29;&#x8FDB;&#x65F6;&#xFF0C;&#x8F93;&#x51FA;&#x4F1A;&#x7A0D;&#x6709;&#x4E0D;&#x540C;&#x3002;</blockquote><h4 id="%E7%AC%AC%E4%B8%89%E6%AD%A5-%E2%80%94-%E4%B8%8B%E8%BD%BDllama-2%E2%80%937b-chat-ggml%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6">&#x7B2C;&#x4E09;&#x6B65;&#x200A;&#x2014;&#x200A;&#x4E0B;&#x8F7D;Llama-2&#x2013;7B-Chat GGML&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;</h4><p>&#x7531;&#x4E8E;&#x6211;&#x4EEC;&#x5C06;&#x5728;&#x672C;&#x5730;&#x8FD0;&#x884C;LLM&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x4E0B;&#x8F7D;&#x91CF;&#x5316;&#x7684;Llama-2&#x2013;7B-Chat&#x6A21;&#x578B;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;&#x3002;</p><p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x8BBF;&#x95EE;<a href="https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML?ref=liangbo.me" rel="noopener">TheBloke&#x7684;Llama-2&#x2013;7B-Chat GGML&#x9875;&#x9762;</a>&#xFF0C;&#x8BE5;&#x9875;&#x9762;&#x6258;&#x7BA1;&#x5728;Hugging Face&#x4E0A;&#xFF0C;&#x7136;&#x540E;&#x4E0B;&#x8F7D;&#x540D;&#x4E3A;llama-2&#x2013;7b-chat.ggmlv3.q8_0.bin&#x7684;GGML 8-bit&#x91CF;&#x5316;&#x6587;&#x4EF6;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-ldwx4dg-r_2hntcyspvl1a-2x.png" class="kg-image" alt="&#x5728;&#x672C;&#x5730;&#x4F7F;&#x7528;CPU&#x8FD0;&#x884C;Llama 2&#x6A21;&#x578B;&#x6765;&#x5B9E;&#x73B0;&#x6587;&#x6863;Q&amp;A" loading="lazy" width="2000" height="1923" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-ldwx4dg-r_2hntcyspvl1a-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-ldwx4dg-r_2hntcyspvl1a-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-ldwx4dg-r_2hntcyspvl1a-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-ldwx4dg-r_2hntcyspvl1a-2x.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>HuggingFace&#x4E0A;&#x7684;Llama-2&#x2013;7B-Chat-GGML page&#x7684;&#x6587;&#x4EF6;&#x548C;&#x7248;&#x672C;&#x4FE1;&#x606F;</figcaption></figure><p>&#x4E0B;&#x8F7D;&#x7684;8-bit&#x91CF;&#x5316;&#x6A21;&#x578B;&#x7684;.bin&#x6587;&#x4EF6;&#x53EF;&#x4EE5;&#x4FDD;&#x5B58;&#x5728;&#x9879;&#x76EE;&#x7684;&#x67D0;&#x4E2A;&#x5B50;&#x6587;&#x4EF6;&#x5939;&#x4E0B;&#xFF0C;&#x4F8B;&#x5982;/models&#x3002;</p><p>&#x6A21;&#x578B;&#x5361;&#x9875;&#x9762;&#x8FD8;&#x663E;&#x793A;&#x4E86;&#x6BCF;&#x79CD;&#x91CF;&#x5316;&#x683C;&#x5F0F;&#x7684;&#x66F4;&#x591A;&#x4FE1;&#x606F;&#x548C;&#x8BE6;&#x7EC6;&#x8BF4;&#x660E;&#xFF1A;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-pvldpwh5qf3ug6tq0ynnya-2x.png" class="kg-image" alt="&#x5728;&#x672C;&#x5730;&#x4F7F;&#x7528;CPU&#x8FD0;&#x884C;Llama 2&#x6A21;&#x578B;&#x6765;&#x5B9E;&#x73B0;&#x6587;&#x6863;Q&amp;A" loading="lazy" width="2000" height="1911" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-pvldpwh5qf3ug6tq0ynnya-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-pvldpwh5qf3ug6tq0ynnya-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-pvldpwh5qf3ug6tq0ynnya-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-pvldpwh5qf3ug6tq0ynnya-2x.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Different quantized formats with&#xA0;details</figcaption></figure><blockquote>&#x6CE8;&#x610F;&#xFF1A;&#x8981;&#x4E0B;&#x8F7D;C Transformers&#x652F;&#x6301;&#x7684;&#x5176;&#x4ED6;GGML&#x91CF;&#x5316;&#x6A21;&#x578B;&#xFF0C;&#x8BF7;&#x8BBF;&#x95EE;HuggingFace&#x4E0A;TheBloke&#x7684;&#x4E3B;&#x9875;&#xFF0C;&#x641C;&#x7D22;&#x60A8;&#x60F3;&#x8981;&#x7684;&#x6A21;&#x578B;&#xFF0C;&#x5E76;&#x67E5;&#x627E;&#x540D;&#x79F0;&#x4EE5;&#x201C;-GGML&#x201D;&#x7ED3;&#x5C3E;&#x7684;&#x94FE;&#x63A5;&#x3002;</blockquote><h4 id="%E7%AC%AC%E5%9B%9B%E6%AD%A5-%E2%80%94-%E8%AE%BE%E7%BD%AEllm">&#x7B2C;&#x56DB;&#x6B65;&#x200A;&#x2014;&#x200A;&#x8BBE;&#x7F6E;LLM</h4><p>&#x4E3A;&#x4E86;&#x4F7F;&#x7528;&#x6211;&#x4EEC;&#x4E0B;&#x8F7D;&#x7684;GGML&#x6A21;&#x578B;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x7528;C Transformers&#x548C;LangChain&#x4E4B;&#x95F4;&#x7684;&#x96C6;&#x6210;&#x3002;&#x5177;&#x4F53;&#x6765;&#x8BF4;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;LangChain&#x4E2D;&#x7684;C Transformers LLM Wrapper&#xFF0C;&#x8BE5;Wrapper&#x4E3A;GGML&#x6A21;&#x578B;&#x63D0;&#x4F9B;&#x4E86;&#x7EDF;&#x4E00;&#x7684;&#x63A5;&#x53E3;&#x3002;</p><pre><code class="language-python"># File: llm.py 
from langchain.llms import CTransformers 
 
# Local CTransformers wrapper for Llama-2-7B-Chat 
llm = CTransformers(model=&apos;models/llama-2-7b-chat.ggmlv3.q8_0.bin&apos;, # Location of downloaded GGML model 
                    model_type=&apos;llama&apos;, # Model type Llama 
                    config={&apos;max_new_tokens&apos;: 256, 
                            &apos;temperature&apos;: 0.01})</code></pre><p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4E3A;LLM&#x5B9A;&#x4E49;&#x8BB8;&#x591A;&#x914D;&#x7F6E;&#x9009;&#x9879;&#xFF0C;&#x4F8B;&#x5982;&#x6700;&#x5927;Token&#x6570;&#x3001;top k&#x3001;Temperature&#x548C;Repetition penalty&#x3002;</p><p>&#x6CE8;&#x610F;&#xFF1A;&#x6211;&#x5C06;Temperature&#x8BBE;&#x7F6E;&#x4E3A;0.01&#x800C;&#x4E0D;&#x662F;0&#xFF0C;&#x56E0;&#x4E3A;&#x5F53;Temperature&#x6070;&#x597D;&#x4E3A;&#x96F6;&#x65F6;&#xFF0C;&#x6211;&#x5F97;&#x5230;&#x4E86;&#x5947;&#x602A;&#x7684;&#x8FD4;&#x56DE;&#xFF08;&#x4F8B;&#x5982;&#xFF0C;&#x4E00;&#x957F;&#x4E32;&#x91CD;&#x590D;&#x7684;&#x5B57;&#x6BCD;E&#xFF09;&#x3002;</p><h4 id="%E7%AC%AC%E4%BA%94%E6%AD%A5-%E2%80%94-%E6%9E%84%E5%BB%BA%E5%92%8C%E5%88%9D%E5%A7%8B%E5%8C%96retrievalqa">&#x7B2C;&#x4E94;&#x6B65;&#x200A;&#x2014;&#x200A;&#x6784;&#x5EFA;&#x548C;&#x521D;&#x59CB;&#x5316;RetrievalQA</h4><p>&#x6709;&#x4E86;Prompt Template&#x548C;&#x51C6;&#x5907;&#x597D;&#x7684;C Transformers LLM&#xFF0C;&#x6211;&#x4EEC;&#x7F16;&#x5199;&#x4E09;&#x4E2A;&#x51FD;&#x6570;&#x6765;&#x6784;&#x5EFA;LangChain&#x7684;RetrievalQA&#x5BF9;&#x8C61;&#xFF0C;&#x4EE5;&#x4FBF;&#x6211;&#x4EEC;&#x80FD;&#x591F;&#x6267;&#x884C;Document Q&amp;A&#x4EFB;&#x52A1;&#x3002;</p><pre><code class="language-python"># File: utils.py 
from langchain import PromptTemplate 
from langchain.chains import RetrievalQA 
from langchain.embeddings import HuggingFaceEmbeddings 
from langchain.vectorstores import FAISS 
 
# Wrap prompt template in a PromptTemplate object 
def set_qa_prompt(): 
    prompt = PromptTemplate(template=qa_template, 
                            input_variables=[&apos;context&apos;, &apos;question&apos;]) 
    return prompt 
 
 
# Build RetrievalQA object 
def build_retrieval_qa(llm, prompt, vectordb): 
    dbqa = RetrievalQA.from_chain_type(llm=llm, 
                                       chain_type=&apos;stuff&apos;, 
                                       retriever=vectordb.as_retriever(search_kwargs={&apos;k&apos;:2}), 
                                       return_source_documents=True, 
                                       chain_type_kwargs={&apos;prompt&apos;: prompt}) 
    return dbqa 
 
 
# Instantiate QA object 
def setup_dbqa(): 
    embeddings = HuggingFaceEmbeddings(model_name=&quot;sentence-transformers/all-MiniLM-L6-v2&quot;, 
                                       model_kwargs={&apos;device&apos;: &apos;cpu&apos;}) 
    vectordb = FAISS.load_local(&apos;vectorstore/db_faiss&apos;, embeddings) 
    qa_prompt = set_qa_prompt() 
    dbqa = build_retrieval_qa(llm, qa_prompt, vectordb) 
 
    return dbqa</code></pre><h4 id="%E7%AC%AC%E5%85%AD%E6%AD%A5-%E2%80%94-%E5%B0%86%E7%BB%84%E4%BB%B6%E5%90%88%E5%B9%B6%E5%88%B0%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC%E4%B8%AD">&#x7B2C;&#x516D;&#x6B65;&#x200A;&#x2014;&#x200A;&#x5C06;&#x7EC4;&#x4EF6;&#x5408;&#x5E76;&#x5230;&#x542F;&#x52A8;&#x811A;&#x672C;&#x4E2D;</h4><p>&#x63A5;&#x4E0B;&#x6765;&#x7684;&#x6B65;&#x9AA4;&#x662F;&#x5C06;&#x524D;&#x9762;&#x7684;&#x5404;&#x4E2A;&#x7EC4;&#x4EF6;&#x5408;&#x5E76;&#x5230;main.py&#x811A;&#x672C;&#x4E2D;&#x3002;&#x6211;&#x4EEC;&#x4F7F;&#x7528;argparse&#x6A21;&#x5757;&#xFF0C;&#x56E0;&#x4E3A;&#x6211;&#x4EEC;&#x5C06;&#x4ECE;&#x547D;&#x4EE4;&#x884C;&#x4F20;&#x5165;&#x7528;&#x6237;&#x67E5;&#x8BE2;&#x5230;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x3002;</p><p>&#x8003;&#x8651;&#x5230;&#x6211;&#x4EEC;&#x5C06;&#x8FD4;&#x56DE;&#x6E90;&#x6587;&#x6863;&#xFF0C;&#x9644;&#x52A0;&#x7684;&#x4EE3;&#x7801;&#x5C06;&#x7528;&#x4E8E;&#x5904;&#x7406;&#x6587;&#x6863;&#x5757;&#xFF0C;&#x4EE5;&#x83B7;&#x5F97;&#x66F4;&#x597D;&#x7684;&#x53EF;&#x89C6;&#x5316;&#x663E;&#x793A;&#x3002;</p><p>&#x4E3A;&#x4E86;&#x8BC4;&#x4F30;CPU&#x63A8;&#x7406;&#x7684;&#x901F;&#x5EA6;&#xFF0C;&#x8FD8;&#x4F7F;&#x7528;&#x4E86;timeit&#x6A21;&#x5757;&#x3002;</p><pre><code class="language-python"># File: main.py 
import argparse 
import timeit 
 
if __name__ == &quot;__main__&quot;: 
    parser = argparse.ArgumentParser() 
    parser.add_argument(&apos;input&apos;, type=str) 
    args = parser.parse_args() 
    start = timeit.default_timer() # Start timer 
 
    # Setup QA object 
    dbqa = setup_dbqa() 
     
    # Parse input from argparse into QA object 
    response = dbqa({&apos;query&apos;: args.input}) 
    end = timeit.default_timer() # End timer 
 
    # Print document QA response 
    print(f&apos;\nAnswer: {response[&quot;result&quot;]}&apos;) 
    print(&apos;=&apos;*50) # Formatting separator 
 
    # Process source documents for better display 
    source_docs = response[&apos;source_documents&apos;] 
    for i, doc in enumerate(source_docs): 
        print(f&apos;\nSource Document {i+1}\n&apos;) 
        print(f&apos;Source Text: {doc.page_content}&apos;) 
        print(f&apos;Document Name: {doc.metadata[&quot;source&quot;]}&apos;) 
        print(f&apos;Page Number: {doc.metadata[&quot;page&quot;]}\n&apos;) 
        print(&apos;=&apos;* 50) # Formatting separator 
         
    # Display time taken for CPU inference 
    print(f&quot;Time to retrieve response: {end - start}&quot;)</code></pre><h4 id="%E7%AC%AC%E4%B8%83%E6%AD%A5-%E2%80%94-%E8%BF%90%E8%A1%8C%E7%A4%BA%E4%BE%8B%E6%9F%A5%E8%AF%A2">&#x7B2C;&#x4E03;&#x6B65;&#x200A;&#x2014;&#x200A;&#x8FD0;&#x884C;&#x793A;&#x4F8B;&#x67E5;&#x8BE2;</h4><p>&#x73B0;&#x5728;&#x662F;&#x65F6;&#x5019;&#x5BF9;&#x6211;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x8FDB;&#x884C;&#x6D4B;&#x8BD5;&#x4E86;&#x3002;&#x5728;&#x4ECE;&#x9879;&#x76EE;&#x76EE;&#x5F55;&#x52A0;&#x8F7D;virtualenv&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5728;&#x547D;&#x4EE4;&#x884C;&#x754C;&#x9762;&#xFF08;CLI&#xFF09;&#x4E2D;&#x8FD0;&#x884C;&#x4E00;&#x4E2A;&#x5305;&#x542B;&#x7528;&#x6237;&#x67E5;&#x8BE2;&#x7684;&#x547D;&#x4EE4;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7528;&#x4EE5;&#x4E0B;&#x547D;&#x4EE4;&#x8BE2;&#x95EE;&#x963F;&#x8FEA;&#x8FBE;&#x65AF;&#xFF08;&#x66FC;&#x5F7B;&#x65AF;&#x7279;&#x8054;&#x5168;&#x7403;&#x6280;&#x672F;&#x8D5E;&#x52A9;&#x5546;&#xFF09;&#x652F;&#x4ED8;&#x7684;&#x6700;&#x4F4E;&#x4FDD;&#x8BC1;&#x91D1;&#x91D1;&#x989D;&#xFF1A;</p><pre><code class="language-bash">poetry run python main.py &quot;How much is the minimum guarantee payable by adidas?&quot;</code></pre><blockquote>&#x6CE8;&#x610F;&#xFF1A;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x6CA1;&#x6709;&#x4F7F;&#x7528;Poetry&#xFF0C;&#x53EF;&#x4EE5;&#x7701;&#x7565;&#x524D;&#x7F00;&#x7684;<code>poetry run</code>&#x3002;</blockquote><h4 id="%E7%BB%93%E6%9E%9C">&#x7ED3;&#x679C;</h4><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-kf0yp176zvlpi0fv93mwjw-2x.png" class="kg-image" alt="&#x5728;&#x672C;&#x5730;&#x4F7F;&#x7528;CPU&#x8FD0;&#x884C;Llama 2&#x6A21;&#x578B;&#x6765;&#x5B9E;&#x73B0;&#x6587;&#x6863;Q&amp;A" loading="lazy" width="2000" height="953" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-kf0yp176zvlpi0fv93mwjw-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-kf0yp176zvlpi0fv93mwjw-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-kf0yp176zvlpi0fv93mwjw-2x.png 1600w, https://liangbo.me/content/images/size/w2400/2024/07/1-kf0yp176zvlpi0fv93mwjw-2x.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Output from user query passed into document Q&amp;A application | Image by&#xA0;author</figcaption></figure><p>&#x8F93;&#x51FA;&#x7ED3;&#x679C;&#x663E;&#x793A;&#xFF0C;&#x6211;&#x4EEC;&#x6210;&#x529F;&#x5730;&#x5F97;&#x5230;&#x4E86;&#x5BF9;&#x7528;&#x6237;&#x67E5;&#x8BE2;&#x7684;&#x6B63;&#x786E;&#x54CD;&#x5E94;&#xFF08;&#x5373;7.5&#x4EBF;&#x82F1;&#x9551;&#xFF09;&#xFF0C;&#x540C;&#x65F6;&#x8FD8;&#x663E;&#x793A;&#x4E86;&#x4E0E;&#x67E5;&#x8BE2;&#x8BED;&#x4E49;&#x76F8;&#x4F3C;&#x7684;&#x76F8;&#x5173;&#x6587;&#x6863;&#x7247;&#x6BB5;&#x3002;</p><p>&#x603B;&#x5171;31&#x79D2;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x542F;&#x52A8;&#x548C;&#x751F;&#x6210;&#x54CD;&#x5E94;&#x65F6;&#x95F4;&#x76F8;&#x5F53;&#x4E0D;&#x9519;&#xFF0C;&#x8003;&#x8651;&#x5230;&#x6211;&#x4EEC;&#x662F;&#x5728;&#x672C;&#x5730;&#x8FD0;&#x884C;&#x5728;AMD Ryzen 5600X&#x4E0A;&#xFF08;&#x867D;&#x7136;&#x5B83;&#x662F;&#x4E00;&#x6B3E;&#x4F18;&#x79C0;&#x7684;CPU&#xFF0C;&#x4F46;&#x76EE;&#x524D;&#x5E76;&#x4E0D;&#x662F;&#x5E02;&#x573A;&#x4E0A;&#x6700;&#x597D;&#x7684;&#xFF09;&#x3002;</p><p>&#x8003;&#x8651;&#x5230;&#x5728;GPU&#x4E0A;&#x8FD0;&#x884C;LLM&#x63A8;&#x7406;&#xFF08;&#x4F8B;&#x5982;&#x76F4;&#x63A5;&#x5728;HuggingFace&#x4E0A;&#xFF09;&#x4E5F;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x51E0;&#x5341;&#x79D2;&#xFF0C;&#x8FD9;&#x4E2A;&#x7ED3;&#x679C;&#x66F4;&#x52A0;&#x4EE4;&#x4EBA;&#x5370;&#x8C61;&#x6DF1;&#x523B;&#x3002;</p><h3 id="%E6%8E%A5%E4%B8%8B%E6%9D%A5%E7%9A%84%E6%AD%A5%E9%AA%A4">&#x63A5;&#x4E0B;&#x6765;&#x7684;&#x6B65;&#x9AA4;</h3><p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x6784;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;&#x5728;CPU&#x63A8;&#x7406;&#x4E0A;&#x8FD0;&#x884C;LLM&#x7684;Document Q&amp;A&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x91C7;&#x53D6;&#x8BB8;&#x591A;&#x6FC0;&#x52A8;&#x4EBA;&#x5FC3;&#x7684;&#x6B65;&#x9AA4;&#x6765;&#x63A8;&#x8FDB;&#x8FD9;&#x4E2A;&#x9879;&#x76EE;&#x3002;</p><ol><li>&#x4F7F;&#x7528;Streamlit&#x6784;&#x5EFA;&#x524D;&#x7AEF;&#x804A;&#x5929;&#x754C;&#x9762;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x56E0;&#x4E3A;&#x5B83;&#x6700;&#x8FD1;&#x6709;&#x4E24;&#x4E2A;&#x91CD;&#x8981;&#x7684;&#x516C;&#x544A;&#xFF1A;&#x5C06;Streamlit&#x4E0E;LangChain&#x96C6;&#x6210;&#xFF0C;&#x5E76;&#x63A8;&#x51FA;Streamlit ChatUI&#xFF0C;&#x53EF;&#x4EE5;&#x8F7B;&#x677E;&#x6784;&#x5EFA;&#x5F3A;&#x5927;&#x7684;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x754C;&#x9762;&#x3002;</li><li>&#x5C06;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;Docker&#x5316;&#x5E76;&#x90E8;&#x7F72;&#x5230;&#x4E91;&#x4E3B;&#x673A;&#x3002;&#x867D;&#x7136;&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x63A2;&#x7D22;&#x4E86;&#x672C;&#x5730;&#x63A8;&#x7406;&#xFF0C;&#x4F46;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x5F88;&#x5BB9;&#x6613;&#x8FC1;&#x79FB;&#x5230;&#x4E91;&#x7AEF;&#x3002;&#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x5229;&#x7528;&#x4E91;&#x4E0A;&#x66F4;&#x5F3A;&#x5927;&#x7684;CPU&#x5B9E;&#x4F8B;&#x6765;&#x52A0;&#x901F;&#x63A8;&#x7406;&#xFF08;&#x4F8B;&#x5982;&#xFF0C;&#x8BA1;&#x7B97;&#x4F18;&#x5316;&#x578B;&#x7684;AWS EC2&#x5B9E;&#x4F8B;&#xFF0C;&#x5982;c5.4xlarge&#xFF09;&#x3002;</li><li>&#x5C1D;&#x8BD5;&#x4F7F;&#x7528;&#x7A0D;&#x5927;&#x7684;LLM&#xFF0C;&#x5982;Llama 13B Chat&#x6A21;&#x578B;&#x3002;&#x7531;&#x4E8E;&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x4F7F;&#x7528;&#x8FC7;7B&#x6A21;&#x578B;&#xFF0C;&#x8BC4;&#x4F30;&#x7A0D;&#x5927;&#x578B;&#x6A21;&#x578B;&#x7684;&#x6027;&#x80FD;&#x662F;&#x4E00;&#x4E2A;&#x4E0D;&#x9519;&#x7684;&#x60F3;&#x6CD5;&#xFF0C;&#x56E0;&#x4E3A;&#x7406;&#x8BBA;&#x4E0A;&#x5B83;&#x5E94;&#x8BE5;&#x66F4;&#x51C6;&#x786E;&#xFF0C;&#x540C;&#x65F6;&#x4ECD;&#x7136;&#x4FDD;&#x6301;&#x5360;&#x7528;&#x9002;&#x91CF;&#x5185;&#x5B58;&#x3002;</li><li>&#x5C1D;&#x8BD5;&#x8F83;&#x5C0F;&#x7684;&#x91CF;&#x5316;&#x683C;&#x5F0F;&#xFF0C;&#x5982;4&#x4F4D;&#x548C;5&#x4F4D;&#xFF08;&#x5305;&#x62EC;&#x4F7F;&#x7528;&#x65B0;&#x7684;k-quant&#x65B9;&#x6CD5;&#xFF09;&#xFF0C;&#x4EE5;&#x5BA2;&#x89C2;&#x8BC4;&#x4F30;&#x63A8;&#x7406;&#x901F;&#x5EA6;&#x548C;&#x54CD;&#x5E94;&#x8D28;&#x91CF;&#x7684;&#x5DEE;&#x5F02;&#x3002;</li><li>&#x5229;&#x7528;&#x672C;&#x5730;GPU&#x52A0;&#x901F;&#x63A8;&#x7406;&#x3002;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x60F3;&#x5728;C Transformers&#x6A21;&#x578B;&#x4E0A;&#x6D4B;&#x8BD5;&#x4F7F;&#x7528;GPU&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5728;GPU&#x4E0A;&#x8FD0;&#x884C;&#x4E00;&#x4E9B;&#x6A21;&#x578B;&#x6765;&#x5B9E;&#x73B0;&#x3002;&#x8FD9;&#x5E94;&#x8BE5;&#x662F;&#x6709;&#x7528;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x76EE;&#x524D;&#x53EA;&#x6709;Llama&#x6A21;&#x578B;&#x7C7B;&#x578B;&#x652F;&#x6301;GPU&#x3002;</li><li>&#x8BC4;&#x4F30;&#x4F7F;&#x7528;vLLM&#xFF0C;&#x4E00;&#x4E2A;&#x9AD8;&#x541E;&#x5410;&#x91CF;&#x548C;&#x5185;&#x5B58;&#x9AD8;&#x6548;&#x7684;LLM&#x63A8;&#x7406;&#x548C;&#x670D;&#x52A1;&#x5F15;&#x64CE;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x4F7F;&#x7528;vLLM&#x9700;&#x8981;&#x4F7F;&#x7528;GPU&#x3002;</li></ol><p>&#x6211;&#x5C06;&#x5728;&#x672A;&#x6765;&#x7684;&#x51E0;&#x5468;&#x5185;&#x81F4;&#x529B;&#x4E8E;&#x64B0;&#x5199;&#x5173;&#x4E8E;&#x4E0A;&#x8FF0;&#x60F3;&#x6CD5;&#x7684;&#x6587;&#x7AE0;&#x548C;&#x9879;&#x76EE;&#xFF0C;&#x6240;&#x4EE5;&#x8BF7;&#x7EE7;&#x7EED;&#x5173;&#x6CE8;&#x66F4;&#x591A;&#x5BCC;&#x6709;&#x6D1E;&#x5BDF;&#x529B;&#x7684;&#x751F;&#x6210;&#x5F0F;AI&#x5185;&#x5BB9;&#xFF01;</p>]]></content:encoded></item><item><title><![CDATA[面向普通用户和开发者的ChatGPT Prompt Engineering 终极指南]]></title><description><![CDATA[你准备好发掘 ChatGPT 的全部潜力了吗？想象一下拥有一个AI工具，它能在很多方面帮助你 — — 从回答问题和创作有趣内容到提供个性化建议。这就是「Prompt Engineering」的用武之地 — — 一种有效且强大的方法，通过精心创建Prompt和指导，让…]]></description><link>https://liangbo.me/e9-9d-a2-e5-90-91-e6-99-ae-e9-80-9a-e7-94-a8-e6-88-b7-e5-92-8c-e5-bc-80-e5-8f-91-e8-80-85-e7-9a-84chatgpt-prompt-engineering-e7-bb-88-e6-9e-81-e6-8c-87-e5-8d-97/</link><guid isPermaLink="false">66860f1cb6891c0001494cc2</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Tue, 18 Jul 2023 14:13:17 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-lr5u6ws5pkwn89pe7ugfea.png" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-lr5u6ws5pkwn89pe7ugfea.png" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;"><p>&#x4F60;&#x51C6;&#x5907;&#x597D;&#x53D1;&#x6398; ChatGPT &#x7684;&#x5168;&#x90E8;&#x6F5C;&#x529B;&#x4E86;&#x5417;&#xFF1F;&#x60F3;&#x8C61;&#x4E00;&#x4E0B;&#x62E5;&#x6709;&#x4E00;&#x4E2A;AI&#x5DE5;&#x5177;&#xFF0C;&#x5B83;&#x80FD;&#x5728;&#x5F88;&#x591A;&#x65B9;&#x9762;&#x5E2E;&#x52A9;&#x4F60;&#x200A;&#x2014;&#x200A;&#x2014; &#x4ECE;&#x56DE;&#x7B54;&#x95EE;&#x9898;&#x548C;&#x521B;&#x4F5C;&#x6709;&#x8DA3;&#x5185;&#x5BB9;&#x5230;&#x63D0;&#x4F9B;&#x4E2A;&#x6027;&#x5316;&#x5EFA;&#x8BAE;&#x3002;&#x8FD9;&#x5C31;&#x662F;&#x300C;Prompt Engineering&#x300D;&#x7684;&#x7528;&#x6B66;&#x4E4B;&#x5730;&#x200A;&#x2014;&#x200A;&#x2014; &#x4E00;&#x79CD;&#x6709;&#x6548;&#x4E14;&#x5F3A;&#x5927;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x901A;&#x8FC7;&#x7CBE;&#x5FC3;&#x521B;&#x5EFA;Prompt&#x548C;&#x6307;&#x5BFC;&#xFF0C;&#x8BA9; ChatGPT &#x7684;&#x5DE5;&#x4F5C;&#x66F4;&#x51FA;&#x8272;&#x3002;</p><p>&#x5728;&#x8FD9;&#x7BC7;&#x6587;&#x7AE0;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x63A2;&#x7D22;&#x4EE4;&#x4EBA;&#x5174;&#x594B;&#x7684;Prompt Engineering&#x4E16;&#x754C;&#xFF0C;&#x6DB5;&#x76D6;&#x5176;&#x57FA;&#x7840;&#x3001;&#x6280;&#x5DE7;&#x3001;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#x548C;&#x9AD8;&#x7EA7;&#x7B56;&#x7565;&#xFF0C;&#x751A;&#x81F3;&#x8FD8;&#x80FD;&#x7528;&#x6765;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x3002;&#x5982;&#x679C;&#x4F60;&#x5BF9;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x6F5C;&#x529B;&#x611F;&#x5174;&#x8DA3;&#xFF0C;&#x8FD9;&#x7BC7;&#x6587;&#x7AE0;&#x5C06;&#x6210;&#x4E3A;&#x4F60;&#x4F7F;&#x7528; ChatGPT &#x5E76;&#x83B7;&#x5F97;&#x6700;&#x5927;&#x6536;&#x76CA;&#x7684;&#x6307;&#x5357;&#x3002;</p><p>&#x51C6;&#x5907;&#x597D;&#x63ED;&#x5F00;Prompt Engineering&#x7684;&#x79D8;&#x5BC6;&#xFF0C;&#x6539;&#x53D8;&#x4F60;&#x4F7F;&#x7528; ChatGPT &#x7684;&#x65B9;&#x5F0F;&#x4E86;&#x5417;&#xFF1F;&#x8BA9;&#x6211;&#x4EEC;&#x5F00;&#x59CB;&#x5427;&#xFF01;</p><h3 id="prompt-engineering%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86">Prompt Engineering&#x57FA;&#x7840;&#x77E5;&#x8BC6;</h3><p>&#x60F3;&#x5FC5;&#x6211;&#x4EEC;&#x65E0;&#x9700;&#x518D;&#x591A;&#x4ECB;&#x7ECD;ChatGPT&#x4E86;&#xFF0C; &#x5982;&#x679C;&#x60A8;&#x5BF9;ChatGPT&#x8FD8;&#x4E0D;&#x4E86;&#x89E3;&#x7684;&#x8BDD;&#xFF0C; &#x8BF7;&#x770B;&#x4E4B;&#x524D;&#x7684;&#x76F8;&#x5173;&#x6587;&#x7AE0;:</p>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e4-bd-bf-e7-94-a8chatgpt-e6-9d-a5-e5-b8-ae-e5-8a-a9-e6-88-91-e4-bb-ac-e5-ad-a6-e4-b9-a0-e5-a6-82-e4-bd-95-e4-bd-bf-e7-94-a8chatgpt-e6-9d-a5-e5-ad-a6-e4-b9-a0-e4-bb-bb-e4-bd-95-e4-bd-a0-e6-83-b3-e8-a6-81-e7-9a-84-e7-9f-a5-e8-af-86/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x4F7F;&#x7528;ChatGPT&#x6765;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x5B66;&#x4E60;&#xFF1A; &#x5982;&#x4F55;&#x4F7F;&#x7528;ChatGPT&#x6765;&#x5B66;&#x4E60;&#x4EFB;&#x4F55;&#x4F60;&#x60F3;&#x8981;&#x7684;&#x77E5;&#x8BC6;</div><div class="kg-bookmark-description">&#x6211;&#x4EEC;&#x90FD;&#x542C;&#x8BF4;ChatGPT&#x6B63;&#x5728;&#x5F7B;&#x5E95;&#x6539;&#x53D8;&#x6559;&#x80B2;&#x3002;&#x4F46;&#x662F;&#xFF0C;&#x8981;&#x5145;&#x5206;&#x53D1;&#x6398;&#x5176;&#x6F5C;&#x529B;&#xFF0C;&#x9700;&#x8981;&#x4E86;&#x89E3;&#x5B83;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x505A;&#x4EC0;&#x4E48;&#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x4F7F;&#x7528;&#x5B83;&#x3002;&#x4E3A;&#x4E86;&#x5E2E;&#x52A9;&#x60A8;&#x5B9E;&#x73B0;&#x8FD9;&#x4E00;&#x76EE;&#x6807;&#xFF0C;&#x6211;&#x4EEC;&#x6536;&#x96C6;&#x4E86;&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x5B66;&#x4E60;&#x7684;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#xFF08;&#x548C;Prompt&#xFF09;&#x3002;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn-images-1.medium.com/fit/c/160/160/1*wU1oSFjaAfTeM4IDbbn9uw.gif" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;"></div></a></figure>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e4-bd-9c-e4-b8-ba-e7-a8-8b-e5-ba-8f-e5-91-98-e6-88-91-e5-a6-82-e4-bd-95-e4-bd-bf-e7-94-a8chatgpt-e6-9d-a5-e5-b8-ae-e6-88-91-e5-86-99-e4-bb-a3-e7-a0-81/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x4F5C;&#x4E3A;&#x7A0B;&#x5E8F;&#x5458;&#xFF0C; &#x6211;&#x5982;&#x4F55;&#x4F7F;&#x7528;ChatGPT&#x6765;&#x5E2E;&#x6211;&#x5199;&#x4EE3;&#x7801;</div><div class="kg-bookmark-description">&#x4ECE;&#x5FEB;&#x901F;&#x5B66;&#x4E60;&#x5230;&#x8C03;&#x8BD5;&#x7A0B;&#x5E8F;&#xFF0C; &#x751A;&#x81F3;&#x5C06;&#x7E41;&#x7410;&#x7684;&#x5DE5;&#x4F5C;&#x81EA;&#x52A8;&#x5316;&#x3002;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/1-yepj_n3cjgxi_ymxphrvca-jpeg.jpg" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;"></div></a></figure>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e5-a6-82-e4-bd-95-e6-9c-89-e6-95-88-e5-9c-b0-e4-bd-bf-e7-94-a8chatgpt-e5-b8-ae-e5-8a-a9-e8-bd-af-e4-bb-b6-e5-bc-80-e5-8f-91-e7-ac-ac-e4-ba-8c-e5-bc-b9-e9-87-8a-e6-94-be-e4-bb-a3-e7-a0-81-e7-9a-84-e6-bd-9c-e5-8a-9b/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;</div><div class="kg-bookmark-description">&#x5982;&#x679C;&#x60A8;&#x4E0D;&#x77E5;&#x9053;&#x8FD8;&#x6709;&#x7B2C;&#x4E00;&#x90E8;&#x5206;&#xFF0C; &#x63A8;&#x8350;&#x5148;&#x9605;&#x8BFB;&#x4E4B;&#x524D;&#x7BC7;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn-images-1.medium.com/fit/c/160/160/1*sDzDeaWyiCNwXXulO-ECZg.gif" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;"></div></a></figure>
<!--kg-card-end: html-->
<p>Prompt Engineering&#x5BF9;&#x4E8E;&#x6700;&#x5927;&#x5316; OpenAI &#x7684;&#x8BED;&#x8A00;&#x6A21;&#x578B; ChatGPT &#x7684;&#x5B9E;&#x7528;&#x6027;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;&#x5728;&#x8FD9;&#x90E8;&#x5206;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4ECB;&#x7ECD;&#x63D0;&#x793A;&#x5DE5;&#x7A0B;&#x7684;&#x57FA;&#x672C;&#x6982;&#x5FF5;&#xFF0C;&#x5305;&#x62EC;&#x5176;&#x5B9A;&#x4E49;&#x3001;&#x63D0;&#x793A;&#x5728;&#x4E0E; ChatGPT &#x4EA4;&#x4E92;&#x4E2D;&#x7684;&#x4F5C;&#x7528;&#xFF0C;&#x4EE5;&#x53CA;&#x5F71;&#x54CD;&#x63D0;&#x793A;&#x9009;&#x62E9;&#x7684;&#x4F17;&#x591A;&#x56E0;&#x7D20;&#x3002;</p><h4 id="%E4%BB%80%E4%B9%88%E6%98%AFprompt-engineering%EF%BC%9F">&#x4EC0;&#x4E48;&#x662F;Prompt Engineering&#xFF1F;</h4><p>&#x4E00;&#x79CD;&#x901A;&#x8FC7;ChatGPT&#x83B7;&#x53D6;&#x60F3;&#x8981;&#x7684;&#x76F8;&#x5173;&#x7ED3;&#x679C;&#x7684;&#x4EA4;&#x4E92;&#x8FC7;&#x7A0B;&#x88AB;&#x79F0;&#x4E3A;Prompt Engineering&#x3002;&#x5B83;&#x6D89;&#x53CA;&#x4E00;&#x7CFB;&#x5217;&#x521B;&#x5EFA;&#x6307;&#x4EE4;&#x548C;&#x8F93;&#x5165;&#xFF0C;&#x6765;&#x63A7;&#x5236;&#x6A21;&#x578B;&#x7684;&#x884C;&#x4E3A;&#xFF0C;&#x5851;&#x9020;&#x751F;&#x6210;&#x8F93;&#x51FA;&#x7684;&#x8D28;&#x91CF;&#x548C;&#x76F8;&#x5173;&#x6027;&#x3002;&#x5728;&#x4E00;&#x4E9B;&#x573A;&#x666F;&#x4E0B;&#xFF0C; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x7406;&#x89E3;&#x4E3A;Prompt&#x662F;&#x4E00;&#x79CD;&#x8F93;&#x5165;&#x53C2;&#x6570;&#xFF0C; &#x6765;&#x63A7;&#x5236;&#x6A21;&#x578B;&#x7684;&#x8F93;&#x51FA;&#x3002;</p><p>Prompt Engineering&#x7684;&#x91CD;&#x8981;&#x6027;&#x5728;&#x4E8E;&#x5B83;&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;ChatGPT&#x7684;&#x80FD;&#x529B;&#xFF0C;&#x5E76;&#x8C03;&#x6574;&#x5176;&#x5BF9;&#x7279;&#x5B9A;&#x6D3B;&#x52A8;&#x6216;&#x76EE;&#x6807;&#x7684;&#x54CD;&#x5E94;&#x3002;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x7CBE;&#x5FC3;&#x8BBE;&#x8BA1;&#x7684;Prompt&#xFF0C;&#x6700;&#x5927;&#x5316;&#x5730;&#x89E3;&#x91CA;&#x4ED6;&#x4EEC;&#x7684;&#x610F;&#x56FE;&#xFF0C;&#x5E76;&#x4ECE;&#x6A21;&#x578B;&#x4E2D;&#x83B7;&#x5F97;&#x51C6;&#x786E;&#x548C;&#x4E0E;&#x4E0A;&#x4E0B;&#x6587;&#x76F8;&#x5173;&#x7684;&#x4FE1;&#x606F;&#x3002;&#x8FD9;&#x5C31;&#x50CF;&#x63A7;&#x5236;&#x4E00;&#x53F0;&#x9AD8;&#x6027;&#x80FD;&#x6C7D;&#x8F66;&#xFF0C; &#x5728;&#x719F;&#x6089;&#x8FD9;&#x8F86;&#x8F66;&#x7684;&#x8F66;&#x4E0A;&#x4E0A;&#xFF0C; &#x80FD;&#x53D1;&#x6325;&#x8FD9;&#x8F86;&#x8F66;&#x7684;&#x6700;&#x5927;&#x6548;&#x80FD;&#x3002;</p><h4 id="%E4%B8%BA%E4%BB%80%E4%B9%88prompt%E5%AF%B9%E4%BA%8Echatgpt%E7%9A%84%E4%BA%A4%E4%BA%92%E8%87%B3%E5%85%B3%E9%87%8D%E8%A6%81%EF%BC%9F">&#x4E3A;&#x4EC0;&#x4E48;Prompt&#x5BF9;&#x4E8E;ChatGPT&#x7684;&#x4EA4;&#x4E92;&#x81F3;&#x5173;&#x91CD;&#x8981;&#xFF1F;</h4><p>Prompt&#x5728;&#x7528;&#x6237;&#x548C;ChatGPT&#x4E4B;&#x95F4;&#x7684;&#x4EA4;&#x4E92;&#x4E2D;&#x975E;&#x5E38;&#x91CD;&#x8981;&#x3002;&#x5B83;&#x4EEC;&#x4E3A;&#x6A21;&#x578B;&#x63D0;&#x4F9B;&#x6240;&#x9700;&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x591F;&#x521B;&#x5EFA;&#x76F8;&#x5173;&#x7684;&#x56DE;&#x7B54;&#xFF0C;&#x5E76;&#x4F5C;&#x4E3A;&#x5BF9;&#x8BDD;&#x7684;&#x8D77;&#x70B9;&#x3002;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x6E05;&#x6670;&#x51C6;&#x786E;&#x7684;&#x6307;&#x4EE4;&#x6765;&#x5F15;&#x5BFC;ChatGPT&#x671D;&#x7740;&#x671F;&#x671B;&#x7684;&#x7ED3;&#x679C;&#x53D1;&#x5C55;&#x3002;</p><p>&#x6839;&#x636E;&#x7814;&#x7A76;&#xFF0C;Prompt Engineering&#x5BF9;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x6027;&#x80FD;&#x6709;&#x7740;&#x76F8;&#x5F53;&#x5927;&#x7684;&#x5F71;&#x54CD;&#x3002;&#x7CBE;&#x5FC3;&#x8BBE;&#x8BA1;&#x7684;Prompt&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x9632;&#x6B62;&#x6709;&#x5BB3;&#x6216;&#x504F;&#x89C1;&#x7684;&#x8F93;&#x51FA;&#xFF0C;&#x63D0;&#x9AD8;&#x751F;&#x6210;&#x56DE;&#x7B54;&#x7684;&#x51C6;&#x786E;&#x6027;&#xFF0C;&#x5E76;&#x5BF9;&#x6A21;&#x578B;&#x7684;&#x884C;&#x4E3A;&#x6709;&#x66F4;&#x591A;&#x7684;&#x63A7;&#x5236;&#x3002;OpenAI&#x5728;&#x589E;&#x5F3A;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;Prompt Engineering&#x65B9;&#x9762;&#x8FDB;&#x884C;&#x7684;&#x7814;&#x7A76;&#x8BC1;&#x660E;&#x4E86;&#x8FD9;&#x4E00;&#x70B9;&#x3002;</p><p>&#x63A5;&#x4E0B;&#x6765;&#x6211;&#x4EEC;&#x6765;&#x770B;&#x4E0B;&#x9762;&#x4E24;&#x4E2A;&#x67E5;&#x8BE2;&#x53CA;&#x5176;&#x76F8;&#x5E94;&#x7684;ChatGPT&#x56DE;&#x590D;&#xFF1A;</p><p><strong>Prompt 1:</strong></p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-36moodrhfhlbayxxis2pba-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="1010" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-36moodrhfhlbayxxis2pba-2x.png 600w, https://liangbo.me/content/images/2024/07/1-36moodrhfhlbayxxis2pba-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><p>Prompt 2:</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-k90hnc0wbp996ocwgqonaa-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="502" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-k90hnc0wbp996ocwgqonaa-2x.png 600w, https://liangbo.me/content/images/2024/07/1-k90hnc0wbp996ocwgqonaa-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><p>&#x7B2C;&#x4E8C;&#x4E2A;Prompt&#x4EA7;&#x751F;&#x4E86;&#x4E00;&#x4E2A;&#x66F4;&#x5177;&#x4F53;&#x548C;&#x6709;&#x610F;&#x4E49;&#x7684;&#x56DE;&#x7B54;&#x3002;</p><p>&#x8FD9;&#x4E2A;&#x4F8B;&#x5B50;&#x7A81;&#x663E;&#x4E86;&#x63D0;&#x793A;&#x5DE5;&#x7A0B;&#x4E2D;&#x51C6;&#x786E;&#x6027;&#x548C;&#x6E05;&#x6670;&#x6027;&#x7684;&#x91CD;&#x8981;&#x6027;&#x3002;</p><h4 id="%E4%BB%80%E4%B9%88%E6%98%AFprompt%E7%B1%BB%E5%88%AB%EF%BC%9F">&#x4EC0;&#x4E48;&#x662F;Prompt&#x7C7B;&#x522B;&#xFF1F;</h4><p>Prompt&#x662F;&#x4E0E;AI&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x8FDB;&#x884C;&#x65E0;&#x7F1D;&#x4EA4;&#x6D41;&#x7684;&#x91CD;&#x8981;&#x5DE5;&#x5177;&#x3002;</p><p>&#x4E3A;&#x4E86;&#x521B;&#x5EFA;&#x9AD8;&#x8D28;&#x91CF;&#x7684;&#x63D0;&#x793A;&#xFF0C;&#x4F60;&#x9996;&#x5148;&#x9700;&#x8981;&#x4E86;&#x89E3;&#x5B83;&#x4EEC;&#x662F;&#x5982;&#x4F55;&#x5206;&#x7C7B;&#x7684;&#x3002;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x8BA9;&#x4F60;&#x6709;&#x6548;&#x5730;&#x6784;&#x5EFA;&#x5B83;&#x4EEC;&#xFF0C;&#x4ECE;&#x800C;&#x4E13;&#x6CE8;&#x4E8E;&#x7279;&#x5B9A;&#x7684;&#x76EE;&#x6807;&#x56DE;&#x7B54;&#x3002;</p><p>&#x4E3B;&#x8981;&#x7684;&#x63D0;&#x793A;&#x7C7B;&#x522B;&#x5305;&#x62EC;&#xFF1A;</p><p><strong>1.&#x4FE1;&#x606F;&#x68C0;&#x7D22;&#x7684;Prompt</strong></p><p>&#x8FD9;&#x4E9B;&#x63D0;&#x793A;&#x65E8;&#x5728;&#x901A;&#x8FC7;&#x63D0;&#x51FA;&#x201C;What&#x201D;&#x548C;&#x201C;How&#x201D;&#x95EE;&#x9898;&#x6765;&#x6536;&#x96C6;&#x4FE1;&#x606F;&#x3002;&#x5B83;&#x4EEC;&#x975E;&#x5E38;&#x9002;&#x5408;&#x4ECE;AI&#x6A21;&#x578B;&#x4E2D;&#x63D0;&#x53D6;&#x5177;&#x4F53;&#x7EC6;&#x8282;&#x6216;&#x4E8B;&#x5B9E;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p><ul><li>&#x7D20;&#x98DF;&#x6709;&#x54EA;&#x4E9B;&#x5065;&#x5EB7;&#x76CA;&#x5904;&#xFF1F;</li><li>&#x6211;&#x600E;&#x6837;&#x624D;&#x80FD;&#x63D0;&#x9AD8;&#x5DE5;&#x4F5C;&#x6548;&#x7387;&#xFF1F;</li></ul><p><strong>2.&#x57FA;&#x4E8E;&#x6307;&#x4EE4;&#x7684;Prompt</strong></p><p>&#x57FA;&#x4E8E;&#x6307;&#x4EE4;&#x7684;Prompt&#x662F;&#x6307;&#x5F15;AI&#x6A21;&#x578B;&#x6267;&#x884C;&#x7279;&#x5B9A;&#x4EFB;&#x52A1;&#x7684;&#x63D0;&#x793A;&#x3002;&#x8FD9;&#x4E9B;&#x63D0;&#x793A;&#x7C7B;&#x4F3C;&#x4E8E;&#x6211;&#x4EEC;&#x4E0E;Siri&#x3001;Alexa&#x6216;Google&#x52A9;&#x624B;&#x7B49;&#x8BED;&#x97F3;&#x52A9;&#x624B;&#x8FDB;&#x884C;&#x4EA4;&#x4E92;&#x7684;&#x65B9;&#x5F0F;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p><ul><li>&#x4E0B;&#x5468;&#x4E8C;&#x4E0A;&#x5348;10&#x70B9;&#x9884;&#x7EA6;&#x7259;&#x533B;&#x3002;</li><li>&#x627E;&#x5230;&#x901A;&#x5F80;&#x673A;&#x573A;&#x6700;&#x5FEB;&#x7684;&#x8DEF;&#x7EBF;&#x3002;</li></ul><p><strong>3. &#x63D0;&#x4F9B;&#x4E0A;&#x4E0B;&#x6587;&#x4FE1;&#x606F;&#x7684;Prompt</strong></p><p>&#x8FD9;&#x4E9B;Prompt&#x4E3A;AI&#x6A21;&#x578B;&#x63D0;&#x4F9B;&#x4E0A;&#x4E0B;&#x6587;&#x4FE1;&#x606F;&#xFF0C;&#x5E2E;&#x52A9;&#x5B83;&#x66F4;&#x597D;&#x5730;&#x7406;&#x89E3;&#x7528;&#x6237;&#x6240;&#x671F;&#x671B;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x80CC;&#x666F;&#x4FE1;&#x606F;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x4ECE;AI&#x83B7;&#x5F97;&#x66F4;&#x51C6;&#x786E;&#x548C;&#x76F8;&#x5173;&#x7684;&#x7B54;&#x6848;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p><ul><li>&#x6211;&#x5BF9;&#x56ED;&#x827A;&#x4E00;&#x7A8D;&#x4E0D;&#x901A;&#x3002;&#x6709;&#x54EA;&#x4E9B;&#x9002;&#x5408;&#x521D;&#x5B66;&#x8005;&#x7684;&#x5BB9;&#x6613;&#x79CD;&#x690D;&#x7684;&#x690D;&#x7269;&#xFF1F;</li><li>&#x6211;&#x60F3;&#x4E3A;&#x6211;&#x7684;&#x5973;&#x670B;&#x53CB;&#x7B56;&#x5212;&#x4E00;&#x4E2A;&#x6D6A;&#x6F2B;&#x7684;&#x665A;&#x9910;&#x3002;&#x4F60;&#x80FD;&#x63D0;&#x4F9B;&#x4E00;&#x4E9B;&#x5EFA;&#x8BAE;&#x548C;&#x70D8;&#x6258;&#x6C1B;&#x56F4;&#x7684;Idea&#x5417;&#xFF1F;</li></ul><p><strong>4. &#x6BD4;&#x8F83;&#x578B;Prompt</strong></p><p>&#x6BD4;&#x8F83;&#x578B;Prompt&#x7528;&#x4E8E;&#x8BC4;&#x4F30;&#x6216;&#x6BD4;&#x8F83;&#x4E0D;&#x540C;&#x7684;&#x9009;&#x9879;&#xFF0C;&#x5E2E;&#x52A9;&#x7528;&#x6237;&#x505A;&#x51FA;&#x660E;&#x667A;&#x7684;&#x51B3;&#x7B56;&#x3002;&#x5728;&#x6743;&#x8861;&#x4E0D;&#x540C;&#x9009;&#x62E9;&#x7684;&#x5229;&#x5F0A;&#x65F6;&#xFF0C;&#x5B83;&#x4EEC;&#x7279;&#x522B;&#x6709;&#x5E2E;&#x52A9;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p><ul><li>&#x79DF;&#x623F;&#x548C;&#x8D2D;&#x623F;&#x5404;&#x6709;&#x54EA;&#x4E9B;&#x5229;&#x4E0E;&#x5F0A;&#xFF1F;</li><li>&#x7535;&#x52A8;&#x8F66;&#x548C;&#x4F20;&#x7EDF;&#x6C7D;&#x6CB9;&#x8F66;&#x7684;&#x6027;&#x80FD;&#x3002;</li></ul><p><strong>5. &#x5BFB;&#x6C42;&#x89C2;&#x70B9;&#x7684;Prompt</strong></p><p>&#x8FD9;&#x4E9B;Prompt&#x5F15;&#x5BFC;AI&#x5C31;&#x7ED9;&#x5B9A;&#x8BDD;&#x9898;&#x53D1;&#x8868;&#x610F;&#x89C1;&#x6216;&#x89C2;&#x70B9;&#x3002;&#x5B83;&#x4EEC;&#x6709;&#x52A9;&#x4E8E;&#x4EA7;&#x751F;&#x521B;&#x610F;&#x601D;&#x8DEF;&#x6216;&#x8FDB;&#x884C;&#x53D1;&#x4EBA;&#x6DF1;&#x7701;&#x7684;&#x8BA8;&#x8BBA;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p><ul><li>AI&#x5BF9;&#x5C31;&#x4E1A;&#x5E02;&#x573A;&#x53EF;&#x80FD;&#x4EA7;&#x751F;&#x4EC0;&#x4E48;&#x6F5C;&#x5728;&#x5F71;&#x54CD;&#xFF1F;</li><li>&#x5982;&#x679C;Teleportation(&#x9694;&#x7A7A;&#x4F20;&#x9001;)&#x6280;&#x672F;&#x6210;&#x4E3A;&#x73B0;&#x5B9E;&#xFF0C;&#x4E16;&#x754C;&#x53EF;&#x80FD;&#x4F1A;&#x5982;&#x4F55;&#x53D8;&#x5316;&#xFF1F;</li></ul><p><strong>6. &#x53CD;&#x601D;&#x578B;Prompt</strong></p><p>&#x53CD;&#x601D;&#x578B;Prompt&#x5E2E;&#x52A9;&#x4E2A;&#x4EBA;&#x66F4;&#x6DF1;&#x5165;&#x5730;&#x4E86;&#x89E3;&#x81EA;&#x5DF1;&#x3001;&#x81EA;&#x5DF1;&#x7684;&#x4FE1;&#x5FF5;&#x548C;&#x884C;&#x4E3A;&#x3002;&#x5B83;&#x4EEC;&#x7ECF;&#x5E38;&#x6839;&#x636E;&#x7279;&#x5B9A;&#x8BDD;&#x9898;&#x6216;&#x4E2A;&#x4EBA;&#x7ECF;&#x5386;&#x9F13;&#x52B1;&#x81EA;&#x6211;&#x6210;&#x957F;&#x548C;&#x5185;&#x7701;&#x3002;&#x4F60;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x63D0;&#x4F9B;&#x4E00;&#x4E9B;&#x80CC;&#x666F;&#x4FE1;&#x606F;&#x6765;&#x83B7;&#x5F97;&#x7406;&#x60F3;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p><ul><li>&#x6211;&#x8BE5;&#x5982;&#x4F55;&#x5EFA;&#x7ACB;&#x81EA;&#x4FE1;&#xFF0C;&#x514B;&#x670D;&#x81EA;&#x6211;&#x6000;&#x7591;&#xFF1F;</li><li>&#x6211;&#x53EF;&#x4EE5;&#x91C7;&#x53D6;&#x54EA;&#x4E9B;&#x7B56;&#x7565;&#x6765;&#x4FDD;&#x6301;&#x5065;&#x5EB7;&#x7684;&#x5DE5;&#x4F5C;&#x4E0E;&#x751F;&#x6D3B;&#x5E73;&#x8861;&#xFF1F;</li></ul><h4 id="%E5%BD%B1%E5%93%8Dprompt%E9%80%89%E6%8B%A9%E7%9A%84%E5%9B%A0%E7%B4%A0%E6%9C%89%E5%93%AA%E4%BA%9B%EF%BC%9F">&#x5F71;&#x54CD;Prompt&#x9009;&#x62E9;&#x7684;&#x56E0;&#x7D20;&#x6709;&#x54EA;&#x4E9B;&#xFF1F;</h4><p>&#x5728;&#x521B;&#x5EFA;&#x6709;&#x6548;&#x7684;Prompt&#x65F6;&#xFF0C;&#x9700;&#x8981;&#x8003;&#x8651;&#x8BB8;&#x591A;&#x56E0;&#x7D20;&#xFF0C;&#x8FD9;&#x4E9B;&#x56E0;&#x7D20;&#x5F71;&#x54CD;&#x7740;ChatGPT&#x56DE;&#x7B54;&#x7684;&#x8D28;&#x91CF;&#x3001;&#x76F8;&#x5173;&#x6027;&#x548C;&#x51C6;&#x786E;&#x6027;&#x3002;&#x91CD;&#x8981;&#x7684;&#x56E0;&#x7D20;&#x5305;&#x62EC;&#xFF1A;</p><ol><li><strong>&#x6A21;&#x578B;&#x77E5;&#x8BC6;</strong>&#xFF1A;<a href="https://openai.com/chatgpt?ref=liangbo.me" rel="noopener">&#x4E86;&#x89E3;ChatGPT&#x7684;&#x4F18;&#x52BF;&#x548C;&#x52A3;&#x52BF;</a>&#x3002;&#x5373;&#x4F7F;&#x662F;&#x50CF;ChatGPT&#x8FD9;&#x6837;&#x7684;&#x5C16;&#x7AEF;&#x6A21;&#x578B;&#xFF0C;&#x5728;&#x7279;&#x5B9A;&#x4EFB;&#x52A1;&#x4E0A;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x5E2E;&#x52A9;&#xFF0C;&#x6216;&#x8005;&#x4F1A;&#x4EA7;&#x751F;&#x9519;&#x8BEF;&#x7684;&#x6570;&#x636E;&#x3002;&#x8FD9;&#x79CD;&#x4E86;&#x89E3;&#x6709;&#x52A9;&#x4E8E;&#x521B;&#x5EFA;&#x5229;&#x7528;&#x6A21;&#x578B;&#x4F18;&#x52BF;&#x3001;&#x6700;&#x5C0F;&#x5316;&#x7F3A;&#x9677;&#x7684;&#x63D0;&#x793A;&#x3002;</li><li><strong>&#x7528;&#x6237;&#x610F;&#x56FE;</strong>&#xFF1A;&#x7406;&#x89E3;&#x7528;&#x6237;&#x7684;&#x610F;&#x56FE;&#x4EE5;&#x751F;&#x6210;&#x76F8;&#x5173;&#x7684;&#x56DE;&#x7B54;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;&#x63D0;&#x793A;&#x5E94;&#x8BE5;&#x6E05;&#x695A;&#x5730;&#x53CD;&#x6620;&#x7528;&#x6237;&#x7684;&#x671F;&#x671B;&#xFF0C;&#x8BA9;ChatGPT&#x63D0;&#x4F9B;&#x76F8;&#x5173;&#x548C;&#x6B63;&#x786E;&#x7684;&#x4FE1;&#x606F;&#x3002;</li><li><strong>&#x6E05;&#x6670;&#x660E;&#x786E;</strong>&#xFF1A;&#x786E;&#x4FDD;&#x63D0;&#x793A;&#x6E05;&#x6670;&#x660E;&#x786E;&#xFF0C;&#x4EE5;&#x51CF;&#x5C11;&#x6B67;&#x4E49;&#x6216;&#x4E0D;&#x786E;&#x5B9A;&#x6027;&#xFF0C;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4EA7;&#x751F;&#x7CDF;&#x7CD5;&#x7684;&#x56DE;&#x7B54;&#x3002;</li><li><strong>&#x9886;&#x57DF;&#x7279;&#x5B9A;&#x6027;</strong>&#xFF1A;&#x5728;&#x5904;&#x7406;&#x9AD8;&#x5EA6;&#x4E13;&#x4E1A;&#x5316;&#x7684;&#x9886;&#x57DF;&#x65F6;&#xFF0C;&#x8003;&#x8651;&#x4F7F;&#x7528;&#x9886;&#x57DF;&#x7279;&#x5B9A;&#x7684;&#x8BCD;&#x6C47;&#x6216;&#x4E0A;&#x4E0B;&#x6587;&#xFF0C;&#x4EE5;&#x5F15;&#x5BFC;&#x6A21;&#x578B;&#x5F97;&#x5230;&#x9884;&#x671F;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x589E;&#x52A0;&#x4E0A;&#x4E0B;&#x6587;&#x6216;&#x793A;&#x4F8B;&#x6709;&#x52A9;&#x4E8E;&#x6A21;&#x578B;&#x4EA7;&#x751F;&#x66F4;&#x51C6;&#x786E;&#x3001;&#x76F8;&#x5173;&#x7684;&#x7ED3;&#x679C;&#x3002;</li><li><strong>&#x9650;&#x5236;&#x6761;&#x4EF6;</strong>&#xFF1A;&#x786E;&#x5B9A;&#x662F;&#x5426;&#x9700;&#x8981;&#x4EFB;&#x4F55;&#x9650;&#x5236;&#xFF08;&#x5982;&#x56DE;&#x7B54;&#x957F;&#x5EA6;&#x6216;&#x683C;&#x5F0F;&#xFF09;&#x6765;&#x4EA7;&#x751F;&#x671F;&#x671B;&#x7684;&#x7ED3;&#x679C;&#x3002;&#x53EF;&#x4EE5;&#x660E;&#x786E;&#x6307;&#x5B9A;&#x9650;&#x5236;&#x6761;&#x4EF6;&#xFF0C;&#x6BD4;&#x5982;&#x5B57;&#x7B26;&#x9650;&#x5236;&#x6216;&#x7ED3;&#x6784;&#x5316;&#x683C;&#x5F0F;&#xFF0C;&#x4EE5;&#x5E2E;&#x52A9;&#x6A21;&#x578B;&#x751F;&#x6210;&#x7B26;&#x5408;&#x7279;&#x5B9A;&#x9700;&#x6C42;&#x7684;&#x56DE;&#x7B54;&#x3002;</li></ol><p>&#x8003;&#x8651;&#x8FD9;&#x4E9B;&#x56E0;&#x7D20;&#x8FDB;&#x884C;Prompt Engineering&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;ChatGPT&#x7684;&#x529F;&#x6548;&#xFF0C;&#x5E76;&#x786E;&#x4FDD;&#x751F;&#x6210;&#x7684;&#x56DE;&#x7B54;&#x4E0E;&#x671F;&#x671B;&#x7684;&#x76EE;&#x6807;&#x5BC6;&#x5207;&#x5339;&#x914D;&#x3002;</p><p>&#x503C;&#x5F97;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;Prompt Engineering&#x662F;&#x4E00;&#x4E2A;&#x6301;&#x7EED;&#x7684;&#x7814;&#x7A76;&#x8BFE;&#x9898;&#xFF0C;&#x4E0D;&#x65AD;&#x5730;&#x8FDB;&#x884C;&#x6539;&#x8FDB;&#x548C;&#x5B8C;&#x5584;&#xFF0C;&#x4EE5;&#x589E;&#x5F3A;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#xFF08;&#x5982;ChatGPT&#xFF09;&#x7684;&#x4E92;&#x52A8;&#x6027;&#x548C;&#x5B9E;&#x7528;&#x6027;&#x3002;</p><p>&#x603B;&#x7ED3;&#x4E00;&#x4E0B;&#xFF1A;</p><p><strong><em>&#x4E3B;&#x8981;&#x7684;&#x63D0;&#x793A;&#x6B65;&#x9AA4;&#xFF1A;</em></strong></p><ol><li>&#x786E;&#x5B9A;&#x95EE;&#x9898;&#x6216;&#x76EE;&#x6807;&#xFF1A;&#x6E05;&#x695A;&#x5730;&#x8BF4;&#x660E;&#x4F60;&#x5E0C;&#x671B;ChatGPT&#x534F;&#x52A9;&#x4F60;&#x7684;&#x76EE;&#x7684;&#xFF0C;&#x4EE5;&#x53CA;&#x4F60;&#x671F;&#x671B;&#x7684;&#x56DE;&#x7B54;&#x7C7B;&#x578B;&#x3002;<br><em>&#x793A;&#x4F8B;&#xFF1A;&#x4E3A;&#x9762;&#x5411;&#x65F6;&#x5C1A;&#x884C;&#x4E1A;&#x5E74;&#x8F7B;&#x4E13;&#x4E1A;&#x4EBA;&#x58EB;&#x7684;&#x8425;&#x9500;&#x6D3B;&#x52A8;&#x751F;&#x6210;&#x5438;&#x5F15;&#x4EBA;&#x7684;&#x6807;&#x9898;&#x3002;</em></li><li>&#x6DFB;&#x52A0;&#x76F8;&#x5173;&#x5173;&#x952E;&#x8BCD;&#x548C;&#x77ED;&#x8BED;&#xFF1A;&#x5728;Prompt&#x4E2D;&#x5305;&#x542B;&#x6700;&#x76F8;&#x5173;&#x7684;&#x884C;&#x4E1A;&#x7279;&#x5B9A;&#x548C;&#x4E3B;&#x9898;&#x76F8;&#x5173;&#x672F;&#x8BED;&#xFF0C;&#x4EE5;&#x5E2E;&#x52A9;&#x5F15;&#x5BFC;ChatGPT&#x751F;&#x6210;&#x671F;&#x671B;&#x7684;&#x8F93;&#x51FA;&#x3002;<br><em>&#x793A;&#x4F8B;&#xFF1A;&#x4E3A;&#x6211;&#x4EEC;&#x7684;&#x8FD0;&#x52A8;&#x978B;&#x64B0;&#x5199;&#x6709;&#x8BF4;&#x670D;&#x529B;&#x7684;&#x8425;&#x9500;&#x6587;&#x6848;&#xFF0C;&#x91CD;&#x70B9;&#x5173;&#x6CE8;&#x8212;&#x9002;&#x6027;&#x3001;&#x8010;&#x7528;&#x6027;&#x548C;&#x6027;&#x80FD;&#x3002;&#x9762;&#x5411;&#x5065;&#x8EAB;&#x7231;&#x597D;&#x8005;&#x548C;&#x8FD0;&#x52A8;&#x5458;&#x3002;&#x5305;&#x542B;&#x8BF8;&#x5982;&#x201C;&#x6027;&#x80FD;&#x201D;&#x3001;&#x201C;&#x8212;&#x9002;&#x6027;&#x201D;&#x3001;&#x201C;&#x8010;&#x7528;&#x6027;&#x201D;&#x548C;&#x201C;&#x8FD0;&#x52A8;&#x5458;&#x201D;&#x7B49;&#x5173;&#x952E;&#x8BCD;&#x3002;</em></li><li>&#x64B0;&#x5199;&#x63D0;&#x793A;&#xFF1A;&#x7528;&#x4E4B;&#x524D;&#x6B65;&#x9AA4;&#x4E2D;&#x786E;&#x5B9A;&#x7684;&#x5173;&#x952E;&#x8BCD;&#x548C;&#x77ED;&#x8BED;&#x6784;&#x5EFA;&#x7B80;&#x6D01;&#x7684;Prompt&#xFF0C;&#x6709;&#x6548;&#x4F20;&#x8FBE;&#x6240;&#x9700;&#x7684;&#x4FE1;&#x606F;&#x548C;&#x4EFB;&#x52A1;&#x3002;<br><em>&#x793A;&#x4F8B;&#xFF1A;&#x201C;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5F15;&#x4EBA;&#x6CE8;&#x76EE;&#x7684;&#x793E;&#x4EA4;&#x5A92;&#x4F53;&#x5E16;&#x5B50;&#xFF0C;&#x7A81;&#x51FA;&#x6211;&#x4EEC;&#x65B0;&#x63A8;&#x51FA;&#x7684;&#x6709;&#x673A;&#x62A4;&#x80A4;&#x54C1;&#x7CFB;&#x5217;&#x7684;&#x4F18;&#x52BF;&#xFF0C;&#x5F3A;&#x8C03;&#x2018;&#x5929;&#x7136;&#x2019;&#x3001;&#x2018;&#x6ECB;&#x517B;&#x2019;&#x3001;&#x2018;&#x73AF;&#x4FDD;&#x2019;&#x548C;&#x2018;&#x5149;&#x6ED1;&#x808C;&#x80A4;&#x2019;&#x7B49;&#x6210;&#x5206;&#x3002;&#x201D;</em></li><li>&#x6D4B;&#x8BD5;&#x3001;&#x8BC4;&#x4F30;&#x548C;&#x8FED;&#x4EE3;&#xFF1A;&#x4F7F;&#x7528;ChatGPT&#x751F;&#x6210;&#x56DE;&#x7B54;&#xFF0C;&#x8BC4;&#x4F30;&#x7ED3;&#x679C;&#xFF0C;&#x5E76;&#x6839;&#x636E;&#x9700;&#x8981;&#x4FEE;&#x6539;Prompt&#x4EE5;&#x83B7;&#x5F97;&#x671F;&#x671B;&#x7684;&#x8F93;&#x51FA;&#x3002;&#x91CD;&#x590D;&#x8FD9;&#x4E2A;&#x8FC7;&#x7A0B;&#xFF0C;&#x76F4;&#x5230;&#x4F60;&#x521B;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;&#x6210;&#x529F;&#x7684;Prompt&#xFF0C;&#x80FD;&#x591F;&#x59CB;&#x7EC8;&#x4EA7;&#x751F;&#x9884;&#x671F;&#x7684;&#x56DE;&#x7B54;&#x3002;</li></ol><p><strong><em>&#x4F18;&#x79C0;Prompt&#x7684;&#x8981;&#x7D20;:</em></strong></p><p>&#x4F18;&#x79C0;&#x7684;&#x8F93;&#x51FA;&#x4E3B;&#x8981;&#x53D6;&#x51B3;&#x4E8E;&#x8BAD;&#x7EC3;&#x6570;&#x636E;&#x3001;&#x6A21;&#x578B;&#x53C2;&#x6570;&#x548C;&#x6709;&#x6548;&#x7684;Prompt&#x3002;&#x4F5C;&#x7528;&#x7528;&#x6237;&#x6211;&#x4EEC;&#x53EA;&#x80FD;&#x5F71;&#x54CD;&#x5176;&#x4E2D;&#x4E00;&#x4E2A;&#x56E0;&#x7D20;&#xFF0C;&#x90A3;&#x5C31;&#x662F;Prompt, &#x4EE5;&#x4E0B;&#x662F;&#x6784;&#x6210;&#x4E00;&#x4E2A;&#x597D;&#x7684;Prompt&#x7684;&#x8981;&#x7D20;&#xFF1A;</p><ol><li>&#x6E05;&#x6670;&#x7B80;&#x660E;&#x7684;&#x8BED;&#x8A00;&#xFF0C;&#x76F4;&#x622A;&#x4E86;&#x5F53;&#xFF0C;&#x6CA1;&#x6709;&#x6B67;&#x4E49;&#x3002;</li><li>&#x4E3A;ChatGPT&#x5206;&#x914D;&#x7684;&#x89D2;&#x8272;&#xFF0C;&#x5373;&#x4F60;&#x5E0C;&#x671B;&#x5B83;&#x5728;&#x63D0;&#x793A;&#x4E2D;&#x626E;&#x6F14;&#x7684;&#x89D2;&#x8272;&#x3002;</li><li>&#x4F60;&#x63D0;&#x4F9B;&#x7684;&#x4FE1;&#x606F;&#x548C;&#x793A;&#x4F8B;&#xFF0C;&#x5373;&#x4F60;&#x7684;&#x8F93;&#x5165;&#x3002;&#xFF08;ChatGPT&#x53EF;&#x4EE5;&#x53C2;&#x8003;&#x4E4B;&#x524D;&#x7684;&#x804A;&#x5929;&#x5386;&#x53F2;&#x4E2D;&#x7684;&#x4FE1;&#x606F;&#x548C;&#x793A;&#x4F8B;&#xFF09;</li><li>&#x4F60;&#x8BF7;&#x6C42;ChatGPT&#x5B8C;&#x6210;&#x7684;&#x5177;&#x4F53;&#x4EFB;&#x52A1;&#xFF0C;&#x5373;&#x4F60;&#x671F;&#x671B;&#x7684;&#x8F93;&#x51FA;&#x3002;</li><li>&#x5728;&#x6536;&#x5230;&#x521D;&#x59CB;&#x56DE;&#x7B54;&#x540E;&#x6839;&#x636E;&#x9700;&#x8981;&#x8FDB;&#x884C;&#x8C03;&#x6574;&#xFF0C;&#x5373;&#x8FED;&#x4EE3;&#xFF0C;&#x76F4;&#x5230;&#x83B7;&#x5F97;&#x671F;&#x671B;&#x7684;&#x8F93;&#x51FA;&#x3002;</li></ol><h3 id="prompt-engineering%E6%8A%80%E5%B7%A7">Prompt Engineering&#x6280;&#x5DE7;</h3><p>&#x8FD9;&#x4E2A;&#x7AE0;&#x8282;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x63A2;&#x7D22;&#x51E0;&#x79CD;Prompt&#x6280;&#x5DE7;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x4F18;&#x5316;Prompt Engineering&#xFF0C;&#x6700;&#x5927;&#x5316;&#x4E0E;ChatGPT&#x7684;&#x4EA4;&#x4E92;&#x6548;&#x679C;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x6DF1;&#x5165;&#x4E86;&#x89E3;&#x8FD9;&#x4E9B;&#x6280;&#x5DE7;&#xFF0C;&#x7406;&#x89E3;&#x5B83;&#x4EEC;&#x7684;&#x91CD;&#x8981;&#x6027;&#x3002;</p><h4 id="%E6%B8%85%E6%99%B0%E6%98%8E%E7%A1%AE%E7%9A%84%E6%8C%87%E4%BB%A4">&#x6E05;&#x6670;&#x660E;&#x786E;&#x7684;&#x6307;&#x4EE4;</h4><p>&#x6E05;&#x6670;&#x660E;&#x786E;&#x7684;&#x6307;&#x4EE4;&#x662F;&#x6709;&#x6548;Prompt Engineering&#x7684;&#x57FA;&#x7840;&#x3002;&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x660E;&#x786E;&#x7684;&#x6307;&#x5BFC;&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;ChatGPT&#x56DE;&#x7B54;&#x7684;&#x8D28;&#x91CF;&#x3002;OpenAI&#x7684;&#x7814;&#x7A76;&#x8868;&#x660E;&#xFF0C;&#x5B9A;&#x4E49;&#x6E05;&#x6670;&#x7684;Prompt&#x663E;&#x8457;&#x5F71;&#x54CD;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x6027;&#x80FD;&#x3002;</p><p><strong>Prompt 1:</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-fkw3adgzpxnvxgn-rp0s4w-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="838" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-fkw3adgzpxnvxgn-rp0s4w-2x.png 600w, https://liangbo.me/content/images/2024/07/1-fkw3adgzpxnvxgn-rp0s4w-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x7B80;&#x5355;Prompt</span></figcaption></figure><p><strong>Prompt 2:</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-ztin2xnk76qhfqr10q0gea-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="1050" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-ztin2xnk76qhfqr10q0gea-2x.png 600w, https://liangbo.me/content/images/2024/07/1-ztin2xnk76qhfqr10q0gea-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x4E00;&#x4E2A;&#x5177;&#x4F53;&#x660E;&#x786E;&#x7684;Prompt</span></figcaption></figure><h4 id="%E4%BD%BF%E7%94%A8%E6%98%8E%E7%A1%AE%E7%9A%84%E9%99%90%E5%88%B6%E6%9D%A1%E4%BB%B6">&#x4F7F;&#x7528;&#x660E;&#x786E;&#x7684;&#x9650;&#x5236;&#x6761;&#x4EF6;</h4><p>&#x5728;Prompt&#x4E2D;&#x52A0;&#x5165;&#x660E;&#x786E;&#x7684;&#x9650;&#x5236;&#x6761;&#x4EF6;&#x53EF;&#x4EE5;&#x5F15;&#x5BFC;ChatGPT&#x7684;&#x601D;&#x8003;&#x8FC7;&#x7A0B;&#xFF0C;&#x786E;&#x4FDD;&#x66F4;&#x51C6;&#x786E;&#x3001;&#x6709;&#x7406;&#x6709;&#x636E;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x9650;&#x5236;&#x6761;&#x4EF6;&#x4F5C;&#x4E3A;&#x989D;&#x5916;&#x7684;&#x6307;&#x4EE4;&#xFF0C;&#x53EF;&#x4EE5;&#x5851;&#x9020;&#x6A21;&#x578B;&#x7684;&#x884C;&#x4E3A;&#xFF0C;&#x63D0;&#x9AD8;&#x751F;&#x6210;&#x8F93;&#x51FA;&#x7684;&#x76F8;&#x5173;&#x6027;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x5F53;&#x5BFB;&#x6C42;&#x9010;&#x6B65;&#x6307;&#x5BFC;&#x65F6;&#xFF0C;&#x52A0;&#x5165;&#x9650;&#x5236;&#x6761;&#x4EF6;&#xFF0C;&#x6BD4;&#x5982;&#x201C;&#x8BF7;&#x63D0;&#x4F9B;&#x8BE6;&#x7EC6;&#x7684;&#x3001;&#x987A;&#x5E8F;&#x7684;&#x8FC7;&#x7A0B;&#x201D;&#xFF0C;&#x6709;&#x52A9;&#x4E8E;ChatGPT&#x751F;&#x6210;&#x8FDE;&#x8D2F;&#x3001;&#x6613;&#x4E8E;&#x9075;&#x5FAA;&#x7684;&#x6307;&#x5BFC;&#x3002;OpenAI&#x7684;&#x7814;&#x7A76;&#x8868;&#x660E;&#xFF0C;&#x4F7F;&#x7528;&#x660E;&#x786E;&#x7684;&#x89C4;&#x5219;&#x53EF;&#x4EE5;&#x83B7;&#x5F97;&#x66F4;&#x53EF;&#x63A7;&#x3001;&#x66F4;&#x7B26;&#x5408;&#x9884;&#x671F;&#x7684;&#x8F93;&#x51FA;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-sobbeivdtbpnl1exq4bshg-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="311" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-sobbeivdtbpnl1exq4bshg-2x.png 600w, https://liangbo.me/content/images/2024/07/1-sobbeivdtbpnl1exq4bshg-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E9%80%9A%E8%BF%87%E5%B0%9D%E8%AF%95%E4%B8%8D%E5%90%8C%E7%9A%84%E4%B8%8A%E4%B8%8B%E6%96%87%E5%92%8C%E7%A4%BA%E4%BE%8B">&#x901A;&#x8FC7;&#x5C1D;&#x8BD5;&#x4E0D;&#x540C;&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#x548C;&#x793A;&#x4F8B;</h4><p>&#x4E0A;&#x4E0B;&#x6587;&#x5728;Prompt Engineering&#x4E2D;&#x626E;&#x6F14;&#x7740;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x7684;&#x89D2;&#x8272;&#x3002;&#x901A;&#x8FC7;&#x5728;Prompt&#x4E2D;&#x63D0;&#x4F9B;&#x76F8;&#x5173;&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#x548C;&#x793A;&#x4F8B;&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x589E;&#x5F3A;ChatGPT&#x7684;&#x7406;&#x89E3;&#x80FD;&#x529B;&#xFF0C;&#x5E76;&#x5F15;&#x5BFC;&#x5B83;&#x751F;&#x6210;&#x66F4;&#x51C6;&#x786E;&#x3001;&#x4E0E;&#x4E0A;&#x4E0B;&#x6587;&#x76F8;&#x5173;&#x7684;&#x56DE;&#x7B54;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x5C06;&#x76F8;&#x5173;&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#x878D;&#x5165;&#x63D0;&#x793A;&#x4E2D;&#xFF0C;&#x5728;&#x8BE2;&#x95EE;&#x5173;&#x4E8E;&#x7279;&#x5B9A;&#x4E3B;&#x9898;&#x7684;&#x4FE1;&#x606F;&#x65F6;&#xFF0C;&#x80FD;&#x591F;&#x5E2E;&#x52A9;ChatGPT&#x63D0;&#x4F9B;&#x66F4;&#x6709;&#x89C1;&#x5730;&#x7684;&#x7B54;&#x6848;&#x3002;</p><p><strong>Prompt 1:</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-iqgxfx3jqsreoqjngshj8g-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="673" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-iqgxfx3jqsreoqjngshj8g-2x.png 600w, https://liangbo.me/content/images/2024/07/1-iqgxfx3jqsreoqjngshj8g-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x6CA1;&#x6709;&#x4E0A;&#x4E0B;&#x6587;&#x7684;Prompt</span></figcaption></figure><p><strong>Prompt 2:</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-em5xyt9doc5mdg7_vexxpq-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="669" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-em5xyt9doc5mdg7_vexxpq-2x.png 600w, https://liangbo.me/content/images/2024/07/1-em5xyt9doc5mdg7_vexxpq-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x5E26;&#x7740;&#x4E0A;&#x4E0B;&#x6587;&#x7684;Prompt</span></figcaption></figure><p>&#x5145;&#x6EE1;&#x4E0A;&#x4E0B;&#x6587;&#x7684;Prompt&#x53EF;&#x4EE5;&#x5F15;&#x5BFC;ChatGPT&#x751F;&#x6210;&#x4E0E;&#x7279;&#x5B9A;&#x5174;&#x8DA3;&#x9886;&#x57DF;&#x76F8;&#x4E00;&#x81F4;&#x7684;&#x56DE;&#x7B54;&#x3002;</p><h4 id="%E8%BF%90%E7%94%A8-system-1%E5%92%8Csystem-2-%E9%97%AE%E9%A2%98">&#x8FD0;&#x7528; System 1&#x548C;System 2 &#x95EE;&#x9898;</h4><p>System 1&#x548C;System 2 &#x95EE;&#x9898;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x5E73;&#x8861;&#x7684;Prompt Engineering&#x65B9;&#x6CD5;&#x3002;System 1&#x95EE;&#x9898;&#x5F15;&#x53D1;&#x5FEB;&#x901F;&#x3001;&#x672C;&#x80FD;&#x7684;&#x56DE;&#x7B54;&#xFF0C;&#x800C;System 2&#x95EE;&#x9898;&#x9700;&#x8981;&#x6DF1;&#x601D;&#x719F;&#x8651;&#x3001;&#x8BE6;&#x7EC6;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x5C06;&#x8FD9;&#x4E24;&#x79CD;&#x7C7B;&#x578B;&#x7684;&#x95EE;&#x9898;&#x7ED3;&#x5408;&#x8D77;&#x6765;&#xFF0C;&#x53EF;&#x4EE5;&#x4E3A;&#x4E0E;ChatGPT&#x7684;&#x4EA4;&#x4E92;&#x589E;&#x6DFB;&#x591A;&#x6837;&#x6027;&#x548C;&#x6DF1;&#x5EA6;&#x3002;</p><p>&#x56E0;&#x6B64;&#xFF0C;&#x5728;Prompt Engineering&#x4E2D;&#x8FD0;&#x7528;System 1&#x548C;System 2&#x95EE;&#x9898;&#x662F;&#x4E00;&#x79CD;&#x5F71;&#x54CD;ChatGPT&#x7ED9;&#x51FA;&#x56DE;&#x7B54;&#x7C7B;&#x578B;&#x7684;&#x65B9;&#x6CD5;&#x3002;</p><p>&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5728;Prompt&#x4E2D;&#x5305;&#x542B;System 1&#x548C;System 2&#x95EE;&#x9898;&#xFF0C;&#x6307;&#x5BFC;ChatGPT&#x751F;&#x6210;&#x6EE1;&#x8DB3;&#x4ED6;&#x4EEC;&#x9700;&#x6C42;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x8003;&#x8651;&#x4EE5;&#x4E0B;&#x793A;&#x4F8B;&#x6765;&#x8BF4;&#x660E;&#x8FD9;&#x4E2A;&#x6982;&#x5FF5;&#xFF1A;</p><p><strong>&#x793A;&#x4F8B;&#xFF1A;&#x65C5;&#x884C;&#x5EFA;&#x8BAE;AI&#x52A9;&#x624B;</strong></p><blockquote>Prompt&#xFF1A; &#x201C;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x65C5;&#x6E38;&#x63A8;&#x8350;&#x52A9;&#x7406;&#xFF0C;&#x60A8;&#x7684;&#x76EE;&#x6807;&#x662F;&#x4E3A;&#x7528;&#x6237;&#x63D0;&#x4F9B;&#x4E2A;&#x6027;&#x5316;&#x548C;&#x660E;&#x667A;&#x7684;&#x65C5;&#x6E38;&#x5EFA;&#x8BAE;&#x3002;&#x8BF7;&#x4F7F;&#x7528;System 1 &#x548C;System 2 &#x95EE;&#x9898;&#x6765;&#x751F;&#x6210;&#x76F8;&#x5173;&#x56DE;&#x590D;&#x3002;System 1 &#x95EE;&#x9898;&#x5E94;&#x4FA7;&#x91CD;&#x4E8E;&#x5FEB;&#x901F;&#x5EFA;&#x8BAE;&#xFF0C;&#x800C;System 2 &#x95EE;&#x9898;&#x5E94;&#x63A2;&#x8BA8;&#x5EFA;&#x8BAE;&#x80CC;&#x540E;&#x7684;&#x539F;&#x56E0;&#x3002;</blockquote><blockquote>System 1 &#x95EE;&#x9898; &#x201C;&#x5DF4;&#x9ECE;&#x6709;&#x54EA;&#x4E9B;&#x70ED;&#x95E8;&#x65C5;&#x6E38;&#x666F;&#x70B9;&#xFF1F;</blockquote><blockquote>System 2 &#x95EE;&#x9898; &#x201C;&#x4F60;&#x80FD;&#x89E3;&#x91CA;&#x57C3;&#x83F2;&#x5C14;&#x94C1;&#x5854;&#x7684;&#x5386;&#x53F2;&#x610F;&#x4E49;&#x53CA;&#x5176;&#x5EFA;&#x7B51;&#x7279;&#x70B9;&#x5417;&#xFF1F;</blockquote><p>&#x5728;&#x8FD9;&#x4E2A;&#x793A;&#x4F8B;&#x4E2D;&#xFF0C;System 1&#x95EE;&#x9898;&#x4FC3;&#x4F7F;ChatGPT&#x5FEB;&#x901F;&#x63D0;&#x4F9B;&#x5DF4;&#x9ECE;&#x4E3B;&#x8981;&#x65C5;&#x6E38;&#x666F;&#x70B9;&#x7684;&#x63A8;&#x8350;&#x3002;&#x5BFB;&#x6C42;&#x7B80;&#x77ED;&#x65C5;&#x884C;&#x884C;&#x7A0B;&#x5EFA;&#x8BAE;&#x7684;&#x7528;&#x6237;&#x5C06;&#x4ECE;&#x7B80;&#x6D01;&#x6613;&#x61C2;&#x7684;&#x4FE1;&#x606F;&#x4E2D;&#x53D7;&#x76CA;&#x3002;&#x56DE;&#x7B54;&#x53EF;&#x80FD;&#x5305;&#x62EC;&#x5362;&#x6D6E;&#x5BAB;&#x535A;&#x7269;&#x9986;&#x3001;&#x5DF4;&#x9ECE;&#x5723;&#x6BCD;&#x9662;&#x548C;&#x9999;&#x69AD;&#x4E3D;&#x820D;&#x5927;&#x8857;&#x7B49;&#x666F;&#x70B9;&#x3002;</p><p>&#x800C;System 2&#x95EE;&#x9898;&#x9F13;&#x52B1;ChatGPT&#x63A2;&#x7D22;&#x7279;&#x5B9A;&#x666F;&#x70B9;&#x7684;&#x5386;&#x53F2;&#x91CD;&#x8981;&#x6027;&#x548C;&#x5EFA;&#x7B51;&#x65B9;&#x9762;&#xFF0C;&#x6BD4;&#x5982;&#x57C3;&#x83F2;&#x5C14;&#x94C1;&#x5854;&#x3002;&#x8FD9;&#x6837;&#x7684;&#x56DE;&#x7B54;&#x5BF9;&#x4E8E;&#x60F3;&#x8981;&#x66F4;&#x597D;&#x5730;&#x4E86;&#x89E3;&#x548C;&#x6DF1;&#x5165;&#x4E86;&#x89E3;&#x8BE5;&#x666F;&#x70B9;&#x7684;&#x7528;&#x6237;&#x975E;&#x5E38;&#x6709;&#x5E2E;&#x52A9;&#x3002;&#x56DE;&#x7B54;&#x53EF;&#x80FD;&#x5305;&#x62EC;&#x5854;&#x697C;&#x4E3A;1889&#x5E74;&#x4E16;&#x754C;&#x535A;&#x89C8;&#x4F1A;&#x800C;&#x5EFA;&#x7684;&#x5386;&#x53F2;&#x80CC;&#x666F;&#xFF0C;&#x5C45;&#x65AF;&#x5854;&#x592B;&#xB7;&#x57C3;&#x83F2;&#x5C14;&#x7684;&#x8BBE;&#x8BA1;&#x4EE5;&#x53CA;&#x5176;&#x8457;&#x540D;&#x7684;&#x94C1;&#x683C;&#x5B50;&#x7ED3;&#x6784;&#x3002;</p><p>&#x901A;&#x8FC7;&#x5305;&#x542B;System 1&#x548C;System 2&#x95EE;&#x9898;&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x83B7;&#x5F97;&#x5FEB;&#x901F;&#x7684;&#x63A8;&#x8350;&#x548C;&#x66F4;&#x8BE6;&#x7EC6;&#x7684;&#x89E3;&#x91CA;&#x3002;&#x8FD9;&#x4F7F;&#x5F97;&#x65C5;&#x884C;&#x5EFA;&#x8BAE;&#x52A9;&#x7406;&#x80FD;&#x591F;&#x9002;&#x5E94;&#x4E0D;&#x540C;&#x7528;&#x6237;&#x7684;&#x53E3;&#x5473;&#xFF0C;&#x63D0;&#x4F9B;&#x5B9E;&#x7528;&#x7684;&#x5EFA;&#x8BAE;&#xFF0C;&#x540C;&#x65F6;&#x4E5F;&#x6EE1;&#x8DB3;&#x5BF9;&#x666F;&#x70B9;&#x5386;&#x53F2;&#x548C;&#x5EFA;&#x7B51;&#x7279;&#x8272;&#x611F;&#x5174;&#x8DA3;&#x7684;&#x7528;&#x6237;&#x7684;&#x597D;&#x5947;&#x5FC3;&#x3002;</p><h4 id="%E6%8E%A7%E5%88%B6%E8%BE%93%E5%87%BA%E9%95%BF%E5%BA%A6">&#x63A7;&#x5236;&#x8F93;&#x51FA;&#x957F;&#x5EA6;</h4><p>&#x63A7;&#x5236;ChatGPT&#x56DE;&#x7B54;&#x7684;&#x957F;&#x5EA6;&#x662F;&#x5FEB;&#x901F;Prompt Engineering&#x7684;&#x4E00;&#x4E2A;&#x5173;&#x952E;&#x7EC4;&#x6210;&#x90E8;&#x5206;&#x3002;&#x5B83;&#x4F7F;&#x7528;&#x6237;&#x80FD;&#x591F;&#x63A7;&#x5236;&#x751F;&#x6210;&#x8F93;&#x51FA;&#x7684;&#x8BE6;&#x7EC6;&#x7A0B;&#x5EA6;&#x548C;&#x957F;&#x5EA6;&#x3002;&#x8003;&#x8651;&#x4EE5;&#x4E0B;&#x793A;&#x4F8B;&#xFF0C;&#x770B;&#x770B;&#x5982;&#x4F55;&#x7BA1;&#x7406;&#x8F93;&#x51FA;&#x7684;&#x957F;&#x5EA6;&#xFF1A;</p><p><strong>Prompt 1:</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-esjd6_botbnrjxftckrztq-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="855" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-esjd6_botbnrjxftckrztq-2x.png 600w, https://liangbo.me/content/images/2024/07/1-esjd6_botbnrjxftckrztq-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x7B80;&#x77ED;&#x8F93;&#x51FA;</span></figcaption></figure><p><strong>Prompt 2:</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-np9xngu9lrmhobpgrdtrsq-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="828" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-np9xngu9lrmhobpgrdtrsq-2x.png 600w, https://liangbo.me/content/images/2024/07/1-np9xngu9lrmhobpgrdtrsq-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x5197;&#x957F;&#x8F93;&#x51FA;</span></figcaption></figure><p>&#x5728;&#x8FD9;&#x4E2A;&#x56DE;&#x7B54;&#x4E2D;&#xFF0C;ChatGPT&#x5C55;&#x793A;&#x4E86;&#x5F88;&#x5F3A;&#x7684;&#x5197;&#x957F;&#x5EA6;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x8BE6;&#x7EC6;&#x7684;&#x9010;&#x6B65;&#x98DF;&#x8C31;&#x3002;&#x5B83;&#x5305;&#x542B;&#x4E86;&#x989D;&#x5916;&#x7684;&#x89E3;&#x91CA;&#x548C;&#x5EFA;&#x8BAE;&#xFF0C;&#x5E2E;&#x52A9;&#x7528;&#x6237;&#x5B8C;&#x6210;&#x70D8;&#x7119;&#x8FC7;&#x7A0B;&#x3002;&#x8FD9;&#x79CD;&#x6DF1;&#x5EA6;&#x5BF9;&#x4E8E;&#x90A3;&#x4E9B;&#x9700;&#x8981;&#x8BE6;&#x7EC6;&#x6307;&#x5BFC;&#x7684;&#x4EBA;&#x6765;&#x8BF4;&#x662F;&#x5408;&#x9002;&#x7684;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x5BF9;&#x4E8E;&#x65B0;&#x624B;&#x70D8;&#x7119;&#x8005;&#x6216;&#x559C;&#x6B22;&#x66F4;&#x5168;&#x9762;&#x65B9;&#x6CD5;&#x7684;&#x4EBA;&#x6765;&#x8BF4;&#x3002;</p><p>&#x8FD9;&#x6837;&#xFF0C;ChatGPT&#x53EF;&#x4EE5;&#x9002;&#x5E94;&#x591A;&#x6837;&#x5316;&#x7684;&#x7528;&#x6237;&#x504F;&#x597D;&#xFF0C;&#x901A;&#x8FC7;&#x8C03;&#x8282;&#x56DE;&#x7B54;&#x7684;&#x5197;&#x957F;&#x5EA6;&#x6765;&#x4F18;&#x5316;&#x5BF9;&#x8BDD;&#x4F53;&#x9A8C;&#xFF0C;&#x4F7F;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x80FD;&#x591F;&#x4E3A;&#x7528;&#x6237;&#x7684;&#x9700;&#x6C42;&#x63D0;&#x4F9B;&#x76F8;&#x5173;&#x7684;&#x7B54;&#x6848;&#xFF0C;&#x5E76;&#x52A0;&#x5F3A;&#x4E0E;&#x7528;&#x6237;&#x7684;&#x8054;&#x7CFB;&#x3002;</p><h3 id="prompt-engineering-%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5">Prompt Engineering &#x6700;&#x4F73;&#x5B9E;&#x8DF5;</h3><p>Prompt Engineering&#x662F;&#x4E00;&#x4E2A;&#x52A8;&#x6001;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C;&#x9700;&#x8981;&#x5145;&#x5206;&#x7684;&#x601D;&#x8003;&#x548C;&#x5B9E;&#x9A8C;&#xFF0C;&#x4EE5;&#x83B7;&#x5F97;&#x6700;&#x4F73;&#x7ED3;&#x679C;&#x3002;&#x5728;&#x672C;&#x8282;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x770B;&#x770B;Prompt Engineering&#x7684;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#xFF0C;&#x5E2E;&#x52A9;&#x7528;&#x6237;&#x5728;&#x4E0E;ChatGPT&#x7684;&#x4EA4;&#x4E92;&#x4E2D;&#x83B7;&#x5F97;&#x6700;&#x5927;&#x7684;&#x6536;&#x76CA;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x6765;&#x4E86;&#x89E3;&#x8FD9;&#x4E9B;&#x5B9E;&#x8DF5;&#xFF0C;&#x5E76;&#x770B;&#x770B;&#x5B83;&#x4EEC;&#x7684;&#x6548;&#x679C;&#x5982;&#x4F55;&#x3002;</p><h4 id="%E6%8C%81%E7%BB%AD%E6%B5%8B%E8%AF%95%E5%92%8C%E6%94%B9%E8%BF%9B">&#x6301;&#x7EED;&#x6D4B;&#x8BD5;&#x548C;&#x6539;&#x8FDB;</h4><p>&#x6709;&#x6548;&#x7684;Prompt Engineering&#x5728;&#x5F88;&#x5927;&#x7A0B;&#x5EA6;&#x4E0A;&#x4F9D;&#x8D56;&#x4E8E;&#x6301;&#x7EED;&#x6D4B;&#x8BD5;&#x548C;&#x6539;&#x8FDB;&#x3002;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5B9A;&#x671F;Review&#x8F93;&#x51FA;&#x5E76;&#x76F8;&#x5E94;&#x5730;&#x8C03;&#x6574;Prompt&#x6765;&#x4E0D;&#x65AD;&#x5B8C;&#x5584;&#x6307;&#x4EE4;&#xFF0C;&#x63D0;&#x9AD8;ChatGPT&#x56DE;&#x7B54;&#x7684;&#x8D28;&#x91CF;&#x3002;</p><p><strong>&#x8FED;&#x4EE3; 1:</strong></p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-w6a0rrlh8ygamasejxlr3q-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="187" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-w6a0rrlh8ygamasejxlr3q-2x.png 600w, https://liangbo.me/content/images/2024/07/1-w6a0rrlh8ygamasejxlr3q-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><p><strong>&#x8FED;&#x4EE3; 2:</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-nybv9wx05vpkiihk1wwdhg-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="494" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-nybv9wx05vpkiihk1wwdhg-2x.png 600w, https://liangbo.me/content/images/2024/07/1-nybv9wx05vpkiihk1wwdhg-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x4E2D;&#x6587;&#x7684;Prompt&#x8FD8;&#x5728;&#x5C1D;&#x8BD5;&#x4E2D;&#xFF0C; &#x4E0D;&#x8FC7;&#x82F1;&#x6587;&#x7684;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x751F;&#x6210;&#x683C;&#x5F0F;&#x5316;&#x7684;reminder</span></figcaption></figure><p><strong>&#x8FED;&#x4EE3; 3:</strong></p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-3s7iwhr-t0vejsmsulpdjw-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="472" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-3s7iwhr-t0vejsmsulpdjw-2x.png 600w, https://liangbo.me/content/images/2024/07/1-3s7iwhr-t0vejsmsulpdjw-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E6%84%8F%E5%9B%BE%E4%B8%8E%E5%88%9B%E6%84%8F%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B9%B3%E8%A1%A1">&#x610F;&#x56FE;&#x4E0E;&#x521B;&#x610F;&#x4E4B;&#x95F4;&#x7684;&#x5E73;&#x8861;</h4><p>&#x5728;Prompt Engineering&#x4E2D;&#xFF0C;&#x5E73;&#x8861;&#x7528;&#x6237;&#x7684;&#x610F;&#x56FE;&#x548C;&#x6A21;&#x578B;&#x672C;&#x8EAB;&#x521B;&#x9020;&#x529B;&#x4E5F;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;&#x8BF7;&#x770B;&#x4E0B;&#x9762;&#x7684;&#x63D0;&#x4F9B;&#x5199;&#x4F5C;&#x7075;&#x611F;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#xFF0C;&#x5B83;&#x52AA;&#x529B;&#x5728;&#x4FC3;&#x8FDB;&#x521B;&#x9020;&#x529B;&#x7684;&#x540C;&#x65F6;&#x63D0;&#x4F9B;&#x9002;&#x5F53;&#x7684;Prompt&#xFF1A;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-bsmjttbf-pvrgqcmgt1l2q-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="1360" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-bsmjttbf-pvrgqcmgt1l2q-2x.png 600w, https://liangbo.me/content/images/2024/07/1-bsmjttbf-pvrgqcmgt1l2q-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><p>ChatGPT&#x901A;&#x8FC7;&#x5E73;&#x8861;&#x5339;&#x914D;&#x7528;&#x6237;&#x610F;&#x56FE;&#x548C;&#x63D0;&#x5347;&#x6A21;&#x578B;&#x521B;&#x9020;&#x529B;&#xFF0C;&#x7ED9;&#x51FA;&#x4E86;&#x5408;&#x9002;&#x7684;Prompt&#xFF0C;&#x9F13;&#x52B1;&#x60F3;&#x8C61;&#x529B;&#xFF0C;&#x540C;&#x65F6;&#x4FDD;&#x6301;&#x4E0E;&#x7528;&#x6237;&#x7684;&#x5199;&#x4F5C;&#x76EE;&#x6807;&#x4E00;&#x81F4;&#x3002;</p><h4 id="%E6%95%B4%E5%90%88%E5%A4%96%E9%83%A8%E8%B5%84%E6%BA%90%E5%92%8Capi">&#x6574;&#x5408;&#x5916;&#x90E8;&#x8D44;&#x6E90;&#x548C;API</h4><p>&#x5229;&#x7528;&#x5916;&#x90E8;&#x8D44;&#x6E90;&#x548C;API&#x662F;Prompt Engineering&#x4E2D;&#x7684;&#x4E00;&#x9879;&#x5F3A;&#x5927;&#x6280;&#x672F;&#xFF0C;&#x5B83;&#x4F7F;&#x5F97;ChatGPT&#x80FD;&#x591F;&#x5229;&#x7528;&#x989D;&#x5916;&#x7684;&#x4FE1;&#x606F;&#x5E76;&#x589E;&#x5F3A;&#x5176;&#x56DE;&#x7B54;&#x80FD;&#x529B;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x793A;&#x4F8B;&#x6765;&#x4E86;&#x89E3;&#x5982;&#x4F55;&#x4F7F;&#x7528;&#x5916;&#x90E8;&#x8D44;&#x6E90;&#x548C;API&#xFF1A;</p><p><strong>&#x793A;&#x4F8B;&#xFF1A;&#x5929;&#x6C14;&#x4FE1;&#x606F;&#x52A9;&#x7406;</strong></p><blockquote>Prompt: &#x201C;As a weather information chatbot, harness external resources and APIs to provide accurate and up-to-date weather data to users.&#x201D;</blockquote><blockquote>User query: &#x201C;Shanghai&#x4ECA;&#x5929;&#x5929;&#x6C14;&#x5982;&#x4F55;?&#x201D;</blockquote><p>&#x8FD9;&#x4E2A;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x53EF;&#x4EE5;&#x4E0E;&#x5916;&#x90E8;&#x7684;&#x5929;&#x6C14;API&#xFF08;&#x6BD4;&#x5982;Weather.com&#xFF09;&#x8FDB;&#x884C;&#x6574;&#x5408;&#xFF0C;&#x4ECE;&#x800C;&#x63D0;&#x4F9B;&#x51C6;&#x786E;&#x7684;&#x5929;&#x6C14;&#x4FE1;&#x606F;&#x3002;&#x901A;&#x8FC7;&#x8C03;&#x7528;API&#xFF0C;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x53EF;&#x4EE5;&#x83B7;&#x53D6;&#x6307;&#x5B9A;&#x5730;&#x70B9;&#x7684;&#x5B9E;&#x65F6;&#x5929;&#x6C14;&#x6570;&#x636E;&#x3002;</p><p><strong>API &#x96C6;&#x6210;</strong></p><pre><code class="language-python">import requests 
 
def get_weather(city): 
    api_key = &quot;YOUR_API_KEY&quot; 
    url = f&quot;https://api.weatherapi.com/v1/current.json?key={api_key}&amp;q={city}&quot; 
    response = requests.get(url) 
    data = response.json() 
    return data[&quot;current&quot;][&quot;condition&quot;][&quot;text&quot;], data[&quot;current&quot;][&quot;temp_c&quot;]</code></pre><p>&#x4E0A;&#x9762;&#x7684;get_weather()&#x51FD;&#x6570;&#x6F14;&#x793A;&#x4E86;&#x4E0E;WeatherAPI&#x7684;&#x96C6;&#x6210;&#x793A;&#x4F8B;&#xFF0C;&#x5B83;&#x8FD4;&#x56DE;&#x7ED9;&#x5B9A;&#x57CE;&#x5E02;&#x7684;&#x5929;&#x6C14;&#x72B6;&#x51B5;&#x548C;&#x6444;&#x6C0F;&#x6E29;&#x5EA6;&#x3002;</p><p><strong>&#x56DE;&#x7B54;&#x6A21;&#x7248;&#xFF1A;</strong></p><pre><code class="language-python">city = &quot;Shanghai&quot; 
weather_condition, temperature = get_weather(city) 
response = f&quot;The weather in {city} today is {weather_condition}. The temperature is {temperature}&#xB0;C.&quot;</code></pre><p><strong>&#x56DE;&#x7B54;&#x7ED3;&#x679C;:</strong></p><blockquote>&#x201C;The weather in Shanghai today is partly cloudy. The temperature is 22&#xB0;C.&#x201D;</blockquote><p>&#x901A;&#x8FC7;&#x5229;&#x7528;&#x5916;&#x90E8;&#x8D44;&#x6E90;&#x548C;API&#xFF0C;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x53EF;&#x4EE5;&#x68C0;&#x7D22;&#x51C6;&#x786E;&#x7684;&#x5929;&#x6C14;&#x4FE1;&#x606F;&#xFF0C;&#x5E76;&#x5C06;&#x5176;&#x878D;&#x5165;&#x5230;&#x56DE;&#x7B54;&#x4E2D;&#x3002;&#x8FD9;&#x4E3A;&#x7528;&#x6237;&#x63D0;&#x4F9B;&#x4E86;&#x9002;&#x5408;&#x5176;&#x6307;&#x5B9A;&#x5730;&#x70B9;&#x7684;&#x5B9E;&#x65F6;&#x5929;&#x6C14;&#x66F4;&#x65B0;&#x3002;</p><p>&#x4E0E;&#x5916;&#x90E8;&#x8D44;&#x6E90;&#x548C;API&#x7684;&#x96C6;&#x6210;&#x4F7F;&#x5F97;ChatGPT&#x80FD;&#x591F;&#x83B7;&#x53D6;&#x8D85;&#x51FA;&#x5176;&#x8BAD;&#x7EC3;&#x6570;&#x636E;&#x7684;&#x5927;&#x91CF;&#x4FE1;&#x606F;&#xFF0C;&#x4ECE;&#x800C;&#x4E3A;&#x7528;&#x6237;&#x7684;&#x67E5;&#x8BE2;&#x63D0;&#x4F9B;&#x66F4;&#x6709;&#x4EF7;&#x503C;&#x548C;&#x53EF;&#x9760;&#x7684;&#x56DE;&#x7B54;&#x3002;</p><h4 id="openai-api-%E7%A4%BA%E4%BE%8B">OpenAI API &#x793A;&#x4F8B;</h4><p>OpenAI API&#x5141;&#x8BB8;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x5C06;ChatGPT&#x96C6;&#x6210;&#x5230;&#x4ED6;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x3001;&#x4EA7;&#x54C1;&#x6216;&#x670D;&#x52A1;&#x4E2D;&#x3002;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E2A;&#x793A;&#x4F8B;&#xFF0C;&#x5C55;&#x793A;&#x4E86;&#x5982;&#x4F55;&#x4F7F;&#x7528;OpenAI API&#xFF1A;</p><pre><code class="language-python">import openai 
 
# Set up your OpenAI API credentials 
openai.api_key = &apos;YOUR_API_KEY&apos; 
 
# Define a function for interacting with ChatGPT 
def ask_chatbot(question, chat_history=None): 
    if chat_history is None: 
        chat_history = [] 
 
    # Format the input for the API call 
    input_text = &apos;\n&apos;.join(chat_history + [f&apos;User: {question}&apos;]) 
 
    # Call the OpenAI API to generate a response 
    response = openai.Completion.create( 
        engine=&apos;text-davinci-003&apos;, 
        prompt=input_text, 
        max_tokens=50, 
        temperature=0.7, 
        n=1, 
        stop=None, 
        temperature=0.7 
    ) 
 
    # Extract the generated response from the API response 
    answer = response.choices[0].text.strip() 
 
    # Append the user&apos;s question and the chatbot&apos;s answer to the chat history 
    chat_history.append(f&apos;User: {question}&apos;) 
    chat_history.append(f&apos;Chatbot: {answer}&apos;) 
 
    return answer 
 
# Example usage 
chat_history = [] 
user_question = &quot;What is the capital of France?&quot; 
response = ask_chatbot(user_question, chat_history) 
print(response)</code></pre><p>&#x5728;&#x8FD9;&#x4E2A;&#x793A;&#x4F8B;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5B9A;&#x4E49;&#x4E86;ask_chatbot()&#x51FD;&#x6570;&#xFF0C;&#x5B83;&#x63A5;&#x6536;&#x7528;&#x6237;&#x7684;&#x95EE;&#x9898;&#x548C;&#x4E00;&#x4E2A;&#x53EF;&#x9009;&#x7684;&#x804A;&#x5929;&#x5386;&#x53F2;&#x4F5C;&#x4E3A;&#x8F93;&#x5165;&#x3002;&#x8BE5;&#x51FD;&#x6570;&#x5BF9;&#x804A;&#x5929;&#x5386;&#x53F2;&#x548C;&#x7528;&#x6237;&#x95EE;&#x9898;&#x8FDB;&#x884C;&#x683C;&#x5F0F;&#x5316;&#xFF0C;&#x7136;&#x540E;&#x4F7F;&#x7528;openai.Completion.create()&#x65B9;&#x6CD5;&#x5411;OpenAI API&#x53D1;&#x8D77;API&#x8C03;&#x7528;&#x3002;</p><p>API&#x7684;&#x54CD;&#x5E94;&#x5305;&#x542B;&#x6765;&#x81EA;ChatGPT&#x751F;&#x6210;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x6211;&#x4EEC;&#x4ECE;&#x54CD;&#x5E94;&#x4E2D;&#x63D0;&#x53D6;&#x51FA;&#x7B54;&#x6848;&#xFF0C;&#x5E76;&#x5C06;&#x7528;&#x6237;&#x7684;&#x95EE;&#x9898;&#x548C;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x56DE;&#x7B54;&#x6DFB;&#x52A0;&#x5230;&#x804A;&#x5929;&#x5386;&#x53F2;&#x4E2D;&#x3002;&#x6700;&#x540E;&#xFF0C;&#x751F;&#x6210;&#x7684;&#x7B54;&#x6848;&#x88AB;&#x8FD4;&#x56DE;&#x3002;</p><p>&#x501F;&#x52A9;ChatGPT OpenAI API&#xFF0C;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x53EF;&#x4EE5;&#x5C06;ChatGPT&#x7684;&#x529F;&#x80FD;&#x96C6;&#x6210;&#x5230;&#x4ED6;&#x4EEC;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#xFF0C;&#x4F7F;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x4E0E;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x8FDB;&#x884C;&#x4EA4;&#x4E92;&#xFF0C;&#x5E76;&#x6839;&#x636E;&#x4ED6;&#x4EEC;&#x7684;&#x67E5;&#x8BE2;&#x63A5;&#x6536;&#x56DE;&#x7B54;&#x3002;</p><h4 id="%E9%81%BF%E5%BC%80%E4%BB%BB%E4%BD%95%E5%81%8F%E8%A7%81%E5%92%8C%E5%9C%A8%E9%81%93%E5%BE%B7%E5%87%86%E5%88%99%E4%B8%8B%E4%BD%BF%E7%94%A8">&#x907F;&#x5F00;&#x4EFB;&#x4F55;&#x504F;&#x89C1;&#x548C;&#x5728;&#x9053;&#x5FB7;&#x51C6;&#x5219;&#x4E0B;&#x4F7F;&#x7528;</h4><p>ChatGPT&#x5FC5;&#x987B;&#x5728;&#x9053;&#x5FB7;&#x548C;&#x65E0;&#x504F;&#x89C1;&#x7684;&#x524D;&#x63D0;&#x4E0B;&#x4F7F;&#x7528;&#x3002;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E2A;&#x91CD;&#x8981;&#x5B9E;&#x4F8B;&#xFF1A;</p><p><strong>&#x793A;&#x4F8B;&#xFF1A;AI&#x8F85;&#x52A9;&#x7684;&#x6C42;&#x804C;&#x8005;&#x7B5B;&#x9009;</strong></p><p>&#x60F3;&#x8C61;&#x4E00;&#x4E0B;&#xFF0C;&#x6709;&#x4E00;&#x4E2A;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;ChatGPT&#x6765;&#x5206;&#x6790;&#x9762;&#x8BD5;&#x56DE;&#x7B54;&#xFF0C; &#x5E76;&#x7B5B;&#x9009;&#x6C42;&#x804C;&#x8005;&#x7684;AI&#x7CFB;&#x7EDF;&#x3002;&#x7B5B;&#x9009;&#x8FC7;&#x7A0B;&#x5FC5;&#x987B;&#x662F;&#x6709;&#x9053;&#x5FB7;&#x7684;&#x548C;&#x6CA1;&#x6709;&#x504F;&#x89C1;&#x7684;&#x3002;</p><p>&#x4EE5;&#x4E0B;&#x6B65;&#x9AA4;&#x53EF;&#x4EE5;&#x51CF;&#x5C11;&#x504F;&#x89C1;&#xFF0C;&#x786E;&#x4FDD;&#x516C;&#x5E73;&#x6027;&#xFF1A;</p><ol><li><strong>&#x8BAD;&#x7EC3;&#x6570;&#x636E;&#x591A;&#x5143;&#x5316;</strong>&#xFF1A;&#x4F7F;&#x7528;&#x5404;&#x79CD;&#x79CD;&#x65CF;&#x3001;&#x6027;&#x522B;&#x548C;&#x65CF;&#x88D4;&#x7684;&#x6570;&#x636E;&#x6765;&#x4F18;&#x5316;ChatGPT&#x3002;&#x4ECE;&#x4E00;&#x5F00;&#x59CB;&#x5C31;&#x89E3;&#x51B3;&#x8BAD;&#x7EC3;&#x6570;&#x636E;&#x7684;&#x504F;&#x89C1;&#x662F;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x7684;&#xFF0C;&#x56E0;&#x4E3A;&#x5B83;&#x53EF;&#x80FD;&#x5BFC;&#x81F4;&#x504F;&#x89C1;&#x3002;</li><li><strong>&#x504F;&#x89C1;&#x8BC4;&#x4F30;</strong>&#xFF1A;&#x5B9A;&#x671F;&#x8BC4;&#x4F30;&#x6A21;&#x578B;&#x7684;&#x56DE;&#x7B54;&#xFF0C;&#x4EE5;&#x4EBA;&#x5DE5;&#x7684;&#x65B9;&#x5F0F;&#x8BC6;&#x522B;&#x548C;&#x51CF;&#x5C11;&#x504F;&#x89C1;&#x3002;&#x4F7F;&#x7528;&#x5E73;&#x8861;&#x548C;&#x5E73;&#x7B49;&#x673A;&#x4F1A;&#x6765;&#x67E5;&#x770B;&#x6A21;&#x578B;&#x7684;&#x5EFA;&#x8BAE;&#x662F;&#x5426;&#x5177;&#x5907;&#x5E73;&#x8861;&#x56E0;&#x7D20;&#xFF08;&#x5982;&#x6027;&#x522B;&#x6216;&#x79CD;&#x65CF;&#xFF09;&#x7684;&#x5F71;&#x54CD;&#x3002;&#x8FDB;&#x884C;&#x8C03;&#x6574;&#x4EE5;&#x51CF;&#x5C11;&#x504F;&#x89C1;&#x3002;</li><li><strong>&#x900F;&#x660E;&#x7684;&#x51C6;&#x5219;</strong>&#xFF1A;&#x5411;&#x4EBA;&#x7C7B;&#x5BA1;&#x67E5;&#x4EBA;&#x5458;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x4F20;&#x8FBE;&#x7CFB;&#x7EDF;&#x51C6;&#x5219;&#x3002;&#x8FD9;&#x4E9B;&#x51C6;&#x5219;&#x5E94;&#x5F3A;&#x8C03;&#x516C;&#x6B63;&#x3001;&#x9053;&#x5FB7;&#x548C;&#x907F;&#x514D;&#x504F;&#x89C1;&#x3002;&#x660E;&#x786E;&#x6307;&#x793A;&#x5728;&#x7B5B;&#x9009;&#x8FC7;&#x7A0B;&#x4E2D;&#x907F;&#x514D;&#x504F;&#x8892;&#x6216;&#x6B67;&#x89C6;&#x7279;&#x5B9A;&#x7FA4;&#x4F53;&#x3002;</li><li><strong>&#x4EBA;&#x5DE5;&#x5E72;&#x9884;&#x5BA1;&#x67E5;</strong>&#xFF1A;&#x8BA9;&#x4EBA;&#x7C7B;&#x5206;&#x6790;&#x7CFB;&#x7EDF;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x8FD9;&#x4E00;&#x6B65;&#x9AA4;&#x6709;&#x52A9;&#x4E8E;&#x53D1;&#x73B0;&#x4EFB;&#x4F55;&#x6A21;&#x578B;&#x7684;&#x504F;&#x89C1;&#xFF0C;&#x5E76;&#x786E;&#x4FDD;&#x4EBA;&#x7C7B;&#x53EF;&#x4EE5;&#x8003;&#x8651;&#x4E0A;&#x4E0B;&#x6587;&#x5E76;&#x505A;&#x51FA;&#x516C;&#x5E73;&#x7684;&#x51B3;&#x5B9A;&#x3002;</li><li><strong>&#x6301;&#x7EED;&#x76D1;&#x63A7;&#x548C;&#x53CD;&#x9988;</strong>&#xFF1A;&#x6301;&#x7EED;&#x76D1;&#x6D4B;&#x7CFB;&#x7EDF;&#x7684;&#x6027;&#x80FD;&#xFF0C;&#x5E76;&#x4ECE;&#x7528;&#x6237;&#x548C;&#x5BA1;&#x9605;&#x5458;&#x90A3;&#x91CC;&#x6536;&#x96C6;&#x53CD;&#x9988;&#x3002;&#x68C0;&#x67E5;&#x7CFB;&#x7EDF;&#x8F93;&#x51FA;&#x662F;&#x5426;&#x5B58;&#x5728;&#x504F;&#x89C1;&#x548C;&#x610F;&#x5916;&#x6548;&#x679C;&#x3002;&#x53CD;&#x9988;&#x5FAA;&#x73AF;&#x6709;&#x52A9;&#x4E8E;&#x8FC5;&#x901F;&#x89E3;&#x51B3;&#x95EE;&#x9898;&#x3002;</li><li><strong>&#x591A;&#x5143;&#x5316;&#x7684;&#x5BA1;&#x9605;&#x5458;&#x56E2;&#x961F;</strong>&#xFF1A;&#x786E;&#x4FDD;&#x8D1F;&#x8D23;&#x5BA1;&#x67E5;&#x548C;&#x4F18;&#x5316;&#x7CFB;&#x7EDF;&#x8F93;&#x51FA;&#x7684;&#x56E2;&#x961F;&#x6210;&#x5458;&#x6765;&#x81EA;&#x4E0D;&#x540C;&#x7684;&#x80CC;&#x666F;&#x3002;&#x591A;&#x6837;&#x5316;&#x7684;&#x56E2;&#x961F;&#x53EF;&#x4EE5;&#x53D1;&#x73B0;&#x548C;&#x89E3;&#x51B3;&#x540C;&#x8D28;&#x56E2;&#x4F53;&#x53EF;&#x80FD;&#x5FFD;&#x7565;&#x7684;&#x504F;&#x89C1;&#x3002;</li></ol><p>&#x8FD9;&#x4E9B;&#x505A;&#x6CD5;&#x6709;&#x52A9;&#x4E8E;AI&#x8F85;&#x52A9;&#x7684;&#x6C42;&#x804C;&#x8005;&#x7B5B;&#x9009;&#x7CFB;&#x7EDF;&#x907F;&#x514D;&#x504F;&#x89C1;&#xFF0C;&#x6839;&#x636E;&#x6C42;&#x804C;&#x8005;&#x7684;&#x6280;&#x80FD;&#x548C;&#x8D44;&#x683C;&#x8FDB;&#x884C;&#x8BC4;&#x4F30;&#x3002;</p><h3 id="%E8%BF%9B%E9%98%B6%E7%9A%84prompt-engineering%E7%AD%96%E7%95%A5">&#x8FDB;&#x9636;&#x7684;Prompt Engineering&#x7B56;&#x7565;</h3><p>Prompt Engineering&#x53EF;&#x4EE5;&#x66F4;&#x63D0;&#x5347;&#x4E00;&#x6B65;&#xFF0C;&#x5305;&#x62EC;&#x521B;&#x65B0;&#x7B56;&#x7565;&#xFF0C;&#x4EE5;&#x8FDB;&#x4E00;&#x6B65;&#x4F18;&#x5316;ChatGPT&#x7684;&#x6027;&#x80FD;&#x548C;&#x9002;&#x5E94;&#x6027;&#x3002;&#x672C;&#x8282;&#x5C06;&#x4ECB;&#x7ECD;&#x4E00;&#x4E9B;&#x9AD8;&#x7EA7;&#x7684;Prompt Engineering&#x7B56;&#x7565;&#xFF0C;&#x5982;&#x6E29;&#x5EA6;&#x548C;Token&#x63A7;&#x5236;&#x3001;&#x591A;&#x8F6E;&#x5BF9;&#x8BDD;&#x7684;&#x63D0;&#x793A;&#x94FE;&#x63A5;&#x3001;&#x9488;&#x5BF9;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x5E94;&#x7528;&#x7684;&#x63D0;&#x793A;&#x4FEE;&#x6539;&#x4EE5;&#x53CA;&#x5904;&#x7406;&#x6DF7;&#x6DC6;&#x6216;&#x77DB;&#x76FE;&#x7684;&#x7528;&#x6237;&#x8F93;&#x5165;&#x3002;</p><h4 id="temperature%E5%92%8Ctoken%E7%AE%A1%E7%90%86">Temperature&#x548C;Token&#x7BA1;&#x7406;</h4><p>Temperature&#x548C;Token&#x63A7;&#x5236;&#x662F;&#x8C03;&#x6574;ChatGPT&#x884C;&#x4E3A;&#x7684;&#x6709;&#x6548;&#x65B9;&#x6CD5;&#x3002;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;Temperature&#x63A7;&#x5236;&#x6539;&#x53D8;&#x751F;&#x6210;&#x8F93;&#x51FA;&#x7684;&#x968F;&#x673A;&#x6027;&#x3002;&#x8F83;&#x4F4E;&#x7684;Temperature&#xFF0C;&#x5982;0.2&#xFF0C;&#x4F1A;&#x4EA7;&#x751F;&#x66F4;&#x52A0;&#x805A;&#x7126;&#x548C;&#x786E;&#x5B9A;&#x6027;&#x7684;&#x56DE;&#x7B54;&#xFF0C;&#x800C;&#x8F83;&#x9AD8;&#x7684;Temperature&#xFF0C;&#x5982;1.0&#xFF0C;&#x4F1A;&#x4EA7;&#x751F;&#x66F4;&#x591A;&#x53D8;&#x5316;&#x548C;&#x63A2;&#x7D22;&#x6027;&#x7684;&#x7ED3;&#x679C;&#x3002;&#x8FD9;&#x4E2A;&#x503C;&#x4E5F;&#x4EE3;&#x8868;&#x4E86;&#x63A7;&#x5236;&#x6A21;&#x578B;&#x7684;&#x521B;&#x9020;&#x529B;&#x548C;&#x7406;&#x6027;&#x3002;</p><p>OpenAI&#x7684;&#x7814;&#x7A76;&#x63ED;&#x793A;&#x4E86;Temperature&#x63A7;&#x5236;&#x5BF9;ChatGPT&#x56DE;&#x7B54;&#x591A;&#x6837;&#x6027;&#x7684;&#x5F71;&#x54CD;&#x3002;&#x901A;&#x8FC7;&#x5C1D;&#x8BD5;&#x4E0D;&#x540C;&#x7684;Temperature&#x8BBE;&#x7F6E;&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x5728;&#x63D0;&#x4F9B;&#x6613;&#x61C2;&#x7684;&#x7B54;&#x6848;&#x548C;&#x5C06;&#x65B0;&#x7279;&#x6027;&#x878D;&#x5165;&#x751F;&#x6210;&#x7684;&#x56DE;&#x7B54;&#x4E4B;&#x95F4;&#x8FBE;&#x5230;&#x7406;&#x60F3;&#x7684;&#x5E73;&#x8861;&#x3002;</p><p><strong>Prompt 1:</strong></p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-8ybprztcwhgtitbhk05ddq-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="502" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-8ybprztcwhgtitbhk05ddq-2x.png 600w, https://liangbo.me/content/images/2024/07/1-8ybprztcwhgtitbhk05ddq-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><p><strong>Prompt 2</strong>:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-p2ofenyk-0s5dadkghhc-a-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="561" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-p2ofenyk-0s5dadkghhc-a-2x.png 600w, https://liangbo.me/content/images/2024/07/1-p2ofenyk-0s5dadkghhc-a-2x.png 800w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">&#x662F;&#x4E0D;&#x662F;&#x66F4;&#x6709;&#x8BD7;&#x610F;?</span></figcaption></figure><p>Token&#x63A7;&#x5236;&#x5219;&#x9700;&#x8981;&#x6307;&#x5B9A;&#x6700;&#x5927;Token&#x6570;&#xFF0C;&#x4EE5;&#x9650;&#x5236;&#x7B54;&#x6848;&#x7684;&#x957F;&#x5EA6;&#x3002;&#x8FD9;&#x4F7F;&#x5F97;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x63A7;&#x5236;ChatGPT&#x8F93;&#x51FA;&#x7684;&#x5197;&#x957F;&#x7A0B;&#x5EA6;&#xFF0C;&#x5F97;&#x5230;&#x7B80;&#x6D01;&#x660E;&#x4E86;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x901A;&#x8FC7;&#x8BBE;&#x5B9A;&#x9002;&#x5F53;&#x7684;Token&#x9650;&#x5236;&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x786E;&#x4FDD;ChatGPT&#x63D0;&#x4F9B;&#x4E0E;&#x4ED6;&#x4EEC;&#x671F;&#x671B;&#x7684;&#x56DE;&#x7B54;&#x957F;&#x5EA6;&#x76F8;&#x5BF9;&#x5E94;&#x7684;&#x7B54;&#x6848;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-tagfsz1ecz7rm3v6pxt9eq-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="290" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-tagfsz1ecz7rm3v6pxt9eq-2x.png 600w, https://liangbo.me/content/images/2024/07/1-tagfsz1ecz7rm3v6pxt9eq-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><h4 id="prompt-chain%E5%92%8C%E5%A4%9A%E8%BD%AE%E5%AF%B9%E8%AF%9D">Prompt Chain&#x548C;&#x591A;&#x8F6E;&#x5BF9;&#x8BDD;</h4><p>Prompt Chain&#x548C;&#x591A;&#x8F6E;&#x5BF9;&#x8BDD;&#x53EF;&#x4EE5;&#x5B9E;&#x73B0;&#x66F4;&#x52A0;&#x4EA4;&#x4E92;&#x5F0F;&#x548C;&#x52A8;&#x6001;&#x7684;ChatGPT&#x4EA4;&#x6D41;&#x3002;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x5C06;&#x591A;&#x4E2A;Prompt&#x94FE;&#x63A5;&#x5728;&#x4E00;&#x8D77;&#xFF0C;&#x5F62;&#x6210;&#x8FDE;&#x7EED;&#x7684;&#x5BF9;&#x8BDD;&#x6D41;&#x7A0B;&#x3002;&#x6BCF;&#x4E2A;&#x63D0;&#x793A;&#x53EF;&#x4EE5;&#x5F15;&#x7528;&#x4E4B;&#x524D;&#x7684;&#x8F93;&#x5165;&#x6216;ChatGPT&#x5148;&#x524D;&#x7684;&#x56DE;&#x7B54;&#xFF0C;&#x4ECE;&#x800C;&#x5B9E;&#x73B0;&#x4E30;&#x5BCC;&#x4E0A;&#x4E0B;&#x6587;&#x7684;&#x5BF9;&#x8BDD;&#x3002;</p><p>&#x901A;&#x8FC7;&#x4F7F;&#x7528;Prompt Chain&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x521B;&#x5EFA;&#x66F4;&#x52A0;&#x5BF9;&#x8BDD;&#x5F0F;&#x7684;&#x4F53;&#x9A8C;&#xFF0C;&#x5E76;&#x4E0E;ChatGPT&#x8FDB;&#x884C;&#x53CD;&#x590D;&#x7684;&#x4E92;&#x52A8;&#x3002;&#x8FD9;&#x79CD;&#x6280;&#x672F;&#x9002;&#x7528;&#x4E8E;&#x9700;&#x8981;&#x591A;&#x6B65;&#x6307;&#x4EE4;&#x6216;&#x8FDB;&#x884C;&#x8BE6;&#x7EC6;&#x8BA8;&#x8BBA;&#x7684;&#x4EFB;&#x52A1;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-1ivp7ymrtkq5dzkzoq1-iq-2x.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="1256" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-1ivp7ymrtkq5dzkzoq1-iq-2x.png 600w, https://liangbo.me/content/images/2024/07/1-1ivp7ymrtkq5dzkzoq1-iq-2x.png 800w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E4%B8%BA%E7%89%B9%E5%AE%9A%E9%A2%86%E5%9F%9F%E7%9A%84%E5%BA%94%E7%94%A8%E8%B0%83%E6%95%B4prompt">&#x4E3A;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x7684;&#x5E94;&#x7528;&#x8C03;&#x6574;Prompt</h4><p>&#x4E3A;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x7684;&#x5E94;&#x7528;&#x8C03;&#x6574;Prompt&#x662F;Prompt Engineering&#x7684;&#x91CD;&#x8981;&#x65B9;&#x6CD5;&#x3002;&#x5B83;&#x6D89;&#x53CA;&#x5C06;Prompt&#x91CF;&#x8EAB;&#x5B9A;&#x5236;&#x7ED9;&#x7279;&#x5B9A;&#x884C;&#x4E1A;&#x6216;&#x9886;&#x57DF;&#xFF0C;&#x4EE5;&#x786E;&#x4FDD;&#x56DE;&#x7B54;&#x76F8;&#x5173;&#x51C6;&#x786E;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x793A;&#x4F8B;&#x6765;&#x8BF4;&#x660E;&#x5982;&#x4F55;&#x4E3A;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x7684;&#x5E94;&#x7528;&#x8C03;&#x6574;Prompt&#xFF1A;</p><p><strong>&#x793A;&#x4F8B;&#xFF1A;&#x533B;&#x7597;&#x8BCA;&#x65AD;AI&#x52A9;&#x7406;</strong></p><blockquote>&#x63D0;&#x793A;&#xFF1A;&#x201C;&#x4E3A;&#x533B;&#x7597;&#x8BCA;&#x65AD;AI&#x52A9;&#x7406;&#x8BBE;&#x8BA1;&#x4E00;&#x4E2A;Prompt&#xFF0C;&#x5E2E;&#x52A9;&#x7528;&#x6237;&#x8BC4;&#x4F30;&#x4ED6;&#x4EEC;&#x7684;&#x75C7;&#x72B6;&#x5E76;&#x63D0;&#x4F9B;&#x521D;&#x6B65;&#x5EFA;&#x8BAE;&#x3002;&#x201D;</blockquote><p>&#x4E3A;&#x533B;&#x7597;&#x8BCA;&#x65AD;AI&#x52A9;&#x7406;&#x8C03;&#x6574;Prompt&#x9700;&#x8981;&#x52A0;&#x5165;&#x76F8;&#x5173;&#x7684;&#x533B;&#x5B66;&#x672F;&#x8BED;&#x3001;&#x75C7;&#x72B6;&#x548C;&#x8BCA;&#x65AD;&#x8003;&#x8651;&#x56E0;&#x7D20;&#x3002;</p><blockquote>Prompt&#xFF1A;&#x201C;&#x8BF7;&#x63CF;&#x8FF0;&#x60A8;&#x7684;&#x75C7;&#x72B6;&#x548C;&#x533B;&#x7597;&#x5386;&#x53F2;&#xFF0C;AI&#x52A9;&#x7406;&#x5C06;&#x6839;&#x636E;&#x63D0;&#x4F9B;&#x7684;&#x4FE1;&#x606F;&#x63D0;&#x4F9B;&#x521D;&#x6B65;&#x8BC4;&#x4F30;&#x3002;&#x8BF7;&#x6CE8;&#x610F;&#xFF0C;&#x6B64;&#x8BC4;&#x4F30;&#x4E0D;&#x80FD;&#x66FF;&#x4EE3;&#x4E13;&#x4E1A;&#x533B;&#x7597;&#x5EFA;&#x8BAE;&#x3002;&#x5982;&#x679C;&#x60A8;&#x9047;&#x5230;&#x533B;&#x7597;&#x7D27;&#x6025;&#x60C5;&#x51B5;&#xFF0C;&#x8BF7;&#x7ACB;&#x5373;&#x8054;&#x7CFB;&#x6025;&#x6551;&#x670D;&#x52A1;&#x3002;&#x201D;</blockquote><blockquote>&#x7528;&#x6237;&#xFF1A;&#x201C;&#x6211;&#x5934;&#x75DB;&#x3001;&#x53D1;&#x70E7;&#x548C;&#x5589;&#x5499;&#x75DB;&#x3002;&#x201D;</blockquote><p>&#x8C03;&#x6574;&#x540E;&#x7684;Prompt&#x8003;&#x8651;&#x4E86;&#x7528;&#x6237;&#x7684;&#x75C7;&#x72B6;&#xFF0C;&#x5E76;&#x544A;&#x77E5;&#x4ED6;&#x4EEC;&#x8BC4;&#x4F30;&#x7684;&#x5C40;&#x9650;&#x6027;&#x3002;AI&#x52A9;&#x7406;&#x751F;&#x6210;&#x7684;&#x56DE;&#x7B54;&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x63D0;&#x4F9B;&#x7684;&#x4FE1;&#x606F;&#x63D0;&#x4F9B;&#x521D;&#x6B65;&#x5EFA;&#x8BAE;&#xFF1A;</p><blockquote>&#x56DE;&#x7B54;&#xFF1A;&#x201C;&#x6839;&#x636E;&#x60A8;&#x5934;&#x75DB;&#x3001;&#x53D1;&#x70E7;&#x548C;&#x5589;&#x5499;&#x75DB;&#x7684;&#x75C7;&#x72B6;&#xFF0C;&#x53EF;&#x80FD;&#x8868;&#x660E;&#x60A8;&#x60A3;&#x4E86;&#x666E;&#x901A;&#x7684;&#x75C5;&#x6BD2;&#x611F;&#x67D3;&#xFF0C;&#x6BD4;&#x5982;&#x6D41;&#x611F;&#xFF0C;&#x6216;&#x8005;&#x53EF;&#x80FD;&#x662F;&#x5589;&#x708E;&#x3002;&#x8BF7;&#x54A8;&#x8BE2;&#x533B;&#x7597;&#x4E13;&#x4E1A;&#x4EBA;&#x5458;&#x8FDB;&#x884C;&#x786E;&#x5207;&#x8BCA;&#x65AD;&#x548C;&#x9002;&#x5F53;&#x6CBB;&#x7597;&#x975E;&#x5E38;&#x91CD;&#x8981;&#x3002;&#x5728;&#x6B64;&#x671F;&#x95F4;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x4F11;&#x606F;&#xFF0C;&#x4FDD;&#x6301;&#x6C34;&#x5206;&#xFF0C;&#x670D;&#x7528;&#x975E;&#x5904;&#x65B9;&#x6B62;&#x75DB;&#x836F;&#x7F13;&#x89E3;&#x75C7;&#x72B6;&#x3002;&#x5982;&#x679C;&#x60A8;&#x7684;&#x75C7;&#x72B6;&#x52A0;&#x5267;&#x6216;&#x6301;&#x7EED;&#xFF0C;&#x8BF7;&#x5BFB;&#x6C42;&#x533B;&#x7597;&#x6551;&#x52A9;&#x8FDB;&#x884C;&#x8FDB;&#x4E00;&#x6B65;&#x8BC4;&#x4F30;&#x3002;&#x201D;</blockquote><p>&#x901A;&#x8FC7;&#x5C06;Prompt&#x8C03;&#x6574;&#x4E3A;&#x533B;&#x7597;&#x8BCA;&#x65AD;AI&#x52A9;&#x7406;&#xFF0C;&#x56DE;&#x7B54;&#x4E0E;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x7684;&#x5E94;&#x7528;&#x76F8;&#x7B26;&#xFF0C;&#x5E76;&#x63D0;&#x4F9B;&#x4E86;&#x521D;&#x6B65;&#x5EFA;&#x8BAE;&#xFF0C;&#x540C;&#x65F6;&#x5F3A;&#x8C03;&#x4E86;&#x4E13;&#x4E1A;&#x533B;&#x7597;&#x5EFA;&#x8BAE;&#x7684;&#x91CD;&#x8981;&#x6027;&#x3002;</p><h4 id="%E6%A8%A1%E7%B3%8A%E5%A4%84%E7%90%86%E6%88%96%E8%A7%A3%E5%86%B3%E7%9F%9B%E7%9B%BE%E7%9A%84%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5">&#x6A21;&#x7CCA;&#x5904;&#x7406;&#x6216;&#x89E3;&#x51B3;&#x77DB;&#x76FE;&#x7684;&#x7528;&#x6237;&#x8F93;&#x5165;</h4><p>Prompt Engineering&#x9700;&#x8981;&#x5904;&#x7406;&#x4E00;&#x4E9B;&#x6A21;&#x7CCA;&#x7684;&#x6982;&#x5FF5;&#x6216;&#x77DB;&#x76FE;&#x7684;&#x7528;&#x6237;&#x8F93;&#x5165;&#x3002;ChatGPT&#x5FC5;&#x987B;&#x4ED4;&#x7EC6;&#x5904;&#x7406;&#x6B64;&#x7C7B;&#x8F93;&#x5165;&#x5E76;&#x505A;&#x51FA;&#x6709;&#x610F;&#x4E49;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x793A;&#x4F8B;&#x6765;&#x8BF4;&#x660E;&#x5982;&#x4F55;&#x5B9E;&#x73B0;&#xFF1A;</p><p><strong>&#x793A;&#x4F8B;&#xFF1A;&#x9910;&#x5385;&#x63A8;&#x8350;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;</strong></p><blockquote>Prompt&#xFF1A;&#x201C;&#x4F5C;&#x4E3A;&#x9910;&#x5385;&#x63A8;&#x8350;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#xFF0C;&#x5904;&#x7406;&#x6A21;&#x7CCA;&#x6216;&#x77DB;&#x76FE;&#x7684;&#x7528;&#x6237;&#x8F93;&#x5165;&#xFF0C;&#x4EE5;&#x786E;&#x4FDD;&#x51C6;&#x786E;&#x548C;&#x6709;&#x5E2E;&#x52A9;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x201D;</blockquote><blockquote>&#x7528;&#x6237;&#xFF1A;&#x201C;&#x6211;&#x60F3;&#x627E;&#x4E00;&#x5BB6;&#x5728;&#x57CE;&#x91CC;&#x6709;&#x7D20;&#x98DF;&#x548C;&#x725B;&#x6392;&#x9009;&#x9879;&#x7684;&#x9910;&#x5385;&#x3002;&#x201D;</blockquote><p>&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x7528;&#x6237;&#x5E0C;&#x671B;&#x6709;&#x725B;&#x6392;&#x548C;&#x7D20;&#x98DF;&#x9009;&#x9879;&#x3002;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x53EF;&#x4EE5;&#x8FDB;&#x884C;&#x6F84;&#x6E05;&#xFF1A;</p><blockquote>&#x56DE;&#x7B54;&#xFF1A;&#x201C;&#x662F;&#x7684;&#xFF01;&#x6211;&#x5F88;&#x4E50;&#x610F;&#x5E2E;&#x60A8;&#x627E;&#x5230;&#x4E00;&#x5BB6;&#x9910;&#x5385;&#x3002;&#x60A8;&#x66F4;&#x503E;&#x5411;&#x4E8E;&#x7D20;&#x98DF;&#x4E3A;&#x4E3B;&#x7684;&#x9910;&#x5385;&#xFF0C;&#x8FD8;&#x662F;&#x5E0C;&#x671B;&#x6709;&#x591A;&#x79CD;&#x9009;&#x62E9;&#xFF0C;&#x5305;&#x62EC;&#x725B;&#x6392;&#xFF1F;&#x201D;</blockquote><p>&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x8BF7;&#x6C42;&#x6F84;&#x6E05;&#x4EE5;&#x66F4;&#x597D;&#x5730;&#x7406;&#x89E3;&#x7528;&#x6237;&#x7684;&#x8BF7;&#x6C42;&#x5E76;&#x63D0;&#x4F9B;&#x66F4;&#x51C6;&#x786E;&#x7684;&#x63A8;&#x8350;&#x3002;</p><blockquote>&#x7528;&#x6237;&#xFF1A;&#x201C;&#x6211;&#x559C;&#x6B22;&#x4E00;&#x5BB6;&#x6709;&#x7D20;&#x98DF;&#x548C;&#x725B;&#x6392;&#x83DC;&#x80B4;&#x7684;&#x9910;&#x5385;&#x3002;&#x201D;</blockquote><p>&#x7528;&#x6237;&#x660E;&#x786E;&#x4E86;&#x4ED6;&#x4EEC;&#x7684;&#x504F;&#x597D;&#x540E;&#xFF0C;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x53EF;&#x4EE5;&#x56DE;&#x7B54;&#xFF1A;</p><blockquote>&#x56DE;&#x7B54;&#xFF1A;&#x201C;&#x592A;&#x597D;&#x4E86;&#xFF01;&#x6211;&#x63A8;&#x8350;&#x201C;The Grill House&#x201D;&#x9910;&#x5385;&#xFF0C;&#x56E0;&#x4E3A;&#x4ED6;&#x4EEC;&#x63D0;&#x4F9B;&#x7D20;&#x98DF;&#x548C;&#x725B;&#x8089;&#x83DC;&#x80B4;&#x3002;&#x4ED6;&#x4EEC;&#x5728;&#x4E30;&#x5BCC;&#x7684;&#x83DC;&#x5355;&#x4E0A;&#x63D0;&#x4F9B;&#x7F8E;&#x5473;&#x7684;&#x7D20;&#x98DF;&#x548C;&#x725B;&#x8089;&#x83DC;&#x80B4;&#x3002;&#x795D;&#x60A8;&#x7528;&#x9910;&#x6109;&#x5FEB;&#xFF01;&#x201D;</blockquote><p>&#x901A;&#x8FC7;&#x79EF;&#x6781;&#x4E0E;&#x7528;&#x6237;&#x4E92;&#x52A8;&#x5E76;&#x5BFB;&#x6C42;&#x6F84;&#x6E05;&#xFF0C;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x5904;&#x7406;&#x4E86;&#x521D;&#x59CB;&#x67E5;&#x8BE2;&#x7684;&#x6A21;&#x7CCA;&#x6027;&#xFF0C;&#x7406;&#x89E3;&#x4E86;&#x7528;&#x6237;&#x7684;&#x610F;&#x613F;&#xFF0C;&#x5E76;&#x63A8;&#x8350;&#x4E86;&#x7B26;&#x5408;&#x4ED6;&#x4EEC;&#x8981;&#x6C42;&#x7684;&#x9910;&#x5385;&#x3002;</p><p>&#x5904;&#x7406;&#x77DB;&#x76FE;&#x7684;&#x7528;&#x6237;&#x8F93;&#x5165;&#x4E5F;&#x662F;&#x7C7B;&#x4F3C;&#x7684;&#x3002;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x53EF;&#x4EE5;&#x6F84;&#x6E05;&#x7528;&#x6237;&#x7684;&#x76EE;&#x6807;&#xFF0C;&#x5E76;&#x5728;&#x7528;&#x6237;&#x5E0C;&#x671B;&#x83B7;&#x5F97;&#x4EF7;&#x683C;&#x4FBF;&#x5B9C;&#x4F46;&#x5962;&#x534E;&#x7684;&#x9910;&#x5385;&#x65F6;</p><h3 id="%E6%A1%88%E4%BE%8B%EF%BC%9A%E7%9C%9F%E5%AE%9E%E4%B8%96%E7%95%8C%E4%B8%AD%E7%9A%84prompt-engineering">&#x6848;&#x4F8B;&#xFF1A;&#x771F;&#x5B9E;&#x4E16;&#x754C;&#x4E2D;&#x7684;Prompt Engineering</h3><p>&#x5728;&#x5B9E;&#x9645;&#x5E94;&#x7528;&#x4E2D;&#xFF0C;Prompt Engineering&#x4EA7;&#x751F;&#x4E86;&#x79EF;&#x6781;&#x7684;&#x6548;&#x679C;&#x3002;&#x6211;&#x4EEC;&#x6765;&#x770B;&#x770B;&#x5728;&#x4E0D;&#x540C;&#x9886;&#x57DF;&#x7684;&#x51E0;&#x4E2A;Prompt Engineering&#x6848;&#x4F8B;&#xFF1A;</p><h4 id="%E5%AE%A2%E6%88%B7%E6%94%AF%E6%8C%81%E8%81%8A%E5%A4%A9%E6%9C%BA%E5%99%A8%E4%BA%BA">&#x5BA2;&#x6237;&#x652F;&#x6301;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;</h4><p>&#x5BA2;&#x6237;&#x652F;&#x6301;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x63D0;&#x5347;&#x5BA2;&#x6237;&#x670D;&#x52A1;&#x548C;&#x54CD;&#x5E94;&#x901F;&#x5EA6;&#x3002;Prompt Engineering&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x51C6;&#x786E;&#x6027;&#x548C;&#x6548;&#x7387;&#xFF0C;&#x589E;&#x5F3A;&#x5BA2;&#x6237;&#x4F53;&#x9A8C;&#x3002;</p><p>Prompt Engineering&#x5E2E;&#x52A9;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x5B66;&#x4E60;&#x5E76;&#x56DE;&#x5E94;&#x5BA2;&#x6237;&#x8F93;&#x5165;&#xFF0C;&#x4F7F;&#x4EA4;&#x4E92;&#x66F4;&#x52A0;&#x4E2A;&#x6027;&#x5316;&#x548C;&#x6709;&#x6548;&#x3002;</p><p>&#x6848;&#x4F8B;&#xFF1A;<a href="https://www.hubspot.com/products/crm/chatbot-builder?ref=liangbo.me" rel="noopener">HubSpot Chatbot Builder</a>&#xFF0C;&#x53EF;&#x4EE5;&#x9884;&#x7EA6;&#x4F1A;&#x8BAE;&#x3001;&#x94FE;&#x63A5;&#x5230;KB&#xFF0C;&#x5E76;&#x4E0E;&#x5DE5;&#x5355;&#x7CFB;&#x7EDF;&#x96C6;&#x6210;&#x3002;</p><h4 id="%E5%86%85%E5%AE%B9%E5%88%9B%E4%BD%9C%E5%92%8C%E7%BC%96%E8%BE%91">&#x5185;&#x5BB9;&#x521B;&#x4F5C;&#x548C;&#x7F16;&#x8F91;</h4><p>&#x5185;&#x5BB9;&#x521B;&#x4F5C;&#x548C;&#x7F16;&#x8F91;&#x4E5F;&#x9700;&#x8981;Prompt Engineering&#x3002;ChatGPT&#x5E2E;&#x52A9;&#x7528;&#x6237;&#x64B0;&#x5199;&#x4F18;&#x79C0;&#x7684;&#x535A;&#x5BA2;&#x6587;&#x7AE0;&#x3001;&#x7535;&#x5B50;&#x90AE;&#x4EF6;&#x548C;&#x521B;&#x610F;&#x4F5C;&#x54C1;&#x3002;</p><p>&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x5177;&#x4F53;&#x8BE6;&#x7EC6;&#x7684;Prompt&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;ChatGPT&#x5F00;&#x53D1;&#x7B26;&#x5408;&#x4ED6;&#x4EEC;&#x98CE;&#x683C;&#x3001;&#x8BED;&#x8C03;&#x548C;&#x76EE;&#x6807;&#x7684;&#x6587;&#x672C;&#x3002;&#x63D0;&#x793A;&#x53EF;&#x4EE5;&#x63D0;&#x4F9B;&#x80CC;&#x666F;&#x4FE1;&#x606F;&#x3001;&#x793A;&#x4F8B;&#x6216;&#x660E;&#x786E;&#x7684;&#x9650;&#x5236;&#xFF0C;&#x4EE5;&#x786E;&#x4FDD;&#x751F;&#x6210;&#x7684;&#x5185;&#x5BB9;&#x6EE1;&#x8DB3;&#x8981;&#x6C42;&#x3002;</p><p>OpenAI&#x8FDB;&#x884C;&#x4E86;Prompt Engineering&#x7684;&#x7814;&#x7A76;&#xFF0C;&#x4EE5;&#x63D0;&#x9AD8;&#x5185;&#x5BB9;&#x7684;&#x8FDE;&#x8D2F;&#x6027;&#x548C;&#x76F8;&#x5173;&#x6027;&#xFF0C;&#x901A;&#x8FC7;&#x5C1D;&#x8BD5;&#x4E0D;&#x540C;&#x7684;Prompt&#x548C;&#x8282;&#x7701;&#x7F16;&#x8F91;&#x65F6;&#x95F4;&#xFF0C;&#x4F7F;&#x7528;&#x6237;&#x751F;&#x6210;&#x66F4;&#x6709;&#x5438;&#x5F15;&#x529B;&#x548C;&#x4E3B;&#x9898;&#x76F8;&#x5173;&#x7684;&#x6587;&#x672C;&#x3002;</p><h4 id="%E7%89%B9%E5%AE%9A%E9%A2%86%E5%9F%9F%E7%9F%A5%E8%AF%86%E6%A3%80%E7%B4%A2">&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x77E5;&#x8BC6;&#x68C0;&#x7D22;</h4><p>Prompt Engineering&#x53EF;&#x4EE5;&#x9AD8;&#x6548;&#x5730;&#x68C0;&#x7D22;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x7684;&#x77E5;&#x8BC6;&#x3002;ChatGPT&#x53EF;&#x4EE5;&#x8BAD;&#x7EC3;&#x5927;&#x91CF;&#x7684;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x6570;&#x636E;&#xFF0C;&#x4EE5;&#x63D0;&#x4F9B;&#x51C6;&#x786E;&#x548C;&#x76F8;&#x5173;&#x7684;&#x4E3B;&#x9898;&#x4FE1;&#x606F;&#x3002;</p><p>&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5B9A;&#x5236;Prompt&#x548C;&#x6DFB;&#x52A0;&#x5173;&#x952E;&#x8BCD;&#x6216;&#x4E0A;&#x4E0B;&#x6587;&#x6765;&#x5F15;&#x5BFC;ChatGPT&#x68C0;&#x7D22;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x7684;&#x77E5;&#x8BC6;&#x3002;&#x5728;&#x533B;&#x7597;&#x3001;&#x6CD5;&#x5F8B;&#x3001;&#x91D1;&#x878D;&#x548C;&#x6280;&#x672F;&#x7B49;&#x884C;&#x4E1A;&#xFF0C;&#x51C6;&#x786E;&#x7684;&#x4FE1;&#x606F;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;</p><p>Prompt Engineering&#x7B56;&#x7565;&#x4FC3;&#x8FDB;&#x4E86;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x77E5;&#x8BC6;&#x7684;&#x68C0;&#x7D22;&#xFF0C;&#x4E3A;&#x7528;&#x6237;&#x63D0;&#x4F9B;&#x51C6;&#x786E;&#x548C;&#x6700;&#x65B0;&#x7684;&#x4FE1;&#x606F;&#x3002;</p><h4 id="%E4%BA%A4%E4%BA%92%E5%BC%8F%E6%95%85%E4%BA%8B%E5%8F%99%E8%BF%B0%E5%92%8C%E6%B8%B8%E6%88%8F">&#x4EA4;&#x4E92;&#x5F0F;&#x6545;&#x4E8B;&#x53D9;&#x8FF0;&#x548C;&#x6E38;&#x620F;</h4><p>Prompt Engineering&#x4F7F;&#x4EA4;&#x4E92;&#x5F0F;&#x6545;&#x4E8B;&#x53D9;&#x8FF0;&#x548C;&#x6E38;&#x620F;&#x53D8;&#x5F97;&#x66F4;&#x52A0;&#x6709;&#x8DA3;&#x3002;ChatGPT&#x6839;&#x636E;&#x7528;&#x6237;&#x7684;&#x8F93;&#x5165;&#x4F5C;&#x51FA;&#x56DE;&#x5E94;&#x5E76;&#x63A8;&#x52A8;&#x6545;&#x4E8B;&#x53D1;&#x5C55;&#x3002;</p><p>&#x6211;&#x4E4B;&#x524D;&#x53D1;&#x4E86;&#x4E00;&#x7BC7;&#x6587;&#x7AE0;&#x5728;</p>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/chatgpt-e5-9c-a8-e6-b8-b8-e6-88-8f-e8-a1-8c-e4-b8-9a-e4-b8-ad-e7-9a-84-e5-ba-94-e7-94-a8-e5-a2-9e-e5-bc-ba-e7-9a-84-e5-8f-99-e4-ba-8b-e5-8a-9f-e8-83-bd-e5-92-8c-e4-ba-92-e5-8a-a8-e6-80-a7/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ChatGPT&#x5728;&#x6E38;&#x620F;&#x884C;&#x4E1A;&#x4E2D;&#x7684;&#x5E94;&#x7528;&#xFF1A; &#x589E;&#x5F3A;&#x7684;&#x53D9;&#x4E8B;&#x529F;&#x80FD;&#x548C;&#x4E92;&#x52A8;&#x6027;</div><div class="kg-bookmark-description">&#x968F;&#x7740;&#x6E38;&#x620F;&#x884C;&#x4E1A;&#x7684;&#x4E0D;&#x65AD;&#x53D1;&#x5C55;&#xFF0C;&#x7528;&#x4E8E;&#x4E3A;&#x73A9;&#x5BB6;&#x521B;&#x9020;&#x6C89;&#x6D78;&#x5F0F;&#x4E92;&#x52A8;&#x4F53;&#x9A8C;&#x7684;&#x5DE5;&#x5177;&#x548C;&#x6280;&#x672F;&#x4E5F;&#x5728;&#x4E0D;&#x65AD;&#x53D1;&#x5C55;&#x3002;&#x6700;&#x8FD1;&#x5728;&#x4E1A;&#x754C;&#x6380;&#x8D77;&#x6CE2;&#x6F9C;&#x7684;&#x8FD9;&#x6837;&#x4E00;&#x4E2A;&#x5DE5;&#x5177;&#x662F;ChatGPT&#xFF0C;&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x7531;OpenAI&#x5F00;&#x53D1;&#x7684;&#x5F3A;&#x5927;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x3002;&#x5728;&#x8FD9;&#x7BC7;&#x6587;&#x7AE0;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4ED4;&#x7EC6;&#x7814;&#x7A76;ChatGPT&#x662F;&#x5982;&#x4F55;&#x88AB;&#x7528;&#x6765;&#x589E;&#x5F3A;&#x6E38;&#x620F;&#x4E16;&#x754C;&#x4E2D;&#x7684;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/1-m4uyjc7hkwbdqxeivt9vvq-jpeg.jpg" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;"></div></a></figure>
<!--kg-card-end: html-->
<p>&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;Prompt&#x6784;&#x5EFA;&#x6C89;&#x6D78;&#x5F0F;&#x7684;&#x6545;&#x4E8B;&#x548C;&#x6E38;&#x620F;&#xFF0C;&#x5F15;&#x5165;&#x6545;&#x4E8B;&#x5143;&#x7D20;&#x3001;&#x7528;&#x6237;&#x9009;&#x62E9;&#x6216;&#x6E38;&#x620F;&#x673A;&#x5236;&#x3002;Prompt Chain&#x548C;&#x591A;&#x56DE;&#x5408;&#x5BF9;&#x8BDD;&#x5B9E;&#x73B0;&#x4E86;&#x4E30;&#x5BCC;&#x7684;&#x53D9;&#x4E8B;&#x548C;&#x6E38;&#x620F;&#x4EA4;&#x4E92;&#x3002;</p><p>&#x6848;&#x4F8B;&#xFF1A;<a href="https://play.aidungeon.io/main/home?ref=liangbo.me" rel="noopener">OpenAI&#x7684;AI Dungeon</a>&#x5C55;&#x793A;&#x4E86;Prompt Engineering&#x5982;&#x4F55;&#x6539;&#x53D8;&#x4EA4;&#x4E92;&#x5F0F;&#x6545;&#x4E8B;&#x53D9;&#x8FF0;&#x548C;&#x6E38;&#x620F;&#x3002;AI Dungeon&#x5141;&#x8BB8;&#x7528;&#x6237;&#x901A;&#x8FC7;&#x63D0;&#x793A;&#x5171;&#x540C;&#x53C2;&#x4E0E;&#x52A8;&#x6001;&#x7684;&#x53D9;&#x4E8B;&#x3002;</p><h3 id="chatgpt-prompt-engineering%E5%AF%B9%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%9A%84%E6%84%8F%E4%B9%89">ChatGPT Prompt Engineering&#x5BF9;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x610F;&#x4E49;</h3><p>Deep Learning AI&#x6700;&#x8FD1;&#x63A8;&#x51FA;&#x4E86;&#x4E00;&#x95E8;&#x540D;&#x4E3A;&#x201C;ChatGPT Prompt Engineering for Developers&#x201D;&#x7684;&#x8BFE;&#x7A0B;&#xFF0C;&#x7531;Isa Fulford&#x548C;Andrew Ng(&#x5434;&#x6069;&#x8FBE;)&#x4E3B;&#x8BB2;&#x3002;</p>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.deeplearning.ai/short-courses/?continueFlag=40c2724537472cbb3553ce1582e0db80&amp;ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Short Courses</div><div class="kg-bookmark-description">Take your generative AI skills to the next level with short courses from DeepLearning.AI. Enroll today to learn&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-sa6dfcw3n2wtwgtf.png" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;"></div></a></figure>
<!--kg-card-end: html-->
<p>&#x5728;&#x8BFE;&#x7A0B;&#x4E2D;&#xFF0C;&#x4ED6;&#x4EEC;&#x5F3A;&#x8C03;&#x4F5C;&#x4E3A;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x5DE5;&#x5177;&#x7684;&#x5927;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#xFF08;LLMs&#xFF09;&#x7684;&#x6F5C;&#x529B;&#xFF0C;&#x5229;&#x7528;API&#x8C03;&#x7528;LLMs&#x6765;&#x8FDB;&#x884C;&#x5FEB;&#x901F;&#x8F6F;&#x4EF6;&#x5E94;&#x7528;&#x5F00;&#x53D1;&#xFF0C;&#x8FD9;&#x4E00;&#x70B9;&#x76EE;&#x524D;&#x8FD8;&#x672A;&#x5F97;&#x5230;&#x8DB3;&#x591F;&#x7684;&#x91CD;&#x89C6;&#x3002;&#x4ED6;&#x4EEC;&#x7684;&#x76EE;&#x6807;&#x662F;&#x5206;&#x4EAB;&#x6709;&#x6548;&#x5229;&#x7528;LLMs&#x7684;&#x53EF;&#x80FD;&#x6027;&#x548C;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#x3002;&#x8BFE;&#x7A0B;&#x6DB5;&#x76D6;&#x4E86;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7684;&#x63D0;&#x793A;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;&#xFF0C;&#x4EE5;&#x53CA;&#x65E5;&#x5E38;&#x4F7F;&#x7528;&#x6848;&#x4F8B;&#xFF0C;&#x5982;&#x6458;&#x8981;&#x3001;&#x63A8;&#x7406;&#x3001;&#x8F6C;&#x6362;&#x548C;&#x6269;&#x5C55;&#xFF0C;&#x5E76;&#x6F14;&#x793A;&#x4E86;&#x5982;&#x4F55;&#x4F7F;&#x7528;LLM&#x6784;&#x5EFA;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x3002;</p><p>&#x8BFE;&#x7A0B;&#x4E2D;&#x4E3B;&#x8981;&#x4F7F;&#x7528;OpenAI&#x7684;ChatGPT&#x6A21;&#x578B;&#xFF0C;&#x7279;&#x522B;&#x662F;GPT 3.5 Turbo&#xFF0C;&#x5E76;&#x4F7F;&#x7528;Python&#xFF08;&#x5C24;&#x5176;&#x5728;Jupyter Notebook&#x4E2D;&#xFF09;&#x8FDB;&#x884C;&#x6F14;&#x793A;&#x3002;</p><p>&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E9B;&#x5B66;&#x5230;&#x7684;&#x5185;&#x5BB9;&#xFF1A;</p><h4 id="%E4%B8%A4%E4%B8%AA%E5%8E%9F%E5%88%99%EF%BC%9A">&#x4E24;&#x4E2A;&#x539F;&#x5219;&#xFF1A;</h4><p><strong>&#x539F;&#x5219;1&#xFF1A;&#x5199;&#x6E05;&#x6670;&#x660E;&#x786E;&#x7684;&#x6307;&#x4EE4;</strong></p><p>&#x8868;&#x8FBE;&#x6E05;&#x6670;&#x660E;&#x786E;&#x7684;&#x6307;&#x4EE4;&#x81F3;&#x5173;&#x91CD;&#x8981;&#xFF0C;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x5730;&#x5F15;&#x5BFC;&#x6A21;&#x578B;&#xFF0C;&#x5E76;&#x51CF;&#x5C11;&#x51FA;&#x73B0;&#x65E0;&#x5173;&#x6216;&#x9519;&#x8BEF;&#x7684;&#x56DE;&#x7B54;&#x7684;&#x53EF;&#x80FD;&#x6027;&#x3002;&#x907F;&#x514D;&#x5C06;&#x6E05;&#x6670;&#x7684;&#x63D0;&#x793A;&#x4E0E;&#x7B80;&#x77ED;&#x7684;&#x63D0;&#x793A;&#x6DF7;&#x6DC6;&#xFF0C;&#x56E0;&#x4E3A;&#x8F83;&#x957F;&#x7684;&#x63D0;&#x793A;&#x901A;&#x5E38;&#x4F1A;&#x63D0;&#x4F9B;&#x66F4;&#x591A;&#x7684;&#x6E05;&#x6670;&#x5EA6;&#x548C;&#x4E0A;&#x4E0B;&#x6587;&#xFF0C;&#x4ECE;&#x800C;&#x5F97;&#x5230;&#x8BE6;&#x7EC6;&#x548C;&#x76F8;&#x5173;&#x7684;&#x8F93;&#x51FA;&#x3002;</p><ul><li><strong>&#x7B56;&#x7565;1&#xFF1A;</strong>&#x4F7F;&#x7528;&#x5206;&#x9694;&#x7B26;&#x6765;&#x6307;&#x793A;&#x8F93;&#x5165;&#x7684;&#x4E0D;&#x540C;&#x90E8;&#x5206;&#xFF0C;&#x4F8B;&#x5982;&#x4E09;&#x5F15;&#x53F7;&#xFF08;&#x2019;&#x2019;&#x2019;&#xFF09;&#xFF0C;&#x4E09;&#x4E2A;&#x53CD;&#x5F15;&#x53F7;&#xFF08;&#x2019;*&#x2019;&#xFF09;&#xFF0C;&#x4E09;&#x4E2A;&#x77ED;&#x5212;&#x7EBF;&#xFF08;&#x2019;&#x200A;&#x2014;&#x200A;-&#x2019;&#xFF09;&#xFF0C;&#x5C16;&#x62EC;&#x53F7;&#xFF08;&#x2039; &#x203A;&#xFF09;&#xFF0C;&#x6216;XML&#x6807;&#x7B7E;&#xFF08;&#x2039;tag&#x203A; &#x2039;/tag&#x203A;&#xFF09;&#x3002;&#x5206;&#x9694;&#x7B26;&#x8FD8;&#x6709;&#x52A9;&#x4E8E;&#x9632;&#x6B62;Prompt Injection(&#x63D0;&#x793A;&#x6CE8;&#x5165;)&#xFF0C;&#x5373;&#x524D;&#x540E;&#x77DB;&#x76FE;&#x7684;&#x7528;&#x6237;&#x6307;&#x4EE4;&#x53EF;&#x80FD;&#x4F1A;&#x8BEF;&#x5BFC;&#x6A21;&#x578B;&#x3002;</li></ul><pre><code class="language-python">text = f&quot;&quot;&quot; 
You should express what you want a model to do by \  
providing instructions that are as clear and \  
specific as you can possibly make them. \  
This will guide the model towards the desired output, \  
and reduce the chances of receiving irrelevant \  
or incorrect responses. Don&apos;t confuse writing a \  
clear prompt with writing a short prompt. \  
In many cases, longer prompts provide more clarity \  
and context for the model, which can lead to \  
more detailed and relevant outputs. 
&quot;&quot;&quot; 
 
prompt = f&quot;&quot;&quot; 
Summarize the text delimited by triple backticks \  
into a single sentence. 
```{text}``` 
&quot;&quot;&quot;</code></pre><ul><li><strong>&#x7B56;&#x7565;2&#xFF1A;</strong>&#x8BF7;&#x6C42;&#x7ED3;&#x6784;&#x5316;&#x8F93;&#x51FA;&#xFF0C;&#x4F8B;&#x5982;HTML&#x6216;JSON&#x683C;&#x5F0F;&#xFF0C;&#x4EE5;&#x4FBF;&#x66F4;&#x8F7B;&#x677E;&#x5730;&#x89E3;&#x6790;&#x6A21;&#x578B;&#x7684;&#x56DE;&#x7B54;&#x3002;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x4F7F;&#x5F97;&#x6A21;&#x578B;&#x7684;&#x56DE;&#x7B54;&#x66F4;&#x6613;&#x4E8E;&#x5904;&#x7406;&#x548C;&#x63D0;&#x53D6;&#x4FE1;&#x606F;&#x3002;</li></ul><pre><code class="language-python">prompt = f&quot;&quot;&quot; 
Generate a list of three made-up book titles along \ with their authors and genres. 
Provide them in JSON format with the following keys: book_id, title, author, genre. 
&quot;&quot;&quot; 
response = get completion (prompt) 
print (response)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-fiexgfpxlcsnosst-hiyng.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="417" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-fiexgfpxlcsnosst-hiyng.png 600w, https://liangbo.me/content/images/2024/07/1-fiexgfpxlcsnosst-hiyng.png 800w" sizes="(min-width: 720px) 720px"></figure><ul><li><strong>&#x7B56;&#x7565;3&#xFF1A;</strong>&#x9A8C;&#x8BC1;&#x4EFB;&#x52A1;&#x524D;&#x63D0;&#x662F;&#x5426;&#x6EE1;&#x8DB3;&#x3002;&#x9996;&#x5148;Prompt&#x6A21;&#x578B;&#x68C0;&#x67E5;&#x8FD9;&#x4E9B;&#x524D;&#x63D0;&#x6761;&#x4EF6;&#xFF0C;&#x5E76;&#x6307;&#x51FA;&#x4EFB;&#x4F55;&#x672A;&#x6EE1;&#x8DB3;&#x7684;&#x6761;&#x4EF6;&#xFF0C;&#x800C;&#x4E0D;&#x9700;&#x8981;&#x5C1D;&#x8BD5;&#x5B8C;&#x6574;&#x7684;&#x4EFB;&#x52A1;&#x5B8C;&#x6210;&#x3002;&#x8003;&#x8651;&#x6F5C;&#x5728;&#x7684;&#x8FB9;&#x7F18;&#x60C5;&#x51B5;&#xFF0C;&#x786E;&#x4FDD;&#x6A21;&#x578B;&#x53EF;&#x4EE5;&#x9002;&#x5F53;&#x5730;&#x5904;&#x7406;&#x5B83;&#x4EEC;&#xFF0C;&#x907F;&#x514D;&#x51FA;&#x73B0;&#x610F;&#x5916;&#x9519;&#x8BEF;&#x6216;&#x7ED3;&#x679C;&#x3002;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x589E;&#x52A0;&#x6A21;&#x578B;&#x7684;&#x53EF;&#x9760;&#x6027;&#x548C;&#x9C81;&#x68D2;&#x6027;&#x3002;</li></ul><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-f_1u14qrzt4m1yfyyuqjjw.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="656" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-f_1u14qrzt4m1yfyyuqjjw.png 600w, https://liangbo.me/content/images/2024/07/1-f_1u14qrzt4m1yfyyuqjjw.png 800w" sizes="(min-width: 720px) 720px"></figure><ul><li><strong>&#x7B56;&#x7565;4&#xFF1A;</strong>&#x5229;&#x7528;few-shot&#x63D0;&#x793A;&#xFF0C;&#x5728;&#x8981;&#x6C42;&#x6A21;&#x578B;&#x6267;&#x884C;&#x6240;&#x9700;&#x4EFB;&#x52A1;&#x4E4B;&#x524D;&#xFF0C;&#x63D0;&#x4F9B;&#x5DF2;&#x6210;&#x529F;&#x6267;&#x884C;&#x4EFB;&#x52A1;&#x7684;&#x793A;&#x4F8B;&#x3002;&#x901A;&#x8FC7;&#x793A;&#x4F8B;&#xFF0C;&#x8BA9;&#x6A21;&#x578B;&#x4E86;&#x89E3;&#x5982;&#x4F55;&#x5904;&#x7406;&#x7C7B;&#x4F3C;&#x7684;&#x4EFB;&#x52A1;&#xFF0C;&#x5E76;&#x4E3A;&#x5176;&#x63D0;&#x4F9B;&#x5FC5;&#x8981;&#x7684;&#x6307;&#x5BFC;&#x3002;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x52A0;&#x901F;&#x6A21;&#x578B;&#x7684;&#x5B66;&#x4E60;&#x548C;&#x9002;&#x5E94;&#x6027;&#xFF0C;&#x4F7F;&#x5176;&#x66F4;&#x5BB9;&#x6613;&#x7406;&#x89E3;&#x7528;&#x6237;&#x7684;&#x610F;&#x56FE;&#x5E76;&#x751F;&#x6210;&#x51C6;&#x786E;&#x7684;&#x54CD;&#x5E94;&#x3002;</li></ul><pre><code class="language-python">prompt = f&quot;&quot;&quot; 
Your task is to answer in a consistent style. 
 
&lt;child&gt;: Teach me about patience. 
 
&lt;grandparent&gt;: The river that carves the deepest \ valley flows from a modest spring; the \ grandest symphony originates from a single note; \ the most intricate tapestry begins with a solitary thread. 
 
&lt;child&gt;: Teach me about resilience. 
&quot;&quot;&quot; 
response = get completion (prompt) 
print (response)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-tdvlf0-xb4radz3e3dissa.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="112" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-tdvlf0-xb4radz3e3dissa.png 600w, https://liangbo.me/content/images/2024/07/1-tdvlf0-xb4radz3e3dissa.png 800w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E5%8E%9F%E5%88%992%EF%BC%9A%E7%BB%99%E6%A8%A1%E5%9E%8B%E8%B6%B3%E5%A4%9F%E7%9A%84%E6%80%9D%E8%80%83%E6%97%B6%E9%97%B4">&#x539F;&#x5219;2&#xFF1A;&#x7ED9;&#x6A21;&#x578B;&#x8DB3;&#x591F;&#x7684;&#x601D;&#x8003;&#x65F6;&#x95F4;</h4><p>&#x5141;&#x8BB8;&#x6A21;&#x578B;&#x6709;&#x8DB3;&#x591F;&#x7684;&#x65F6;&#x95F4;&#x6765;&#x601D;&#x8003;&#x548C;&#x63A8;&#x7406;&#x95EE;&#x9898;&#xFF0C;&#x4EE5;&#x9632;&#x6B62;&#x63A8;&#x7406;&#x9519;&#x8BEF;&#x548C;&#x8FC7;&#x65E9;&#x7684;&#x7ED3;&#x8BBA;&#x3002;&#x590D;&#x6742;&#x7684;&#x4EFB;&#x52A1;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x9010;&#x6B65;&#x6307;&#x5BFC;&#x6216;&#x4E00;&#x7CFB;&#x5217;&#x76F8;&#x5173;&#x7684;&#x63A8;&#x7406;&#x6B65;&#x9AA4;&#xFF0C;&#x7136;&#x540E;&#x6A21;&#x578B;&#x624D;&#x80FD;&#x63D0;&#x4F9B;&#x6700;&#x7EC8;&#x7684;&#x7B54;&#x6848;&#x3002;</p><ul><li><strong>&#x7B56;&#x7565;1&#xFF1A;</strong>&#x660E;&#x786E;&#x4EFB;&#x52A1;&#x7684;&#x5B8C;&#x6210;&#x6B65;&#x9AA4;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x5F53;&#x76F4;&#x63A5;&#x56DE;&#x7B54;&#x56F0;&#x96BE;&#x65F6;&#x3002;&#x5C31;&#x50CF;&#x4EBA;&#x7C7B;&#x89E3;&#x51B3;&#x95EE;&#x9898;&#x4E00;&#x6837;&#xFF0C;&#x8981;&#x6C42;&#x6A21;&#x578B;&#x5728;&#x63D0;&#x4F9B;&#x6700;&#x7EC8;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x4E4B;&#x524D;&#x8FDB;&#x884C;&#x4E00;&#x7CFB;&#x5217;&#x9002;&#x5F53;&#x7684;&#x63A8;&#x7406;&#x6B65;&#x9AA4;&#x3002;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x786E;&#x4FDD;&#x6A21;&#x578B;&#x5728;&#x751F;&#x6210;&#x7B54;&#x6848;&#x4E4B;&#x524D;&#x8FDB;&#x884C;&#x5145;&#x5206;&#x7684;&#x601D;&#x8003;&#x548C;&#x63A8;&#x7406;&#xFF0C;&#x4ECE;&#x800C;&#x63D0;&#x9AD8;&#x5176;&#x54CD;&#x5E94;&#x7684;&#x51C6;&#x786E;&#x6027;&#x548C;&#x5408;&#x7406;&#x6027;&#x3002;</li></ul><pre><code class="language-python">prompt 2 = f&quot;&quot;&quot; 
Your task is to perform the following actions: 
1 - Summarize the following text delimited by &lt;&gt; with 1 sentence. 
2 - Translate the summary into French. 
3 - List each name in the French summary. 
4 - Output a json object that contains the following keys: french_ summary, num names. 
 
Use the following format: 
Text: &lt;text to summarize&gt; 
Summary: &lt;summary&gt; 
Translation: &lt;summary translation&gt; 
Names: &lt;list of names in Italian summary&gt; 
Output JSON: &lt;ison with summary and num names&gt; 
 
Text: &lt;{text!&gt; 
response = get_completion (prompt_2) 
print &quot;InCompletion for prompt 2:&quot;) 
print (response)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-bn4u1-40g-asm3uoa3whtq.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="255" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-bn4u1-40g-asm3uoa3whtq.png 600w, https://liangbo.me/content/images/2024/07/1-bn4u1-40g-asm3uoa3whtq.png 800w" sizes="(min-width: 720px) 720px"></figure><ul><li><strong>&#x7B56;&#x7565;2&#xFF1A;</strong>&#x6307;&#x793A;&#x6A21;&#x578B;&#x5728;&#x5F97;&#x51FA;&#x7ED3;&#x8BBA;&#x4E4B;&#x524D;&#x627E;&#x5230;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x3002;&#x660E;&#x786E;&#x5730;&#x6307;&#x793A;&#x6A21;&#x578B;&#x5728;&#x63D0;&#x4F9B;&#x7B54;&#x6848;&#x4E4B;&#x524D;&#x8FDB;&#x884C;&#x63A8;&#x7406;&#x548C;&#x601D;&#x8003;&#x901A;&#x5E38;&#x4F1A;&#x4EA7;&#x751F;&#x66F4;&#x597D;&#x7684;&#x7ED3;&#x679C;&#x3002;&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x8BA9;&#x6A21;&#x578B;&#x6709;&#x8DB3;&#x591F;&#x7684;&#x65F6;&#x95F4;&#x6765;&#x5904;&#x7406;&#x548C;&#x5F97;&#x51FA;&#x51C6;&#x786E;&#x7684;&#x54CD;&#x5E94;&#x3002;</li></ul><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-h9qf8qlwl03vaxufq1lmrq-png.jpg" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="944" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-h9qf8qlwl03vaxufq1lmrq-png.jpg 600w, https://liangbo.me/content/images/2024/07/1-h9qf8qlwl03vaxufq1lmrq-png.jpg 800w" sizes="(min-width: 720px) 720px"></figure><p>&#x901A;&#x8FC7;&#x9075;&#x5FAA;&#x8FD9;&#x4E9B;&#x539F;&#x5219;&#x548C;&#x7B56;&#x7565;&#xFF0C;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x53EF;&#x4EE5;&#x4F18;&#x5316;&#x4ED6;&#x4EEC;&#x5BF9;LLM&#x7684;&#x4F7F;&#x7528;&#xFF0C;&#x5E76;&#x5728;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x4E2D;&#x5B9E;&#x73B0;&#x9884;&#x671F;&#x7684;&#x7ED3;&#x679C;&#x3002;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;&#x6A21;&#x578B;&#x7684;&#x6027;&#x80FD;&#x548C;&#x7075;&#x6D3B;&#x6027;&#xFF0C;&#x4ECE;&#x800C;&#x66F4;&#x597D;&#x5730;&#x6EE1;&#x8DB3;&#x7528;&#x6237;&#x7684;&#x9700;&#x6C42;&#x3002;</p><h4 id="%E8%BF%AD%E4%BB%A3%E5%BC%8Fprompt%E5%BC%80%E5%8F%91%EF%BC%9A">&#x8FED;&#x4EE3;&#x5F0F;Prompt&#x5F00;&#x53D1;&#xFF1A;</h4><p>&#x8FED;&#x4EE3;&#x5F0F;Prompt&#x5F00;&#x53D1;&#x7684;&#x8FC7;&#x7A0B;&#x7C7B;&#x4F3C;&#x4E8E;&#x7F16;&#x7A0B;&#x5B9E;&#x8DF5;&#x3002;&#x5B83;&#x6D89;&#x53CA;&#x5C1D;&#x8BD5;&#x4E0D;&#x540C;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x6839;&#x636E;&#x9700;&#x8981;&#x8FDB;&#x884C;&#x6539;&#x8FDB;&#x548C;&#x91CD;&#x8BD5;&#x3002;&#x4EE5;&#x4E0B;&#x662F;&#x6D89;&#x53CA;&#x7684;&#x6B65;&#x9AA4;&#xFF1A;</p><ol><li>&#x5C1D;&#x8BD5;&#x4E00;&#x4E2A;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x3002;</li><li>&#x5206;&#x6790;&#x7ED3;&#x679C;&#xFF0C;&#x627E;&#x51FA;&#x4E0E;&#x9884;&#x671F;&#x7ED3;&#x679C;&#x4E0D;&#x7B26;&#x7684;&#x5730;&#x65B9;&#x3002;</li><li>&#x6F84;&#x6E05;&#x8BF4;&#x660E;&#x5E76;&#x7ED9;&#x4E88;&#x66F4;&#x591A;&#x65F6;&#x95F4;&#x8FDB;&#x884C;&#x601D;&#x8003;&#x3002;</li><li>&#x4F7F;&#x7528;&#x4E00;&#x6279;&#x793A;&#x4F8B;&#x6765;&#x4F18;&#x5316;Prompt&#x3002;</li><li>&#x91CD;&#x590D;&#x8FD9;&#x4E2A;&#x8FC7;&#x7A0B;&#x3002;</li></ol><p>&#x5728;&#x8BFE;&#x7A0B;&#x793A;&#x4F8B;&#x4E2D;&#xFF0C;&#x6559;&#x5E08;&#x4EEC;&#x63D0;&#x51FA;&#x4E86;&#x4E00;&#x4E2A;&#x6848;&#x4F8B;&#x7814;&#x7A76;&#xFF0C;&#x6D89;&#x53CA;&#x4ECE;&#x4EA7;&#x54C1;&#x8BF4;&#x660E;&#x4E66;&#x4E2D;&#x751F;&#x6210;&#x8425;&#x9500;&#x6587;&#x6848;&#x3002;&#x4ED6;&#x4EEC;&#x901A;&#x8FC7;&#x5728;&#x6BCF;&#x4E00;&#x6B65;&#x4E2D;&#x4F18;&#x5316;Prompt&#x6765;&#x8FED;&#x4EE3;&#x5F0F;&#x5730;&#x89E3;&#x51B3;&#x4E86;&#x4E09;&#x4E2A;&#x5173;&#x952E;&#x95EE;&#x9898;&#xFF1A;</p><p>&#x95EE;&#x9898;1&#xFF1A;&#x6587;&#x672C;&#x8FC7;&#x957F; -&gt; &#x89E3;&#x51B3;&#x65B9;&#x6848;&#xFF1A;&#x5C06;&#x6587;&#x672C;&#x9650;&#x5236;&#x5728;&#x6700;&#x591A;50&#x4E2A;&#x5B57;&#x4EE5;&#x5185;&#x3002;</p><p>&#x95EE;&#x9898;2&#xFF1A;&#x5173;&#x6CE8;&#x4E0D;&#x76F8;&#x5173;&#x7684;&#x7EC6;&#x8282; -&gt; &#x89E3;&#x51B3;&#x65B9;&#x6848;&#xFF1A;&#x52A0;&#x5165;&#x76EE;&#x6807;&#x53D7;&#x4F17;&#xFF0C;&#x6BD4;&#x5982;&#x201C;&#x63CF;&#x8FF0;&#x9002;&#x7528;&#x4E8E;&#x5BB6;&#x5177;&#x96F6;&#x552E;&#x5546;&#x2026;&#x201D;</p><p>&#x95EE;&#x9898;3&#xFF1A;&#x7F3A;&#x5C11;&#x5C3A;&#x5BF8;&#x8868; -&gt; &#x89E3;&#x51B3;&#x65B9;&#x6848;&#xFF1A;&#x5C06;&#x6240;&#x6709;&#x5185;&#x5BB9;&#x683C;&#x5F0F;&#x5316;&#x4E3A;HTML&#x3002;</p><h4 id="%E5%85%B7%E5%A4%87%E7%9A%84%E8%83%BD%E5%8A%9B%EF%BC%9A">&#x5177;&#x5907;&#x7684;&#x80FD;&#x529B;&#xFF1A;</h4><p><strong>&#x9605;&#x8BFB;&#x603B;&#x7ED3;&#xFF1A;</strong></p><p>&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x5DF2;&#x88AB;&#x5E7F;&#x6CDB;&#x7528;&#x4E8E;&#x6587;&#x672C;&#x6458;&#x8981;&#x3002;&#x60A8;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x5177;&#x4F53;&#x7684;Prompt&#x6765;&#x8BF7;&#x6C42;&#x5173;&#x4E8E;&#x4EF7;&#x683C;&#x548C;&#x4EF7;&#x503C;&#x7684;&#x6458;&#x8981;&#x3002;</p><pre><code class="language-python">prompt = f&quot;&quot;&quot; 
Your task is to generate a short summary of a product \ 
review from an ecommerce site to give feedback to the \ 
pricing deparmtment, responsible for determining the \ 
price of the product.   
 
Summarize the review below, delimited by triple  
backticks, in at most 30 words, and focusing on any aspects \ 
that are relevant to the price and perceived value.  
 
Review: ```{prod_review}``` 
&quot;&quot;&quot;</code></pre><p>&#x800C;&#x4E14;&#x60A8;&#x8FD8;&#x53EF;&#x4EE5;&#x7F16;&#x5199;&#x4E00;&#x4E2A;&#x5FAA;&#x73AF;&#x6765;&#x5BF9;&#x591A;&#x4E2A;&#x6587;&#x672C;&#x8FDB;&#x884C;&#x603B;&#x7ED3;&#xFF1A;</p><pre><code class="language-python">reviews = [review_1, review_2, review_3, review_4] 
 
for i in range(len(reviews)): 
    prompt = f&quot;&quot;&quot; 
    Your task is to generate a short summary of a product \  
    review from an ecommerce site.  
 
    Summarize the review below, delimited by triple \ 
    backticks in at most 20 words.  
 
    Review: ```{reviews[i]}``` 
    &quot;&quot;&quot; 
 
    response = get_completion(prompt) 
    print(i, response, &quot;\n&quot;)</code></pre><p><strong>&#x63A8;&#x7406;&#xFF1A;</strong></p><p>&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x53EF;&#x4EE5;&#x5728;&#x6CA1;&#x6709;&#x7279;&#x5B9A;&#x8BAD;&#x7EC3;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x63A8;&#x65AD;&#x51FA;&#x5404;&#x79CD;&#x65B9;&#x9762;&#x3002;&#x5B83;&#x4EEC;&#x53EF;&#x4EE5;&#x786E;&#x5B9A;&#x60C5;&#x611F;&#x3001;&#x60C5;&#x7EEA;&#xFF0C;&#x63D0;&#x53D6;&#x4EA7;&#x54C1;&#x548C;&#x516C;&#x53F8;&#x540D;&#x79F0;&#xFF0C;&#x627E;&#x51FA;&#x4E3B;&#x9898;&#x7B49;&#x7B49;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-hlg8ir8jcl3r6t2xfy6koa.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="665" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-hlg8ir8jcl3r6t2xfy6koa.png 600w, https://liangbo.me/content/images/2024/07/1-hlg8ir8jcl3r6t2xfy6koa.png 800w" sizes="(min-width: 720px) 720px"></figure><p><strong>&#x8F6C;&#x6362;&#xFF1A;</strong></p><p>&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x5728;&#x6587;&#x672C;&#x8F6C;&#x6362;&#x4EFB;&#x52A1;&#x65B9;&#x9762;&#x8868;&#x73B0;&#x51FA;&#x8272;&#xFF0C;&#x5305;&#x62EC;&#x8BED;&#x8A00;&#x7FFB;&#x8BD1;&#x3001;&#x62FC;&#x5199;&#x548C;&#x8BED;&#x6CD5;&#x68C0;&#x67E5;&#x3001;&#x8BED;&#x6C14;&#x8C03;&#x6574;&#x4EE5;&#x53CA;&#x683C;&#x5F0F;&#x8F6C;&#x6362;&#x3002;</p><pre><code class="language-python">prompt = f&quot;&quot;&quot; 
Translate the following text to French and Spanish and English pirate: \ 
```I want to order a basketball``` 
&quot;&quot;&quot; 
 
response = get completion (prompt) 
print response</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-2wzpe-nikim6ltt7ybzkdg.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="84" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-2wzpe-nikim6ltt7ybzkdg.png 600w, https://liangbo.me/content/images/2024/07/1-2wzpe-nikim6ltt7ybzkdg.png 800w" sizes="(min-width: 720px) 720px"></figure><p><strong>&#x6269;&#x5C55;&#xFF1A;</strong></p><p>&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x53EF;&#x4EE5;&#x751F;&#x6210;&#x6839;&#x636E;&#x6BCF;&#x4F4D;&#x5BA2;&#x6237;&#x7684;&#x8BC4;&#x4EF7;&#x5B9A;&#x5236;&#x7684;&#x4E2A;&#x6027;&#x5316;&#x5BA2;&#x6237;&#x670D;&#x52A1;&#x7535;&#x5B50;&#x90AE;&#x4EF6;&#x3002;</p><pre><code class="language-python">prompt = f&quot;&quot;&quot; 
You are a customer service AI assistant. 
Your task is to send an email reply to a valued customer. 
Given the customer email delimited by ```,\ 
Generate a reply to thank the customer for their review. 
If the sentiment is positive or neutral, thank them for \ 
their review. 
If the sentiment is negative, apologize and suggest that \ 
they can reach out to customer service. 
Make sure to use specific details from the review. 
Write in a concise and professional tone. 
Sign the email as `AI customer agent`. 
Customer review: ```{review}``` 
Review sentiment: (sentiment} 
&quot;&quot;&quot; 
 
response = get completion (prompt, temperature=0.7) 
print(response)</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-zjieavbivk17l1eaiyebra.png" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="220" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-zjieavbivk17l1eaiyebra.png 600w, https://liangbo.me/content/images/2024/07/1-zjieavbivk17l1eaiyebra.png 800w" sizes="(min-width: 720px) 720px"></figure><p><strong>&#x5F00;&#x53D1;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#xFF1A;</strong></p><p>&#x5229;&#x7528;&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x5176;&#x4E2D;&#x4E00;&#x4E2A;&#x4EE4;&#x4EBA;&#x7740;&#x8FF7;&#x7684;&#x65B9;&#x9762;&#x662F;&#x53EF;&#x4EE5;&#x8F7B;&#x677E;&#x521B;&#x5EFA;&#x5B9A;&#x5236;&#x7684;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x3002;ChatGPT&#x7684;&#x7F51;&#x9875;&#x754C;&#x9762;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x7531;&#x5F3A;&#x5927;&#x7684;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x652F;&#x6301;&#x7684;&#x5BF9;&#x8BDD;&#x5E73;&#x53F0;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x771F;&#x6B63;&#x4EE4;&#x4EBA;&#x5174;&#x594B;&#x7684;&#x662F;&#x5229;&#x7528;&#x5927;&#x578B;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x80FD;&#x529B;&#x6765;&#x6784;&#x5EFA;&#x81EA;&#x5DF1;&#x7684;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#xFF0C;&#x6BD4;&#x5982;&#x7528;&#x4E8E;&#x9910;&#x5385;&#x7684;AI&#x5BA2;&#x670D;&#x4EE3;&#x7406;&#x6216;AI&#x70B9;&#x9910;&#x673A;&#x5668;&#x4EBA;&#x3002;</p><p>&#x5728;&#x8FD9;&#x4E2A;&#x6848;&#x4F8B;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x8FD9;&#x4E2A;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x79F0;&#x4E3A;&#x201C;OrderBot&#x201D;&#x3002;&#x76EE;&#x6807;&#x662F;&#x81EA;&#x52A8;&#x6536;&#x96C6;&#x7528;&#x6237;&#x63D0;&#x793A;&#x548C;&#x52A9;&#x624B;&#x56DE;&#x5E94;&#xFF0C;&#x4EE5;&#x6784;&#x5EFA;&#x8FD9;&#x4E2A;&#x9AD8;&#x6548;&#x7684;&#x201C;OrderBot&#x201D;&#x3002;&#x4E3B;&#x8981;&#x6B65;&#x9AA4;&#x662F;&#x5B9A;&#x4E49;&#x4E00;&#x4E2A;&#x5B9E;&#x7528;&#x51FD;&#x6570;&#x3002;&#x8BE5;&#x51FD;&#x6570;&#x5E2E;&#x52A9;&#x6536;&#x96C6;&#x7528;&#x6237;&#x6D88;&#x606F;&#xFF0C;&#x6D88;&#x9664;&#x624B;&#x52A8;&#x8F93;&#x5165;&#x7684;&#x9700;&#x8981;&#x3002;&#x4ECE;&#x7528;&#x6237;&#x754C;&#x9762;&#x6536;&#x96C6;&#x7684;&#x63D0;&#x793A;&#x7136;&#x540E;&#x88AB;&#x6DFB;&#x52A0;&#x5230;&#x4E00;&#x4E2A;&#x540D;&#x4E3A;&#x201C;context&#x201D;&#x7684;&#x5217;&#x8868;&#x4E2D;&#x3002;&#x968F;&#x540E;&#xFF0C;&#x5BF9;&#x4E8E;&#x6BCF;&#x4E00;&#x6B21;&#x4EA4;&#x4E92;&#xFF0C;&#x4F7F;&#x7528;&#x8FD9;&#x4E2A;&#x4E0A;&#x4E0B;&#x6587;&#x6765;&#x8C03;&#x7528;&#x6A21;&#x578B;&#x3002;</p><p>&#x6A21;&#x578B;&#x7684;&#x56DE;&#x5E94;&#x88AB;&#x52A0;&#x5165;&#x5230;&#x4E0A;&#x4E0B;&#x6587;&#x4E2D;&#xFF0C;&#x786E;&#x4FDD;&#x6A21;&#x578B;&#x548C;&#x7528;&#x6237;&#x7684;&#x6D88;&#x606F;&#x90FD;&#x88AB;&#x4FDD;&#x7559;&#xFF0C;&#x6709;&#x52A9;&#x4E8E;&#x4E0A;&#x4E0B;&#x6587;&#x7684;&#x4E0D;&#x65AD;&#x589E;&#x957F;&#x3002;&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#x7684;&#x79EF;&#x7D2F;&#x4F7F;&#x5F97;&#x6A21;&#x578B;&#x80FD;&#x591F;&#x786E;&#x5B9A;&#x9002;&#x5F53;&#x7684;&#x884C;&#x52A8;&#x3002;</p><p>&#x6700;&#x540E;&#xFF0C;&#x8BBE;&#x7F6E;&#x548C;&#x6267;&#x884C;&#x7528;&#x6237;&#x754C;&#x9762;&#x6765;&#x663E;&#x793A;OrderBot&#x3002;&#x4E0A;&#x4E0B;&#x6587;&#x4E2D;&#x5305;&#x542B;&#x7CFB;&#x7EDF;&#x6D88;&#x606F;&#xFF0C;&#x5176;&#x4E2D;&#x5305;&#x542B;&#x83DC;&#x5355;&#xFF0C;&#x5B83;&#x5728;&#x4E0E;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x6BCF;&#x6B21;&#x4EA4;&#x4E92;&#x4E2D;&#x4FDD;&#x6301;&#x4E00;&#x81F4;&#x3002;&#x968F;&#x7740;&#x66F4;&#x591A;&#x7684;&#x4EA4;&#x4E92;&#x53D1;&#x751F;&#xFF0C;&#x4E0A;&#x4E0B;&#x6587;&#x4E0D;&#x65AD;&#x53D1;&#x5C55;&#xFF0C;&#x4FDD;&#x6301;&#x5168;&#x9762;&#x7684;&#x5BF9;&#x8BDD;&#x8BB0;&#x5F55;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-8qbcyb9d7wtszee0c9w9zg-png.jpg" class="kg-image" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;" loading="lazy" width="800" height="932" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-8qbcyb9d7wtszee0c9w9zg-png.jpg 600w, https://liangbo.me/content/images/2024/07/1-8qbcyb9d7wtszee0c9w9zg-png.jpg 800w" sizes="(min-width: 720px) 720px"></figure><h3 id="%E6%80%BB%E7%BB%93">&#x603B;&#x7ED3;</h3><p>Prompt Engineering&#x5BF9;&#x4E8E;ChatGPT&#x6765;&#x8BF4;&#x662F;&#x4E00;&#x4E2A;Game-Changer&#x3002;&#x901A;&#x8FC7;&#x638C;&#x63E1;&#x8FD9;&#x4E00;&#x6280;&#x5DE7;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x5851;&#x9020;&#x548C;&#x5F15;&#x5BFC;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x56DE;&#x5E94;&#xFF0C;&#x4EE5;&#x6EE1;&#x8DB3;&#x60A8;&#x7684;&#x7279;&#x5B9A;&#x9700;&#x6C42;&#x3002;</p><p>Prompt Engineering&#x7684;&#x672A;&#x6765;&#x524D;&#x666F;&#x4E00;&#x7247;&#x5149;&#x660E;&#xFF0C;&#x6301;&#x7EED;&#x7684;&#x7814;&#x7A76;&#x548C;&#x5408;&#x4F5C;&#x63A8;&#x52A8;&#x7740;&#x8BE5;&#x9886;&#x57DF;&#x7684;&#x521B;&#x65B0;&#x3002;&#x968F;&#x7740;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x4E0D;&#x65AD;&#x53D1;&#x5C55;&#xFF0C;Prompt Engineering&#x5C06;&#x5728;&#x53D1;&#x6398;&#x5B83;&#x4EEC;&#x7684;&#x5168;&#x90E8;&#x6F5C;&#x529B;&#x65B9;&#x9762;&#x53D1;&#x6325;&#x5173;&#x952E;&#x4F5C;&#x7528;&#x3002;</p><p>ChatGPT&#x7684;Prompt Engineering&#x5F00;&#x542F;&#x4E86;&#x65E0;&#x9650;&#x7684;&#x53EF;&#x80FD;&#x6027;&#x3002;&#x901A;&#x8FC7;&#x5B9E;&#x65BD;&#x6709;&#x6548;&#x7684;&#x6280;&#x5DE7;&#x548C;&#x63A2;&#x7D22;&#x5148;&#x8FDB;&#x7684;&#x7B56;&#x7565;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x6539;&#x53D8;&#x4E0E;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x4E92;&#x52A8;&#x65B9;&#x5F0F;&#x3002;Prompt Engineering&#x6539;&#x53D8;&#x4E86;&#x5BA2;&#x6237;&#x670D;&#x52A1;&#x804A;&#x5929;&#x673A;&#x5668;&#x4EBA;&#x3001;&#x5185;&#x5BB9;&#x5F00;&#x53D1;&#x548C;&#x6E38;&#x620F;&#xFF0C;&#x4FC3;&#x8FDB;&#x4E86;AI&#x4E0E;&#x4EBA;&#x7C7B;&#x7684;&#x534F;&#x4F5C;&#x3002;</p><h3 id="faq">FAQ</h3><h4 id="%E4%BB%80%E4%B9%88%E6%98%AF%E6%8F%90prompt-engineering%EF%BC%9F">&#x4EC0;&#x4E48;&#x662F;&#x63D0;Prompt Engineering&#xFF1F;</h4><p>Prompt Engineering&#x662F;&#x8BBE;&#x8BA1;&#x6709;&#x6548;&#x7684;Prompt&#x548C;&#x6307;&#x4EE4;&#xFF0C;&#x7528;&#x4E8E;&#x5C06;&#x7528;&#x6237;&#x610F;&#x56FE;&#x4F20;&#x8FBE;&#x7ED9;&#x50CF;ChatGPT&#x8FD9;&#x6837;&#x7684;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x7684;&#x8FC7;&#x7A0B;&#x3002;&#x5B83;&#x6709;&#x52A9;&#x4E8E;&#x4ECE;&#x6A21;&#x578B;&#x83B7;&#x53D6;&#x51C6;&#x786E;&#x3001;&#x76F8;&#x5173;&#x548C;&#x6709;&#x7528;&#x7684;&#x54CD;&#x5E94;&#x3002;</p><h4 id="%E4%B8%BA%E4%BB%80%E4%B9%88prompt-engineering%E5%AF%B9chatgpt%E5%BE%88%E9%87%8D%E8%A6%81%EF%BC%9F">&#x4E3A;&#x4EC0;&#x4E48;Prompt Engineering&#x5BF9;ChatGPT&#x5F88;&#x91CD;&#x8981;&#xFF1F;</h4><p>Prompt Engineering&#x5BF9;&#x4E8E;&#x6700;&#x5927;&#x5316;ChatGPT&#x7684;&#x6548;&#x679C;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;&#x901A;&#x8FC7;&#x8BBE;&#x8BA1;&#x7CBE;&#x5FC3;&#x5236;&#x4F5C;&#x7684;Prompt&#xFF0C;&#x7528;&#x6237;&#x53EF;&#x4EE5;&#x5F15;&#x5BFC;&#x6A21;&#x578B;&#x751F;&#x6210;&#x66F4;&#x51C6;&#x786E;&#x3001;&#x76F8;&#x5173;&#x7684;&#x8F93;&#x51FA;&#xFF0C;&#x4F7F;&#x5176;&#x6210;&#x4E3A;&#x5404;&#x79CD;&#x5E94;&#x7528;&#x7684;&#x6709;&#x4EF7;&#x503C;&#x7684;&#x5DE5;&#x5177;&#x3002;</p><h4 id="%E4%BC%98%E7%A7%80%E7%9A%84prompt-engineering%E6%8A%80%E5%B7%A7%E6%9C%89%E5%93%AA%E4%BA%9B%EF%BC%9F">&#x4F18;&#x79C0;&#x7684;Prompt Engineering&#x6280;&#x5DE7;&#x6709;&#x54EA;&#x4E9B;&#xFF1F;</h4><p>&#x4F18;&#x79C0;&#x7684;Prompt Engineering&#x6280;&#x5DE7;&#x5305;&#x62EC;&#xFF1A;</p><ul><li>&#x63D0;&#x4F9B;&#x660E;&#x786E;&#x548C;&#x5177;&#x4F53;&#x7684;&#x6307;&#x793A;</li><li>&#x4F7F;&#x7528;&#x660E;&#x786E;&#x7684;&#x7EA6;&#x675F;&#x6761;&#x4EF6;</li><li>&#x5C1D;&#x8BD5;&#x4F7F;&#x7528;&#x4E0A;&#x4E0B;&#x6587;&#x548C;&#x793A;&#x4F8B;</li><li>&#x5229;&#x7528;System 1&#x548C;System 2&#x95EE;&#x9898;</li><li>&#x63A7;&#x5236;&#x8F93;&#x51FA;&#x7684;&#x5197;&#x957F;&#x7A0B;&#x5EA6;</li></ul><h4 id="%E5%A6%82%E4%BD%95%E6%94%B9%E8%BF%9B%E6%88%91%E7%9A%84prompt%E4%BB%A5%E8%8E%B7%E5%BE%97%E6%9B%B4%E5%A5%BD%E7%9A%84%E6%95%88%E6%9E%9C%EF%BC%9F">&#x5982;&#x4F55;&#x6539;&#x8FDB;&#x6211;&#x7684;Prompt&#x4EE5;&#x83B7;&#x5F97;&#x66F4;&#x597D;&#x7684;&#x6548;&#x679C;&#xFF1F;</h4><p>&#x4E3A;&#x4E86;&#x6539;&#x8FDB;&#x60A8;&#x7684;Prompt&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#xFF1A;</p><ul><li>&#x8FDB;&#x884C;&#x53CD;&#x590D;&#x6D4B;&#x8BD5;&#x548C;&#x8C03;&#x6574;</li><li>&#x5E73;&#x8861;&#x7528;&#x6237;&#x610F;&#x56FE;&#x548C;&#x6A21;&#x578B;&#x521B;&#x610F;</li><li>&#x4F7F;&#x7528;&#x5916;&#x90E8;&#x8D44;&#x6E90;&#x548C;API&#x589E;&#x5F3A;ChatGPT&#x7684;&#x80FD;&#x529B;</li><li>&#x786E;&#x4FDD;&#x5728;&#x63D0;&#x793A;&#x548C;&#x8F93;&#x51FA;&#x4E2D;&#x907F;&#x514D;&#x504F;&#x89C1;</li></ul><p>&#x8FD9;&#x91CC;&#x8FD8;&#x6709;&#x4E00;&#x4E2A;<a href="https://github.com/f/awesome-chatgpt-prompts/blob/main/prompts.csv/?ref=liangbo.me" rel="noopener">ChatGPT Prompt Cheat Sheet</a>&#xFF0C;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x60A8;&#x7F16;&#x5199;&#x66F4;&#x597D;&#x7684;Prompt&#x3002;</p><h4 id="%E9%AB%98%E7%BA%A7%E7%9A%84prompt-engineering%E7%AD%96%E7%95%A5%E6%9C%89%E5%93%AA%E4%BA%9B%EF%BC%9F">&#x9AD8;&#x7EA7;&#x7684;Prompt Engineering&#x7B56;&#x7565;&#x6709;&#x54EA;&#x4E9B;&#xFF1F;</h4><p>&#x9AD8;&#x7EA7;&#x7684;Prompt Engineering&#x7B56;&#x7565;&#x5305;&#x62EC;&#xFF1A;</p><ul><li>&#x901A;&#x8FC7;&#x63A7;&#x5236;temperature&#x548C;token&#x8BBE;&#x7F6E;&#x6765;&#x8C03;&#x6574;&#x968F;&#x673A;&#x6027;&#x548C;&#x54CD;&#x5E94;&#x957F;&#x5EA6;</li><li>&#x901A;&#x8FC7;Prompt Chain&#x521B;&#x5EFA;&#x591A;&#x8F6E;&#x5BF9;&#x8BDD;</li><li>&#x5C06;Prompt&#x8C03;&#x6574;&#x4E3A;&#x7279;&#x5B9A;&#x9886;&#x57DF;&#x7684;&#x5E94;&#x7528;</li><li>&#x5904;&#x7406;&#x6A21;&#x7CCA;&#x6982;&#x5FF5;&#x6216;&#x524D;&#x540E;&#x77DB;&#x76FE;&#x7684;&#x7528;&#x6237;&#x8F93;&#x5165;</li></ul><h3 id="%E5%90%8E%E8%AE%B0">&#x540E;&#x8BB0;</h3><p>&#x611F;&#x8C22;&#x60A8;&#x7684;&#x9605;&#x8BFB;&#xFF0C; &#x672C;&#x6587;&#x5F88;&#x957F;&#xFF0C; &#x6211;&#x4E5F;&#x77E5;&#x9053;&#xFF0C; &#x60A8;&#x80FD;&#x8BFB;&#x5230;&#x8FD9;&#x91CC;&#xFF0C; &#x8BF4;&#x660E;&#x60A8;&#x610F;&#x8BC6;&#x5230;Prompt Engineering&#x7684;&#x91CD;&#x8981;&#x6027;&#xFF0C; &#x5E76;&#x5E0C;&#x671B;&#x80FD;&#x638C;&#x63E1;&#x5B83;&#x7684;&#x6280;&#x5DE7;&#xFF0C; &#x672C;&#x4EBA;&#x4E0D;&#x624D;&#xFF0C; &#x4E5F;&#x5728;&#x5B66;&#x4E60;&#x4E2D;&#xFF0C; &#x4F5C;&#x4E3A;&#x4E00;&#x540D;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#xFF0C; &#x53EF;&#x80FD;&#x66F4;&#x5BB9;&#x6613;&#x7406;&#x89E3;&#x548C;&#x638C;&#x63E1;&#x5DE5;&#x7A0B;&#x7684;&#x6280;&#x5DE7;&#xFF0C; &#x4F8B;&#x5982;&#x8FED;&#x4EE3;&#x3001;&#x94FE;&#x5F0F;(Chain)&#x548C;&#x63A7;&#x5236;&#x53C2;&#x6570;&#x3002; &#x8FD9;&#x8FB9;&#x6587;&#x7AE0;&#x5927;&#x90E8;&#x5206;&#x662F;&#x7FFB;&#x8BD1;&#x81EA;&#x4E0B;&#x9762;&#x8FD9;&#x7BC7;&#x6587;&#x7AE0;</p><p><a href="https://www.imaginarycloud.com/blog/chatgpt-prompt-engineering/?ref=liangbo.me" rel="nofollow noopener">https://www.imaginarycloud.com/blog/chatgpt-prompt-engineering/</a></p><p>&#x975E;&#x5E38;&#x611F;&#x8C22;&#x539F;&#x6587;&#x4F5C;&#x8005;&#xFF0C; &#x6211;&#x4ECE;&#x4E2D;&#x5B66;&#x4E60;&#x5230;&#x4E86;&#x5F88;&#x591A;&#xFF0C; &#x6211;&#x4E5F;&#x7528;&#x539F;&#x6587;&#x4E2D;&#x7684;&#x5F88;&#x591A;Prompt&#x7684;&#x6280;&#x5DE7;&#xFF0C; &#x6765;&#x5B8C;&#x6210;&#x4E86;&#x672C;&#x6587;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x793A;&#x4F8B;&#x3002; &#x5982;&#x679C;&#x4F60;&#x60F3;&#x4EA4;&#x6D41;Prompt Engineering&#x548C;Prompt&#x7684;&#x6280;&#x5DE7;&#xFF0C; &#x6B22;&#x8FCE;&#x4E0E;&#x6211;&#x8054;&#x7CFB;&#x3002;</p>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://twitter.com/liangbo723?ref=liangbo.me"><div class="kg-bookmark-content"><div class="kg-bookmark-title">JavaScript is not available.</div><div class="kg-bookmark-description">Edit description</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-ht381dlucbpefebd.png" alt="&#x9762;&#x5411;&#x666E;&#x901A;&#x7528;&#x6237;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x7684;ChatGPT Prompt Engineering &#x7EC8;&#x6781;&#x6307;&#x5357;"></div></a></figure>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[如何有效地使用ChatGPT帮助软件开发第二弹 — 释放代码的潜力]]></title><description><![CDATA[如果您不知道还有第一部分， 推荐先阅读之前篇]]></description><link>https://liangbo.me/e5-a6-82-e4-bd-95-e6-9c-89-e6-95-88-e5-9c-b0-e4-bd-bf-e7-94-a8chatgpt-e5-b8-ae-e5-8a-a9-e8-bd-af-e4-bb-b6-e5-bc-80-e5-8f-91-e7-ac-ac-e4-ba-8c-e5-bc-b9-e9-87-8a-e6-94-be-e4-bb-a3-e7-a0-81-e7-9/</link><guid isPermaLink="false">66860f1cb6891c0001494cc3</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Mon, 17 Jul 2023 03:16:36 GMT</pubDate><media:content url="https://cdn-images-1.medium.com/max/800/1*sDzDeaWyiCNwXXulO-ECZg.gif" medium="image"/><content:encoded><![CDATA[<img src="https://cdn-images-1.medium.com/max/800/1*sDzDeaWyiCNwXXulO-ECZg.gif" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;"><p>&#x5982;&#x679C;&#x60A8;&#x4E0D;&#x77E5;&#x9053;&#x8FD8;&#x6709;&#x7B2C;&#x4E00;&#x90E8;&#x5206;&#xFF0C; &#x63A8;&#x8350;&#x5148;&#x9605;&#x8BFB;&#x4E4B;&#x524D;&#x7BC7;</p><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e5-a6-82-e4-bd-95-e6-9c-89-e6-95-88-e5-9c-b0-e4-bd-bf-e7-94-a8chatgpt-e5-b8-ae-e5-8a-a9-e8-bd-af-e4-bb-b6-e5-bc-80-e5-8f-91/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;</div><div class="kg-bookmark-description">&#x8FD1;&#x5E74;&#x6765;&#xFF0C;&#x50CF;ChatGPT&#x8FD9;&#x6837;&#x7684;AI&#x8BED;&#x8A00;&#x6A21;&#x578B;&#x5DF2;&#x7ECF;&#x6210;&#x4E3A;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x8D8A;&#x6765;&#x8D8A;&#x6709;&#x4EF7;&#x503C;&#x7684;&#x5DE5;&#x5177;&#x3002;&#x8FD9;&#x4E9B;&#x6A21;&#x578B;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x81EA;&#x52A8;&#x6267;&#x884C;&#x67D0;&#x4E9B;&#x4EFB;&#x52A1;&#x548C;&#x63D0;&#x4F9B;&#x6709;&#x4EF7;&#x503C;&#x7684;&#x89C1;&#x89E3;&#x6765;&#x663E;&#x8457;&#x63D0;&#x9AD8;&#x751F;&#x4EA7;&#x529B;&#x3002;&#x5728;&#x8FD9;&#x7BC7;&#x6587;&#x7AE0;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x8BA8;&#x8BBA;&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x5C06;ChatGPT&#x7528;&#x4E8E;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#xFF0C;&#x63A2;&#x7D22;&#x5B83;&#x7684;&#x597D;&#x5904;&#xFF0C;&#x5E76;&#x63D0;&#x4F9B;&#x4F8B;&#x5B50;&#x6765;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/1-grm3qckr4b1husgkv4jw7w-jpeg.jpg" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;"></div></a></figure><!--kg-card-end: html--><p>&#x6700;&#x8FD1;&#xFF0C;OpenAI&#x53D1;&#x5E03;&#x4E86;GPT-4&#x6A21;&#x578B;&#xFF0C;&#x8BA9;AI&#x7684;&#x529F;&#x80FD;&#x53D8;&#x5F97;&#x66F4;&#x52A0;&#x5F3A;&#x5927;&#x548C;&#x591A;&#x6837;&#x5316;&#x3002;&#x8FD9;&#x4E00;&#x8FDB;&#x6B65;&#x5F15;&#x8D77;&#x4E86;&#x5E7F;&#x6CDB;&#x7684;&#x597D;&#x5947;&#x548C;&#x62C5;&#x5FE7;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x5728;&#x7A0B;&#x5E8F;&#x5458;&#x7FA4;&#x4F53;&#x4E2D;&#x3002;&#x4EBA;&#x4EEC;&#x5F00;&#x59CB;&#x5728;&#x641C;&#x7D22;&#x5F15;&#x64CE;&#x4E0A;&#x8BE2;&#x95EE;&#x201D;ChatGPT&#x662F;&#x5426;&#x4F1A;&#x53D6;&#x4EE3;&#x7A0B;&#x5E8F;&#x5458;&#xFF1F;&#x201D;&#xFF0C;&#x8FD9;&#x6210;&#x4E3A;&#x4E86;&#x70ED;&#x95E8;&#x7684;&#x641C;&#x7D22;&#x63A8;&#x8350;&#x3002;&#x8FD9;&#x53CD;&#x6620;&#x4E86;&#x90A3;&#x4E9B;&#x521B;&#x9020;&#x4E86;ChatGPT&#x8FD9;&#x7C7B;&#x5DE5;&#x5177;&#x7684;&#x4EBA;&#x4EEC;&#x5BF9;&#x4E8E;&#x5B83;&#x662F;&#x5426;&#x4F1A;&#x53D6;&#x4EE3;&#x4ED6;&#x4EEC;&#x7684;&#x62C5;&#x5FC3;&#x3002;</p><p>&#x8FD9;&#x79CD;&#x597D;&#x5947;&#x548C;&#x62C5;&#x5FE7;&#x662F;&#x6709;&#x9053;&#x7406;&#x7684;&#xFF0C;&#x5C3D;&#x7BA1;&#x7A0B;&#x5EA6;&#x53EF;&#x80FD;&#x4E0D;&#x540C;&#x3002;&#x5982;&#x4ECA;&#xFF0C;AI&#x5DF2;&#x7ECF;&#x5728;&#x7F51;&#x7AD9;&#x5F00;&#x53D1;&#x5230;&#x6E38;&#x620F;&#x8BBE;&#x8BA1;&#x7B49;&#x5404;&#x79CD;&#x5E94;&#x7528;&#x4E2D;&#x5C55;&#x73B0;&#x4E86;&#x5176;&#x521B;&#x5EFA;&#x4EE3;&#x7801;&#x7684;&#x80FD;&#x529B;&#x3002;&#x66F4;&#x6709;&#x751A;&#x8005;&#xFF0C;AI&#x751A;&#x81F3;&#x88AB;&#x7528;&#x4E8E;&#x521B;&#x9020;&#x66F4;&#x5148;&#x8FDB;&#x7684;AI&#x7CFB;&#x7EDF;&#xFF0C;&#x8FD9;&#x79CD;&#x6280;&#x672F;&#x88AB;&#x79F0;&#x4E3A;&#x81EA;&#x52A8;&#x673A;&#x5668;&#x5B66;&#x4E60;&#xFF08;AutoML&#xFF09;&#xFF0C;&#x5B83;&#x5141;&#x8BB8;&#x673A;&#x5668;&#x5728;&#x6CA1;&#x6709;&#x6216;&#x51E0;&#x4E4E;&#x6CA1;&#x6709;&#x4EBA;&#x5DE5;&#x5E72;&#x9884;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x521B;&#x5EFA;&#x590D;&#x6742;&#x7684;&#x6A21;&#x578B;&#x5E76;&#x4F18;&#x5316;&#x7B97;&#x6CD5;&#x3002;</p><p>&#x5C3D;&#x7BA1;AI&#x76EE;&#x524D;&#x8FD8;&#x4E0D;&#x592A;&#x53EF;&#x80FD;&#x521B;&#x9020;&#x6BD4;&#x81EA;&#x5DF1;&#x66F4;&#x667A;&#x80FD;&#x3001;&#x66F4;&#x5F3A;&#x5927;&#x7684;&#x7248;&#x672C;&#xFF0C;&#x4F46;&#x589E;&#x5F3A;&#x7248;&#x4F1A;&#x7EE7;&#x7EED;&#x521B;&#x9020;&#x66F4;&#x5F3A;&#x5927;&#x7684;&#x7248;&#x672C;&#xFF0C;&#x5F62;&#x6210;&#x4E00;&#x4E2A;&#x65E0;&#x9650;&#x5FAA;&#x73AF;&#xFF0C;&#x76F4;&#x81F3;&#x8FBE;&#x5230;&#x65E0;&#x9650;&#x667A;&#x80FD;&#x548C;&#x5F3A;&#x5927;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x503C;&#x5F97;&#x6CE8;&#x610F;&#x7684;&#x662F;&#xFF0C;&#x5728;&#x4E0D;&#x4E45;&#x7684;&#x5C06;&#x6765;&#xFF0C;AI&#x7684;&#x7F16;&#x7801;&#x80FD;&#x529B;&#x53EF;&#x80FD;&#x4F1A;&#x63A5;&#x8FD1;&#x751A;&#x81F3;&#x4E0E;&#x4EBA;&#x7C7B;&#x6301;&#x5E73;&#xFF0C;&#x5C3D;&#x7BA1;&#x53EF;&#x80FD;&#x65E0;&#x6CD5;&#x8D85;&#x8D8A;&#x4EBA;&#x7C7B;&#x3002;</p><p>&#x73B0;&#x9636;&#x6BB5;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5229;&#x7528;&#x50CF;ChatGPT&#x8FD9;&#x6837;&#x7684;AI&#x6765;&#x8F85;&#x52A9;&#x7F16;&#x7A0B;&#xFF0C;&#x4ECE;&#x800C;&#x66F4;&#x9AD8;&#x6548;&#x5730;&#x7F16;&#x5199;&#x4EE3;&#x7801;&#xFF0C;&#x63D0;&#x9AD8;&#x5DE5;&#x4F5C;&#x6548;&#x7387;&#x3002;&#x867D;&#x7136;AI&#x53EF;&#x80FD;&#x4E0D;&#x4F1A;&#x5728;&#x7F16;&#x7801;&#x65B9;&#x9762;&#x5B8C;&#x5168;&#x53D6;&#x4EE3;&#x4EBA;&#x7C7B;&#xFF0C;&#x4F46;&#x5B83;&#x53EF;&#x4EE5;&#x6210;&#x4E3A;&#x6211;&#x4EEC;&#x7684;&#x6709;&#x529B;&#x5E2E;&#x624B;&#xFF0C;&#x52A9;&#x529B;&#x6211;&#x4EEC;&#x66F4;&#x597D;&#x5730;&#x5E94;&#x5BF9;&#x65E5;&#x76CA;&#x590D;&#x6742;&#x7684;&#x7F16;&#x7A0B;&#x4EFB;&#x52A1;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x62E5;&#x62B1;&#x8FD9;&#x79CD;&#x6280;&#x672F;&#xFF0C;&#x5E76;&#x5C06;&#x5176;&#x5E94;&#x7528;&#x4E8E;&#x6211;&#x4EEC;&#x7684;&#x5DE5;&#x4F5C;&#xFF0C;&#x968F;&#x7740;&#x65F6;&#x95F4;&#x7684;&#x63A8;&#x79FB;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x671F;&#x5F85;AI&#x4E0E;&#x4EBA;&#x7C7B;&#x5171;&#x540C;&#x63A8;&#x52A8;&#x7F16;&#x7A0B;&#x9886;&#x57DF;&#x7684;&#x8FDB;&#x6B65;&#x3002;</p><h3 id="%E4%BD%BF%E7%94%A8chatgpt%E6%9D%A5%E7%BC%96%E7%A8%8B">&#x4F7F;&#x7528;ChatGPT&#x6765;&#x7F16;&#x7A0B;</h3><p>&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x53EF;&#x4EE5;&#x5229;&#x7528;&#x591A;&#x79CD;&#x65B9;&#x5F0F;&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x7F16;&#x7A0B;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x5728;&#x5934;&#x8111;&#x98CE;&#x66B4;&#x548C;&#x751F;&#x6210;&#x53EF;&#x4EE5;&#x4FEE;&#x6539;&#x548C;&#x5B8C;&#x5584;&#x7684;&#x4EE3;&#x7801;&#x6846;&#x67B6;&#x65B9;&#x9762;&#x3002;ChatGPT&#x7684;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x751F;&#x6210;&#x4EE3;&#x7801;&#x80FD;&#x529B;&#x6539;&#x53D8;&#x4E86;&#x7F16;&#x7801;&#x7684;&#x89C4;&#x5219;&#xFF0C;&#x5B83;&#x662F;&#x6574;&#x5408;&#x673A;&#x5668;&#x4E0E;&#x4EBA;&#x7C7B;&#x4E4B;&#x95F4;&#x8BED;&#x8A00;&#x9E3F;&#x6C9F;&#x7684;&#x91CD;&#x8981;&#x4E00;&#x6B65;&#x3002;</p><p>&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E9B;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x7F16;&#x7A0B;&#x548C;&#x5F00;&#x53D1;&#x7684;&#x65B9;&#x6CD5;&#xFF1A;</p><ol><li>&#x751F;&#x6210;&#x4EE3;&#x7801; Generate Code&#xFF1A;ChatGPT&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x6211;&#x4EEC;&#x7ED9;&#x51FA;&#x7684;&#x63D0;&#x793A;&#x751F;&#x6210;&#x4EE3;&#x7801;&#xFF0C;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x5FEB;&#x901F;&#x83B7;&#x5F97;&#x521D;&#x6B65;&#x7684;&#x5B9E;&#x73B0;&#x3002;</li><li>&#x5B8C;&#x6210;&#x548C;&#x4FEE;&#x6539;&#x4EE3;&#x7801; Complte and modify code&#xFF1A;&#x5F53;&#x6211;&#x4EEC;&#x9047;&#x5230;&#x4EE3;&#x7801;&#x7684;&#x7247;&#x6BB5;&#x6216;&#x7ED3;&#x6784;&#x9700;&#x8981;&#x5B8C;&#x5584;&#x65F6;&#xFF0C;ChatGPT&#x53EF;&#x4EE5;&#x8F85;&#x52A9;&#x6211;&#x4EEC;&#x8FDB;&#x884C;&#x4FEE;&#x6539;&#x548C;&#x8865;&#x5145;&#x3002;</li><li>&#x8C03;&#x8BD5;&#x4EE3;&#x7801; Debug&#xFF1A;ChatGPT&#x6709;&#x52A9;&#x4E8E;&#x627E;&#x51FA;&#x4EE3;&#x7801;&#x4E2D;&#x7684;&#x9519;&#x8BEF;&#x548C;&#x95EE;&#x9898;&#xFF0C;&#x4ECE;&#x800C;&#x66F4;&#x9AD8;&#x6548;&#x5730;&#x8FDB;&#x884C;&#x8C03;&#x8BD5;&#x3002;</li><li>&#x7FFB;&#x8BD1;&#x548C;&#x591A;&#x8BED;&#x8A00;&#x652F;&#x6301;&#xFF1A;ChatGPT&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x5C06;&#x4EE3;&#x7801;&#x4ECE;&#x4E00;&#x79CD;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x8F6C;&#x6362;&#x4E3A;&#x53E6;&#x4E00;&#x79CD;&#xFF0C;&#x8282;&#x7701;&#x6211;&#x4EEC;&#x624B;&#x52A8;&#x7FFB;&#x8BD1;&#x7684;&#x65F6;&#x95F4;&#x548C;&#x7CBE;&#x529B;&#x3002;</li><li>&#x4EE3;&#x7801;&#x6CE8;&#x91CA;&#xFF1A;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x5411;ChatGPT&#x8BE2;&#x95EE;&#x7279;&#x5B9A;&#x4EE3;&#x7801;&#x7684;&#x529F;&#x80FD;&#x548C;&#x4F5C;&#x7528;&#xFF0C;&#x5B83;&#x80FD;&#x591F;&#x7528;&#x7B80;&#x6D01;&#x7684;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x89E3;&#x91CA;&#x4EE3;&#x7801;&#x7684;&#x542B;&#x4E49;&#x3002;</li></ol><p>&#x6B64;&#x5916;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x5C06;ChatGPT&#x5E94;&#x7528;&#x4E8E;&#x4EE5;&#x4E0B;&#x573A;&#x666F;&#xFF1A;</p><ol><li>&#x4F5C;&#x4E3A;Linux&#x7EC8;&#x7AEF;&#x547D;&#x4EE4;&#x884C;&#x89E3;&#x91CA;&#x5668;&#xFF1A;ChatGPT&#x53EF;&#x4EE5;&#x7528;&#x4F5C;Linux&#x7EC8;&#x7AEF;&#xFF0C;&#x6267;&#x884C;&#x6211;&#x4EEC;&#x53D1;&#x9001;&#x7684;&#x547D;&#x4EE4;&#x548C;&#x4EFB;&#x52A1;&#x3002;</li><li>&#x4F5C;&#x4E3A;SQL&#x547D;&#x4EE4;&#x884C;&#x89E3;&#x91CA;&#x5668;&#xFF1A;ChatGPT&#x53EF;&#x4EE5;&#x4F5C;&#x4E3A;SQL&#x547D;&#x4EE4;&#x884C;&#xFF0C;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x5FEB;&#x901F;&#x67E5;&#x8BE2;&#x548C;&#x64CD;&#x4F5C;&#x6570;&#x636E;&#x5E93;&#x3002;</li></ol><p>&#x901A;&#x8FC7;&#x66F4;&#x8BE6;&#x7EC6;&#x5730;&#x63A2;&#x7A76;&#x4E0A;&#x8FF0;&#x7528;&#x4F8B;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x66F4;&#x597D;&#x5730;&#x4E86;&#x89E3;&#x5982;&#x4F55;&#x5145;&#x5206;&#x53D1;&#x6325;ChatGPT&#x5728;&#x7F16;&#x7801;&#x8FC7;&#x7A0B;&#x4E2D;&#x7684;&#x4F5C;&#x7528;&#xFF0C;&#x5E76;&#x63D0;&#x9AD8;&#x6211;&#x4EEC;&#x7684;&#x7F16;&#x7A0B;&#x6548;&#x7387;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x5145;&#x5206;&#x5229;&#x7528;&#x8FD9;&#x4E00;&#x6280;&#x672F;&#xFF0C;&#x63A8;&#x52A8;&#x7F16;&#x7801;&#x548C;&#x5F00;&#x53D1;&#x9886;&#x57DF;&#x7684;&#x8FDB;&#x6B65;&#x3002;</p><h3 id="%E4%BD%BF%E7%94%A8chatgpt%E8%BF%9B%E8%A1%8C%E7%BC%96%E7%A8%8B%E7%9A%84%E6%8A%80%E5%B7%A7">&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x7F16;&#x7A0B;&#x7684;&#x6280;&#x5DE7;</h3><p>&#x5728;&#x5F00;&#x59CB;&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x7F16;&#x7A0B;&#x4E4B;&#x524D;&#xFF0C;&#x5B66;&#x4E60;&#x4E00;&#x4E9B;&#x91CD;&#x8981;&#x7684;ChatGPT&#x7F16;&#x7801;&#x6280;&#x5DE7;&#x548C;&#x7A8D;&#x95E8;&#x5C06;&#x5BF9;&#x60A8;&#x4ECE;&#x4E2D;&#x83B7;&#x5F97;&#x6700;&#x5927;&#x6536;&#x76CA;&#x975E;&#x5E38;&#x6709;&#x7528;&#x3002;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E9B;&#x5173;&#x4E8E;&#x5982;&#x4F55;&#x4F7F;&#x7528;ChatGPT&#x6765;&#x751F;&#x6210;&#x66F4;&#x53EF;&#x7528;&#x3001;&#x529F;&#x80FD;&#x66F4;&#x5F3A;&#x3001;&#x4F18;&#x5316;&#x66F4;&#x597D;&#x7684;&#x4EE3;&#x7801;&#x7684;&#x6280;&#x5DE7;&#xFF1A;</p><ol><li>&#x5206;&#x89E3;&#x6210;&#x6700;&#x5C0F;&#x529F;&#x80FD;&#x5355;&#x5143;&#xFF1A;&#x5C3D;&#x53EF;&#x80FD;&#x5C06;&#x4EE3;&#x7801;&#x6216;&#x7F16;&#x7A0B;&#x601D;&#x60F3;&#x5206;&#x89E3;&#x6210;&#x6700;&#x5C0F;&#x7684;&#x529F;&#x80FD;&#x5355;&#x5143;&#xFF0C;&#x4EE5;&#x51CF;&#x5C11;&#x9519;&#x8BEF;&#x3002;&#x7136;&#x540E;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x5C06;&#x5B83;&#x4EEC;&#x7EC4;&#x5408;&#x6210;&#x4E00;&#x4E2A;&#x529F;&#x80FD;&#x6027;&#x7684;&#x6574;&#x4F53;&#x3002;&#x5982;&#x679C;&#x60A8;&#x5411;ChatGPT&#x8BE2;&#x95EE;&#x5197;&#x957F;&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x53EF;&#x80FD;&#x4F1A;&#x56E0;&#x4E3A;&#x4E0A;&#x4E0B;&#x6587;&#x7A97;&#x53E3;&#x8F83;&#x77ED;&#x800C;&#x5F97;&#x5230;&#x4E00;&#x4E2A;&#x660E;&#x663E;&#x9519;&#x8BEF;&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x6216;&#x8005;&#x65E0;&#x6CD5;&#x6309;&#x7167;&#x60A8;&#x7684;&#x8981;&#x6C42;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#x3002;</li><li>&#x8F85;&#x52A9;&#x51FD;&#x6570;&#x548C;&#x907F;&#x514D;&#x6CE8;&#x91CA;&#xFF1A;&#x4E3A;&#x4E86;&#x514B;&#x670D;&#x54CD;&#x5E94;&#x4E2D;&#x7684;&#x6587;&#x672C;&#x9650;&#x5236;&#xFF0C;&#x8BF7;&#x8BA9;ChatGPT&#x4F7F;&#x7528;&#x8F85;&#x52A9;&#x51FD;&#x6570;&#xFF0C;&#x907F;&#x514D;&#x6CE8;&#x91CA;&#x548C;&#x89E3;&#x91CA;&#x3002;&#x8FD9;&#x6837;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x590D;&#x5236;&#x4EE3;&#x7801;&#x5E76;&#x76F4;&#x63A5;&#x4F7F;&#x7528;&#x3002;&#x5982;&#x679C;ChatGPT&#x7ED9;&#x51FA;&#x7684;&#x4EE3;&#x7801;&#x4E0D;&#x5B8C;&#x6574;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x8981;&#x6C42;&#x5B83;&#x7EE7;&#x7EED;&#x6216;&#x7EE7;&#x7EED;&#x751F;&#x6210;&#x66F4;&#x591A;&#x4EE3;&#x7801;&#x3002;</li><li>&#x7F29;&#x77ED;&#x63CF;&#x8FF0;&#xFF1A;&#x4F7F;&#x7528;&#x4E0D;&#x51CF;&#x5C11;&#x7EC6;&#x8282;&#x7684;&#x7B80;&#x77ED;&#x5F62;&#x5F0F;&#x6765;&#x4EE3;&#x66FF;&#x5197;&#x957F;&#x7684;&#x63CF;&#x8FF0;&#xFF0C;&#x4F8B;&#x5982;&#x5C06; &#x201C;&#x7528;C#&#x5199;&#x4E00;&#x6BB5;&#x4EE3;&#x7801;&#x2026;&#x2026;&#x201D; &#x6539;&#x4E3A; &#x201C;C#: &#x2026;&#x2026;&#x201D;&#x3002;</li><li>&#x63D0;&#x51FA;&#x66F4;&#x591A;&#x95EE;&#x9898;&#x4EE5;&#x5EFA;&#x7ACB;&#x4E0A;&#x4E0B;&#x6587;&#xFF1A;&#x901A;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;ChatGPT&#x53EF;&#x80FD;&#x4F1A;&#x751F;&#x6210;&#x901A;&#x7528;&#x6216;&#x4E0D;&#x76F8;&#x5173;&#x7684;&#x56DE;&#x590D;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x5728;&#x63D0;&#x793A;&#x4E2D;&#x9644;&#x52A0; &#x201C;&#x63D0;&#x51FA;&#x66F4;&#x591A;&#x95EE;&#x9898;&#x4EE5;&#x5E2E;&#x52A9;&#x60A8;&#x5EFA;&#x7ACB;&#x4E0A;&#x4E0B;&#x6587;&#x201D;&#x3002;&#x8FD9;&#x6837;&#xFF0C;ChatGPT&#x4F1A;&#x5411;&#x60A8;&#x63D0;&#x51FA;&#x76F8;&#x5173;&#x95EE;&#x9898;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x56DE;&#x7B54;&#x8FD9;&#x4E9B;&#x95EE;&#x9898;&#x4EE5;&#x83B7;&#x5F97;&#x66F4;&#x51C6;&#x786E;&#x7684;&#x7B54;&#x6848;&#x3002;</li><li>&#x8981;&#x6C42;&#x4EA4;&#x53C9;&#x68C0;&#x67E5;&#xFF1A;&#x5728;&#x751F;&#x6210;&#x4EE3;&#x7801;&#x540E;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x8981;&#x6C42;ChatGPT&#x5BF9;&#x751F;&#x6210;&#x7684;&#x4EE3;&#x7801;&#x8FDB;&#x884C;&#x4EA4;&#x53C9;&#x68C0;&#x67E5;&#xFF0C;&#x4EE5;&#x786E;&#x4FDD;&#x4EE3;&#x7801;&#x7684;&#x6B63;&#x786E;&#x6027;&#x548C;&#x5408;&#x7406;&#x6027;&#x3002;</li></ol><p>&#x8FD9;&#x4E9B;&#x6280;&#x5DE7;&#x5C06;&#x6709;&#x52A9;&#x4E8E;&#x60A8;&#x66F4;&#x597D;&#x5730;&#x5229;&#x7528;ChatGPT&#x7684;&#x7F16;&#x7801;&#x80FD;&#x529B;&#xFF0C;&#x4F7F;&#x60A8;&#x5728;&#x7F16;&#x7A0B;&#x8FC7;&#x7A0B;&#x4E2D;&#x66F4;&#x9AD8;&#x6548;&#x4E14;&#x51C6;&#x786E;&#x5730;&#x83B7;&#x5F97;&#x6240;&#x9700;&#x4EE3;&#x7801;&#x3002;&#x4E0D;&#x65AD;&#x63A2;&#x7D22;&#x548C;&#x7EC3;&#x4E60;&#xFF0C;&#x5C06;&#x4F7F;&#x60A8;&#x5728;&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x7F16;&#x7801;&#x65F6;&#x8D8A;&#x6765;&#x8D8A;&#x719F;&#x7EC3;&#x3002;</p><h4 id="%E7%94%9F%E6%88%90%E4%BB%A3%E7%A0%81">&#x751F;&#x6210;&#x4EE3;&#x7801;</h4><p>ChatGPT&#x5C31;&#x50CF;&#x4E00;&#x4E2A;&#x7F16;&#x7A0B;&#x5C0F;&#x52A9;&#x624B;&#xFF0C;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x7528;&#x4EFB;&#x4F55;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x7F16;&#x5199;&#x7B80;&#x5355;&#x7684;&#x4EE3;&#x7801;&#x3002;&#x4F46;&#x5E76;&#x4E0D;&#x610F;&#x5473;&#x7740;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x968F;&#x610F;&#x8F93;&#x5165;&#x4E00;&#x4E9B;&#x6587;&#x5B57;&#xFF0C;&#x7136;&#x540E;&#x5B83;&#x5C31;&#x4F1A;&#x7ED9;&#x6211;&#x4EEC;&#x5B8C;&#x6574;&#x3001;&#x7CBE;&#x7EC6;&#x3001;&#x4F18;&#x5316;&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x53D1;&#x5E03;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x91C7;&#x53D6;&#x4E00;&#x4E9B;&#x65B9;&#x6CD5;&#x6765;&#x8BA9;&#x5B83;&#x751F;&#x6210;&#x66F4;&#x7B26;&#x5408;&#x6211;&#x4EEC;&#x8981;&#x6C42;&#x7684;&#x7B54;&#x6848;&#x3002;</p><p>&#x5BF9;&#x4E8E;ChatGPT&#x6765;&#x8BF4;&#xFF0C;&#x4E0A;&#x4E0B;&#x6587;&#x975E;&#x5E38;&#x91CD;&#x8981;&#x3002;&#x6BD4;&#x5982;&#xFF0C;&#x6211;&#x4EEC;&#x5148;&#x95EE;&#xFF1A;&#x201C;&#x4EC0;&#x4E48;&#x662F;JavaScript&#xFF1F;&#x201D;&#x7136;&#x540E;&#x518D;&#x95EE;&#xFF1A;&#x201C;&#x7ED9;&#x6211;&#x4E00;&#x4E2A;&#x7528;JavaScript&#x521B;&#x5EFA;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x7684;&#x4F8B;&#x5B50;&#x201D;&#xFF0C;&#x63A5;&#x7740;&#x518D;&#x95EE;&#xFF1A;&#x201C;&#x5C55;&#x793A;&#x4E00;&#x4E2A;&#x7528;JavaScript&#x5236;&#x9020;&#x624B;&#x673A;&#x632F;&#x52A8;&#x7684;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x201D;&#xFF0C;&#x8FD9;&#x6837;&#x6BD4;&#x76F4;&#x63A5;&#x95EE;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x95EE;&#x9898;&#x66F4;&#x597D;&#x3002;&#x56E0;&#x4E3A;&#x6709;&#x65F6;&#x5019;&#x5B83;&#x4F1A;&#x56DE;&#x7B54;&#x8BF4;&#x5B83;&#x53EA;&#x662F;&#x4E00;&#x4E2A;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#xFF0C;&#x4E0D;&#x80FD;&#x505A;&#x8FD9;&#x4E2A;&#x6216;&#x90A3;&#x4E2A;&#x3002;</p><p>&#x603B;&#x7684;&#x6765;&#x8BF4;&#xFF0C;ChatGPT&#x662F;&#x4E2A;&#x5F88;&#x6709;&#x7528;&#x7684;&#x5DE5;&#x5177;&#xFF0C;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x6211;&#x4EEC;&#x5728;&#x7F16;&#x7A0B;&#x65F6;&#x66F4;&#x52A0;&#x987A;&#x5229;&#xFF0C;&#x4F46;&#x8981;&#x6CE8;&#x610F;&#x5982;&#x4F55;&#x63D0;&#x95EE;&#x4EE5;&#x53CA;&#x7ED9;&#x5B83;&#x63D0;&#x4F9B;&#x8DB3;&#x591F;&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#xFF0C;&#x8FD9;&#x6837;&#x624D;&#x80FD;&#x5F97;&#x5230;&#x6211;&#x4EEC;&#x66F4;&#x671F;&#x671B;&#x7684;&#x56DE;&#x7B54;&#x3002;</p><blockquote>&#x7F16;&#x5199;&#x4E00;&#x4E2A;&#x6B63;&#x5219;&#x8868;&#x8FBE;&#x5F0F;&#xFF0C;&#x4ECE;&#x6587;&#x672C;&#x6587;&#x4EF6;&#x4E2D;&#x63D0;&#x53D6;&#x6240;&#x6709;&#x65E5;&#x671F;&#x3002;</blockquote><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-ylz7ojen2llanyezfxbe8g-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1756" height="2138" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-ylz7ojen2llanyezfxbe8g-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-ylz7ojen2llanyezfxbe8g-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-ylz7ojen2llanyezfxbe8g-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-ylz7ojen2llanyezfxbe8g-2x.png 1756w" sizes="(min-width: 720px) 720px"></figure><p>&#x901A;&#x5E38;&#xFF0C; &#x5982;&#x679C;&#x4E0D;&#x660E;&#x786E;&#x5177;&#x4F53;&#x7684;&#x8BED;&#x8A00;&#xFF0C; ChatGPT&#x4F1A;&#x9ED8;&#x8BA4;&#x4F7F;&#x7528;Python.</p><blockquote>&#x7F16;&#x5199;&#x590D;&#x5229;&#x8BA1;&#x7B97;&#x5668;&#x7684;Javascript&#x4EE3;&#x7801;&#x3002;</blockquote><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1--khepal4_o5mexj6fifmlg-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1852" height="2316" srcset="https://liangbo.me/content/images/size/w600/2024/07/1--khepal4_o5mexj6fifmlg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1--khepal4_o5mexj6fifmlg-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1--khepal4_o5mexj6fifmlg-2x.png 1600w, https://liangbo.me/content/images/2024/07/1--khepal4_o5mexj6fifmlg-2x.png 1852w" sizes="(min-width: 720px) 720px"></figure><p>&#x5982;&#x679C;&#x4E0D;&#x660E;&#x786E;&#x662F;&#x51FD;&#x6570;&#x7684;&#x8BDD;&#xFF0C; &#x53EA;&#x8BF4;Javascript&#x7684;&#x8BDD;&#xFF0C; ChatGPT&#x4F1A;&#x6DF7;&#x5408;HTML&#x548C;Javascript&#x6765;&#x7ED9;&#x51FA;&#x7B54;&#x6848;&#xFF0C; &#x8FD9;&#x6837;&#x7684;&#x597D;&#x5904;&#x662F;&#xFF0C; &#x65B0;&#x624B;&#x76F4;&#x63A5;copy &amp; paste&#x4EE3;&#x7801;&#x5C31;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#xFF0C; &#x4F46;&#x662F;&#xFF0C; &#x5BF9;&#x4E8E;&#x4E13;&#x4E1A;&#x7684;&#x5F00;&#x53D1;&#x8005;&#x6765;&#x8BF4;&#xFF0C; &#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8BA9;ChatGPT&#x7ED9;&#x51FA;&#x4E00;&#x4E2A;Javascript&#x51FD;&#x6570;&#x3002;</p><blockquote>&#x4F7F;&#x7528;Javascript&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x590D;&#x5229;&#x8BA1;&#x7B97;&#x5668;&#x51FD;&#x6570;</blockquote><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-cawh_cxnh05fveseoeo1bw-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1742" height="2530" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-cawh_cxnh05fveseoeo1bw-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-cawh_cxnh05fveseoeo1bw-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-cawh_cxnh05fveseoeo1bw-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-cawh_cxnh05fveseoeo1bw-2x.png 1742w" sizes="(min-width: 720px) 720px"></figure><h4 id="debug">Debug</h4><p>&#x5728;&#x4EE3;&#x7801;&#x8C03;&#x8BD5;&#x65B9;&#x9762;&#xFF0C;ChatGPT&#x4E5F;&#x662F;&#x975E;&#x5E38;&#x6709;&#x7528;&#x7684;&#x5E94;&#x7528;&#x3002;<a href="https://arxiv.org/abs/2301.08653?ref=liangbo.me" rel="noopener">&#x4E00;&#x9879;&#x7814;&#x7A76;&#x53D1;&#x73B0;</a>&#xFF0C;ChatGPT&#x5728;&#x4FEE;&#x590D;&#x4EE3;&#x7801;&#x9519;&#x8BEF;&#x65B9;&#x9762;&#x4E0E;&#x6DF1;&#x5EA6;&#x5B66;&#x4E60;&#x65B9;&#x6CD5;CoCoNut&#x548C;Codex&#x7684;&#x8868;&#x73B0;&#x76F8;&#x5F53;&#x3002;&#x4F46;&#x5728;&#x67D0;&#x4E9B;&#x65B9;&#x9762;&#xFF0C;&#x5B83;&#x786E;&#x5B9E;&#x6709;&#x4E00;&#x4E9B;&#x4F18;&#x52BF;&#x3002;</p><p>ChatGPT&#x7684;&#x533A;&#x522B;&#x5728;&#x4E8E;&#xFF0C;&#x5B83;&#x4E0D;&#x4EC5;&#x63D0;&#x4F9B;&#x4EE3;&#x7801;&#x7684;&#x4FEE;&#x590D;&#xFF0C;&#x8FD8;&#x63D0;&#x4F9B;&#x89E3;&#x91CA;&#xFF0C;&#x5E76;&#x901A;&#x8FC7;&#x5BF9;&#x8BDD;&#x7CFB;&#x7EDF;&#x8FDB;&#x4E00;&#x6B65;&#x83B7;&#x53D6;&#x66F4;&#x591A;&#x4FE1;&#x606F;&#x3002;&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x66F4;&#x591A;&#x7684;&#x63D0;&#x793A;&#x548C;&#x7EC6;&#x8282;&#xFF0C;&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;&#x5B83;&#x7684;&#x6210;&#x529F;&#x7387;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-uw8jow0jqsdduwci2l2_bg-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1996" height="1720" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-uw8jow0jqsdduwci2l2_bg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-uw8jow0jqsdduwci2l2_bg-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-uw8jow0jqsdduwci2l2_bg-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-uw8jow0jqsdduwci2l2_bg-2x.png 1996w" sizes="(min-width: 720px) 720px"></figure><p>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x60F3;&#x68C0;&#x67E5;&#x4EE3;&#x7801;&#x7684;&#x6267;&#x884C;&#x6548;&#x679C;&#xFF0C; &#x53EF;&#x4EE5;&#x8981;&#x6C42;ChatGPT&#x663E;&#x793A;&#x8F93;&#x51FA;&#x7ED3;&#x679C;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-ddu9frstk8pejstysjxyow-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1826" height="1086" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-ddu9frstk8pejstysjxyow-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-ddu9frstk8pejstysjxyow-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-ddu9frstk8pejstysjxyow-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-ddu9frstk8pejstysjxyow-2x.png 1826w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E4%BB%A3%E7%A0%81%E7%BF%BB%E8%AF%91">&#x4EE3;&#x7801;&#x7FFB;&#x8BD1;</h4><p>ChatGPT&#x8FD8;&#x53EF;&#x4EE5;&#x7528;&#x4E8E;&#x5C06;&#x4EE3;&#x7801;&#x4ECE;&#x4E00;&#x79CD;&#x8BED;&#x8A00;&#x7FFB;&#x8BD1;&#x6210;&#x53E6;&#x4E00;&#x79CD;&#x8BED;&#x8A00;&#x3002;&#x4E5F;&#x8BB8;&#x60A8;&#x66F4;&#x64C5;&#x957F;&#x4E00;&#x79CD;&#x8BED;&#x8A00;&#xFF0C;&#x4F46;&#x9700;&#x8981;&#x5728;&#x53E6;&#x4E00;&#x79CD;&#x8BED;&#x8A00;&#x4E2D;&#x5B8C;&#x6210;&#x4EFB;&#x52A1;&#xFF0C;&#x6216;&#x8005;&#x53EA;&#x662F;&#x60F3;&#x5728;&#x53E6;&#x4E00;&#x79CD;&#x8BED;&#x8A00;&#x4E2D;&#x6D4B;&#x8BD5;&#x4EE3;&#x7801;&#x3002;&#x53C8;&#x6216;&#x8005;&#x60A8;&#x5E0C;&#x671B;&#x5728;&#x53E6;&#x4E00;&#x4E2A;&#x9879;&#x76EE;&#x4E2D;&#x4F7F;&#x7528;&#x8FD9;&#x6BB5;&#x4EE3;&#x7801;&#x3002;&#x7136;&#x540E;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;ChatGPT&#x5C06;&#x4EE3;&#x7801;&#x7FFB;&#x8BD1;&#x6210;&#x6240;&#x9700;&#x7684;&#x8BED;&#x8A00;&#x3002;</p><p>&#x4E0B;&#x9762;&#x662F;&#x4E0A;&#x9762;&#x751F;&#x6210;&#x7684;Python&#x4EE3;&#x7801;&#x7FFB;&#x8BD1;&#x6210;Javascript&#x7684;&#x7248;&#x672C;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-wk9vsftmweldhidvdml4ua-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1836" height="1890" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-wk9vsftmweldhidvdml4ua-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-wk9vsftmweldhidvdml4ua-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-wk9vsftmweldhidvdml4ua-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-wk9vsftmweldhidvdml4ua-2x.png 1836w" sizes="(min-width: 720px) 720px"></figure><h4 id="%E4%BB%A3%E7%A0%81%E6%B3%A8%E9%87%8A-%E4%BD%BF%E7%94%A8%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E6%9D%A5%E8%A7%A3%E9%87%8A%E4%BB%A3%E7%A0%81">&#x4EE3;&#x7801;&#x6CE8;&#x91CA;, &#x4F7F;&#x7528;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x6765;&#x89E3;&#x91CA;&#x4EE3;&#x7801;</h4><p>ChatGPT&#x53EF;&#x4EE5;&#x7528;&#x7B80;&#x5355;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#xFF08;&#x82F1;&#x6587;&#x3001;&#x4E2D;&#x6587;&#x6216;&#x4EFB;&#x4F55;&#x5176;&#x4ED6;&#x8BED;&#x8A00;&#xFF09;&#x89E3;&#x91CA;&#x4EE3;&#x7801;&#x3002;&#x5BF9;&#x4E8E;&#x521D;&#x5B66;&#x8005;&#x5B66;&#x4E60;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x6216;&#x5BF9;&#x67D0;&#x79CD;&#x8BED;&#x8A00;&#x4E0D;&#x719F;&#x6089;&#x7684;&#x4EBA;&#x6765;&#x8BF4;&#xFF0C;&#x8FD9;&#x975E;&#x5E38;&#x6709;&#x5E2E;&#x52A9;&#x3002;&#x53E6;&#x4E00;&#x4E2A;&#x4F7F;&#x7528;&#x573A;&#x666F;&#x662F;&#xFF0C;&#x5982;&#x679C;&#x60A8;&#x6709;&#x4E00;&#x884C;&#x60A8;&#x4E0D;&#x77E5;&#x9053;&#x529F;&#x80FD;&#x7684;&#x4EE3;&#x7801;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x8F93;&#x5165;&#x8FD9;&#x6BB5;&#x4EE3;&#x7801;&#x5230;ChatGPT&#x4E2D;&#xFF0C;&#x4EE5;&#x627E;&#x51FA;&#x5B83;&#x662F;&#x505A;&#x4EC0;&#x4E48;&#x7684;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-qcrd5vxclrm9vr7ggcssyq-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1864" height="4036" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-qcrd5vxclrm9vr7ggcssyq-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-qcrd5vxclrm9vr7ggcssyq-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-qcrd5vxclrm9vr7ggcssyq-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-qcrd5vxclrm9vr7ggcssyq-2x.png 1864w" sizes="(min-width: 720px) 720px"></figure><p>&#x60A8;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;ChatGPT&#x6765;&#x89E3;&#x7801;&#x6B63;&#x5219;&#x8868;&#x8FBE;&#x5F0F;&#xFF0C;&#x5E76;&#x5411;&#x60A8;&#x89E3;&#x91CA;&#x5B83;&#x4EEC;&#x7684;&#x4F5C;&#x7528;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-o4fnixsdchndsomr_tqrqq-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1780" height="4490" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-o4fnixsdchndsomr_tqrqq-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-o4fnixsdchndsomr_tqrqq-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-o4fnixsdchndsomr_tqrqq-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-o4fnixsdchndsomr_tqrqq-2x.png 1780w" sizes="(min-width: 720px) 720px"></figure><h4 id="linux-%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%A8%A1%E6%8B%9F%E5%99%A8">Linux &#x547D;&#x4EE4;&#x884C;&#x6A21;&#x62DF;&#x5668;</h4><p>ChatGPT&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x6A21;&#x62DF;Linux&#x7EC8;&#x7AEF;&#x3002;&#x901A;&#x8FC7;&#x8981;&#x6C42;&#x5B83;&#x8868;&#x73B0;&#x5F97;&#x50CF;&#x4E00;&#x4E2A;&#x7EC8;&#x7AEF;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x5C06;ChatGPT&#x8F6C;&#x6362;&#x6210;&#x4E00;&#x4E2A;&#x7EC8;&#x7AEF;&#x3002;</p><p>&#x60A8;&#x8FD8;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x5728;&#x63D0;&#x793A;&#x4E2D;&#x660E;&#x786E;&#x89C4;&#x5B9A;&#x89C4;&#x5219;&#xFF0C;&#x6307;&#x793A;ChatGPT&#x4EE5;&#x7279;&#x5B9A;&#x65B9;&#x5F0F;&#x8868;&#x73B0;&#xFF0C;&#x6216;&#x8005;&#x4E0D;&#x6267;&#x884C;&#x67D0;&#x4E9B;&#x64CD;&#x4F5C;&#x3002;&#x8FD9;&#x6837;&#xFF0C;&#x60A8;&#x53EF;&#x4EE5;&#x660E;&#x786E;&#x5730;&#x544A;&#x77E5;ChatGPT&#x5728;&#x6A21;&#x62DF;&#x7EC8;&#x7AEF;&#x65F6;&#x5E94;&#x8BE5;&#x5982;&#x4F55;&#x884C;&#x4E8B;&#x3002;</p><blockquote>I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English, I will do so by putting text inside curly brackets {like this}.</blockquote><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-hqr7zvtr7m2r2ios52uajw-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="2000" height="1967" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-hqr7zvtr7m2r2ios52uajw-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-hqr7zvtr7m2r2ios52uajw-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-hqr7zvtr7m2r2ios52uajw-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-hqr7zvtr7m2r2ios52uajw-2x.png 2032w" sizes="(min-width: 720px) 720px"></figure><p>&#x5982;&#x679C;&#x8981;&#x9000;&#x51FA;&#x6A21;&#x62DF;&#x5668;&#x7684;&#x72B6;&#x6001;&#xFF0C; &#x4F60;&#x53EA;&#x9700;&#x8981;&#x8F93;&#x5165;</p><blockquote>exit</blockquote><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-pglp-u_tn9iz-_a7xgc7da-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="1864" height="474" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-pglp-u_tn9iz-_a7xgc7da-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-pglp-u_tn9iz-_a7xgc7da-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-pglp-u_tn9iz-_a7xgc7da-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-pglp-u_tn9iz-_a7xgc7da-2x.png 1864w" sizes="(min-width: 720px) 720px"></figure><h4 id="sql-%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%A8%A1%E6%8B%9F%E5%99%A8">SQL &#x547D;&#x4EE4;&#x884C;&#x6A21;&#x62DF;&#x5668;</h4><p>ChatGPT&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x6A21;&#x62DF;SQL&#x547D;&#x4EE4;&#x884C;&#x6765;&#x8FD0;&#x884C;SQL&#x8BED;&#x53E5;</p><blockquote>Act as an SQL terminal in front of an example database. The database contains tables named &#x201C;Products&#x201D;, &#x201C;Users&#x201D;, &#x201C;Orders&#x201D; and &#x201C;Suppliers&#x201D;. I will type queries and you will reply with what the terminal would show. I want you to reply with a table of query results in a single code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so in curly braces {like this}.</blockquote><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-0uwpnl6gjvc5qwojms3eha-2x.png" class="kg-image" alt="&#x5982;&#x4F55;&#x6709;&#x6548;&#x5730;&#x4F7F;&#x7528;ChatGPT&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7B2C;&#x4E8C;&#x5F39;&#x200A;&#x2014;&#x200A;&#x91CA;&#x653E;&#x4EE3;&#x7801;&#x7684;&#x6F5C;&#x529B;" loading="lazy" width="2000" height="1870" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-0uwpnl6gjvc5qwojms3eha-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-0uwpnl6gjvc5qwojms3eha-2x.png 1000w, https://liangbo.me/content/images/size/w1600/2024/07/1-0uwpnl6gjvc5qwojms3eha-2x.png 1600w, https://liangbo.me/content/images/2024/07/1-0uwpnl6gjvc5qwojms3eha-2x.png 2004w" sizes="(min-width: 720px) 720px"></figure><p>&#x540C;&#x6837;&#xFF0C; &#x5982;&#x679C;&#x8981;&#x9000;&#x51FA;&#x6A21;&#x62DF;&#x5668;&#x72B6;&#x6001;&#xFF0C; &#x53EA;&#x9700;&#x8981;&#x8F93;&#x5165;</p><blockquote>exit</blockquote><p>&#x6709;&#x66F4;&#x591A;&#x7684;&#x65B9;&#x5F0F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x7F16;&#x7A0B;&#x548C;&#x5176;&#x4ED6;&#x5F00;&#x53D1;&#x4EFB;&#x52A1;&#xFF0C;&#x6211;&#x4EEC;&#x5728;&#x6B64;&#x672A;&#x8BE6;&#x7EC6;&#x5C55;&#x5F00;&#x3002;&#x968F;&#x7740;&#x60A8;&#x7684;&#x9891;&#x7E41;&#x4F7F;&#x7528;&#xFF0C;&#x60A8;&#x5C06;&#x53D1;&#x73B0;&#x66F4;&#x591A;&#x529F;&#x80FD;&#x548C;&#x72EC;&#x7279;&#x7684;&#x7528;&#x9014;&#x3002;</p><p>&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x53EF;&#x4EE5;&#x5C06;ChatGPT&#x4F5C;&#x4E3A;&#x52A9;&#x624B;&#xFF0C;&#x63D0;&#x9AD8;&#x751F;&#x4EA7;&#x529B;&#x5E76;&#x4F18;&#x5316;&#x5DE5;&#x4F5C;&#x6D41;&#x7A0B;&#x3002;ChatGPT&#x4E0D;&#x4F1A;&#x53D6;&#x4EE3;&#x7A0B;&#x5E8F;&#x5458;&#xFF08;&#x81F3;&#x5C11;&#x76EE;&#x524D;&#x4E0D;&#x4F1A;&#xFF09;&#xFF0C;&#x4F46;&#x5B83;&#x63D0;&#x9AD8;&#x4E86;&#x5BF9;&#x7A0B;&#x5E8F;&#x5458;&#x7684;&#x671F;&#x671B;&#xFF0C;&#x5BF9;&#x4ED6;&#x4EEC;&#x63D0;&#x51FA;&#x4E86;&#x66F4;&#x591A;&#x8981;&#x6C42;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x5BF9;&#x4E8E;&#x7F16;&#x7801;&#x8005;&#x548C;&#x5F00;&#x53D1;&#x8005;&#x6765;&#x8BF4;&#xFF0C;&#x5229;&#x7528;&#x6240;&#x6709;&#x53EF;&#x7528;&#x7684;&#x5DE5;&#x5177;&#x4E0D;&#x4EC5;&#x80FD;&#x4FDD;&#x6301;&#x4E0E;&#x65F6;&#x4FF1;&#x8FDB;&#xFF0C;&#x8FD8;&#x80FD;&#x8D70;&#x5728;&#x524D;&#x6CBF;&#x3002;</p><p>&#x5728;ChatGPT&#x7684;&#x5E2E;&#x52A9;&#x4E0B;&#x7F16;&#x7801;&#x53EF;&#x4EE5;&#x4F7F;&#x7A0B;&#x5E8F;&#x5458;&#x66F4;&#x52A0;&#x9AD8;&#x6548;&#xFF0C;&#x5E76;&#x6709;&#x52A9;&#x4E8E;&#x89E3;&#x51B3;&#x96BE;&#x9898;&#x548C;&#x81EA;&#x52A8;&#x5316;&#x7E41;&#x7410;&#x7684;&#x4EFB;&#x52A1;&#x3002;&#x4F46;&#x5B83;&#x4E0D;&#x4F1A;&#x4F7F;&#x60A8;&#x6210;&#x4E3A;&#x4E00;&#x4E2A;&#x4E13;&#x4E1A;&#x7684;&#x7A0B;&#x5E8F;&#x5458;&#xFF0C;&#x8FD9;&#x5176;&#x5B9E;&#x662F;&#x4E00;&#x4EF6;&#x597D;&#x4E8B;&#xFF0C;&#x56E0;&#x4E3A;&#x5982;&#x679C;&#x5B83;&#x80FD;&#x505A;&#x5230;&#xFF0C;&#x90A3;&#x4E48;&#x5B83;&#x5C06;&#x53D6;&#x4EE3;&#x60A8;&#x7684;&#x89D2;&#x8272;&#x3002;</p><p>&#x5728;&#x7F16;&#x7A0B;&#x4E2D;&#x4F7F;&#x7528;ChatGPT&#x53EF;&#x4EE5;&#x8BA9;&#x60A8;&#x6210;&#x4E3A;&#x4E00;&#x4E2A;&#x66F4;&#x9AD8;&#x6548;&#x7684;&#x7A0B;&#x5E8F;&#x5458;&#xFF0C;&#x5E2E;&#x52A9;&#x60A8;&#x514B;&#x670D;&#x56F0;&#x96BE;&#xFF0C;&#x81EA;&#x52A8;&#x5316;&#x7E41;&#x7410;&#x7684;&#x4EFB;&#x52A1;&#x3002;&#x4F46;&#x5B83;&#x4E0D;&#x4F1A;&#x8BA9;&#x60A8;&#x53D8;&#x6210;&#x4E13;&#x4E1A;&#x7684;&#x7A0B;&#x5E8F;&#x5458;&#xFF0C;&#x8FD9;&#x5176;&#x5B9E;&#x662F;&#x4E00;&#x4EF6;&#x597D;&#x4E8B;&#xFF0C;&#x56E0;&#x4E3A;&#x5982;&#x679C;&#x5B83;&#x80FD;&#x505A;&#x5230;&#xFF0C;&#x90A3;&#x4E48;&#x5B83;&#x5C06;&#x53D6;&#x4EE3;&#x60A8;&#x7684;&#x89D2;&#x8272;&#x3002;</p><h3 id="%E4%B8%80%E4%BA%9B%E8%BE%85%E5%8A%A9coding%E7%9A%84ai%E5%B7%A5%E5%85%B7">&#x4E00;&#x4E9B;&#x8F85;&#x52A9;Coding&#x7684;AI&#x5DE5;&#x5177;</h3><p>&#x4F7F;&#x7528;ChatGPT&#x8FDB;&#x884C;&#x7F16;&#x7801;&#x53EA;&#x662F;&#x4F7F;&#x7528;&#x4EBA;&#x5DE5;&#x667A;&#x80FD;&#x8FDB;&#x884C;&#x7F16;&#x7801;&#x7684;&#x4F17;&#x591A;&#x65B9;&#x5F0F;&#x4E4B;&#x4E00;&#x3002;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E9B;&#x53EF;&#x4F9B;&#x60A8;&#x4F7F;&#x7528;&#x7684;&#x7528;&#x4E8E;&#x7F16;&#x7801;&#x7684;ChatGPT&#x66FF;&#x4EE3;&#x65B9;&#x6848;&#xFF0C;&#x901A;&#x8FC7;&#x5C11;&#x91CF;&#x8F93;&#x5165;&#x5B9E;&#x73B0;&#x66F4;&#x591A;&#x529F;&#x80FD;&#x3002;</p><ol><li><a href="https://openai.com/blog/openai-codex/?ref=liangbo.me" rel="noopener">OpenAI Codex</a>&#xFF1A;&#x4E00;&#x79CD;&#x5C06;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x7FFB;&#x8BD1;&#x4E3A;&#x4EE3;&#x7801;&#x7684;AI&#x7CFB;&#x7EDF;&#x3002;Codex&#x7CBE;&#x901A;&#x5341;&#x51E0;&#x79CD;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#xFF0C;&#x53EF;&#x4EE5;&#x89E3;&#x91CA;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x4E2D;&#x7684;&#x7B80;&#x5355;&#x547D;&#x4EE4;&#x5E76;&#x4EE3;&#x8868;&#x7528;&#x6237;&#x6267;&#x884C;&#xFF0C;&#x4F7F;&#x5F97;&#x5728;&#x73B0;&#x6709;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x6784;&#x5EFA;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x63A5;&#x53E3;&#x6210;&#x4E3A;&#x53EF;&#x80FD;&#x3002;</li><li><a href="https://github.com/features/copilot?ref=liangbo.me" rel="noopener">Copilot</a>&#xFF1A;&#x7531;GitHub&#x5F00;&#x53D1;&#x5E76;&#x4F7F;&#x7528;OpenAI Codex&#x7684;&#x7F16;&#x7A0B;&#x4F34;&#x4FA3;&#x3002;&#x5B9E;&#x65F6;&#x5EFA;&#x8BAE;&#x4EE3;&#x7801;&#x548C;&#x6574;&#x4E2A;&#x51FD;&#x6570;&#xFF0C;&#x76F4;&#x63A5;&#x4ECE;&#x7F16;&#x8F91;&#x5668;&#x4E2D;&#x63D0;&#x4F9B;&#x3002;</li><li><a href="https://alphacode.deepmind.com/?ref=liangbo.me" rel="noopener">AlphaCode</a>&#xFF1A;&#x7531;DeepMind&#x5F00;&#x53D1;&#x7684;AI&#x4EE3;&#x7801;&#x751F;&#x6210;&#x5DE5;&#x5177;&#x3002;&#x5B83;&#x4F7F;&#x7528;&#x57FA;&#x4E8E;Transformer&#x7684;&#x8BED;&#x8A00;&#x6A21;&#x578B;&#xFF0C;&#x6839;&#x636E;&#x5BF9;&#x95EE;&#x9898;&#x7684;&#x81EA;&#x7136;&#x8BED;&#x8A00;&#x63CF;&#x8FF0;&#x751F;&#x6210;&#x4EE3;&#x7801;&#x3002;</li><li><a href="https://deepgenx.com/?ref=liangbo.me" rel="noopener">DeepGenX</a>&#xFF1A;&#x4E00;&#x4E2A;&#x514D;&#x8D39;&#x4E14;&#x5F00;&#x6E90;&#x7684;&#x4EE3;&#x7801;&#x751F;&#x6210;&#x5668;&#xFF0C;&#x4F5C;&#x4E3A;Visual Studio Code&#x7684;&#x6269;&#x5C55;&#x529F;&#x80FD;&#x63D0;&#x4F9B;&#x3002;</li><li><a href="https://sourceai.dev/?ref=liangbo.me" rel="noopener">SourceAI</a>&#xFF1A;&#x4E00;&#x79CD;&#x57FA;&#x4E8E;AI&#x7684;&#x5DE5;&#x5177;&#xFF0C;&#x53EF;&#x4EE5;&#x4ECE;&#x4EBA;&#x7C7B;&#x8BED;&#x8A00;&#x63CF;&#x8FF0;&#x4E2D;&#x751F;&#x6210;&#x4EFB;&#x4F55;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x7684;&#x4EE3;&#x7801;&#x3002;&#x5B83;&#x8FD8;&#x53EF;&#x4EE5;&#x7B80;&#x5316;&#x3001;&#x67E5;&#x627E;&#x9519;&#x8BEF;&#x5E76;&#x4FEE;&#x590D;&#x548C;&#x8C03;&#x8BD5;&#x4EE3;&#x7801;&#x3002;</li><li><a href="https://www.tabnine.com/?ref=liangbo.me" rel="noopener">Tabnine</a>&#xFF1A;Tabnine&#x7684;AI&#x4EE3;&#x7801;&#x8865;&#x5168;IDE&#x63D2;&#x4EF6;&#x6839;&#x636E;&#x6570;&#x767E;&#x4E07;&#x4E2A;&#x7A0B;&#x5E8F;&#x4EE5;&#x53CA;&#x60A8;&#x81EA;&#x5DF1;&#x7684;&#x4E0A;&#x4E0B;&#x6587;&#x5B8C;&#x6210;&#x4EE3;&#x7801;&#xFF0C;&#x4F7F;&#x5F00;&#x53D1;&#x8005;&#x80FD;&#x591F;&#x66F4;&#x597D;&#x3001;&#x66F4;&#x5FEB;&#x5730;&#x7F16;&#x5199;&#x4EE3;&#x7801;&#x3002;</li><li><a href="https://www.codeium.com/?ref=liangbo.me" rel="noopener">Codeium</a>&#xFF1A;&#x4E00;&#x79CD;AI&#x7F16;&#x7801;&#x52A9;&#x624B;&#xFF0C;&#x53EF;&#x4EE5;&#x63D0;&#x4F9B;AI&#x751F;&#x6210;&#x7684;&#x8D85;&#x8FC7;20&#x79CD;&#x7F16;&#x7A0B;&#x8BED;&#x8A00;&#x7684;&#x81EA;&#x52A8;&#x5B8C;&#x6210;&#x4EE3;&#x7801;&#xFF0C;&#x5E76;&#x4E0E;&#x5404;&#x79CD;IDE&#xFF08;&#x5982;VSCode&#x3001;Colab&#x3001;Vim&#x7B49;&#xFF09;&#x76F4;&#x63A5;&#x96C6;&#x6210;&#x3002;</li><li><a href="https://huggingface.co/bigcode/starcoder?ref=liangbo.me" rel="noopener">StarCoder</a>: &#x4E00;&#x4E2A;&#x7531;Hugging Face&#x5F00;&#x53D1;&#x7684;&#x4E00;&#x4E2A;VSCode&#x63D2;&#x4EF6;&#xFF0C; &#x53EF;&#x4EE5;&#x5B9E;&#x65F6;&#x5EFA;&#x8BAE;&#x4EE3;&#x7801;&#x548C;&#x751F;&#x6210;&#x4EE3;&#x7801;&#x3002;</li></ol>]]></content:encoded></item><item><title><![CDATA[逆向工程: 将docker镜像”反编译”为Dockerfile]]></title><description><![CDATA[通过研究Docker镜像的内部结构，对Docker镜像进行逆向工程。]]></description><link>https://liangbo.me/e9-80-86-e5-90-91-e5-b7-a5-e7-a8-8b-e5-b0-86docker-e9-95-9c-e5-83-8f-e5-8f-8d-e7-bc-96-e8-af-91-e4-b8-badockerfile/</link><guid isPermaLink="false">66860f1cb6891c0001494cc5</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Fri, 14 Jul 2023 08:35:54 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-nrbqkzo6jiw-2mx-gfrhiw-2x.png" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-nrbqkzo6jiw-2mx-gfrhiw-2x.png" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile"><p>&#x901A;&#x8FC7;&#x7814;&#x7A76;Docker&#x955C;&#x50CF;&#x7684;&#x5185;&#x90E8;&#x7ED3;&#x6784;&#xFF0C;&#x5BF9;Docker&#x955C;&#x50CF;&#x8FDB;&#x884C;&#x9006;&#x5411;&#x5DE5;&#x7A0B;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-iusjchqw_zcarq62e8roca-jpeg.jpg" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="1300" height="700" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-iusjchqw_zcarq62e8roca-jpeg.jpg 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-iusjchqw_zcarq62e8roca-jpeg.jpg 1000w, https://liangbo.me/content/images/2024/07/1-iusjchqw_zcarq62e8roca-jpeg.jpg 1300w" sizes="(min-width: 720px) 720px"></figure><h3 id="tldr">TL;DR</h3><p>&#x5728;&#x672C;&#x6587;&#x4E2D;&#xFF0C; &#x6211;&#x4EEC;&#x5C06;&#x901A;&#x8FC7;&#x7406;&#x89E3;Docker&#x955C;&#x50CF;&#x5982;&#x4F55;&#x5B58;&#x50A8;&#x6570;&#x636E;&#xFF0C; &#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x4F7F;&#x7528;&#x5DE5;&#x5177;&#x67E5;&#x770B;&#x955C;&#x50CF;&#x65B9;&#x65B9;&#x9762;&#x9762;&#x7684;&#x4FE1;&#x606F;&#x6765;&#x9006;&#x5411;&#x5DE5;&#x7A0B;&#x4E00;&#x4E2A;Docker&#x955C;&#x50CF;; &#x4EE5;&#x53CA;&#x5982;&#x4F55;&#x4F7F;&#x7528;Python&#x7684;Docker API&#x6765;&#x6784;&#x5EFA;&#x4E00;&#x4E2A;&#x7C7B;&#x4F3C;<a href="https://github.com/mrhavens/Dedockify?ref=liangbo.me" rel="noopener">Dedockify</a>&#x7684;&#x5DE5;&#x5177;&#x6765;&#x521B;&#x5EFA;Dockerfile&#x3002;</p><h3 id="%E7%AE%80%E4%BB%8B">&#x7B80;&#x4ECB;</h3><p>&#x968F;&#x7740;<a href="https://hub.docker.com/?ref=liangbo.me" rel="noopener">Docker Hub</a>&#x548C;<a href="https://treescale.com/?ref=liangbo.me" rel="noopener">TreeScale</a>&#x7B49;&#x516C;&#x5171;Docker Registry&#x53D8;&#x5F97;&#x8D8A;&#x6765;&#x8D8A;&#x6D41;&#x884C;&#xFF0C;&#x7BA1;&#x7406;&#x5458;&#x548C;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x4E0B;&#x8F7D;&#x4E0D;&#x660E;&#x6765;&#x6E90;&#x7684;Docker&#x955C;&#x50CF;&#x53D8;&#x5F97;&#x8D8A;&#x6765;&#x8D8A;&#x5E38;&#x89C1;&#x3002;&#x5728;&#x5927;&#x591A;&#x6570;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x4FBF;&#x5229;&#x6027;&#x80DC;&#x8FC7;&#x53EF;&#x9884;&#x77E5;&#x7684;&#x98CE;&#x9669;&#x3002;&#x5728;&#x901A;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5F53;&#x4E00;&#x4E2A;Docker&#x955C;&#x50CF;&#x88AB;&#x53D1;&#x5E03;&#x540E;&#xFF0C;&#x5B83;&#x4F1A;&#x76F4;&#x63A5;&#x51FA;&#x73B0;&#x5728;&#x5217;&#x8868;&#x4E2D;&#x3001;git&#x4ED3;&#x5E93;&#x4E2D;&#x6216;&#x901A;&#x8FC7;&#x76F8;&#x5173;&#x94FE;&#x63A5;&#x63D0;&#x4F9B;&#x3002;&#x6709;&#x65F6;&#x5019;&#x955C;&#x50CF;&#x5E76;&#x6CA1;&#x6709;&#x63D0;&#x4F9B;Dockerfile&#x3002;&#x5373;&#x4F7F;&#x63D0;&#x4F9B;&#x4E86;Dockerfile&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x5F88;&#x96BE;&#x4FDD;&#x8BC1;&#x9884;&#x6784;&#x5EFA;&#x7684;&#x955C;&#x50CF;&#x5C31;&#x662F;&#x7531;&#x7ED9;&#x51FA;&#x7684;Dockerfile&#x6784;&#x5EFA;&#x7684;&#xFF0C;&#x8FD9;&#x4E9B;&#x955C;&#x50CF;&#x5BF9;&#x4E8E;&#x6211;&#x4EEC;&#x800C;&#x8A00;&#xFF0C; &#x5C31;&#x662F;&#x4E00;&#x4E2A;&#x9ED1;&#x76D2;&#x5B50;&#xFF0C;&#x6211;&#x4EEC;&#x751A;&#x81F3;&#x65E0;&#x6CD5;&#x4FDD;&#x8BC1;&#x5176;&#x4F7F;&#x7528;&#x7684;&#x5B89;&#x5168;&#x6027;&#x3002;</p><p>&#x4E5F;&#x8BB8;&#x60A8;&#x5E76;&#x4E0D;&#x5173;&#x5FC3;&#x5B89;&#x5168;&#x6F0F;&#x6D1E;, &#x60A8;&#x53EF;&#x80FD;&#x53EA;&#x662F;&#x60F3;&#x66F4;&#x65B0;&#x5E73;&#x65F6;&#x7528;&#x7684;&#x6BD4;&#x8F83;&#x591A;&#x7684;&#x955C;&#x50CF;&#xFF0C; &#x4F8B;&#x5982;nginx&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x591F;&#x8FD0;&#x884C;&#x5728;&#x6700;&#x65B0;&#x7248;&#x672C;&#x7684;Ubuntu&#x4E0A;&#x3002;&#x53C8;&#x6216;&#x8005;&#xFF0C;&#x4F60;&#x4F1A;&#x60F3;&#x8981;&#x53D1;&#x5E03;&#x4E00;&#x4E2A;&#x66F4;&#x4F18;&#x5316;&#x7684;&#x955C;&#x50CF;&#xFF0C;&#x56E0;&#x4E3A;&#x53E6;&#x4E00;&#x4E2A;&#x53D1;&#x884C;&#x7248;&#x7684;&#x7F16;&#x8BD1;&#x5668;&#x66F4;&#x9002;&#x5408;&#x5728;&#x7F16;&#x8BD1;&#x65F6;&#x751F;&#x6210;&#x4E8C;&#x8FDB;&#x5236;&#x6587;&#x4EF6;&#x3002;</p><p>&#x4E0D;&#x7BA1;&#x4EC0;&#x4E48;&#x539F;&#x56E0;&#xFF0C;&#x6211;&#x4EEC;&#x90FD;&#x9700;&#x8981;&#x5C06;&#x955C;&#x50CF;&#x6062;&#x590D;&#x6210;Dockerfile&#x7684;&#x9009;&#x9879;&#x3002;Docker&#x955C;&#x50CF;&#x5E76;&#x4E0D;&#x662F;&#x4E00;&#x4E2A;&#x9ED1;&#x76D2;&#x5B50;&#x3002;&#x91CD;&#x5EFA;Dockerfile&#x6240;&#x9700;&#x7684;&#x5927;&#x90E8;&#x5206;&#x4FE1;&#x606F;&#x90FD;&#x53EF;&#x4EE5;&#x88AB;&#x68C0;&#x7D22;&#x5230;&#x3002;&#x901A;&#x8FC7;&#x89C2;&#x5BDF;Docker&#x955C;&#x50CF;&#x5185;&#x90E8;&#x5E76;&#x68C0;&#x67E5;&#x5176;&#x5185;&#x90E8;&#x7ED3;&#x6784;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x80FD;&#x591F;&#x4ECE;&#x4E00;&#x4E2A;&#x4EFB;&#x610F;&#x7684;&#x9884;&#x7F16;&#x8BD1;&#x5BB9;&#x5668;&#x4E2D;&#x91CD;&#x5EFA;&#x4E00;&#x4E2A;Dockerfile&#x3002;</p><p>&#x5728;&#x672C;&#x6587;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x5C55;&#x793A;&#x5982;&#x4F55;&#x4F7F;&#x7528;&#x4E24;&#x4E2A;&#x5DE5;&#x5177;&#x4ECE;&#x955C;&#x50CF;&#x4E2D;&#x91CD;&#x5EFA;Dockerfile&#xFF1A; &#x524D;&#x9762;&#x63D0;&#x53CA;&#x7684;Dedockify&#x662F;&#x4E00;&#x4E2A;&#x7684;Python&#x811A;&#x672C;&#xFF0C;Dive&#x662F;&#x4E00;&#x4E2A;Docker&#x955C;&#x50CF;&#x6D4F;&#x89C8;&#x5DE5;&#x5177;&#x3002;&#x4F7F;&#x7528;&#x7684;&#x57FA;&#x672C;&#x6D41;&#x7A0B;&#x5982;&#x4E0B;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-xlp2cnddgar0pdqrg7g_xg-2x.png" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="1394" height="320" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-xlp2cnddgar0pdqrg7g_xg-2x.png 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-xlp2cnddgar0pdqrg7g_xg-2x.png 1000w, https://liangbo.me/content/images/2024/07/1-xlp2cnddgar0pdqrg7g_xg-2x.png 1394w" sizes="(min-width: 720px) 720px"></figure><h3 id="%E4%BD%BF%E7%94%A8-dive">&#x4F7F;&#x7528; Dive</h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-ww77sztejc2rccvz1cyw2a.gif" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="600" height="349" srcset="https://liangbo.me/content/images/2024/07/1-ww77sztejc2rccvz1cyw2a.gif 600w"><figcaption>Dive demo</figcaption></figure><p>&#x4E3A;&#x4E86;&#x5FEB;&#x901F;&#x4E86;&#x89E3;&#x955C;&#x50CF;&#x662F;&#x5982;&#x4F55;&#x7EC4;&#x6210;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;Dive&#x5B66;&#x4E60;&#x4E00;&#x4E9B;&#x9AD8;&#x7EA7;&#x7684;&#x3001;&#x53EF;&#x80FD;&#x5BF9;&#x6211;&#x4EEC;&#x6765;&#x8BF4;&#x4E0D;&#x719F;&#x6089;&#x7684;Docker&#x6982;&#x5FF5;&#x3002;Dive&#x5DE5;&#x5177;&#x53EF;&#x4EE5;&#x68C0;&#x67E5;Docker&#x955C;&#x50CF;&#x7684;&#x6BCF;&#x4E00;&#x5C42;(Layer)&#x3002;</p><p>&#x8BA9;&#x6211;&#x4EEC;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;<em>Dockerfile</em>&#xFF0C;&#x7528;&#x4E8E;&#x6D4B;&#x8BD5;&#x3002;</p><p>&#x628A;&#x8FD9;&#x4E2A;&#x4EE3;&#x7801;&#x6BB5;&#x76F4;&#x63A5;&#x8D34;&#x5230;&#x88C5;&#x6709;Docker&#x7684;linux&#x4E3B;&#x673A;&#x547D;&#x4EE4;&#x884C;&#x4E2D;&#xFF1A;</p><pre><code class="language-bash">mkdir $HOME/test1 
cd $HOME/test1 
cat &gt; Dockerfile &lt;&lt; EOF ; touch testfile1 testfile2 testfile3 
FROM scratch 
COPY testfile1 / 
COPY testfile2 / 
COPY testfile3 / 
EOF</code></pre><p>&#x8F93;&#x5165;&#x4EE5;&#x4E0A;&#x5185;&#x5BB9;&#x5E76;&#x56DE;&#x8F66;&#xFF0C;&#x6211;&#x4EEC;&#x5C31;&#x521B;&#x5EFA;&#x4E86;&#x4E00;&#x4E2A;&#x65B0;&#x7684;Dockerfile&#xFF0C;&#x5E76;&#x5728;&#x540C;&#x4E00;&#x76EE;&#x5F55;&#x4E0B;&#x586B;&#x5145;&#x4E86;3&#x4E2A;&#x96F6;&#x5B57;&#x8282;&#x7684;&#x6D4B;&#x8BD5;&#x6587;&#x4EF6;&#x3002;</p><pre><code class="language-shell">$ ls 
Dockerfile  testfile1  testfile2  testfile3</code></pre><p>&#x73B0;&#x5728;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x8FD9;&#x4E2A;Dockerfile&#x6784;&#x5EFA;&#x4E00;&#x4E2A;&#x955C;&#x50CF;&#xFF0C;&#x5E76;&#x6807;&#x8BB0;&#x4E3A;example1&#x3002;</p><pre><code class="language-typescript">docker build . -t example1</code></pre><p>&#x6784;&#x5EFA;example1&#x955C;&#x50CF;&#x65F6;&#x4F1A;&#x4EA7;&#x751F;&#x4EE5;&#x4E0B;&#x8F93;&#x51FA;&#xFF1A;</p><pre><code class="language-sql">Sending build context to Docker daemon  3.584kB 
Step 1/4 : FROM scratch 
 ---&gt; 
Step 2/4 : COPY testfile1 / 
 ---&gt; a9cc49948e40 
Step 3/4 : COPY testfile2 / 
 ---&gt; 84acff3a5554 
Step 4/4 : COPY testfile3 / 
 ---&gt; 374e0127c1bc 
Successfully built 374e0127c1bc 
Successfully tagged example1:latest</code></pre><p>&#x73B0;&#x5728;&#x6211;&#x4EEC;&#x521A;&#x6784;&#x5EFA;&#x7684;example1&#x955C;&#x50CF;&#x5C31;&#x5DF2;&#x7ECF;&#x5B8C;&#x6210;&#x4E86;&#xFF1A;</p><pre><code class="language-bash">$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE 
example1            latest              374e0127c1bc        31 seconds ago      0B</code></pre><p>&#x7531;&#x4E8E;&#x6CA1;&#x6709;&#x53EF;&#x6267;&#x884C;&#x6587;&#x4EF6;&#xFF0C;&#x6240;&#x4EE5;&#x8BE5;&#x955C;&#x50CF;&#x5C06;&#x65E0;&#x6CD5;&#x8FD0;&#x884C;&#x3002;&#x6211;&#x4EEC;&#x4EC5;&#x5C06;&#x5176;&#x4F5C;&#x4E3A;&#x4E00;&#x4E2A;&#x7B80;&#x5316;&#x7684;&#x793A;&#x4F8B;&#xFF0C;&#x8BF4;&#x660E;&#x5982;&#x4F55;&#x5728;Docker&#x955C;&#x50CF;&#x4E2D;&#x67E5;&#x770B;&#x5B58;&#x50A8;&#x5C42;(Layer)&#x3002;</p><p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4ECE;&#x955C;&#x50CF;&#x7684;&#x5927;&#x5C0F;&#x770B;&#x51FA;&#xFF0C;&#x8FD9;&#x91CC;&#x6CA1;&#x6709;&#x6E90;&#x955C;&#x50CF;&#x3002;&#x6211;&#x4EEC;&#x4F7F;&#x7528;scratch&#x6765;&#x4EE3;&#x66FF;&#x6E90;&#x955C;&#x50CF;&#xFF0C;&#x5B83;&#x8BA9;Docker&#x4F7F;&#x7528;&#x4E00;&#x4E2A;&#x96F6;&#x5B57;&#x8282;&#x7684;&#x7A7A;&#x767D;&#x955C;&#x50CF;&#x4F5C;&#x4E3A;&#x6E90;&#x955C;&#x50CF;&#x3002;&#x7136;&#x540E;&#xFF0C;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x590D;&#x5236;&#x4E09;&#x4E2A;&#x989D;&#x5916;&#x7684;&#x96F6;&#x5B57;&#x8282;&#x6D4B;&#x8BD5;&#x6587;&#x4EF6;&#x6765;&#x4FEE;&#x6539;&#x7A7A;&#x767D;&#x955C;&#x50CF;&#xFF0C;&#x5E76;&#x5C06;&#x4FEE;&#x6539;&#x6807;&#x8BB0;&#x4E3A;example1&#x3002;</p><p>&#x73B0;&#x5728;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x7528;Dive&#x6765;&#x67E5;&#x770B;&#x8FD9;&#x4E2A;&#x65B0;&#x955C;&#x50CF;&#x3002;</p><pre><code class="language-bash">docker run --rm -it \ 
    -v /var/run/docker.sock:/var/run/docker.sock \ 
    wagoodman/dive:latest example1</code></pre><p>&#x6267;&#x884C;&#x4E0A;&#x8FF0;&#x547D;&#x4EE4;&#x5C06;&#x81EA;&#x52A8;&#x4ECE;Docker Hub&#x62C9;&#x53D6;wagoodman/dive&#x955C;&#x50CF;&#xFF0C;&#x5E76;&#x4EA7;&#x751F;Dive&#x7684;&#x8F93;&#x51FA;&#x3002;</p><pre><code class="language-yaml">Unable to find image &apos;wagoodman/dive:latest&apos; locally 
latest: Pulling from wagoodman/dive 
89d9c30c1d48: Pull complete 
5ac8ae86f99b: Pull complete 
f10575f61141: Pull complete 
Digest: sha256:2d3be9e9362ecdcb04bf3afdd402a785b877e3bcca3d2fc6e10a83d99ce0955f 
Status: Downloaded newer image for wagoodman/dive:latest 
Image Source: docker://example-image 
Fetching image... (this can take a while for large images) 
Analyzing image... 
Building cache...</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-guluyja5dk02afwtddg3fa-png.jpg" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="1071" height="399" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-guluyja5dk02afwtddg3fa-png.jpg 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-guluyja5dk02afwtddg3fa-png.jpg 1000w, https://liangbo.me/content/images/2024/07/1-guluyja5dk02afwtddg3fa-png.jpg 1071w" sizes="(min-width: 720px) 720px"></figure><p>&#x5728;&#x5217;&#x8868;&#x4E2D;&#x4E0A;&#x4E0B;&#x9009;&#x62E9;&#x955C;&#x50CF;&#x7684;&#x4E09;&#x4E2A;&#x56FE;&#x5C42;&#xFF0C;&#x5728;&#x53F3;&#x4FA7;&#x663E;&#x793A;&#x7684;&#x76EE;&#x5F55;&#x6811;&#x4E2D;&#x627E;&#x5230;&#x4E09;&#x4E2A;&#x6587;&#x4EF6;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-evbfu3v1oeqts3r494knlq-png.jpg" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="1072" height="399" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-evbfu3v1oeqts3r494knlq-png.jpg 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-evbfu3v1oeqts3r494knlq-png.jpg 1000w, https://liangbo.me/content/images/2024/07/1-evbfu3v1oeqts3r494knlq-png.jpg 1072w" sizes="(min-width: 720px) 720px"></figure><p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x53F3;&#x4FA7;&#x7684;&#x5185;&#x5BB9;&#x968F;&#x7740;&#x9009;&#x62E9;&#x6BCF;&#x4E00;&#x5C42;&#x800C;&#x53D8;&#x5316;&#x3002;&#x5F53;&#x6BCF;&#x4E2A;&#x6587;&#x4EF6;&#x88AB;&#x590D;&#x5236;&#x5230;&#x4E00;&#x4E2A;&#x7A7A;&#x767D;&#x7684;Docker&#x4ECE;&#x5934;&#x955C;&#x50CF;&#x65F6;&#xFF0C;&#x5B83;&#x88AB;&#x5B58;&#x50A8;&#x4E3A;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x5C42;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-ejroxjfu0_eaqffyzrfeia-png.jpg" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="1072" height="399" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-ejroxjfu0_eaqffyzrfeia-png.jpg 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-ejroxjfu0_eaqffyzrfeia-png.jpg 1000w, https://liangbo.me/content/images/2024/07/1-ejroxjfu0_eaqffyzrfeia-png.jpg 1072w" sizes="(min-width: 720px) 720px"></figure><p>&#x5982;&#x679C;&#x60A8;&#x6CE8;&#x610F;&#x5230;&#x7684;&#x8BDD;&#xFF0C; &#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x751F;&#x6210;&#x6BCF;&#x4E2A;&#x5C42;&#x6240;&#x4F7F;&#x7528;&#x7684;&#x547D;&#x4EE4;&#x3002;&#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6E90;&#x6587;&#x4EF6;&#x548C;&#x66F4;&#x65B0;&#x6587;&#x4EF6;&#x7684;&#x54C8;&#x5E0C;&#x503C;&#x3002;</p><p>&#x5982;&#x679C;&#x6211;&#x4EEC;&#x6CE8;&#x610F;&#x5230;Command:&#x90E8;&#x5206;&#xFF0C;&#x6211;&#x4EEC;&#x5E94;&#x8BE5;&#x770B;&#x5230;&#x4EE5;&#x4E0B;&#x5185;&#x5BB9;&#xFF1A;</p><pre><code class="language-bash">#(nop) COPY file:e3c862873fa89cbf2870e2afb7f411d5367d37a4aea01f2620f7314d3370edcc in / 
#(nop) COPY file:2a949ad55eee33f6191c82c4554fe83e069d84e9d9d8802f5584c34e79e5622c in / 
#(nop) COPY file:aa717ff85b39d3ed034eed42bc1186230cfca081010d9dde956468decdf8bf20 in /</code></pre><p>&#x6BCF;&#x4E2A;&#x547D;&#x4EE4;&#x90FD;&#x63D0;&#x4F9B;&#x4E86;Dockerfile&#x4E2D;&#x7528;&#x4E8E;&#x751F;&#x6210;&#x955C;&#x50CF;&#x7684;&#x539F;&#x59CB;&#x547D;&#x4EE4;&#x3002;&#x4F46;&#x662F;&#xFF0C;&#x539F;&#x59CB;&#x6587;&#x4EF6;&#x540D;&#x4E22;&#x5931;&#x4E86;&#x3002;&#x770B;&#x6765;&#x6062;&#x590D;&#x8BE5;&#x4FE1;&#x606F;&#x7684;&#x552F;&#x4E00;&#x65B9;&#x6CD5;&#x662F;&#x89C2;&#x5BDF;&#x76EE;&#x6807;&#x6587;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x53D8;&#x5316;&#xFF0C;&#x6216;&#x8005;&#x6839;&#x636E;&#x5176;&#x4ED6;&#x7EC6;&#x8282;&#x8FDB;&#x884C;&#x63A8;&#x65AD;&#x3002;&#x7A0D;&#x540E;&#x518D;&#x8BE6;&#x8FF0;&#x3002;</p><h3 id="docker-history">Docker History</h3><p>&#x9664;&#x4E86;&#x50CF;dive&#x8FD9;&#x6837;&#x7684;&#x7B2C;&#x4E09;&#x65B9;&#x5DE5;&#x5177;&#x4E4B;&#x5916;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x968F;&#x624B;&#x4F7F;&#x7528;&#x7684;&#x5DE5;&#x5177;&#x662F;docker history&#x3002;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x5728;example1&#x955C;&#x50CF;&#x4E0A;&#x4F7F;&#x7528;docker history&#x547D;&#x4EE4;&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x67E5;&#x770B;&#x6211;&#x4EEC;&#x5728;Dockerfile&#x4E2D;&#x521B;&#x5EFA;&#x8BE5;&#x955C;&#x50CF;&#x65F6;&#x4F7F;&#x7528;&#x7684;&#x6761;&#x76EE;&#x3002;</p><pre><code class="language-bash">docker history example1</code></pre><p>&#x8FD0;&#x884C;&#x73A9;&#x5E94;&#x8BE5;&#x5F97;&#x5230;&#x4EE5;&#x4E0B;&#x7ED3;&#x679C;&#xFF1A;</p><pre><code class="language-bash">IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT 
374e0127c1bc        25 minutes ago      /bin/sh -c #(nop) COPY file:aa717ff85b39d3ed&#x2026;   0B 
84acff3a5554        25 minutes ago      /bin/sh -c #(nop) COPY file:2a949ad55eee33f6&#x2026;   0B 
a9cc49948e40        25 minutes ago      /bin/sh -c #(nop) COPY file:e3c862873fa89cbf&#x2026;   0B</code></pre><p>CREATED BY&#x5217;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x5185;&#x5BB9;&#x90FD;&#x88AB;&#x622A;&#x65AD;&#x4E86;&#x3002;&#x8FD9;&#x4E9B;&#x662F;&#x901A;&#x8FC7;Bourne shell&#x4F20;&#x9012;&#x7684;Dockerfile&#x6307;&#x4EE4;&#x3002;&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#x5BF9;&#x4E8E;&#x91CD;&#x65B0;&#x521B;&#x5EFA;&#x6211;&#x4EEC;&#x7684;Dockerfile&#x53EF;&#x80FD;&#x5F88;&#x6709;&#x7528;&#xFF0C;&#x867D;&#x7136;&#x5728;&#x8FD9;&#x91CC;&#x88AB;&#x622A;&#x65AD;&#x4E86;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x4EEC;&#x4E5F;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4F7F;&#x7528;no-trunc&#x9009;&#x9879;&#x6765;&#x67E5;&#x770B;&#x5B8C;&#x6574;&#x7684;&#x4FE1;&#x606F;&#xFF1A;</p><pre><code class="language-bash">$ docker history example1 --no-trunc 
IMAGE                                                                     CREATED             CREATED BY                                                                                           SIZE                COMMENT 
sha256:374e0127c1bc51bca9330c01a9956be163850162f3c9f3be0340bb142bc57d81   29 minutes ago      /bin/sh -c #(nop) COPY file:aa717ff85b39d3ed034eed42bc1186230cfca081010d9dde956468decdf8bf20 in /    0B 
sha256:84acff3a5554aea9a3a98549286347dd466d46db6aa7c2e13bb77f0012490cef   29 minutes ago      /bin/sh -c #(nop) COPY file:2a949ad55eee33f6191c82c4554fe83e069d84e9d9d8802f5584c34e79e5622c in /    0B 
sha256:a9cc49948e40d15166b06dab42ea0e388f9905dfdddee7092f9f291d481467fc   29 minutes ago      /bin/sh -c #(nop) COPY file:e3c862873fa89cbf2870e2afb7f411d5367d37a4aea01f2620f7314d3370edcc in /    0B</code></pre><p>&#x867D;&#x7136;&#x8FD9;&#x6709;&#x4E00;&#x4E9B;&#x6709;&#x7528;&#x7684;&#x4FE1;&#x606F;&#xFF0C;&#x4F46;&#x4ECE;&#x547D;&#x4EE4;&#x884C;&#x8FD8;&#x539F;&#x5B83;&#x53EF;&#x80FD;&#x8FD8;&#x6709;&#x4E9B;&#x6311;&#x6218;&#x3002;&#x6211;&#x4EEC;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;docker inspect&#x3002;&#x7136;&#x800C;&#xFF0C;&#x5728;&#x672C;&#x6587;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x4E13;&#x6CE8;&#x4E8E;&#x4F7F;&#x7528;Python&#x7684;Docker Engine API&#x3002;</p><h3 id="%E4%BD%BF%E7%94%A8-python-docker-engine-api">&#x4F7F;&#x7528; Python Docker Engine API</h3><p>Docker&#x53D1;&#x5E03;&#x4E86;&#x4E00;&#x4E2A;&#x9488;&#x5BF9;Docker Engine API&#x7684;Python&#x5E93;&#xFF0C;&#x5141;&#x8BB8;&#x5728;Python&#x4E2D;&#x7BA1;&#x7406;Docker&#x3002;&#x5728;&#x4E0B;&#x9762;&#x7684;&#x793A;&#x4F8B;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x8FD0;&#x884C;&#x4E0B;&#x9762;&#x7684;Python 3&#x4EE3;&#x7801;&#x6765;&#x6062;&#x590D;&#x4E0E;docker history&#x7C7B;&#x4F3C;&#x7684;&#x4FE1;&#x606F;&#xFF1A;</p><pre><code class="language-python">#!/usr/bin/python3 
 
import docker 
 
cli = docker.APIClient(base_url=&apos;unix://var/run/docker.sock&apos;) 
print (cli.history(&apos;example1&apos;))</code></pre><p>&#x8F93;&#x51FA;&#x7ED3;&#x679C;&#x5982;&#x4E0B;:</p><blockquote>[{&apos;Comment&apos;: &apos;&apos;, &apos;Created&apos;: 1583008507, &apos;CreatedBy&apos;: &apos;/bin/sh -c #(nop) COPY file:aa717ff85b39d3ed034eed42bc1186230cfca081010d9dde956468decdf8bf20 in / &apos;, &apos;Id&apos;: &apos;sha256:374e0127c1bc51bca9330c01a9956be163850162f3c9f3be0340bb142bc57d81&apos;, &apos;Size&apos;: 0, &apos;Tags&apos;: [&apos;example:latest&apos;]}, {&apos;Comment&apos;: &apos;&apos;, &apos;Created&apos;: 1583008507, &apos;CreatedBy&apos;: &apos;/bin/sh -c #(nop) COPY file:2a949ad55eee33f6191c82c4554fe83e069d84e9d9d8802f5584c34e79e5622c in / &apos;, &apos;Id&apos;: &apos;sha256:84acff3a5554aea9a3a98549286347dd466d46db6aa7c2e13bb77f0012490cef&apos;, &apos;Size&apos;: 0, &apos;Tags&apos;: None}, {&apos;Comment&apos;: &apos;&apos;, &apos;Created&apos;: 1583008507, &apos;CreatedBy&apos;: &apos;/bin/sh -c #(nop) COPY file:e3c862873fa89cbf2870e2afb7f411d5367d37a4aea01f2620f7314d3370edcc in / &apos;, &apos;Id&apos;: &apos;sha256:a9cc49948e40d15166b06dab42ea0e388f9905dfdddee7092f9f291d481467fc&apos;, &apos;Size&apos;: 0, &apos;Tags&apos;: None}]</blockquote><p>&#x6839;&#x636E;&#x8F93;&#x51FA;&#x7ED3;&#x679C;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x53D1;&#x73B0;&#xFF0C; &#x5982;&#x679C;&#x91CD;&#x5EFA;Dockerfile&#x7684;&#x5185;&#x5BB9;&#xFF0C; &#x53EA;&#x9700;&#x8981;&#x89E3;&#x6790;&#x6240;&#x6709;&#x76F8;&#x5173;&#x6570;&#x636E;&#x5E76;&#x5C06;&#x5176;&#x987A;&#x5E8F;&#x53CD;&#x8F6C;&#x4E00;&#x4E0B;&#x3002;&#x4F46;&#x662F;&#x6B63;&#x5982;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x770B;&#x5230;&#x7684;&#xFF0C;&#x6211;&#x4EEC;&#x4E5F;&#x6CE8;&#x610F;&#x5230;&#x5728;COPY&#x6307;&#x4EE4;&#x4E2D;&#x6709;&#x4E00;&#x4E9B;&#x88AB;&#x54C8;&#x5E0C;(Hash)&#x8FC7;&#x7684;&#x5185;&#x5BB9;&#x3002;&#x5982;&#x524D;&#x6240;&#x8FF0;&#xFF0C;&#x8FD9;&#x91CC;&#x7684;&#x88AB;&#x54C8;&#x5E0C;&#x8FC7;&#x7684;&#x5185;&#x5BB9;&#x4EE3;&#x8868;&#x4ECE;&#x5C42;&#x5916;&#x4F7F;&#x7528;&#x7684;&#x6587;&#x4EF6;&#x540D;&#x3002;&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#x65E0;&#x6CD5;&#x76F4;&#x63A5;&#x6062;&#x590D;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x6B63;&#x5982;&#x6211;&#x4EEC;&#x5728; Dive &#x4E2D;&#x770B;&#x5230;&#x7684;&#xFF0C;&#x5F53;&#x6211;&#x4EEC;&#x641C;&#x7D22;&#x5BF9;&#x8BE5;&#x955C;&#x50CF;&#x5C42;&#x6240;&#x505A;&#x7684;&#x66F4;&#x6539;&#x65F6;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x63A8;&#x65AD;&#x51FA;&#x8FD9;&#x4E9B;&#x540D;&#x79F0;&#x3002;&#x6709;&#x65F6;&#xFF0C;&#x5728;&#x539F;&#x59CB;&#x590D;&#x5236;&#x6307;&#x4EE4;&#x5C06;&#x76EE;&#x6807;&#x6587;&#x4EF6;&#x540D;&#x4F5C;&#x4E3A;&#x76EE;&#x6807;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x63A8;&#x65AD;&#x51FA;&#x8FD9;&#x4E9B;&#x6587;&#x4EF6;&#x540D;&#x3002;&#x5728;&#x5176;&#x4ED6;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6587;&#x4EF6;&#x540D;&#x53EF;&#x80FD;&#x5E76;&#x4E0D;&#x91CD;&#x8981;&#xFF0C;&#x5141;&#x8BB8;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x4EFB;&#x610F;&#x6587;&#x4EF6;&#x540D;&#x3002;&#x800C;&#x5728;&#x5176;&#x4ED6;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x867D;&#x7136;&#x66F4;&#x96BE;&#x8BC4;&#x4F30;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x63A8;&#x65AD;&#x51FA;&#x5728;&#x7CFB;&#x7EDF;&#x4E2D;&#x5176;&#x4ED6;&#x5730;&#x65B9;&#x88AB;&#x53CD;&#x5411;&#x5F15;&#x7528;&#x7684;&#x6587;&#x4EF6;&#x540D;&#xFF0C;&#x4F8B;&#x5982;&#x5728;&#x811A;&#x672C;&#x6216;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x7B49;&#x652F;&#x6301;&#x4F9D;&#x8D56;&#x4E2D;&#x3002;&#x4F46;&#x65E0;&#x8BBA;&#x5982;&#x4F55;&#xFF0C;&#x641C;&#x7D22;&#x5C42;&#x4E4B;&#x95F4;&#x7684;&#x6240;&#x6709;&#x53D8;&#x5316;&#x662F;&#x6700;&#x53EF;&#x9760;&#x7684;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-smjqxcnjqch1pbi2p4tm-q-png.jpg" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="1100" height="629" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-smjqxcnjqch1pbi2p4tm-q-png.jpg 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-smjqxcnjqch1pbi2p4tm-q-png.jpg 1000w, https://liangbo.me/content/images/2024/07/1-smjqxcnjqch1pbi2p4tm-q-png.jpg 1100w" sizes="(min-width: 720px) 720px"></figure><h3 id="dedockify">Dedockify</h3><p>&#x8BA9;&#x6211;&#x4EEC;&#x518D;&#x6DF1;&#x5165;&#x51E0;&#x6B65;&#x3002;&#x4E3A;&#x4E86;&#x66F4;&#x597D;&#x5730;&#x9006;&#x5411;&#x8BE5;&#x955C;&#x50CF;&#x8F6C;&#x6362;&#x4E3A;Dockerfile&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x89E3;&#x6790;&#x6240;&#x6709;&#x5185;&#x5BB9;&#x5E76;&#x5C06;&#x5176;&#x91CD;&#x65B0;&#x683C;&#x5F0F;&#x5316;&#x4E3A;&#x53EF;&#x8BFB;&#x7684;&#x5F62;&#x5F0F;&#x3002;&#x4E3A;&#x4E86;&#x7B80;&#x5316;&#x6211;&#x4EEC;&#x7684;&#x5B9E;&#x9A8C;&#xFF0C; &#x4EE5;&#x4E0B;&#x4EE3;&#x7801;&#x5DF2;&#x7ECF;&#x53EF;&#x4EE5;&#x4ECE;GitHub&#x4E0A;&#x7684;<a href="https://github.com/mrhavens/Dedockify?ref=liangbo.me" rel="noopener">Dedockify</a>&#x4ED3;&#x5E93;&#x83B7;&#x53D6;&#x3002;&#x611F;&#x8C22; <a href="https://github.com/LanikSJ?ref=liangbo.me" rel="noopener">LanikSJ</a> &#x6240;&#x6709;&#x57FA;&#x7840;&#x5DE5;&#x4F5C;&#x548C;&#x7F16;&#x7801;&#x3002;</p><pre><code class="language-python">from sys import argv 
import docker 
 
class ImageNotFound(Exception): 
    pass 
 
class MainObj: 
    def __init__(self): 
        super(MainObj, self).__init__() 
        self.commands = [] 
        self.cli = docker.APIClient(base_url=&apos;unix://var/run/docker.sock&apos;) 
        self._get_image(argv[-1]) 
        self.hist = self.cli.history(self.img[&apos;RepoTags&apos;][0]) 
        self._parse_history() 
        self.commands.reverse() 
        self._print_commands() 
 
    def _print_commands(self): 
        for i in self.commands: 
            print(i) 
 
    def _get_image(self, img_hash): 
        images = self.cli.images() 
        for i in images: 
            if img_hash in i[&apos;Id&apos;]: 
                self.img = i 
                return 
        raise ImageNotFound(&quot;Image {} not found\n&quot;.format(img_hash)) 
 
    def _insert_step(self, step): 
        if &quot;#(nop)&quot; in step: 
            to_add = step.split(&quot;#(nop) &quot;)[1] 
        else: 
            to_add = (&quot;RUN {}&quot;.format(step)) 
        to_add = to_add.replace(&quot;&amp;&amp;&quot;, &quot;\\\n    &amp;&amp;&quot;) 
        self.commands.append(to_add.strip(&apos; &apos;)) 
 
    def _parse_history(self, rec=False): 
        first_tag = False 
        actual_tag = False 
        for i in self.hist: 
            if i[&apos;Tags&apos;]: 
                actual_tag = i[&apos;Tags&apos;][0] 
                if first_tag and not rec: 
                    break 
                first_tag = True 
            self._insert_step(i[&apos;CreatedBy&apos;]) 
        if not rec: 
            self.commands.append(&quot;FROM {}&quot;.format(actual_tag)) 
 
__main__ = MainObj()</code></pre><h4 id="%E7%94%9F%E6%88%90%E5%88%9D%E5%A7%8B-dockerfile">&#x751F;&#x6210;&#x521D;&#x59CB; Dockerfile</h4><p>&#x5982;&#x679C;&#x60A8;&#x5DF2;&#x7ECF;&#x5B8C;&#x6210;&#x4E86;&#x8FD9;&#x4E00;&#x6B65;&#xFF0C;&#x90A3;&#x4E48;&#x5728;&#x60A8;&#x5B9E;&#x9A8C;&#x7684;&#x4E3B;&#x673A;&#x4E0A;&#x5E94;&#x8BE5;&#x6709;&#x4E24;&#x4E2A;&#x955C;&#x50CF;&#xFF1A;wagoodman/dive&#x548C;&#x6211;&#x4EEC;&#x81EA;&#x5B9A;&#x4E49;&#x7684;example1&#x955C;&#x50CF;&#x3002;</p><pre><code class="language-bash">$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE 
example1            latest              374e0127c1bc        42 minutes ago      0B 
wagoodman/dive      latest              4d9ce0be7689        2 weeks ago         83.6MB</code></pre><p>&#x5728;&#x6211;&#x4EEC;&#x4F7F;&#x7528;dedockify&#x5BF9;example1&#x955C;&#x50CF;&#x4E2D;&#x8FD0;&#x884C;&#x6B64;&#x547D;&#x4EE4;&#xFF0C;&#x6700;&#x7EC8;&#x5C06;&#x4EA7;&#x751F;&#x4EE5;&#x4E0B;&#x7ED3;&#x679C;&#xFF1A;</p><pre><code class="language-sql">$ python3 dedockify.py 374e0127c1bc 
FROM example1:latest 
COPY file:e3c862873fa89cbf2870e2afb7f411d5367d37a4aea01f2620f7314d3370edcc in / 
COPY file:2a949ad55eee33f6191c82c4554fe83e069d84e9d9d8802f5584c34e79e5622c in / 
COPY file:aa717ff85b39d3ed034eed42bc1186230cfca081010d9dde956468decdf8bf20 in /</code></pre><p>&#x6211;&#x4EEC;&#x63D0;&#x53D6;&#x5230;&#x7684;&#x4FE1;&#x606F;&#x4E0E;&#x4E4B;&#x524D;&#x4F7F;&#x7528; Dive &#x89E3;&#x6790;&#x955C;&#x50CF;&#x65F6;&#x770B;&#x5230;&#x7684;&#x51E0;&#x4E4E;&#x4E00;&#x81F4;&#x3002;&#x6CE8;&#x610F;FROM&#x6307;&#x4EE4;&#x663E;&#x793A;&#x7684;&#x662F;example1:late&#x800C;&#x4E0D;&#x662F;scratch&#x3002;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6211;&#x4EEC;&#x7684;&#x4EE3;&#x7801;&#x5BF9;&#x57FA;&#x7840;&#x955C;&#x50CF;&#x505A;&#x51FA;&#x4E86;&#x4E0D;&#x6B63;&#x786E;&#x7684;&#x5047;&#x8BBE;&#x3002;</p><p>&#x4F5C;&#x4E3A;&#x5BF9;&#x6BD4;&#xFF0C; &#x6211;&#x4EEC;&#x5BF9;wagoodman/dive&#x955C;&#x50CF;&#x505A;&#x540C;&#x6837;&#x7684;&#x5904;&#x7406;.</p><pre><code class="language-bash">$ python3 dedockify.py 4d9ce0be7689 
FROM wagoodman/dive:latest 
ADD file:fe1f09249227e2da2089afb4d07e16cbf832eeb804120074acd2b8192876cd28 in / 
CMD [&quot;/bin/sh&quot;] 
ARG DOCKER_CLI_VERSION= 
RUN |1 DOCKER_CLI_VERSION=19.03.1 /bin/sh -c wget -O- https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_CLI_VERSION}.tgz |     tar -xzf - docker/docker --strip-component=1 \ 
    &amp;&amp;     mv docker /usr/local/bin 
COPY file:8385774b036879eb290175cc42a388877142f8abf1342382c4d0496b6a659034 in /usr/local/bin/ 
ENTRYPOINT [&quot;/usr/local/bin/dive&quot;]</code></pre><p>&#x4E0E;example1&#x76F8;&#x6BD4;&#xFF0C;&#x8FD9;&#x4E2A;&#x955C;&#x50CF;&#x663E;&#x793A;&#x4E86;&#x66F4;&#x591A;&#x7684;&#x9519;&#x8BEF;&#x3002;&#x6211;&#x4EEC;&#x770B;&#x5230;ADD&#x6307;&#x4EE4;&#x5C31;&#x5728;FROM&#x6307;&#x4EE4;&#x4E4B;&#x524D;&#x3002;&#x6211;&#x4EEC;&#x7684;&#x4EE3;&#x7801;&#x518D;&#x6B21;&#x505A;&#x51FA;&#x4E86;&#x9519;&#x8BEF;&#x7684;&#x5047;&#x8BBE;&#x3002;&#x6211;&#x4EEC;&#x4E0D;&#x77E5;&#x9053;ADD&#x6307;&#x4EE4;&#x6DFB;&#x52A0;&#x4E86;&#x4EC0;&#x4E48;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x76F4;&#x89C2;&#x5730;&#x505A;&#x51FA;&#x5047;&#x8BBE;&#xFF0C;&#x5373;&#x6211;&#x4EEC;&#x4E0D;&#x786E;&#x5B9A;&#x57FA;&#x7840;&#x955C;&#x50CF;&#x662F;&#x4EC0;&#x4E48;&#x3002;ADD&#x6307;&#x4EE4;&#x53EF;&#x80FD;&#x662F;&#x7528;&#x6765;&#x63D0;&#x53D6;&#x672C;&#x5730;&#x7684;tar&#x6587;&#x4EF6;&#x5230;&#x6839;&#x76EE;&#x5F55;&#x3002;&#x4E5F;&#x6709;&#x53EF;&#x80FD;&#x662F;&#x7528;&#x8FD9;&#x79CD;&#x65B9;&#x6CD5;&#x52A0;&#x8F7D;&#x53E6;&#x4E00;&#x4E2A;&#x57FA;&#x7840;&#x955C;&#x50CF;&#x3002;</p><h4 id="dedockify-limitation-testing">Dedockify limitation testing</h4><p>&#x8BA9;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x793A;&#x4F8B;Dockerfile&#x6765;&#x8FDB;&#x884C;&#x5B9E;&#x9A8C;&#xFF0C;&#x5728;&#x8FD9;&#x4E2A;&#x793A;&#x4F8B;&#x4E2D;&#x6211;&#x4EEC;&#x660E;&#x786E;&#x5B9A;&#x4E49;&#x4E86;&#x57FA;&#x7840;&#x955C;&#x50CF;&#x3002;&#x548C;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x505A;&#x7684;&#x4E00;&#x6837;&#xFF0C;&#x5728;&#x4E00;&#x4E2A;&#x7A7A;&#x76EE;&#x5F55;&#x4E0B;&#xFF0C;&#x76F4;&#x63A5;&#x4ECE;&#x547D;&#x4EE4;&#x884C;&#x8FD0;&#x884C;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x7801;&#x3002;</p><pre><code class="language-bash">mkdir $HOME/test2 
cd $HOME/test2 
cat &gt; Dockerfile &lt;&lt; EOF ; touch testfile1 testfile2 testfile3 
FROM ubuntu:latest 
RUN mkdir testdir1 
COPY testfile1 /testdir1 
RUN mkdir testdir2 
COPY testfile2 /testdir2 
RUN mkdir testdir3 
COPY testfile3 /testdir3 
EOF</code></pre><p>&#x7136;&#x540E;build&#x955C;&#x50CF;&#xFF0C;&#x5C06;&#x6211;&#x4EEC;&#x7684;&#x65B0;&#x955C;&#x50CF;&#x6807;&#x8BB0;&#x4E3A;example2&#x3002;&#x8FD9;&#x5C06;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x4E0E;&#x4E4B;&#x524D;&#x7C7B;&#x4F3C;&#x7684;&#x955C;&#x50CF;&#xFF0C;&#x53EA;&#x4E0D;&#x8FC7;&#x4E0D;&#x4F7F;&#x7528;scratch&#xFF0C;&#x800C;&#x662F;&#x4F7F;&#x7528;ubuntu:latest&#x4F5C;&#x4E3A;&#x57FA;&#x7840;&#x955C;&#x50CF;&#x3002;</p><pre><code class="language-sql">$ docker build . -t example2 
Sending build context to Docker daemon  3.584kB 
Step 1/7 : FROM ubuntu:latest 
 ---&gt; 72300a873c2c 
Step 2/7 : RUN mkdir testdir1 
 ---&gt; Using cache 
 ---&gt; 4110037ae26d 
Step 3/7 : COPY testfile1 /testdir1 
 ---&gt; Using cache 
 ---&gt; e4adf6dc5677 
Step 4/7 : RUN mkdir testdir2 
 ---&gt; Using cache 
 ---&gt; 22d301b39a57 
Step 5/7 : COPY testfile2 /testdir2 
 ---&gt; Using cache 
 ---&gt; f60e5f378e13 
Step 6/7 : RUN mkdir testdir3 
 ---&gt; Using cache 
 ---&gt; cec486378382 
Step 7/7 : COPY testfile3 /testdir3 
 ---&gt; Using cache 
 ---&gt; 05651f084d67 
Successfully built 05651f084d67 
Successfully tagged example2:latest</code></pre><p>&#x7531;&#x4E8E;&#x6211;&#x4EEC;&#x73B0;&#x5728;&#x6709;&#x4E86;&#x4E00;&#x4E2A;&#x7A0D;&#x5FAE;&#x590D;&#x6742;&#x4E00;&#x4E9B;&#x7684;Dockerfile&#x6765;&#x91CD;&#x5EFA;&#xFF0C;&#x800C;&#x4E14;&#x6211;&#x4EEC;&#x4E5F;&#x6709;&#x4E86;&#x751F;&#x6210;&#x8FD9;&#x4E2A;&#x955C;&#x50CF;&#x6240;&#x4F7F;&#x7528;&#x7684;Dockerfile&#xFF0C;&#x56E0;&#x6B64;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x505A;&#x4E00;&#x4E2A;&#x5BF9;&#x6BD4;&#x3002;</p><pre><code class="language-bash">$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE 
example2            latest              05651f084d67        2 minutes ago       64.2MB 
example1            latest              374e0127c1bc        1 hour ago          0B 
ubuntu              latest              72300a873c2c        9 days ago          64.2MB 
wagoodman/dive      latest              4d9ce0be7689        3 weeks ago         83.6MB</code></pre><p>&#x8FD0;&#x884C;dedockify&#x811A;&#x672C;</p><pre><code class="language-bash">$ python3 dedockify.py 05651f084d67 
FROM ubuntu:latest 
RUN /bin/sh -c mkdir testdir1 
COPY file:cc4f6e89a1bc3e3c361a1c6de5acc64d3bac297f0b99aa75af737981a19bc9d6 in /testdir1 
RUN /bin/sh -c mkdir testdir2 
COPY file:a04cdcdf5fd077a994fe5427a04f6b9a52288af02dad44bb1f8025ecf209b339 in /testdir2 
RUN /bin/sh -c mkdir testdir3 
COPY file:2ed8ccde7cd97bc95ca15f0ec24ec447484a8761fa901df6032742e8f1a2a191 in /testdir3</code></pre><p>&#x8FD9;&#x4E0E;&#x6700;&#x521D;&#x7684;Dockerfile&#x975E;&#x5E38;&#x543B;&#x5408;&#x3002;&#x8FD9;&#x6B21;&#x6CA1;&#x6709;ADD&#x6307;&#x4EE4;&#xFF0C;&#x800C;FROM&#x6307;&#x4EE4;&#x4E5F;&#x662F;&#x6B63;&#x786E;&#x7684;&#x3002;&#x53EA;&#x8981;&#x6211;&#x4EEC;&#x7684;&#x57FA;&#x7840;&#x955C;&#x50CF;&#x662F;&#x5728;&#x539F;&#x59CB;Dockerfile&#x4E2D;&#x5B9A;&#x4E49;&#x7684;&#xFF0C;&#x5E76;&#x4E14;&#x907F;&#x514D;&#x4F7F;&#x7528;scratch&#x6216;&#x8005;&#x907F;&#x514D;&#x4F7F;&#x7528;ADD&#x6307;&#x4EE4;&#x4ECE;tar&#x6587;&#x4EF6;&#x521B;&#x5EFA;&#x57FA;&#x7840;&#x955C;&#x50CF;&#xFF0C;&#x6211;&#x4EEC;&#x5E94;&#x8BE5;&#x80FD;&#x591F;&#x6BD4;&#x8F83;&#x51C6;&#x786E;&#x5730;&#x91CD;&#x5EFA;Dockerfile&#x3002;&#x7136;&#x800C;&#xFF0C;&#x6211;&#x4EEC;&#x4ECD;&#x7136;&#x4E0D;&#x77E5;&#x9053;&#x88AB;&#x590D;&#x5236;&#x7684;&#x539F;&#x59CB;&#x6587;&#x4EF6;&#x7684;&#x540D;&#x79F0;&#x3002;</p><h3 id="%E4%BB%BB%E6%84%8F-dockerfile-%E9%87%8D%E5%BB%BA">&#x4EFB;&#x610F; Dockerfile &#x91CD;&#x5EFA;</h3><p>&#x73B0;&#x5728;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x5C1D;&#x8BD5;&#x4F7F;&#x7528;&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x8BA8;&#x8BBA;&#x8FC7;&#x7684;&#x5DE5;&#x5177;&#xFF0C;&#x4EE5;&#x6B63;&#x786E;&#x7684;&#x65B9;&#x5F0F;&#x9006;&#x5411;&#x5DE5;&#x7A0B;&#x4E00;&#x4E2A;Docker&#x5BB9;&#x5668;&#x3002;&#x6211;&#x4EEC;&#x5C06;&#x4F7F;&#x7528;&#x7684;&#x5BB9;&#x5668;&#x5728;&#x4E0A;&#x9762;&#x7684;&#x793A;&#x4F8B;&#x57FA;&#x7840;&#x4E0A;&#x8FDB;&#x884C;&#x4E86;&#x4FEE;&#x6539;&#x3002;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x7684;Dockerfile&#x88AB;&#x4FEE;&#x6539;&#x4E3A;example3&#x3002;&#x901A;&#x8FC7;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x5C0F;&#x7684;&#x4E8C;&#x8FDB;&#x5236;&#x53EF;&#x6267;&#x884C;&#x6587;&#x4EF6;&#xFF0C;&#x8BE5;&#x955C;&#x50CF;&#x5DF2;&#x5177;&#x5907;&#x8FD0;&#x884C;&#x7684;&#x529F;&#x80FD;&#x3002;&#x5728;Dedockify&#x7684;GitHub&#x4ED3;&#x5E93;&#x4E2D;&#x53EF;&#x4EE5;&#x627E;&#x5230;&#x6E90;&#x4EE3;&#x7801;&#x3002;&#x7531;&#x4E8E;&#x8FD9;&#x4E2A;&#x955C;&#x50CF;&#x975E;&#x5E38;&#x5C0F;&#xFF0C;&#x6211;&#x4EEC;&#x4E0D;&#x9700;&#x8981;&#x6784;&#x5EFA;&#x6216;&#x62C9;&#x53D6;&#x5B83;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x7801;&#x6BB5;&#x5C06;&#x6574;&#x4E2A;&#x5BB9;&#x5668;&#x590D;&#x5236;&#x7C98;&#x8D34;&#x5230;&#x6211;&#x4EEC;&#x7684;Docker&#x73AF;&#x5883;&#x4E2D;&#xFF0C;&#x6765;&#x5C55;&#x793A;&#x6211;&#x4EEC;&#x7684;&#x547D;&#x4EE4;&#x884C;&#x6280;&#x5DE7; :)</p><pre><code class="language-bash">uudecode &lt;&lt; EOF | zcat | docker load 
begin-base64 600 - 
H4sICMicXV4AA2V4YW1wbGUzLnRhcgDtXVtvG8cVVnp56UN/QJ/YDQokgETN 
zJkrgTykjgsbDSzDURMkshDM5YzFhiJVkkpiCELzH/pP+tYfkf/UsxRNXdxI 
spe7lqv5IJF7PTM7Z87MmY9nZxgL2qG1DkN2nkXmtTecQwYrMMfsBHgXgFuV 
eXLCI5c26sxdNHQsie2Nm8GYZEYp+l7g6vdim4MWBrgyBjaY4MbIjZ66hezG 
OJ7N/ZSyMp1M5tddd9P5qw/3noA11f+XD5998XjnybVpcMa0lNfoH67oHxiI 
jV4nhXjP9c/7701WC1pAY/v/+2wyvimNG+zfgLpi/0KbYv+d4KQapmpQNa0G 
1WZ15Kc4npMsr7JUjGGMyLUzPEXJc1RCWqFkTtoEL5TgEaLSKlmOiXHnUSlK 
jYsQSFacop9jnTHuDNtinP52GRss/r6pL5iM5344xum3tJWHL6rBSfVoMpuP 
/SHSXXTFZ5NDuuB8/28znJ5tfTqf+3jwxTwNx9Ug+9EMLxybHM9fP4jT6erg 
7vzlanvnCMeX5Sz2dsYRV0cejr+vBuPj0WizenCYXm0+PvQvlhn7cjI6PsTZ 
qzNfTabfDccvPhsuc/twPJ++PJoM66I9u2Jn/Ofj4Wgl6nMfcLS8/XSzmtBm 
NRqOj3+sTm+h/8b2P/IvcdqvbeiX07je/uXr/h9oZor9dwF/dHQbF74R3sz/ 
F1RfuKbLi//fAWr993846C/+J0f/aCONRR9/g/4vbXNQShb7LygoKGgTTDkP 
1tiEUvkgJajgnTZRA0pAplFqZ1m02hqXjc4+aaVTztx4pzywfvPxH7X1V/0/ 
oZgu7X8XOKn8NB4M5xjnx9N6ROIPk5ZnI6y7P67aq55+uvvok+3j2XR7NIl+ 
tD0Lw/Hgwv5q9/zEYuNslz6q/f85MJsd0CBVD4SHEDhGkM4LDIqHQN4JjU5s 
5NqiJguRAr3nKpgICoRhyLNiCgHQOLxhfLdN7teVMd7e4uD2AY5Gkzpv14/2 
VuPgegyvDA3aOATr5cJkJUs0tMsRacytE6MsGZnp/piCEMaiijHmJJOIihvN 
bh5WX0zh/7kqkA5od3t2QI+yFenjw4/Gk6OPe7Wqnuw++/rpzuMnu7295xdU 
9bzar29/X6rPyenpRZZFMMG2GGwxsStgoPhAQF8KrZ1grqZb0iR+R5Xie5zO 
hpPxgpbpM+hrOnUwnM0nU1LY3sm1AnnfOXCgDDPfnDM834aX9XOclXZvK/aW 
Jf3VzrO/fvb4WW97jjPS95RXp5vXyxd9Qd0MSCnsLeQ/2Hn6dS8PRzgAIbLL 
TiBEJ9Ej8hRZEmCURW6CcTaD8+h18BhtdsrJIFDGmBigS6w3HPfqTNbCeO8W 
2SQjVBK4lW9RDOIW8hUZv+PG8XdWDOI2xWA4mYGkKvYWxQC3kO+YdMYxod5Z 
McDNxQB9Zpkg38iJNymG2uxvFi005+RJwRsVQAAIkmURmaF+gwUXvAZjApis 
tWaSJyWFoAaKOS1DFJrKR0omQSSNVvO6ABaNz20e/mITc0MOe9c1vJsVHh7N 
X3674CKrwXx6jKf7l6jQzar233Ld8lXzl0d1E724eFY3bsOcvx2mWd14Lttt 
riUXQXJAZFJn5MLriMHJTA6yT44zHZjHQJ2qZM5watCpBeeevFdMdANJXUkC 
7ZMxjCq7TI6cbW+zUkEpqj/RMrBeWInCUuFqj3QZTxays9RrBNT+XBJDh2Qw 
wQkfqXcAqjZK5RA5SNIJzywKSTKTMGiYjkoknwJjzgVg1vBwLilYbbwhFzsz 
LYTTwqNgRiMEZhMYK7zztZ9gmHUZap8/0WOROCXRenUhT1Q8IlhltBbOihhR 
ZhOtoucgwVRolD3DkqprS6bHZzlbmxMNOBJGRYVxLsmDcSGZJBkTjkdlEtW3 
IKj4nA0oUJHDYgP5MZQ3qjHKZCrDqJSylvwZhAtPF5PRMfJEt4I0kjvms/Qq 
U4VVnp6O6jD3PJpaujKcLqJqaNF5TlrR5lxS5jQ2IfVRv22MAhbInjAaiNIp 
zkSGCAacVmAj0IPWDVoKPFCjQMXi0VX7p7eh4N8phI70kElxeg7vhJIKZYpa 
qOy9J9Vpck3Qkx2I2qOMIUrSQ46GKrzkqHRb8R+cF/63CzTWfyvxH8LI8vtP 
JyjxH/cbje1/DfEfWvDX4j8YL/bfBZbxH02rQYnZ6DBmY51obP/txH8oUX7/ 
7QSv+LU2g0DezP/nVF+EBij+fxdY6b/FIJC6PN4s/kOqWv/F/gsKCgrag2Jg 
EIxFl3RyIWQB2bjkDIiYFeTIUuLJy6SNNUG4wKPl3GeXEgSfWuL/BNTxv6X/ 
bx+N9d/O+18gVen/u0Dh/+43Gtt/K+9/gWDF/jvBkv9rWg0uvf/lBSZQEqIi 
YUoB50E7iU4JFD4ESbcok5Kq6SWbIWjFpbFSCOmUYaxwiR1yiY3tvxX+T3JR 
3v/sBK8Cy+4O/yfO+L/y/lcnWOn/rvF/hf8vKCgoaBXGQgwYvEKWwNmY0euo 
As/cks/mFGMgBI+BfD7jaJtrHaMnhx1ZMAF9a/M/6dL/d4HG+m9r/qfS/3eC 
wv/dbzS2/7bmfyr23wmW/F/TanCR/7PKBZAyeI7SuGDqd0Y9ahVYZj6nJFFq 
pZS2UieBDAC05HRxNBKE06nwfx3yf43tv6X5n3iJ/+0Er96ovHP8X/H/O8FK 
/3eN/yu//xUUFBS0iqbOekv8nzSs9P9doLH+23n/V4ky/1cnKPzf/UZj+2+H 
/wNd7L8TLPm/NXB2K/5vDbGEhf/riv9rbP/t8H/Ayvt/naDE/xX9L/S/mrxv 
/Wnc7P9f1P+C/5OyxP8WFBQUtIqmizW1Ff9X+v9u0Fj/Lc3/Z4r/3wkK/3e/ 
0dj+W4r/K/P/dIMl/7eGNRtX/N8aYgkL/9cV/9fY/lua/0+xYv9doMT/Ff0v 
9L9atWL9abwV/1fi/wsKCgpaRdPJetqK/6vX/y39f/torP+W4v94+f2vExT+ 
736jsf23FP+niv13glf8X/M5+1b8X1lL5H3i/5rafzv8n9Bl/a9OcPfW/1jy 
f8X/7wQr/a/WMF5/Gm/F/xX+v6CgoKBVJPK8tUkQIUjIXCXMBoJj0oPO3Btu 
jJc86SyRWaFFDOhQ8QxKJ8uya2n9D6bK+h+doLH+25n/j/My/0cnKPzf/UZj 
+2/O/wmQr63/a0r8TzdY8n9Nq8FF/o+xoB1a6zBk51lkXpMADhmswByzE+Bd 
AG5V5skJj1zaSKm4aOhYEpf4P8EE22KwxcSugIHiAwF9KbR2grlLRGCdsKrf 
XuUQrJe25hYlS5SRHDFpoxNDACOzDxhToCpmUcUYc5JJRMWNZjfzihdTuGsc 
41719NPdR59sH8+m26NJ9KPtWRiOBxf2V7vnJxYbZ7v0Ue0vScq9qt7dnh3Q 
o2xF+vjwo/Hk6ONezUc+2X329dOdx092e3vPq21/dLR9gKPR5Hm1X9/+itic 
HXih9EB4CIFjBOm8wKB4CIxMnRkbubaokRoGgd5zFUwEBcIw5FkxRbpC4/AG 
frRO/gpHunchT3WGfoEtPTk93azSJH5Hqv4ep7PhZLxgm/sM+vqsItx9Wnmd 
Kr/MS9919S3Jbj+NB8M5xvnxtM61P0y6tst3uJ72+4bG/X9z/l+9Pv4DXd7/ 
6Qa1sbWdxhuP/znXqsT/doJVY9tiGrX9X6t/Y67w/9SPlPF/J/jnw8//8sFq 
78Fvf7Xx640/0Hf9/xs68h9OG//+/c8//am38cHGv37+6VFdWTZ7P0ymo/TH 
3727jBcUFBQUNMKhHw8zzub9W/B4b4sb/H8O0lzyBemIEuX9n06wd1I9WFId 
FVPOgzU2oVQ+SAkqeKdN1IASaKiPUrsFr2aNy0Znn8hNTzlz453ywBZ1iIbf 
z/BosutfzOrRPP7oD49GCIORryNM6iH95/WIcXGyaaTg+eCTUl1fJBsJW9+y 
uCRsfXPskbD1LdhRl9na3v4lYU1530vC1sdLVPun+8VP/SVMyVZnw/lkOsRZ 
W2nc9PsvB7ja/pNBlPa/C5ysWuia61420mv4Pej0tNhcQUFBwV3GfwHMszUX 
AMIAAA== 
==== 
EOF</code></pre><p>&#x76F4;&#x63A5;&#x4ECE;&#x547D;&#x4EE4;&#x884C;&#x8FD0;&#x884C;&#x540E;&#x4F1A;&#x52A0;&#x8F7D;&#x4E00;&#x4E2A;&#x65B0;&#x7684;&#x955C;&#x50CF; example3:latest&#x3002;</p><pre><code class="language-bash">$ docker images 
REPOSITORY TAG IMAGE ID CREATED SIZE 
example3 latest 059a3878de45 5 minutes ago 63B</code></pre><p>&#x73B0;&#x5728;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x5C1D;&#x8BD5;&#x91CD;&#x5EFA;Dockerfile&#x3002;</p><pre><code class="language-bash">$ python3 dedockify.py 059a3878de45 
FROM example3:latest 
WORKDIR /testdir1 
COPY file:322f9f92e3c94eaee1dc0d23758e17b798f39aea6baec8f9594b2e4ccd03e9d0 in testfile1 
WORKDIR /testdir2 
COPY file:322f9f92e3c94eaee1dc0d23758e17b798f39aea6baec8f9594b2e4ccd03e9d0 in testfile2 
WORKDIR /testdir3 
COPY file:322f9f92e3c94eaee1dc0d23758e17b798f39aea6baec8f9594b2e4ccd03e9d0 in testfile3 
WORKDIR /app 
COPY file:b33b40f2c07ced0b9ba6377b37f666041d542205e0964bc26dc0440432d6e861 in hello 
ENTRYPOINT [&quot;/app/hello&quot;]</code></pre><p>&#x8FD9;&#x4E3A;&#x6211;&#x4EEC;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x57FA;&#x7840;Dockerfile&#x3002;&#x7531;&#x4E8E;example3:latest&#x662F;&#x8FD9;&#x4E2A;&#x955C;&#x50CF;&#x7684;&#x540D;&#x79F0;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4ECE;&#x4E0A;&#x4E0B;&#x6587;&#x5047;&#x8BBE;&#x5B83;&#x4F7F;&#x7528;&#x4E86;`scratch`&#x3002;&#x73B0;&#x5728;&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x770B;&#x770B;&#x6709;&#x54EA;&#x4E9B;&#x6587;&#x4EF6;&#x88AB;&#x590D;&#x5236;&#x5230;&#x4E86;/testdir1&#x3001;/testdir2&#x3001;/testdir3&#x548C;/app&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x5728;Dive&#x4E2D;&#x8FD0;&#x884C;&#x8FD9;&#x4E2A;&#x955C;&#x50CF;&#xFF0C;&#x770B;&#x770B;&#x5982;&#x4F55;&#x6062;&#x590D;&#x4E22;&#x5931;&#x7684;&#x6570;&#x636E;&#x3002;</p><pre><code class="language-bash">docker run - rm -it \ 
 -v /var/run/docker.sock:/var/run/docker.sock \ 
 wagoodman/dive:latest example3:latest</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-wao_3stb-iayfnejd8-gww-png.jpg" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="824" height="463" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-wao_3stb-iayfnejd8-gww-png.jpg 600w, https://liangbo.me/content/images/2024/07/1-wao_3stb-iayfnejd8-gww-png.jpg 824w" sizes="(min-width: 720px) 720px"></figure><p>&#x5982;&#x679C;&#x60A8;&#x5411;&#x4E0B;&#x9009;&#x62E9;&#x5230;&#x6700;&#x540E;&#x4E00;&#x5C42;&#xFF0C;&#x60A8;&#x5C06;&#x80FD;&#x591F;&#x770B;&#x5230;&#x6240;&#x6709;&#x4E22;&#x5931;&#x7684;&#x6570;&#x636E;&#x586B;&#x5145;&#x5230;&#x53F3;&#x4FA7;&#x7684;&#x76EE;&#x5F55;&#x6811;&#x4E2D;&#x3002;&#x6BCF;&#x4E2A;&#x76EE;&#x5F55;&#x90FD;&#x590D;&#x5236;&#x4E86;&#x540D;&#x4E3A;testfile1&#x3001;testfile2&#x548C;testfile3&#x7684;&#x96F6;&#x5B57;&#x8282;&#x6587;&#x4EF6;&#x3002;&#x5728;&#x6700;&#x540E;&#x4E00;&#x5C42;&#x4E2D;&#xFF0C;&#x4E00;&#x4E2A;&#x540D;&#x4E3A;hello&#x7684;63&#x5B57;&#x8282;&#x6587;&#x4EF6;&#x88AB;&#x590D;&#x5236;&#x5230;&#x4E86;/app&#x76EE;&#x5F55;&#x4E2D;&#x3002;</p><p>&#x8BA9;&#x6211;&#x4EEC;&#x6062;&#x590D;&#x8FD9;&#x4E9B;&#x6587;&#x4EF6;&#xFF01;&#x7531;&#x4E8E;&#x65E0;&#x6CD5;&#x76F4;&#x63A5;&#x4ECE;&#x955C;&#x50CF;&#x4E2D;&#x590D;&#x5236;&#x6587;&#x4EF6;&#xFF0C;&#x56E0;&#x6B64;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x5148;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x5BB9;&#x5668;&#x3002;</p><pre><code class="language-bash">$ docker run -td --name example3 example3:latest 
6fdca182a128df7a76e618931c85a67e14a73adc69ad23782bc9a5dc29420a27</code></pre><p>&#x73B0;&#x5728;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x4F7F;&#x7528;&#x4E0B;&#x9762;&#x4ECE;Dive&#x6062;&#x590D;&#x7684;&#x8DEF;&#x5F84;&#x548C;&#x6587;&#x4EF6;&#x540D;&#x5C06;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7684;&#x6587;&#x4EF6;&#x4ECE;&#x5BB9;&#x5668;&#x590D;&#x5236;&#x5230;&#x4E3B;&#x673A;&#x3002;</p><pre><code class="language-bash">mkdir $HOME/test3 
cd $HOME/test3 
docker cp example3:/testdir1/testfile1 . 
docker cp example3:/testdir2/testfile2 . 
docker cp example3:/testdir3/testfile3 . 
docker cp example3:/app/hello .</code></pre><p>&#x6211;&#x4EEC;&#x53EF;&#x80FD;&#x5F97;&#x5148;&#x68C0;&#x67E5;&#x6211;&#x4EEC;&#x7684;&#x5BB9;&#x5668;&#x662F;&#x5426;&#x4ECD;&#x5728;&#x8FD0;&#x884C;&#x3002;</p><pre><code class="language-bash">$ docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
6fdca182a128 example3:latest &quot;/app/hello&quot; 2 minutes ago Up 2 minutes wizardly_lamport</code></pre><p>&#x5982;&#x679C;&#x5BB9;&#x5668;&#x7531;&#x4E8E;&#x67D0;&#x79CD;&#x539F;&#x56E0;&#x6CA1;&#x6709;&#x8FD0;&#x884C;&#xFF0C;&#x6CA1;&#x5173;&#x7CFB;&#x3002;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x9A8C;&#x8BC1;&#x5B83;&#x7684;&#x72B6;&#x6001;&#xFF0C;&#x770B;&#x770B;&#x5B83;&#x662F;&#x5426;&#x5DF2;&#x7ECF;&#x505C;&#x6B62;&#x3002;</p><pre><code class="language-shell">$ docker container ls -a</code></pre><p>&#x6211;&#x4EEC;&#x8FD8;&#x53EF;&#x4EE5;&#x67E5;&#x770B;&#x8FD0;&#x884C;&#x65E5;&#x5FD7;&#x3002;</p><pre><code class="language-bash">$ docker logs 6fdca182a128 
Hello, world!</code></pre><p>&#x5B83;&#x4F3C;&#x4E4E;&#x5728;&#x8FD0;&#x884C;&#x4E00;&#x4E2A;&#x8F93;&#x51FA;Hello, world!&#x7A0B;&#x5E8F;&#x3002;&#x5B9E;&#x9645;&#x4E0A;&#xFF0C;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;Hello, world!&#x7A0B;&#x5E8F;&#x5E76;&#x4E0D;&#x662F;&#x88AB;&#x8BBE;&#x8BA1;&#x6210;&#x59CB;&#x7EC8;&#x8FD0;&#x884C;&#x7684;&#x3002;&#x5728;19.03.6&#x7248;&#x672C;&#x7684;Docker&#x4E2D;&#xFF0C;&#x53EF;&#x80FD;&#x5B58;&#x5728;&#x4E00;&#x4E2A;&#x9519;&#x8BEF;&#xFF0C;&#x5BFC;&#x81F4;&#x7A0B;&#x5E8F;&#x65E0;&#x6CD5;&#x6B63;&#x5E38;&#x7EC8;&#x6B62;&#x3002;&#x76EE;&#x524D;&#x8FD9;&#x662F;&#x53EF;&#x4EE5;&#x63A5;&#x53D7;&#x7684;&#x3002;&#x5BB9;&#x5668;&#x53EF;&#x4EE5;&#x6D3B;&#x52A8;&#x6216;&#x505C;&#x6B62;&#xFF1B;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E0D;&#x9700;&#x8981;&#x6301;&#x4E45;&#x5316;&#x6765;&#x6062;&#x590D;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x7684;&#x4EFB;&#x4F55;&#x6570;&#x636E;&#x3002;&#x5904;&#x4E8E;&#x4EFB;&#x4F55;&#x72B6;&#x6001;&#x7684;&#x5BB9;&#x5668;&#x90FD;&#x53EA;&#x9700;&#x8981;&#x4ECE;&#x6211;&#x4EEC;&#x6B63;&#x5728;&#x63D0;&#x53D6;&#x6570;&#x636E;&#x7684;&#x6E90;&#x955C;&#x50CF;&#x4E2D;&#x751F;&#x6210;&#x3002;</p><p>&#x901A;&#x8FC7;&#x8FD0;&#x884C;&#x6062;&#x590D;&#x7684;&#x53EF;&#x6267;&#x884C;&#x6587;&#x4EF6;&#x6765;&#x9A8C;&#x8BC1;&#x5176;&#x884C;&#x4E3A;&#xFF0C;&#x6211;&#x4EEC;&#x5E94;&#x8BE5;&#x770B;&#x5230;&#x4EE5;&#x4E0B;&#x5185;&#x5BB9;&#xFF1A;</p><pre><code class="language-shell">$ ./hello 
Hello, world!</code></pre><p>&#x4F7F;&#x7528;&#x6211;&#x4EEC;&#x4E4B;&#x524D;&#x751F;&#x6210;&#x7684;Dockerfile&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x66F4;&#x65B0;&#x5B83;&#x4EE5;&#x5305;&#x542B;&#x6240;&#x6709;&#x65B0;&#x7684;&#x7EC6;&#x8282;&#x3002;&#x8FD9;&#x5305;&#x62EC;&#x5C06;FROM&#x6307;&#x4EE4;&#x66F4;&#x65B0;&#x4E3A;&#x4ECE;&#x5934;&#x5F00;&#x59CB;&#xFF0C;&#x4EE5;&#x53CA;&#x6211;&#x4EEC;&#x5728;&#x4F7F;&#x7528;Dive&#x63A2;&#x7D22;&#x65F6;&#x53D1;&#x73B0;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x540D;&#x3002;</p><pre><code class="language-bash">FROM scratch 
WORKDIR /testdir1 
COPY testfile1 . 
WORKDIR /testdir2 
COPY testfile2 . 
WORKDIR /testdir3 
COPY testfile3 . 
WORKDIR /app 
COPY hello . 
ENTRYPOINT [&quot;/app/hello&quot;]</code></pre><p>&#x518D;&#x6B21;&#xFF0C;&#x5C06;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x5408;&#x5E76;&#x5230;&#x4E00;&#x4E2A;&#x5171;&#x4EAB;&#x6587;&#x4EF6;&#x5939;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C31;&#x53EF;&#x4EE5;&#x8FD0;&#x884C;&#x6211;&#x4EEC;&#x9006;&#x5411;&#x5DE5;&#x7A0B;&#x7684;Dockerfile&#x4E86;&#x3002;</p><p>&#x8BA9;&#x6211;&#x4EEC;&#x5148;&#x6784;&#x5EFA;&#x4E00;&#x4E2A;&#x955C;&#x50CF;&#x3002;</p><pre><code class="language-bash">$ docker build . -t example3:recovered 
Sending build context to Docker daemon 4.608kB 
Step 1/10 : FROM scratch 
 - -&gt; 
Step 2/10 : WORKDIR /testdir1 
 - -&gt; Running in 5e8e47505ca6 
Removing intermediate container 5e8e47505ca6 
 - -&gt; d30a2f002626 
Step 3/10 : COPY testfile1 . 
 - -&gt; 4ac46077a588 
Step 4/10 : WORKDIR /testdir2 
 - -&gt; Running in 8c48189da985 
Removing intermediate container 8c48189da985 
 - -&gt; 7c7d90bc2219 
Step 5/10 : COPY testfile2 . 
 - -&gt; 5b40d33100e1 
Step 6/10 : WORKDIR /testdir3 
 - -&gt; Running in 4ccd634a04db 
Removing intermediate container 4ccd634a04db 
 - -&gt; f89fdda8f059 
Step 7/10 : COPY testfile3 . 
 - -&gt; 9542f614200d 
Step 8/10 : WORKDIR /app 
 - -&gt; Running in 7614b0fdba42 
Removing intermediate container 7614b0fdba42 
 - -&gt; 6d686935a791 
Step 9/10 : COPY hello . 
 - -&gt; cd4baca758dd 
Step 10/10 : ENTRYPOINT [&quot;/app/hello&quot;] 
 - -&gt; Running in 28a1ca58b27f 
Removing intermediate container 28a1ca58b27f 
 - -&gt; 35dfd9240a2e 
Successfully built 35dfd9240a2e 
Successfully tagged example3:recovered</code></pre><p>&#x7136;&#x540E;&#x6211;&#x4EEC;&#x6765;&#x8FD0;&#x884C;&#x8FD9;&#x4E2A;&#x955C;&#x50CF;:</p><pre><code class="language-bash">$ docker run - name recovered -dt example3:recovered 
0f696bf500267a996339b522cf584e010434103fe82497df2c1fa58a9c548f20 
$ docker logs recovered 
Hello, world!</code></pre><p>&#x4E3A;&#x4E86;&#x8FDB;&#x4E00;&#x6B65;&#x9A8C;&#x8BC1;&#xFF0C;&#x8BA9;&#x6211;&#x4EEC;&#x518D;&#x6B21;&#x4F7F;&#x7528; Dive &#x68C0;&#x67E5;&#x955C;&#x50CF;&#x3002;</p><pre><code class="language-bash">docker run - rm -it \ 
 -v /var/run/docker.sock:/var/run/docker.sock \ 
 wagoodman/dive:latest example3:recovered</code></pre><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-3xxepo6pesjdqzsc91hqaw-png.jpg" class="kg-image" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile" loading="lazy" width="1100" height="431" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-3xxepo6pesjdqzsc91hqaw-png.jpg 600w, https://liangbo.me/content/images/size/w1000/2024/07/1-3xxepo6pesjdqzsc91hqaw-png.jpg 1000w, https://liangbo.me/content/images/2024/07/1-3xxepo6pesjdqzsc91hqaw-png.jpg 1100w" sizes="(min-width: 720px) 720px"></figure><p>&#x6B64;&#x955C;&#x50CF;&#x663E;&#x793A;&#x7684;&#x6587;&#x4EF6;&#x4E0E;&#x539F;&#x955C;&#x50CF;&#x76F8;&#x540C;&#x3002;&#x5C06;&#x4E24;&#x4E2A;&#x955C;&#x50CF;&#x5E76;&#x6392;&#x6BD4;&#x8F83;&#xFF0C;&#x5B83;&#x4EEC;&#x90FD;&#x5B8C;&#x5168;&#x5339;&#x914D;&#x3002;&#x4E24;&#x8005;&#x663E;&#x793A;&#x7684;&#x6587;&#x4EF6;&#x5927;&#x5C0F;&#x76F8;&#x540C;&#x3002;&#x4E24;&#x8005;&#x7684;&#x529F;&#x80FD;&#x5B8C;&#x5168;&#x76F8;&#x540C;&#x3002;</p><p>&#x4EE5;&#x4E0B;&#x662F;&#x7528;&#x4E8E;&#x751F;&#x6210;example3&#x955C;&#x50CF;&#x7684;&#x539F;&#x59CB;Dockerfile&#x3002;</p><pre><code class="language-bash">FROM alpine:3.9.2 
RUN apk add - no-cache nasm 
WORKDIR /app 
COPY hello.s /app/hello.s 
RUN touch testfile &amp;&amp; nasm -f bin -o hello hello.s &amp;&amp; chmod +x hello 
FROM scratch 
WORKDIR /testdir1 
COPY - from=0 /app/testfile testfile1 
WORKDIR /testdir2 
COPY - from=0 /app/testfile testfile2 
WORKDIR /testdir3 
COPY - from=0 /app/testfile testfile3 
WORKDIR /app 
COPY - from=0 /app/hello hello 
ENTRYPOINT [&quot;/app/hello&quot;]```</code></pre><p>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#xFF0C;&#x867D;&#x7136;&#x6211;&#x4EEC;&#x4E0D;&#x80FD;&#x5B8C;&#x7F8E;&#x5730;&#x91CD;&#x5EFA;&#x5B83;&#xFF0C;&#x4F46;&#x6211;&#x4EEC;&#x80FD;&#x591F;&#x5927;&#x81F4;&#x91CD;&#x5EFA;&#x5B83;&#x3002;&#x50CF;&#x8FD9;&#x6837;&#x4F7F;&#x7528;&#x591A;&#x9636;&#x6BB5;(stage)&#x6784;&#x5EFA;&#x7684;Dockerfile&#x662F;&#x65E0;&#x6CD5;&#x91CD;&#x5EFA;&#x7684;&#x3002;&#x8FD9;&#x4E9B;&#x4FE1;&#x606F;&#x6839;&#x672C;&#x5C31;&#x4E0D;&#x5B58;&#x5728;&#x3002;&#x6211;&#x4EEC;&#x552F;&#x4E00;&#x7684;&#x9009;&#x62E9;&#x662F;&#x91CD;&#x5EFA;&#x6211;&#x4EEC;&#x5B9E;&#x9645;&#x62E5;&#x6709;&#x7684;&#x955C;&#x50CF;&#x7684;Dockerfile&#x3002;&#x5982;&#x679C;&#x6211;&#x4EEC;&#x6709;&#x65E9;&#x671F;&#x6784;&#x5EFA;&#x9636;&#x6BB5;&#x7684;&#x955C;&#x50CF;&#xFF0C;&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x4E3A;&#x6BCF;&#x4E2A;&#x9636;&#x6BB5;&#x91CD;&#x6784;&#x4E00;&#x4E2A;Dockerfile&#xFF0C;&#x4F46;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6211;&#x4EEC;&#x53EA;&#x6709;&#x6700;&#x7EC8;&#x6784;&#x5EFA;&#x9636;&#x6BB5;&#x7684;&#x955C;&#x50CF;&#x3002;&#x4F46;&#x4E0D;&#x7BA1;&#x600E;&#x6837;&#xFF0C;&#x6211;&#x4EEC;&#x8FD8;&#x662F;&#x6210;&#x529F;&#x5730;&#x4ECE;Docker&#x955C;&#x50CF;&#x4E2D;&#x91CD;&#x73B0;&#x4E86;&#x4E00;&#x4E2A;&#x6709;&#x7528;&#x7684;Dockerfile&#x3002;</p><h3 id="%E5%90%8E%E8%AE%B0">&#x540E;&#x8BB0;</h3><p>&#x901A;&#x8FC7;&#x4F7F;&#x7528;&#x4E0E;Dive&#x7C7B;&#x4F3C;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x6211;&#x4EEC;&#x5E94;&#x8BE5;&#x80FD;&#x591F;&#x66F4;&#x65B0;Dedockify&#x7684;&#x6E90;&#x4EE3;&#x7801;&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x591F;&#x81EA;&#x52A8;&#x5206;&#x6790;&#x6BCF;&#x4E00;&#x5C42;&#xFF0C;&#x4EE5;&#x6062;&#x590D;&#x6240;&#x6709;&#x6709;&#x7528;&#x7684;&#x6587;&#x4EF6;&#x4FE1;&#x606F;&#x3002;&#x6B64;&#x5916;&#xFF0C;&#x8BE5;&#x7A0B;&#x5E8F;&#x8FD8;&#x53EF;&#x4EE5;&#x66F4;&#x65B0;&#x4E3A;&#x80FD;&#x591F;&#x81EA;&#x52A8;&#x4ECE;&#x5BB9;&#x5668;&#x4E2D;&#x6062;&#x590D;&#x6587;&#x4EF6;&#x5E76;&#x5C06;&#x5176;&#x5B58;&#x50A8;&#x5230;&#x672C;&#x5730;&#xFF0C;&#x540C;&#x65F6;&#x8FD8;&#x80FD;&#x81EA;&#x52A8;&#x5BF9;Dockerfile&#x8FDB;&#x884C;&#x9002;&#x5F53;&#x7684;&#x66F4;&#x65B0;&#x3002;&#x6700;&#x540E;&#xFF0C;&#x8FD8;&#x53EF;&#x4EE5;&#x5BF9;&#x7A0B;&#x5E8F;&#x8FDB;&#x884C;&#x66F4;&#x65B0;&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x591F;&#x8F7B;&#x677E;&#x63A8;&#x65AD;&#x51FA;&#x57FA;&#x7840;&#x5C42;&#x662F;&#x5426;&#x4F7F;&#x7528;&#x4E86;Scratch&#x6216;&#x5176;&#x4ED6;&#x57FA;&#x7840;&#x955C;&#x50CF;&#x3002;&#x901A;&#x8FC7;&#x5BF9;&#x6062;&#x590D;&#x7684;Dockerfile&#x8BED;&#x6CD5;&#x8FDB;&#x884C;&#x4E00;&#x4E9B;&#x989D;&#x5916;&#x7684;&#x4FEE;&#x6539;&#xFF0C;Dedockify&#x6709;&#x53EF;&#x80FD;&#x88AB;&#x66F4;&#x65B0;&#x4E3A;&#x5728;&#x5927;&#x591A;&#x6570;&#x60C5;&#x51B5;&#x4E0B;&#x5B8C;&#x5168;&#x81EA;&#x52A8;&#x5730;&#x5C06;Docker&#x955C;&#x50CF;&#x9006;&#x5411;&#x5DE5;&#x7A0B;&#x4E3A;&#x4E00;&#x4E2A;&#x529F;&#x80FD;&#x6027;&#x7684;Dockerfile&#x3002;</p><p>&#x597D;&#x4E86;&#xFF0C; &#x4ECA;&#x5929;&#x7684;&#x6545;&#x4E8B;&#x8BB2;&#x5B8C;&#x4E86;&#xFF0C; &#x60A8;&#x4E5F;&#x8BB8;&#x4F1A;&#x5BF9;&#x5176;&#x4ED6;&#x6587;&#x7AE0;&#x4E5F;&#x611F;&#x5174;&#x8DA3;&#xFF1A;</p><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e5-a6-82-e4-bd-95-e6-88-90-e4-b8-ba-e4-b8-80-e5-90-8ddevops-e5-b7-a5-e7-a8-8b-e5-b8-88-2023/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x5982;&#x4F55;&#x6210;&#x4E3A;&#x4E00;&#x540D;DevOps&#x5DE5;&#x7A0B;&#x5E08; 2023</div><div class="kg-bookmark-description">&#x5728;&#x672C;&#x6307;&#x5357;&#x4E2D;&#xFF0C;&#x6211;&#x5206;&#x4EAB;&#x4E86;&#x6211;&#x4F5C;&#x4E3A;DevOps&#x5DE5;&#x7A0B;&#x5E08;&#x5728;&#x4E0D;&#x540C;&#x7EC4;&#x7EC7;&#x4E2D;&#x7684;&#x7ECF;&#x9A8C;&#x4EE5;&#x53CA;&#x6210;&#x4E3A;DevOps&#x5DE5;&#x7A0B;&#x5E08;&#x7684;&#x6280;&#x5DE7;&#x3002;&#x8FD9;&#x662F;&#x4E00;&#x4EFD;&#x5F00;&#x59CB;DevOps&#x5DE5;&#x7A0B;&#x804C;&#x4E1A;&#x7684;&#x5168;&#x9762;&#x8DEF;&#x7EBF;&#x56FE;&#x3002;&#x7531;&#x4E8E;DevOps&#x9886;&#x57DF;&#x5177;&#x6709;&#x9AD8;&#x85AA;&#x548C;&#x804C;&#x4E1A;&#x53D1;&#x5C55;&#x7684;&#x6F5C;&#x529B;&#xFF0C;&#x76EE;&#x524D;&#x5728;IT&#x884C;&#x4E1A;&#x662F;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x53D7;&#x6B22;&#x8FCE;&#x7684;&#x9009;&#x62E9;&#x3002;&#x6211;&#x7ECF;&#x5E38;&#x88AB;&#x95EE;&#x53CA;&#x5982;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/1-j6v-z52gsi9qdwojjmgs7q-jpeg.png" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile"></div></a></figure><!--kg-card-end: html--><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e5-88-a9-e7-94-a8chatgpt-e6-9c-80-e5-a4-a7-e7-a8-8b-e5-ba-a6-e5-9c-b0-e6-8f-90-e9-ab-98-e6-82-a8-e7-9a-84devops-e7-94-9f-e4-ba-a7-e5-8a-9b/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x5229;&#x7528;ChatGPT&#x6700;&#x5927;&#x7A0B;&#x5EA6;&#x5730;&#x63D0;&#x9AD8;&#x60A8;&#x7684;DevOps&#x751F;&#x4EA7;&#x529B;</div><div class="kg-bookmark-description">&#x50CF;ChatGPT&#x8FD9;&#x6837;&#x7684;AI&#x5F15;&#x64CE;&#x6709;&#x53EF;&#x80FD;&#x6539;&#x53D8;&#x6211;&#x4EEC;&#x5B9E;&#x8DF5;DevOps&#x7684;&#x65B9;&#x5F0F;&#x3002;&#x5728;&#x8FD9;&#x7BC7;&#x535A;&#x5BA2;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5BF9;ChatGPT&#x8FDB;&#x884C;&#x4E86;&#x6D4B;&#x8BD5;&#xFF0C;&#x770B;&#x770B;&#x5B83;&#x5982;&#x4F55;&#x5E94;&#x5BF9;&#x771F;&#x5B9E;&#x4E16;&#x754C;&#x7684;DevOps&#x7528;&#x4F8B;&#x548C;&#x7B56;&#x7565;&#x3002;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/1-bd0onol1aoyjmajimahuoq-jpeg.jpg" alt="&#x9006;&#x5411;&#x5DE5;&#x7A0B;: &#x5C06;docker&#x955C;&#x50CF;&#x201D;&#x53CD;&#x7F16;&#x8BD1;&#x201D;&#x4E3A;Dockerfile"></div></a></figure><!--kg-card-end: html--><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e6-88-91-e6-af-8f-e5-a4-a9-e9-83-bd-e5-9c-a8-e4-bd-bf-e7-94-a8-e7-9a-845-e4-b8-aapython-e8-87-aa-e5-8a-a8-e5-8c-96-e8-84-9a-e6-9c-ac/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x6211;&#x6BCF;&#x5929;&#x90FD;&#x5728;&#x4F7F;&#x7528;&#x7684;5&#x4E2A;Python&#x81EA;&#x52A8;&#x5316;&#x811A;&#x672C;</div><div class="kg-bookmark-description">TL;DR- &#x6211;&#x65E5;&#x5E38;&#x4F7F;&#x7528;&#x7684;&#x6700;&#x597D;&#x7684;Python&#x811A;&#x672C;&#x7684;&#x5FEB;&#x901F;&#x5217;&#x8868;&#xFF0C;&#x52A0;&#x4E0A;&#x4E00;&#x4E9B;&#x53EF;&#x80FD;&#x7684;&#x4FEE;&#x6539;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x4E8E;&#x5176;&#x4ED6;&#x529F;&#x80FD;&#x3002;</div><div class="kg-bookmark-metadata"></div></div></a></figure><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[SaaS初创公司CTO的Check List]]></title><description><![CDATA[谁适合阅读本文？]]></description><link>https://liangbo.me/saas-e5-88-9d-e5-88-9b-e5-85-ac-e5-8f-b8cto-e7-9a-84check-list/</link><guid isPermaLink="false">66860f1cb6891c0001494cc7</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Thu, 13 Jul 2023 02:35:30 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-e8ztr6hq95h3xywiscie1q-jpeg.jpg" medium="image"/><content:encoded><![CDATA[<h3 id="%E8%B0%81%E9%80%82%E5%90%88%E9%98%85%E8%AF%BB%E6%9C%AC%E6%96%87%EF%BC%9F">&#x8C01;&#x9002;&#x5408;&#x9605;&#x8BFB;&#x672C;&#x6587;&#xFF1F;</h3><img src="https://liangbo.me/content/images/2024/07/1-e8ztr6hq95h3xywiscie1q-jpeg.jpg" alt="SaaS&#x521D;&#x521B;&#x516C;&#x53F8;CTO&#x7684;Check List"><p>CTO&#x3001;&#x9996;&#x5E2D;&#x5DE5;&#x7A0B;&#x5E08;&#x3001;&#x8054;&#x5408;&#x521B;&#x59CB;&#x4EBA;&#x6216;&#x4EFB;&#x4F55;&#x8D1F;&#x8D23;&#x6784;&#x5EFA;SaaS&#x5E94;&#x7528;&#x7684;&#x521D;&#x521B;&#x4F01;&#x4E1A;&#x7684;&#x4EBA;&#x5458;&#x3002;</p><h3 id="checklist">CHECKLIST</h3><h4 id="%E5%BC%80%E5%A7%8B">&#x5F00;&#x59CB;</h4><p><strong>&#x9009;&#x62E9;&#x4E00;&#x4E2A;&#x4E0D;&#x662F;&#x90A3;&#x4E48;&#x65F6;&#x9AE6;&#x4F46;&#x662F;&#x9760;&#x8C31;&#x7684;&#x6280;&#x672F;</strong></p><ul><li>&#x4E13;&#x6CE8;&#x4E8E;&#x80FD;&#x591F;&#x5E2E;&#x52A9;&#x516C;&#x53F8;&#x6784;&#x5EFA;&#x4EA7;&#x54C1;&#x7684;&#x6280;&#x672F;&#xFF0C; &#x800C;&#x4E0D;&#x662F;&#x4E3A;&#x4E86;&#x8FFD;&#x8D76;&#x70ED;&#x70B9;&#xFF0C;&#x548C;&#x6F6E;&#x6D41;&#x7684;&#x201D;Cutting Edge&#x201D;&#x7684;&#x6280;&#x672F;&#x3002;</li><li><a href="https://mcfunley.com/choose-boring-technology?ref=liangbo.me" rel="nofollow noopener">https://mcfunley.com/choose-boring-technology</a></li></ul><p><strong>&#x5728;&#x505A;&#x5DE5;&#x4F5C;&#x8BA1;&#x5212;&#x7684;&#x540C;&#x65F6;&#xFF0C; &#x5BF9;&#x5DE5;&#x4F5C;&#x5185;&#x5BB9;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x89C1;&#x89E3;&#x548C;&#x89C2;&#x70B9;</strong></p><ul><li><a href="https://rubyonrails.org/doctrine?ref=liangbo.me" rel="nofollow noopener">https://rubyonrails.org/doctrine</a></li></ul><h4 id="%E5%B7%A5%E5%85%B7">&#x5DE5;&#x5177;</h4><p><strong>Github</strong></p><p><strong>&#x9009;&#x62E9;&#x6700;&#x9002;&#x5408;&#x56E2;&#x961F;&#x7684;PaaS/IaaS&#x5E73;&#x53F0;</strong></p><ul><li>&#x6700;&#x5C0F;&#x5316;&#x5F00;&#x53D1;&#x7684;&#x5DE5;&#x4F5C;&#x548C;&#x5C3D;&#x53EF;&#x80FD;&#x7B80;&#x5316;&#x90E8;&#x7F72; &gt; &#x6027;&#x4EF7;&#x6BD4;</li></ul><p><strong>&#x9009;&#x62E9;&#x4E00;&#x4E2A;CDN&#x670D;&#x52A1;&#x6765;&#x63D0;&#x4F9B;&#x9759;&#x6001;&#x8D44;&#x6E90;</strong></p><p><strong>&#x542F;&#x52A8;&#x4E00;&#x4E2A;Wiki(&#x53EF;&#x4EE5;&#x4F7F;&#x7528;github&#x7684;)</strong></p><p><strong>&#x914D;&#x7F6E;&#x4E00;&#x4E2A;CI (Continuous Integration)</strong></p><ul><li>&#x5FC5;&#x987B;&#x901A;&#x8FC7;CI&#x624D;&#x80FD;&#x5408;&#x5E76;PR (Pull Request)</li><li>&#x4F7F;&#x7528;CI&#x6765;&#x68C0;&#x67E5;&#x4EE3;&#x7801;&#x98CE;&#x683C; (Codestyle)</li></ul><h4 id="%E6%9E%B6%E6%9E%84">&#x67B6;&#x6784;</h4><p><strong>&#x9009;&#x62E9;&#x4E00;&#x4E2A;&#x6280;&#x672F;&#x8DEF;&#x7EBF;</strong></p><ul><li>&#x9009;&#x62E9;&#x670D;&#x52A1;&#x7AEF;&#x6E32;&#x67D3;/&#x5BA2;&#x6237;&#x7AEF;&#x6E32;&#x67D3;</li><li>&#x9009;&#x62E9;&#x5FAE;&#x670D;&#x52A1;(Microservice)&#x67B6;&#x6784;&#x6216;&#x4F20;&#x7EDF;&#x7684;Monolith&#x67B6;&#x6784;</li></ul><p><strong>&#x9009;&#x62E9;&#x4E00;&#x4E2A;&#x80FD;&#x8BA9;&#x56E2;&#x961F;&#x7528;&#x8D77;&#x6765;&#x6700;&#x65B9;&#x4FBF;&#x7684;&#x6846;&#x67B6;</strong></p><p><strong>&#x7528;&#x6237;&#x8EAB;&#x4EFD;&#x8BA4;&#x8BC1;&#x548C;&#x57FA;&#x4E8E;&#x7B56;&#x7565;&#x7684;&#x8BBF;&#x95EE;&#x63A7;&#x5236;</strong></p><ul><li>&#x8BBE;&#x7F6E;MFA/2FA&#x662F;&#x8FDF;&#x65E9;&#x7684;&#x4E8B;&#x60C5;.</li><li>&#x53EF;&#x4EE5;&#x4ECE;&#x57FA;&#x4E8E;&#x5BC6;&#x7801;&#x7684;&#x8BA4;&#x8BC1;&#x5F00;&#x59CB;&#xFF0C; &#x4E0D;&#x8FC7;&#x652F;&#x6301;SSO&#x662F;&#x8FDF;&#x65E9;&#x7684;&#x4E8B;&#x60C5;.</li></ul><p><strong>&#x521B;&#x5EFA;&#x548C;&#x7BA1;&#x7406;&#x201C;Admin&#x201D; &#x7528;&#x6237;</strong></p><p><strong>&#x6863;&#x5F00;&#x59CB;&#x5EFA;&#x6A21;&#x65F6;&#xFF0C; &#x8003;&#x8651;&#x4E00;&#x4E0B;&#x6700;&#x7EC8;&#x4F60;&#x9700;&#x8981;&#x652F;&#x6301;&#x7684;&#x4EBA;&#x7FA4;</strong></p><p><strong>&#x7531;&#x4E8E;&#x662F;SaaS&#xFF0C; &#x4F60;&#x975E;&#x5E38;&#x6709;&#x53EF;&#x80FD;&#x5728;&#x672A;&#x6765;&#x9700;&#x8981;&#x589E;&#x52A0;&#x81EA;&#x5B9A;&#x4E49;&#x57DF;&#x540D;&#x548C;&#x5B50;&#x57DF;&#x540D;&#x7684;&#x529F;&#x80FD;&#xFF0C; &#x73B0;&#x5728;&#x5C31;&#x8003;&#x8651;&#x8FD9;&#x4E2A;&#x56E0;&#x7D20;</strong></p><p><strong>&#x4F60;&#x7684;&#x8425;&#x9500;&#x7F51;&#x7AD9;&#x548C;&#x516C;&#x53F8;&#x535A;&#x5BA2;&#x4F1A;&#x8FD0;&#x884C;&#x5728;&#x4F55;&#x5904;</strong></p><ul><li>&#x5982;&#x679C;&#x628A;&#x8425;&#x9500;&#x7F51;&#x7AD9;&#x505A;&#x5728;&#x4EA7;&#x54C1;&#x4E2D;&#xFF0C; &#x90A3;&#x4E48;&#x4EA7;&#x54C1;&#x5C06;&#x6210;&#x4E3A;&#x8425;&#x9500;/&#x589E;&#x957F;&#x7684;&#x74F6;&#x9888;</li><li>&#x5982;&#x679C;&#x4E00;&#x5F00;&#x59CB;&#x5C31;&#x628A;&#x5E94;&#x7528;&#x8FD0;&#x884C;&#x5728;app.yourdomain.com&#x4E0A;&#xFF0C; &#x65E5;&#x540E;&#x5207;&#x6362;&#x6216;&#x8005;&#x66F4;&#x6362;&#x53EF;&#x80FD;&#x4F1A;&#x66F4;&#x5BB9;&#x6613;&#x4E00;&#x4E9B;&#x3002;</li><li>&#x907F;&#x514D;&#x4F7F;&#x7528;&#x4E0D;&#x5E26;&#x524D;&#x7F00;&#x7684;&#x57DF;&#x540D; yourdomain.com&#xFF0C; &#x5426;&#x5219;&#x8FC1;&#x79FB;&#x65F6;&#x53EF;&#x80FD;&#x4F1A;&#x7F3A;&#x4E4F;&#x7075;&#x6D3B;&#x6027;&#x3002;</li></ul><p><strong>&#x9700;&#x8981;&#x63D0;&#x4F9B;API</strong></p><p><strong>&#x4F7F;&#x7528;&#x53EF;&#x91CD;&#x7528;&#x7684;&#x4EE3;&#x7801;&#x6765;&#x914D;&#x7F6E;&#x670D;&#x52A1;&#x5668;&#xFF0C; &#x4F8B;&#x5982;Terraform, Ansible</strong></p><p><strong>&#x81EA;&#x52A8;&#x5316;&#x6570;&#x636E;&#x5E93;&#x5907;&#x4EFD;&#xFF0C; &#x5E76;&#x5B9A;&#x671F;&#x5C1D;&#x8BD5;&#x6062;&#x590D;&#x6765;&#x68C0;&#x9A8C;&#x5907;&#x4EFD;&#x662F;&#x5426;&#x6709;&#x6548;</strong></p><p><strong>&#x7EF4;&#x62A4;&#x4E00;&#x4E2A;Staging&#x73AF;&#x5883;</strong></p><p><strong>&#x8BBE;&#x7F6E;&#x5E76;&#x542F;&#x52A8;&#x76D1;&#x63A7;&#x548C;&#x914D;&#x7F6E;&#x9002;&#x5408;&#x7684;&#x544A;&#x8B66;&#x89C4;&#x5219;</strong></p><p><strong>&#x6C38;&#x8FDC;&#x4E0D;&#x8981;&#x628A;&#x751F;&#x4EA7;&#x7684;&#x6570;&#x636E;&#x653E;&#x5230;&#x975E;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x4E0A;&#x8FD0;&#x884C;</strong></p><h4 id="%E4%BB%A3%E7%A0%81">&#x4EE3;&#x7801;</h4><p><strong>README&#x5E94;&#x63CF;&#x8FF0;&#x4ECE;&#x5934;&#x5F00;&#x59CB;&#x8BBE;&#x7F6E;&#x5F00;&#x53D1;&#x73AF;&#x5883;&#x7684;&#x6B65;&#x9AA4;&#xFF0C;&#x5E76;&#x59CB;&#x7EC8;&#x4FDD;&#x6301;&#x66F4;&#x65B0;</strong></p><p><strong>&#x5C3D;&#x65E9;&#x786E;&#x5B9A;&#x5E76;&#x5236;&#x5B9A;&#x4EE3;&#x7801;&#x98CE;&#x683C;&#x6307;&#x5357;</strong></p><p><strong>&#x5C3D;&#x65E9;&#x786E;&#x5B9A;&#x5E76;&#x5236;&#x5B9A;&#x6D4B;&#x8BD5;&#x89C4;&#x8303;</strong></p><p><strong>&#x51B3;&#x5B9A;&#x5728;&#x4EE3;&#x7801;&#x4E2D;&#x6DFB;&#x52A0;&#x4EC0;&#x4E48;&#x6837;&#x7684;&#x6CE8;&#x91CA;</strong></p><p><strong>&#x4F7F;&#x7528;linters&#x6765;&#x5E2E;&#x52A9;&#x4EE3;&#x7801;&#x6807;&#x51C6;&#x5316;&#xFF0C;&#x5E76;&#x4F7F;&#x6BCF;&#x4E2A;&#x4EBA;&#x90FD;&#x80FD;&#x66F4;&#x597D;&#x5730;&#x8FDB;&#x884C;&#x4EE3;&#x7801;Review</strong></p><p><strong>&#x5236;&#x5B9A;&#x5E76;&#x8BB0;&#x5F55;&#x65E5;&#x5FD7;&#x8BB0;&#x5F55;&#x7684;&#x6307;&#x5357;&#x548C;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;</strong></p><p><strong>&#x8BBE;&#x7F6E;&#x5E76;&#x8BB0;&#x5F55;&#x5F02;&#x5E38;&#x5904;&#x7406;&#x7684;&#x6307;&#x5BFC;&#x539F;&#x5219;&#x548C;&#x6700;&#x4F73;&#x5B9E;&#x8DF5;</strong></p><p><strong>&#x914D;&#x7F6E;Runtime&#x9519;&#x8BEF;&#x5F02;&#x5E38;&#x62A5;&#x544A;</strong></p><p><strong>&#x4E3A;&#x6027;&#x80FD;&#x62A5;&#x544A;&#x8BBE;&#x7F6E;&#x5B9E;&#x65F6;&#x5206;&#x6790;</strong></p><p><strong>&#x5728;&#x6570;&#x636E;&#x5E93;&#x7EA7;&#x522B;&#x8BBE;&#x7F6E;&#x8DDF;&#x8E2A;&#x8BB0;&#x5F55;&#x66F4;&#x6539;&#x7684;&#x80FD;&#x529B;&#xFF0C;&#x4EE5;&#x8FDB;&#x884C;&#x5BA1;&#x8BA1;&#x6216;&#x7248;&#x672C;&#x7BA1;&#x7406;</strong></p><p><strong>&#x5B9A;&#x4E49;&#x5E76;&#x5236;&#x5B9A;&#x4EE3;&#x7801;Review&#x7684;&#x6D41;&#x7A0B;&#x548C;&#x671F;&#x671B;&#x503C;</strong></p><ul><li><a href="https://mtlynch.io/human-code-reviews-1/?ref=liangbo.me" rel="nofollow noopener">https://mtlynch.io/human-code-reviews-1/</a></li><li><a href="https://mtlynch.io/human-code-reviews-2/?ref=liangbo.me" rel="nofollow noopener">https://mtlynch.io/human-code-reviews-2/</a></li></ul><p><strong>&#x65E9;&#x671F;&#x4EE3;&#x7801;&#x5728;&#x6027;&#x80FD;/&#x53EF;&#x6269;&#x5C55;&#x6027;&#x6210;&#x4E3A;&#x95EE;&#x9898;&#x4E4B;&#x524D;&#x4E0D;&#x4F1A;&#x51FA;&#x73B0;&#x74F6;&#x9888;&#x95EE;&#x9898;&#xFF0C; &#x56E0;&#x6B64;&#x8981;&#x91CD;&#x70B9;&#x5173;&#x6CE8;&#xFF0C; &#x56E0;&#x4E3A;&#x4E00;&#x65E6;&#x51FA;&#x73B0;&#xFF0C; &#x4F1A;&#x5E26;&#x6765;&#x4E0D;&#x53EF;&#x907F;&#x514D;&#x7684;&#x707E;&#x96BE;&#x3002;</strong></p><p><strong>&#x5C06;&#x5F00;&#x53D1;&#x73AF;&#x5883;&#x7684;&#x6570;&#x636E;&#x5E93;&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x653E;&#x5230;&#x4EE3;&#x7801;&#x4E2D;</strong></p><h4 id="%E5%9B%A2%E9%98%9F">&#x56E2;&#x961F;</h4><p><strong>&#x6C49;&#x4F26;&#x5243;&#x5200;(Hanlon&#x2019;s razor)&#xFF1A;&#x6C38;&#x8FDC;&#x4E0D;&#x8981;&#x5C06;&#x53EF;&#x4EE5;&#x7528;&#x65E0;&#x77E5;/&#x611A;&#x8822;/&#x50BB;&#x7F3A;&#x6240;&#x80FD;&#x89E3;&#x91CA;&#x7684;&#x4E8B;&#x60C5;&#x5F52;&#x548E;&#x4E8E;&#x6076;&#x610F;&#x3002;</strong></p><p><strong>&#x5411;&#x524D;&#x770B;&#x5E76; &#x201C;&#x62DB;&#x5175;&#x4E70;&#x9A6C;&#x201D;</strong></p><p><strong>&#x4E00;&#x65E6;&#x6709;&#x4E86;&#x81F3;&#x5C11;&#x4E00;&#x540D;&#x5DE5;&#x7A0B;&#x5E08;&#xFF0C;&#x786E;&#x5B9A;&#x5DE5;&#x7A0B;&#x7EA7;&#x522B;</strong></p><p><strong>&#x8BBE;&#x7F6E;&#x4E00;&#x4E2A;&#x53EF;&#x4EE5;&#x8BD5;&#x9A8C;&#x7684;&#x7ED3;&#x6784;</strong></p><p><strong>&#x8D28;&#x91CF;&#x4FDD;&#x8BC1;&#xFF1A;&#x60A8;&#x9700;&#x8981;&#x8D28;&#x91CF;&#x4FDD;&#x8BC1;&#x7684;&#x65F6;&#x95F4;&#x6BD4;&#x60A8;&#x60F3;&#x8C61;&#x7684;&#x8981;&#x65E9;&#x3002;</strong></p><p><strong>&#x5F53;&#x4F60;&#x4E0D;&#x518D;&#x6709;&#x6548;&#x5730;&#x7BA1;&#x7406;&#x56E2;&#x961F;&#x65F6;&#xFF0C;&#x5BFB;&#x627E;&#x4E00;&#x4E2A;&#x6BD4;&#x4F60;&#x5F3A;10&#x500D;&#x7684;/&#x603B;&#x76D1;/&#x526F;&#x603B;&#x88C1;&#x3002;</strong></p><p><strong>&#x9009;&#x62E9;&#x7BA1;&#x7406;&#x8FD8;&#x662F;&#x7F16;&#x5199;&#x4EE3;&#x7801;&#x3002;&#x4E24;&#x8005;&#x517C;&#x987E;&#x4F1A;&#x5BFC;&#x81F4;&#x4E24;&#x8005;&#x90FD;&#x8868;&#x73B0;&#x4E0D;&#x4F73;&#x3002;</strong></p><p><strong>&#x51B3;&#x5B9A;&#x60A8;&#x662F;&#x5426;&#x9700;&#x8981;&#x7EC4;&#x5EFA;&#x8FDC;&#x7A0B;&#x56E2;&#x961F;&#xFF0C;&#x5982;&#x679C;&#x9700;&#x8981;&#x8FDC;&#x7A0B;&#x56E2;&#x961F;&#xFF0C;&#x60A8;&#x9700;&#x8981;&#x7EC4;&#x5EFA;&#x54EA;&#x79CD; &#x201C;&#x7C7B;&#x578B; &#x201C;&#x7684;&#x8FDC;&#x7A0B;&#x56E2;&#x961F;&#x3002;</strong></p><ul><li>&#x8FDC;&#x7A0B;&#x56E2;&#x961F;&#x4E3A;&#x60A8;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x5E9E;&#x5927;&#x7684;&#x4EBA;&#x624D;&#x5E93;&#xFF0C;&#x4F46;&#x4E5F;&#x9762;&#x4E34;&#x7740;&#x72EC;&#x7279;&#x7684;&#x7BA1;&#x7406;&#x6311;&#x6218;&#x3002;&#x5982;&#x679C;&#x662F;&#x8FDC;&#x7A0B;&#x62DB;&#x8058;&#xFF0C;&#x5219;&#x6839;&#x636E;&#x6280;&#x80FD;&#x548C;&#x81EA;&#x4E3B;&#x6027;&#x8FDB;&#x884C;&#x62DB;&#x8058;&#x3002;</li><li><a href="http://klinger.io/post/180989912140/managing-remote-teams-a-crash-course?ref=liangbo.me" rel="nofollow noopener">http://klinger.io/post/180989912140/managing-remote-teams-a-crash-course</a></li></ul><h4 id="%E6%97%A5%E5%B8%B8%E6%89%A7%E8%A1%8C">&#x65E5;&#x5E38;&#x6267;&#x884C;</h4><p><strong>&#x7AD9;&#x4F1A;&#x3001;Sprint&#x3001;Review&#x3001;Milestone</strong></p><p><strong>&#x4F7F;&#x7528;&#x7B80;&#x5355;&#x7684; &#x201C;&#x9879;&#x76EE;&#x7BA1;&#x7406; &#x201C;&#x6765;&#x4FDD;&#x6301;&#x5065;&#x5EB7;&#x7684;&#x4EA7;&#x54C1;&#x5F00;&#x53D1;&#x8282;&#x594F;&#xFF0C;&#x65E0;&#x8BBA;&#x60A8;&#x7684; &#x201C;&#x56E2;&#x961F; &#x201C;&#x6709;&#x591A;&#x5C0F;</strong></p><p><strong>&#x56E2;&#x961F;&#x6210;&#x5458;&#x7684;&#x5931;&#x8D25;&#x5F88;&#x53EF;&#x80FD;&#x6E90;&#x4E8E;&#x60A8;&#x505A;&#x51FA;&#xFF08;&#x6216;&#x6CA1;&#x6709;&#x505A;&#x51FA;&#xFF09;&#x7684;&#x51B3;&#x5B9A;</strong></p><h4 id="%E4%BA%A7%E5%93%81">&#x4EA7;&#x54C1;</h4><p><strong>&#x4F7F;&#x7528; &#x201C;Feature Flag&#x201C;&#x53D1;&#x5E03;&#x65B0;&#x529F;&#x80FD;&#xFF0C;&#x5E76;&#x6709;&#x9009;&#x62E9;&#x6027;&#x5730;&#x4E3A;&#x73B0;&#x6709;&#x5BA2;&#x6237;&#x542F;&#x7528;&#x8FD9;&#x4E9B;&#x529F;&#x80FD;&#x3002;</strong></p><p><strong>&#x4E0D;&#x8981;&#x5C1D;&#x8BD5;&#x8BA9;&#x4EA7;&#x54C1;&#x66F4;&#x51FA;&#x8272;&#xFF0C;&#x800C;&#x8981;&#x59CB;&#x7EC8;&#x5173;&#x6CE8;&#x5982;&#x4F55;&#x8BA9;&#x7528;&#x6237;&#x66F4;&#x51FA;&#x8272;&#x3002;</strong></p><p><strong>&#x4ECE;&#x5206;&#x6790;&#x548C;&#x6570;&#x636E;&#x7684;&#x542F;&#x53D1;&#x4E2D;&#x505A;&#x51B3;&#x5B9A;&#x3002;</strong></p><p><strong>&#x62A5;&#x8868;&#xFF1A; &#x60A8;&#x8FDF;&#x65E9;&#x9700;&#x8981;&#x5C06;&#x4ECE;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x67E5;&#x8BE2;&#x5230;&#x7684;&#x6570;&#x636E;&#x8F6C;&#x5316;&#x4E3A;&#x62A5;&#x8868;&#x529F;&#x80FD;&#x63D0;&#x4F9B;&#x7ED9;&#x60A8;&#x7684;&#x5BA2;&#x6237;&#x3002;</strong></p><p><strong>&#x5BA2;&#x6237;&#x63D0;&#x51FA;&#x7684;&#x9700;&#x6C42;&#x901A;&#x5E38;&#x662F;&#x5408;&#x7406;&#x7684;, &#x4F46;&#x662F;&#x4ED6;&#x4EEC;&#x5EFA;&#x8BAE;&#x7684;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x901A;&#x5E38;&#x662F;&#x9519;&#x8BEF;&#x7684;&#x3002;&#x5728;&#x6743;&#x8861; &#x201C;&#x5982;&#x4F55;&#x505A; &#x201C;&#x4E4B;&#x524D;&#xFF0C;&#x5148;&#x4E86;&#x89E3; &#x201C;&#x4E3A;&#x4EC0;&#x4E48;&#x201D;&#xFF1B;</strong></p><p><strong>&#x5207;&#x52FF;&#x4EC5;&#x4EC5;&#x4E3A;&#x4E86;&#x4E00;&#x4E2A;&#x5BA2;&#x6237;&#x800C;&#x5B9E;&#x65BD;&#x4E00;&#x9879;&#x529F;&#x80FD;&#xFF1B;&#x8FD9;&#x5C06;&#x5728;&#x672A;&#x6765;&#x5BF9;&#x60A8;&#x9020;&#x6210;&#x66F4;&#x5927;&#x7684;&#x4F24;&#x5BB3;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5728;&#x77ED;&#x671F;&#x5185;&#x5BF9;&#x60A8;&#x6709;&#x6240;&#x5E2E;&#x52A9;&#x3002;</strong></p><ul><li>&#x4ED8;&#x8D39;/&#x8D5E;&#x52A9;&#x529F;&#x80FD;&#x9664;&#x5916;&#xFF0C;&#x5E94;&#x5C06;&#x7EF4;&#x62A4;&#x548C;&#x652F;&#x6301;&#x8003;&#x8651;&#x5728;&#x5185;</li></ul><p><strong>&#x5728;&#x5F00;&#x59CB;&#x6784;&#x5EFA;&#x529F;&#x80FD;&#x4E4B;&#x524D;&#xFF0C;&#x786E;&#x4FDD;&#x73B0;&#x6709;&#x5BA2;&#x6237;&#x9700;&#x8981;&#x8BE5;&#x529F;&#x80FD;</strong></p><ul><li>&#x6F5C;&#x5728;&#x5BA2;&#x6237;&#x603B;&#x662F; &#x201C;&#x671B;&#x6885;&#x6B62;&#x6E34;&#x201D;&#xFF0C;&#x800C; &#x201C;&#x591A;&#x4E00;&#x4E2A;&#x529F;&#x80FD; &#x201C;&#x5374;&#x5F88;&#x5C11;&#x80FD;&#x5438;&#x5F15;&#x5230;&#x5BA2;&#x6237;&#x3002;&#x9009;&#x62E9;&#x8BB8;&#x591A;&#x6F5C;&#x5728;&#x5BA2;&#x6237;&#x9700;&#x8981;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x800C;&#x4E0D;&#x4EC5;&#x4EC5;&#x662F;&#x5C11;&#x6570;&#x51E0;&#x4E2A;&#x3002;</li></ul><p><strong>&#x5BF9;&#x60A8;&#x7684;&#x4EA7;&#x54C1;&#x6709;&#x4E00;&#x4E2A;&#x613F;&#x666F;&#xFF0C;&#x5E76;&#x4E3A;&#x4E4B;&#x52AA;&#x529B;&#x3002;&#x56E0;&#x4E3A;&#x529F;&#x80FD;&#x4E0D;&#x7B26;&#x5408;&#x60A8;&#x7684;&#x613F;&#x666F;&#x800C;&#x4E22;&#x5931;&#x5BA2;&#x6237;&#x77ED;&#x671F;&#x4F1A;&#x5F88;&#x75DB;&#x82E6;&#xFF0C;&#x4F46;&#x4ECE;&#x957F;&#x8FDC;&#x6765;&#x770B;&#x4F1A;&#x6709;&#x56DE;&#x62A5;&#x3002;</strong></p><p><strong>&#x4EE5; &#x201C;&#x7B80;&#x5355; &#x201C;&#x7684;&#x4EA7;&#x54C1;&#x4E3A;&#x76EE;&#x6807;&#x3002;&#x7B80;&#x5355;&#x5E76;&#x4E0D;&#x5BB9;&#x6613;&#xFF0C;&#x4F46;&#x5374;&#x662F;&#x60A8;&#x7684;&#x5BA2;&#x6237;&#x548C;&#x7528;&#x6237;&#x6240;&#x9700;&#x8981;&#x7684;&#x3002;&#x4EA7;&#x54C1;&#x7684;&#x5DE5;&#x827A;&#x5C31;&#x662F;&#x505A;&#x8270;&#x82E6;&#x7684;&#x5DE5;&#x4F5C;&#xFF0C;&#x5F04;&#x6E05;&#x4EA7;&#x54C1;&#x7684;&#x590D;&#x6742;&#x6027;&#xFF0C;&#x4F7F;&#x60A8;&#x7684;&#x5BA2;&#x6237;&#x80FD;&#x591F;&#x7B80;&#x5355;&#x5730;&#x4F7F;&#x7528;&#x5B83;&#x3002;</strong></p><p><strong>&#x652F;&#x6301;</strong><a href="https://medium.com/%E5%B7%A5%E7%A8%8B%E5%B8%AB%E6%B1%82%E7%94%9F%E6%8C%87%E5%8D%97-sofware-engineer-survival-guide/%E6%B7%BA%E8%AB%87app-link%E8%88%87deep-link%E5%AF%A6%E4%BD%9C-995734a11889?ref=liangbo.me"><strong>&#x6DF1;&#x5EA6;&#x94FE;&#x63A5;</strong></a><strong>&#xFF1B;&#x60A8;&#x7684;&#x7528;&#x6237;&#x548C;&#x652F;&#x6301;&#x4EBA;&#x5458;&#x5C06;&#x611F;&#x8C22;&#x60A8;</strong></p><h4 id="%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81">&#x6280;&#x672F;&#x652F;&#x6301;</h4><p><strong>&#x5C3D;&#x65E9;&#x5B9E;&#x73B0;Admin portal</strong></p><p><strong>&#x4E3A;&#x786E;&#x4FDD;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x7684; &#x201C;&#x5065;&#x5EB7;&#x201D;&#xFF0C;&#x542F;&#x7528;&#x4E00;&#x4E2A;&#x5C55;&#x793A;&#x670D;&#x52A1;&#x72B6;&#x6001;&#x7684;&#x9875;&#x9762;</strong></p><p><strong>&#x4E3A;Admin&#x63D0;&#x4F9B; &#x201C;Impersonate &#x201C;&#x529F;&#x80FD;(&#x4F7F;&#x7528;&#x7528;&#x6237;&#x7684;&#x8EAB;&#x4EFD;&#x767B;&#x5F55;)&#xFF0C;&#x5E2E;&#x52A9;&#x4ED6;&#x4EEC;&#x4F53;&#x9A8C;&#x5BA2;&#x6237;&#x6B63;&#x5728;&#x7ECF;&#x5386;&#x7684;&#x4E8B;&#x60C5;&#x3002;</strong></p><p><strong>&#x5DE5;&#x7A0B;&#x5E08;&#x8F6E;&#x6D41;&#x63D0;&#x4F9B;&#x652F;&#x6301;&#xFF0C;&#x4EE5;&#x5EFA;&#x7ACB;&#x540C;&#x7406;&#x5FC3;&#xFF0C;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x60A8;&#x548C;&#x5176;&#x4ED6;&#x8054;&#x5408;&#x521B;&#x59CB;&#x4EBA;&#x4E5F;&#x662F;&#x5982;&#x6B64;&#x3002;</strong></p><p><strong>&#x5C3D;&#x65E9;&#x5EFA;&#x7ACB;&#x670D;&#x52A1;/&#x4EA7;&#x54C1;&#x652F;&#x6301;&#x5DE5;&#x5355;&#x7CFB;&#x7EDF;</strong></p><p><strong>&#x5B9A;&#x4E49;&#x660E;&#x786E;&#x7684;&#x4EA7;&#x54C1;&#x652F;&#x6301;&#x65F6;&#x95F4;&#x8868;&#x5E76;&#x5C06;&#x5176;&#x4F20;&#x8FBE;&#x7ED9;&#x60A8;&#x7684;&#x5BA2;&#x6237;&#xFF1B;&#x4E0E;&#x60A8;&#x7684;&#x652F;&#x6301;&#x4EBA;&#x5458;&#x4E00;&#x8D77;&#x4E25;&#x683C;&#x6267;&#x884C;&#x8FD9;&#x4E9B;&#x65F6;&#x95F4;&#x8868;&#xFF0C; &#x65E9;&#x671F;&#x60A8;&#x53EF;&#x80FD;&#x65E0;&#x9700;&#x8003;&#x8651;24x7&#xFF0C; &#x4F46;&#x662F;&#x5F53;&#x89C4;&#x6A21;&#x53D8;&#x5927;&#x540E;&#xFF0C; &#x60A8;&#x53EF;&#x80FD;&#x8FD8;&#x9700;&#x8981;&#x8003;&#x8651;&#x6765;&#x81EA;&#x4E0D;&#x540C;&#x65F6;&#x533A;&#x7684;&#x5BA2;&#x6237;&#x3002;</strong></p><p><strong>&#x90A3;&#x4E9B; &#x201C;&#x63D0;&#x51FA; &#x201C;24x7&#x652F;&#x6301;&#x7684;&#x5BA2;&#x6237;&#x9700;&#x8981;&#x4E3A;&#x6B64;&#x652F;&#x4ED8;&#x989D;&#x5916;&#x8D39;&#x7528;&#x3002;</strong></p><p><strong>&#x5C3D;&#x65E9;&#x5B9A;&#x4E49;&#x5E76;&#x8BB0;&#x5F55;&#x652F;&#x6301;&#x7684;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF;&#x3001;&#x6D4F;&#x89C8;&#x5668;&#x548C;&#x5E73;&#x53F0;&#xFF0C;</strong></p><ul><li><a href="https://beta.caniuse.com/?ref=liangbo.me" rel="nofollow noopener">https://beta.caniuse.com/</a> &#x662F;&#x60A8;&#x7684;&#x670B;&#x53CB;</li><li>&#x5982;&#x679C;&#x60A8;&#x8BA1;&#x5212;&#x652F;&#x6301;IE&#xFF0C;&#x8BF7;&#x786E;&#x4FDD;&#x60A8;&#x548C;&#x60A8;&#x7684;&#x56E2;&#x961F;&#x80FD;&#x591F;&#x6D4B;&#x8BD5;&#x548C;&#x8C03;&#x8BD5;IE&#x4E2D;&#x7684;&#x9519;&#x8BEF;&#x3002;</li></ul><p><strong>&#x5728;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4E2D;&#x4E3A;Admin&#x7528;&#x6237;&#xFF08;&#x6388;&#x6743;&#x7528;&#x6237;&#xFF09;&#x8BBE;&#x7F6E;&#x53EA;&#x8BFB;&#x7684;SQL&#x67E5;&#x8BE2;&#x754C;&#x9762;&#xFF0C;&#x5E76;&#x963B;&#x6B62;&#x4F7F;&#x7528;&#x5916;&#x90E8;&#x5BA2;&#x6237;&#x7AEF;</strong></p><h4 id="%E5%AE%89%E5%85%A8">&#x5B89;&#x5168;</h4><p><strong>SaaS&#x9996;&#x5E2D;&#x6280;&#x672F;&#x5B98;&#x5B89;&#x5168;&#x68C0;&#x67E5;&#x6E05;&#x5355;</strong></p><ul><li><a href="https://www.sqreen.com/checklists/saas-cto-security-checklist?ref=liangbo.me" rel="nofollow noopener">https://www.sqreen.com/checklists/saas-cto-security-checklist</a></li></ul><p><strong>&#x51C6;&#x5907;&#x4E00;&#x5957;&#x4E0E;&#x4F01;&#x4E1A;&#x5BA2;&#x6237;&#x5171;&#x4EAB;&#x7684;&#x8D44;&#x4EA7;</strong></p><p><strong>&#x4E3A;&#x4F60;&#x7684;&#x6846;&#x67B6;&#x8FD0;&#x884C;&#x9759;&#x6001;&#x4EE3;&#x7801;&#x5206;&#x6790;&#x5B89;&#x5168;&#x5DE5;&#x5177;</strong></p><p><strong>&#x5C3D;&#x65E9;&#x7814;&#x7A76;&#x7B2C;&#x4E09;&#x65B9;&#x7B14;&#x6D4B;&#x8BD5;&#x548C;&#x4EE3;&#x7801;&#x5BA1;&#x8BA1;&#x670D;&#x52A1;/&#x5DE5;&#x5177;</strong><br><strong> </strong><br><strong>&#x5B9E;&#x65BD;&#x6F0F;&#x6D1E;&#x5956;&#x52B1;&#x8BA1;&#x5212;</strong></p><ul><li><a href="https://www.hackerone.com/?ref=liangbo.me" rel="nofollow noopener">https://www.hackerone.com/</a> &#x6216;&#x7C7B;&#x4F3C;</li></ul><h4 id="%E5%90%88%E8%A7%84%E6%80%A7">&#x5408;&#x89C4;&#x6027;</h4><p><strong>&#x719F;&#x6089;&#x60A8;&#x6240;&#x5728;&#x884C;&#x4E1A;&#x7684;&#x5408;&#x89C4;&#x6807;&#x51C6;</strong></p><p><strong>&#x5C3D;&#x65E9;&#x4E3A;&#x516C;&#x53F8;&#x83B7;&#x5F97;&#x884C;&#x4E1A;&#x524D;&#x4E09;&#x540D;&#x7684;&#x5408;&#x89C4;&#x8BC1;&#x4E66;</strong></p><h4 id="%E6%9D%82%E9%A1%B9">&#x6742;&#x9879;</h4><p><strong>&#x627E;&#x5230;&#x6307;&#x5BFC;&#x4ED6;&#x4EBA;&#x7684;&#x65B9;&#x6CD5;&#xFF08;&#x516C;&#x53F8;&#x5185;&#x90E8;&#x6216;&#x5916;&#x90E8;&#xFF09;</strong></p><p><strong>&#x52A0;&#x5165;&#x4E00;&#x4E2A;&#x7531;CTO&#x3001;&#x5DE5;&#x7A0B;&#x5E08;&#x3001;&#x6280;&#x672F;&#x9886;&#x8896;&#x7EC4;&#x6210;&#x7684;&#x793E;&#x533A;&#xFF0C;&#x4E0E;&#x4ED6;&#x4EEC;&#x5206;&#x4EAB;&#x77E5;&#x8BC6;&#x3002;</strong></p><p><strong>&#x5728;&#x65E5;&#x5E38;&#x5DE5;&#x4F5C;&#x4E2D;&#xFF0C;&#x5E73;&#x8861;&#x53F2;&#x8BD7;&#x4EFB;&#x52A1;&#x548C;&#x5C0F;Backlog/Bug&#x4FEE;&#x590D;&#x4E4B;&#x95F4;&#x7684;&#x5173;&#x7CFB;</strong><br><strong> </strong><br><strong>&#x4F7F;&#x7528;&#x90AE;&#x4EF6;&#x7EC4;&#x6765;&#x63D0;&#x4F9B;&#x6240;&#x6709;&#x5BF9;&#x5916;&#x7684;&#x6C9F;&#x901A;&#x548C;&#x670D;&#x52A1;&#xFF0C; &#x4F8B;&#x5982;support@youcompany.com</strong></p><ul><li>&#x4F7F;&#x7528;&#x5BC6;&#x7801;&#x7BA1;&#x7406;&#x5668;&#x7684;&#x5171;&#x4EAB;&#x529F;&#x80FD;&#xFF0C;&#x786E;&#x4FDD;&#x8BBF;&#x95EE;&#x6743;&#x9650;&#x4E0D;&#x4F9D;&#x8D56;&#x4E8E;&#x60A8;&#x4E2A;&#x4EBA;</li></ul><p><strong>&#x7528;&#x516C;&#x53F8;&#x4FE1;&#x7528;&#x5361;&#x652F;&#x4ED8;&#x6240;&#x6709;&#x7B2C;&#x4E09;&#x65B9;&#x5E73;&#x53F0;/&#x670D;&#x52A1;&#x7684;&#x8D39;&#x7528;</strong></p><ul><li>&#x5982;&#x679C;&#x4F7F;&#x7528;&#x4E2A;&#x4EBA;&#x7684;&#x4FE1;&#x7528;&#x5361;, &#x89D2;&#x8272;&#x53D8;&#x66F4;&#x3001;&#x6536;&#x8D2D;&#x3001;&#x6CE8;&#x9500;&#x4FE1;&#x7528;&#x5361;&#x7B49;&#x90FD;&#x53EF;&#x80FD;&#x4F7F;&#x8FD9;&#x4E00;&#x64CD;&#x4F5C;&#x53D8;&#x5F97;&#x9EBB;&#x70E6;&#x3002;</li></ul>]]></content:encoded></item><item><title><![CDATA[面向开发人员的软件架构设计指南]]></title><description><![CDATA[软件架构是为了实现所需要的功能而产生的一个设计、代码组织、关联以及组件之间如何相互影响，相互作用的一个过程，]]></description><link>https://liangbo.me/e9-9d-a2-e5-90-91-e5-bc-80-e5-8f-91-e4-ba-ba-e5-91-98-e7-9a-84-e8-bd-af-e4-bb-b6-e6-9e-b6-e6-9e-84-e8-ae-be-e8-ae-a1-e6-8c-87-e5-8d-97/</link><guid isPermaLink="false">66860f1cb6891c0001494cc8</guid><dc:creator><![CDATA[一烫杂货铺]]></dc:creator><pubDate>Wed, 12 Jul 2023 14:15:14 GMT</pubDate><media:content url="https://liangbo.me/content/images/2024/07/1-tkqy4f81_fw69ulzsl2-vg.gif" medium="image"/><content:encoded><![CDATA[<img src="https://liangbo.me/content/images/2024/07/1-tkqy4f81_fw69ulzsl2-vg.gif" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;"><p>&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x662F;&#x4E3A;&#x4E86;&#x5B9E;&#x73B0;&#x6240;&#x9700;&#x8981;&#x7684;&#x529F;&#x80FD;&#x800C;&#x4EA7;&#x751F;&#x7684;&#x4E00;&#x4E2A;&#x8BBE;&#x8BA1;&#x3001;&#x4EE3;&#x7801;&#x7EC4;&#x7EC7;&#x3001;&#x5173;&#x8054;&#x4EE5;&#x53CA;&#x7EC4;&#x4EF6;&#x4E4B;&#x95F4;&#x5982;&#x4F55;&#x76F8;&#x4E92;&#x5F71;&#x54CD;&#xFF0C;&#x76F8;&#x4E92;&#x4F5C;&#x7528;&#x7684;&#x4E00;&#x4E2A;&#x8FC7;&#x7A0B;&#xFF0C;</p><p>&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x662F;&#x4E00;&#x4E2A;&#x91CD;&#x8981;&#x7684;&#x8FC7;&#x7A0B;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x786E;&#x4FDD;&#x8F6F;&#x4EF6;&#x4EA7;&#x54C1;&#x7684;&#x8D28;&#x91CF;&#xFF0C;&#x5E76;&#x5E2E;&#x52A9;&#x4F01;&#x4E1A;&#x89E3;&#x51B3;&#x957F;&#x671F;&#x548C;&#x77ED;&#x671F;&#x7684;&#x590D;&#x6742;&#x6027;&#x95EE;&#x9898;&#x3002;&#x8BA9;&#x6211;&#x4EEC;&#x901A;&#x8FC7;&#x4E00;&#x4E2A;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x7684;&#x4F8B;&#x5B50;&#x6765;&#x7406;&#x89E3;&#x5B83;&#x3002;</p><h4 id="%E4%B8%BE%E4%BE%8B">&#x4E3E;&#x4F8B;:</h4><p>&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x7684;&#x4E00;&#x4E2A;&#x4F8B;&#x5B50;&#x662F;&#x7535;&#x5B50;&#x5546;&#x52A1;&#x7F51;&#x7AD9;&#x7684;&#x8BBE;&#x8BA1;&#x3002;&#x7F51;&#x7AD9;&#x7531;&#x5404;&#x79CD;&#x7EC4;&#x4EF6;&#x7EC4;&#x6210;&#xFF0C;&#x5982;&#x7528;&#x6237;&#x754C;&#x9762;&#x3001;&#x6570;&#x636E;&#x5E93;&#x548C;&#x652F;&#x4ED8;&#x7F51;&#x5173;&#x3002;&#x7F51;&#x7AD9;&#x67B6;&#x6784;&#x5B9A;&#x4E49;&#x4E86;&#x8FD9;&#x4E9B;&#x7EC4;&#x4EF6;&#x4E4B;&#x95F4;&#x7684;&#x4EA4;&#x4E92;&#x65B9;&#x5F0F;&#x4EE5;&#x53CA;&#x7F51;&#x7AD9;&#x7684;&#x6574;&#x4F53;&#x7ED3;&#x6784;&#x3002;&#x67B6;&#x6784;&#x8FD8;&#x5305;&#x62EC;&#x7528;&#x4E8E;&#x6784;&#x5EFA;&#x7F51;&#x7AD9;&#x7684;&#x6280;&#x672F;&#x3001;&#x5DE5;&#x5177;&#x548C;&#x6846;&#x67B6;&#x7684;&#x9009;&#x62E9;&#x3002;</p><p>&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x7684;&#x91CD;&#x8981;&#x6027;&#x600E;&#x4E48;&#x5F3A;&#x8C03;&#x90FD;&#x4E0D;&#x4E3A;&#x8FC7;&#x3002;&#x5B83;&#x5728;&#x89E3;&#x51B3;&#x957F;&#x671F;&#x548C;&#x77ED;&#x671F;&#x7684;&#x590D;&#x6742;&#x6027;&#x65B9;&#x9762;&#x53D1;&#x6325;&#x7740;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x7684;&#x4F5C;&#x7528;&#x3002;</p><blockquote>&#x4ECE;&#x77ED;&#x671F;&#x6765;&#x770B;&#xFF0C;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6709;&#x52A9;&#x4E8E;&#x51CF;&#x5C11;&#x5F00;&#x53D1;&#x65F6;&#x95F4;&#x548C;&#x6210;&#x672C;&#x3002;</blockquote><p>&#x901A;&#x8FC7;&#x5B9A;&#x4E49;&#x8F6F;&#x4EF6;&#x7EC4;&#x4EF6;&#x7684;&#x7ED3;&#x6784;&#x548C;&#x5173;&#x7CFB;&#xFF0C;&#x67B6;&#x6784;&#x4E3A;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x53EF;&#x9075;&#x5FAA;&#x7684;&#x8DEF;&#x7EBF;&#x56FE;&#x3002;&#x8FD9;&#x4F7F;&#x5F97;&#x8BBE;&#x8BA1;&#x3001;&#x5F00;&#x53D1;&#x548C;&#x6D4B;&#x8BD5;&#x8F6F;&#x4EF6;&#x7EC4;&#x4EF6;&#x53D8;&#x5F97;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#xFF0C;&#x4ECE;&#x800C;&#x7F29;&#x77ED;&#x4E86;&#x5F00;&#x53D1;&#x65F6;&#x95F4;&#x5E76;&#x964D;&#x4F4E;&#x4E86;&#x6210;&#x672C;&#x3002;</p><blockquote>&#x4ECE;&#x957F;&#x8FDC;&#x6765;&#x770B;&#xFF0C;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6709;&#x52A9;&#x4E8E;&#x7EF4;&#x62A4;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x3002;</blockquote><p>&#x968F;&#x7740;&#x7CFB;&#x7EDF;&#x7684;&#x53D1;&#x5C55;&#xFF0C;&#x5B83;&#x53EF;&#x80FD;&#x4F1A;&#x53D8;&#x5F97;&#x66F4;&#x52A0;&#x590D;&#x6742;&#xFF0C;&#x4ECE;&#x800C;&#x96BE;&#x4EE5;&#x7EF4;&#x62A4;&#x548C;&#x66F4;&#x65B0;&#x3002;&#x8BBE;&#x8BA1;&#x826F;&#x597D;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x53EF;&#x63D0;&#x4F9B;&#x4E00;&#x4E2A;&#x6846;&#x67B6;&#xFF0C;&#x5728;&#x4E0D;&#x5F71;&#x54CD;&#x73B0;&#x6709;&#x7CFB;&#x7EDF;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x6DFB;&#x52A0;&#x65B0;&#x7279;&#x6027;&#x548C;&#x529F;&#x80FD;&#x3002;&#x8FD9;&#x53EF;&#x786E;&#x4FDD;&#x7CFB;&#x7EDF;&#x968F;&#x7740;&#x65F6;&#x95F4;&#x7684;&#x63A8;&#x79FB;&#x4FDD;&#x6301;&#x7075;&#x6D3B;&#x6027;&#x3001;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x548C;&#x53EF;&#x7EF4;&#x62A4;&#x6027;&#x3002;</p><p>Amazon&#x5C31;&#x662F;&#x4E00;&#x4E2A;&#x5F88;&#x597D;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;&#x8BF4;&#x660E;&#x4E86;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x5728;&#x4E1A;&#x52A1;&#x4E2D;&#x7684;&#x91CD;&#x8981;&#x6027;&#x3002;Amazon&#x662F;&#x5168;&#x7403;&#x6700;&#x5927;&#x7684;&#x7535;&#x5B50;&#x5546;&#x52A1;&#x5E73;&#x53F0;&#x4E4B;&#x4E00;&#xFF0C;&#x62E5;&#x6709;&#x6570;&#x767E;&#x4E07;&#x5BA2;&#x6237;&#x548C;&#x6570;&#x5341;&#x4EBF;&#x7B14;&#x4EA4;&#x6613;&#x3002;Amazon&#x7684;&#x6210;&#x529F;&#x90E8;&#x5206;&#x5F52;&#x529F;&#x4E8E;&#x5176;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x3002;Amazon&#x7684;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x5177;&#x6709;&#x9AD8;&#x5EA6;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x3001;&#x7075;&#x6D3B;&#x6027;&#x548C;&#x5F39;&#x6027;&#x3002;&#x5B83;&#x5EFA;&#x7ACB;&#x5728;&#x5FAE;&#x670D;&#x52A1;&#x67B6;&#x6784;&#x4E0A;&#xFF0C;&#x7CFB;&#x7EDF;&#x7684;&#x5404;&#x4E2A;&#x7EC4;&#x4EF6;&#x88AB;&#x5206;&#x89E3;&#x6210;&#x66F4;&#x5C0F;&#x3001;&#x66F4;&#x6613;&#x4E8E;&#x7BA1;&#x7406;&#x7684;&#x670D;&#x52A1;&#x3002;&#x8FD9;&#x4F7F;&#x5F97;&#x5F00;&#x53D1;&#x3001;&#x6D4B;&#x8BD5;&#x548C;&#x90E8;&#x7F72;&#x65B0;&#x529F;&#x80FD;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#xFF0C;&#x4E5F;&#x4F7F;&#x5F97;&#x7EF4;&#x62A4;&#x548C;&#x6269;&#x5C55;&#x7CFB;&#x7EDF;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://liangbo.me/content/images/2024/07/1-anlh2numv780oqfxnoq_5g.gif" class="kg-image" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;" loading="lazy" width="800" height="600" srcset="https://liangbo.me/content/images/size/w600/2024/07/1-anlh2numv780oqfxnoq_5g.gif 600w, https://liangbo.me/content/images/2024/07/1-anlh2numv780oqfxnoq_5g.gif 800w" sizes="(min-width: 720px) 720px"></figure><p>Amazon&#x7684;&#x67B6;&#x6784;&#x8FD8;&#x5305;&#x62EC;&#x5404;&#x79CD;&#x6280;&#x672F;&#x548C;&#x5DE5;&#x5177;&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x591F;&#x5904;&#x7406;&#x5927;&#x91CF;&#x7684;&#x6D41;&#x91CF;&#x548C;&#x4EA4;&#x6613;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x4E9A;&#x9A6C;&#x900A;&#x4F7F;&#x7528;&#x7684;Amazon Web Service&#xFF08;AWS&#xFF09;&#x4E3A;&#x5E73;&#x53F0;&#x63D0;&#x4F9B;&#x4E86;&#x6839;&#x636E;&#x9700;&#x6C42;&#x5FEB;&#x901F;&#x6269;&#x5C55;&#x548C;&#x7F29;&#x51CF;&#x7684;&#x80FD;&#x529B;&#x3002;&#x8FD9;&#x4F7F;&#x5F97;Amazon&#x80FD;&#x591F;&#x5728;&#x5047;&#x65E5;&#x671F;&#x95F4;&#x5904;&#x7406;&#x9AD8;&#x5CF0;&#x6D41;&#x91CF;&#xFF0C;&#x800C;&#x4E0D;&#x4F1A;&#x51FA;&#x73B0;&#x4EFB;&#x4F55;&#x505C;&#x673A;&#x6216;&#x6027;&#x80FD;&#x95EE;&#x9898;&#x3002;</p><h3 id="%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E5%8E%9F%E5%88%99%EF%BC%9A-solid">&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x539F;&#x5219;&#xFF1A; S.O.L.I.D.</h3><p>&#x65E2;&#x7136;&#x6211;&#x4EEC;&#x5DF2;&#x7ECF;&#x77E5;&#x9053;&#x4E86;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x7684;&#x57FA;&#x7840;&#x77E5;&#x8BC6;&#xFF0C;&#x90A3;&#x4E48;&#x8BA9;&#x6211;&#x4EEC;&#x6765;&#x4E86;&#x89E3;&#x4E00;&#x4E0B;&#x4EC0;&#x4E48;&#x662F;SOLID&#x539F;&#x5219;&#x3002;S.O.L.I.D&#x662F;&#x4E00;&#x5957;&#x5E2E;&#x52A9;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x8BBE;&#x8BA1;&#x548C;&#x6784;&#x5EFA;&#x6613;&#x4E8E;&#x7EF4;&#x62A4;&#x3001;&#x6269;&#x5C55;&#x548C;&#x6D4B;&#x8BD5;&#x7684;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x539F;&#x5219;&#x3002;&#x8FD9;&#x4E9B;&#x539F;&#x5219;&#x7531;Robert C. Martin&#xFF08;&#x53C8;&#x79F0; &#x201C;Uncle Bob&#x201D;&#xFF09;&#x63D0;&#x51FA;&#xFF0C;&#x5E76;&#x5DF2;&#x6210;&#x4E3A;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7684;&#x6807;&#x51C6;&#x3002;&#x7F29;&#x5199;S.O.L.I.D&#x4E2D;&#x7684;&#x6BCF;&#x4E2A;&#x5B57;&#x6BCD;&#x4EE3;&#x8868;&#x4E86;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x4E2D;&#x5E94;&#x9075;&#x5FAA;&#x7684;&#x539F;&#x5219;&#xFF1A;</p><h4 id="1-single-responsibility-%E5%8E%9F%E5%88%99%EF%BC%88srp%EF%BC%89">1. Single Responsibility &#x539F;&#x5219;&#xFF08;SRP&#xFF09;</h4><p>&#x5355;&#x4E00;&#x804C;&#x8D23;&#x539F;&#x5219;&#xFF08;Single Responsibility Principle&#xFF09;&#x662F;&#x6307;&#x4E00;&#x4E2A;&#x7C7B;&#x5E94;&#x8BE5;&#x53EA;&#x6709;&#x4E00;&#x4E2A;&#x8D23;&#x4EFB;&#x6216;&#x6539;&#x53D8;&#x7684;&#x539F;&#x56E0;&#x3002;&#x4E00;&#x4E2A;&#x7C7B;&#x5982;&#x679C;&#x6709;&#x591A;&#x4E2A;&#x804C;&#x8D23;&#xFF0C;&#x5C31;&#x5F88;&#x96BE;&#x7EF4;&#x62A4;&#x548C;&#x6D4B;&#x8BD5;&#x3002;&#x5982;&#x679C;&#x6BCF;&#x4E2A;&#x7C7B;&#x53EA;&#x5173;&#x6CE8;&#x4E00;&#x4E2A;&#x804C;&#x8D23;&#xFF0C;&#x90A3;&#x4E48;&#x4EE3;&#x7801;&#x7684;&#x7406;&#x89E3;&#x3001;&#x66F4;&#x6539;&#x548C;&#x6269;&#x5C55;&#x5C31;&#x4F1A;&#x53D8;&#x5F97;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x8003;&#x8651;&#x4E00;&#x4E2A;&#x5904;&#x7406;&#x7528;&#x6237;&#x9A8C;&#x8BC1;&#x548C;&#x53D1;&#x9001;&#x7535;&#x5B50;&#x90AE;&#x4EF6;&#x7684;&#x7C7B;&#x3002;&#x5728;&#x8FD9;&#x79CD;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5982;&#x679C;&#x7535;&#x5B50;&#x90AE;&#x4EF6;&#x53D1;&#x9001;&#x529F;&#x80FD;&#x53D1;&#x751F;&#x53D8;&#x5316;&#xFF0C;&#x53EF;&#x80FD;&#x4F1A;&#x5F71;&#x54CD;&#x8EAB;&#x4EFD;&#x9A8C;&#x8BC1;&#x529F;&#x80FD;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x5E94;&#x8BE5;&#x4E3A;&#x7528;&#x6237;&#x8EAB;&#x4EFD;&#x9A8C;&#x8BC1;&#x548C;&#x7535;&#x5B50;&#x90AE;&#x4EF6;&#x53D1;&#x9001;&#x521B;&#x5EFA;&#x5355;&#x72EC;&#x7684;&#x7C7B;&#xFF0C;&#x6BCF;&#x4E2A;&#x7C7B;&#x53EA;&#x8D1F;&#x8D23;&#x4E00;&#x4E2A;&#x529F;&#x80FD;&#x3002;</p><h4 id="2-%E5%BC%80%E9%97%AD%E5%8E%9F%E5%88%99%EF%BC%88ocp%EF%BC%89">2. &#x5F00;&#x95ED;&#x539F;&#x5219;&#xFF08;OCP&#xFF09;</h4><p>&#x5F00;&#x95ED;&#x539F;&#x5219;&#xFF08;Open-Closed Principle&#xFF09;&#x6307;&#x51FA;&#xFF0C;&#x8F6F;&#x4EF6;&#x6A21;&#x5757;&#x5E94;&#x4E3A;&#x6269;&#x5C55;&#x5F00;&#x653E;&#xFF0C;&#x4F46;&#x4E3A;&#x53D8;&#x66F4;&#x5C01;&#x95ED;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x8F6F;&#x4EF6;&#x6A21;&#x5757;&#xFF08;&#x5982;&#x7C7B;&#xFF09;&#x7684;&#x884C;&#x4E3A;&#x5E94;&#x53EF;&#x6269;&#x5C55;&#xFF0C;&#x800C;&#x65E0;&#x9700;&#x4FEE;&#x6539;&#x5176;&#x6E90;&#x4EE3;&#x7801;&#x3002;&#x6A21;&#x5757;&#x7684;&#x8BBE;&#x8BA1;&#x5E94;&#x5141;&#x8BB8;&#x5728;&#x4E0D;&#x4FEE;&#x6539;&#x73B0;&#x6709;&#x4EE3;&#x7801;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x6DFB;&#x52A0;&#x65B0;&#x529F;&#x80FD;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x8003;&#x8651;&#x4E00;&#x4E2A;&#x8BA1;&#x7B97;&#x8BA2;&#x5355;&#x603B;&#x6210;&#x672C;&#x7684;&#x7C7B;&#x3002;&#x5982;&#x679C;&#x9700;&#x8981;&#x5BF9;&#x8BA2;&#x5355;&#x5E94;&#x7528;&#x6298;&#x6263;&#xFF0C;&#x5219;&#x4E0D;&#x5E94;&#x4FEE;&#x6539;&#x73B0;&#x6709;&#x7C7B;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x5E94;&#x8BE5;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7C7B;&#x6765;&#x6269;&#x5C55;&#x73B0;&#x6709;&#x7C7B;&#x7684;&#x529F;&#x80FD;&#x3002;</p><h4 id="3-liskov-%E6%9B%BF%E4%BB%A3%E5%8E%9F%E5%88%99%EF%BC%88lsp%EF%BC%89">3. Liskov &#x66FF;&#x4EE3;&#x539F;&#x5219;&#xFF08;LSP&#xFF09;</h4><p>Liskov&#x66FF;&#x4EE3;&#x539F;&#x5219;(Liskov Substitution Principle)&#x6307;&#x51FA;&#xFF0C;&#x6D3E;&#x751F;&#x7C7B;&#x5E94;&#x8BE5;&#x53EF;&#x4EE5;&#x66FF;&#x4EE3;&#x57FA;&#x7C7B;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x6D3E;&#x751F;&#x7C7B;&#x5E94;&#x8BE5;&#x80FD;&#x591F;&#x66FF;&#x6362;&#x57FA;&#x7C7B;&#x800C;&#x4E0D;&#x5F71;&#x54CD;&#x7A0B;&#x5E8F;&#x7684;&#x6B63;&#x786E;&#x6027;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x8003;&#x8651;&#x4E00;&#x4E2A;&#x4F7F;&#x7528;&#x57FA;&#x7C7B;Shape&#x6765;&#x8BA1;&#x7B97;&#x5F62;&#x72B6;&#x9762;&#x79EF;&#x7684;&#x7A0B;&#x5E8F;&#x3002;Liskov&#x66FF;&#x6362;&#x539F;&#x5219;&#x6307;&#x51FA;&#xFF0C;&#x4EFB;&#x4F55;&#x6D3E;&#x751F;&#x7C7B;&#xFF0C;&#x5982;&#x77E9;&#x5F62;&#x6216;&#x5706;&#x5F62;&#xFF0C;&#x90FD;&#x5E94;&#x8BE5;&#x80FD;&#x591F;&#x66FF;&#x6362;Shape&#x7C7B;&#x800C;&#x4E0D;&#x4F1A;&#x7834;&#x574F;&#x7A0B;&#x5E8F;&#x3002;</p><h4 id="4-%E6%8E%A5%E5%8F%A3%E9%9A%94%E7%A6%BB%E5%8E%9F%E5%88%99%EF%BC%88isp%EF%BC%89">4. &#x63A5;&#x53E3;&#x9694;&#x79BB;&#x539F;&#x5219;&#xFF08;ISP&#xFF09;</h4><p>&#x63A5;&#x53E3;&#x9694;&#x79BB;&#x539F;&#x5219;&#xFF08;Interface Segregation Principle&#xFF09;&#x6307;&#x51FA;&#xFF0C;&#x4E0D;&#x5E94;&#x8BE5;&#x5F3A;&#x8FEB;&#x4E00;&#x4E2A;&#x7C7B;&#x5B9E;&#x73B0;&#x5B83;&#x4E0D;&#x4F7F;&#x7528;&#x7684;&#x63A5;&#x53E3;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x63A5;&#x53E3;&#x5E94;&#x6839;&#x636E;&#x7C7B;&#x7684;&#x9700;&#x8981;&#x800C;&#x8BBE;&#x8BA1;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5F3A;&#x8FEB;&#x7C7B;&#x5B9E;&#x73B0;&#x5B83;&#x4E0D;&#x9700;&#x8981;&#x7684;&#x65B9;&#x6CD5;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x8003;&#x8651;&#x4E00;&#x4E2A;&#x540D;&#x4E3A;Customer&#x7684;&#x63A5;&#x53E3;&#xFF0C;&#x5B83;&#x5305;&#x62EC;&#x521B;&#x5EFA;&#x65B0;&#x5BA2;&#x6237;&#x548C;&#x66F4;&#x65B0;&#x73B0;&#x6709;&#x5BA2;&#x6237;&#x7684;&#x65B9;&#x6CD5;&#x3002;&#x4E00;&#x4E2A;&#x53EA;&#x9700;&#x8981;&#x521B;&#x5EFA;&#x65B0;&#x5BA2;&#x6237;&#x7684;&#x7C7B;&#x4E0D;&#x5E94;&#x8BE5;&#x88AB;&#x5F3A;&#x5236;&#x5B9E;&#x73B0;&#x66F4;&#x65B0;&#x65B9;&#x6CD5;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x5E94;&#x8BE5;&#x5C06;&#x8BE5;&#x63A5;&#x53E3;&#x5206;&#x4E3A;&#x4E24;&#x4E2A;&#x72EC;&#x7ACB;&#x7684;&#x63A5;&#x53E3;&#xFF0C;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;&#x521B;&#x5EFA;&#x5BA2;&#x6237;&#xFF0C;&#x53E6;&#x4E00;&#x4E2A;&#x7528;&#x4E8E;&#x66F4;&#x65B0;&#x5BA2;&#x6237;&#x3002;</p><h4 id="5-%E4%BE%9D%E8%B5%96%E5%8F%8D%E8%BD%AC%E5%8E%9F%E5%88%99%EF%BC%88dip%EF%BC%89">5. &#x4F9D;&#x8D56;&#x53CD;&#x8F6C;&#x539F;&#x5219;&#xFF08;DIP&#xFF09;</h4><p>&#x4F9D;&#x8D56;&#x53CD;&#x8F6C;&#x539F;&#x5219;(Dependency Inversion Principle)&#x6307;&#x51FA;&#xFF0C;&#x9AD8;&#x5C42;&#x6A21;&#x5757;&#x4E0D;&#x5E94;&#x4F9D;&#x8D56;&#x4E8E;&#x4F4E;&#x5C42;&#x6A21;&#x5757;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x4E24;&#x8005;&#x90FD;&#x5E94;&#x4F9D;&#x8D56;&#x4E8E;&#x62BD;&#x8C61;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x4E00;&#x4E2A;&#x6A21;&#x5757;&#x7684;&#x5B9E;&#x73B0;&#x7EC6;&#x8282;&#x4E0D;&#x5E94;&#x66B4;&#x9732;&#x7ED9;&#x5176;&#x4ED6;&#x6A21;&#x5757;&#x3002;</p><p>&#x4F8B;&#x5982;&#xFF0C;&#x8003;&#x8651;&#x4E00;&#x4E2A;&#x4F7F;&#x7528;&#x65E5;&#x5FD7;&#x5E93;&#x7684;&#x7A0B;&#x5E8F;&#x3002;&#x5982;&#x679C;&#x7A0B;&#x5E8F;&#x76F4;&#x63A5;&#x4F9D;&#x8D56;&#x4E8E;&#x65E5;&#x5FD7;&#x5E93;&#xFF0C;&#x90A3;&#x4E48;&#x5C31;&#x5F88;&#x96BE;&#x7528;&#x53E6;&#x4E00;&#x4E2A;&#x5E93;&#x6765;&#x66FF;&#x6362;&#x65E5;&#x5FD7;&#x5E93;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x7A0B;&#x5E8F;&#x5E94;&#x8BE5;&#x4F9D;&#x8D56;&#x4E8E;&#x4E00;&#x4E2A;&#x62BD;&#x8C61;&#xFF0C;&#x6BD4;&#x5982;&#x4E00;&#x4E2A;&#x63A5;&#x53E3;&#xFF0C;&#x8FD9;&#x4E2A;&#x63A5;&#x53E3;&#x53EF;&#x4EE5;&#x88AB;&#x4EFB;&#x4F55;&#x65E5;&#x5FD7;&#x5E93;&#x5B9E;&#x73B0;&#x3002;&#x8FD9;&#x6837;&#x5C31;&#x53EF;&#x4EE5;&#x5728;&#x4E0D;&#x5F71;&#x54CD;&#x7A0B;&#x5E8F;&#x529F;&#x80FD;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#x66F4;&#x6539;&#x65E5;&#x5FD7;&#x5E93;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://liangbo.me/content/images/2024/07/1-sa0nawomtollthtrp9hsvg.png" class="kg-image" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;" loading="lazy" width="552" height="714"><figcaption>&#x6765;&#x6E90; <a href="https://devopedia.org/solid-design-principles?ref=liangbo.me" data-href="https://devopedia.org/solid-design-principles" class="markup--anchor markup--figure-anchor" rel="nofollow noopener" target="_blank">https://devopedia.org/solid-design-principles</a></figcaption></figure><h3 id="%E4%BC%98%E7%A7%80%E7%9A%84%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E7%89%B9%E5%BE%81">&#x4F18;&#x79C0;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x7279;&#x5F81;</h3><p>&#x4F18;&#x79C0;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x7279;&#x6027;&#x5BF9;&#x4E8E;&#x521B;&#x5EFA;&#x9AD8;&#x6548;&#x3001;&#x53EF;&#x6269;&#x5C55;&#x3001;&#x53EF;&#x7EF4;&#x62A4;&#x548C;&#x53EF;&#x6269;&#x5C55;&#x7684;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;&#x4EE5;&#x4E0B;&#x662F;&#x4E00;&#x4E9B;&#x826F;&#x597D;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6700;&#x91CD;&#x8981;&#x7684;&#x7279;&#x5F81;&#xFF1A;</p><ol><li><strong>&#x6A21;&#x5757;&#x5316; Modularity</strong>&#xFF1A; &#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x5E94;&#x5212;&#x5206;&#x4E3A;&#x82E5;&#x5E72;&#x6A21;&#x5757;&#xFF0C;&#x6BCF;&#x4E2A;&#x6A21;&#x5757;&#x6267;&#x884C;&#x7279;&#x5B9A;&#x7684;&#x529F;&#x80FD;&#x3002;&#x8FD9;&#x4F7F;&#x5F97;&#x7CFB;&#x7EDF;&#x7684;&#x5F00;&#x53D1;&#x3001;&#x6D4B;&#x8BD5;&#x548C;&#x7EF4;&#x62A4;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#x3002;</li><li><strong>&#x53EF;&#x6269;&#x5C55;&#x6027; Scalability</strong>&#xFF1A; &#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x8BBE;&#x8BA1;&#x5E94;&#x80FD;&#x5E94;&#x5BF9;&#x9700;&#x6C42;&#x3001;&#x6570;&#x636E;&#x91CF;&#x548C;&#x7528;&#x6237;&#x8D1F;&#x8F7D;&#x7684;&#x53D8;&#x5316;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x7CFB;&#x7EDF;&#x5E94;&#x80FD;&#x591F;&#x6839;&#x636E;&#x9700;&#x8981;&#x6269;&#x5927;&#x6216;&#x7F29;&#x5C0F;&#x3002;</li><li><strong>&#x7075;&#x6D3B;&#x6027; Flexibility</strong>&#xFF1A; &#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x5E94;&#x5177;&#x6709;&#x7075;&#x6D3B;&#x6027;&#xFF0C;&#x80FD;&#x591F;&#x9002;&#x5E94;&#x53D8;&#x5316;&#x3002;&#x5176;&#x8BBE;&#x8BA1;&#x5E94;&#x5141;&#x8BB8;&#x4FEE;&#x6539;&#x548C;&#x6269;&#x5C55;&#xFF0C;&#x800C;&#x65E0;&#x9700;&#x5BF9;&#x73B0;&#x6709;&#x4EE3;&#x7801;&#x8FDB;&#x884C;&#x91CD;&#x5927;&#x4FEE;&#x6539;&#x3002;</li><li><strong>&#x53EF;&#x7EF4;&#x62A4;&#x6027; Maintainability</strong>&#xFF1A; &#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x5E94;&#x6613;&#x4E8E;&#x7EF4;&#x62A4;&#x548C;&#x66F4;&#x65B0;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x4EE3;&#x7801;&#x5E94;&#x7EC4;&#x7EC7;&#x826F;&#x597D;&#x3001;&#x6613;&#x4E8E;&#x7406;&#x89E3;&#x548C;&#x6613;&#x4E8E;&#x4FEE;&#x6539;&#x3002;</li><li><strong>&#x53EF;&#x6D4B;&#x8BD5;&#x6027; Testability</strong>&#xFF1A; &#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x8BBE;&#x8BA1;&#x5E94;&#x4FBF;&#x4E8E;&#x6D4B;&#x8BD5;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x4EE3;&#x7801;&#x7684;&#x7F16;&#x5199;&#x65B9;&#x5F0F;&#x5E94;&#x4FBF;&#x4E8E;&#x5BF9;&#x6BCF;&#x4E2A;&#x6A21;&#x5757;&#x8FDB;&#x884C;&#x5355;&#x72EC;&#x6D4B;&#x8BD5;&#x3002;</li><li><strong>&#x53EF;&#x91CD;&#x7528;&#x6027; Reusability</strong>&#xFF1A; &#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x8BBE;&#x8BA1;&#x5E94;&#x5141;&#x8BB8;&#x4EE3;&#x7801;&#x91CD;&#x7528;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x6A21;&#x5757;&#x5E94;&#x8BBE;&#x8BA1;&#x6210;&#x53EF;&#x5728;&#x591A;&#x79CD;&#x73AF;&#x5883;&#x548C;&#x5E94;&#x7528;&#x4E2D;&#x4F7F;&#x7528;&#x3002;</li><li><strong>&#x826F;&#x597D;&#x7684;&#x6027;&#x80FD; Performance</strong>&#xFF1A; &#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x8BBE;&#x8BA1;&#x5E94;&#x9AD8;&#x6548;&#x4E14;&#x6027;&#x80FD;&#x826F;&#x597D;&#x3002;&#x8FD9;&#x610F;&#x5473;&#x7740;&#x5B83;&#x5E94;&#x80FD;&#x591F;&#x5904;&#x7406;&#x5927;&#x91CF;&#x7684;&#x7528;&#x6237;&#x548C;&#x4E8B;&#x52A1;&#xFF0C;&#x800C;&#x4E0D;&#x4F1A;&#x51FA;&#x73B0;&#x660E;&#x663E;&#x7684;&#x901F;&#x5EA6;&#x51CF;&#x6162;&#x3002;</li></ol><p>&#x901A;&#x8FC7;&#x5C06;&#x8FD9;&#x4E9B;&#x7279;&#x6027;&#x7EB3;&#x5165;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#xFF0C;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x53EF;&#x4EE5;&#x521B;&#x5EFA;&#x9AD8;&#x6548;&#x3001;&#x53EF;&#x7EF4;&#x62A4;&#x548C;&#x53EF;&#x6269;&#x5C55;&#x7684;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x3002;</p><h3 id="%E4%B8%BB%E6%B5%81%E7%9A%84%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E6%A8%A1%E5%BC%8F">&#x4E3B;&#x6D41;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6A21;&#x5F0F;</h3><p>&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6A21;&#x5F0F;&#x4E5F;&#x79F0;&#x4E3A;&#x8F6F;&#x4EF6;&#x8BBE;&#x8BA1;&#x6A21;&#x5F0F;&#xFF0C;&#x662F;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x4E2D;&#x5E38;&#x89C1;&#x95EE;&#x9898;&#x7684;&#x53EF;&#x91CD;&#x7528;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x3002;&#x8FD9;&#x4E9B;&#x6A21;&#x5F0F;&#x4E3A;&#x89E3;&#x51B3;&#x7279;&#x5B9A;&#x7684;&#x67B6;&#x6784;&#x95EE;&#x9898;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x6846;&#x67B6;&#xFF0C;&#x53EF;&#x7528;&#x4E8E;&#x63D0;&#x9AD8;&#x8F6F;&#x4EF6;&#x8BBE;&#x8BA1;&#x7684;&#x8D28;&#x91CF;&#x3002;</p><p>&#x6709;&#x591A;&#x79CD;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6A21;&#x5F0F;&#x53EF;&#x4F9B;&#x9009;&#x62E9;&#xFF0C;&#x6BCF;&#x79CD;&#x6A21;&#x5F0F;&#x90FD;&#x4E3A;&#x7279;&#x5B9A;&#x95EE;&#x9898;&#x63D0;&#x4F9B;&#x4E86;&#x89E3;&#x51B3;&#x65B9;&#x6848;&#x3002;&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x4E9B;&#x6700;&#x5E38;&#x89C1;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6A21;&#x5F0F;&#xFF1A;</p><ol><li><strong>Model-View-Controller&#xFF08;MVC&#xFF09;</strong>&#xFF1A; &#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x5C06;&#x7528;&#x6237;&#x754C;&#x9762;&#x3001;&#x4E1A;&#x52A1;&#x903B;&#x8F91;&#x548C;&#x6570;&#x636E;&#x5B58;&#x50A8;&#x5206;&#x6210;&#x4E09;&#x4E2A;&#x4E0D;&#x540C;&#x7684;&#x7EC4;&#x4EF6;&#xFF1A; &#x6A21;&#x578B;(Model)&#x3001;&#x89C6;&#x56FE;(View)&#x548C;&#x63A7;&#x5236;&#x5668;(Controller)&#x3002;&#x8FD9;&#x79CD;&#x5206;&#x79BB;&#x63D0;&#x9AD8;&#x4E86;&#x4EE3;&#x7801;&#x7684;&#x53EF;&#x7EF4;&#x62A4;&#x6027;&#x3001;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x548C;&#x53EF;&#x91CD;&#x7528;&#x6027;&#x3002;</li><li><strong>&#x5206;&#x5C42;&#x67B6;&#x6784; Layered Architecture</strong>&#xFF1A; &#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x5C06;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x5212;&#x5206;&#x4E3A;&#x591A;&#x4E2A;&#x903B;&#x8F91;&#x5C42;&#xFF0C;&#x6BCF;&#x5C42;&#x6267;&#x884C;&#x4E00;&#x7EC4;&#x7279;&#x5B9A;&#x7684;&#x529F;&#x80FD;&#x3002;&#x8FD9;&#x79CD;&#x5173;&#x6CE8;&#x70B9;&#x7684;&#x5206;&#x79BB;&#x4F7F;&#x7CFB;&#x7EDF;&#x7684;&#x5F00;&#x53D1;&#x3001;&#x6D4B;&#x8BD5;&#x548C;&#x7EF4;&#x62A4;&#x66F4;&#x52A0;&#x5BB9;&#x6613;&#x3002;</li><li><strong>&#x5FAE;&#x670D;&#x52A1; Microservice</strong>&#xFF1A; &#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x662F;&#x5C06;&#x5927;&#x578B;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x5206;&#x89E3;&#x6210;&#x8F83;&#x5C0F;&#x7684;&#x3001;&#x72EC;&#x7ACB;&#x7684;&#x670D;&#x52A1;&#xFF0C;&#x8FD9;&#x4E9B;&#x670D;&#x52A1;&#x901A;&#x8FC7;API&#x76F8;&#x4E92;&#x901A;&#x4FE1;&#x3002;&#x8FD9;&#x79CD;&#x5206;&#x79BB;&#x63D0;&#x9AD8;&#x4E86;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x3001;&#x7075;&#x6D3B;&#x6027;&#x548C;&#x5BB9;&#x9519;&#x6027;&#x3002;</li><li><strong>&#x4E8B;&#x4EF6;&#x9A71;&#x52A8;&#x67B6;&#x6784; Event-Driven Architecture&#xFF08;EDA&#xFF09;</strong>&#xFF1A; &#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x5305;&#x62EC;&#x521B;&#x5EFA;&#x80FD;&#x591F;&#x54CD;&#x5E94;&#x4E8B;&#x4EF6;&#x7684;&#x7CFB;&#x7EDF;&#xFF0C;&#x5982;&#x7528;&#x6237;&#x64CD;&#x4F5C;&#x3001;&#x7CFB;&#x7EDF;&#x4E8B;&#x4EF6;&#x6216;&#x5916;&#x90E8;&#x4E8B;&#x4EF6;&#x3002;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x63D0;&#x9AD8;&#x4E86;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x3001;&#x7075;&#x6D3B;&#x6027;&#x548C;&#x54CD;&#x5E94;&#x80FD;&#x529B;&#x3002;</li><li><strong>&#x9886;&#x57DF;&#x9A71;&#x52A8;&#x8BBE;&#x8BA1; Domain-Driven Design&#xFF08;DDD&#xFF09;</strong>&#xFF1A; &#x8BE5;&#x6A21;&#x5F0F;&#x5305;&#x62EC;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x53CD;&#x6620;&#x6240;&#x89E3;&#x51B3;&#x95EE;&#x9898;&#x9886;&#x57DF;&#x7684;&#x8F6F;&#x4EF6;&#x8BBE;&#x8BA1;&#x3002;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x63D0;&#x9AD8;&#x4E86;&#x4EE3;&#x7801;&#x7684;&#x53EF;&#x7EF4;&#x62A4;&#x6027;&#x3001;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x548C;&#x53EF;&#x91CD;&#x7528;&#x6027;&#x3002;</li><li><strong>&#x5B58;&#x50A8;&#x5E93;&#x6A21;&#x5F0F; Repository Pattern</strong>&#xFF1A; &#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x5C06;&#x6570;&#x636E;&#x8BBF;&#x95EE;&#x903B;&#x8F91;&#x4E0E;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4EE3;&#x7801;&#x7684;&#x5176;&#x4F59;&#x90E8;&#x5206;&#x5206;&#x79BB;&#x5F00;&#x6765;&#x3002;&#x8FD9;&#x79CD;&#x6A21;&#x5F0F;&#x63D0;&#x9AD8;&#x4E86;&#x4EE3;&#x7801;&#x7684;&#x53EF;&#x6D4B;&#x8BD5;&#x6027;&#x3001;&#x53EF;&#x7EF4;&#x62A4;&#x6027;&#x548C;&#x53EF;&#x6269;&#x5C55;&#x6027;&#x3002;</li></ol><p>&#x901A;&#x8FC7;&#x4F7F;&#x7528;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6A21;&#x5F0F;&#xFF0C;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x53EF;&#x4EE5;&#x521B;&#x5EFA;&#x66F4;&#x9AD8;&#x6548;&#x3001;&#x53EF;&#x6269;&#x5C55;&#x548C;&#x53EF;&#x7EF4;&#x62A4;&#x7684;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x3002;&#x8FD9;&#x4E9B;&#x6A21;&#x5F0F;&#x63D0;&#x4F9B;&#x4E86;&#x89E3;&#x51B3;&#x7279;&#x5B9A;&#x67B6;&#x6784;&#x95EE;&#x9898;&#x7684;&#x6846;&#x67B6;&#xFF0C;&#x53EF;&#x7528;&#x4E8E;&#x63D0;&#x9AD8;&#x8F6F;&#x4EF6;&#x8BBE;&#x8BA1;&#x7684;&#x8D28;&#x91CF;&#x3002;&#x5982;&#x679C;&#x60A8;&#x60F3;&#x5FEB;&#x901F;&#x4E86;&#x89E3;&#x4E3B;&#x8981;&#x884C;&#x4E1A;&#x4E2D;&#x4F7F;&#x7528;&#x7684;&#x6240;&#x6709;&#x4E3B;&#x8981;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x6A21;&#x5F0F;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x89C6;&#x9891;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x60A8;&#x3002;</p><figure class="kg-card kg-embed-card"><iframe src="https://www.youtube.com/embed/ZTVAs9cNo30?feature=oembed" width="700" height="393" frameborder="0" scrolling="no"></iframe></figure><h3 id="%E7%BB%93%E8%AE%BA">&#x7ED3;&#x8BBA;</h3><p>&#x603B;&#x4E4B;&#xFF0C;&#x6211;&#x4EEC;&#x5E94;&#x8BE5;&#x627F;&#x8BA4;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x662F;&#x786E;&#x4FDD;&#x8F6F;&#x4EF6;&#x4EA7;&#x54C1;&#x8D28;&#x91CF;&#x548C;&#x53EF;&#x7EF4;&#x62A4;&#x6027;&#x7684;&#x5173;&#x952E;&#x8FC7;&#x7A0B;&#x3002;&#x5B83;&#x901A;&#x8FC7;&#x63D0;&#x4F9B;&#x8BBE;&#x8BA1;&#x3001;&#x5F00;&#x53D1;&#x3001;&#x6D4B;&#x8BD5;&#x548C;&#x7EF4;&#x62A4;&#x8F6F;&#x4EF6;&#x7CFB;&#x7EDF;&#x7684;&#x6846;&#x67B6;&#xFF0C;&#x5728;&#x89E3;&#x51B3;&#x957F;&#x671F;&#x548C;&#x77ED;&#x671F;&#x7684;&#x590D;&#x6742;&#x6027;&#x65B9;&#x9762;&#x53D1;&#x6325;&#x7740;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x7684;&#x4F5C;&#x7528;&#x3002;</p><p>Amazon&#x7684;&#x4F8B;&#x5B50;&#x8BC1;&#x660E;&#x4E86;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x5728;&#x5546;&#x4E1A;&#x4E2D;&#x7684;&#x91CD;&#x8981;&#x6027;&#xFF0C;&#x5B83;&#x4E3A;&#x7535;&#x5B50;&#x5546;&#x52A1;&#x4EA4;&#x6613;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x53EF;&#x6269;&#x5C55;&#x7684;&#x3001;&#x7075;&#x6D3B;&#x7684;&#x548C;&#x6709;&#x5F39;&#x6027;&#x7684;&#x5E73;&#x53F0;&#x3002;&#x8BBE;&#x8BA1;&#x826F;&#x597D;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x5BF9;&#x4E8E;&#x5E0C;&#x671B;&#x5F00;&#x53D1;&#x548C;&#x7EF4;&#x62A4;&#x9AD8;&#x8D28;&#x91CF;&#x8F6F;&#x4EF6;&#x4EA7;&#x54C1;&#x4EE5;&#x6EE1;&#x8DB3;&#x5F53;&#x4ECA;&#x5BA2;&#x6237;&#x9700;&#x6C42;&#x7684;&#x4F01;&#x4E1A;&#x6765;&#x8BF4;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;</p><p>&#x6700;&#x540E;&#xFF0C;&#x4F5C;&#x4E3A;&#x4E00;&#x540D;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#xFF0C;&#x4E86;&#x89E3;&#x6700;&#x65B0;&#x7684;&#x6280;&#x672F;&#x8FDB;&#x6B65;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;&#x4EE5;&#x4E0B;&#x662F;2023&#x5E74;&#x53CA;&#x4EE5;&#x540E;&#x503C;&#x5F97;&#x5173;&#x6CE8;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x53D1;&#x5C55;&#x8D8B;&#x52BF;</p><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e5-a6-82-e4-bd-95-e6-88-90-e4-b8-ba-e4-b8-80-e5-90-8ddevops-e5-b7-a5-e7-a8-8b-e5-b8-88-2023/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x5982;&#x4F55;&#x6210;&#x4E3A;&#x4E00;&#x540D;DevOps&#x5DE5;&#x7A0B;&#x5E08; 2023</div><div class="kg-bookmark-description">&#x5728;&#x672C;&#x6307;&#x5357;&#x4E2D;&#xFF0C;&#x6211;&#x5206;&#x4EAB;&#x4E86;&#x6211;&#x4F5C;&#x4E3A;DevOps&#x5DE5;&#x7A0B;&#x5E08;&#x5728;&#x4E0D;&#x540C;&#x7EC4;&#x7EC7;&#x4E2D;&#x7684;&#x7ECF;&#x9A8C;&#x4EE5;&#x53CA;&#x6210;&#x4E3A;DevOps&#x5DE5;&#x7A0B;&#x5E08;&#x7684;&#x6280;&#x5DE7;&#x3002;&#x8FD9;&#x662F;&#x4E00;&#x4EFD;&#x5F00;&#x59CB;DevOps&#x5DE5;&#x7A0B;&#x804C;&#x4E1A;&#x7684;&#x5168;&#x9762;&#x8DEF;&#x7EBF;&#x56FE;&#x3002;&#x7531;&#x4E8E;DevOps&#x9886;&#x57DF;&#x5177;&#x6709;&#x9AD8;&#x85AA;&#x548C;&#x804C;&#x4E1A;&#x53D1;&#x5C55;&#x7684;&#x6F5C;&#x529B;&#xFF0C;&#x76EE;&#x524D;&#x5728;IT&#x884C;&#x4E1A;&#x662F;&#x4E00;&#x4E2A;&#x975E;&#x5E38;&#x53D7;&#x6B22;&#x8FCE;&#x7684;&#x9009;&#x62E9;&#x3002;&#x6211;&#x7ECF;&#x5E38;&#x88AB;&#x95EE;&#x53CA;&#x5982;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/1-j6v-z52gsi9qdwojjmgs7q-jpeg-1.png" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;"></div></a></figure><!--kg-card-end: html--><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/2023-e5-b9-b4github-e4-b8-8a-e6-9c-80-e5-80-bc-e5-be-97-e5-85-b3-e6-b3-a8-e7-9a-8410-e4-b8-aa-e5-bc-80-e6-ba-90-e9-a1-b9-e7-9b-ae/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2023&#x5E74;GitHub&#x4E0A;&#x6700;&#x503C;&#x5F97;&#x5173;&#x6CE8;&#x7684;10&#x4E2A;&#x5F00;&#x6E90;&#x9879;&#x76EE;</div><div class="kg-bookmark-description">&#x5F00;&#x6E90;&#x8F6F;&#x4EF6;&#xFF08;OSS&#xFF09;&#x5DF2;&#x7ECF;&#x5F7B;&#x5E95;&#x6539;&#x53D8;&#x4E86;&#x5F53;&#x4ECA;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x7684;&#x65B9;&#x5F0F;&#x3002;&#x7531;&#x4E8E;&#x6709;&#x6570;&#x4EE5;&#x767E;&#x4E07;&#x8BA1;&#x7684;&#x5F00;&#x6E90;GitHub&#x9879;&#x76EE;&#xFF0C;&#x8981;&#x6D4F;&#x89C8;&#x5E76;&#x627E;&#x5230;&#x7B26;&#x5408;&#x4F60;&#x9700;&#x6C42;&#x7684;&#x6700;&#x4F73;&#x5F00;&#x6E90;&#x9879;&#x76EE;&#x53EF;&#x80FD;&#x4F1A;&#x8BA9;&#x4EBA;&#x4E0D;&#x77E5;&#x6240;&#x63AA;&#x3002;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-55shfw5oafklm4ng.png" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;"></div></a></figure><!--kg-card-end: html--><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e7-b3-bb-e7-bb-9f-e8-ae-be-e8-ae-a1-e6-8c-87-e5-8d-97/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x6307;&#x5357;</div><div class="kg-bookmark-description">&#x5F00;&#x53D1;&#x4E00;&#x4E2A;&#x5F3A;&#x5927;&#x7684;&#x3001;&#x53EF;&#x6269;&#x5C55;&#x7684;&#x3001;&#x9AD8;&#x6548;&#x7684;&#x7CFB;&#x7EDF;&#x53EF;&#x80FD;&#x662F;&#x4EE4;&#x4EBA;&#x751F;&#x754F;&#x7684;&#x3002;&#x7136;&#x800C;&#xFF0C;&#x4E86;&#x89E3;&#x5173;&#x952E;&#x7684;&#x6982;&#x5FF5;&#x548C;&#x7EC4;&#x4EF6;&#x53EF;&#x4EE5;&#x4F7F;&#x8FD9;&#x4E2A;&#x8FC7;&#x7A0B;&#x66F4;&#x5BB9;&#x6613;&#x7BA1;&#x7406;&#x3002;&#x5728;&#x8FD9;&#x7BC7;&#x535A;&#x6587;&#x4E2D;&#xFF0C;&#x6211;&#x4EEC;&#x5C06;&#x63A2;&#x8BA8;&#x57FA;&#x672C;&#x7684;&#x7CFB;&#x7EDF;&#x8BBE;&#x8BA1;&#x7EC4;&#x4EF6;&#xFF0C;&#x5982;DNS&#x3001;&#x8D1F;&#x8F7D;&#x5E73;&#x8861;&#x3001;API&#x7F51;&#x5173;&#x7B49;&#xFF0C;&#x4EE5;&#x53CA;&#x4E00;&#x4EFD;&#x7B80;&#x6D01;&#x7684;&#x5C0F;&#x6284;&#xFF0C;&#x53EF;&#x4EE5;&#x5E2E;&#x52A9;&#x5F00;&#x53D1;&#x8005;&#x8BBE;&#x8BA1;&#x4E0D;&#x540C;&#x590D;&#x6742;&#x5EA6;&#x7684;&#x7CFB;&#x7EDF;&#x3002;&#x2026;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-t2_kc7jmuhein16g.png" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;"></div></a></figure><!--kg-card-end: html--><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/2023-e5-b9-b4devops-e5-9b-a2-e9-98-9f-e5-80-bc-e5-be-97-e5-85-b3-e6-b3-a8-e7-9a-8410-e5-a4-a7-e5-bc-80-e6-ba-90-e7-9b-91-e6-8e-a7-e5-b7-a5-e5-85-b7/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2023&#x5E74;DevOps&#x56E2;&#x961F;&#x503C;&#x5F97;&#x5173;&#x6CE8;&#x7684;10&#x5927;&#x5F00;&#x6E90;&#x76D1;&#x63A7;&#x5DE5;&#x5177;</div><div class="kg-bookmark-description">&#x5728;2023&#x5E74;&#xFF0C;&#x76D1;&#x63A7;&#x5E73;&#x53F0;&#x5BF9;&#x4E8E;&#x73B0;&#x4EE3;DevOps&#x56E2;&#x961F;&#x7684;&#x5DE5;&#x4F5C;&#x81F3;&#x5173;&#x91CD;&#x8981;&#x3002;DevOps&#x56E2;&#x961F;&#x9700;&#x8981;&#x53EF;&#x9760;&#x4E14;&#x7075;&#x6D3B;&#x7684;&#x5DE5;&#x5177;&#xFF0C;&#x4EE5;&#x6709;&#x6548;&#x5730;&#x76D1;&#x63A7;&#x548C;&#x7BA1;&#x7406;&#x590D;&#x6742;&#x7684;&#x7CFB;&#x7EDF;&#xFF0C;&#x5E76;&#x63D0;&#x4F9B;&#x5B9E;&#x65F6;&#x7684;&#x7CFB;&#x7EDF;&#x6027;&#x80FD;&#x3001;&#x53EF;&#x7528;&#x6027;&#x548C;&#x5B89;&#x5168;&#x6027;&#x6D1E;&#x5BDF;&#x3002;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/0-3a29disbsjkaqpo4.png" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;"></div></a></figure><!--kg-card-end: html--><!--kg-card-begin: html--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://liangbo.me/e5-a4-9a-e4-ba-91-e7-bd-91-e7-bb-9c2023-e5-8f-91-e5-b1-95-e8-b6-8b-e5-8a-bf-e5-9c-a8-e6-95-b0-e5-ad-97-e5-8c-96-e6-97-b6-e4-bb-a3-e7-9a-84-e5-89-8d-e6-b2-bf-e6-8e-a2-e7-b4-a2/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x591A;&#x4E91;&#x7F51;&#x7EDC;2023&#x53D1;&#x5C55;&#x8D8B;&#x52BF;&#xFF1A;&#x5728;&#x6570;&#x5B57;&#x5316;&#x65F6;&#x4EE3;&#x7684;&#x524D;&#x6CBF;&#x63A2;&#x7D22;</div><div class="kg-bookmark-description">&#x5728;&#x5F53;&#x4ECA;&#x6570;&#x5B57;&#x5316;&#x65F6;&#x4EE3;&#xFF0C;&#x4E91;&#x8BA1;&#x7B97;&#x5DF2;&#x6210;&#x4E3A;&#x4F01;&#x4E1A;&#x548C;&#x4E2A;&#x4EBA;&#x7684;&#x91CD;&#x8981;&#x57FA;&#x7840;&#x8BBE;&#x65BD;&#x3002;&#x968F;&#x7740;&#x6280;&#x672F;&#x7684;&#x4E0D;&#x65AD;&#x8FDB;&#x6B65;&#x548C;&#x5E02;&#x573A;&#x7684;&#x7ADE;&#x4E89;&#x52A0;&#x5267;&#xFF0C;&#x591A;&#x4E91;&#x7F51;&#x7EDC;&#x5DF2;&#x6210;&#x4E3A;&#x672A;&#x6765;&#x53D1;&#x5C55;&#x7684;&#x91CD;&#x8981;&#x8D8B;&#x52BF;&#x4E4B;&#x4E00;&#x3002;&#x672C;&#x6587;&#x5C06;&#x63A2;&#x8BA8;&#x591A;&#x4E91;&#x7F51;&#x7EDC;&#x5728;2023&#x5E74;&#x7684;&#x53D1;&#x5C55;&#x524D;&#x666F;&#x4EE5;&#x53CA;&#x5BF9;&#x4F01;&#x4E1A;&#x548C;&#x4E2A;&#x4EBA;&#x5E26;&#x6765;&#x7684;&#x5F71;&#x54CD;&#x3002;</div><div class="kg-bookmark-metadata"></div></div><div class="kg-bookmark-thumbnail"><img src="https://liangbo.me/content/images/2024/07/1-dmhohpnn0bwqkir9vffrna-jpeg.jpg" alt="&#x9762;&#x5411;&#x5F00;&#x53D1;&#x4EBA;&#x5458;&#x7684;&#x8F6F;&#x4EF6;&#x67B6;&#x6784;&#x8BBE;&#x8BA1;&#x6307;&#x5357;"></div></a></figure><!--kg-card-end: html-->]]></content:encoded></item></channel></rss>