首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >零代码五分钟快速搭建公考信息查询小程序

零代码五分钟快速搭建公考信息查询小程序

原创
作者头像
fanstuck
发布2025-06-18 11:51:07
发布2025-06-18 11:51:07
66412
举报

引言

每年数百万考生涌入公务员考试的浪潮中,面对纷繁复杂的职位信息、报考条件、历年招录数据,许多人常常感到“信息太多反而难找”,迫切需要一个轻便、好用的查询工具。而对于很多非技术出身的考生或教育从业者来说,开发一个用于查询的应用似乎遥不可及。

但现在,不懂代码也能开发自己的公考信息查询小程序。

本文将带你使用云开发 CloudBase,手把手搭建一个可以根据公告信息来智能AI解析内容的一站式公考信息查询小程序。不需要部署服务器、不需要掌握编程知识,只需通过拖拉组件和配置数据接口,五分钟内你就能搭建出一个可上线的小程序应用。如果你是教育行业从业者、公考培训机构运营者,甚至只是一个热衷分享信息的考生,这篇文章将让你在零技术门槛的前提下,拥有属于自己的信息查询工具。

第一步:认识腾讯云开发 CloudBase,完成环境开通

什么是 CloudBase?

CloudBase 是腾讯云推出的一站式后端云服务平台,它为小程序、Web 应用、APP 提供一整套 Serverless 开发能力。你不需要自己租用服务器、搭建数据库或编写后端代码,只需在控制台点击几下,即可完成包括数据库、存储、云函数、AI 能力等服务的搭建,非常适合个人开发者或小团队快速上线自己的应用。

对于非开发者而言,CloudBase 的强大之处在于:

  • 免运维:不需要管理服务器,系统会自动弹性扩容;
  • 高集成度:与微信小程序、UniApp、TDesign、微搭LowCode、AI Builder 等打通;
  • 内置数据库与文件存储:开箱即用,支持上传公告文件、职位信息;
  • 支持AI能力:可通过 AI Builder 快速集成 AI 服务,如智能问答、公告解析、职位推荐等;
  • 永久免费额度:提供标准版免费套餐,适合测试和轻量上线,节省预算。

开通 CloudBase 环境

我们打开 CloudBase 官网地址: 👉 https://cloud.tencent.com/product/tcb?from_column=20065&from=20065a

点击“立即开通”,填写环境名称,选择标准版即可(免费试用半年,包含 1GB 数据库、5GB 文件存储、每月 10 万次数据库请求,非常适合中小规模应用起步)。

💡建议环境名称填写简短易识别,例如:gongkao-querypublic-exam-app,方便后续管理。

创建后我们进入腾讯云控制台,会看到如下画面显示我们的环境信息:

点击右侧的“去开发”,进入开发主界面,在这里你可以操作数据库、文件存储、云函数等。

开通标准版的就好,是免费的,而且有半年的体验期,如果我们的小程序很受欢迎,以后要考虑扩容了让小程序变得更开,服务更多人,那就可以选择升级云开发环境。创建之后,我们进入到云控制台,可以看到我们创建的环境:

点击去开发,我们就可以进入到腾讯云开发主界面:

第二步:准备并上传我们的公考数据集

在一个信息查询类的小程序中,数据就是灵魂。我们需要预先准备好职位信息、公告内容、招录单位、报名时间等原始数据,然后将这些数据导入 CloudBase 的数据库中。

Step1:创建数据集合(等同于创建数据库表)

点击左侧菜单栏中的【数据库】,然后点击右上角的“创建集合”,填写集合名称,如 gongkao_noticejob_listings 或者 exam_info 等,选择文档型数据库。

⚠️注意:CloudBase 的数据库为 MongoDB 类型(非关系型文档数据库),适合存储结构化与半结构化数据,非常适合存储 JSON 格式的公告数据。

然后我们选择我们需要导入的文件,此处我们选择已经收集好的数据公告数据:

之后我们需要选择对应的数据库,由于我们是文档类型数据,所以我们需要选择数据库类型为文档型:

Step2:上传数据文件

回到文档列表,导入步骤:

  1. 点击数据库集合右侧的“导入数据”按钮;
  2. 上传本地的 JSON 或 CSV 文件;
  3. 设置字段映射(如果使用 CSV 格式);
  4. 确认导入。

