43 lines
2.5 KiB
Python
43 lines
2.5 KiB
Python
# -*- 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()
|