【愚公系列】《AIGC辅助软件开发》008-面向软件开发的提示工程:如何提问才能让ChatGPT更懂你

在这里插入图片描述

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏


🚀前言

随着人工智能技术的快速发展,越来越多的开发者开始利用像ChatGPT这样的智能助手来提升工作效率和解决问题。然而,如何有效地与这些智能工具进行沟通,尤其是在软件开发领域,往往决定了最终的结果和体验。这就引出了“提示工程”(Prompt Engineering)的概念——通过优化问题的表达方式,使AI更好地理解需求和上下文。

本文将深入探讨面向软件开发的提示工程,重点介绍如何构建高效的提问策略,以便让ChatGPT更准确地理解您的意图和需求。我们将分享一些实用的技巧和示例,帮助您明确问题、提供必要的上下文,并引导AI生成更符合期待的回答。

无论您是刚入门的开发者,还是希望提高与AI互动能力的资深工程师,这篇文章都将为您提供有价值的见解和实践建议。让我们一起探索如何通过有效的提问,让ChatGPT成为您软件开发过程中的得力助手,助力项目的顺利推进!

🚀一、如何提问才能让ChatGPT更懂你

OpenAI 提供了一些关于 Prompt 的指导性建议:

  1. 使你的 Prompt 更加明确。
  2. 指定你想要的答案格式。
  3. 让模型在确定答案之前逐步思考或辩论利弊。

此外,我们还可以提供案例,并尽可能提供足够的上下文,以帮助模型更好地理解问题的背景和意图。接下来将举一些例子,让读者有更直观的感受。

🔎1.提问清晰且明确

我们通过对比,再来感受下清晰、明确的 Prompt是怎样的。

先看一个粗略的 Prompt:

请用JavaScript 写一个贪吃蛇的游戏。

在这里插入图片描述
得到html文件和js文件如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>贪吃蛇游戏</title>
<style>
  body {
     
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
    background-color: #333;
  }
  canvas {
     
    background-color: #000;
  }
</style>
</head>
<body>
<canvas id="gameCanvas" width="400" height="400"></canvas>
<script src="snake.js"></script>
</body>
</html>
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');

const gridSize = 20;
const canvasSize = canvas.width;
const tileCount = canvasSize / gridSize;

let snake = [{
    x: 10, y: 10 }];
let direction = {
    x: 0, y: 0 };
let food = {
    x: 15, y: 15 };
let score = 0;

function getRandomFoodPosition() {
   
  const x = Math.floor(Math.random() * tileCount);
  const y = Math.floor(Math.random() * tileCount);
  return {
    x, y };
}

function drawRect(x, y, color) {
   
  ctx.fillStyle = color;
  ctx.fillRect(x * gridSize, y * gridSize, gridSize, gridSize);
}

function update() {
   
  const head = {
    x: snake[0].x + direction.x, y: snake[0].y + direction.y };

  if (head.x === food.x && head.y === food.y) {
   
    snake.unshift(head);
    score += 10;
    food = getRandomFoodPosition();
  } else {
   
    snake.pop();
    snake.unshift(head);
  }

  if (head.x < 0 || head.x >= tileCount || head.y < 0 || head.y >= tileCount || snake.slice(1).some(segment => segment.x === head.x && segment.y === head.y)) {
   
    resetGame();
  }
}

function draw() {
   
  ctx.clearRect(0, 0, canvasSize, canvasSize);

  snake.forEach(segment => drawRect(segment.x, segment.y, 'lime'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

愚公搬代码

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值