Step3:存储类型选择建议

虽然文档型数据库非常灵活,但如果你后期打算做更复杂的联表查询、数据统计、报表功能,也可以选择开启 CloudBase 的 MySQL 实例(付费),那将获得更强的数据处理能力。

本教程中我们坚持“零代码”和“快速搭建”的原则,首选文档型数据库,后续可以灵活切换。

导入成功后,你可以点击集合名称查看每一条记录,也可以进行增删改查,非常方便。

第三步:利用 AI Builder 智能生成公考信息查询界面

在完成环境搭建与数据上传后,我们终于来到了真正的“搭建界面”环节。传统方式需要写代码实现页面布局、数据展示与搜索功能,但在腾讯云的 AI Builder 中,这一切只需一句话。

什么是 AI Builder?

AI Builder 是腾讯云微搭低代码平台(WeDa)推出的 AI 智能页面生成工具。它能够根据用户提供的提示词(Prompt),自动构建出符合业务逻辑的应用界面,包括页面结构、控件布局、组件绑定,甚至能自动配置数据源与搜索逻辑。

这意味着,只要你告诉 AI Builder 你的业务场景,它就能帮你生成一个能直接使用的成品页面。

我们的目标:自动生成“公考信息查询”界面

我们想做一个具备以下功能的页面:

  • 查询公告:支持按“地区”“发布时间”“关键词”筛选;
  • 展示列表:每条公告显示标题、地区、发布时间、查看详情按钮;
  • 点击详情:跳转至详情页展示公告原文或更多字段;
  • 美观整洁:样式简洁,适合移动端浏览。

如何撰写 Prompt 提示词?

提示词是和 AI 交流的核心。要让 AI Builder 明白我们想要什么,就要明确表达意图、数据来源、展示方式。下面是一个优秀提示词的例子:

为获得更贴近你预期的结果,你可以:

代码语言:txt
复制
我想构建一个公务员考试公告查询小程序页面,使用 CloudBase 数据库中的 `gongkao_notice` 集合作为数据源。页面应包括:
1. 筛选功能:可按“地区”、“发布时间”字段进行筛选;
2. 公告列表展示:每条公告显示“标题”、“地区”、“发布时间”,并有“查看详情”按钮;
3. 点击详情后可查看公告全文及报名时间、职位数量等字段;
页面风格要适合小程序使用,移动端友好,结构清晰,可拖拽微调。

你可以根据实际数据库的字段进一步补充,比如:

代码语言:json
复制
{
  "region": "地区",
  "announcement_title": "公告标题",
  "publish_date": "发布时间",
  "apply_start": "报名开始时间",
  "apply_end": "报名截止时间",
  "link": "公告链接"
}

让我们来实际操作一遍,首先输入我们的prompt:

代码语言:txt
复制
我想创建一个公务员考试信息查询小程序首页,页面整体为移动端设计,适配微信小程序。页面包含以下模块:

顶部标题栏:“公考助手”,下方副标题“助您一臂之力,圆梦公职”;
搜索栏:可输入“岗位/地区/代码”关键词进行模糊搜索;
分类导航区:展示四个模块,分别为“国考”、“省考”、“事业单位”、“国企社招”,每个模块使用对应的图标和配色块,支持点击跳转;
横幅广告区:展示一个事业单位统计图,横向滑动切换;
热门岗位推荐区:
每个岗位展示岗位名称、招聘单位、城市、招聘人数;
显示一个“热度值百分比 + 进度条”视觉展示报名热度;
显示“已有xxx人报名”的统计信息;
支持收藏图标、点击跳转详情页;
页面底部是四个 tab 标签栏,分别是:首页、职位、匹配、我的,点击切换页面。
数据源为 CloudBase 数据库,岗位数据存储在 gongkao_jobs 集合中,字段包括:

post_name(岗位名称)
unit_name(招聘单位)
city(城市)
apply_num(报名人数)
recruit_num(招聘人数)
hot_score(热度百分比)
请帮我生成该页面,并绑定数据源,同时支持我后续通过拖拽微调样式。

输入后等待AI响应:

