当前位置:AIGC资讯 > AIGC > 正文

【愚公系列】《AIGC辅助软件开发》009-面向软件开发的提示工程:让ChatGPT在每个环节都发挥作用

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

文章目录

?前言 ?一、让ChatGPT在每个环节都发挥作用 ?1.一起讨论商业计划 ?2.做产品 demo ?3.找相似的开源项目 ?4.设计数据库 ?5.协助写商业计划书 ?6.还能用 ChatGPT 做什么 ?感谢:给读者的一封信

?前言

在现代软件开发中,人工智能助手如ChatGPT正逐渐成为开发者不可或缺的工具。无论是在需求分析、代码编写、调试,还是在文档生成和项目管理的各个环节,ChatGPT都能够提供及时的支持和智能的建议。然而,要充分发挥其作用,关键在于如何有效地构建提示(Prompt),使其能够真正理解开发者的意图和需求。

本文将深入探讨提示工程在软件开发中的应用,分享如何通过精确的提问和有效的上下文设置,让ChatGPT在每个环节都发挥作用。我们将介绍提示的构建技巧、最佳实践,并通过实际案例展示如何在不同开发阶段利用ChatGPT提升工作效率和质量。

无论您是希望提高团队协作效率的项目经理,还是希望优化个人开发流程的程序员,这篇文章都将为您提供实用的指导和深刻的见解。让我们一起探索如何让ChatGPT成为软件开发中的得力伙伴,助力每一个项目的成功!

?一、让ChatGPT在每个环节都发挥作用

我们看到,ChatGPT在指令比较明确的情况下,效果是非常好的。但在现实工作中,我们需要解决的大部分问题都比较复杂,比如系统运行过程中突然崩溃了,该如何分析,如何下手解决?

这时候,你需要把原始的复杂问题拆解为足够简单、明确的问题,再交给别人来做。这个“别人”现在是 ChatGPT。

?1.一起讨论商业计划

我们与ChatGPT 做一个有趣的身份转换,让 ChatGPT作为提问者,而我们作为回答者。

我现在想要创业,做ChatGPT相关的服务。我的目标用户群体是缺少子女陪伴的老年人,希望有人跟他们聊天,陪他们解闷。遇到难以判断的问题时,能有人跟他们商量。是一个人的团队,所以人力成本不是问题。我现在想做一个聊天页面,可以通过语音输入ChatGPT 文字输出。
请你帮我完善一下,方式是向我提出你觉得我应该想清楚的问题。你每次向我提一个题,等我回答之后对我的回答给出你的意见和建议。然后再提下一个问题。如果你明白我的意思,就说“好的”,然后开始提第一个问题。

---

**第一个问题**:您是否打算提供一个手机应用程序(如安卓或iOS应用),还是仅提供一个网页应用程序(可以在手机浏览器中使用)?

**回答**:我打算提供一个适配手机的网页应用,而不开发安卓或iOS应用,因为需要下载和安装会增加传播的阻力。我也不打算适配PC端,因为目前很少有老年人使用PC。我希望这个网页可以嵌入微信公众号,或通过微信群、QQ群等方式进行传播。

---

**第二个问题**:您希望通过语音输入的方式让用户与ChatGPT进行交流,是否考虑过使用现成的语音识别API(如Google、百度、腾讯等公司提供的API)将用户的语音转换为文本,然后再将文本交给ChatGPT处理?还是您有其他的实现方案?

**回答**:由于这个服务主要在中国应用,所以不考虑英文语音识别。计划使用百度、阿里或科大讯飞的语音识别API,将语音转换为文本,再交给ChatGPT处理。

---

**第三个问题**:在ChatGPT的文字输出方面,您是否希望将输出的文字直接展示给用户,还是希望在展示前进行一定程度的筛选和调整,以确保输出内容的质量和适宜性?如果需要筛选和调整,您是否考虑过具体的实现方式?

**回答**:这是个好问题。首先,输出内容不能包含涉黄、政治、暴力等言论。其次,虽然陪伴是主要应用场景,对输出的质量要求并不高,但需要加强上下文记忆,甚至希望在多轮对话后能与用户产生熟悉、亲密的关系。具体的实现方式目前还不确定。

---

**第四个问题**:关于上下文记忆和用户亲密关系的建立,您是否考虑过为每位用户创建一个独立的ChatGPT实例,并存储与该用户的聊天历史,以便在后续对话中实现个性化和上下文关联?此外,您是否考虑过设置安全和隐私保护措施,以确保用户数据的安全和保密?

**回答**:是的,每个用户需要有独立的账户,并存储用户与ChatGPT的历史聊天记录。用户的数据需要保密,不能泄露。

---

**第五个问题**:您是否计划设置用户反馈机制,以便用户在与ChatGPT聊天时,可以对不满意的回答或建议提供反馈?这将有助于了解用户需求,进一步优化服务。此外,对于ChatGPT提供的答案,您是否考虑过引入人工审核机制,以确保内容质量和遵守相关规定?

**回答**:不确定老年人是否愿意主动反馈,但计划使用轻量化的反馈机制,例如简单的点赞和踩按钮。人工审核机制目前不打算引入,因为成本太高且可能导致回复不及时。

---

**第六个问题**:如何让您的服务在目标用户群体中更广泛传播?您是否有推广计划,例如与养老院合作、与线下老年活动中心合作,或者通过线上推广?另外,您是否考虑为您的服务制定明确的定价策略,以便在项目推广和盈利方面取得成功?

**回答**:这个方面还没有考虑,不过关于定价策略有以下建议:
1. 免费试用:让用户在一定时间内(例如一个月)免费使用服务,以吸引更多用户尝试并提高黏性。
2. 会员制:设置会员等级,付费会员可享受更多特权,例如无限聊天时长、优先体验新功能等。
3. 按次收费:根据用户使用次数或聊天时长收费,让用户灵活选择。
4. 定期订阅:设定不同订阅周期(如按月、按季度或按年),用户可以选择订阅时长,在订阅期间无限使用服务。
5. 合作推广:与老年公寓、养老院、老年活动中心等合作,为居民提供优惠政策,提高用户数量和市场份额。

这些定价策略可以结合使用,以适应不同用户群体的需求。建议根据目标市场和用户需求制定合适的定价策略。初期可考虑对部分功能免费提供,以吸引更多用户,之后逐步引入收费策略。

---

有些之前没想到的点,ChatGPT提到了,对我很有启发。另外,它把一个复杂、模糊的问题拆解为一系列具体的问题,让我能每次聚焦在一个点上思考和决策,并有节奏地逐步递进,整个路线慢慢地变得清晰起来。对于思考商业计划来说,整个过程变得更轻松了。

有趣的是,之前的案例都在讲我们如何拆解任务让ChatGPT能够更好地执行。而这一次我们利用ChatGPT来拆解任务,这种身份角色的转变可以让我们暂时从一片混沌中抽身出来每次只思考当前的要点,心力得到了聚焦。

我们每个人都由不同的模型组合而成。人类有三种主要模型:

认知模型:我们能够看、听、思考,并进行规划。 任务模型:我们可以爬楼梯、搬椅子、剥鸡蛋。 领域模型:我们中有些人是医生,有些是律师,还有一些是程序员。

我们对社会的所有贡献,都是这三种模型的组合。每个人的财富来源并非手脚的力量,而是大脑的智慧。

如果人类在思考时也是调用自己的底层模型,那么在执行任务时,人类的模型与ChatGPT模型有以下相似之处:

面对复杂问题时,难以快速判断。 期待有人帮助进行任务拆分。 希望能被一步步引导,最终解决复杂问题。

这为我们在工作和生活中解决复杂问题提供了一个有益的启示。

?2.做产品 demo

经过了上一节的对话,我将目标进行了总结,接下来我想做一个demo给投资人演示,我会告诉 ChatGPT刚才讨论形成的结论、我的目的,以及我需要它做的工作。

根据我们之前的对话,我想我的目标更明确了:
1.我的目标用户群是缺少子女陪伴的孤独老人,希望借助ChatGPT 陪他们聊天
2.我打算先在中国应用这个服务,所以不会考虑英文。
3.我打算提供一个可以适配手机的网页,能嵌入微信公众号,或者通过微信群、QQ群传播。
4.我希望通过语音输人的方式让用户与ChatGPT进行交流,我会考虑使用现成的语音识别 API(如百度、阿里、腾讯等)。
5.ChatGPT的回复,我希望是通过文字方式展现。
6.用户可以针对ChatGPT的回复进行点赞或踩操作,以提供用户对回答是否满意的反馈。
7.每个用户拥有独立的账户,存储用户与ChatGPT的历史聊天记录数据,用户的数据需要保密不能泄漏。
8.用户每次聊天时,ChatGPT能根据历史聊天记录作为上下文给用户进行回复。
9.在收费模式上,我打算采用先免费试用30天,之后再按月订阅付费的方式。
现在我要做一个demo给投资人演示,你作为一流的架构师,请为我设计完整的前端页面和后台系统。
针对每一部分,你可以先给出设计思路,然后附上完整代码。
### 系统架构设计思路

为了实现你的目标,我建议将系统分为以下几个关键模块:

