Spaces:
Sleeping
Sleeping
| # Kelas PemurniPrompt digunakan untuk menganalisis dan memperbaiki prompt sesuai metode/metaprompt yang dipilih pengguna | |
| class PemurniPrompt: | |
| def __init__(self, api_token, meta_prompts, metaprompt_explanations): | |
| self.api_token = api_token | |
| self.meta_prompts = meta_prompts | |
| self.metaprompt_explanations = metaprompt_explanations | |
| def automatic_metaprompt(self, prompt): | |
| """ | |
| Otomatis memilih metaprompt terbaik berdasarkan isi prompt user. | |
| Return tuple: (analisis, saran_metaprompt) | |
| """ | |
| # Algoritma dummy — bisa di-upgrade sesuai kebutuhan! | |
| if not prompt or prompt.strip() == "": | |
| return "Prompt kosong. Silakan isi prompt.", None | |
| # Heuristik sederhana: Jika panjang, pilih comprehensive_multistage, jika mengandung 'data', pilih balanced_scientific | |
| if "data" in prompt.lower(): | |
| analisis = "Prompt ini berkaitan dengan data, disarankan 'balanced_scientific'." | |
| return analisis, "balanced_scientific" | |
| elif len(prompt.split()) > 25: | |
| analisis = "Prompt cukup kompleks, disarankan 'comprehensive_multistage'." | |
| return analisis, "comprehensive_multistage" | |
| else: | |
| analisis = "Prompt normal, gunakan 'logical_flow' untuk hasil optimal." | |
| return analisis, "logical_flow" | |
| def refine_prompt(self, prompt, metaprompt_key): | |
| """ | |
| Melakukan perbaikan prompt secara manual dengan metaprompt terpilih. | |
| Return: (evaluasi, prompt_baru, penjelasan, full_response) | |
| """ | |
| if not prompt or prompt.strip() == "": | |
| return ("Tidak ada prompt yang diberikan.", "", "", {}) | |
| # Dummy refining — gabungkan template metaprompt dengan prompt user | |
| template = self.meta_prompts.get(metaprompt_key, "") | |
| if template: | |
| prompt_baru = f"{template.strip()}\n{prompt.strip()}" | |
| else: | |
| prompt_baru = f"[{metaprompt_key}]\n{prompt.strip()}" | |
| evaluasi = f"Prompt telah diperbaiki menggunakan metaprompt '{metaprompt_key}'." | |
| penjelasan = self.metaprompt_explanations.get(metaprompt_key, "Tidak ada penjelasan tersedia.") | |
| full_response = { | |
| "prompt_awal": prompt, | |
| "prompt_baru": prompt_baru, | |
| "metaprompt": metaprompt_key, | |
| "evaluasi": evaluasi, | |
| "penjelasan": penjelasan | |
| } | |
| return (evaluasi, prompt_baru, penjelasan, full_response) | |
| def apply_prompt(self, prompt, model): | |
| """ | |
| Mensimulasikan pengujian prompt pada model LLM. | |
| Return: string output hasil 'jawaban model' | |
| """ | |
| if not prompt or not model: | |
| return "Prompt atau model kosong." | |
| # Dummy output — ganti dengan pemanggilan API model Anda jika siap | |
| return f"(MODEL: {model})\nHASIL:\n{prompt[:400]} ...[Output simulasi LLM]" | |