掘金 人工智能 04月01日 11:07
AI 嘴替,社交平台反杠机器人:第 2 篇-AI 助手
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文分享了使用 AI 工具 Cursor 和 Trae 辅助前端开发的实战经验。作者尝试利用这两个工具,基于 vue3 + uni-app 技术栈,构建一个 AI 嘴替应用的前端代码。在实践过程中,Cursor 遇到了模板生成问题,但最终成功生成了代码;Trae 在代码生成效率上表现出色,但在集成 vite 工具时遭遇失败。文章总结了实战经验,并强调了 AI 生成代码的差异性。

🤖 **Cursor 工具的使用体验:** 作者使用 DeepSeek 生成提示词,并利用 Cursor 生成 uni-app 的前端代码。尽管初期遇到模板生成问题,但在修复错误后,Cursor 最终成功生成了代码,实现了基本的对话功能。

🚀 **Trae 工具的优势与挑战:** Trae 在代码生成效率方面表现出色,但集成 vite 工具时遭遇失败。作者在 Trae 的代码中发现了启动页,后续 Trae 罢工,最终未能成功集成 vite。

💡 **AI 工具的局限性与优化:** AI 生成的代码可能存在错误,需要人工调试和修复。作者强调,AI 生成的代码结果可能因工具和环境而异,需要根据实际情况进行调整和优化。

🛠️ **实战总结与未来展望:** 作者总结了 Cursor 和 Trae 的实战经验,并计划后续对 AI 生成的代码进行 UI 优化,进一步完善 AI 辅助前端开发的应用。

大家好,我是欧达克。

前面介绍了阿里 Turbo 大模型的集成,现在开始用 AI 工具编写前端代码。废话不多说,开搞。


提示词

先利用 DeepSeek,生成提示词。

我想用 cursor 生成 AI 嘴替应用的前端代码,帮我生成提示词,要求技术栈是 vue3 + uni-app,能实现基本的对话功能,页面需要简洁,美观

DeepSeek 回答:

DeepSeek 还贴心地生成了样例代码,但是本期的重点不在 DeepSeek 生成的代码,所以我们直接跳过。

Cursor

首先新增一个文件夹,命名 ROBOTALK-UNI-APP, 接着把 DeepSeek 生成的提示词,copy 到根目录的 README.md 文件中,然后开始 AI 对话:

这是一个基础的uni-app 项目模板,帮我根据提示词,生成对应的代码

生成的详细过程就不贴了,下面会直接贴出效果。

失败案例

因为我是要使用 uni-app 工具开发的,开始是想看 Cursor 会不会自动根据 uni cli 指令生成模板工程,但是发现并不会(我自测没生成,不知道其他人有没有遇到这个情况),然后在不生成模板工程的情况下,调试了很久,最终还是宣告失败。。。继续对话下去也可能会成功,但是不想花这个时间,所以直接放弃了。

成功案例

    使用 HBuilderX 工具,生成基础的项目模板。

    接下去也是一样,把提示词复制过来,继续对话。

    发现 AI 有时候会犯一些低级的错误,比如.value 访问,或者函数没引入等等,但是整体上你把错误报给它,它都能很快修复问题。调试了大概 1 小时时间,静态页面已经能够正常访问了,因为上一篇文章我们不是搞定了大模型对接吗?所以我们直接把接口的详细配置丢给 AI。

    发现 AI 真的很强大,生成的代码质量真的很高,比如对一个简单的 http 请求的封装,我直接贴下源码:
