import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() # Setup OpenRouter Client client = OpenAI( base_url="https://openrouter.ai/api/v1", api_key=os.getenv("OPENROUTER_API_KEY"), ) 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: { "akun1": { "nama_lengkap": "Nama orang Indonesia yang realistis", "email": "Email pribadi realistis berdasarkan nama", "nama_bisnis": "Nama profesional atau brand jasa (contoh: Jasa Desain Grafis Budi, Tukang AC Cepat)", "deskripsi_bisnis": "Deskripsi singkat tentang keahlian atau layanan yang ditawarkan", "lokasi": { "lat": "Latitude acak di area perkotaan Indonesia (misal: Jakarta, Bandung, atau Surabaya)", "lng": "Longitude acak di area perkotaan Indonesia", "alamat": "Alamat lengkap realistis di Indonesia", "radius": "Angka radius layanan dalam KM (antara 10-100)" }, "identitas": { "tipe": "KTP", "nomor": "16 digit angka KTP acak yang valid secara format" } }, "akun2": { "nama_lengkap": "Nama pembeli Indonesia yang realistis", "email": "Email pribadi realistis berdasarkan nama" }, "layanan": { "judul": "Judul jasa yang ditawarkan", "deskripsi": "Deskripsi lengkap layanan tersebut", "harga": "Angka saja dalam rupiah, misal 50000" }, "review": { "rating": 5, "komentar": "Komentar positif dari pembeli" } } Berikan HANYA JSON output tanpa teks lain. """ max_retries = 5 attempt = 0 while attempt < max_retries: try: response = client.chat.completions.create( model="google/gemini-flash-preview", # Updated to Gemini Flash Preview messages=[ {"role": "system", "content": "You output only valid JSON."}, {"role": "user", "content": prompt} ] ) content = response.choices[0].message.content.strip() # Strip markdown backticks if present if content.startswith("```"): content = content.split("```")[1] if content.startswith("json"): content = content[4:] content = content.split("```")[0].strip() import json return json.loads(content) except Exception as e: attempt += 1 print(f"Error generating AI data (Attempt {attempt}/{max_retries}): {e}") if attempt < max_retries: import time time.sleep(3) # Wait 3 seconds before retrying else: print("Max retries reached. AI generation failed.") raise e # Raise error instead of using static data if __name__ == "__main__": print(generate_bot_data())