代码语言:txt
复制
 公务员考试信息查询小程序首页开发(1750211447768)
 生成公务员考试信息查询小程序首页,包含顶部标题栏、搜索栏、分类导航区、横幅广告区、热门岗位推荐区和底部标签栏
 根据热门岗位推荐区的mock数据,生成数据模型,字段包括post_name、unit_name、city、apply_num、recruit_num、hot_score
 将前面生成的页面的mock数据接入到已有的数据模型中,绑定CloudBase数据库的gongkao_jobs集合
使用 generate_html 生成应用 HTML 原型:
我将为您创建一个完整的公务员考试信息查询小程序首页原型,包含所有指定模块和数据绑定功能。以下是完整的实现方案:

1. 用户体验分析
核心功能
岗位信息搜索与筛选
考试类型分类导航
热门岗位可视化展示
用户交互与收藏功能
核心交互逻辑
搜索栏实时模糊搜索
分类导航快速跳转
岗位卡片点击查看详情
底部导航页面切换
2. 产品界面规划
关键界面
首页(当前设计)
职位列表页
智能匹配页
个人中心页
3. 高保真 UI 设计
基于微信小程序设计规范,采用清晰的信息层级和直观的交互设计。

4. 原型实现
以下是完整的HTML代码实现,包含数据绑定和交互逻辑:

index.html
generate
这个原型实现了所有需求功能:

完整的标题栏和搜索功能
分类导航区带图标和点击效果
可滑动的横幅广告区
热门岗位推荐区,包含热度进度条和收藏功能
底部导航栏
完整的数据绑定逻辑(模拟CloudBase数据)
所有交互效果(点击、收藏、滑动等)
您可以直接使用这个HTML文件进行开发,或通过拖拽方式调整样式。实际开发时,只需替换模拟数据部分为真实的CloudBase数据库调用即可。

调用 generate-wxml 工具,生成可视化应用:

index.wxml
generate
调用 geneate_datamodel 工具,生成数据模型:
由于无法获取到页面文件内容,我无法基于现有的mock数据生成数据模型。请确保页面文件存在并提供正确的路径,以便我可以根据页面中的mock数据为您生成相应的数据模型。

使用 generate_wxml 生成可视化应用:
我将为您更新 index.wxml 文件,将 mock 数据替换为从 CloudBase 数据库 gongkao_jobs 集合获取的真实数据。以下是完整的修改内容:

index.wxml
generate
主要修改内容:

更新了 dataset.state.jobs 的默认值为空数组,并添加了 title 描述
在 onLoad 处理函数中添加了从 CloudBase 数据库获取岗位数据的逻辑
更新了 toggleFavorite 处理函数,使其同时更新本地状态和数据库中的收藏状态
添加了 handleSearchInput 处理函数,实现按关键词搜索岗位功能
更新了岗位列表的 wx:key 为 _id,以匹配数据库中的主键字段
所有数据绑定字段都调整为与数据库字段一致(如 jobId 改为 _id)
现在页面会从 CloudBase 数据库的 gongkao_jobs 集合中获取真实数据,并支持搜索和收藏功能。

在页面生成后,可以进一步开发搜索功能和分类导航的跳转功能,以及实现拖拽微调样式的功能。

我这边给出代码实例:

代码语言:html
复制

