项目文件夹

0
2026-08-20 11:19:23 +00:00
2026-08-20 11:19:23 +00:00
2026-08-20 11:19:23 +00:00
2026-08-20 11:19:23 +00:00
2026-08-20 11:19:23 +00:00

武汉 OPC AI 活动共创 Demo

面向武汉一人公司(OPC)与独立创造者社区的活动提案平台。成员可以提交线下或线上活动, 也可以先用一句自然语言想法生成结构化草案,确认后再补齐真实信息并提交。

功能

  • AI 共创:输入一句活动想法,结合已填写的类型、区域、日期和场地生成活动草案。
  • 人工确认:预览草案后主动回填表单;AI 不会直接提交或覆盖真实安排。
  • 活动征集:记录活动名称、发起人、类型、区域、日期、地点、说明和私密联系方式。
  • 提案广场:公开展示活动信息,不返回提交人的联系方式。
  • 模型接入:通过 WeHub model_router 调用 OpenAI 兼容的 Chat Completions API。
  • 自动建表:函数首次访问数据库时创建 app.opc_events

页面主流程为:写下想法 → 生成 AI 草案 → 人工确认回填 → 补充真实信息 → 提交征集

WeHub 资源

  • static_site webfrontend/dist
  • function apiNode.js 20,路由 /api/cloud/*
  • postgres_database app_db:活动提案持久化
  • model_router modelsAI 活动草案生成

函数环境变量由 wehub.manifest.json 通过资源引用注入:

  • DATABASE_URL
  • OPENAI_BASE_URL
  • OPENAI_API_KEY
  • OPENAI_MODEL

模型密钥只注入后端函数,不会出现在静态页面中。

API

  • GET /api/cloud/health
  • GET /api/cloud/events
  • POST /api/cloud/events
  • POST /api/cloud/event-draft

活动想法 idea 必填,其余上下文字段可选:

{
  "idea": "想办一场独立开发者互相体验产品的周末活动",
  "category": "产品交流",
  "district": "武昌区",
  "venue": "",
  "event_date": ""
}

成功响应只包含后端校验通过的结构化字段:

{
  "ok": true,
  "draft": {
    "title": "周末产品互诊室",
    "category": "产品交流",
    "district": "武昌区",
    "venue": "武昌区交通便利、可分组交流的共享空间",
    "description": "邀请武汉独立开发者带上正在打磨的产品,通过分组体验和反馈交换真实用户视角。"
  }
}

模型输出缺字段、不是有效 JSON、类别或区域不在允许范围内、字段长度不合规时,接口返回 502, 草案不会进入表单。

本地测试

cd functions/api
npm ci
npm test

完整部署产物由 wehub-runner build 生成,不提交 .wehub/