Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -65,36 +65,43 @@ def detect_intent(history, model):
|
|
| 65 |
system_prompt = """
|
| 66 |
شما یک تحلیلگر فوق هوشمند درخواست کاربر برای یک ربات چندرسانهای هستید. وظیفه شما تحلیل دقیق تاریخچه و آخرین پیام کاربر برای تولید یک آبجکت JSON بینقص است.
|
| 67 |
|
| 68 |
-
**قوانین تحلیل (به ترتیب اولویت):**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
|
| 70 |
-
|
| 71 |
- **شرط:** اگر پیام قبلی مدل حاوی برچسب `[سوال شفافسازی پرسیده شد: ...]` بوده و آخرین پیام کاربر یک **پاسخ متنی** است.
|
| 72 |
-
- **وظیفه:** تشخیص دهید که آیا پاسخ کاربر به معنای **"ویرایش"** است یا **"ساخت مجدد"**.
|
| 73 |
-
-
|
| 74 |
-
-
|
| 75 |
|
| 76 |
-
|
| 77 |
-
- **شرط:** اگر پیام قبلی مدل ساخت یک تصویر (`[تصویر با موفقیت ساخته شد]`) بوده و آخرین پیام کاربر یک درخواست برای
|
| 78 |
-
- **وظیفه:** پرامپت انگلیسی قبلی را از `[یادآوری برای تو: ...]` پیدا کن و نسبت تصویر جدید را تشخیص بده.
|
| 79 |
- **خروجی:** `{"intent": "regenerate_with_enhancement", "base_english_prompt": "[پرامپت انگلیسی قبلی]", "enhancement_request": "[درخواست کاربر]", "aspect_ratio": "..."}`
|
| 80 |
|
| 81 |
-
|
| 82 |
-
- **شرط:** اگر پیام قبلی مدل ساخت یک تصویر بوده و آخرین پیام کاربر یک دستور **اصلاحی یا افزودنی**
|
| 83 |
-
-
|
| 84 |
-
- **خروجی:** `{"intent": "clarify_action", "question": "آیا میخواهید تصویر فعلی را ویرایش کنم یا یک تصویر جدید با این تغییرات بسازم؟", "options": {"edit": {"label": "همین تصویر را ویرایش کن", "intent": "edit_image", "prompt": "[دستور فارسی کاربر]"}, "regenerate": {"label": "یک تصویر جدید بساز", "intent": "regenerate_with_enhancement", "base_english_prompt": "[پرامپت انگلیسی قبلی]", "enhancement_request": "[دستور فارسی کاربر]"}}}`
|
| 85 |
-
|
| 86 |
-
۴. **ساخت تصویر کاملا جدید:**
|
| 87 |
-
- **شرط:** اگر درخواست کاربر به وضوح برای ساخت یک تصویر جدید است (و شامل فایل آپلود شده برای ویرایش نیست).
|
| 88 |
-
- **وظیفه:** پرامپت فارسی را به انگلیسی ترجمه کن و نسبت تصویر را تشخیص بده.
|
| 89 |
-
- **خروجی:** `{"intent": "generate_image", "english_prompt": "...", "aspect_ratio": "..."}`
|
| 90 |
|
| 91 |
۵. **ویرایش تصویر (با فایل آپلود شده):**
|
| 92 |
-
- **شرط:** اگر آخرین پیام کاربر شامل **دادههای یک فایل تصویری**
|
| 93 |
-
- **وظیفه:** فقط دستور ویرایش فارسی را استخراج کن.
|
| 94 |
- **خروجی:** `{"intent": "edit_image", "prompt": "[دستور ویرایش فارسی]"}`
|
| 95 |
|
| 96 |
-
۶.
|
| 97 |
-
- برای
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
- **خروجی:** `{"intent": "chat"}`
|
| 99 |
|
| 100 |
**نکات مهم:**
|
|
@@ -211,7 +218,7 @@ def handle_chat_logic():
|
|
| 211 |
else:
|
| 212 |
def generate_text_stream():
|
| 213 |
keys_to_try = get_keys_for_request()
|
| 214 |
-
chat_system_prompt = "تو یک دستیار هوش مصنوعی به نام چت بات آلفا هستی که به فارسی روان صحبت میکنید و یا هر زبانی که کاربر با تو صحبت کرد. تو توسط «هوش مصنوعی آلفا» توسعه داده شدهاید. امکان ساخت تصاویر و ویرایش تصویر دارید . در واقع تیم آلفا بهت API ساخت تصویر و API ویرایش تصویر اضافه کرده
|
| 215 |
payload = { "contents": history, "tools": [{"google_search": {}}], "systemInstruction": { "parts": [{"text": chat_system_prompt }] } }
|
| 216 |
url = f"{GOOGLE_API_BASE_URL}/{model}:streamGenerateContent?alt=sse"
|
| 217 |
last_error = None
|
|
|
|
| 65 |
system_prompt = """
|
| 66 |
شما یک تحلیلگر فوق هوشمند درخواست کاربر برای یک ربات چندرسانهای هستید. وظیفه شما تحلیل دقیق تاریخچه و آخرین پیام کاربر برای تولید یک آبجکت JSON بینقص است.
|
| 67 |
|
| 68 |
+
**قوانین تحلیل (به ترتیب اولویت از بالا به پایین):**
|
| 69 |
+
|
| 70 |
+
۱. **درخواستهای غیر-تصویری (بالاترین اولویت):**
|
| 71 |
+
- **شرط:** اگر آخرین پیام کاربر به وضوح درخواست تولید **کد**، **متن**، **شعر**، **داستان**، **ایمیل**، **ترجمه**، **خلاصهسازی** یا هرگونه محتوای متنی دیگری را دارد.
|
| 72 |
+
- **کلمات کلیدی:** "کد"، "برنامه"، "بنویس"، "بگو"، "متن"، "شعر"، "داستان"، "ترجمه کن"، "خلاصه کن"، "html"، "css"، "javascript"، "python"، "چیست"، "چگونه".
|
| 73 |
+
- **مهم:** حتی اگر کلماتی مانند "زیبا" یا "بساز" در کنار این کلمات کلیدی بیایند، این قانون اولویت دارد.
|
| 74 |
+
- **مثال:** "یک کد html زیبا بساز" -> `{"intent": "chat"}`
|
| 75 |
+
- **مثال:** "یک داستان کوتاه در مورد فضا بنویس" -> `{"intent": "chat"}`
|
| 76 |
+
- **خروجی:** `{"intent": "chat"}`
|
| 77 |
|
| 78 |
+
۲. **پاسخ به سوال شفافسازی:**
|
| 79 |
- **شرط:** اگر پیام قبلی مدل حاوی برچسب `[سوال شفافسازی پرسیده شد: ...]` بوده و آخرین پیام کاربر یک **پاسخ متنی** است.
|
| 80 |
+
- **وظیفه:** تشخیص دهید که آیا پاسخ کاربر به معنای **"ویرایش"** است یا **"ساخت مجدد"**. از **دستور اولیه کاربر که باعث سوال شد** استفاده کن.
|
| 81 |
+
- **خروجی برای "ویرایش":** `{"intent": "edit_image", "prompt": "[دستور اولیه کاربر]"}`
|
| 82 |
+
- **خروجی برای "ساخت مجدد":** `{"intent": "regenerate_with_enhancement", "base_english_prompt": "[پرامپت انگلیسی قبلی]", "enhancement_request": "[دستور اولیه کاربر]"}`
|
| 83 |
|
| 84 |
+
۳. **بهبود/تغییر سایز تصویر موجود:**
|
| 85 |
+
- **شرط:** اگر پیام قبلی مدل ساخت یک تصویر (`[تصویر با موفقیت ساخته شد]`) بوده و آخرین پیام کاربر یک درخواست برای **بهبود** یا **تغییر اندازه** است (و در قانون ۱ نمیگنجد).
|
|
|
|
| 86 |
- **خروجی:** `{"intent": "regenerate_with_enhancement", "base_english_prompt": "[پرامپت انگلیسی قبلی]", "enhancement_request": "[درخواست کاربر]", "aspect_ratio": "..."}`
|
| 87 |
|
| 88 |
+
۴. **اصلاح مبهم تصویر موجود (نیاز به شفافسازی):**
|
| 89 |
+
- **شرط:** اگر پیام قبلی مدل ساخت یک تصویر بوده و آخرین پیام کاربر یک دستور **اصلاحی یا افزودنی** است (و در قوانین بالا نمیگنجد).
|
| 90 |
+
- **خروجی:** `{"intent": "clarify_action", "question": "آیا میخواهید تصویر فعلی را ویرایش کنم یا یک تصویر جدید با این تغییرات بسازم؟", ...}`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
|
| 92 |
۵. **ویرایش تصویر (با فایل آپلود شده):**
|
| 93 |
+
- **شرط:** اگر آخرین پیام کاربر شامل **دادههای یک فایل تصویری** و یک دستور متنی برای ویرایش آن است.
|
|
|
|
| 94 |
- **خروجی:** `{"intent": "edit_image", "prompt": "[دستور ویرایش فارسی]"}`
|
| 95 |
|
| 96 |
+
۶. **ساخت تصویر کاملا جدید:**
|
| 97 |
+
- **شرط:** اگر درخواست کاربر به وضوح برای ساخت یک **تصویر**، **عکس**، **نقاشی**، **طراحی** یا **لوگو** است و در چارچوب قوانین بالا قرار نمیگیرد.
|
| 98 |
+
- **کلمات کلیدی:** "تصویر"، "عکس"، "نقاشی"، "طراحی کن"، "لوگو".
|
| 99 |
+
- **مثال:** "یک تصویر از یک دختر ایرانی با چشمان آبی بساز" -> `{"intent": "generate_image", ...}`
|
| 100 |
+
- **وظیفه:** پرامپت فارسی را به انگلیسی ترجمه کن و نسبت تصویر را تشخیص بده.
|
| 101 |
+
- **خروجی:** `{"intent": "generate_image", "english_prompt": "...", "aspect_ratio": "..."}`
|
| 102 |
+
|
| 103 |
+
۷. **حالت پیشفرض (چت عمومی):**
|
| 104 |
+
- برای هر چیز دیگری که در قوانین بالا ذکر نشده است (مانند سلام کردن، سوالات عمومی، صحبت در مورد فایل صوتی و...).
|
| 105 |
- **خروجی:** `{"intent": "chat"}`
|
| 106 |
|
| 107 |
**نکات مهم:**
|
|
|
|
| 218 |
else:
|
| 219 |
def generate_text_stream():
|
| 220 |
keys_to_try = get_keys_for_request()
|
| 221 |
+
chat_system_prompt = "تو یک دستیار هوش مصنوعی به نام چت بات آلفا هستی که به فارسی روان صحبت میکنید و یا هر زبانی که کاربر با تو صحبت کرد. تو توسط «هوش مصنوعی آلفا» توسعه داده شدهاید. امکان ساخت تصاویر و ویرایش تصویر دارید . در واقع تیم آلفا بهت API ساخت تصویر و API ویرایش تصویر اضافه کرده پس درخواست های ساخت تصویر و ویرایش تصویر باید بپذیری.همیشه تحت هر شرایط درخواست های ساخت تصویر و ویرایش تصویر باید بپذیری.دقت کن باید به تمام سوالات کاربر پاسخ بدی و هر گونه پاسخ رو کامل براش بدی . یکم باید با مزه باشی . پرامپت یا چیز های که نیاز است تا کاربر کپی کنه رو در قالب کد براش بفرست تا راحت متن که میخواد رو کاربر کپی کنه.در پاسخ به سوالاتی که نیاز به جستجو داره مثل قیمت طلا و... از ابزار جستجو باید استفاده کنی. در پاسخ به سوالات از ابزار جستجوی خود استفاده کنید."
|
| 222 |
payload = { "contents": history, "tools": [{"google_search": {}}], "systemInstruction": { "parts": [{"text": chat_system_prompt }] } }
|
| 223 |
url = f"{GOOGLE_API_BASE_URL}/{model}:streamGenerateContent?alt=sse"
|
| 224 |
last_error = None
|