<script>
      export const dataset = {
        state: {
          jobs: {
            default: [],
            title: "岗位列表"
          },
          searchText: {
            default: '',
            title: "搜索文本"
          }
        }
      }

      export const handlers = {
        onLoad: async ({params}) => {
          // 从CloudBase数据库获取岗位数据
          try {
            const result = await $w.cloud.callDataSource({
              dataSourceName: 'gongkao_jobs',
              methodName: 'wedaGetRecordsV2',
              params: {
                filter: {
                  where: {
                    $and: [
                      {
                        hot_score: {
                          $gte: 60 // 只获取热度60%以上的岗位
                        }
                      }
                    ]
                  }
                },
                select: {
                  $master: true
                },
                orderBy: [
                  {
                    hot_score: 'desc' // 按热度降序
                  }
                ],
                pageSize: 5, // 获取前5条
                pageNumber: 1
              }
            });
            dataset.state.jobs = result.records.map(item => ({
              ...item,
              is_favorite: false // 添加收藏状态字段
            }));
          } catch (e) {
            console.error('获取岗位数据失败:', e);
          }
        },
        toggleFavorite: async ({event, params}) => {
          const jobId = params.jobId;
          const jobs = dataset.state.jobs;
          const index = jobs.findIndex(job => job._id === jobId);
          
          if (index !== -1) {
            // 更新本地状态
            jobs[index].is_favorite = !jobs[index].is_favorite;
            dataset.state.jobs = [...jobs];
            
            // 更新数据库中的收藏状态
            try {
              await $w.cloud.callDataSource({
                dataSourceName: 'gongkao_jobs',
                methodName: 'wedaUpdateV2',
                params: {
                  filter: {
                    where: {
                      _id: {
                        $eq: jobId
                      }
                    }
                  },
                  data: {
                    is_favorite: jobs[index].is_favorite
                  }
                }
              });
            } catch (e) {
              console.error('更新收藏状态失败:', e);
            }
          }
        },
        viewJobDetail: ({event, params}) => {
          const jobId = params.jobId;
          $w.app.navigateTo({
            pageId: 'jobDetail',
            params: { id: jobId }
          });
        },
        navigateTo: ({event, params}) => {
          const type = params.type;
          $w.app.navigateTo({
            pageId: 'jobList',
            params: { type }
          });
        },
        handleSearchInput: async ({event, params}) => {
          dataset.state.searchText = event.detail.value;
          
          // 根据搜索文本筛选岗位
          try {
            const result = await $w.cloud.callDataSource({
              dataSourceName: 'gongkao_jobs',
              methodName: 'wedaGetRecordsV2',
              params: {
                filter: {
                  where: {
                    $or: [
                      {
                        post_name: {
                          $search: event.detail.value
                        }
                      },
                      {
                        unit_name: {
                          $search: event.detail.value
                        }
                      },
                      {
                        city: {
                          $search: event.detail.value
                        }
                      }
                    ]
                  }
                },
                select: {
                  $master: true
                },
                pageSize: 5
              }
            });
            dataset.state.jobs = result.records.map(item => ({
              ...item,
              is_favorite: false
            }));
          } catch (e) {
            console.error('搜索岗位失败:', e);
          }
        }
      }
    </script>

    <!-- 以下是原有的页面结构保持不变 -->
    <style>
      .progress-bar {
        height: 6px;
        border-radius: 3px;
        background-color: #e5e7eb;
      }
      .progress-value {
        height: 100%;
        border-radius: 3px;
        background-color: #3b82f6;
      }
      .swiper-container {
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
      }
      .swiper-slide {
        display: inline-block;
        width: 80%;
        margin-right: 10px;
      }
      .category-card {
        transition: all 0.3s ease;
      }
      .category-card:active {
        transform: scale(0.95);
      }
      .job-card {
        transition: all 0.2s ease;
      }
      .job-card:active {
        transform: scale(0.98);
      }
    </style>

    <view id="container1" style="background-color: #f9fafb; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;">
      <view id="container2" style="margin: 0 auto; padding: 0 16px; padding-bottom: 64px; max-width: 448px;">
        <!-- 顶部标题栏 -->
        <view id="container3" style="padding-top: 24px; padding-bottom: 16px;">
          <Text id="text1" level="title-4" text="公考助手" style="font-size: 24px; font-weight: 700; color: #1f2937;" />
          <Text id="text2" text="助您一臂之力,圆梦公职" style="display: block; font-size: 14px; color: #6b7280; margin-top: 4px;" />
        </view>

        <!-- 搜索栏 -->
        <view id="container4" style="position: relative; margin-bottom: 24px;">
          <Input id="input1" placeholder="搜索岗位/地区/代码..." 
                style="width: 100%; padding: 12px 16px; padding-right: 40px; border-radius: 8px; border: 1px solid #d1d5db; outline: none;"
                bindinput="handleSearchInput" />
          <Icon id="icon1" name="td:search" style="position: absolute; right: 12px; top: 12px; font-size: 20px; color: #9ca3af;" />
        </view>

        <!-- 分类导航区 -->
        <view id="container5" style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 24px;">
          <view id="view1" class="category-card" style="background-color: #eff6ff; border-radius: 8px; padding: 16px; text-align: center;" bindtap="navigateTo" data-type="national">
            <Icon id="icon2" name="td:flag" style="color: #3b82f6; font-size: 24px; margin-bottom: 8px;" />
            <Text id="text3" text="国考" style="font-weight: 500; color: #1d4ed8;" />
          </view>
          <view id="view2" class="category-card" style="background-color: #ecfdf5; border-radius: 8px; padding: 16px; text-align: center;" bindtap="navigateTo" data-type="provincial">
            <Icon id="icon3" name="td:location" style="color: #10b981; font-size: 24px; margin-bottom: 8px;" />
            <Text id="text4" text="省考" style="font-weight: 500; color: #047857;" />
          </view>
          <view id="view3" class="category-card" style="background-color: #f5f3ff; border-radius: 8px; padding: 16px; text-align: center;" bindtap="navigateTo" data-type="institution">
            <Icon id="icon4" name="td:houses" style="color: #8b5cf6; font-size: 24px; margin-bottom: 8px;" />
            <Text id="text5" text="事业单位" style="font-weight: 500; color: #6d28d9;" />
          </view>
          <view id="view4" class="category-card" style="background-color: #ffedd5; border-radius: 8px; padding: 16px; text-align: center;" bindtap="navigateTo" data-type="enterprise">
            <Icon id="icon5" name="td:building" style="color: #f97316; font-size: 24px; margin-bottom: 8px;" />
            <Text id="text6" text="国企社招" style="font-weight: 500; color: #c2410c;" />
          </view>
        </view>

        <!-- 横幅广告区 -->
        <scroll-view id="scrollView1" scroll-x="true" class="swiper-container" style="margin-bottom: 24px;">
          <view id="view5" style="display: inline-block; white-space: nowrap;">
            <view id="view6" class="swiper-slide" style="background-color: #ffffff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); padding: 16px; display: inline-block; width: 80%; margin-right: 10px;">
              <view id="view7" style="display: flex; align-items: center;">
                <view id="view8" style="width: 33.33%;">
                  <Icon id="icon6" name="td:chart-pie" style="color: #3b82f6; font-size: 32px;" />
                </view>
                <view id="view9" style="width: 66.67%;">
                  <Text id="text7" text="2025事业单位招录统计" style="font-weight: 500; color: #1f2937;" />
                  <Text id="text8" text="全国招录岗位同比增长12%" style="display: block; font-size: 12px; color: #6b7280; margin-top: 4px;" />
                </view>
              </view>
            </view>
            <view id="view10" class="swiper-slide" style="background-color: #ffffff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); padding: 16px; display: inline-block; width: 80%;">
              <view id="view11" style="display: flex; align-items: center;">
                <view id="view12" style="width: 33.33%;">
                  <Icon id="icon7" name="td:calendar-1" style="color: #10b981; font-size: 32px;" />
                </view>
                <view id="view13" style="width: 66.67%;">
                  <Text id="text9" text="2025国考时间安排" style="font-weight: 500; color: #1f2937;" />
                  <Text id="text10" text="报名时间: 10月15日-24日" style="display: block; font-size: 12px; color: #6b7280; margin-top: 4px;" />
                </view>
              </view>
            </view>
          </view>
        </scroll-view>

        <!-- 热门岗位推荐区 -->
        <view id="container6" style="margin-bottom: 16px;">
          <view id="view14" style="display: flex; justify-content: space-between; align-items: center;">
            <Text id="text11" text="热门岗位推荐" style="font-size: 18px; font-weight: 600; color: #1f2937;" />
            <Text id="text12" text="查看更多 >" style="font-size: 12px; color: #3b82f6;" />
          </view>
        </view>

        <!-- 岗位列表 -->
        <view id="container7" style="display: flex; flex-direction: column; gap: 12px;">
          <block wx:for="{{dataset.state.jobs}}" wx:key="_id">
            <view id="jobCard{{index}}" class="job-card" style="background-color: #ffffff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); padding: 16px;" bindtap="viewJobDetail" data-jobId="{{item._id}}">
              <view id="view15" style="display: flex; justify-content: space-between; align-items: flex-start;">
                <view id="view16" style="width: 80%;">
                  <Text id="text13" text="{{item.post_name}}" style="font-weight: 500; color: #1f2937; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;" />
                  <Text id="text14" text="{{item.unit_name}} · {{item.city}}" style="display: block; font-size: 12px; color: #6b7280; margin-top: 4px;" />
                </view>
                <view id="view17" style="width: 20%; text-align: right;">
                  <Button id="button1" variant="text" iconType="icon-only" icon="{{item.is_favorite ? 'td:bookmark-checked' : 'td:bookmark'}}" 
                          style="color: {{item.is_favorite ? '#f59e0b' : '#d1d5db'}}; min-height: initial; font-size: 20px;" 
                          bindtap="toggleFavorite" data-jobId="{{item._id}}" />
                </view>
              </view>
              
              <view id="view18" style="margin-top: 12px;">
                <view id="view19" style="display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 4px;">
                  <Text id="text15" text="热度 {{item.hot_score}}%" style="color: #3b82f6;" />
                  <Text id="text16" text="招录 {{item.recruit_num}}人" style="color: #6b7280;" />
                </view>
                <view id="view20" class="progress-bar">
                  <view id="view21" class="progress-value" style="width: {{item.hot_score}}%;"></view>
                </view>
                <Text id="text17" text="已有 {{item.apply_num}}人报名" style="display: block; font-size: 11px; color: #9ca3af; margin-top: 4px;" />
              </view>
            </view>
          </block>
        </view>

        <!-- 底部导航栏 -->
        <view id="container8" style="position: fixed; bottom: 0; left: 0; right: 0; background-color: #ffffff; box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.1); display: flex; justify-content: space-around; align-items: center; padding: 12px 0; border-top: 1px solid #e5e7eb;">
          <view id="view22" style="text-align: center; color: #3b82f6;">
            <Icon id="icon8" name="td:home" style="font-size: 20px;" />
            <Text id="text18" text="首页" style="display: block; font-size: 11px; margin-top: 4px;" />
          </view>
          <view id="view23" style="text-align: center; color: #6b7280;">
            <Icon id="icon9" name="td:briefcase" style="font-size: 20px;" />
            <Text id="text19" text="职位" style="display: block; font-size: 11px; margin-top: 4px;" />
          </view>
          <view id="view24" style="text-align: center; color: #6b7280;">
            <Icon id="icon10" name="td:user-friends" style="font-size: 20px;" />
            <Text id="text20" text="匹配" style="display: block; font-size: 11px; margin-top: 4px;" />
          </view>
          <view id="view25" style="text-align: center; color: #6b7280;">
            <Icon id="icon11" name="td:user-circle" style="font-size: 20px;" />
            <Text id="text21" text="我的" style="display: block; font-size: 11px; margin-top: 4px;" />
          </view>
        </view>
      </view>
    </view>

