完成 Prompt Engineering 最终修订

This commit is contained in:
nowadays0421
2023-07-14 18:32:52 +08:00
parent 99827088e2
commit 3a2c27fa2d
16 changed files with 214 additions and 1026 deletions

View File

@ -1,35 +0,0 @@
# 第一章 简介
本课程由哈里森·蔡斯 (Harrison ChaseLangChain作者与Deeplearning.ai合作开发课程将介绍如何使用LangChain和自有数据进行对话。
## 一、背景
大语言模型(Large Language Model, LLM), 比如ChatGPT, 可以回答许多不同的问题。但是大语言模型的知识来源于其训练数据集,并没有用户的信息(比如用户的个人数据,公司的自有数据),也没有最新发生时事的信息(在大模型数据训练后发表的文章或者新闻)。因此大模型能给出的答案比较受限。
如果能够让大模型在训练数据集的基础上,利用我们自有数据中的信息来回答我们的问题,那便能够得到更有用的答案。
## 二、 课程基本内容
在本课程中我们学习如何使用LangChain和自有数据进行对话。
LangChain是用于构建大模型应用程序的开源框架有Python和JavaScript两个不同版本的包。LangChain基于模块化组合有许多单独的组件可以一起使用或单独使用。LangChain的组件包括
- 提示(Prompts): 使模型执行操作的方式。
- 模型(Models):大语言模型、对话模型,文本表示模型。目前包含多个模型的集成。
- 索引(Indexes): 获取数据的方式,可以与模型结合使用。
- 链式(Chains): 端到端功能实现。
- 代理(Agents): 使用模型作为推理引擎
此外LangChain还拥有很多应用案例帮助我们了解如何将这些模块化组件以链式方式组合以形成更多端到端的应用程序。如果你想要了解关于LangChain的基础知识可以学习使用 LangChain 开发基于 LLM 的应用程序课程LangChain for LLM Application Development
在本课程中我们将重点介绍LangChain常见的使用场景使用LangChain和自有数据进行对话。我们首先会介绍如何使用LangChain文档加载器 (Document Loader)从不同数据源加载文档。然后我们学习如何将这些文档切割为具有语意的段落。这步看起来简单不同的处理可能会影响颇大。接下来我们简要介绍语义搜索Semantic search以及信息检索的基础方法 - 对于的用户输入的问题,获取最相关的信息。该方法很简单,但是在某些情况下可能无法使用。我们将分析这些情况并给出解决方案。最后,我们介绍如何使用检索得到的文档,来让大语言模型(LLM)来回答关于文档的问题。
## 三、致谢课程重要贡献者
最后特别感谢对本课程内容贡献者
- Ankush GolaLandChain
- Lance MartinLandChain
- Geoff Ladwig(DeepLearning.AI)
- Diala Ezzedine(DeepLearning.AI)

File diff suppressed because one or more lines are too long

View File

@ -1,119 +0,0 @@
# Blendle's Employee Handbook
This is a living document with everything we've learned working with people while running a startup. And, of course, we continue to learn. Therefore it's a document that will continue to change.
**Everything related to working at Blendle and the people of Blendle, made public.**
These are the lessons from three years of working with the people of Blendle. It contains everything from [how our leaders lead](https://www.notion.so/ecfb7e647136468a9a0a32f1771a8f52?pvs=21) to [how we increase salaries](https://www.notion.so/Salary-Review-e11b6161c6d34f5c9568bb3e83ed96b6?pvs=21), from [how we hire](https://www.notion.so/Hiring-451bbcfe8d9b49438c0633326bb7af0a?pvs=21) and [fire](https://www.notion.so/Firing-5567687a2000496b8412e53cd58eed9d?pvs=21) to [how we think people should give each other feedback](https://www.notion.so/Our-Feedback-Process-eb64f1de796b4350aeab3bc068e3801f?pvs=21) — and much more.
We've made this document public because we want to learn from you. We're very much interested in your feedback (including weeding out typo's and Dunglish ;)). Email us at hr@blendle.com. If you're starting your own company or if you're curious as to how we do things at Blendle, we hope that our employee handbook inspires you.
If you want to work at Blendle you can check our [job ads here](https://blendle.homerun.co/). If you want to be kept in the loop about Blendle, you can sign up for [our behind the scenes newsletter](https://blendle.homerun.co/yes-keep-me-posted/tr/apply?token=8092d4128c306003d97dd3821bad06f2).
## Blendle general
*Information gap closing in 3... 2... 1...*
---
[To Do/Read in your first week](https://www.notion.so/To-Do-Read-in-your-first-week-9ef69b65b63a4ec7b8394ec703856c32?pvs=21)
[History](https://www.notion.so/History-29b2b8fd36dd48db80dc682119aaefef?pvs=21)
[DNA & culture](https://www.notion.so/DNA-culture-7723839e26124ed2ba3adafe8de0a080?pvs=21)
[General & practical ](https://www.notion.so/General-practical-87085be150824011b79891eb30ca9530?pvs=21)
## People operations
*You can tell a company's DNA by looking at how they deal with the practical stuff.*
---
[Office](https://www.notion.so/Office-b014d3d2c62240308865d11bba495322?pvs=21)
[Time off: holidays and national holidays](https://www.notion.so/Time-off-holidays-and-national-holidays-bd94b931280a45a6b8eb3f29c2c4b42a?pvs=21)
[Calling in sick/better](https://www.notion.so/Calling-in-sick-better-b82ec184fd544a8e9aa926ac37bb1ab1?pvs=21)
[Perks and benefits](https://www.notion.so/Perks-and-benefits-820593b38ebc44209fe35ae553100de6?pvs=21)
[Travel costs and reimbursements](https://www.notion.so/Travel-costs-and-reimbursements-e76623c6e0664863a769aeed028954e2?pvs=21)
[Parenthood](https://www.notion.so/Parenthood-a6d62b65a9d84489a75586a3c542b3f1?pvs=21)
## People topics
*Themes we care about.*
---
[Blendle Social Code](https://www.notion.so/Blendle-Social-Code-685a79c8df154ee09f35b35cc147af6b?pvs=21)
[Diversity and inclusion](https://www.notion.so/Diversity-and-inclusion-d7f9d3e6b6ef4a1ab8f2c0a7b3ea3eec?pvs=21)
[#letstalkaboutstress](https://www.notion.so/letstalkaboutstress-d46961f6ac98432ab07b5d5afc52c2d0?pvs=21)
## Feedback and development
*The number 1 reason for people to work at Blendle is growth and learning from smart people.*
---
[Your 1st month ](https://www.notion.so/Your-1st-month-85909edc55a34f349bbed522c5245a65?pvs=21)
[Goals](https://www.notion.so/Goals-122bff69bd634c519cd3c6dc01dbc282?pvs=21)
[Feedback cycle](https://www.notion.so/Feedback-cycle-5f32358dba874c39be5ca5aa464c310e?pvs=21)
[The Matrix™ (job profiles)](https://www.notion.so/The-Matrix-job-profiles-da91736ff35545458559eceb0075ed66?pvs=21)
[Blendle library](https://www.notion.so/Blendle-library-f34188e536234c9a8976c9d4602b0be3?pvs=21)
## **Hiring**
*The coolest and most impactful thing when done right.*
---
[Rating systems](https://www.notion.so/Rating-systems-2ba332377459427194acc798e5f8869c?pvs=21)
[Getting people in (branding&sourcing)](https://www.notion.so/Getting-people-in-branding-sourcing-a3277fef078041a881f56556e24f0d8a?pvs=21)
[Highly Skilled Migrants and relocation](https://www.notion.so/Highly-Skilled-Migrants-and-relocation-84a6576fb27d4a8fae2f73e4eae57d21?pvs=21)
## How to lead at Blendle
*Here are some tips and tools to help you become a great leader.*
---
[How to lead at Blendle ](https://www.notion.so/How-to-lead-at-Blendle-f8c6b1d989d841bb87510fc2ab1ba970?pvs=21)
[Your check-list](https://www.notion.so/Your-check-list-aaca857a846848688da3a37f28682c15?pvs=21)
[Leading Feedback ](https://www.notion.so/Leading-Feedback-a1970c9f7b70443d881ca92d4e98be25?pvs=21)
[Salary talks](https://www.notion.so/Salary-talks-35681ab732c048a9bbdf8c50babe64b5?pvs=21)
[Hiring ](https://www.notion.so/Hiring-0bdf54d3d25f4c59bfdf3712a5104bbc?pvs=21)
[Firing](https://www.notion.so/Firing-e0da1de62b304751bbd95a681908c7ad?pvs=21)
[Party and study budget](https://www.notion.so/Party-and-study-budget-4e31001531c24d0fa447bbfcd6ccfd3f?pvs=21)
[Holidays](https://www.notion.so/Holidays-1529506bb8884f0aa11cc799ced11ed0?pvs=21)
[Sickness absence](https://www.notion.so/Sickness-absence-79a495f601df4004801475ea79b3d198?pvs=21)
[Personal User Guide](https://www.notion.so/Personal-User-Guide-be2238ccb597412e8a517d40cda7e7d5?pvs=21)
[Soft shizzle](https://www.notion.so/Soft-shizzle-41255d79fbe84492b153121cd7a2e3e8?pvs=21)
## About this document
---
*Lessons from three years of HR*
[About this document and the author](https://www.notion.so/About-this-document-and-the-author-ee1faab1bcae4456b8c62043a8a194cd?pvs=21)

View File

@ -65,21 +65,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"id": "acf125be",
"metadata": {},
"outputs": [],
"source": [
"import openai\n",
"# 导入第三方库\n",
"import os\n",
"\n",
"openai.api_key = \"sk-...\"\n",
"# 设置 API_KEY, 请替换成您自己的 API_KEY\n"
"openai.api_key = \"sk-...\"\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 6,
"id": "ac57ad72",
"metadata": {},
"outputs": [],
@ -114,10 +114,18 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"id": "5b521646",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hola, me gustaría ordenar una licuadora.\n"
]
}
],
"source": [
"prompt = f\"\"\"\n",
"Translate the following English text to Spanish: \\ \n",
@ -129,7 +137,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 8,
"id": "8a5bee0c",
"metadata": {
"scrolled": true
@ -169,10 +177,18 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 9,
"id": "769b6e2e",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"This language is French.\n"
]
}
],
"source": [
"prompt = f\"\"\"\n",
"Tell me which language this is: \n",
@ -184,7 +200,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 10,
"id": "c2c66002",
"metadata": {},
"outputs": [
@ -192,7 +208,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"这是法语。\n"
"这段文本是法语。\n"
]
}
],
@ -222,10 +238,20 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 11,
"id": "a53bc53b",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"French: ```Je veux commander un ballon de basket```\n",
"Spanish: ```Quiero ordenar una pelota de baloncesto```\n",
"English: ```I want to order a basketball```\n"
]
}
],
"source": [
"prompt = f\"\"\"\n",
"Translate the following text to French and Spanish\n",
@ -238,7 +264,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 12,
"id": "b0c4fa41",
"metadata": {},
"outputs": [
@ -279,10 +305,19 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 13,
"id": "a4770dcc",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Formal: ¿Le gustaría ordenar una almohada?\n",
"Informal: ¿Te gustaría ordenar una almohada?\n"
]
}
],
"source": [
"prompt = f\"\"\"\n",
"Translate the following text to Spanish in both the \\\n",
@ -295,7 +330,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 14,
"id": "2c52ca54",
"metadata": {},
"outputs": [
@ -303,8 +338,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"正式语气:请问您需要订购枕头\n",
"非正式语气:你要不要订一个枕头?\n"
"正式语气:您是否需要订购一个枕头?\n",
"非正式语气:你要订一个枕头\n"
]
}
],
@ -343,7 +378,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 15,
"id": "21f3af91",
"metadata": {},
"outputs": [],
@ -359,10 +394,39 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 16,
"id": "5cb69e31",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Original message (The language is French.): La performance du système est plus lente que d'habitude.\n",
"The performance of the system is slower than usual.\n",
"\n",
"시스템의 성능이 평소보다 느립니다. \n",
"\n",
"Original message (The language is Spanish.): Mi monitor tiene píxeles que no se iluminan.\n",
"English: \"My monitor has pixels that do not light up.\"\n",
"\n",
"Korean: \"내 모니터에는 밝아지지 않는 픽셀이 있습니다.\" \n",
"\n",
"Original message (The language is Italian.): Il mio mouse non funziona\n",
"English: \"My mouse is not working.\"\n",
"Korean: \"내 마우스가 작동하지 않습니다.\" \n",
"\n",
"Original message (The language is Polish.): Mój klawisz Ctrl jest zepsuty\n",
"English: \"My Ctrl key is broken\"\n",
"Korean: \"내 Ctrl 키가 고장 났어요\" \n",
"\n",
"Original message (The language is Chinese.): 我的屏幕在闪烁\n",
"English: My screen is flickering.\n",
"Korean: 내 화면이 깜박거립니다. \n",
"\n"
]
}
],
"source": [
"for issue in user_messages:\n",
" prompt = f\"Tell me what language this is: ```{issue}```\"\n",
@ -379,7 +443,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 18,
"id": "6a884190",
"metadata": {},
"outputs": [
@ -395,27 +459,28 @@
"原始消息 (西班牙语): Mi monitor tiene píxeles que no se iluminan.\n",
"\n",
"中文翻译:我的显示器有一些像素点不亮。\n",
"英文翻译My monitor has pixels that don't light up. \n",
"英文翻译My monitor has pixels that do not light up. \n",
"=========================================\n",
"原始消息 (意大利语): Il mio mouse non funziona\n",
"\n",
"中文翻译:我的鼠标不工作了。\n",
"英文翻译My mouse is not working. \n",
"中文翻译:我的鼠标不工作\n",
"英文翻译My mouse is not working \n",
"=========================================\n",
"原始消息 (波兰语): Mój klawisz Ctrl jest zepsuty\n",
"原始消息 (这段文本是波兰语): Mój klawisz Ctrl jest zepsuty\n",
"\n",
"中文翻译我的Ctrl键坏了\n",
"英文翻译My Ctrl key is broken. \n",
"英文翻译My Ctrl key is broken \n",
"=========================================\n",
"原始消息 (中文): 我的屏幕在闪烁\n",
"\n",
"中文翻译:我的屏幕在闪烁\n",
"中文翻译:我的屏幕在闪烁\n",
"英文翻译My screen is flickering. \n",
"=========================================\n"
]
}
],
"source": [
"import time\n",
"for issue in user_messages:\n",
" time.sleep(20)\n",
" prompt = f\"告诉我以下文本是什么语种,直接输出语种,如法语,无需输出标点符号: ```{issue}```\"\n",
@ -459,10 +524,27 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 19,
"id": "d62ac977",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dear Sir/Madam,\n",
"\n",
"I hope this letter finds you well. My name is Joe, and I am writing to bring your attention to a specification document regarding a standing lamp. \n",
"\n",
"I kindly request that you take a moment to review the attached spec, as it contains important details about the standing lamp in question. \n",
"\n",
"Thank you for your time and consideration. I look forward to hearing from you soon.\n",
"\n",
"Sincerely,\n",
"Joe\n"
]
}
],
"source": [
"prompt = f\"\"\"\n",
"Translate the following from slang to a business letter: \n",
@ -474,7 +556,7 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 20,
"id": "84ce3099",
"metadata": {},
"outputs": [
@ -482,17 +564,17 @@
"name": "stdout",
"output_type": "stream",
"text": [
"尊敬的XXX收件人姓名\n",
"尊敬的先生/女士,\n",
"\n",
"您好我是XXX发件人姓名在此向您咨询一个问题。上次我们交流时您提到我们部门需要采购显示器,但我忘记了您所需的尺寸是多少寸。希望您能够回复我,以便我们能够及时采购所需的设备。\n",
"我是小羊,我希望能够向您确认一下我们部门需要采购显示器尺寸是多少寸。上次我们交谈时,您提到了这个问题。\n",
"\n",
"谢谢您的帮助!\n",
"期待您的回复。\n",
"\n",
"此致\n",
"谢谢!\n",
"\n",
"敬礼\n",
"此致,\n",
"\n",
"XXX发件人姓名\n"
"小羊\n"
]
}
],
@ -531,7 +613,7 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 21,
"id": "fad3f358",
"metadata": {},
"outputs": [],
@ -545,10 +627,63 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 22,
"id": "7e904f70",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<!DOCTYPE html>\n",
"<html>\n",
"<head>\n",
"<style>\n",
"table {\n",
" font-family: arial, sans-serif;\n",
" border-collapse: collapse;\n",
" width: 100%;\n",
"}\n",
"\n",
"td, th {\n",
" border: 1px solid #dddddd;\n",
" text-align: left;\n",
" padding: 8px;\n",
"}\n",
"\n",
"tr:nth-child(even) {\n",
" background-color: #dddddd;\n",
"}\n",
"</style>\n",
"</head>\n",
"<body>\n",
"\n",
"<h2>Restaurant Employees</h2>\n",
"\n",
"<table>\n",
" <tr>\n",
" <th>Name</th>\n",
" <th>Email</th>\n",
" </tr>\n",
" <tr>\n",
" <td>Shyam</td>\n",
" <td>shyamjaiswal@gmail.com</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Bob</td>\n",
" <td>bob32@gmail.com</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Jai</td>\n",
" <td>jai87@gmail.com</td>\n",
" </tr>\n",
"</table>\n",
"\n",
"</body>\n",
"</html>\n"
]
}
],
"source": [
"prompt = f\"\"\"\n",
"Translate the following python dictionary from JSON to an HTML \\\n",
@ -678,7 +813,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 23,
"id": "b7d04bc0",
"metadata": {},
"outputs": [],
@ -696,10 +831,24 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 24,
"id": "d48f8d3f",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The girl with the black and white puppies has a ball.\n",
"No errors found.\n",
"It's going to be a long day. Does the car need its oil changed?\n",
"There goes my freedom. They're going to bring their suitcases.\n",
"You're going to need your notebook.\n",
"That medicine affects my ability to sleep. Have you heard of the butterfly effect?\n",
"This phrase is to check chatGPT for spelling ability.\n"
]
}
],
"source": [
"for t in text:\n",
" prompt = f\"\"\"Proofread and correct the following text\n",
@ -713,7 +862,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 25,
"id": "1ef55b7b",
"metadata": {},
"outputs": [
@ -722,10 +871,10 @@
"output_type": "stream",
"text": [
"0 The girl with the black and white puppies has a ball.\n",
"1 未发现错误。\n",
"1 Yolanda has her notebook.\n",
"2 It's going to be a long day. Does the car need its oil changed?\n",
"3 Their goes my freedom. They're going to bring their suitcases.\n",
"4 输出:You're going to need your notebook.\n",
"3 Their goes my freedom. There going to bring their suitcases.\n",
"4 You're going to need your notebook.\n",
"5 That medicine affects my ability to sleep. Have you heard of the butterfly effect?\n",
"6 This phrase is to check chatGPT for spelling ability.\n"
]
@ -762,7 +911,7 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 26,
"id": "6696b06a",
"metadata": {},
"outputs": [],
@ -781,10 +930,18 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 27,
"id": "8f3b2341",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Got this for my daughter for her birthday because she keeps taking mine from my room. Yes, adults also like pandas too. She takes it everywhere with her, and it's super soft and cute. However, one of the ears is a bit lower than the other, and I don't think that was designed to be asymmetrical. Additionally, it's a bit small for what I paid for it. I believe there might be other options that are bigger for the same price. On the positive side, it arrived a day earlier than expected, so I got to play with it myself before I gave it to my daughter.\n"
]
}
],
"source": [
"prompt = f\"proofread and correct this review: ```{text}```\"\n",
"response = get_completion(prompt)\n",
@ -1009,7 +1166,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.13"
"version": "3.10.11"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,

View File

@ -1,3 +1,7 @@
# 面向开发者的 LLM 入门课程
LLM 正在逐步改变人们的生活,而对于开发者,如何基于 LLM 提供的 API 快速、便捷地开发一些具备更强能力、集成LLM 的应用,来便捷地实现一些更新颖、更实用的能力,是一个急需学习的重要能力。由吴恩达老师与 OpenAI 合作推出的大模型系列教程,包括 、等教程其中《ChatGPT Prompt Engineering for Developers》教程面向入门 LLM 的开发者,深入浅出地介绍了对于开发者,如何构造 Prompt 并基于 OpenAI 提供的 API 实现包括总结、推断、转换等多种常用功能,是入门 LLM 开发的经典教程《Building Systems with the ChatGPT API》、《LangChain for LLM Application Development》教程面向想要基于 LLM 开发应用程序的开发者,简洁有效而又系统全面地介绍了如何基于 LangChain 与 ChatGPT API 开发具备实用功能的应用程序,适用于开发者学习以开启基于 LLM 实际搭建应用程序之路。因此,我们将该系列课程翻译为中文,并复现其范例代码,也为其中一个视频增加了中文字幕,支持国内中文学习者直接使用,以帮助中文学习者更好地学习 LLM 开发;我们也同时实现了效果大致相当的中文 Prompt支持学习者感受中文语境下 LLM 的学习使用。未来,我们也将加入更多 Prompt 高级技巧,以丰富本课程内容,帮助开发者掌握更多、更巧妙的 Prompt 技能。
LLM 正在逐步改变人们的生活,而对于开发者,如何基于 LLM 提供的 API 快速、便捷地开发一些具备更强能力、集成LLM 的应用,来便捷地实现一些更新颖、更实用的能力,是一个急需学习的重要能力。
由吴恩达老师与 OpenAI 合作推出的大模型系列教程,讲解了如何入门基于 OpenAI API 以及 LangChain 大模型开发。其中《Prompt Engineering for Developers》教程面向入门 LLM 的开发者,深入浅出地介绍了对于开发者,如何构造 Prompt 并基于 OpenAI 提供的 API 实现包括总结、推断、转换等多种常用功能,是入门 LLM 开发的经典教程《Building Systems with the ChatGPT API》、《LangChain for LLM Application Development》教程面向想要基于 LLM 开发应用程序的开发者,简洁有效而又系统全面地介绍了如何基于 ChatGPT API 与 LangChain 开发具备实用功能的应用程序,适用于开发者学习以开启基于 LLM 实际搭建应用程序之路。
因此,我们将该系列课程翻译为中文,并复现其范例代码,也为其中一个视频增加了中文字幕,支持国内中文学习者直接使用,以帮助中文学习者更好地学习 LLM 开发;我们也同时实现了效果大致相当的中文 Prompt支持学习者感受中文语境下 LLM 的学习使用。未来,我们也将加入更多 Prompt 高级技巧,以丰富本课程内容,帮助开发者掌握更多、更巧妙的 Prompt 技能。