为了账号安全,请及时绑定邮箱和手机立即绑定

AI模型提示工程指南:2025年的最佳实践与技巧

2025年的提示工程取得了显著进展,每个AI模型——OpenAI的ChatGPT、DeepSeek、Google Gemini和GitHub Copilot——都有其独特的强项和弱点。要在这些模型中掌握提示工程,理解它们的内部架构、能力以及理想的提示方式是至关重要的。

此处省略……

🔹 2025年提示设计的背景

提示设计现在是AI工程师、全栈开发者以及软件测试人员的一项关键技能。目标是设计精准且结构化的提示,以提升AI模型的表现。这项技能在以下领域被广泛应用:

AI驱动的开发(代码生成、调试、重构)

测试自动化(测试用例生成、测试数据创建)

生产力工具(摘要生成、文档处理、特定领域知识检索)

聊天机器人及虚拟助手(用户交互、个性化、动态响应)

每个AI模型因为训练数据、调整和API表现的不同,对提示的响应也会有所不同。

……

🔹 不同AI模型的提示设计

1 开放人工智能(ChatGPT 4 & 5,GPT-4-增强版)

🛠 最佳用例场景:

  • 自然语言理解和生成
  • 代码解释和调试
  • 生成测试用例
  • 聊天机器人和虚拟助理

📝 促推技巧:

链式思维(CoT)促推 → 通过分解步骤来提高推理能力。

少量样本学习法 → 在请求前提供示例以引导模型。

基于角色的促推 → 赋予AI角色(例如,“你是一名高级SDET...”)。

系统指令 → 使用“系统”消息在API调用中确保行为的一致性。

温度及Top-p控制 → 调整创意和随机性水平,以适应不同的应用场景。

📌 例如:

你是一名专注于自动化的软件测试专家。根据以下需求,生成详细测试用例,包括前提条件、步骤以及预期结果。

测试用例生成
💡 使用案例: 从产品规格中生成测试案例。

🔹 提个醒:

你是一位专精于自动化测试的软件测试专家。  
根据下面的功能描述,生成详细的测试用例,包括:  
- 标题  
- 前置条件  
- 步骤  
- 预期结果  

### 功能描述:  
用户应能够通过输入其注册的电子邮件来找回密码。系统应向该电子邮件发送重置链接,该链接在15分钟后失效。

进入全屏 播出全屏模式切换回正常模式退出全屏

这里我们预计的输出是。


    测试用例 1:验证密码重置链接是否被发送到注册邮箱

    **前提条件:**  
    - 用户已经有一个注册账户。  
    - 用户处于登录页面。  

    **步骤:**  

1. 点击“忘记密码”按钮。  

2. 输入注册的邮箱地址。  

3. 点击“提交”。  

    **预期结果:**  
    - 系统会显示成功的消息。  
    - 注册的邮箱会收到密码重置链接。  
    - 链接会在15分钟后失效。  

全屏模式 退出全屏

ChatGPT非常适合处理结构化输出,例如,测试用例和编写文档.

🔹 最佳实践应用:

处理边缘情况(例如过期、重试和暴力攻击)

考虑安全风险(暴力攻击和重放攻击)

结构化格式的测试用例文档

……

2 深索(DeepSeek-VL 和 DeepSeek Coder)

🛠 最常见应用场景:

  • 多模态AI(包括文本和图像处理)
  • 代码生成和重构
  • 解决数学问题

📝 促导技术:

零样本提示 → 即使没有提供示例,也能很好地运行。

代码优先方法 → 以鼓励直接编写代码的方式来构造提示。

任务拆分 → 让DeepSeek将复杂任务拆分成几个子任务。

📌 例子:

_> "生成一个用于从 MongoDB 获取用户数据的 NestJS 服务的单元测试。使用 Jest 并确保涵盖所有边界条件。"

代码生成
💡 应用场景: 为 MongoDB 服务生成一个 NestJS 单元测试案例。

🔹 提示如下:

你是一位有经验的后端开发人员。使用 Jest 为 NestJS 中从 MongoDB 获取用户数据的服务生成一个单元测试。
确保测试包括:
- 有效用户获取
- 不存在的用户处理
- 错误处理

切换到全屏 退出全屏

🔹 期望输出(DeepSeek 程序员):

注意:保持英文术语 "DeepSeek 程序员" 不翻译,保留冒号。

    import { Test, TestingModule } from '@nestjs/testing';
    import { UserService } from './user.service';
    import { getModelToken } from '@nestjs/mongoose';
    import { Model } from 'mongoose';
    import { User } from './user.schema';

    describe('UserService', () => {
      let service: UserService;
      let model: Model<User>;

      beforeEach(async () => {
        const module: TestingModule = await Test.createTestingModule({
          providers: [
            UserService,
            {
              provide: getModelToken('User'),
              useValue: {
                findOne: jest.fn(),
              },
            },
          ],
        }).compile();

        service = module.get<UserService>(UserService);
        model = module.get<Model<User>>(getModelToken('User'));
      });

      it('当找到用户时,应该返回用户信息', async () => {
        const mockUser = { email: 'test@example.com', name: 'Test User' };
        jest.spyOn(model, 'findOne').mockResolvedValue(mockUser);

        const result = await service.getUserByEmail('test@example.com');
        expect(result).toEqual(mockUser);
      });

      it('当用户不存在时,应该返回 null', async () => {
        jest.spyOn(model, 'findOne').mockResolvedValue(null);

        const result = await service.getUserByEmail('notfound@example.com');
        expect(result).toBeNull();
      });
    });

