2025三掌柜赠书活动第四期:AI原生应用开发提示工程原理与实战

目录

前言

提示工程的定义

提示工程的重要性

提示工程的基本原则

关于《AI原生应用开发提示工程原理与实战》

编辑推荐

内容简介

作者简介

图书目录

本书特色

《AI原生应用开发提示工程原理与实战》内容提要

结束语


前言

随着人工智能技术的飞速发展,AI原生应用开发已成为推动数字化转型的关键力量。AI原生应用不仅仅是传统应用的升级,而是从设计之初就深度整合了人工智能技术,以实现更智能、更高效的用户体验。提示工程(Prompt Engineering)作为AI原生应用开发中的一个重要环节,通过优化与AI模型的交互方式,能够显著提升应用的性能和用户体验。那么本文就来深入探讨提示工程的原理,并通过实战案例展示如何在AI原生应用开发中有效应用提示工程,方便大家查阅学习使用。

提示工程的定义

先来复习一下提示工程的含义,提示工程是指通过设计和优化与AI模型的交互提示(Prompt),来引导模型生成更符合预期的输出。在AI原生应用中,提示工程可以帮助开发者更好地控制模型的行为,提高模型的准确性和响应速度。

提示工程的重要性

在AI原生应用中,模型的性能不仅取决于其训练数据和算法,还依赖于输入提示的质量。通过优化提示,可以进行如下操作:

  • 提高模型的准确性和相关性。
  • 减少模型生成无关或错误内容的可能性。
  • 提升用户体验,使应用更加智能和响应迅速。

提示工程的基本原则

接下来再来分享一下关于提示工程的基本原则

  1. 清晰性:提示应该清晰、简洁,避免歧义。
  2. 具体性:提供足够的上下文信息,使模型能够准确理解任务。
  3. 引导性:通过提示引导模型生成特定类型的输出。
  4. 灵活性:根据模型的响应调整提示,以获得最佳结果。

关于《AI原生应用开发提示工程原理与实战》

接下来给大家推荐一本关于AI原生应用开发的书籍,这是一本关于如何通过提示工程优化AI应用的干货图书,一经上市就登上了京东“计算机与互联网”图书排行榜前列。本书从AI原生应用的基础讲起,深入探讨了提示工程的原理与实战技巧,助你在AI开发实战中轻松提升应用性能!另外,关注本文博主,点赞+收藏本文,且在本文评论区评论“入手AI原生应用开发”,将选取三名幸运读者送出纸质版《AI原生应用开发:提示工程原理与实战》一本,截止时间:2025.01.29。入手《AI原生应用开发:提示工程原理与实战》传送门:https://item.jd.com/10136043938428.html,个人觉得这本书非常的不错,是一本不可多得的好书,值得拥有去学习。

编辑推荐

本书适合AI原生应用开发领域的从业者和研究人员,以及人工智能相关专业的教师和学生阅读。

由互联网大厂资深研发工程师撰写,呈现AI大模型落地经验!专注于提示工程的理论和实践,涉及4大应用场景,8大提示策略,包含100多个实践案例。

内容简介

本书结合AI原生应用落地的大量实践,系统讲解提示工程的核心原理、相关案例分析和实战应用,涵盖提示工程概述、结构化提示设计、NLP任务提示、内容创作提示、生成可控性提示、提示*设计、形式语言风格提示、推理提示和智能体提示等内容。 本书的初衷不是告诉读者如何套用各种预设的提示模板,而是帮助读者深入理解和应用提示设计技巧,以找到决定大语言模型输出的关键因子,进而将提示工程的理论知识应用到产品设计中。 本书适合AI原生应用开发领域的从业者和研究人员,以及人工智能相关专业的教师和学生阅读。

作者简介

魏承东,某互联网大厂研发工程师,拥有 10 余年技术研发经验,在云原生、大数据、AI 原生应用开发领域拥有丰富的项目实践经验。其主持研发的“疫情地图”系列产品曾服务* 10 亿用户,帮助公司获得“工业和信息化系统抗击新冠肺炎疫情先进集体”称号;主持的项目曾两次荣获“IDC 中国未来企业大奖”,是国内较早探索大语言模型在产业落地的技术*之一,持有国内外 30 余项发明专利。

图书目录

第 1章 提示工程概述 1

1.1 AI原生应用的形态 1

1.1.1 内容创作 1

1.1.2 辅助助手 2

1.1.3 能力引擎 2

1.1.4 智能体 3

