项目文件夹
您已经派生过 yf-volcguid-test
7c5a7bc78a
Co-authored-by: Cursor <cursoragent@cursor.com>
武汉 OPC AI 活动共创 Demo
面向武汉一人公司(OPC)与独立创造者社区的活动提案平台。成员可以提交线下或线上活动, 也可以先用一句自然语言想法生成结构化草案,确认后再补齐真实信息并提交。
功能
- AI 共创:输入一句活动想法,结合已填写的类型、区域、日期和场地生成活动草案。
- 人工确认:预览草案后主动回填表单;AI 不会直接提交或覆盖真实安排。
- 活动征集:记录活动名称、发起人、类型、区域、日期、地点、说明和私密联系方式。
- 提案广场:公开展示活动信息,不返回提交人的联系方式。
- 模型接入:通过 WeHub
model_router调用 OpenAI 兼容的 Chat Completions API。 - 自动建表:函数首次访问数据库时创建
app.opc_events。
页面主流程为:写下想法 → 生成 AI 草案 → 人工确认回填 → 补充真实信息 → 提交征集。
WeHub 资源
static_site web:frontend/distfunction api:Node.js 20,路由/api/cloud/*postgres_database app_db:活动提案持久化model_router models:AI 活动草案生成
函数环境变量由 wehub.manifest.json 通过资源引用注入:
DATABASE_URLOPENAI_BASE_URLOPENAI_API_KEYOPENAI_MODEL
模型密钥只注入后端函数,不会出现在静态页面中。
API
GET /api/cloud/healthGET /api/cloud/eventsPOST /api/cloud/eventsPOST /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/。