export const API_CONFIG = {    baseUrl: process.env.NODE_ENV === 'development' ?    'http://localhost:8080/robotalk/api' :    'https://your-production-domain.com/robotalk/api',  timeout: 10000,   endpoints: {    ask: '/ask/turbo'  }};export const callApiWithTimeout = (options) => {  return new Promise((resolve, reject) => {        const timeoutTimer = setTimeout(() => {      reject(new Error('请求超时,请检查网络连接'));    }, options.timeout || API_CONFIG.timeout);        uni.getNetworkType({      success: (networkState) => {                if (networkState.networkType === 'none') {          clearTimeout(timeoutTimer);          return reject(new Error('无网络连接,请检查网络设置'));        }                uni.request({          url: options.url,          method: options.method || 'GET',          data: options.data || {},          header: {            'content-type': 'application/json',            ...options.header          },          success: (res) => {            clearTimeout(timeoutTimer);            if (res.statusCode === 200 && res.data && res.data.success) {              resolve(res.data.data);            } else {                            const errorMsg = res.data?.errorContext ||                `请求失败(${res.statusCode}): ${res.data?.errorCode || '未知错误'}`;              reject(new Error(errorMsg));            }          },          fail: (err) => {            clearTimeout(timeoutTimer);            reject(new Error(err.errMsg || '网络异常'));          }        });      },      fail: () => {        clearTimeout(timeoutTimer);        reject(new Error('无法获取网络状态'));      }    });  });};export const sendMessageToAI = async (message, options = {}) => {  try {        const startTime = Date.now();        const requestData = {      content: message,      ...options.extraParams     };        const result = await callApiWithTimeout({      url: options.url || (API_CONFIG.baseUrl + API_CONFIG.endpoints.ask),      method: 'POST',      data: requestData,      timeout: options.timeout,      header: options.headers    });        const responseTime = Date.now() - startTime;    console.log(`AI响应时间: ${responseTime}ms`);    return result;  } catch (error) {    console.error('AI服务调用失败:', error);        if (process.env.NODE_ENV === 'development') {      console.log('失败的请求内容:', message);    }    throw error;  }}; 
    环境变量自适应(开发/生产环境不同API地址)超时处理统一错误处理API调用封装

效果展示

    首页

    对话框(我这里并没有详细要求 AI 去优化 UI,这些都是 AI 根据提示词自己生成的)

    视频演示

Trae

接着是使用 Trae 来完成 AI 嘴替 应用的前端开发。

    这里直接拷贝模板文件到根目录下,要求 Trae 直接基于 README.md 文件开始生成代码。生成过程中好几次出现等待、网络连接的问题。

    不知道是因为第一次使用 Cursor 时候有前车之鉴,在使用 Trae 的时候,除了偶尔的等待和网络问题,整个过程异常丝滑,没有出现 Cursor 偶尔降智的情况,但是有个小问题,Trae 生成的代码中,也包含了启动页,不过在生成的代码中,打开启动页默认直接跳到到聊天页了。

    继续和 Trae 对话,需要保留启动页,并完善代码。

    启动页效果如下。

但是 Trae 并没有理会我在 README.md 中提到的 vite 构建工具,之后是单独再和 Trae 对话,让项目集成 vite。最终发现 vite 集成的时间比功能代码生成的时间还长,并且还出现了部分语法错误。。。

Trae 竟然直接罢工了,后续再也连不上 Trae 了,得等几百号人。。。

试了很久还是没成功,最终我还是放弃了😢😢😢

总结

Cursor 过程比较曲折,但是最终确实是按预期生成了,Trae 在代码生成效率确实很高,但是不知道为什么,在集成 vite 工具的时候,过程中我感觉改了很多我看不懂的配置,最终导致整个项目启动失败,后续有时间会再做尝试。

好了,本文就是对 Cursor 和 Trae 两个 AI 工具的实战演示,这里再强调一遍是基于自己的验证结果,样本太小,不足以说明什么问题,如果你自己的验证过程中,发现结果和我不一致,那也没什么问题,毕竟 AI 生成的代码也不是完全一致的。

后续会继续基于 AI 生成的代码做些 UI 上的优化,敬请期待。

我是欧达克,祝你幸福。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI 前端开发 Cursor Trae uni-app
相关文章