实际展示效果如下图所示:

你可以通过左侧结构树自由调整每个模块的位置,也可以选中某个组件,修改样式或配置交互逻辑。比如:

  • 将搜索框与公告标题字段绑定;
  • 添加筛选按钮,支持多条件过滤;
  • 将“查看详情”按钮配置为跳转详情页并传递公告 ID。

这一步骤标志着我们的界面搭建基本完成。接下来,我们要做的,就是为这个应用注入“智能大脑”。

第四步:接入 AI 能力,实现公告内容解析与职位推荐

为了让我们的应用更加智能,我们可以集成腾讯云的 AI 能力,例如:

  • 智能解析公告内容(提取报名时间、资格条件、招录人数);
  • 推荐相关岗位(基于关键词或用户喜好);
  • 生成公告摘要(快速浏览核心内容);
  • 智能问答(如“我能报考哪些岗位?”“有哪些职位适合本科生?”)。

AI Builder 的 AI 能力接入方式

AI Builder 支持通过“函数调用”来接入后端的 AI 服务。你可以这样操作:

创建云函数 在 CloudBase 的控制台中,点击“云函数”模块,创建一个名为 ai_parse_notice 的函数。

编写 AI 逻辑 你可以集成腾讯云文智API,也可以自定义调用 OpenAI、Qwen、DeepSeek 等模型,实现对公告正文内容的解析。例如:

