CodeBuddy Code + 腾讯混元打造"AI识菜通"

CodeBuddy Code + 腾讯混元打造"AI识菜通"

CodeBuddy Code使用指南

背景信息

9月9日,腾讯正式重磅推出了 CodeBuddy CLI 🚀!之所以选在9月9号发布,是因为腾讯怀揣着一个美好愿景:未来99%的编程工作都能通过"vibe coding"(氛围式编码)自动完成,人类只需花1%的精力撰写提示词即可 💡。和 Cloudbase AI CLI 类似,CodeBuddy CLI 也采用终端命令行的操作方式。它的上线,标志着腾讯在开发者生态中已形成插件、IDE 与 CLI 三足鼎立的格局 ⚖️。今天在发布会上收获颇丰,结合自己的理解稍作梳理,与大家分享~ 🎯

下载安装

跟大多数的命令行AI工具一样,CodeBuddy Code的下载方式也是如出一辙

plain 复制代码
npm install -g @tencent-ai/codebuddy-code

命令行输入就可以自动下载

下载完毕之后直接输入CodeBuddy即可唤醒

登录

这里提供了三种不同的登录方式

选择好登录的方式回车之后会直接进入登录网页,这里我们选择用GitHub登录

跳转到网页之后,要是之前登录过就会自动登录

这时候再来看CodeBuddy Code就会发现已经进入到当前的目录下准备运行了~

测试

安装登录完毕之后,我们这里来做一个简单的测试看看CodeBuddy是否可用。

完美运行,并且右侧有显示当前小号的tokens总数,用GitHub登录的话是有免费额度送的。

腾讯混元API接入指南

开通腾讯混元大模型

