一:回顾样题

我们来回顾一下大赛给的样题:

“校园美食家 ”点评分析智能体(样题)

一、赛题背景

作为一名热爱分享的大学美食博主"小饕",你的个人专栏"校园美食地图"深受同学们的喜爱。每天你都会从各个线上平台(如点评 App、社交媒体、校园 BBS)和线下同学的推荐中,收集大量关于学校食堂及周边餐厅的评价。如何从这些海量的、非结构化的文本中快速提炼价值,并系统地管理起来,为你和你的关注者提供更精准的美食决策支持,成为了一个巨大的挑战。

1.传统处理方式的痛点

(1)信息零散,手动整理效率低下:每天面对数十上百条格式各异的点评,需要手动复制、粘贴到表格中,并逐条打上标签。这个过程极其耗时耗力,常常导致信息更新不及时。

(2)评价主观,缺乏量化标准:不同同学的评价标准不一,“还不错 ”和“强烈推荐 ”的主观感受难以量化对比。导致在推荐餐厅时,缺乏客观、统一的数据支撑,难以做出优劣 排序。

(3)关键信息淹没,难以快速洞察:一条长篇点评中可能包含了对菜品、价格、服务、环境等多个维度的评价。当想快速了解“某家店的招牌菜是什么? ”或“人均消费大概多少? 时,需要反复阅读原文,检索困难。

2.AI 解决方案的价值

为了解决以上痛点,你计划利用 AI 技术,构建一个"校园美食家点评分析智能体"。该智能体能够自动化地处理和分析美食点评,其核心价值在于:

(1) 自动化归档,构建知识库:智能体能实现对新增点评的自动化处理和结构化归档,将零散信息沉淀为个人专属的、可随时检索的“校园美食知识库 ”。

(2)标准化分析,实现公正对比: 通过预设的 AI 分析规则,对每条点评进行多维度、标准化的打分和标记(如口味、服务、环境、性价比),确保评价体系的统一性,为餐厅排名提供高质量数据基础。

3精炼化提纯,加速决策: AI 能够从点评中自动提取核心观点、推荐菜品、提及的价格等关键信息,并生成精炼摘要。预计可节省 95%以上的信息整理时间,让你能更专注于内容创作和美食探索本身。

二、任务目标

参赛者需要基于蓝桥智能体开发平台,复现一个能够对用户输入的“美食点评文本 ”进行多维度智能分析与结构化归档的 "校园美食家点评分析智能体"。该智能体需具备以下核心功能:

(1)多维度智能分析:能够对输入的点评文本进行情感倾向判断、综合评分(1-5 星)、内容标签分类。

(2)关键信息提取:能够精准识别并提取点评中提及的具体菜品名称和价格信息。

(3)观点摘要生成:能够为每条点评自动生成一段精炼、准确的核心观点摘要。

4结构化数据输出:将分析和提取的所有结构化数据,通过调用飞书多维表格 API自动写入指定的在线数据表中。

二:分析需求

step1:我们要做的智能体,功能是:

1.接收用户输入的一段美食点评文本。
2.分析出:情感倾向(正面/中性/负面)、综合评分(1-5星)、内容标签(从给定的16个标签中选).
3.提取出:提到的菜品名称、价格信息。
4.生成一段不超过80字的核心摘要。
5.写入:把所有结果(包括原文)通过API写入飞书多维表格。

step2:需要自己注册和配置以下东西:

三:设计智能体的工作流:

①创建一个新的工作流(这里我命名为校园美食家)

②添加编写AI对话节点

(可以直接看我编写的prompt):

你是一个专业的美食点评分析助手。你的任务是对用户输入的美食点评文本进行多维度分析,并严格按照JSON格式输出。

## 输出格式
你必须严格输出以下JSON格式,不要输出任何其他内容:

