from pydantic import BaseModel from fastapi import FastAPI from transformers import AutoTokenizer, AutoModel import torch import faiss import os import requests import re import pandas as pd data = [ { "influencer_uid": "id-imam-00", "description": """Imam Santoso adalah dosen di Institut Teknologi Bandung (ITB), khususnya di Fakultas Teknik Pertambangan dan Perminyakan. Beliau menyelesaikan pendidikan Sarjana di ITB, Magister di University of Queensland, dan Doktor di Aalto University, Finlandia. Imam memiliki keahlian dalam teknik metalurgi, khususnya dalam termodinamika material, produksi material suhu tinggi, dan ekstraksi logam​ (Institut Teknologi Bandung)​​ (Metallurgy_ITB)​. Sebagai seorang edu content creator, Imam aktif menyebarkan penelitiannya melalui berbagai platform media sosial. Dengan lebih dari 134.000 pengikut, beliau menggunakan media sosial untuk mempromosikan hasil risetnya dan berinteraksi dengan audiens yang lebih luas. Imam percaya bahwa penggunaan media sosial dapat menyederhanakan konteks akademis yang kompleks dan meningkatkan dampak dari karya akademik​ """, "name": "Imam Santoso" }, { "influencer_uid": "id-iben-01", "description": """Iben is a vibrant and passionate food influencer who has made a name for himself in the culinary world through his engaging content and exquisite taste. With a love for exploring diverse cuisines, Iben shares his culinary adventures on social media, captivating his audience with mouth-watering photos, detailed reviews, and innovative recipes. Known for his authenticity and connection with his followers, Iben has a knack for uncovering hidden gems in the food scene and presenting them in an appealing and relatable way. Whether he’s sampling street food or dining at high-end restaurants, Iben’s content is a delightful mix of gastronomic expertise and genuine enthusiasm for all things food.""", "name": "Iben Suriben" }, { "influencer_uid": "id-tirta-02", "description": """Dr. Tirta Mandira Hudhi, widely known as Dr. Tirta, is a prominent influencer and respected medical professional. Combining his expertise as a doctor with his entrepreneurial spirit, Dr. Tirta has built a unique brand that resonates with a wide audience. He holds a medical degree from Universitas Gadjah Mada and an M.B.A. from Institut Teknologi Bandung, demonstrating a strong foundation in both healthcare and business. Dr. Tirta gained widespread recognition during the COVID-19 pandemic for his proactive efforts in public health education and advocacy. He utilized his platform to promote health protocols and telemedicine, earning trust and admiration from his followers. His ability to convey complex medical information in an engaging and accessible manner sets him apart as a reliable source of knowledge and inspiration. Beyond his medical endeavors, Dr. Tirta is deeply entrenched in the fashion and sneaker industry, where he combines his love for street culture with business acumen. This diverse expertise allows him to connect with a broad demographic, making him an ideal influencer for brands looking to engage with health-conscious and trend-savvy consumers. As a job market influencer, Dr. Tirta offers a compelling mix of professional credibility and relatable content. His dedication to improving public health, combined with his entrepreneurial mindset and cultural influence, makes him a valuable asset for any brand seeking to make a positive impact while reaching a diverse and engaged audience.""", "name": "Tirta Hudhi" }, { "influencer_uid": "id-tasya-03", "description": """Tasya Farasya is a renowned beauty influencer, entrepreneur, and content creator with a substantial following across multiple social media platforms. With a background in dentistry from Universitas Trisakti, Tasya transitioned her passion for makeup and beauty into a successful career, becoming one of Indonesia's most influential beauty figures. Tasya is the founder and CEO of Mother of Pearl (MOP) Beauty, a cosmetic brand that reflects her commitment to high-quality and innovative beauty products. Her engaging content, which includes makeup tutorials, product reviews, and beauty tips, has garnered millions of followers on YouTube and Instagram. Her authenticity and expertise have earned her the trust and admiration of a diverse audience, from beauty enthusiasts to professional makeup artists. Known for her creative approach and trendsetting style, Tasya has collaborated with numerous international and local beauty brands, significantly impacting purchasing decisions with her endorsements. Her ability to connect with her audience through relatable and informative content has solidified her position as a leading influencer in the beauty industry. As a job market influencer, Tasya Farasya brings a wealth of experience, a broad audience reach, and a keen understanding of the beauty industry. Her dynamic presence and innovative mindset make her an invaluable partner for brands seeking to enhance their visibility and engage with a dedicated and enthusiastic community.""", "name": "Tasya Farsya" }, { "influencer_uid": "id-hawariyun-04", "description": """Hawariyun adalah seorang microinfluencer Islami yang aktif di platform media sosial, terutama Instagram. Ia dikenal karena kemampuannya menyampaikan narasi agama yang menarik dan mudah dipahami, khususnya bagi generasi muda. Hawariyun menggunakan berbagai fitur di Instagram untuk mendekatkan diri dengan pengikutnya, seperti kuis dan sesi tanya jawab (Q&A). Fitur-fitur ini tidak hanya membuat konten lebih interaktif tetapi juga membantu menjawab pertanyaan keagamaan dari pengikutnya secara langsung. Selain itu, ia sering membagikan cerita pribadi, seperti kegiatan sehari-hari dan tips keagamaan, yang membuat pengikut merasa lebih terhubung secara personal. Konten Hawariyun berfokus pada moral dan ajaran agama yang umum, menghindari polemik dan lebih bersifat inklusif. Narasinya dirancang agar mudah dipahami dan relevan dengan kehidupan sehari-hari anak muda. Misalnya, ia sering memulai hari Jumat dengan mengingatkan pengikutnya untuk membaca surah Al-Kahfi, yang dianggap meningkatkan kesadaran spiritual di kalangan anak muda​.""" ,"name": "Hawariyun" }, { "influencer_uid": "id-agusp-05", "description": """Agus Prayogo adalah seorang atlet lari jarak jauh Indonesia yang juga berperan sebagai perwira di TNI Angkatan Darat. Lahir di Bogor pada 23 Agustus 1985, Agus telah mencatat berbagai prestasi gemilang di dunia atletik. Kariernya di dunia olahraga dimulai sejak remaja, dan ia telah berpartisipasi dalam banyak kompetisi internasional, termasuk SEA Games, di mana ia berhasil meraih tujuh medali emas dalam berbagai nomor lari​. Agus Prayogo dikenal karena keahliannya dalam nomor lari jarak jauh seperti 5.000 meter, 10.000 meter, dan maraton. Selain itu, ia juga pernah menjadi juara dalam ASEAN School Games dan beberapa kompetisi nasional lainnya. Perjalanan kariernya tidak selalu mulus; ia sempat mengalami kejenuhan dan vakum dari dunia atletik, tetapi berhasil bangkit kembali setelah bergabung dengan TNI​. Di luar prestasinya di dunia atletik, Agus juga aktif sebagai konten kreator yang berbagi mengenai pengalaman dan tips latihan di media sosial. Ia menggunakan platform seperti Instagram untuk membagikan kegiatannya sehari-hari, memberikan motivasi, dan berinteraksi dengan para pengikutnya. Dengan pendekatan yang autentik dan dekat dengan audiens, Agus berhasil menginspirasi banyak orang untuk menjalani gaya hidup sehat dan aktif​.""" ,"name": "Agus Prayogo" }, { "influencer_uid": "id-eza-06", "description": """Eza Hazami adalah seorang influencer karir dan HR yang aktif membagikan tips dan trik seputar dunia kerja melalui berbagai platform media sosial seperti YouTube, Instagram, TikTok, dan Twitter. Dengan lebih dari 554 ribu subscriber di YouTube, Eza sering memberikan wawasan dan saran yang berguna bagi mereka yang sedang mencari pekerjaan, baik fresh graduates maupun profesional yang telah berpengalaman. Sebagai seorang HR practitioner dan spesialis Employer Branding, Eza Hazami memiliki pengalaman kerja di beberapa perusahaan besar, termasuk PT Mandom Indonesia Tbk dan startup saham Stockbit. Dalam perannya, ia memberikan panduan tentang berbagai aspek rekrutmen, seperti persiapan wawancara, cara membuat CV yang menarik, dan tips menghadapi proses seleksi lainnya​. Eza dikenal karena kontennya yang edukatif dan praktis, yang mencakup empat tahap utama dalam menghadapi wawancara kerja: persiapan sebelum wawancara, interaksi selama wawancara, cara mempromosikan diri, dan ucapan terima kasih setelah wawancara. Pendekatan yang personal dan detail ini membantu para pencari kerja untuk tampil lebih percaya diri dan profesional di mata HR​.""" ,"name": "Eza Hazami" }, { "influencer_uid": "id-putri-07", "description": """Putri Tanjung merupakan anak sulung dari Chairul Tanjung, seorang pengusaha ternama di Indonesia. Putri dikenal sebagai CEO dari Creativepreneur Event Creator dan Trans Digital Lifestyle Group, yang mencakup platform seperti Female Daily, Beautynesia, HaiBunda, dan CXO Media. Selain itu, ia juga menjabat sebagai Chief Experience Officer di Allobank dan staf khusus Presiden Joko Widodo. Putri memulai kariernya di dunia bisnis sejak usia 15 tahun dengan mendirikan event organizer bernama El Paradiso. Pada tahun 2014, ia mendirikan Creativepreneur Event Creator, yang telah menyelenggarakan lebih dari 30 acara dengan total lebih dari 3,2 juta peserta. Inisiatif ini bertujuan untuk mendorong kewirausahaan di kalangan generasi muda, khususnya dalam industri kreatif​. Sebagai influencer, Putri sering membagikan pandangan dan pengalamannya tentang dunia bisnis, kewirausahaan, dan inovasi melalui berbagai platform media sosial. Ia dikenal tidak hanya karena latar belakang keluarganya yang berpengaruh tetapi juga karena dedikasinya dalam membantu dan menginspirasi generasi muda Indonesia untuk berwirausaha dan berinovasi. Salah satu program yang diprakarsainya adalah Elevate Women, yang berfokus pada pemberdayaan perempuan dalam bisnis​. """, "name": "Putri Tanjung" }, { "influencer_uid": "id-anggi-08", "description": """ Anggriawan S. adalah seorang influencer di dunia lari yang dikenal karena pencapaiannya sebagai finisher di Tokyo Marathon dan sebagai pacer untuk Pocari Bandung Marathon dalam kategori full marathon. Selain itu, ia adalah anggota aktif dari ASICS Running Club. Anggriawan juga menjabat sebagai ketua komunitas lari Code Runner yang terdiri dari alumni ITB. Sebagai seorang pelari yang berdedikasi, Anggriawan sering berbagi pengalamannya dalam berbagai lomba lari, memberikan tips latihan, dan membagikan motivasi kepada pengikutnya di media sosial. Ia dikenal karena pendekatannya yang inspiratif dan praktis dalam dunia lari, serta kemampuannya untuk memotivasi orang lain untuk menjaga kesehatan dan kebugaran melalui olahraga. """, "name": "Anggriawan Sugianto" }, { "influencer_uid": "id-ibam-09", "description": """ Ibrahim Arief adalah Chief Technology Officer (CTO) di GovTech Edu, sebuah organisasi yang berfokus pada pengembangan teknologi pendidikan di Indonesia. Ibrahim memiliki pengalaman luas dalam industri teknologi, termasuk perannya sebagai Vice President of Engineering di beberapa perusahaan unicorn. Kariernya di bidang teknologi mencakup memimpin tim yang terdiri dari 200 hingga 600 insinyur untuk membangun dan mengimplementasikan solusi teknologi yang berdampak bagi jutaan pengguna di Indonesia. Ibrahim sangat percaya pada kekuatan transformasional teknologi dalam menyelesaikan masalah kompleks dan meningkatkan kualitas hidup masyarakat. Selain itu, platform Twitter Ibrahim diikuti oleh banyak orang, menunjukkan pengaruhnya yang signifikan dalam komunitas teknologi dan pendidikan. Di sana, ia sering berbagi wawasan tentang teknologi, inovasi, dan kepemimpinan, serta upayanya untuk menginspirasi generasi muda dalam memanfaatkan teknologi untuk tujuan pendidikan dan sosial.""", "name": "Ibrahim Arief" }, { "influencer_uid": "id-rakean-10", "description": """ Rakean Radya Albara adalah seorang influencer yang aktif di berbagai platform media sosial seperti Medium, Twitter, dan YouTube. Sebagai mahasiswa Manajemen Rekayasa di Institut Teknologi Bandung (ITB), Rakean tidak hanya berprestasi dalam akademik tetapi juga aktif berbagi wawasan dan pengalaman melalui tulisan dan video. Medium: Rakean dikenal melalui tulisan-tulisannya yang inspiratif dan mendalam, mengumpulkan pengalaman perjalanannya dan membagikannya setiap Jumat (dan kadang Rabu). Dengan banyak pengikut di Medium, Rakean sering membahas berbagai topik dari refleksi pribadi hingga ulasan film. Twitter: Di Twitter, Rakean aktif berinteraksi dengan pengikutnya, berbagi pemikiran harian, pandangan tentang isu-isu terkini, dan inspirasi. YouTube: Di platform ini, Rakean berbagi berbagai jenis konten, termasuk wawasan dari bacaan, pengalaman pribadi, dan perjalanan hidup sebagai mahasiswa dan pelajar di luar negeri. """, "name": "Rakean Radya" }, { "influencer_uid": "id-farhatan-11", "description": """ Farhatan Fajri adalah seorang konten kreator olahraga yang aktif di berbagai platform media sosial, termasuk Instagram dan Strava. Dia dikenal karena dedikasinya dalam dunia lari dan merupakan pendiri komunitas ITB Running Enthusiast. Instagram: Farhatan sering berbagi konten mengenai latihan lari, tips kesehatan, dan pencapaian pribadi dalam dunia olahraga. Dengan gaya yang inspiratif, ia mengajak para pengikutnya untuk menjalani gaya hidup sehat dan aktif. Strava: Di Strava, Farhatan melacak aktivitas larinya dan berinteraksi dengan komunitas lari. Ia menggunakan platform ini untuk memotivasi dan memberikan inspirasi kepada sesama pelari dengan membagikan rute, statistik, dan pencapaian lari. """, "name": "Farhatan Fajri" }, { "influencer_uid": "id-reza-12", "description": """ Reza Erfit adalah seorang technopreneur dan content creator yang aktif di berbagai platform media sosial, termasuk Instagram, di mana ia memiliki lebih dari 100.000 pengikut. Reza terkenal dengan kontennya yang berfokus pada teknologi, terutama dalam memanfaatkan kecerdasan buatan (AI) untuk mempermudah berbagai pekerjaan. Sebagai seorang mahasiswa Teknologi Data di tahun ketiga, Reza juga membagikan wawasan dan solusi bisnis yang bernilai melalui platform-platform ini. Selain itu, Reza juga menawarkan berbagai template PPT estetis dan lengkap, serta merancang planner konten yang membantu para pengikutnya dalam perencanaan dan pengelolaan konten. Ia aktif di komunitas belajar HIDATA, di mana ia mengadakan diskusi dan tanya jawab tentang AI, data, dan web, menjadikannya figur inspiratif bagi banyak orang yang tertarik pada bidang teknologi dan technopreneurship """, "name": "Reza Erfit" }, ] df = pd.DataFrame.from_dict(data) documents = [f"influencer_uid:{row['influencer_uid']}\n\n{row['description']}" for index, row in df.iterrows()] os.environ['TRANSFORMERS_CACHE'] = '/transformers_cache' os.environ['HF_HOME'] = '/transformers_cache' class Generate(BaseModel): text:str tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/all-MiniLM-L6-v2') model = AutoModel.from_pretrained('sentence-transformers/all-MiniLM-L6-v2') API_KEY = os.getenv("API_KEY") def embed_text(texts): tokens = tokenizer(texts, return_tensors='pt', padding=True, truncation=True) with torch.no_grad(): outputs = model(**tokens) embeddings = outputs.last_hidden_state.mean(dim=1) return embeddings document_embeddings = embed_text(documents) document_embeddings_np = document_embeddings.numpy() index = faiss.IndexFlatL2(document_embeddings_np.shape[1]) index.add(document_embeddings_np) app = FastAPI(title="Deploying FastAPI Apps on Huggingface") @app.get("/") def home(): return {"message": "Hello World"} @app.post("/generate", response_model=dict) def generate_text(data: Generate): global index, API_KEY k = 2 D, I = index.search(embed_text(data.text).numpy(), k) retrieved_docs = [documents[i] for i in I[0]] # Combine retrieved documents context = "\n\n".join(retrieved_docs) prompt = f'### Context:\nHere is the list of influencer that you should included on your response\n{context}' + '\n\n ### Question:\nPlease use the provided context to answer the following question comprehensively. Supplement your response with relevant knowledge. Please provide your answer with engagement rate, proposed marketing strategy and estimated budget in number. Mention relevant influencer only. Answer the question using language that used user use. Evary currency must be provided in indonesian IDR. Your strategy should related with our influencer, maybe you can give like influencer campaign scheme. You have to mention the influencer name and contact on your response. Only mention influencer from our list. For every influencer that you give refer user to use ourapps (endors), also please mention influencer_id.\n\n### Response:\n'+ data.text url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={API_KEY}" headers = { 'Content-Type': 'application/json' } data = { "contents": [{ "parts": [{ "text": prompt }] }] } response = requests.post(url, headers=headers, json=data) if response.status_code == 200: pattern = r'id-[a-z]+-\d{2}' response_text = response.json()["candidates"][0]["content"]["parts"][0]["text"] influencers = re.findall(pattern, response_text) influencers = list(set(influencers)) id_df = pd.DataFrame(influencers, columns=['influencer_uid']) result = id_df.merge(df, on='influencer_uid', how='left')[['influencer_uid', 'name']].to_dict(orient='records') return {"status": 200, "response": re.sub(pattern, '', response_text), "influencers": result } else: return response.json()