aardio 文档

AI 编程指南

如果用 aardio 调用 AI 遇到问题,那么请先回答:

如果不限制软件体积大小,没有种种要求限制,用相同的提示词,任选一个编程语言,能否用 AI 完成相同的任务?

如果能做到,那么问题已经解决了,体积大一些也是值得的,两全其美的事换 aardio 也是做不到的。

但如果答案是『也不行,就算不要求体积小也做不到』,那么可以继续向下阅读,一起学习一些简单的技巧。

工具再好也是别人的,技巧与知识才是属于自己的。

AI 工具

如果希望不用 aardio 写 aardio 程序,那么请先回答:

暂不考虑皮肤是否更华丽和好看,请任选一个 aardio 之外的编辑器,任选一个除 aardio 之外的编程语言,能否替代 aardio 更省时省力地开发『图形化桌面软件』?

如果答案是『能』,那么问题已经解决了!如果答案是不能,甚至可能是很痛苦,那么我想你已经有答案了。

使用 aardio 开发环境内置的 AI 助手,并使用 aardio 官方针对 aardio 优化的 AI 接口,可显著提升用 AI 编写 aardio 代码的质量与效率。

注意:aardio 官方 AI 接口,带有 aardio 前缀的模型 ID 会接入 aardio 知识库( 忽略联网搜索选项 ),带有 :online 后缀的模型 ID 自带联网搜索功能。

去掉幻觉

这里的去掉幻觉不是指去掉 AI 的幻觉,而是使用 AI 时我们自己应当去掉不切实际的幻想。

AI 写 Python 和前端确实不错,除了更多的用量与训练数据以外,人家 Python 是亲生的,前端先天就适合模板式生成。当然这个不错和很好也只是相对的,稍复杂一点、需要特殊定制的程序单靠 AI 完成也会很困难。

对其他编程语言的 AI 支持不要有过高的预期,尤其是原本就极端复杂的桌面开发环境。

能对 AI 的支持做到 aardio 这个程度的其实并不多见。aardio 可能是唯一从语言、标准库、开发环境到文档、范例都针对 AI 主动进行大量优化的编程语言。aardio 的全部文档都针对 AI 重写过一遍。而且 aardio 编写的程序上下文极短、代码量极少,这都是先天对 AI 友好的。

通过 aardio 专用的 AI 接口,AI 也可以掌握完整的、最新的 aardio 知识。

aardio 会继续努力优化 AI 编程体验。但如果只是片面强调工具的因素,而忽视了提升自己使用 AI 的技巧,这是非常可惜的。

工具再好也是别人的,技巧与知识才是属于自己的。

代码注释更加重要

写代码注释的同时也是在写 AI 提示词。

良好的注释可以:

提示词并不总是越多越好。

与 AI 交流时,应避免冗长、模糊的描述,而是使用简洁、明确的指令。

凌乱、带有歧义、思路不清晰的提示词会误导 AI 的方向,并降低回复质量。

提示词中对提升 AI 生成内容没有帮助的内容应当移除。

将复杂的问题分解成简单的小问题,分步完成,不要试图一步到位

新手常见的一个错误就是写一大堆要求给 AI 然后直接等答案。

其实很多时候,这一大堆要求中的一句都可能要上千句代码才能实现,很多时候新手低估了编程的复杂度。

我们完全没有必要这么做,可以将问题分解为多个小问题,逐步解决。
这样反而可能节省时间,AI 需要处理的问题也更为集中和明确,生成的内容质量也就会更好。

AI 只是一个程序,资源总是有限的。

无论是使用 AI 还是编程,都要有摸石头过河的心态,有耐心地逐步探索前进。

缺乏耐心、急于求成,无论有没有 AI 的帮助都做不好编程这件事。

最近优先原则

对于【问 AI】聊天对话助手,最后一次发送的消息最重要。

对于 F1 键代码补全助手,前置代码中临近输入光标的最后一行注释最为重要。

提供更多可以逼近最佳答案的关键词

