AI全栈实习生二面

vibe coding的流程

输入自然语言->AI生成对应代码->不断对话进行优化

你实际vibe coding的时候有用过skill吗?

有用过。我的做法是把高频提示词和重复开发流程封装成 skill,让模型在不同任务里按固定规范执行。 比如我会把目录结构、默认依赖、命名风格这类约束预先写进去。这样在 vibe coding 的时候,模型生成的代码不会每次风格都不一样。 像“给后台系统加一个用户标签功能”这种任务,skill 可以按一个固定流程处理:拆需求、设计数据表和 schema、生成后端接口和前端页面、补校验逻辑和测试样例,最后输出变更说明。 这样既保留了 vibe coding 的速度,也能保证基本的结构和一致性。

你怎么保证大模型返回的数据格式正确?

大模型只懂文字,不会执行相应的代码,只能返回给后端相应的参数,调用对用的API 保证数据格式返回正确的方法: 方法一:使用JSON Schema对大模型的返回结果进行约束 方法二: Prompt约束+Pydantic(Python的数据校验工具)后处理校验

大模型返回参数错误该怎么办

解析失败时给 LLM 一次重试机会,同时提供格式错误的具体提示

大模型重试失败怎么办?

进行有限重试,重试的时候将错误信息以JSON格式返回给大模型。重试次数超过限制时就不再调用function_call而是以文本的方式进行回答

Toolformer和function_call的区别

维度Function CallingToolformer
训练方式SFT 微调,显式学习工具调用格式自监督,模型自主学习何时调用
工具定义外部 JSON Schema 传入,运行时动态训练时嵌入文本中,固定工具集
可控性强,格式标准弱,调用时机不可控
工业应用OpenAI GPT-4、Qwen、Claude 主流方案学术探索为主

如果Canal同步MySQL数据变更到ES该时,因为网络波动,delete操作比update操作先到怎么办

其实这个可以回答怎么保证消息有序的

  1. 可以给ES写入加“外部版本号,把binlog时间映射成一个严格递增的版本
    • MySQL binlog 文件名 + offset
    • 或 Canal 事件里的 executeTime + offset 保证消息有序性:
  2. 使用RabbitMQ的顺序队列。消息的消费顺序与消息的存储顺序一致
  3. 在分区的消息队列中通过Partion Key将消息发送到特定的分区,分区内部是有序,这样可以保证按照Partion Key的消息按顺序消费

在你的CookHero项目中是怎么保证用户偏好不丢失

用户偏好识别我采用规则(正则识别关键词) + AI识别兜底(识别语义)的方式,规则保证稳定性,AI提升覆盖率,最终统一结构化存储(转为JSON格式存储),避免系统完全依赖大模型带来的不确定性。

记忆存储

类型例子存哪里
短期记忆当前对话上下文
长期记忆不吃海鲜DB
语义记忆喜欢清淡向量库

CookHero中Agent执行流程

意图识别(识别偏好) 结构化(转 JSON) 存储(DB / 向量库) 检索(RAG) 拼 prompt 生成回复

总结

实际AI项目中不应该全部靠AI来识别而是靠规则+AI兜底来实现

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP