Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1195,111 +1195,89 @@ def random_likert_questions():
|
|
| 1195 |
|
| 1196 |
|
| 1197 |
def explanation_questions():
|
| 1198 |
-
"""سوالات
|
| 1199 |
-
st.markdown("""
|
| 1200 |
-
<style>
|
| 1201 |
-
/* تضمین رنگ متن برای تمام سطوح */
|
| 1202 |
-
.st-ec, .st-ed, .st-ee, .st-ef, .st-eg, .st-eh, .st-ei, .st-ej {
|
| 1203 |
-
color: black !important;
|
| 1204 |
-
}
|
| 1205 |
-
</style>
|
| 1206 |
-
""", unsafe_allow_html=True)
|
| 1207 |
st.markdown("### 📋 سوالات تکمیلی")
|
| 1208 |
|
| 1209 |
-
#
|
| 1210 |
-
|
| 1211 |
-
|
| 1212 |
-
|
| 1213 |
-
|
| 1214 |
-
|
| 1215 |
-
|
| 1216 |
-
|
| 1217 |
-
|
| 1218 |
-
|
| 1219 |
-
|
| 1220 |
-
|
| 1221 |
-
trust = st.radio(
|
| 1222 |
-
"آیا شما به تصمیم گیری هایی که توسط هوش مصنوعی انجام می شود اعتماد دارید؟",
|
| 1223 |
-
[
|
| 1224 |
-
"بله",
|
| 1225 |
-
"خیر",
|
| 1226 |
-
"نظری ندارم"
|
| 1227 |
-
],
|
| 1228 |
-
index=None,
|
| 1229 |
-
key="trust_radio"
|
| 1230 |
-
)
|
| 1231 |
-
|
| 1232 |
-
pricing_method = None
|
| 1233 |
-
if trust is not None:
|
| 1234 |
-
pricing_method = st.radio(
|
| 1235 |
-
"به نظر شما پلتفرم قیمت را چگونه تعیین میکند؟",
|
| 1236 |
-
[
|
| 1237 |
"به صورت دستی توسط تیم پلتفرم",
|
| 1238 |
"به صورت خودکار توسط هوش مصنوعی و الگوریتمها",
|
| 1239 |
"ترکیبی از هر دو روش",
|
| 1240 |
"نظری ندارم"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1241 |
],
|
| 1242 |
-
|
| 1243 |
-
|
| 1244 |
-
|
| 1245 |
|
| 1246 |
-
#
|
| 1247 |
-
|
| 1248 |
-
|
| 1249 |
-
|
| 1250 |
-
|
| 1251 |
-
["بله", "خیر", "مطمئن نیستم"],
|
| 1252 |
-
index=None,
|
| 1253 |
-
key="price_increase_radio"
|
| 1254 |
-
)
|
| 1255 |
|
| 1256 |
-
|
| 1257 |
-
|
| 1258 |
-
|
| 1259 |
-
|
| 1260 |
-
|
| 1261 |
-
|
| 1262 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1263 |
index=None,
|
| 1264 |
-
key="
|
| 1265 |
)
|
| 1266 |
-
|
| 1267 |
-
|
| 1268 |
-
|
| 1269 |
-
|
| 1270 |
-
|
| 1271 |
-
|
| 1272 |
-
|
| 1273 |
-
|
| 1274 |
-
|
| 1275 |
-
|
| 1276 |
-
index=None,
|
| 1277 |
-
key="explanation_type_radio"
|
| 1278 |
-
)
|
| 1279 |
-
|
| 1280 |
-
if st.button("ادامه", type="primary", key="submit_explanation"):
|
| 1281 |
-
# استفاده از مقادیر مستقیماً از session_state
|
| 1282 |
st.session_state.trust = st.session_state.get("trust_radio")
|
| 1283 |
st.session_state.pricing_method = st.session_state.get("pricing_method_radio")
|
| 1284 |
st.session_state.price_increase = st.session_state.get("price_increase_radio")
|
| 1285 |
st.session_state.explanation_received = st.session_state.get("explanation_received_radio")
|
| 1286 |
-
st.session_state.explanation_type =
|
| 1287 |
-
|
| 1288 |
-
|
| 1289 |
-
|
| 1290 |
-
|
| 1291 |
-
elif st.session_state.pricing_method is None:
|
| 1292 |
-
st.warning("لطفاً به سوال تکمیلی دوم پاسخ دهید")
|
| 1293 |
-
elif st.session_state.price_increase is None:
|
| 1294 |
-
st.warning("لطفاً به سوال تکمیلی سوم پاسخ دهید")
|
| 1295 |
-
elif st.session_state.explanation_received is None:
|
| 1296 |
-
st.warning("لطفاً به سوال تکمیلی چهارم پاسخ دهید")
|
| 1297 |
-
elif st.session_state.explanation_received == "بله" and st.session_state.explanation_type is None:
|
| 1298 |
-
st.warning("لطفاً به سوال تکمیلی پنجم پاسخ دهید")
|
| 1299 |
-
else:
|
| 1300 |
-
st.session_state.current_page = "demographic"
|
| 1301 |
-
st.rerun()
|
| 1302 |
-
|
| 1303 |
|
| 1304 |
def demographic_form():
|
| 1305 |
"""فرم اطلاعات دموگرافیک"""
|
|
|
|
| 1195 |
|
| 1196 |
|
| 1197 |
def explanation_questions():
|
| 1198 |
+
"""نمایش سوالات تکمیلی به صورت مرحلهای"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1199 |
st.markdown("### 📋 سوالات تکمیلی")
|
| 1200 |
|
| 1201 |
+
# لیست سوالات و کلید آنها
|
| 1202 |
+
questions = [
|
| 1203 |
+
{
|
| 1204 |
+
"key": "trust_radio",
|
| 1205 |
+
"label": "آیا شما به تصمیم گیری هایی که توسط هوش مصنوعی انجام می شود اعتماد دارید؟",
|
| 1206 |
+
"options": ["بله", "خیر", "نظری ندارم"]
|
| 1207 |
+
},
|
| 1208 |
+
{
|
| 1209 |
+
"key": "pricing_method_radio",
|
| 1210 |
+
"label": "به نظر شما پلتفرم قیمت را چگونه تعیین میکند؟",
|
| 1211 |
+
"options": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1212 |
"به صورت دستی توسط تیم پلتفرم",
|
| 1213 |
"به صورت خودکار توسط هوش مصنوعی و الگوریتمها",
|
| 1214 |
"ترکیبی از هر دو روش",
|
| 1215 |
"نظری ندارم"
|
| 1216 |
+
]
|
| 1217 |
+
},
|
| 1218 |
+
{
|
| 1219 |
+
"key": "price_increase_radio",
|
| 1220 |
+
"label": "آیا به نظر شما در این سفر افزایش قیمت نسبت به حالت طبیعی وجود داشته است؟",
|
| 1221 |
+
"options": ["بله", "خیر", "مطمئن نیستم"]
|
| 1222 |
+
},
|
| 1223 |
+
{
|
| 1224 |
+
"key": "explanation_received_radio",
|
| 1225 |
+
"label": "آیا برای قیمت پیشنهادی این سفر، توضیحی به شما ارائه شد؟",
|
| 1226 |
+
"options": ["بله", "خیر"]
|
| 1227 |
+
},
|
| 1228 |
+
{
|
| 1229 |
+
"key": "explanation_type_radio",
|
| 1230 |
+
"label": "اگر توضیحی دریافت کردید، این توضیح بیشتر به کدام مورد شباهت داشت؟",
|
| 1231 |
+
"options": [
|
| 1232 |
+
"بر اساس عواملی که در قیمتگذاری لحاظ شدهاند",
|
| 1233 |
+
"شامل سناریوهای جایگزین که میتوانستند قیمت متفاوتی ایجاد کنند",
|
| 1234 |
+
"توضیحی دریافت نکردم"
|
| 1235 |
],
|
| 1236 |
+
"condition": lambda: st.session_state.get("explanation_received_radio") == "بله"
|
| 1237 |
+
}
|
| 1238 |
+
]
|
| 1239 |
|
| 1240 |
+
# مقدار اولیه مرحله
|
| 1241 |
+
if "explanation_step" not in st.session_state:
|
| 1242 |
+
st.session_state.explanation_step = 0
|
| 1243 |
+
|
| 1244 |
+
current_step = st.session_state.explanation_step
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1245 |
|
| 1246 |
+
if current_step < len(questions):
|
| 1247 |
+
q = questions[current_step]
|
| 1248 |
+
|
| 1249 |
+
# شرط نمایش (مثلاً سوال ۵ فقط وقتی توضیح دریافت شده)
|
| 1250 |
+
if "condition" in q and not q["condition"]():
|
| 1251 |
+
st.session_state.explanation_step += 1
|
| 1252 |
+
st.rerun()
|
| 1253 |
+
return
|
| 1254 |
+
|
| 1255 |
+
# نمایش سوال فعلی
|
| 1256 |
+
st.radio(
|
| 1257 |
+
q["label"],
|
| 1258 |
+
q["options"],
|
| 1259 |
index=None,
|
| 1260 |
+
key=q["key"]
|
| 1261 |
)
|
| 1262 |
+
|
| 1263 |
+
if st.button("ادامه", key=f"continue_{current_step}"):
|
| 1264 |
+
if st.session_state.get(q["key"]) is None:
|
| 1265 |
+
st.warning("لطفاً یک گزینه را انتخاب کنید")
|
| 1266 |
+
else:
|
| 1267 |
+
st.session_state.explanation_step += 1
|
| 1268 |
+
st.rerun()
|
| 1269 |
+
else:
|
| 1270 |
+
# پایان مراحل و رفتن به فرم دموگرافیک
|
| 1271 |
+
# ذخیره نهایی دادهها
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1272 |
st.session_state.trust = st.session_state.get("trust_radio")
|
| 1273 |
st.session_state.pricing_method = st.session_state.get("pricing_method_radio")
|
| 1274 |
st.session_state.price_increase = st.session_state.get("price_increase_radio")
|
| 1275 |
st.session_state.explanation_received = st.session_state.get("explanation_received_radio")
|
| 1276 |
+
st.session_state.explanation_type = (
|
| 1277 |
+
st.session_state.get("explanation_type_radio") if st.session_state.explanation_received == "بله" else "N/A"
|
| 1278 |
+
)
|
| 1279 |
+
st.session_state.current_page = "demographic"
|
| 1280 |
+
st.rerun()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1281 |
|
| 1282 |
def demographic_form():
|
| 1283 |
"""فرم اطلاعات دموگرافیک"""
|