category
AI summary
tags
password
summary
date
icon
status
字数统计
type
slug
orgsrc
URL
就在上个月,苹果推出了 Apple Intelligence 加持之下的 Xcode 16 Beta 版,为开发者带来了两大 AI 辅助编程工具:
- Swift Assist
- Predictive Code Completion Model
其中 Swift Assist 是运行在云端的 Swift 编程语言专家大模型,除了 Swift 语法之外,也精通 Apple 各平台的所有 SDK,开发者可以通过自然语言对话形式生成完整 Swift 代码。不过目前该功能暂时无法使用,要到今年晚些时候才会正式推出。
而后者(Predictive Code Completion Model,后文简称 PCCM)则是基于 Apple 芯片和 macOS 15.0(Sequoia)的本地大语言模型,可以辅助开发者实现代码自动补全等基础 AI 功能:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F3c35714a-89c3-4d33-ad58-389eb4cfea25%2F8b3da2d4-5f08-4ea8-b629-af30ec7d0c05%2FUntitled.png?table=block&id=9889f782-0eaa-4213-91ae-77a56f16c7ed)
由于 macOS 限制 PCCM 在国行 Mac 电脑的使用,需要通过额外设置解除系统限制,具体操作方法请参考文末链接,但是目前可能存在未知风险,非专业人士或重要办公设备请勿轻易尝试。
借助 AI 辅助工具,我们在 visionOS 2.0 中开发了通过自定义手势(打个响指 🫰)实现沉浸场景切换的交互效果:
在这一案例的开发过程中,我们同时使用并对比了 Apple Intelligence 加持下的 PCCM 和其它AI 辅助编程工具(通过 Copilot for Xcode 插件,使用 Codeium 在线 API 实现代码智能补全,使用 Ollama + DeepSeekCoder 实现本地化自然语言代码生成功能)。
关于如何使用 Copilot for Xcode 插件实现 Xcode 辅助 AI 编程功能,可以参考下面这篇文章:
AI 辅助编码工具的功能,从简单到高级,可以大致分为以下几个等级:
- L0-代码建议 & 智能补全
- L1-自动扩写
- L2-上下文&意图理解
L0 代码建议 & 智能补全
最简单的代码建议 & 补全功能,基于用户当前正在输入的语句,提前预测并生成智能补全代码,这一功能其实更多是减少开发者敲入重复冗长语句的负担。本地化的 PCCM 在输入停顿后需要 1~3 秒的时间,会弹出
...
作为提示,Tab 键接受并输入 AI 推荐的补全。对于最简单的补全功能,1~3 秒的延迟对于大部分开发者来说都太慢了;除此之外,以下图为例,Codeium 补全建议甚至已经考虑了在其它文件中定义过的变量名
controlPan
,无论是从速度还是上下文理解上,都远超过 PCCM。![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F3c35714a-89c3-4d33-ad58-389eb4cfea25%2F9539cdbb-9986-47f1-acbe-2fc8ac263c3f%2FUntitled.png?table=block&id=9c8e1c3d-9221-4c99-bc4d-c5501dbec364)
L1 自动扩写
自动扩写功能是基于开发者当前要完成的功能模块,通过输入简单的注释或函数名称,推导出完整的过程代码。
下面这个例子演示了为
Color
增加一个生成随机颜色的扩展函数,同样是仅通过注释词作为引导,前后两次对比差距非常明显:L2 基于上下文意图理解
AI 辅助编程更高级别的功能,需要能够正确理解当前项目的所有代码、功能和上下文信息,基于开发者给出的需求描述,准确拆解实现步骤,并结合已有代码(变量、函数等),重构并实现完整功能的开发。能做到这一步,其实已经足够替代很大一部分开发者的工作了。
当然目前苹果的 PCCM 还不足以实现这一点,只能寄希望于后续推出的 Swift Assist。不过我们已经可以通过 CopilotForXcode 插件结合 OpenAI 等大语言模型实现,更进一步,通过 Ollama 项目可以实现部分简化大语言模型的本地化运行,效果如下:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F3c35714a-89c3-4d33-ad58-389eb4cfea25%2Fc52aefda-31fc-4dd3-a191-9c545d9a764f%2FUntitled.png?table=block&id=b3c065a3-285b-47c7-88c6-053e22f14167)
总结
总结来说,目前苹果预测代码补全模型功能不尽如人意,和其它 AI 辅助工具对比更是毫无优势;至于今年晚些时候将会推出的 Swift Assist 是否能够做到更好(仍然可能对国行设备锁区),虽然相比于其它 LLM 的最大优势是拥有所有 SDK 最新版本的准确知识基础,但从 Apple 开发者官方文档惜字如金的混乱情况来看,可能也并不乐观。
除非,Apple 邀请请 Swift 本人作为 Assist 声音原型~
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F3c35714a-89c3-4d33-ad58-389eb4cfea25%2Ffe7a7236-a74a-43ed-98a5-3995e0b16fe5%2FUntitled.png?table=block&id=0ba1c717-2295-49b5-83c7-50464654a12c)
参考
‣
‣