Spaces:
Sleeping
Sleeping
| import re | |
| def optimize_prompt(prompt: str) -> str: | |
| """ | |
| Token Optimizer (No AI, Farsi + English) | |
| --------------------------------------- | |
| کاهش مصرف توکن با حذف تکرارها، کلمات و عبارات غیرضروری به فارسی و انگلیسی. | |
| ✅ بدون نیاز به API یا مدل هوش مصنوعی | |
| ✅ قابل استفاده در هر پروژه Python (Streamlit, FastAPI, Flask, و غیره) | |
| """ | |
| # حذف فاصلهها و خطوط اضافه | |
| text = re.sub(r'\s+', ' ', prompt.strip()) | |
| # حذف تکرارهای پشت سر هم (مثلاً please please → please / لطفاً لطفاً → لطفاً) | |
| text = re.sub(r'\b(\w+)( \1\b)+', r'\1', text, flags=re.IGNORECASE) | |
| text = re.sub(r'(لطفاً\s*){2,}', 'لطفاً ', text) | |
| # حذف عبارات پرمصرف ولی بیاثر (انگلیسی + فارسی) | |
| filler_phrases = [ | |
| # انگلیسی | |
| r'please', r'kindly', r'could you', r'i want you to', r'you must', | |
| r'note that', r'make sure that', r'ensure that', r'as an ai', | |
| r'let me know', r'provide me with', r'your task is to', | |
| r'you are required to', r'i would like you to', | |
| # فارسی | |
| r'لطفاً', r'خواهش میکنم', r'میخواهم که', r'از تو میخواهم', r'حتماً', | |
| r'توجه کن که', r'یادت نره که', r'باید حتماً', r'وظیفهات این است که', | |
| r'لطفا', r'حتمن', r'لطف داری که' | |
| ] | |
| text = re.sub(r'\b(' + '|'.join(filler_phrases) + r')\b', '', text, flags=re.IGNORECASE) | |
| # جایگزینی عبارات طولانی با کوتاهتر (انگلیسی + فارسی) | |
| replacements = { | |
| # English | |
| "in order to": "to", | |
| "as soon as possible": "quickly", | |
| "for the purpose of": "to", | |
| "at this point in time": "now", | |
| "a large number of": "many", | |
| "due to the fact that": "because", | |
| # فارسی | |
| "به منظور اینکه": "برای", | |
| "در حال حاضر": "اکنون", | |
| "به خاطر اینکه": "چون", | |
| "به دلیل اینکه": "چون", | |
| "تعداد زیادی از": "بسیاری از", | |
| "به محض اینکه": "بهسرعت", | |
| "در سریعترین زمان ممکن": "سریع" | |
| } | |
| for long, short in replacements.items(): | |
| text = re.sub(long, short, text, flags=re.IGNORECASE) | |
| # حذف فاصلهها و نشانهگذاری اضافی | |
| text = re.sub(r'\s+', ' ', text) | |
| text = re.sub(r'\s+([,.!?])', r'\1', text) | |
| text = text.strip(" ,.") | |
| return text | |