# -*- coding: utf-8 -*- """ 演示数据初始化:首次启动时灌入示例项目 + Worker(不自动执行,避免产生费用) 用法: python3 seed.py """ import db def main(): db.init_db() if db.q('SELECT COUNT(*) c FROM projects')[0]['c'] > 0: print('已有数据,跳过种子初始化') return pid = db.w( 'INSERT INTO projects (name, description, objective, acceptance_criteria, status, budget_limit, created_at, updated_at) ' 'VALUES (?,?,?,?,?,?,?,?)', ('营销内容批量生产(演示)', '为新品「智能保温杯」批量生产小红书/抖音种草内容,跑通「人派活 → AI 干活 → 人验收」闭环', '一周内产出 20 篇高转化种草文案,覆盖 5 个核心卖点', '每篇文案 ≥300 字、包含 3 个卖点、无违禁词、风格符合平台调性', 'active', 50, db.now(), db.now())) wid = db.w( 'INSERT INTO workers (name, description, provider, model, system_prompt, temperature, max_tokens, task_cost_limit, monthly_cost_limit, status, created_at, updated_at) ' 'VALUES (?,?,?,?,?,?,?,?,?,?,?,?)', ('文案小助手', '小红书/抖音种草文案专家', 'doubao', 'doubao-seed-evolving', '你是资深社交媒体文案专家,擅长小红书种草文案。输出要求:标题吸睛、正文≥300字、自然融入卖点、结尾带话题标签、不用违禁词。', 0.8, 2000, 5, 30, 'enabled', db.now(), db.now())) for i, (title, desc) in enumerate([ ('生成 3 条小红书种草标题', '为「智能保温杯」生成 3 条小红书风格种草标题,每条不超过 20 字,突出「保温 12 小时」卖点。'), ('写一篇办公室场景种草笔记', '写一篇小红书种草笔记:场景是办公室白领,痛点是不想喝凉水,产品是智能保温杯,要求 300-400 字,带 5 个话题标签。'), ('生成抖音口播脚本', '为抖音生成一条 30 秒口播脚本:智能保温杯开箱体验,节奏明快,结尾引导点赞关注。'), ]): db.w('INSERT INTO tasks (project_id, worker_id, title, description, priority, review_required, deadline, created_at, updated_at) ' 'VALUES (?,?,?,?,?,?,?,?,?)', (pid, wid if i == 0 else None, title, desc, 'medium', 1, '', db.now(), db.now())) print(f' 已创建演示任务:{title}') print('✅ 演示数据初始化完成:1 个项目 / 1 个 Worker / 3 个任务') if __name__ == '__main__': main()