当前位置: 首页 > news >正文

ChatGPT 提示词框架

在这里插入图片描述

作为一个资深安卓开发工程师,我们在日常开发中经常会用到 ChatGPT 来提升开发效率,比如代码优化、bug 排查、生成单元测试等。
但要想真正发挥 ChatGPT 的潜力,我们需要掌握一些提示词(Prompt)的编写技巧,并且有一个良好的提示词框架。

本文将详细介绍 ChatGPT 提示词的框架,并结合 Kotlin 代码示例,帮助大家更高效地使用 ChatGPT。

1. 什么是提示词框架?

提示词框架(Prompt Framework)是一种结构化的方式,
通过给 ChatGPT 传递清晰、详细、具有上下文的信息,
让它能够更好地理解你的需求,并生成更符合预期的结果。

一个好的提示词框架通常包括以下几个部分:

  • 角色设定(Role):指定 ChatGPT 的身份,比如“你是一个资深的 Kotlin 开发工程师”。
  • 目标任务(Task):明确告诉 ChatGPT 你需要它做什么,比如“帮我优化这段代码的性能”。
  • 输入内容(Input):提供必要的上下文,比如需要优化的 Kotlin 代码。
  • 输出格式(Output Format):指定结果的呈现方式,比如“请用 markdown 语法返回”。
  • 示例(Examples):提供参考示例,让 ChatGPT 理解你想要的风格。

2. 提示词框架示例

下面我们用 Kotlin 代码来举个例子,看看如何用一个良好的提示词框架来让 ChatGPT 帮我们优化代码。

// 原始代码,性能较低
fun findDuplicates(list: List<Int>): List<Int> {val duplicates = mutableListOf<Int>()val set = mutableSetOf<Int>()for (item in list) {if (!set.add(item)) {duplicates.add(item)}}return duplicates
}

示例提示词:

你是一个资深的 Kotlin 开发工程师。
你的任务是优化下面的 Kotlin 代码,使其性能更优。
代码如下:# ```kotlin
fun findDuplicates(list: List<Int>): List<Int> {val duplicates = mutableListOf<Int>()val set = mutableSetOf<Int>()for (item in list) {if (!set.add(item)) {duplicates.add(item)}}return duplicates
}
#  ```请优化代码,并简要说明优化点。
代码请用 markdown 语法格式返回。

ChatGPT 可能的优化结果:

fun findDuplicates(list: List<Int>): List<Int> {return list.groupBy { it }.filter { it.value.size > 1 }.keys.toList()
}

优化点:

  • 使用 groupBy 按元素分组,避免手动维护 Set
  • 直接筛选出重复元素,提高代码可读性。

3. 提示词框架的优化技巧

在实际使用中,我们可以通过以下方式优化提示词:

  • 具体化任务:避免模糊描述,比如不要说“优化代码”,而要具体说明优化目标,如“优化性能”或“提高可读性”。
  • 提供示例:如果你想要 ChatGPT 以某种格式返回结果,最好提供示例,让它模仿。
  • 限制输出:如果你只想要代码,不想要解释,可以明确说明“只返回优化后的代码,不要附带解释”。
  • 调整温度:在 API 调用时,可以调整 temperature 参数,值越低(如 0.2),输出越精确;值越高(如 0.8),输出越有创意。

4. ChatGPT 提示词框架的应用场景

作为 Android 开发者,我们可以用提示词框架来完成很多任务,比如:

  • 代码优化:如上例所示,优化 Kotlin 代码。
  • Bug 排查:描述 bug 现象,让 ChatGPT 提供可能的原因和修复建议。
  • 学习新 API:让 ChatGPT 解释 Jetpack Compose、Kotlin Coroutines 等 API 的用法。
  • 单元测试生成:让 ChatGPT 帮你自动生成测试代码。
  • 代码重构建议:询问如何改善代码架构,如 MVVM、MVP 设计模式优化。

5. 结语

掌握 ChatGPT 的提示词框架,不仅可以提高开发效率,还能帮助我们更深入地理解代码优化的思路。
作为开发者,我们应该学会用 AI 作为辅助工具,而不是完全依赖它。

希望本文对你有所帮助!如果你有更好的提示词技巧,欢迎在评论区分享!

相关文章:

ChatGPT 提示词框架

作为一个资深安卓开发工程师&#xff0c;我们在日常开发中经常会用到 ChatGPT 来提升开发效率&#xff0c;比如代码优化、bug 排查、生成单元测试等。 但要想真正发挥 ChatGPT 的潜力&#xff0c;我们需要掌握一些提示词&#xff08;Prompt&#xff09;的编写技巧&#xff0c;并…...

004-利用Docker安装Mysql

利用Docker安装Mysql 一、在镜像仓库找到 Mysql1.镜像仓库地址2.复制命令3.下载Mysql镜像4.查看镜像 二、创建实例并启动三、用本地工具连接数据库四、设置 Mysql 配置 一、在镜像仓库找到 Mysql 1.镜像仓库地址 https://hub.docker.com 2.复制命令 docker pull mysql:8.0…...

Dify使用和入门

第一步&#xff1a;了解 Dify 在开始之前&#xff0c;先简单了解一下 Dify 是什么&#xff1a; Dify 是一个开源的 LLM 应用开发平台&#xff0c;专注于帮助开发者快速构建生产级的生成式 AI 应用。它支持知识库集成、RAG&#xff08;检索增强生成&#xff09;技术、复杂工作…...

高效管理 React 状态和交互:我的自定义 Hooks 实践

