如何正确的给AI指令,让它写交易机器人

外汇扒衣姐 2024-08-08 14:13:47
原来,摔断胳膊也是一件幸事......

这是为何?

事情是这样的,几个月前,工程师巴克斯特骑车上班的路上,意外摔断右手,打上了石膏。

为了生计,他不得已用左手打字。

即便如此,巴克斯特依旧在办公室里,一周狂肝了3000行代码。

为AI编码点赞

谁也不曾想,这背后竟是AI立了大功。

「被迫」用AI写代码后,巴克斯特很快就弄清楚了,什么样提示(问题)会生成有效代码,什么会是无效。

有时候,AI编写的代码会非常神奇,但有时候,就连作者本人恨不得把电脑扔出窗外。

他不得不在IDE和AI之间频繁地复制粘贴,并手动拼接被AI输出长度限制截断的代码片段。

甚至,有几次他对AI「提高了嗓门」,只因AI「忘记了」巴克斯特之前的指令(问题)。

要具体,并举例说明:

如果你只给出一个基本请求(不做描述的问题),AI可能会给出一个中规中矩的通用答案,可能并不适用于你的特定代码库。

这时,就需要给出「非常明确的指令(问题)」,来获得更优的结果。

巴克斯特发现,将指令(问题)放在输入的开头和结尾效果最好,可以确保AI不会「遗忘」重要的上下文。

最好是,能够提供代码库示例,供AI参考。特别是,在编写单元测试、处理样板代码时,AI表现特别好。

通过示例,AI还可以学习如何使用代码库中的内部工具函数。

让AI掌舵
「如果你能够给AI正确的基础构建模块,它往往可以一次性完成整个任务」。

令人惊讶的是,这与常见的建议完全相反,即一次只向AI提出一个问题。

尤其是,在巴克斯特不熟悉的领域,AI往往在任务分解方面表现得尤为出色。

渐渐地,巴克斯特开始建立起一种非常好的直觉,AI能正确处理哪些事情,以及哪些事情仍需要人类做。

了解这种区别,让他在两个方向上都避免了很多挫败感。

他学会了哪些地方可以进行简化处理:

- 「我正在使用一个名为pygame的Python库……」 简化为 「在pygame中……」

- 「当我运行你的代码时,我收到了这个错误信息……你认为我现在应该怎么做」 简化为直接复制堆栈追踪(stack trace)。

他甚至还学会了,转换或重构大块代码可以带来显著效果。例如,在每一行之间添加计时器(timing instrumentation)。

另一方面,巴克斯特学到如果一个AI在两次尝试中,无法修复一个错误,那么它永远也不能修复。这时就需要自己动手了。

他还对AI可能会犯的错误,有了很好的直觉。

有一次,AI给了一段代码,它循环遍历motor1, motor2, motor2, motor4,遗漏了motor3。

作者的朋友注意到这一点,并说 「这一定是幻觉」!但巴克斯特能感觉到,「AI绝不会犯这种错误」。

果然,当他们检查输入时,发现这个错误确实存在于最初放入AI的原始代码中。
未来会怎样?

巴克斯特将AI编程划分为三个阶段:

过去1-2年,AI在软件工程中的最大用途是,在IDE中使用AI自动补代码,或是通过AI查询代码知识(以往需要去StackOverflow寻找答案)。以及,通过一些AI智能体,在没有人类监督情况下辅助编程,执行多个步骤,但这些并不实用。

今年,这三个领域都在发生变革。诸如Zed、Cursor和各种VSCode扩展这样的IDE,深入地整合了大模型,拥有更完美的上下文,还能处理更大块的代码生成。

未来1-3年,会出现真正的「AI程序员」。也就是说,这三个领域可能会融合成一个产品——「AI程序员」,一个可以在自主模式和同步模式之间连续工作的系统:

1. 自主模式适用于范围明确的任务

AI将完全独立工作,具备编写和运行代码、使用外部工具、搜索网络信息、访问内部文档以及从过去错误中学习的能力。它会不断迭代任务,直到完成或遇到瓶颈。这将占据80%的工作量。

2. 配对编程模式适用于最难的任务

人类将在高层次上指导AI,而AI负责处理低层次的实现细节。互动将是高度多模态的,人类和AI将在文本描述、视觉图表、口头讨论和直接操作彼此代码之间无缝切换。你可能会共享屏幕,让AI跟随并给出建议和意见,或者AI共享它的屏幕,而你在它操作时给予指导。

最近,我向 「海投AI- python专家」 提问:“使用 python3 完成一份 MACD 技术指标的交易代码。”它会帮助我完成代码的基础部分,并根据我们的具体需求,进一步的优化代码。详情:5分钟用AI写出1000%收益率的交易策略


声明:本文内容不代表斑马投诉网站观点,内容仅供参考,不构成投资建议。投资有风险,选择需谨慎! 如涉及内容、版权等问题,请联系我们,我们会在第一时间作出调整!

    相关文章