1. **前端用户界面**:
   - **功能**:实现用户登录、聊天、语音输入、消息显示、点赞/踩操作等功能。
   - **技术栈**:使用React.js或Vue.js来构建响应式页面,确保适配手机和PC。页面可以嵌入微信公众号或通过微信群、QQ群分享。

2. **后端系统**:
   - **功能**:处理用户请求、管理用户账户、存储聊天历史记录、调用ChatGPT接口、实现支付功能等。
   - **技术栈**:使用Node.js + Express.js来构建API服务,MongoDB或MySQL作为数据库,存储用户数据和聊天记录。通过第三方支付API(如微信支付)实现付费功能。

3. **语音识别集成**:
   - **功能**:将用户语音输入转化为文字,传递给ChatGPT进行处理。
   - **技术栈**:使用百度、阿里、腾讯的语音识别API,通过后端调用这些服务,将识别结果返回给前端。

4. **用户账户与隐私管理**:
   - **功能**:管理用户账户信息,确保用户隐私数据的安全。实现用户历史聊天记录的加密存储与检索。
   - **技术栈**:使用JWT(JSON Web Token)实现用户认证,确保通信过程中的安全性。

5. **支付系统**:
   - **功能**:支持用户付费订阅服务,提供30天免费试用期后自动提醒付费。
   - **技术栈**:集成微信支付API,实现订阅功能。

### 具体开发步骤

#### 1. 前端页面设计

##### 1.1 主界面 (`App.js`)

```javascript
import React from 'react';
import ChatWindow from './components/ChatWindow';
import Header from './components/Header';
import Login from './components/Login';

function App() {
   
  const [isLoggedIn, setIsLoggedIn] = React.useState(false);

  return (
    <div className="App">
      <Header />
      {
   isLoggedIn ? <ChatWindow /> : <Login onLogin={
   () => setIsLoggedIn(true)} />}
    </div>
  );
}

export default App;
```javascript

##### 1.2 登录组件 (`Login.js`)

```javascript
import React, {
    useState } from 'react';
import {
    loginUser } from '../api/UserAPI';

function Login({
    onLogin }) {
   
  const [phone, setPhone] = useState('');
  const [password, setPassword] = useState('');

  const handleLogin = async () => {
   
    const success = await loginUser(phone, password);
    if (success) {
   
      onLogin();
    } else {
   
      alert('登录失败,请检查您的账号信息。');
   

总结

### 文章总结:
**作者简介**:
- **头衔**:业内多家科技公司(如华为云、阿里云、腾讯云等)的特约编辑、专家和签约作者,CSDN博客和商业化专家,拥有广泛的行业影响力和荣誉,如连续多次获得“博客之星TOP2”等。
- **博客内容**:广泛覆盖.NET、Java、Python等编程语言及前端、移动开发、物联网、大数据等多个技术领域。
**文章主题**:
本文主要探讨了人工智能助手ChatGPT在软件开发各环节中的高效应用,特别是通过精确的提示(Prompt)构建和有效的身份转换,展示了如何利用ChatGPT提升商业计划制定、产品demo制作等工作效率和质量。
**核心内容**:
1. **前言**:
- AI助手如ChatGPT在软件开发全链条中的重要作用。
- 提示工程在有效利用ChatGPT中的核心地位。
2. **ChatGPT在各个开发环节的应用**:
- **商业计划讨论**:
- 通过让ChatGPT扮演提问者身份,将复杂的商业计划细化为一系列具体问题,帮助创业者清晰思考和决策。
- 讨论内容包括应用平台、语音识别方案、内容质量控制、用户个性化、隐私安全及推广策略等多维度。
- **产品demo制作**:
- 详细列出了系统架构设计思路,包括前端用户界面、后端系统、语音识别集成、用户账户与隐私管理以及支付系统。
- 提供了具体开发步骤及前端登录组件示例代码,全面展示了如何利用ChatGPT辅助实现技术细节。
**主要启示**:
- **问题拆解**:将复杂的任务或问题拆解为一系列简单明确的子问题,使ChatGPT能更好地理解和执行指令。
- **身份转换**:巧妙地让ChatGPT扮演不同角色,如提问者,有助于从新颖角度审视问题,激发新思路。
- **模型组合**:人类思考和执行任务时调用的认知、任务和领域模型与ChatGPT模型有相似之处,理解这些相似之处有助于更好地利用ChatGPT。
**总结与展望:**
文章通过丰富的实际案例,详细阐述了ChatGPT在软件开发中的应用方法,为开发者提供了宝贵的经验和指导。未来,随着AI技术的不断进步,ChatGPT及其类似工具将在软件开发中发挥越来越重要的作用,促进项目开发效率和质量的提升。

更新时间 2024-08-18