update
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import os
|
||||
import json
|
||||
from openai import OpenAI
|
||||
from dotenv import load_dotenv
|
||||
|
||||
@@ -10,18 +11,91 @@ client = OpenAI(
|
||||
api_key=os.getenv("OPENROUTER_API_KEY"),
|
||||
)
|
||||
|
||||
# Load data pool
|
||||
with open('bot_data_pool.json', 'r') as f:
|
||||
data_pool = json.load(f)
|
||||
|
||||
DATA_SOURCE = os.getenv("DATA_SOURCE", "AI").upper()
|
||||
|
||||
def generate_from_pool():
|
||||
"""Mengambil data secara acak langsung dari data pool (Tanpa AI)"""
|
||||
import random
|
||||
|
||||
name1 = random.choice(data_pool['names'])
|
||||
name2 = random.choice(data_pool['names'])
|
||||
while name2 == name1:
|
||||
name2 = random.choice(data_pool['names'])
|
||||
|
||||
title = random.choice(data_pool['service_titles'])
|
||||
addr1 = random.choice(data_pool['addresses'])
|
||||
addr2 = random.choice(data_pool['addresses'])
|
||||
|
||||
return {
|
||||
"akun1": {
|
||||
"nama_lengkap": name1,
|
||||
"email": f"{name1.lower().replace(' ', '.')}@gmail.com",
|
||||
"nama_bisnis": name1,
|
||||
"deskripsi_bisnis": f"Penyedia jasa {title} profesional dan terpercaya.",
|
||||
"lokasi": {
|
||||
"lat": str(-6.2088 + (random.random() * 0.1)),
|
||||
"lng": str(106.8456 + (random.random() * 0.1)),
|
||||
"alamat": addr1,
|
||||
"radius": "50"
|
||||
},
|
||||
"identitas": {
|
||||
"tipe": "KTP",
|
||||
"nomor": str(random.randint(1000000000000000, 9999999999999999))
|
||||
}
|
||||
},
|
||||
"akun2": {
|
||||
"nama_lengkap": name2,
|
||||
"email": f"{name2.lower().replace(' ', '.')}@gmail.com"
|
||||
},
|
||||
"layanan": {
|
||||
"judul": title,
|
||||
"deskripsi": f"Saya menawarkan layanan {title} dengan hasil kualitas terbaik. Pengalaman sudah lebih dari 3 tahun di bidang ini.",
|
||||
"harga": random.choice([50000, 75000, 100000, 150000, 200000, 500000])
|
||||
},
|
||||
"review": {
|
||||
"rating": "5",
|
||||
"komentar": random.choice([
|
||||
"Sangat puas dengan hasilnya!",
|
||||
"Kerja cepat dan rapi, mantap.",
|
||||
"Sangat direkomendasikan untuk jasa ini.",
|
||||
"Komunikasi baik dan hasil sesuai ekspektasi.",
|
||||
"Terima kasih banyak, sangat membantu."
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
def generate_bot_data():
|
||||
"""
|
||||
Generate realistic Indonesian persona and service data using OpenRouter.
|
||||
"""
|
||||
prompt = """
|
||||
Kamu adalah pembuat data realistis untuk platform Microjob/Gig Economy di Indonesia.
|
||||
Buat 1 set data dalam format JSON yang berisi:
|
||||
"""Menghasilkan data bot berdasarkan DATA_SOURCE (AI atau POOL)"""
|
||||
|
||||
if DATA_SOURCE == "POOL":
|
||||
return generate_from_pool()
|
||||
|
||||
# Jika mode AI
|
||||
prompt = f"""
|
||||
Anda adalah asisten AI yang bertugas men-generate data JSON untuk simulasi marketplace jasa (Microjob).
|
||||
|
||||
GUIDELINE PENAMAAN (Wajib Diikuti):
|
||||
- Nama Orang: Gunakan referensi seperti {data_pool['names'][:10]}... (Hanya nama asli orang Indonesia).
|
||||
- Nama Bisnis: HARUS sama dengan Nama Lengkap orang tersebut (Jangan gunakan tambahan 'Design', 'Solusi', dll).
|
||||
- Judul Layanan: Gunakan pola seperti {data_pool['service_titles'][:5]}...
|
||||
- Judul Job: Gunakan pola seperti {data_pool['job_titles'][:5]}...
|
||||
- Alamat: Gunakan referensi pola seperti {data_pool['addresses'][:5]}...
|
||||
|
||||
Aturan Tambahan:
|
||||
1. JANGAN gunakan nama artis, tokoh publik, atau selebriti.
|
||||
2. JANGAN ada kata 'bot' di data manapun.
|
||||
3. Output harus valid JSON.
|
||||
|
||||
Struktur JSON:
|
||||
{
|
||||
"akun1": {
|
||||
"nama_lengkap": "Nama asli orang Indonesia yang realistis (Hanya nama orang, misal: Budi Santoso, Siti Aminah)",
|
||||
"nama_lengkap": "Nama asli orang Indonesia yang realistis. JANGAN gunakan nama artis, tokoh publik, atau selebriti (Hanya nama orang biasa, misal: Budi Santoso, Siti Aminah)",
|
||||
"email": "Email pribadi realistis berdasarkan nama",
|
||||
"nama_bisnis": "Nama brand jasa profesional (misal: Budi Design, CV Sejuk Jaya)",
|
||||
"nama_bisnis": "Gunakan nama orang saja (Hanya nama, jangan gunakan tambahan 'Solusi Digital', 'Design', 'Jasa', dll)",
|
||||
"deskripsi_bisnis": "Deskripsi singkat tentang keahlian atau layanan yang ditawarkan",
|
||||
"lokasi": {
|
||||
"lat": "Latitude acak di area perkotaan Indonesia (misal: Jakarta, Bandung, atau Surabaya)",
|
||||
@@ -35,7 +109,7 @@ def generate_bot_data():
|
||||
}
|
||||
},
|
||||
"akun2": {
|
||||
"nama_lengkap": "Nama asli pembeli Indonesia yang realistis (Hanya nama orang)",
|
||||
"nama_lengkap": "Nama asli pembeli Indonesia yang realistis. JANGAN gunakan nama artis atau selebriti (Hanya nama orang biasa)",
|
||||
"email": "Email pribadi realistis berdasarkan nama"
|
||||
},
|
||||
"layanan": {
|
||||
|
||||
Reference in New Issue
Block a user