1.2 AI原生应用开发面临的机遇与挑战 4

1.2.1 开发模式的华丽变身 4

1.2.2 技术落地的荆棘之路 4

1.3 案例演示的准备工作 5

1.3.1 使用官网接入大语言模型 5

1.3.2 使用API接入大语言模型 6

1.3.3 *体验 7

1.4 提示工程的本质 7

1.4.1 提示是引导生成的起点 8

1.4.2 提示是一个稳定的函数 9

1.4.3 用户提示是完整提示的一部分 9

1.5 KITE提示框架 11

1.5.1 注入知识 12

1.5.2 明确指令 13

1.5.3 设定目标 14

1.5.4 确定边界 15

1.6 提示调试技巧 16

1.6.1 迭代优化 16

1.6.2 给提示添加调试说明 17

1.6.3 让模型重述任务 18

1.6.4 利用知识生成能力生成任务描述 19

1.7 小结 21

第 2章 结构化提示设计 22

2.1 结构引导设计 22

2.1.1 层次结构 22

2.1.2 输入和输出位置 22

2.1.3 有序列表和无序列表 23

2.1.4 解释或补充说明 23

2.1.5 不可分割 24

2.1.6 强调内容 24

2.1.7 语义槽位 24

2.1.8 内容边界 25

2.1.9 输出格式 25

2.1.10 字段名称和数据类型 26

2.1.11 输出长度控制 27

2.2 内容引导设计 28

2.2.1 模拟对话提示 28

2.2.2 句式引导提示 28

2.2.3 前导语提示 29

2.2.4 规律提示 29

2.2.5 少样本提示 30

2.2.6 取值范围提示 31

2.3 提示编排设计 32

2.3.1 映射-化简策略 33

2.3.2 长文本滚动策略 35

2.3.3 多阶段拆分策略 37

2.4 小结 39

第3章 NLP任务提示 40

3.1 文本生成任务 41

3.1.1 文本摘要 41

3.1.2 观点总结 42

3.1.3 机器翻译 43

3.1.4 对抗文本生成 45

3.1.5 同义句转换 45

3.2 文本分类任务 46

3.2.1 基本文本分类 46

3.2.2 文本相似度评估 48

3.2.3 文本聚类 49

3.2.4 情感分析 50

3.3 信息抽取任务 52

3.3.1 关键词抽取 52

3.3.2 命名实体识别 53

3.3.3 属性抽取 54

3.3.4 关系抽取 56

3.3.5 隐含信息抽取 57

3.4 文本整理任务 59

3.4.1 文本纠错 59

3.4.2 表格整理 60

3.4.3 信息筛选 63

3.4.4 知识整合与更新 65

3.5 小结 67

第4章 内容创作提示 68

4.1 影响创作质量的核心要素 68

4.1.1 内容创意 69

4.1.2 受众定位 75

4.1.3 创作目的 76

4.1.4 文体选择 76

4.1.5 风格要求 77

4.1.6 呈现方式 82

4.2 基础创作提示 85

4.2.1 撰写 85

4.2.2 改写 87

4.2.3 润色 88

4.2.4 续写 89

4.2.5 扩写 89

4.3 长文本创作提示 90

4.3.1 巧用文体结构进行创作 91

4.3.2 利用人机交互进行创作 92

4.3.3 基于故事框架进行创作 93

4.4 小结 97

第5章 生成可控性提示 98

5.1 可控性问题分类 98

5.1.1 幻觉问题 98

5.1.2 指令遵循问题 99

5.1.3 内容*问题 100

5.2 可控性影响因素 101

5.2.1 训练数据 101

5.2.2 涌现性和多样性 102

5.2.3 生成过程控制 102

5.3 生成参数和对话控制 103

5.3.1 生成参数调节 103

5.3.2 对话历史管理 104

5.3.3 对话立即停止 104

5.4 基于提示的可控设计 105

5.4.1 内容范围限定提示 105

5.4.2 前置条件限定 106

5.4.3 回答“我不知道” 108

5.4.4 使用外部知识 109

5.4.5 要求引用原文回答 110

5.4.6 使用外部工具 110

5.4.7 记忆增强提示 114

5.4.8 任务说明后置 115

5.5 基于内容审查的可控设计 116

5.5.1 基于传统模型的内容审查 117

5.5.2 基于大语言模型的内容审查 118

5.6 小结 119

第6章 提示*设计 120

6.1 数据泄露 121

6.1.1 模型记忆泄露 121

6.1.2 应用调用泄露 121

