背景
之前一直在用豆包等模型编写一些常用的小工具来协助处理一些重复的操作,确实能提供很大的帮助,但是仍需要自己准备环境、运行代码,效率不高。
字节跳动推出 trae后,第一时间试用了一下,并且 让trae开发一个简易的神经网络程序。全程没有写一行代码,trae自动生成代码,自动根据运行结果Debug代码,可以说非常的方便易用。不禁又要给AI点一个大赞。
Trae 简介
近日, 字节跳动发布AI编程工具Trae – 中国首个AI原生IDE!可以深度理解中文, 支持一句话开发各种应用。
AI 编程工具 Trae 是字节跳动发布的国内首个 AI 原生集成开发环境。搭载 doubao-1.5-pro,支持切换 DeepSeek R1&V3。有 Chat 和 Builder 模式,能代码补全、修复 Bug、理解代码仓库,以人机协同理念,助开发者高效编程,降低开发门槛。
Trae 特点
操作便捷性
- 安装与登录:下载对应系统安装包后可按提示完成安装,首次启动能选择中文界面,还支持从 VSCode 或 Cursor 迁移配置。登录方式有手机号和稀土掘金账号两种,十分方便。
- 模式切换:主要有 Chat 和 Builder 两种模式。Chat 模式适合已有代码,需要优化或修复 bug 的场景。Builder 模式则可通过自然语言描述,从零生成完整项目,自动创建文件、安装依赖、运行命令,对编程小白极为友好。
功能实用性
- 代码生成能力:能快速根据自然语言需求生成代码。如输入 “做一个带用户登录功能的论坛”,可短时间内生成包含前端页面、数据库连接等基础代码框架。在打造智能学习助手的实战中,输入需求后,不到 5 分钟就能生成完整的应用代码。
- 智能补全与纠错:具有智能补全功能,可根据上下文实时预测代码,支持跨文件补全。Builder 模式还能自我纠错,通过监控控制台感知包导入失败、代码语法错误等问题并自行优化。
- 多模态交互:支持上传图片生成代码,如上传天气应用设计图,可生成响应式 HTML/CSS 代码。
- 终端集成:AI 可自动生成并执行命令,如 npm install,还支持错误诊断。
- 上下文引用:在对话中能通过 #代码、# 文件标签引用代码块、文件或整个项目,提升解答精准度。
模型性能
- 速度与流畅度:以 DeepSeek 模型为例,在 Trae 中运行的性能优化较好,相比直接使用 DeepSeek 官网,速度更快,使用过程更流畅。
- 生成质量:搭载 doubao-1.5-pro 和 DeepSeek R1&V3,能满足大多数日常编程需求。但与海外版的 Claude 3.7 等模型相比,在复杂代码生成和 UI 设计方面还有提升空间。
trae安装
基于intel cpu + 集成显卡 + win11 OS进行试用验证。
下载安装
注意一定要下载CN版本,否则无法登陆,也就不无法使用集成的AI功能 。
进入官网 :Trae - AI 原生 IDE
windows平台安装文件下载链接如下:
https://lf-cdn.trae.com.cn/obj/trae-com-cn/pkg/app/releases/stable/1.0.8053/win32/Trae%20CN-Setup-x64.exe
运行
打开之后 ,可以通过聊天 模式输入自然 语言描述 的编码需求,响应很快。
目前支持三种chat模型
两种工作模式
chat模式根据用户需求输出代码,但是仍需要自己搭建运行环境。builder模式下,会通过交互方式要求用户选择工程保存目录 ,并生成依赖文件,用户可以随时对ai给出的建议进行修订。
基于trae开发一个简易神经网络
提出需求
写一段代码,实现一个简易的神经网络,并对其进行模拟训练
自动调试
AI根据 需求生成依赖、源码后,提示运行进行修订,之后 生成运行命令。用户只点击运行后可以开始调试代码。
代码调试出错后,AI自动修订代码,再次请求运行运行代码进行测试验证。
自动debug了三次之后 ,程序可以正常运行,结果如下:
AI调试过程
-
第一次: 发现数据预处理阶段维度不匹配问题,需要修正数据集拆分方式
raise ValueError( ValueError: Found input variables with inconsistent numbers of samples: [2, 1]
-
第二次: 需要修正训练和预测时的数据维度问题,确保输入输出形状匹配。
aceback (most recent call last): File "D:\test\WUgTech\code\traeAI\neural_network.py", line 85, in <module> plt.scatter(X_test[0], X_test[1], c=y_test.squeeze(), edgecolors='k') File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\pyplot.py", line 3903, in scatter __ret = gca().scatter( ^^^^^^^^^^^^^^ File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\__init__.py", line 1473, in inner return func( ^^^^^ File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\axes\_axes.py", line 4805, in scatter self._parse_scatter_color_args( File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\axes\_axes.py", line 4624, in _parse_scatter_color_args raise invalid_shape_exception(c.size, xsize) from err ValueError: 'c' argument has 200 elements, which is inconsistent with 'x' and 'y' with size 2.
-
第三次: 修复可视化部分的数据维度不匹配问题,确保散点图参数维度一致。
-
第三次修改代码后,程序运行成功。
-
运行记录
(base) PS D:\test\WUgTech\code\traeAI> python neural_network.py
traeback (most recent call last):
File "D:\test\WUgTech\code\traeAI\neural_network.py", line 58, in <module>
X_train, X_test, y_train, y_test = train_test_split(X.T, y.reshape(1,-1), test_size=0.2)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\sklearn\utils\_param_validation.py", line 213, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\sklearn\model_selection\_split.py", line 2777, ^^^^^^^^^^^^^^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\sklearn\utils\validation.py", line 514, in indexable
check_consistent_length(*result)
File "D:\AppGallery\Anaconda3\Lib\site-packages\sklearn\utils\validation.py", line 457, in check_consistent_length
raise ValueError(
ValueError: Found input variables with inconsistent numbers of samples: [2, 1]
(base) PS D:\test\WUgTech\code\traeAI> python neural_network.py
Epoch 0, Loss: 0.2960
Epoch 1000, Loss: 0.0000
Epoch 2000, Loss: 0.0000
Epoch 3000, Loss: 0.0000
Epoch 4000, Loss: 0.0000
Epoch 5000, Loss: 0.0000
Epoch 6000, Loss: 0.0000
Epoch 7000, Loss: 0.0000
Epoch 8000, Loss: 0.0000
Epoch 9000, Loss: 0.0000
Test Accuracy: 100.00%
traeback (most recent call last):
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\axes\_axes.py", line 4618, in _parse_scatter_color_args
colors = mcolors.to_rgba_array(c)
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\colors.py", line 512, in to_rgba_array
rgba = np.array([to_rgba(cc) for cc in c])
^^^^^^^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\colors.py", line 314, in to_rgba
rgba = _to_rgba_no_colorcycle(c, alpha)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\colors.py", line 398, in _to_rgba_no_colorcycle
raise ValueError(f"Invalid RGBA argument: {orig_c!r}")
ValueError: Invalid RGBA argument: 0.0
The above exception was the direct cause of the following exception:
traeback (most recent call last):
File "D:\test\WUgTech\code\traeAI\neural_network.py", line 85, in <module>
plt.scatter(X_test[0], X_test[1], c=y_test.squeeze(), edgecolors='k')
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\pyplot.py", line 3903, in scatter
__ret = gca().scatter(
^^^^^^^^^^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\__init__.py", line 1473, in inner
return func(
^^^^^
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\axes\_axes.py", line 4805, in scatter
self._parse_scatter_color_args(
File "D:\AppGallery\Anaconda3\Lib\site-packages\matplotlib\axes\_axes.py", line 4624, in _parse_scatter_color_args
raise invalid_shape_exception(c.size, xsize) from err
ValueError: 'c' argument has 200 elements, which is inconsistent with 'x' and 'y' with size 2.
(base) PS D:\test\WUgTech\code\traeAI> python neural_network.py
Epoch 0, Loss: 0.1841
Epoch 1000, Loss: 0.0000
Epoch 2000, Loss: 0.0000
Epoch 3000, Loss: 0.0000
Epoch 4000, Loss: 0.0000
Epoch 5000, Loss: 0.0000
Epoch 6000, Loss: 0.0000
Epoch 7000, Loss: 0.0000
Epoch 8000, Loss: 0.0000
Epoch 9000, Loss: 0.0000
Test Accuracy: 100.00%