diginoron commited on
Commit
c669c82
·
verified ·
1 Parent(s): f1442f5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -10
app.py CHANGED
@@ -1,4 +1,3 @@
1
- # app.py
2
  import os
3
  import pandas as pd
4
  import gradio as gr
@@ -7,7 +6,6 @@ from huggingface_hub import InferenceClient
7
  from deep_translator import GoogleTranslator
8
  import spaces # برای مدیریت GPU کرایه‌ای
9
 
10
- # --- بارگذاری HS DATA از CSV گیت‌هاب ---
11
  HS_CSV_URL = (
12
  "https://raw.githubusercontent.com/"
13
  "datasets/harmonized-system/master/data/harmonized-system.csv"
@@ -19,7 +17,6 @@ def get_product_name(hs_code: str) -> str:
19
  row = hs_df[hs_df["hscode"] == code4]
20
  return row.iloc[0]["description"] if not row.empty else "–"
21
 
22
- # --- تابع دریافت واردات و پردازش ستون‌ها ---
23
  def get_importers(hs_code: str, year: str, month: str):
24
  product_name = get_product_name(hs_code)
25
  period = f"{year}{int(month):02d}"
@@ -33,8 +30,6 @@ def get_importers(hs_code: str, year: str, month: str):
33
  if df is None or df.empty:
34
  return product_name, pd.DataFrame()
35
 
36
- # شناسایی ستون‌های مورد نیاز (کد کشور، نام کشور، ارزش)
37
- # ابتدا سعی در استفاده از ستون‌های استاندارد
38
  std_map = {
39
  'کد کشور': 'ptCode',
40
  'نام کشور': 'ptTitle',
@@ -45,17 +40,14 @@ def get_importers(hs_code: str, year: str, month: str):
45
  value_col= std_map['ارزش CIF'] if 'TradeValue' in df.columns else next((c for c in df.columns if 'value' in c.lower()), None)
46
 
47
  if not (code_col and title_col and value_col):
48
- # اگر نتوانست ستون‌ها را شناسایی کند، برگرداندن DataFrame خام
49
  return product_name, df
50
 
51
- # محدودسازی به 10 کشور برتر بر اساس ستون value_col
52
  df_sorted = df.sort_values(value_col, ascending=False).head(10)
53
 
54
  out = df_sorted[[code_col, title_col, value_col]]
55
  out.columns = ['کد کشور', 'نام کشور', 'ارزش CIF']
56
  return product_name, out
57
 
58
- # --- تابع تولید مشاوره تخصصی با GPU کرایه‌ای ---
59
  hf_token = os.getenv("HF_API_TOKEN")
60
  client = InferenceClient(token=hf_token)
61
  translator = GoogleTranslator(source='en', target='fa')
@@ -65,7 +57,6 @@ def provide_advice(table_data: pd.DataFrame, hs_code: str, year: str, month: str
65
  if table_data is None or table_data.empty:
66
  return "ابتدا نمایش داده‌های واردات را انجام دهید."
67
 
68
- # محدودسازی تعداد ردیف‌های ورودی به 10 (در صورت بیشتر)
69
  df_limited = table_data.head(10)
70
  table_str = df_limited.to_string(index=False)
71
  period = f"{year}/{int(month):02d}"
@@ -85,7 +76,6 @@ def provide_advice(table_data: pd.DataFrame, hs_code: str, year: str, month: str
85
  except Exception as e:
86
  return f"خطا در تولید مشاوره: {e}"
87
 
88
- # --- رابط کاربری Gradio ---
89
  with gr.Blocks() as demo:
90
  gr.Markdown("## تحلیل واردات بر اساس کد HS و ارائه مشاوره تخصصی")
91
 
 
 
1
  import os
2
  import pandas as pd
3
  import gradio as gr
 
6
  from deep_translator import GoogleTranslator
7
  import spaces # برای مدیریت GPU کرایه‌ای
8
 
 
9
  HS_CSV_URL = (
10
  "https://raw.githubusercontent.com/"
11
  "datasets/harmonized-system/master/data/harmonized-system.csv"
 
17
  row = hs_df[hs_df["hscode"] == code4]
18
  return row.iloc[0]["description"] if not row.empty else "–"
19
 
 
20
  def get_importers(hs_code: str, year: str, month: str):
21
  product_name = get_product_name(hs_code)
22
  period = f"{year}{int(month):02d}"
 
30
  if df is None or df.empty:
31
  return product_name, pd.DataFrame()
32
 
 
 
33
  std_map = {
34
  'کد کشور': 'ptCode',
35
  'نام کشور': 'ptTitle',
 
40
  value_col= std_map['ارزش CIF'] if 'TradeValue' in df.columns else next((c for c in df.columns if 'value' in c.lower()), None)
41
 
42
  if not (code_col and title_col and value_col):
 
43
  return product_name, df
44
 
 
45
  df_sorted = df.sort_values(value_col, ascending=False).head(10)
46
 
47
  out = df_sorted[[code_col, title_col, value_col]]
48
  out.columns = ['کد کشور', 'نام کشور', 'ارزش CIF']
49
  return product_name, out
50
 
 
51
  hf_token = os.getenv("HF_API_TOKEN")
52
  client = InferenceClient(token=hf_token)
53
  translator = GoogleTranslator(source='en', target='fa')
 
57
  if table_data is None or table_data.empty:
58
  return "ابتدا نمایش داده‌های واردات را انجام دهید."
59
 
 
60
  df_limited = table_data.head(10)
61
  table_str = df_limited.to_string(index=False)
62
  period = f"{year}/{int(month):02d}"
 
76
  except Exception as e:
77
  return f"خطا در تولید مشاوره: {e}"
78
 
 
79
  with gr.Blocks() as demo:
80
  gr.Markdown("## تحلیل واردات بر اساس کد HS و ارائه مشاوره تخصصی")
81