6.1.3 主要防御手段 122

6.2 注入攻击 127

6.2.1 任务挟持 127

6.2.2 提示泄露 128

6.2.3 越狱攻击 128

6.2.4 主要防御手段 130

6.3 越权攻击 134

6.3.1 代码解释器漏洞 134

6.3.2 开发框架漏洞 136

6.3.3 调用工具漏洞 137

6.3.4 主要防御手段 138

6.4 小结 142

第7章 形式语言风格提示 144

7.1 利用形式语言增强提示 144

7.1.1 编译器提示 145

7.1.2 数据类型 145

7.1.3 运算指令 150

7.1.4 控制结构 151

7.2 利用大语言模型编写代码 157

7.2.1 代码生成提示 157

7.2.2 代码优化提示 168

7.2.3 错误检查提示 172

7.3 小结 177

第8章 推理提示 178

8.1 大语言模型的推理 178

8.2 基础思维链 179

8.2.1 *样本提示 179

8.2.2 少样本提示 180

8.2.3 少样本思维链提示 181

8.2.4 *样本思维链提示 182

8.3 进阶思维链 185

8.3.1 思维表提示 185

8.3.2 自我一致提示 187

8.3.3 由少*多提示 188

8.3.4 自问自答提示 192

8.4 高阶思维链 195

8.4.1 思维树提示 195

8.4.2 推理-行动提示 200

8.4.3 自动思维链提示 204

8.5 尝试构建自己的思维链 208

8.5.1 自由辩论提示 209

8.5.2 圆桌会议提示 211

8.6 小结 213

第9章 智能体提示 215

9.1 什么是智能体 216

9.2 感知端 217

9.2.1 文本输入 217

9.2.2 视觉输入 218

9.2.3 听觉输入 219

9.2.4 其他输入 219

9.3 控制端 221

9.3.1 大语言模型 221

9.3.2 任务规划模块 221

9.3.3 记忆模块 227

9.4 行动端 233

9.4.1 文本输出 233

9.4.2 工具使用 235

9.5 小结 250

第 10章 AI原生应用开发展望 252

10.1 AI原生应用的落地 252

10.1.1 远离妄想与过度理想 252

10.1.2 重视系统之外的调整 253

10.1.3 选择务实的技术路线 253

10.2 AI原生应用效果评估 254

10.2.1 基准模型评估 255

10.2.2 AI原生应用评估 255

10.2.3 评估指标 256

10.2.4 评估方法 259

10.2.5 评估方法的选择 264

10.3 待解决的工程化问题 265

10.4 小结 266

本书特色

1.内容全地面:从基础到进阶、从原理到实践,系统掌握提示工程

2.实战导向:包含提示工程的100多个实践案例和技巧

3.由浅入深:本书的初衷并非仅仅指导读者如何套用各种预设的提示模板,而是通过深入理解并掌握提示工程,从而找到对大语言模型的输出有决定性影响的关键因子,推动AI原生应用的落

《AI原生应用开发提示工程原理与实战》内容提要

本书结合AI原生应用落地的大量实践,系统讲解提示工程的核心原理、相关案例分析和实战应用,涵盖提示工程概述、结构化提示设计、NLP任务提示、内容创作提示、生成可控性提示、提示安全设计、形式语言风格提示、推理提示和智能体提示等内容。

本书的初衷不是告诉读者如何套用各种预设的提示模板,而是帮助读者深入理解和应用提示设计技巧,以找到决定大语言模型输出的关键因子,进而将提示工程的理论知识应用到产品设计中。

本书适合AI原生应用开发领域的从业者和研究人员,以及人工智能相关专业的教师和学生阅读。

结束语

通过本文的详细分享和探讨,想必大家都深入了解了提示工程的原理和实战应用。提示工程作为AI原生应用开发中的一个重要环节,通过优化与AI模型的交互提示,能够显著提升应用的性能和用户体验,通过设计、调试和优化提示,开发者可以更好地控制模型的行为,提高模型的准确性和响应速度。随着技术的不断发展,提示工程将继续在AI原生应用开发中发挥重要作用,为用户提供更加智能和高效的服务。最后,希望本文提供的提示工程原理和实战案例能够帮助大家在AI原生应用开发中取得更好的成果,尤其是如果大家想要深入学习提示词工程的原理和实战可以入手《AI原生应用开发提示工程原理与实战》这本书,个人觉得这本书真心不错,内容非常的翔实,值得拥有!