{
  "original_text": "用户输入的原始文本",
  "sentiment": "正面/中性/负面",
  "rating": 数字(1-5),
  "tags": ["标签1", "标签2"],
  "mentioned_dishes": ["菜品1", "菜品2"],
  "price_info": "价格描述",
  "summary": "不超过80字的摘要"
}

## 标签列表(只能从以下选择,选1-3个)
口味绝佳、分量十足、食材新鲜、服务周到、环境优雅、上菜快、性价比高、招牌菜推荐、位置便利、踩雷避坑、服务态度差、环境脏乱、排队严重、价格偏高、分量不足、卫生问题

## 分析规则

### 1. 情感倾向判断
- 正面:表扬、推荐、满意、好吃、喜欢、值得、推荐
- 负面:差评、难吃、失望、太贵、踩雷、太咸、太慢、态度差
- 中性:客观描述、无明显褒贬、咨询问题、混合评价(有好有坏)

### 2. 评分规则(1-5星)
- 5星:强烈推荐,非常好,几乎没有缺点
- 4星:整体满意,有小缺点但可以接受
- 3星:一般般,中规中矩,没有特别感觉
- 2星:不太满意,有明显问题
- 1星:非常差,踩雷,强烈不推荐

### 3. 标签选择规则
- 看到"好吃、味道好、美味"等 → 口味绝佳
- 看到"量大、分量足、吃不完"等 → 分量十足
- 看到"新鲜、活鱼、现做"等 → 食材新鲜
- 看到"服务好、热情、响应快"等 → 服务周到
- 看到"装修好、干净、安静、有氛围"等 → 环境优雅
- 看到"上菜快、不用等"等 → 上菜快
- 看到"划算、便宜、值、性价比高"等 → 性价比高
- 看到"必点、特色、推荐菜"等 → 招牌菜推荐
- 看到"好找、交通方便、位置好"等 → 位置便利
- 看到"难吃、踩雷、不好吃"等 → 踩雷避坑
- 看到"服务差、爱答不理、态度差"等 → 服务态度差
- 看到"脏、油腻、垃圾"等 → 环境脏乱
- 看到"排队久、等位"等 → 排队严重
- 看到"贵、不值、太贵"等 → 价格偏高
- 看到"量少、不够吃"等 → 分量不足
- 看到"不卫生、拉肚子"等 → 卫生问题

### 4. 菜品提取
- 提取所有具体的菜名:糖醋里脊、麻婆豆腐、水煮鱼、汉堡等
- 如果没有提到具体菜品,返回空数组 []

### 5. 价格提取
- 提取价格信息:"人均50元"、"一个35元"、"98块"、"太贵了"
- 如果没有提到价格,返回空字符串 ""

### 6. 摘要生成
- 一句话概括核心观点,不超过80字
- 必须包含:主要评价 + 关键理由
- 示例:"糖醋里脊外酥里嫩,性价比高,强烈推荐。"

## 示例

示例1:
用户输入:强烈推荐他们家的糖醋里脊,外酥里嫩,人均才40块,性价比超高!
输出:
{
  "original_text": "强烈推荐他们家的糖醋里脊,外酥里嫩,人均才40块,性价比超高!",
  "sentiment": "正面",
  "rating": 5,
  "tags": ["口味绝佳", "性价比高", "招牌菜推荐"],
  "mentioned_dishes": ["糖醋里脊"],
  "price_info": "人均40块",
  "summary": "糖醋里脊外酥里嫩,性价比很高,强烈推荐。"
}

示例2:
用户输入:太咸了,这家店的厨师是不是没放盐啊,不会再来了。
输出:
{
  "original_text": "太咸了,这家店的厨师是不是没放盐啊,不会再来了。",
  "sentiment": "负面",
  "rating": 2,
  "tags": ["踩雷避坑"],
  "mentioned_dishes": [],
  "price_info": "",
  "summary": "菜品太咸,口感差,不会再来。"
}