切换到全屏模式,退出全屏

DeepSeek Coder 生成结构化的代码,在真实的测试环境中表现良好。


Google Gemini 1.5 (之前叫 Bard)

工具提示:最佳用例场景:

  • 数据分析及可视化
  • 多模态搜索(图片+文本)
  • 创意写作和研究

📝 提示技术:

混合型提示 → 将结构化指令与开放型提示结合使用。

事实核查提示 → 要求它用来源验证回答。

上下文扩展提示 → 使用包含详细背景信息的较长提示以提高准确性。

📌 例如:

_> "总结最新的人工智能驱动的测试用例生成趋势,重点是使用RAG和LLM微调的工具。比较Gemini和GPT在测试用例生成中的表现。""

AI研究与摘要

💡 示例: 简述最近的AI驱动的测试案例生成趋势。

🔹 请看以下提示:

    总结由AI驱动的测试用例生成的最新趋势,重点是:  

1. 检索增强生成(RAG)  

2. 大规模语言模型(LLM)在软件测试中的微调  

3. OpenAI的GPT-4-Turbo和Gemini在测试用例生成方面的差异  
    如有必要,请提供参考资料。  

进入全屏 退出全屏

🔹 预期的输出(Gemini 1.5):

### 基于AI的测试用例生成趋势预测(2025)

1️⃣ **基于检索的增强生成(RAG)**  
- 现在AI模型可以从向量数据库(如MongoDB向量搜索)中获取特定领域的测试用例。  
- RAG减少了错误生成并提高了上下文感知的测试用例的质量。

2️⃣ **针对软件测试的LLM微调**  
- 公司使用其历史测试用例对模型进行微调。  
- 开源微调框架如LoRA和QLoRA使得微调过程更加高效。

3️⃣ **GPT-4-Turbo vs. Gemini**  
- GPT-4-Turbo在结构化输出方面表现更好。  
- Gemini 1.5具有更强的多模态理解能力(文本+图像)。

进入全屏 退出全屏

双子非常适合做与AI研究相关的任务


GitHub Copilot(代码版GPT-4-Turbo)(代码助手)

🛠 最佳用法:

  • 实时代码补全
  • 代码优化及最佳实践
  • 结对编程支持

📝 提示技巧:

内联注释提示 → 使用结构化注释引导代码完成。

函数签名完成 → 开始编写函数定义,让Copilot推断逻辑内容。

迭代提示 → 通过与模型的互动来优化建议。

📌 例如:

    // 创建一个处理用户 CRUD 操作的 NestJS 控制器
    // 使用依赖注入来处理用户 CRUD 操作所需的依赖

全屏模式 退出全屏

代码生成
💡 应用场景: 使用Copilot实时生成NestJS的CRUD API。

内联注释(在 VS Code 中):

    // 创建一个 NestJS 服务来处理 'Product' 实体的 CRUD 操作(创建、读取、更新、删除)
    // 使用依赖注入来连接 MongoDB

切换到全屏或退出全屏

🔹 Copilot 完成 (预期输出):

    import { Injectable } from '@nestjs/common';
    import { InjectModel } from '@nestjs/mongoose';
    import { Model } from 'mongoose';
    import { Product, ProductDocument } from './product.schema';

    @Injectable()
    export class ProductService {
      constructor(@InjectModel(Product.name) private productModel: Model<ProductDocument>) {}

      async create(productDto: any): Promise<Product> {
        const newProduct = new this.productModel(productDto);
        return newProduct.save();
      }

      async findAll(): Promise<Product[]> {
        return this.productModel.find().exec();
      }

      async findOne(id: string): Promise<Product | null> {
        return this.productModel.findById(id).exec();
      }

      async update(id: string, productDto: any): Promise<Product | null> {
        return this.productModel.findByIdAndUpdate(id, productDto, { new: true }).exec();
      }

      async delete(id: string): Promise<void> {
        await this.productModel.findByIdAndDelete(id).exec();
      }
    }

全屏显示,退出全屏

Copilot 能很好地根据开发者的意图编写实际的生产代码。


🔹 2025年展望:关键要点

选择合适的模型很重要 → 根据使用场景选择合适的AI。

正确地组织提示至关重要 → 正确地组织提示以获得最大效率。

不断迭代优化提示最佳 → 根据输出不断优化提示。

领域特定的微调 → 为测试、开发或特定产品的应用场景定制提示。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消