<think>好的,我现在要解决用户的问题:如何在C#中使用Math.Ceiling方法进行向上取整,并给出示例。首先,我得回忆一下C#中Math类的相关知识。Math.Ceiling应该是一个静态方法,用于返回大于或等于指定数字的最小整数。用户可能想了解具体的使用方法,包括不同数据类型的处理,比如double和decimal。 首先,我需要确认Math.Ceiling的参数类型。根据引用[4],Math.Ceiling有处理十进制和双精度两种重载方法。所以示例中需要展示这两种情况。用户提供的引用[3]中也提到了Convert.ToDecimal和Convert.ToDouble的使用,这可能涉及到类型转换的问题,比如处理字符串或者其他类型的数据时需要注意转换。 接下来,我需要构造几个示例代码。第一个例子可能使用double类型,如引用[1]中的示例,直接对4.2进行向上取整得到5。第二个例子可能用decimal类型,比如处理4.56789,结果也是5。第个例子可能涉及负数,比如-3.2,向上取整后的结果是-3,因为-3比-3.2大,但仍然是小于等于原数的最大整数。这点需要注意,避免用户误解。 然后,考虑用户可能遇到的常见问题,比如如何处理字符串转换后的数值。引用[3]中提到了将字符串转换为decimal或double再使用Math.Ceiling,所以在示例中可以包含一个从字符串解析的例子,展示如何正确转换后使用该方法。 另外,需要提醒用户注意数据类型的匹配。例如,如果传入的是float,可能需要显式转换为double或decimal,否则会出现编译错误。比如,4.5f是float类型,直接传给Math.Ceiling可能会报错,所以需要转换。 还要注意,Math.Ceiling返回的类型输入类型一致,比如输入是double,返回也是double,但实际值会是整数。例如,4.2向上取整后是5.0,而不是整数类型int。这点可能需要说明,以避免用户期望得到整型而实际得到的是浮点型。 最后,总结使用步骤:引入System命名空间,调用Math.Ceiling并传入正确的参数类型,处理返回结果。同时,强调常见错误,比如类型不匹配或未处理转换异常,比如在转换字符串时可能出现的FormatException。 检查是否有遗漏的情况,比如处理非常大的数值或特殊值如NaN、正负无穷大,但可能用户更关注基础用法,所以示例中可以不涉及这些复杂情况,除非引用中有提到。根据提供的引用,没有涉及这些,所以保持示例简单明了。 现在组织这些内容,按照用户的要求,用中文分步骤说明,并添加代码示例,确保LaTeX格式正确,最后生成相关问题。</think>在C#中实现数值向上取整可使用$Math.Ceiling()$方法,其返回大于或等于指定数值的最小整数。以下是具体使用说明及示例: ### 一、基础用法 1. **双精度浮点数处理** 直接传入$double$类型参数: ```csharp double num = 4.2; double result = Math.Ceiling(num); // 结果为5.0 ``` 2. **十进制数处理** 使用$decimal$类型参数: ```csharp decimal value = 4.56789m; decimal ceilValue = Math.Ceiling(value); // 结果为5.0m ``` ### 二、特殊场景处理 1. **负数向上取整** 对负数$-3.2$取整时返回$-3$: ```csharp double negativeNum = -3.2; double ceilNegative = Math.Ceiling(negativeNum); // 结果为-3.0 ``` 2. **字符串数值转换** 需先转换为数值类型再计算: ```csharp string input = "7.8"; double parsedNum = Convert.ToDouble(input); double ceilParsed = Math.Ceiling(parsedNum); // 结果为8.0 ``` ### 、注意事项 - **数据类型匹配**:若参数为$float$需显式转换: ```csharp float f = 4.5f; double ceilFloat = Math.Ceiling((double)f); // 显式转换为double ``` - **返回值类型**:返回值为$double$或$decimal$类型,例如$5.0$而非整数$5$[^3][^4]。 ```csharp // 完整示例 using System; class Program { static void Main() { // 示例1:双精度数向上取整 Console.WriteLine($"4.2向上取整: {Math.Ceiling(4.2)}"); // 输出5 // 示例2:负数向上取整 Console.WriteLine($"-3.2向上取整: {Math.Ceiling(-3.2)}"); // 输出-3 // 示例3:字符串转换后取整 string input = "6.7"; if (double.TryParse(input, out double num)) { Console.WriteLine($"{input}向上取整: {Math.Ceiling(num)}"); // 输出7 } } } ```
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三掌柜666

如果对您有所帮助,请支持一下呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值