BING AI:“与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 保持心态

 🎻与Chat AI沟通绘画的提词

 🔯P1 故事起源

 🔯P2 第一轮提词

 🔯P3 第二轮提词

 🔯P3 第三轮提词

 ⌨️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++]中实现一个[二叉树数据结构],需要一些关于[节点和遍历方法]的指导。"

个人经验:以上提词可能还有可改进的部分,例如——

  • 将“我需要在[Python]语言”改为“假设你是一个专业的[Python]工程师”,限制AI在数据库中的检索范围;
  • 如果与联网AI沟通,且写复杂代码的话,尽量改为英语提词,因为爬取的引擎会有差别~

 🔯P2 沟通思路

基础步骤:针对代码限制较多、功能较复杂的情况,在提供上述必要的信息后,最好可以:

  • 和AI提前沟通一下代码的算法与思路
  • 提供示例代码供个人与AI训练与学习。

这样可以帮助AI更好地理解你的需求,并生成更合适的代码。

备注:对于AI而言,代码比自然语言更容易理解。若有条件,此处提供功能相似的代码供AI更好地理解逻辑即可,代码语言与功能不必与需求完全一致~ 

错误示例:

  • 不相关或错误的信息,例如“随便”、“不知道”、“无所谓”等;
  • 提供过多或过少的信息,例如“我想要一个类似于微信的聊天软件”、“我想要一个函数”等。

正确示例:

  • "我正在使用[Python语言]。函数的输入是[两个整数],输出是[它们的和]。这是一个示例函数:

    def add_numbers(a, b):
     sum = a + b
     return 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 生成流畅的代码可能是一个耗时的过程, 请保持耐心,不要气馁。需要不断尝试,最终会找到正确的方法。

但也请注意不要长时间专注于同一段代码的生成与测试,科学研究表明,适当休息可以有效提高大脑的灵感与效率~


 🎻与Chat AI沟通绘画的提词

 🔯P1 故事起源

最近在写高数的博文,大概在这个系列🌸高数笔记01:函数、极限、连续

我正在写第2章导数的内容,希望生成一幅博文封面,于是向一言君求助~

 🔯P2 第一轮提词

提词:一言君,请为我生成动漫画作:微积分 中值定理 少女#创意图#

回复:一言君生成了一副精美画作,但这显然和微积分没有任何关系:

当然我这里也省去了一些没有用的沟通结果,例如,将插画风格改为赛璐璐风格~

这幅画作是不是很可爱呢?是的,但是背景依然没有微积分——

 🔯P3 第二轮提词

提词:好看哎,但是除了上面的需求,还要背景是微积分的几何定义~

回复:

失败尝试1:这副画作其实已经满足要求了,但是嗯,我总觉得差一点意思,准确地说我觉得这幅插画不好看。当然,在这一轮中我也做了其它尝试,例如更改提词——

 失败尝试2:好几次都没有明确的微积分图形,难道是因为萌妹影响了它生成微积分的速度?

 🔯P3 第三轮提词

提词:经过半个小时的反复折腾,我也看了不少美女图,但终究是厌倦了:图很好看、萌妹很好看,但是微积分呢?此时我开始询问一言君:这个画作和要求:微积分,好像没有太大关系~

回复:一言君的回复这个时候就很机智,开始询问我到底哪里没有满足要求,甚至嫌弃我的提词太菜自己生成了很细节的画作描述~

一言君提词: 

在这幅画作中,我们可以看到一个赛璐璐插画风格的少女形象,她正站在一个几何空间的前面,这个空间由一些微积分的符号和公式构成。少女的形象被表现为具有一些微积分的特点,例如她的头发变成了一些曲线的形状,象征着微积分中的曲线。她的服装上也绘制了一些微积分的符号和公式,与背景中的几何图形相呼应。

背景中是一个微积分的几何空间,包含了一些基本的几何图形,如点、线、面等。这些几何图形被巧妙地组合在一起,形成了一个微积分的几何概念。

整个画面的色调和风格都与微积分的主题相呼应,营造出一种科幻感,同时也展示了一些微积分的几何概念和公式。

 结果:我其实还是蛮好奇这么长的提词它能不能接受~但事实上,人家用自己的提词画的图比我的简陋提词效果真的好太多了,好看而且艺术气息超级浓厚有没有!我真的超级喜欢最后的画作! 

 

 


图源: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编程水平越来越好[就是那种可以帮我写代码又不会抢我饭碗的好🃏🃏]~~

Logo

分享最新、最前沿的AI大模型技术,吸纳国内前几批AI大模型开发者

更多推荐