点击AI+板块,我们可以看到目前有三个板块,也是目前最前沿的人工智能技术应用:

目前还支持Agent自定义,Agent ,或称为 AI Agent,是以大模型为基础,具有强大的语言理解和生成能力,可以在各种领域执行复杂任务。

核心场景

能力介绍

操作指引

智能问答 Agent

零代码:🧠 支持对接垂直知识库 ✅ 支持多轮对话/意图识别/多语言场景

搭建指南

自动化智能 Agent

零代码+MCP 扩展:🧠 通过 MCP 为 AI 提供调用外部世界的能力,AI 自动拆解任务,调用 MCP 连接万物并执行

搭建指南

函数型 Agent

面向专业开发者:🧠 复杂场景 Agent,通过编码来调用 AI 大模型、 MCP 插件、知识库、对接业务数据和业务接口,实现自定义代码逻辑

搭建指南

除此之外还有知识库功能,知识库是针对一类数据、信息、知识内容的整合。通过知识库,可以将现有数据、信息、内容进行整合、向量化,并通过知识库的查询、检索、分析等操作,快速找到需要的信息。通过 Agent 和知识库的整合, Agent 可以获取到特定领域的信息或知识,在问题解答、知识问答、数据检索等场景下,可以快速、准确地基于知识库内信息进行回复。

