Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -3,77 +3,74 @@ from transformers import pipeline
|
|
3 |
import logging
|
4 |
|
5 |
# تنظیم لاگینگ
|
6 |
-
logging.basicConfig(level=logging.INFO, format=
|
7 |
|
8 |
-
#
|
9 |
-
|
10 |
-
page_title="چتبات هوش مصنوعی",
|
11 |
-
page_icon="💬",
|
12 |
-
layout="wide",
|
13 |
-
initial_sidebar_state="expanded",
|
14 |
-
)
|
15 |
-
|
16 |
-
# بارگذاری مدل
|
17 |
-
model_name = "distilgpt2" # مدل سبکتر برای عملکرد بهتر
|
18 |
try:
|
19 |
-
generator = pipeline(
|
20 |
-
st.sidebar.success("مدل با موفقیت بارگذاری
|
21 |
except Exception as e:
|
22 |
-
st.sidebar.error("مدل بارگذاری
|
23 |
logging.error(f"Error loading model: {e}")
|
24 |
generator = None
|
25 |
|
26 |
-
#
|
27 |
-
if
|
28 |
st.session_state.chat_history = []
|
29 |
|
30 |
-
# افزودن پیام
|
31 |
-
def add_message(
|
32 |
-
st.session_state.chat_history.append(
|
33 |
|
34 |
-
# نمایش تاریخچه چت
|
35 |
-
def
|
36 |
-
st.
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
|
42 |
-
# ارسال پیام
|
43 |
def send_message(user_input):
|
44 |
-
if user_input
|
45 |
-
add_message(user_input,
|
46 |
try:
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
50 |
except Exception as e:
|
51 |
-
|
52 |
-
|
53 |
-
add_message(error_message, "assistant")
|
54 |
|
55 |
-
#
|
56 |
-
st.
|
57 |
-
st.sidebar.header("تنظیمات")
|
58 |
-
st.sidebar.info(
|
59 |
-
"""
|
60 |
-
**راهنما**:
|
61 |
-
- این چتبات از مدل GPT استفاده میکند.
|
62 |
-
- میتوانید سوالات مرتبط با ارزهای دیجیتال را بپرسید.
|
63 |
-
"""
|
64 |
-
)
|
65 |
|
66 |
-
#
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
69 |
|
70 |
# نمایش تاریخچه چت
|
71 |
-
|
|
|
72 |
|
73 |
-
# ورودی
|
74 |
-
st.
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
3 |
import logging
|
4 |
|
5 |
# تنظیم لاگینگ
|
6 |
+
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
7 |
|
8 |
+
# تغییر مدل به FinBERT
|
9 |
+
model_name = "yiyanghkust/finbert-tone" # مدل FinBERT برای تحلیل احساسات مالی
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
try:
|
11 |
+
generator = pipeline('sentiment-analysis', model=model_name) # بارگذاری مدل
|
12 |
+
st.sidebar.success(f"مدل '{model_name}' با موفقیت بارگذاری شد.")
|
13 |
except Exception as e:
|
14 |
+
st.sidebar.error("مدل بارگذاری نشد. لطفاً بررسی کنید.")
|
15 |
logging.error(f"Error loading model: {e}")
|
16 |
generator = None
|
17 |
|
18 |
+
# ایجاد حالتهای جلسه برای ذخیره تاریخچه چت
|
19 |
+
if 'chat_history' not in st.session_state:
|
20 |
st.session_state.chat_history = []
|
21 |
|
22 |
+
# تابع برای افزودن پیام
|
23 |
+
def add_message(text, is_user):
|
24 |
+
st.session_state.chat_history.append((text, is_user))
|
25 |
|
26 |
+
# تابع نمایش تاریخچه چت
|
27 |
+
def display_chat_history():
|
28 |
+
for message, is_user in st.session_state.chat_history:
|
29 |
+
if is_user:
|
30 |
+
st.chat_message("user").markdown(message)
|
31 |
+
else:
|
32 |
+
st.chat_message("assistant").markdown(message)
|
33 |
|
34 |
+
# تابع ارسال پیام و دریافت پاسخ
|
35 |
def send_message(user_input):
|
36 |
+
if user_input:
|
37 |
+
add_message(user_input, True) # افزودن پیام کاربر به تاریخچه
|
38 |
try:
|
39 |
+
if generator:
|
40 |
+
response = generator(user_input)
|
41 |
+
sentiment = response[0]['label'] # تحلیل احساسات
|
42 |
+
score = response[0]['score'] # امتیاز پیشبینی
|
43 |
+
reply = f"تحلیل احساسات: {sentiment} (امتیاز: {score:.2f})"
|
44 |
+
add_message(reply, False)
|
45 |
+
else:
|
46 |
+
add_message("مدل در دسترس نیست. لطفاً تنظیمات را بررسی کنید.", False)
|
47 |
except Exception as e:
|
48 |
+
logging.error(f"خطا در تولید متن: {e}")
|
49 |
+
add_message("متأسفم، مشکلی پیش آمد.", False)
|
|
|
50 |
|
51 |
+
# تنظیم رابط کاربری Streamlit
|
52 |
+
st.set_page_config(page_title="چتبات هوش مصنوعی", page_icon="🤖", layout="wide")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
+
# طراحی نوار کناری
|
55 |
+
st.sidebar.title("تنظیمات")
|
56 |
+
st.sidebar.info("این برنامه از مدل FinBERT برای تحلیل احساسات مالی استفاده میکند.")
|
57 |
+
|
58 |
+
# عنوان برنامه
|
59 |
+
st.title("🤖 چتبات هوش مصنوعی برای تحلیل ارزهای دیجیتال")
|
60 |
|
61 |
# نمایش تاریخچه چت
|
62 |
+
st.header("📜 تاریخچه چت")
|
63 |
+
display_chat_history()
|
64 |
|
65 |
+
# ورودی کاربر
|
66 |
+
st.header("✍️ پیام جدید")
|
67 |
+
user_input = st.text_input("پیام خود را وارد کنید:", placeholder="مثلاً تحلیل قیمت بیتکوین...")
|
68 |
+
|
69 |
+
# دکمه ارسال
|
70 |
+
if st.button("ارسال"):
|
71 |
+
send_message(user_input)
|
72 |
+
|
73 |
+
# پیام خوشآمدگویی (اولین بار)
|
74 |
+
if not st.session_state.chat_history:
|
75 |
+
add_message("سلام! من دستیار هوش مصنوعی شما هستم. چطور میتوانم کمکتان کنم؟", False)
|
76 |
+
display_chat_history()
|