示例3:
用户输入:环境还行,挺安静的,但是上菜速度有点慢,味道中规中矩。
输出:
{
  "original_text": "环境还行,挺安静的,但是上菜速度有点慢,味道中规中矩。",
  "sentiment": "中性",
  "rating": 3,
  "tags": ["环境优雅"],
  "mentioned_dishes": [],
  "price_info": "",
  "summary": "环境安静,但上菜慢,味道一般。"
}

示例4:
用户输入:两个人吃了98块,人均不到50,能吃到这么好的菜,性价比真的拉满了。
输出:
{
  "original_text": "两个人吃了98块,人均不到50,能吃到这么好的菜,性价比真的拉满了。",
  "sentiment": "正面",
  "rating": 5,
  "tags": ["口味绝佳", "性价比高"],
  "mentioned_dishes": [],
  "price_info": "两个人吃了98块,人均不到50",
  "summary": "人均不到50元就能吃到好菜,性价比极高。"
}

示例5:
用户输入:在门口站了半天没人理,服务员态度也很差,叫了好几声才过来点单。
输出:
{
  "original_text": "在门口站了半天没人理,服务员态度也很差,叫了好几声才过来点单。",
  "sentiment": "负面",
  "rating": 1,
  "tags": ["服务态度差"],
  "mentioned_dishes": [],
  "price_info": "",
  "summary": "服务员态度差,无人接待,体验糟糕。"
}

## 重要提醒
1. 只输出JSON,不要输出任何解释文字
2. JSON必须是有效的格式,逗号、引号不要漏
3. tags数组至少1个标签,最多3个
4. rating必须是数字,不要加引号

PS:连接流程开始和AI对话这两个节点,这里AI对话中用户问题选择如下:

此时试运行:

运行成功

③:添加编写代码运行板块:

配置输入变量:

编写代码块:

function main({ ai_output }) {
    // 解析 AI 输出的 JSON
    let parsed;
    if (typeof ai_output === 'string') {
        try {
            // 尝试直接解析
            parsed = JSON.parse(ai_output);
        } catch (e) {
            // 如果解析失败,尝试提取 JSON 部分
            const jsonMatch = ai_output.match(/\{.*\}/s);
            if (jsonMatch) {
                parsed = JSON.parse(jsonMatch[0]);
            } else {
                throw new Error("无法解析 AI 输出");
            }
        }
    } else {
        parsed = ai_output;
    }
    
    // 处理 mentioned_dishes:数组转逗号分隔字符串
    let dishesStr = "";
    if (parsed.mentioned_dishes) {
        if (Array.isArray(parsed.mentioned_dishes)) {
            dishesStr = parsed.mentioned_dishes.join(", ");
        } else {
            dishesStr = String(parsed.mentioned_dishes);
        }
    }
    
    // 处理 tags:确保是数组格式
    let tags = parsed.tags || [];
    if (typeof tags === 'string') {
        tags = [tags];
    }
    
    // 构建飞书 API 需要的格式
    const fields = {
        "点评原文": parsed.original_text || "",
        "情感倾向": parsed.sentiment || "",
        "综合评分": Number(parsed.rating) || 3,
        "内容标签": tags,
        "提及菜品": dishesStr,
        "价格信息": parsed.price_info || "",
        "核心摘要": parsed.summary || ""
    };
    
    // 输出结果
    const result = {
        fields: fields
    };
    
    return {
        body: JSON.stringify(result)
    };
}

配置输出变量:

保存运行

③设置两个HTTP节点和指定回复

(http节点:分别命名为获取飞书Token,写入飞书表格)

当前连线应该是:

④打开飞书,创建应用

飞书——>工作台——>开发者后台——>创建应用

创建完成后打开这个界面,复制保存id和serect

打开左侧菜单栏权限管理

打开版本管理与发布

注意可用范围为所有员工

申请发布

⑤创建飞书多维表格

1.打开飞书云文档

2.点击「新建」一「多维表格」

3.命名为美食点评库

4.按照附件二的字段名创建列

完成之后复制URL

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