高效管理 React 状态和交互&#xff1a;自定义 Hooks 实践 在 React 中&#xff0c;Hooks 是一种使我们能够在函数组件中使用状态和副作用的强大工具。随着项目的增大&#xff0c;重复的逻辑可能会出现在多个组件中&#xff0c;这时使用自定义 Hooks 就非常合适。它们帮助我们…...

ESP 32控制无刷电机2

import machine import time import socket import network from machine import I2C, Pin, ADC def start_ap(): """ 启动ESP32的AP模式 """ ap network.WLAN(network.AP_IF) ap.active(True) ssid ESP32_APTest …...

揭开人工智能中 Tokens 的神秘面纱

揭开人工智能中 Tokens 的神秘面纱 在人工智能&#xff0c;尤其是自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;"tokens" 是一个频繁出现且至关重要的概念。对于理解语言模型如何处理和理解人类语言&#xff0c;tokens 起着基础性的作用。那么&#xff…...

萌新学 Python 之 random 函数

random 模块&#xff1a;主要用来生成随机数 先导入包&#xff1a;import random randint(a, b)&#xff0c;生成 [a, b] 之间的整数&#xff0c;包含边界 a 和 b&#xff0c;a 和 b 为整数 random()&#xff0c;生成的是 [0,1) 之间的浮点数&#xff0c;包含 0 不包含 1 r…...

2-2linux系统IO

文章目录 linux系统文件io1 open /close1.1 open1.2 close1.3 示例1.3.1 打开已经存在的文件 2 read/write2.1 read2.2 write使用 遗留问题&#xff1a;新创建的文件权限很奇怪3 lseek3.1 文件指针的移动3.2 文件拓展 perror函数 linux系统文件io 系统函数是系统专有的函数&am…...

周边游平台设计与实现(代码+数据库+LW)

摘 要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff0c;对旅游信息管理的提升&#xff0c…...

视频批量分段工具

参考原文&#xff1a;视频批量分段工具 选择视频文件 当您启动这款视频批量分段工具程序后&#xff0c;有两种便捷的方式来选择要处理的视频文件。其一&#xff0c;您可以点击程序界面中的 “文件” 菜单&#xff0c;在下拉选项里找到 “选择视频文件” 按钮并点击&#xff1b…...

Android -- 使用Sharepreference保存List储存失败,原因是包含Bitmap,drawable等类型数据

1.报错信息如下&#xff1a; class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations 2.Bean类属性如下&#xff1a; data class AppInfoBean( val appName: String?, val appIcon: Drawable, val appPackage: String?,…...

java项目之基于ssm的图书馆书库管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的图书馆书库管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 该系统可以实现图书信息管理…...

编写一个程序,输入一个数字并输出其阶乘(Python版)

编写一个程序&#xff0c;输入一个数字并输出其阶乘 要计算一个数字的阶乘&#xff0c;可以编写一个简单的 Python 程序&#xff0c;使用循环或者递归来实现: 1. 使用 for 循环计算阶乘 # 输入一个数字 num int(input("请输入一个数字: "))# 初始化阶乘结果 facto…...

dify基础之prompts

摘要&#xff1a;在大型语言模型&#xff08;LLM&#xff09;应用中&#xff0c;Prompt&#xff08;提示词&#xff09;是连接用户意图与模型输出的核心工具。本文从概念、组成、设计原则到实践案例&#xff0c;系统讲解如何通过Prompt解锁LLM的潜能&#xff0c;提升生成内容的…...

实践教程:使用DeepSeek实现PDF转Word的高效方案

&#x1f388;Deepseek推荐工具 PDF文件因其跨平台、格式稳定的特性被广泛使用&#xff0c;但在内容编辑场景中&#xff0c;用户常需将PDF转换为可编辑的Word文档。传统的付费工具&#xff08;如Adobe Acrobat&#xff09;或在线转换平台存在成本高、隐私风险等问题。本文将使…...

网络安全审计员

在当今数字化时代&#xff0c;随着信息技术的迅猛发展&#xff0c;网络安全问题日益凸显&#xff0c;成为各行各业不容忽视的重要议题。特别是对于企业、政府机构等组织而言&#xff0c;网络安全不仅关乎数据资产的安全&#xff0c;更与组织的声誉、客户信任乃至法律法规的遵从…...

算法-二叉树篇13-路径总和

路径总和 力扣题目链接 题目描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回…...

如何设计一个短链系统?

短链系统设计的关键要点: 系统功能实现 短链生成:接收长链接,先检查是否已有对应短链,存在则直接返回。否则,使用分布式 ID 生成器(如号段模式、SnowFlake 算法、数据库自增 ID、Redis 自增等)生成唯一 ID,或通过哈希算法(如 MurmurHash)处理长链接得到哈希值。再将生…...

医疗行业电脑终端如何防病毒——火绒企业版杀毒软件

医疗物联网技术广泛应用&#xff0c;使得医院网络空间中增加了诸多新型终端设备。这些设备类型多样、型号各异&#xff0c;风险暴露面积大。火绒安全对医疗机构终端安全出现的问题、不足、需求等&#xff0c;提出整体解决方案。 医疗行业终端安全防护痛点 系统老旧 医院、区…...

云平台DeepSeek满血版:引领AI推理革新,开启智慧新时代

引言&#xff1a;人工智能的未来——云平台的卓越突破 在当今科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正深刻地改变着我们生活与工作方式的方方面面。作为AI领域的创新者与领航者&#xff0c;云平台始终走在技术前沿&#xff0c;凭借无穷的热情…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...