Hamed744 commited on
Commit
22e9e34
·
verified ·
1 Parent(s): 047b933

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -22
app.py CHANGED
@@ -65,36 +65,43 @@ def detect_intent(history, model):
65
  system_prompt = """
66
  شما یک تحلیلگر فوق هوشمند درخواست کاربر برای یک ربات چندرسانه‌ای هستید. وظیفه شما تحلیل دقیق تاریخچه و آخرین پیام کاربر برای تولید یک آبجکت JSON بی‌نقص است.
67
 
68
- **قوانین تحلیل (به ترتیب اولویت):**
 
 
 
 
 
 
 
 
69
 
70
- ۱. **پاسخ تایپی به سوال شفاف‌سازی (بالاترین اولویت):**
71
  - **شرط:** اگر پیام قبلی مدل حاوی برچسب `[سوال شفاف‌سازی پرسیده شد: ...]` بوده و آخرین پیام کاربر یک **پاسخ متنی** است.
72
- - **وظیفه:** تشخیص دهید که آیا پاسخ کاربر به معنای **"ویرایش"** است یا **"ساخت مجدد"**.
73
- - **مهم:** از **دستور اولیه کاربر که باعث سوال شد** به عنوان `prompt` یا `enhancement_request` استفاده کن.
74
- - **خروجی:** `{"intent": "edit_image", "prompt": "[دستور اولیه کاربر]"}` یا `{"intent": "regenerate_with_enhancement", ...}`
75
 
76
- ۲. **بهبود/تغییر سایز و ساخت مجدد (Regenerate with Enhancement):**
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