Agent 基于 AI 大模型结合知识库的智能化解决方案,通过 Agent 可以实现智能问答、智能检索、智能客服等功能。

还包括MCP功能:

MCP 是一个开放协议,它标准化了 AI 应用如何向大语言模型(LLMs)提供上下文。可以把 MCP 想象成 AI 应用的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供了标准化方式一样,MCP 为 AI 模型连接不同的数据源和工具提供了标准化方式。

MCP 的核心采用 Client-Server 架构,一个应用程序可以连接多个 MCP Server。

只要 AI 应用实现了 MCP ,即可接入到任意的 MCP Server,扩展自身的能力。加入 MCP Server 后,工具调用的流程如下:

第五步:发布上线,生成二维码让更多人使用

当你完成页面的搭建、数据绑定和 AI 接入后,最后一步就是将小程序发布出去:

快速发布流程:

  1. 生成小程序二维码 在微搭平台点击“预览与发布”,选择小程序端,系统会生成一个可扫描的二维码。
  2. 分享给用户 将二维码分享到微信好友、备考群、公众号文章中,用户扫码即可使用,无需下载。
  3. 后期更新 页面内容、样式、数据逻辑都可以在微搭平台中随时修改并实时生效,无需重新上传审核,极大地提高了产品的灵活性。
  4. 建议设置访问权限 初期测试可以设置为“开发者可见”,上线后切换为“所有人可访问”。

通过本文的完整演示,你可以看到:只需要五分钟,不会编程的你也可以搭建一个能查询、能解析、能推荐的智能小程序

你从一个“备考用户”变成了一个“信息提供者”,可以服务成千上万的考生、学生、培训从业者。更重要的是,这个过程中你几乎没有写一行代码,一切都得益于 Serverless 和低代码时代的工具革新。

未来你可以继续扩展功能:

  • 用户登录与收藏职位
  • AI 职位智能推荐与匹配
  • 数据统计后台与热度分析
  • 小程序运营看板与访问监控
  • 多人协作编辑内容管理系统

只要你愿意,这个小程序也可以成为你自己的创业产品、课程项目,甚至是一个微型 SaaS 工具。

愿你在这条智能化的路上,迈出第一步,走得更远。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 第一步:认识腾讯云开发 CloudBase,完成环境开通
    • 什么是 CloudBase?
    • 开通 CloudBase 环境
  • 第二步:准备并上传我们的公考数据集
    • Step1:创建数据集合(等同于创建数据库表)
    • Step2:上传数据文件
    • Step3:存储类型选择建议
  • 第三步:利用 AI Builder 智能生成公考信息查询界面
    • 什么是 AI Builder?
    • 我们的目标:自动生成“公考信息查询”界面
    • 如何撰写 Prompt 提示词?
  • 第四步:接入 AI 能力,实现公告内容解析与职位推荐
    • AI Builder 的 AI 能力接入方式
  • 第五步:发布上线,生成二维码让更多人使用
    • 快速发布流程:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档