勤学苦练"prompts",如沐春风"CodeArts Snap"【玩转华为云CodeArts Snap】

举报
叶一一 发表于 2023/06/28 13:00:19 2023/06/28
【摘要】 本文分享关于Prompt对CodeArts Snap生成代码的影响的探索。Prompt的准确性,对输出结果的影响起到关键性的作用。正确使用 Prompt,可以让 CodeArts Snap 更懂我想要的结果。接下来让我对 Prompt 进行一番苦练,从而拥有一个如春风般的"CodeArts Snap"。

前言

华为云的 CodeArts Snap 上手一段时间了,对编程很有帮助。但是,感觉代码编写的不尽人意。

我因此也感到困惑,想要一份完整的 CodeArts Snap 手册看看。

就在我感觉仿佛"独自彷徨在这条悠长、悠长又寂寥的雨巷"时,我听了大佬们关于"AI大模型"的技术分享,瞬间醍醐灌顶。

Prompt(AI指令)的准确性,对输出结果的影响起到关键性的作用。

一直以来,我对如何描写准确有效的指令缺少思考。

正确使用 Prompt,可以让 CodeArts Snap 更懂你想要的结果。所以对 Prompt 的摸索必不可少。

接下来,让我来对 Prompt 苦练一番,从而拥有一个如春风般的"CodeArts Snap"。

Prompt 百炼成钢

Prompt 是什么?

想要清晰有效的 Prompt,首先来了解一下它是什么,才能更好的掌握它的使用方法。

Prompt 即 AI 模型的提示词。它的主要作用是给 AI 模型提示输入信息的上下文和输入模型的参数信息。

清晰有效的 Prompt 可以帮助 AI 模型更好地理解开发者的意图,给出准确的响应。

如何编写有效 Prompt

一个有效的 Prompt 编写有几点要素:

  • 任务概括,任务目标的概括。
  • 输入数据,与任务结果相关的数据。
  • 输出结果,期望任务输出的最终结果。
  • 其他约束或特殊要求,任务输出结果时,需要满足的其他要求。

以上要素,任务输出是必须的,其他则是非必须的。通常一个有效的 Prompt 包含其中几点。

练习1.0:三角形面积计算

我们先从简单的功能开始练习,一个三角形面积计算的功能来"开开胃"。

输入 Prompt

函数的 Prompt有几个关键点:函数描述,函数入参,函数输出。

所以,关键点的描述准确了,功能也就八九不离十了:

  • 函数描述:计算给定底边和高度的三角形的面积;
  • 函数入参:[23, 35]
  • 函数输出:请写出完整的功能内容并输出结果,不要输出任何其他信息。
"""
Calculates the area of a triangle given its base and height. args:[23, 35],Please write the complete function content and output the results, and do not output any other information。
:return:
"""

生成代码

在注释下方进行"回车"操作,CodeArts Snap 可以自动生成代码:

def area(base, height):
    return base * height / 2

print(area(23, 35))

>>> 402.5

这个代码结果很符合预期。

练习2.0:又见贪心算法

之前体验 CodeArts Snap 的时候,然它实现过一个贪心算法。但是现在回看之前写的 Prompt,并不够清晰有效。

我来按照上面提到的 Prompt 要素,重新写一个。

输入 Prompt

"""
任务介绍:请实现一个算法,目的求出有固定承载量的轮船最多可装载多少个货物;
任务入参:轮船的承载量为max_w,货物重量列表w_list;
任务内容:现在从重量最小的货物开始装货,已经装入的货物的总重量sum_w,已经装入的数量sum_count,当sum_w大于max_w时,就不用装入货物。求出最多能装入货品的数量sum_count;
请写出完整的内容并输出结果,不要输出任何其他信息。
:return:
"""

生成代码

在注释下方进行"回车"操作,CodeArts Snap 可以自动生成代码:

def max_w_count(w_list, max_w):
    sum_w = 0
    sum_count = 0
    for i in w_list:
        if sum_w + i <= max_w:
            sum_w += i
            sum_count += 1
    return sum_count
w_list = [4, 10, 7, 11, 3, 5, 14, 2]
print(max_w_count(w_list, 30))

>>> 5

总结

有了清晰有效的 Prompt 的加持,CodeArts Snap 助我成为“10倍”开发者未来可期。

CodeArts Snap 不愧是:

最佳智能学习伴读,提供沉浸式学习体验,助力充满能量的开发者。

接期待与 CodeArts Snap 一起创作更多可能。


作者:非职业「传道授业解惑」的开发者叶一一
简介:「趣学前端」、「CSS畅想」系列作者,华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。


我正在参加【有奖征文 第23期】华为云CodeArts Snap是否能助你成为“10倍”开发者?
https://bbs.huaweicloud.com/blogs/399704

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。