在 AI 时代,老式的编程习惯完全被颠覆。原来可能要一大堆插件或工具辛苦堆出来的程序,现在只要把 AI 调教好了就行。
aardio 支持调用十几种编程语言,这很适合发挥 AI 大模型的优势。对于 AI 来说,你就是让它 100 种编程语言左右手换着耍它也不会怯场。
在 aardio 新版中,我们按 F1 键可以调出 AI 编码助手,AI 不但可以写 aardio 代码,也可以写其他编程语言的代码。
实际上这个功能不仅仅可以用于 aardio,利用 ImTip 的超级热键,几句代码就可以写一个可以用于其他程序的 AI 续写与补全助手(参考 aardio 自带 AI 范例)。
下面现场演示令人惊讶的效果。
在 aardio 里调用 AI 自动写 Python 代码。
在 aardio 代码里需要写 Python 代码的位置,按下 F1 键,AI 麻利地生成了正确的 Python 代码:
AI 掌握了 aardio 如何与 Python 代码交互的技巧,自动生成了 aardio 需要的 Python 函数。完整的代码可以按 F5 键直接运行,完美无错。
在 aardio 里调用 AI 自动写网页前端代码
下面再演示一下在 aardio 里调用 AI 自动写前端代码。
aardio 通过自带 web.view 库可以调用系统自带的 WebView2 浏览器控件加载网页前端,开发简单,接口交互方便,在网页里可以直接调用本地代码写的函数,生成的程序体积也很小。
下面我找了一个 aardio 调用 web.view 用网页写界面的例子,我们直接把网页部分的代码全部清空。
然后按 F1 键调出 AI 编码助手,让我惊讶的是 AI 迅速生成了完美无误的网页界面代码,并编写了与 aardio 交互的 JavaScript 代码,生成的代码完美无误,可以直接运行。
要点
以上演示调用的是最近很火的 DeepSeek V3 。DeepSeek 扣费很少,。建议大家去申请一个 key , 充十块钱估计能用上一整年了。这种按量计费的方式更能完全释放 AI 的全部能力,对双方都公平。
那些不需要调用 API 直接就可以使用的聊天助手表面上看似乎省了事,实际上可能优化你的输入降智你的回复,有一定动手能力就不要去当这种韭菜了。
另外有条件的朋友也可以试试 Claude 3.5 Sonnet ,效果很好。
使用 AI 续写与补全代码时,清楚的注释语句有利于 AI 更好地生成代码。写注释语句实际上也等于是写 AI 提示词。
『 F1 编码助手 』与 『 工具 / 问 AI 』 共享配置,选择或切换配置对这两个工具都有效。
不同的 AI 助手配置里可以添加不同的系统提示词。例如程序主要使用的是 web.view 那么可以加个 web.view 指南。注意要添加对 AI 友好的 Markdown 格式( aardio 所有文档在本地都是 Markdown 格式,在线文档底部也都有 Markdown 文件链接 )。
大模型的 token 计数通常小于文件大小或字数,例如 web.view 入门指南有 18KB,但 token 数只有 4KB 左右。
aardio 范例里提供了一个 token 估算工具:
服务端基本都能缓存重复提交的提示词,命中缓存的输入扣费会少很多。
在聊天助手里,问完全不相关的问题最好先清除上下文以避免降低 AI 生成回复的质量,或者不必要地扣除费用。
调用大模型
有朋友问我这些 AI 功能是怎么实现的。
其实非常简单,aardio 里的 AI 工具全都是开源的。
首先,在 aardio 或者 ImTip 的超级热键里,我们写几句代码就可以创建一个热键,在超级热里里如下获取输入光标前后的文本作为 AI 的上下文:
import key.hotkey;
superHotkey = key.hotkey();
//加载超级热键配置
superHotkey.loadTable({
// 按 Ctrl+ I 触发热键
["Ctrl+I"] = function(){
thread.invoke(
function(winform){
import winex.editor;
//获取当前文本输入窗口光标插入点前后的文本。
var leftText,rightText = winex.editor.getText2(true);
}
)
};
})
至于在 aardio 埋在调用大模型的 API 接口那就更简单了,示例:
import console;
console.showLoading(" Thinking ");
//1. 创建机器人
//---------------------------------------------------------------------
import web.rest.aiChat;
var ai = web.rest.aiChat(
key = '\0\49\66\90\28\3\0\87\8\80\9\80\5\80\4\3\83\5\80\4\80\9\80\7\83\9\84\82\0\4\3\0\80\3\82\84\82';
url = "https://api.deepseek.com/v1";
model = "deepseek-chat";
temperature = 0.1;
maxTokens = 1024,
)
//2. 创建消息队列保存对话上下文。
var msg = web.rest.aiChat.message();
//添加用户提示词
msg.prompt( "test" );
//3. 调用 AI 聊天接口。
ai.messages(msg,console.writeText);