访问腾讯云控制台中的腾讯混元大模型[https://console.cloud.tencent.com/hunyuan/start\](https://console.cloud.tencent.com/hunyuan/start),点击立即开通,开通之后就如下图所示:

获取腾讯云密钥

进入到腾讯云控制台中的API密钥管理界面[https://console.cloud.tencent.com/cam/capi\](https://console.cloud.tencent.com/cam/capi),如下图所示开通腾讯原API密钥

腾讯混元API文档

我这里开发主要是采用的腾讯混元API方式接入的,参考的是官方文的API文档,有兴趣的小伙伴也可以去尝试一下[https://cloud.tencent.com/document/product/1729/101848\](https://cloud.tencent.com/document/product/1729/101848):

这里是一个调用示例

plain 复制代码
POST / HTTP/1.1
Host: hunyuan.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ImageQuestion
<公共请求参数>

{
    "Model": "hunyuan-vision-image-question",
    "Messages": [
        {
            "Role": "user",
            "Contents": [
                {
                    "Type": "text",
                    "Text": "解答图片中的问题"
                },
                {
                    "Type": "image_url",
                    "ImageUrl": {
                        "Url": "https://qidian-qbot-1251316161.cos.ap-guangzhou.tencentcos.cn/public/0/0/image/hy/2c4dda9e032a477a6572866de2419ecd9e59076a-6145-46a0-9f47-1048f65cf4f8.png"
                    }
                }
            ]
        }
    ],
    "Stream": false
}

AI识菜通开发指南

上方的准备工作准备好之后,接下来就是开发时间:

开发提示词

准备好下方的开发提示词

plain 复制代码
我要做一个"AI识菜通"APP。它的输入是一张菜单图片,它可能是任何语言的。我需要调用腾讯混元模型,使用腾讯混元图片模型的 API去理解图片,然后在网页上用户来上传这张图片,上传之后调用 腾讯混元文本大模型理解图片之后进入第二个页面就是点菜的页面,点菜的页面会包含,会把整个单变成中文的,用户可以点菜。每一道菜都包含它的名字、它的介绍和一张图片,图片也调用 腾讯混元 的生成图片的模型来生成,腾讯混元API放在UI中让用户输入并且存在local storage里,然后用户点加号可以把这道菜加入他的购物车,最后点提交生成一个一串字符,上面写他想要点哪些菜,方便他跟服务员说他要点哪些。这个字符应该包合中文名和他元语言的名字。项目需要使用|react 实现 U,使用 shadcn、redix 组件库。

CodeBuddy.md开发文档

输入到CodeBuddy中,并且先别让他直接开始开发,先让他生成CodeBuddy.md

这里是CodeBuddy的分析过程,询问我们是否保存,这里选择yes

这里已经保存到了本地的CodeBuddy.md中

这是刚刚CodeBuddy生成的文档,这里我们发现有不对的地方可以随意编辑,如果确认无误的话就可以让CodeBuddy对着文档开始开发项目了。

plain 复制代码
# AI识菜通 APP 项目文档

## 项目概述

"AI识菜通"是一个基于AI的智能点菜应用,用户可以上传任何语言的菜单图片,系统会自动识别并翻译成中文,生成带有图片和介绍的点菜界面,最终生成订单字符串方便用户与服务员沟通。

## 技术栈

- **前端框架**: React
- **UI组件库**: shadcn/ui + Radix UI
- **AI服务**: 腾讯混元大模型
  - 图片理解模型 (识别菜单)
  - 文本大模型 (翻译和生成介绍)
  - 图片生成模型 (生成菜品图片)
- **状态管理**: React Context + useState
- **本地存储**: localStorage (存储API密钥和购物车)

## 功能模块

### 1. 首页 - 图片上传页面

- **功能**:
  - API密钥输入框 (存储到localStorage)
  - 菜单图片上传组件
  - 上传按钮触发图片识别
- **API调用**: 腾讯混元图片理解模型
- **页面跳转**: 识别成功后跳转到点菜页面

### 2. 点菜页面

- **功能**:
  - 显示识别出的菜品列表
  - 每个菜品包含:
    - 中文名称
    - 原语言名称
    - AI生成的菜品图片
    - 菜品介绍
    - 添加到购物车按钮 (+)
  - 购物车侧边栏/底部栏
  - 提交订单按钮
- **API调用**: 
  - 腾讯混元文本模型 (翻译和生成介绍)
  - 腾讯混元图片生成模型 (生成菜品图片)

### 3. 订单确认

- **功能**:
  - 生成包含中文名和原语言名的订单字符串
  - 方便用户与服务员沟通

## 数据结构

### 菜品对象 (Dish)

```typescript
interface Dish {
  id: string;
  originalName: string;    // 原语言名称
  chineseName: string;     // 中文名称
  description: string;     // 菜品介绍
  imageUrl: string;        // AI生成的图片URL
  price?: string;          // 价格 (如果能识别出来)
  quantity: number;        // 购物车中的数量
}

购物车项目 (CartItem)

typescript 复制代码
interface CartItem {
  dish: Dish;
  quantity: number;
}

API集成

腾讯混元API配置

  • 图片理解API: 识别菜单内容
  • 文本生成API: 翻译菜名和生成介绍
  • 图片生成API: 根据菜名生成菜品图片
  • API密钥管理: 存储在localStorage中

页面路由结构

bash 复制代码
/                    # 首页 - 图片上传
/menu               # 点菜页面
/order-summary      # 订单确认页面 (可选)

组件结构

bash 复制代码
src/
├── components/
│   ├── ui/              # shadcn/ui组件
│   ├── ImageUpload.tsx  # 图片上传组件
│   ├── DishCard.tsx     # 菜品卡片组件
│   ├── Cart.tsx         # 购物车组件
│   ├── ApiKeyInput.tsx  # API密钥输入组件
│   └── OrderSummary.tsx # 订单摘要组件
├── pages/
│   ├── HomePage.tsx     # 首页
│   ├── MenuPage.tsx     # 点菜页面
│   └── OrderPage.tsx    # 订单页面
├── hooks/
│   ├── useApi.ts        # 腾讯混元API调用hooks
│   ├── useCart.ts       # 购物车管理hooks
│   └── useLocalStorage.ts # localStorage管理hooks
├── services/
│   └── tencentApi.ts    # 腾讯混元API服务
├── types/
│   └── index.ts         # TypeScript类型定义
└── utils/
    └── helpers.ts       # 工具函数

开发阶段规划

阶段1: 项目初始化

  • 创建React项目
  • 安装shadcn/ui和Radix UI
  • 设置项目结构和TypeScript配置
  • 配置路由

阶段2: 基础组件开发

  • 创建API密钥输入组件
  • 创建图片上传组件
  • 创建菜品卡片组件
  • 创建购物车组件

阶段3: API集成

  • 集成腾讯混元图片理解API
  • 集成腾讯混元文本生成API
  • 集成腾讯混元图片生成API
  • 实现错误处理和加载状态

阶段4: 页面开发

  • 开发首页 (图片上传)
  • 开发点菜页面
  • 开发订单确认功能
  • 实现页面间导航

阶段5: 功能完善

  • 实现购物车功能
  • 实现订单字符串生成
  • 添加响应式设计
  • 优化用户体验

阶段6: 测试和优化

  • 功能测试
  • 性能优化
  • 错误处理完善
  • 用户界面优化

注意事项

  1. API密钥安全: 密钥存储在localStorage中,提醒用户不要在公共设备上使用
  2. 图片处理: 需要处理不同格式和大小的图片
  3. 多语言支持: 确保能正确识别和处理各种语言的菜单
  4. 错误处理: 完善的API调用失败处理机制
  5. 加载状态: 为AI处理过程添加适当的加载指示器
  6. 响应式设计: 确保在移动设备上的良好体验

预期挑战

  1. 菜单图片质量和格式的多样性
  2. 不同语言菜名的准确翻译
  3. AI生成图片的质量和相关性
  4. API调用的稳定性和错误处理
  5. 用户体验的流畅性

此文档将在开发过程中持续更新和完善

bash 复制代码
<h3 id="oCFCR">全速开发</h3>
可以看到CodeBuddy已经开始分析并且对照文档进行开发了,并且CodeBuddy的每一步操作都会询问,这里如果不想一直被询问的话可以选择第二个选项,这里我就直接让CodeBuddy全速开发了,接下来就是等待即可,由于篇幅原因我就直接跳到最后一步看成果了。

![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759261371345-a8eb9dce-3014-4a2b-8077-d79a7e42818e.png)

<h2 id="OZbFv">成果展示</h2>
<h3 id="VGqsF">部署阶段</h3>
在项目"AI识菜通"的最终部署阶段,我选择了 Vercel 作为前端应用的托管平台。Vercel 以其卓越的开发者体验和对现代前端框架的深度支持,极大简化了部署流程。本项目基于 React 构建,并使用了 shadcn/ui 和 Radix UI 组件库,Vercel 能自动识别项目结构,实现一键部署和持续集成。每次代码推送至 GitHub 仓库,Vercel 都会自动构建并生成预览链接,方便快速测试与迭代。更重要的是,Vercel 提供全球边缘网络分发,确保用户无论身处何地,都能快速加载应用页面。整个"AI识菜通"从前端交互、图片上传,到调用腾讯混元大模型进行多语言菜单识别与菜品图像生成,最终生成点餐字符串,全部通过 Vercel 高效、稳定地交付给用户。借助 Vercel 的免费计划和无缝 DevOps 能力,我得以将精力聚焦在核心 AI 功能开发上,而无需担心服务器运维,真正实现了"开发即部署"的现代 Web 开发体验。[https://ai-menu-a92k3hb78-pickstar-2002s-projects.vercel.app/](https://ai-menu-a92k3hb78-pickstar-2002s-projects.vercel.app/)

<h3 id="Z2StW">首页</h3>
![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759832975457-c335c652-d232-4df4-9b2b-75125600fcbe.png)

<h3 id="V2NF9">设置API密钥</h3>
本项目的API密钥存放在本地的storage中,并不会上传到云端,确保用户的密钥安全。

![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759833023448-98079643-54f6-4191-9b29-29f4d1a61f35.png)

<h3 id="O6aUa">识别菜单</h3>
这里准备了国外的菜单进行测试:

![](https://cdn.nlark.com/yuque/0/2025/jpeg/27326384/1759833227123-a3486a5c-1394-4fd1-aa11-b23e411d32a6.jpeg)

上传图片之后AI开始分析

![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759833174101-a5cff136-4b2e-4593-b69f-7929b9f109f9.png)

识别完毕之后点击去点菜即可看到生成的中文菜单

![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759833195968-1280b673-95a0-4db2-b3fe-9897bd21cab1.png)

以下是生成后的结果,这样就可以顺利点菜了:

![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759833266160-f76fb6e8-88cf-4593-b0c1-6f68b8f2eb33.png)

<h3 id="OG3b1">点餐进入购物车</h3>
![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759833307416-7854896e-2e9f-4fa1-992b-832e9a5397da.png)

点击生成订单汇总,会生成一份刚刚的点菜TXT格式的清单:

![](https://cdn.nlark.com/yuque/0/2025/png/27326384/1759833377307-9faa346d-ca7e-476a-aaa2-7d4d4481df47.png)
相关推荐
绝无仅有7 小时前
消息队列mq面试经典问题与解答总结
后端·面试·github
笔尖的记忆7 小时前
js异步任务你都知道了吗?
前端·面试
绝无仅有7 小时前
数据库mysql报错追踪与解决总结
后端·面试·github
GISer_Jing8 小时前
得物前端二面潜在问题详解
前端·javascript·面试
千里马学框架10 小时前
音频焦点学习之AudioFocusRequest.Builder类剖析
android·面试·智能手机·车载系统·音视频·安卓framework开发·audio
tt55555555555513 小时前
嵌入式开发面试八股文详解教程
linux·c++·驱动开发·面试
程序新视界13 小时前
面试中,如何筛选合格的人才?
面试·程序员
聪明的笨猪猪14 小时前
Java “线程池(1)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试