feat: add new folder
This commit is contained in:
32
gig-poc/packages/sample-data/categories.json
Normal file
32
gig-poc/packages/sample-data/categories.json
Normal file
@@ -0,0 +1,32 @@
|
||||
[
|
||||
"促销",
|
||||
"地推",
|
||||
"导购",
|
||||
"会展",
|
||||
"分拣",
|
||||
"客服",
|
||||
"安装",
|
||||
"配送",
|
||||
"仓储",
|
||||
"活动执行",
|
||||
"礼仪",
|
||||
"数据录入",
|
||||
"盘点",
|
||||
"装卸",
|
||||
"直播协助",
|
||||
"社群运营",
|
||||
"收银",
|
||||
"拣货",
|
||||
"线下推广",
|
||||
"电话销售",
|
||||
"问卷调研",
|
||||
"样品派发",
|
||||
"售后服务",
|
||||
"展台搭建",
|
||||
"酒店服务",
|
||||
"商超导购",
|
||||
"会场服务",
|
||||
"物流协助",
|
||||
"活动控场",
|
||||
"物料执行"
|
||||
]
|
||||
183
gig-poc/packages/sample-data/generate_sample_data.py
Normal file
183
gig-poc/packages/sample-data/generate_sample_data.py
Normal file
@@ -0,0 +1,183 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import random
|
||||
from datetime import datetime, timedelta
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parent
|
||||
random.seed(42)
|
||||
|
||||
skills = [
|
||||
"签到",
|
||||
"引导",
|
||||
"登记",
|
||||
"促销",
|
||||
"地推",
|
||||
"导购",
|
||||
"会展接待",
|
||||
"分拣",
|
||||
"打包",
|
||||
"客服",
|
||||
"电话邀约",
|
||||
"安装",
|
||||
"配送",
|
||||
"仓储",
|
||||
"陈列",
|
||||
"数据录入",
|
||||
"物料搬运",
|
||||
"收银",
|
||||
"盘点",
|
||||
"直播协助",
|
||||
"短视频拍摄",
|
||||
"面销",
|
||||
"海报派发",
|
||||
"问卷访问",
|
||||
"现场执行",
|
||||
"活动控场",
|
||||
"礼仪接待",
|
||||
"样品派发",
|
||||
"售后支持",
|
||||
"装卸",
|
||||
"拣货",
|
||||
"骑手配送",
|
||||
"司机协助",
|
||||
"设备调试",
|
||||
"展台搭建",
|
||||
"线上客服",
|
||||
"社群运营",
|
||||
"线索收集",
|
||||
"POS操作",
|
||||
"报表整理",
|
||||
]
|
||||
|
||||
extra_skills = [f"扩展技能{i:02d}" for i in range(1, 61)]
|
||||
skills = (skills + extra_skills)[:100]
|
||||
|
||||
categories = [
|
||||
"促销",
|
||||
"地推",
|
||||
"导购",
|
||||
"会展",
|
||||
"分拣",
|
||||
"客服",
|
||||
"安装",
|
||||
"配送",
|
||||
"仓储",
|
||||
"活动执行",
|
||||
"礼仪",
|
||||
"数据录入",
|
||||
"盘点",
|
||||
"装卸",
|
||||
"直播协助",
|
||||
"社群运营",
|
||||
"收银",
|
||||
"拣货",
|
||||
"线下推广",
|
||||
"电话销售",
|
||||
"问卷调研",
|
||||
"样品派发",
|
||||
"售后服务",
|
||||
"展台搭建",
|
||||
"酒店服务",
|
||||
"商超导购",
|
||||
"会场服务",
|
||||
"物流协助",
|
||||
"活动控场",
|
||||
"物料执行",
|
||||
]
|
||||
|
||||
regions = [
|
||||
{"city": "深圳", "region": "南山"},
|
||||
{"city": "深圳", "region": "福田"},
|
||||
{"city": "深圳", "region": "宝安"},
|
||||
{"city": "深圳", "region": "龙岗"},
|
||||
{"city": "深圳", "region": "罗湖"},
|
||||
{"city": "广州", "region": "天河"},
|
||||
{"city": "广州", "region": "海珠"},
|
||||
{"city": "广州", "region": "番禺"},
|
||||
{"city": "广州", "region": "白云"},
|
||||
{"city": "广州", "region": "越秀"},
|
||||
{"city": "上海", "region": "浦东"},
|
||||
{"city": "上海", "region": "徐汇"},
|
||||
{"city": "上海", "region": "静安"},
|
||||
{"city": "上海", "region": "闵行"},
|
||||
{"city": "上海", "region": "杨浦"},
|
||||
{"city": "杭州", "region": "西湖"},
|
||||
{"city": "杭州", "region": "滨江"},
|
||||
{"city": "杭州", "region": "余杭"},
|
||||
{"city": "成都", "region": "高新"},
|
||||
{"city": "成都", "region": "武侯"},
|
||||
]
|
||||
|
||||
time_tags = ["weekend", "weekday_am", "weekday_pm", "anytime"]
|
||||
experience_tags = ["商场", "会展", "活动执行", "物流", "零售", "校园推广", "客服中心", "展台", "仓库", "快消"]
|
||||
work_modes = ["排班制", "兼职", "临时工", "项目制"]
|
||||
|
||||
|
||||
def region_label(item: dict) -> str:
|
||||
return f"{item['city']}{item['region']}"
|
||||
|
||||
|
||||
jobs = []
|
||||
for index in range(1, 101):
|
||||
region = random.choice(regions)
|
||||
category = random.choice(categories)
|
||||
job_skills = random.sample(skills[:40], k=random.randint(3, 5))
|
||||
start_at = datetime(2026, 4, 1, 9, 0, 0) + timedelta(days=random.randint(0, 20), hours=random.choice([0, 4, 8]))
|
||||
tags = list(set(random.sample(experience_tags, k=2) + [random.choice(["女生优先", "有经验优先", "可连做优先", "沟通好"]) ]))
|
||||
salary_amount = random.choice([120, 150, 180, 200, 220, 260, 300])
|
||||
jobs.append(
|
||||
{
|
||||
"job_id": f"job_{index:03d}",
|
||||
"title": f"{category}兼职{index:03d}",
|
||||
"category": category,
|
||||
"description": f"{start_at.month}月{start_at.day}日{region['city']}{region['region']}需要{random.randint(1,4)}名{category}兼职,负责{'、'.join(job_skills[:3])},{random.randint(4,8)}小时,{salary_amount}元/天。",
|
||||
"skills": job_skills,
|
||||
"city": region["city"],
|
||||
"region": region["region"],
|
||||
"location_detail": f"{region_label(region)}核心商圈点位{random.randint(1, 20)}号",
|
||||
"start_time": start_at.isoformat() + "+08:00",
|
||||
"duration_hours": random.randint(4, 8),
|
||||
"headcount": random.randint(1, 4),
|
||||
"salary": {"type": "daily", "amount": salary_amount, "currency": "CNY"},
|
||||
"work_mode": random.choice(work_modes),
|
||||
"tags": tags,
|
||||
"confidence": round(random.uniform(0.82, 0.96), 2),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
workers = []
|
||||
family_names = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜"
|
||||
given_names = ["伟", "芳", "娜", "敏", "静", "磊", "洋", "勇", "艳", "杰", "娟", "涛", "明", "超", "秀英", "霞"]
|
||||
for index in range(1, 301):
|
||||
primary_region = random.choice(regions)
|
||||
extra_region = random.choice([r for r in regions if r["city"] == primary_region["city"] and r["region"] != primary_region["region"]])
|
||||
worker_skills = random.sample(skills[:40], k=random.randint(3, 6))
|
||||
name = random.choice(list(family_names)) + random.choice(given_names)
|
||||
availability = random.sample(time_tags, k=random.randint(1, 2))
|
||||
exp_tags = list(set(random.sample(experience_tags, k=2) + [random.choice(categories[:10])]))
|
||||
workers.append(
|
||||
{
|
||||
"worker_id": f"worker_{index:03d}",
|
||||
"name": name,
|
||||
"description": f"我做过{'、'.join(exp_tags[:2])}相关兼职,擅长{'、'.join(worker_skills[:3])},平时{ '和'.join(availability) }都能接单,{primary_region['region']}和{extra_region['region']}都方便。",
|
||||
"skills": [{"name": item, "score": round(random.uniform(0.62, 0.94), 2)} for item in worker_skills],
|
||||
"cities": [primary_region["city"]],
|
||||
"regions": [primary_region["region"], extra_region["region"]],
|
||||
"availability": availability,
|
||||
"experience_tags": exp_tags,
|
||||
"reliability_score": round(random.uniform(0.65, 0.95), 2),
|
||||
"profile_completion": round(random.uniform(0.55, 0.98), 2),
|
||||
"confidence": round(random.uniform(0.8, 0.96), 2),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
(ROOT / "skills.json").write_text(json.dumps(skills, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
(ROOT / "categories.json").write_text(json.dumps(categories, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
(ROOT / "regions.json").write_text(json.dumps(regions, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
(ROOT / "jobs.json").write_text(json.dumps(jobs, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
(ROOT / "workers.json").write_text(json.dumps(workers, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
2999
gig-poc/packages/sample-data/jobs.json
Normal file
2999
gig-poc/packages/sample-data/jobs.json
Normal file
File diff suppressed because it is too large
Load Diff
82
gig-poc/packages/sample-data/regions.json
Normal file
82
gig-poc/packages/sample-data/regions.json
Normal file
@@ -0,0 +1,82 @@
|
||||
[
|
||||
{
|
||||
"city": "深圳",
|
||||
"region": "南山"
|
||||
},
|
||||
{
|
||||
"city": "深圳",
|
||||
"region": "福田"
|
||||
},
|
||||
{
|
||||
"city": "深圳",
|
||||
"region": "宝安"
|
||||
},
|
||||
{
|
||||
"city": "深圳",
|
||||
"region": "龙岗"
|
||||
},
|
||||
{
|
||||
"city": "深圳",
|
||||
"region": "罗湖"
|
||||
},
|
||||
{
|
||||
"city": "广州",
|
||||
"region": "天河"
|
||||
},
|
||||
{
|
||||
"city": "广州",
|
||||
"region": "海珠"
|
||||
},
|
||||
{
|
||||
"city": "广州",
|
||||
"region": "番禺"
|
||||
},
|
||||
{
|
||||
"city": "广州",
|
||||
"region": "白云"
|
||||
},
|
||||
{
|
||||
"city": "广州",
|
||||
"region": "越秀"
|
||||
},
|
||||
{
|
||||
"city": "上海",
|
||||
"region": "浦东"
|
||||
},
|
||||
{
|
||||
"city": "上海",
|
||||
"region": "徐汇"
|
||||
},
|
||||
{
|
||||
"city": "上海",
|
||||
"region": "静安"
|
||||
},
|
||||
{
|
||||
"city": "上海",
|
||||
"region": "闵行"
|
||||
},
|
||||
{
|
||||
"city": "上海",
|
||||
"region": "杨浦"
|
||||
},
|
||||
{
|
||||
"city": "杭州",
|
||||
"region": "西湖"
|
||||
},
|
||||
{
|
||||
"city": "杭州",
|
||||
"region": "滨江"
|
||||
},
|
||||
{
|
||||
"city": "杭州",
|
||||
"region": "余杭"
|
||||
},
|
||||
{
|
||||
"city": "成都",
|
||||
"region": "高新"
|
||||
},
|
||||
{
|
||||
"city": "成都",
|
||||
"region": "武侯"
|
||||
}
|
||||
]
|
||||
20
gig-poc/packages/sample-data/skill_relations.json
Normal file
20
gig-poc/packages/sample-data/skill_relations.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"签到": ["登记", "引导", "会展接待"],
|
||||
"登记": ["签到", "数据录入"],
|
||||
"引导": ["签到", "礼仪接待", "现场执行"],
|
||||
"促销": ["导购", "面销", "样品派发"],
|
||||
"导购": ["促销", "陈列", "收银"],
|
||||
"会展接待": ["礼仪接待", "签到", "现场执行"],
|
||||
"分拣": ["拣货", "打包", "仓储"],
|
||||
"打包": ["分拣", "装卸"],
|
||||
"客服": ["线上客服", "电话邀约", "售后支持"],
|
||||
"安装": ["设备调试", "展台搭建"],
|
||||
"配送": ["骑手配送", "司机协助", "装卸"],
|
||||
"仓储": ["分拣", "拣货", "盘点"],
|
||||
"数据录入": ["报表整理", "登记"],
|
||||
"装卸": ["物料搬运", "打包", "配送"],
|
||||
"展台搭建": ["设备调试", "活动控场"],
|
||||
"电话邀约": ["客服", "线索收集"],
|
||||
"社群运营": ["线上客服", "线索收集"],
|
||||
"盘点": ["仓储", "收银", "POS操作"]
|
||||
}
|
||||
102
gig-poc/packages/sample-data/skills.json
Normal file
102
gig-poc/packages/sample-data/skills.json
Normal file
@@ -0,0 +1,102 @@
|
||||
[
|
||||
"签到",
|
||||
"引导",
|
||||
"登记",
|
||||
"促销",
|
||||
"地推",
|
||||
"导购",
|
||||
"会展接待",
|
||||
"分拣",
|
||||
"打包",
|
||||
"客服",
|
||||
"电话邀约",
|
||||
"安装",
|
||||
"配送",
|
||||
"仓储",
|
||||
"陈列",
|
||||
"数据录入",
|
||||
"物料搬运",
|
||||
"收银",
|
||||
"盘点",
|
||||
"直播协助",
|
||||
"短视频拍摄",
|
||||
"面销",
|
||||
"海报派发",
|
||||
"问卷访问",
|
||||
"现场执行",
|
||||
"活动控场",
|
||||
"礼仪接待",
|
||||
"样品派发",
|
||||
"售后支持",
|
||||
"装卸",
|
||||
"拣货",
|
||||
"骑手配送",
|
||||
"司机协助",
|
||||
"设备调试",
|
||||
"展台搭建",
|
||||
"线上客服",
|
||||
"社群运营",
|
||||
"线索收集",
|
||||
"POS操作",
|
||||
"报表整理",
|
||||
"扩展技能01",
|
||||
"扩展技能02",
|
||||
"扩展技能03",
|
||||
"扩展技能04",
|
||||
"扩展技能05",
|
||||
"扩展技能06",
|
||||
"扩展技能07",
|
||||
"扩展技能08",
|
||||
"扩展技能09",
|
||||
"扩展技能10",
|
||||
"扩展技能11",
|
||||
"扩展技能12",
|
||||
"扩展技能13",
|
||||
"扩展技能14",
|
||||
"扩展技能15",
|
||||
"扩展技能16",
|
||||
"扩展技能17",
|
||||
"扩展技能18",
|
||||
"扩展技能19",
|
||||
"扩展技能20",
|
||||
"扩展技能21",
|
||||
"扩展技能22",
|
||||
"扩展技能23",
|
||||
"扩展技能24",
|
||||
"扩展技能25",
|
||||
"扩展技能26",
|
||||
"扩展技能27",
|
||||
"扩展技能28",
|
||||
"扩展技能29",
|
||||
"扩展技能30",
|
||||
"扩展技能31",
|
||||
"扩展技能32",
|
||||
"扩展技能33",
|
||||
"扩展技能34",
|
||||
"扩展技能35",
|
||||
"扩展技能36",
|
||||
"扩展技能37",
|
||||
"扩展技能38",
|
||||
"扩展技能39",
|
||||
"扩展技能40",
|
||||
"扩展技能41",
|
||||
"扩展技能42",
|
||||
"扩展技能43",
|
||||
"扩展技能44",
|
||||
"扩展技能45",
|
||||
"扩展技能46",
|
||||
"扩展技能47",
|
||||
"扩展技能48",
|
||||
"扩展技能49",
|
||||
"扩展技能50",
|
||||
"扩展技能51",
|
||||
"扩展技能52",
|
||||
"扩展技能53",
|
||||
"扩展技能54",
|
||||
"扩展技能55",
|
||||
"扩展技能56",
|
||||
"扩展技能57",
|
||||
"扩展技能58",
|
||||
"扩展技能59",
|
||||
"扩展技能60"
|
||||
]
|
||||
13194
gig-poc/packages/sample-data/workers.json
Normal file
13194
gig-poc/packages/sample-data/workers.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user