BING AI:“与AI交流应该像与人交流一样,尊重对方的感受和权力。”
图源:文心一言 | 提词:少女机器人 漫画风格
作为小白,在使用AI生成代码的时候,耗过不少时间,栽过不少跟头,因此总结记录,留以自用。不指望能生成可跑的代码,只希望不要总是在同一个错误里鬼打墙就好了~😢😢
这份总结被AI老师们审核过,他们都认为写得不错哦,也补充了修改意见:例如,正确示例是ChatGPT、Bard生成的、错误示例是BING AI补充的,BING AI甚至非常贴心地补充了摘要,如下——
AI是一种强大而智能的工具,可以帮助我们解决各种问题,包括编写代码。但是,要想让AI理解我们的需求并生成满意的代码,我们需要与AI进行有效的沟通和协作。本文将介绍如何与AI进行有效沟通和协作的基本步骤和注意事项。
特别感谢:BING、文心一言、ChatGPT、Bard~
📇目录
📇目录
🎻与Chat AI沟通代码的提词
🔯P1 描述问题
🔯P2 沟通思路
🔯P3 运行测试
🔯P4 反馈交流
🔯P5 调整模型
🔯P6 保持心态
⌨️AI代码平台简介
🔯基于 AI 和 ChatGPT 的工具来辅助你自动写代码
🧩GitHub Copilot
🧩Codeium
🧩Safurai
🧩CodeWhisper
🔯集成了 ChatGPT 的在线平台或插件来与 AI 进行交互式编程
🧩InsCode AI
🧩Google Colab Copilot (naklecha.com)
🧩Source Code Audit - Hacker AI : AI for code review (hacker-ai.ai)
🧩Home | Programming Helper (programming-helper.com)
🔯基于 AI 的搜索引擎或文档系统提供详细的代码方案和步骤
🧩phind.com
🧩Buildt
🔚结语
🎻与Chat AI沟通代码的提词
🔯P1 描述问题
基础步骤:向AI阐述现有条件与要求,可以参考以下条件:
- 目标/功能:你想要实现什么样的功能或效果?
- 限制条件:你需要遵循什么样的规则或约束?
- 上下文代码:你已经编写了什么样的代码或框架?
- 语言:你使用什么样的编程语言?
- 输入、输出、变量:你需要处理什么样的数据或参数?
向AI阐述现有条件与要求可以帮助AI理解你的问题,并减少AI生成难度和错误。
错误示例:
- 模糊或歧义的词汇,例如“好看”、“快速”、“高级”等;
- 过于宽泛或复杂的问题,例如“如何编写一个游戏”、“如何实现一个人工智能”等。这样可以减少 AI 的生成难度和错误。
正确示例:
"我有一个问题需要解决,我想编写一个函数来[计算两个数的和并返回结果]。你能帮助我吗?"
"我的目标是编写一个算法,能够判断[一个字符串是否是回文]。我需要一个思路来验证算法的正确性。"
"我需要在[Python]语言中实现一个[冒泡排序算法],你能给我一些关于[冒泡排序]的思路吗?"
"我想在[C++]中实现一个[二叉树数据结构],需要一些关于[节点和遍历方法]的指导。"
🔯P2 沟通思路
基础步骤:针对代码限制较多、功能较复杂的情况,在提供上述必要的信息后,最好可以:
- 和AI提前沟通一下代码的算法与思路;
- 提供示例代码供个人与AI训练与学习。
这样可以帮助AI更好地理解你的需求,并生成更合适的代码。
备注:对于AI而言,代码比自然语言更容易理解。若有条件,此处提供功能相似的代码供AI更好地理解逻辑即可,代码语言与功能不必与需求完全一致~
错误示例:
- 不相关或错误的信息,例如“随便”、“不知道”、“无所谓”等;
- 提供过多或过少的信息,例如“我想要一个类似于微信的聊天软件”、“我想要一个函数”等。
正确示例:
"我正在使用[Python语言]。函数的输入是[两个整数],输出是[它们的和]。这是一个示例函数:
def add_numbers(a, b):sum = a + breturn sum
"我希望编写一个[JavaScript函数],用于[反转字符串]。这是一个示例函数:
function reverseString(str) {return str.split('').reverse().join(''); }
"我认为解决这个问题的最好方法是使用[递归函数]。"
"我认为可以通过[使用不同的循环]来改进[冒泡排序算法]。"
"我认为[反转字符串]的最佳方法是[使用堆栈]。"
个人经验:
复杂的代码,构建思路最好可以与AI达成共识,尤其是AI对于某些概念名词会有混淆,需要人为提醒与商榷。
- 每当AI老师接受一个它可以理解的提议,它通常会回复:“你的想法是正确的”,“确实,这样可以提高代码的效率”这样明显肯定的话语~
- 每当AI老师接受一个它不能理解的提议,它通常会在输出代码前特别声明一种甩锅感满满的话语:“好的,这是按照你的要求生成的代码。”这时生成的代码功能,有可能是不满足实际要求的、或者并非较为优秀的解法~
此时在AI眼中的我be like👇
来源:《漫长的季节》
🔯P3 运行测试
基础步骤:运行测试,如果是较为简单的算法,且选择的AI能力又很强,或许执行到这一步就可以得到满意的结果。但有时稍微复杂的代码会导致各种离谱的错误~
1)若仅有编译错误,查看警告返回AI,以多数AI的能力,处理这种问题还是绰绰有余的;
2)若代码不满足功能,在关键步骤增加测试语句输出现有变量的结果,在这一步可以自己添加测试语句,也可以让AI添加测试语句;
3)测试与修改代码时,记得多做备份~
错误示例:
- 初期测试时直接使用过于简单或特殊的测试用例,例如“空字符串”、“负数”、“边界值”等;
但是在保证代码的基本功能可以实现后,尤其是商用代码中,边界条件与特殊用例需要测到~
正确示例:
"我的代码有一些[编译错误],我注意到有一些警告信息[此处输入警告信息]。你能帮我找出问题所在吗?"
"我尝试运行代码,但是结果[并不正确]。在执行关键步骤时,变量[sum]的值应该是[两个输入数字的和]。"
"我使用以下输入运行代码:[1、2、3、4、5]输出是正确的,但是使用以下输入运行代码:[‘hello’、‘world’]输出不正确。"
🔯P4 反馈交流
基础步骤:如果对于测试结果不满意,需要询问 AI 为什么选择这样的代码,或者提出你的疑问和建议,或者感谢 AI 的帮助等,这样可以增进你和 AI 的沟通和理解,并且也可以提高 AI 的性能和智能。
备注:很多AI老师表示,虽然严格意义上AI没有情绪,但是AI可以知道是什么是正面、负面甚至是攻击性语言,AI需要被理解~
错误示例:
- 使用粗鲁或挑衅的语气,例如“垃圾”、“无能”、“滚开”等。
- 过于简单或无效的反馈和交流,例如“好”、“不好”、“再见”等。
“大小姐”BING AI在审核博文内容
正确示例:
- "为什么你选择在这个位置使用[循环来遍历数组]?有没有其他更有效的方法?"
- "我看到代码中使用了一个[额外的变量],这是否是必要的?是否可以简化这个函数?"
- "我认为代码缺少一些[错误处理]。"
🔯P5 调整模型
如果代码中有多个问题,上述步骤有可能会循环往复地进行~
但有的时候单个AI会难以避免地重复犯错,可以尝试调整AI的温度控制代码生成生成的精度,备份并挑选出最满意的代码~
如果上述步骤重复修改与测试多次依然没有找到合理的答案,可以考虑换一个AI询问,一千个AI的眼中很可能有一千个不同的答案。
🔯P6 保持心态
人工智能不是魔杖,使用 AI 生成流畅的代码可能是一个耗时的过程, 请保持耐心,不要气馁。需要不断尝试,最终会找到正确的方法。
但也请注意不要长时间专注于同一段代码的生成与测试,科学研究表明,适当休息可以有效提高大脑的灵感与效率~
图源:BING AI | 提词:少女机器人 漫画风格
除了Chat AI,另外有一些集成自然语言AI的工具可供参考~
⌨️AI代码平台简介
🔯基于 AI 和 ChatGPT 的工具来辅助你自动写代码
主流IDE~
🧩GitHub Copilot
介绍👉程序员“摸鱼”神器,GitHub Copilot"凭本事"完全免费了!! - 知乎 (zhihu.com)
官网👉GitHub Copilot · Your AI pair programmer · GitHub
🧩Codeium
一款免费的智能编程助手,类似Github Copilot,目前Codeium提供超过40种语言的代码完成工具,具有闪电般的速度和最先进的建议质量。支持几乎所有主流编程语言和IDE,个人用户免费使用。
介绍👉Codeium:免费的人工智能代码加速 - 知乎 (zhihu.com)
官网👉Codeium · Free AI Code Completion & Chat
🧩Safurai
一款基于AI的IDE扩展,旨在协助开发人员进行编码,调试和重构。它充当虚拟助手,提供任何可能出现的问题的解决方案和建议,从而提高开发人员的工作流程和代码质量,使开发过程更加高效和流畅。
介绍👉Introduction - Safurai Docs
官网👉Safurai | Assistant for Developers - AI Coding Tool
🧩CodeWhisper
Amazon CodeWhisperer 是一种采用机器学习(ML)的服务,可以根据开发人员用自然语言编写的注释和集成式开发环境(IDE)中的代码生成代码建议,帮助开发人员提高工作效率,可以为您的应用程序提供代码审查、安全扫描和性能优化。
介绍👉Introduction - Safurai Docs
官网👉Safurai | Assistant for Developers - AI Coding Tool
🔯集成了 ChatGPT 的在线平台或插件来与 AI 进行交互式编程
这些平台或插件可以通过自然语言描述或语音输入来生成代码,并且还可以提供代码解释和注释。
🧩InsCode AI
CSDN InsCode社区开发者开发的IDE 接入了GPT功能,支持AI 辅助编程;最近也接入了stable diffusion,供各位炼丹师大展身手~
介绍👉InsCode AI,让编程更轻松,让你的代码如虎添翼! - 知乎 (zhihu.com)
官网👉InsCode - 让你的灵感立刻落地 - InsCode (csdn.net)
🧩Google Colab Copilot (naklecha.com)
🧩Source Code Audit - Hacker AI : AI for code review (hacker-ai.ai)
🌟搞安全的同伴们看到这里是不是两眼发亮~哎我感觉自己下一篇AI安全水文的题目有了有了!!{激动,开心}~
🧩Home | Programming Helper (programming-helper.com)
🔯基于 AI 的搜索引擎或文档系统提供详细的代码方案和步骤
功能类似于Chat AI,面向开发人员~
🧩phind.com
备注:这一款需要科学上网,不然就会显示:
At the moment, we feel that we aren't fully equipped to support Chinese users in the way they deserve.
🧩Buildt
Buildt 是一种AI编码工具,它能简化和加速软件开发过程,帮助开发人员快速搜索和理解大型代码库。Buildt 目前支持多种编程语言,包括 Python、Java 和 JavaScript,并在不断扩展其语言支持[免费]。
🔚结语
这篇文章是参考了个人的测试惨痛教训与AI老师们的建议完成,介绍了如何与AI进行有效沟通和协作的基本步骤和注意事项,包括:
- 描述问题:向AI阐述现有条件与要求;
- 沟通思路:和AI提前沟通一下代码的算法与思路;
- 运行测试:运行测试并查找错误;
- 反馈交流:与AI进行反馈交流并提高性能和智能;
- 调整模型:调整AI的温度控制代码生成生成的精度;
- 保持心态:保持积极的心态并适当休息。
希望本文能够帮助您更好地利用AI来编写代码,并享受与AI的合作过程。祝您编程愉快!
私心觉得,这个对话,在设计辅助代码型Chat AI时也许可以作为提问模板的灵感来源:AI在对话时其实可以将生成的代码存到侧边栏,注明反馈问题~
衷心希望国产AI编程水平越来越好[就是那种可以帮我写代码又不会抢我饭碗的好🃏🃏]~~