我们在使用 AI 时常常会犯一个常见的错误:

AI 不再只是简单地使用关键词去查找知识 —— 让我们过度高估 AI 的智慧 ,并误以为关键词不再重要。
由此我们错失了一个廉价并且重要的技巧:通过提供更多更好的关键词让 AI 更加逼近正确的答案。

举例有一个这样的用户问题:

用浏览器打开网页时, 如何获取 HTTP 请求头 ?

对上面的提示词,AI 可能会给出完全不相关的答案。

我们尝试修改上面的问题,加入更多我们已知的关键词,给 AI 提供更多逼近问题的线索,并尝试更清晰地描述我们的问题并避免歧义:

aardio 如何实现用浏览器控件自动打开网页的同时用 CDP 抓取网页的请求头等信息,类似在浏览器里按 F12 可以监听到网络请求的 HTTP 请求头。

这时候 AI 给出了高质量的回复,并且直接生成了可运行的代码。

如果我们并不了解 CDP 协议这也没有关系,我们去掉 “用 CDP 抓取” 的提示词如下:

aardio 如何实现用浏览器控件自动打开网页的同时抓取网页的请求头等信息,类似在浏览器里按 F12 可以监听到网络请求的 HTTP 请求头。

AI 仍然给出了完美的答案,并且在回复中说明了应该使用 CDP 协议。所以我们并不是必须在提示词里包含什么提示词,但你至少应当尽可能地提供正确的关键词与线索。

在 aardio 中嵌入其他编程语言

aardio 支持大量第三方编程语言,在 aardio 编辑器中也可以调用 AI 编写其他编程语言的代码。

尤其是对于 AI 较擅长的前端代码( HTML / JS )、Python、Go 代码等,在 aardio 编辑器中用 AI 写起来都非常方便。但是我们需要注意通过注释或变量命名提示 AI 哪里是其他编程语言的代码。

aardio 调用 Python 示例:

import py3; 

//下面是需要执行的 Python 代码
var pyCode = /** 
def getList(a,b):  
    return [a,b,testData] # 返回列表
    #return a,b,testData # Python 多返回值实际是返回一个 tuple
**/

//执行 Python3 的代码
py3.exec( pyCode ) 

//从 py3.main 模块调用 Python 代码定义的函数 
var pyList = py3.main.getList(12,23);

在上面的 aardio 示例中,通过变量命名与注释明确了 pyCode 内存放的是待执行的 Python 代码,也说明了 aardio 代码与被调用 Python 函数的关系。这时候如果我们在 pyCode 内部按 F1 键,AI 就会改用 Python 语法写代码,并且会考虑与 aardio 的交互关系。

aardio 调用 AI 编写 Python 代码

再例如下面的 aardio 调用网页的示例:

import win.ui;
/*DSG{{*/
var winform = win.form(text="WebView2";right=966;bottom=622)
winform.add()
/*}}*/

import web.view;
var wb = web.view(winform);

wb.external = {
    log = function(str){ 
        winform.msgbox(str)
        return str;
    };
}

//下面是 HTML 代码
wb.html = /********

********/

winform.show();
win.loopMessage();

通过注释与 wb.html 这个意图明确的变量命名,让 AI 明确 wb.html 应当写 HTML 代码。

当我们在 wb.html 内按 F1 键时,AI 就会写出正确的 HTML 代码,并且会给出调用 aardio 函数 external.log 的 JavaScript 示例代码。

只要了解了上面的方法,在 aardio 里调用 AI 写其他编程语言的代码是非常方便的。

更好地投入才能更好地产出

一些新手在使用 AI 时只期望 AI 生成更好的内容,却不明白更好的产出源于更好更多地投入。

去跟 AI 理论“我只是一个小白,完全没有编程基础,你不应当要求我更好地描述需求和问题 …… 你应当生成更好的代码 …… 否则我要你干什么” 是不会有作用的。

任何时候,只有更好地投入才能有更好的产出。所以我们仍然要努力地学习更多的技术知识,更用心地编写提示词。

Markdown 格式