Spaces:
Sleeping
Sleeping
File size: 4,206 Bytes
83a2a70 3ba690a 0490f39 e5eed83 83a2a70 b4abe98 e5eed83 c62298d 0490f39 83a2a70 b4abe98 0490f39 e5eed83 3ba690a b4abe98 e5574dd 3ba690a 937f1aa 3ba690a b4abe98 3ba690a 99af9f6 e5eed83 99af9f6 e5eed83 b4abe98 3ba690a b4abe98 3caec61 83a2a70 3caec61 83a2a70 b4abe98 9a96732 9b14c83 83a2a70 e5eed83 b4abe98 e5eed83 b4abe98 e5eed83 8c27317 b4abe98 8c27317 b4abe98 8c27317 891e827 8c27317 b4abe98 e5eed83 8c27317 e5eed83 8c27317 b4abe98 8c27317 b4abe98 8c27317 b4abe98 8c27317 b4abe98 8c27317 b4abe98 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
import os
import gradio as gr
import pandas as pd
import comtradeapicall
from huggingface_hub import InferenceClient
from deep_translator import GoogleTranslator
# کلید COMTRADE
subscription_key = os.getenv("COMTRADE_API_KEY", "")
# توکن Hugging Face
hf_token = os.getenv("HF_API_TOKEN")
client = InferenceClient(token=hf_token)
translator = GoogleTranslator(source='en', target='fa')
def get_importers(hs_code: str, year: str, month: str):
period = f"{year}{int(month):02d}"
df = comtradeapicall.previewFinalData(
typeCode='C', freqCode='M', clCode='HS', period=period,
reporterCode=None, cmdCode=hs_code, flowCode='M',
partnerCode=None, partner2Code=None,
customsCode=None, motCode=None,
maxRecords=500, includeDesc=True
)
if df is None or df.empty:
return pd.DataFrame(columns=["کد کشور", "نام کشور", "ارزش CIF"])
df = df[df['cifvalue'] > 0]
result = (
df.groupby(["reporterCode", "reporterDesc"], as_index=False)
.agg({"cifvalue": "sum"})
.sort_values("cifvalue", ascending=False)
)
result.columns = ["کد کشور", "نام کشور", "ارزش CIF"]
return result
def provide_advice(table_data: pd.DataFrame, hs_code: str, year: str, month: str):
if table_data is None or table_data.empty:
return "ابتدا باید اطلاعات واردات را نمایش دهید."
table_str = table_data.to_string(index=False)
period = f"{year}/{int(month):02d}"
prompt = (
f"The following table shows countries that imported a product with HS code {hs_code} during the period {period}:\n"
f"{table_str}\n\n"
f"Please provide a detailed and comprehensive analysis in two paragraphs. The first paragraph should discuss market opportunities, potential demand, and specific cultural or economic factors influencing the demand for this product in these countries. The second paragraph should offer actionable strategic recommendations for exporters, including detailed trade strategies, risk management techniques, and steps to establish local partnerships."
)
print("پرامپت ساختهشده:")
print(prompt)
try:
print("در حال فراخوانی مدل mistralai/Mixtral-8x7B-Instruct-v0.1...")
outputs = client.text_generation(
prompt=prompt,
model="mistralai/Mixtral-8x7B-Instruct-v0.1",
max_new_tokens=1024 # افزایش برای تکمیل جملات
)
print("خروجی مدل دریافت شد (به انگلیسی):")
print(outputs)
# ترجمه خروجی به فارسی
translated_outputs = translator.translate(outputs)
print("خروجی ترجمهشده به فارسی:")
print(translated_outputs)
return translated_outputs
except Exception as e:
error_msg = f"خطا در تولید مشاوره: {str(e)}"
print(error_msg)
return error_msg
current_year = pd.Timestamp.now().year
years = [str(y) for y in range(2000, current_year+1)]
months = [str(m) for m in range(1, 13)]
with gr.Blocks() as demo:
gr.Markdown("##تولید شده توسط DIGINORON نمایش کشورهایی که یک کالا را وارد کردهاند")
with gr.Row():
inp_hs = gr.Textbox(label="HS Code")
inp_year = gr.Dropdown(choices=years, label="سال", value=str(current_year))
inp_month = gr.Dropdown(choices=months, label="ماه", value=str(pd.Timestamp.now().month))
btn_show = gr.Button("نمایش اطلاعات")
out_table = gr.Dataframe(
headers=["کد کشور", "نام کشور", "ارزش CIF"],
datatype=["number", "text", "number"],
interactive=True,
)
btn_show.click(get_importers, [inp_hs, inp_year, inp_month], out_table)
btn_advice = gr.Button("ارائه مشاوره تخصصی")
out_advice = gr.Textbox(label="مشاوره تخصصی", lines=6)
btn_advice.click(
provide_advice,
inputs=[out_table, inp_hs, inp_year, inp_month],
outputs=out_advice
)
if __name__ == "__main__":
demo.launch()
|