Spaces:
Sleeping
Sleeping
Commit
·
1453b63
1
Parent(s):
51bf58b
Initial commit
Browse files
app.py
CHANGED
|
@@ -25,22 +25,22 @@ logger.debug("Loading CodeT5-base model")
|
|
| 25 |
try:
|
| 26 |
code_tokenizer = AutoTokenizer.from_pretrained("Salesforce/codeT5-base", cache_dir="/tmp/hf_cache")
|
| 27 |
code_model = AutoModelForSeq2SeqLM.from_pretrained("Salesforce/codeT5-base", cache_dir="/tmp/hf_cache")
|
| 28 |
-
code_gen = pipeline("text2text-generation", model=code_model, tokenizer=code_tokenizer, max_length=
|
| 29 |
logger.debug("CodeT5-base model loaded")
|
| 30 |
except Exception as e:
|
| 31 |
logger.error(f"Failed to load CodeT5-base: {e}")
|
| 32 |
raise
|
| 33 |
|
| 34 |
# لود مدل ترجمه
|
| 35 |
-
logger.debug("Loading Helsinki-NLP/opus-mt-
|
| 36 |
try:
|
| 37 |
-
translate_tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-
|
| 38 |
-
translate_model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-
|
| 39 |
translate_gen = pipeline("translation", model=translate_model, tokenizer=translate_tokenizer, max_length=300)
|
| 40 |
-
logger.debug("Helsinki-NLP/opus-mt-
|
| 41 |
except Exception as e:
|
| 42 |
logger.error(f"Failed to load translation model: {e}")
|
| 43 |
-
|
| 44 |
|
| 45 |
# آزادسازی حافظه
|
| 46 |
import gc
|
|
@@ -82,8 +82,7 @@ def save_to_memory(user_input, task_type, prompt, response):
|
|
| 82 |
logger.debug("Saved to DB")
|
| 83 |
except Exception as e:
|
| 84 |
logger.error(f"DB Save Error: {e}")
|
| 85 |
-
# نذار خطای دیتابیس جلوی ادامه کار رو بگیره
|
| 86 |
-
pass
|
| 87 |
|
| 88 |
# دریافت تاریخچه
|
| 89 |
def get_history():
|
|
@@ -113,11 +112,14 @@ def get_history():
|
|
| 113 |
def debug_models(text, language):
|
| 114 |
logger.debug(f"Debugging models with input: {text}, language: {language}")
|
| 115 |
try:
|
| 116 |
-
|
|
|
|
|
|
|
|
|
|
| 117 |
logger.debug(f"Translated text: {translated}")
|
| 118 |
prompt = f"Write a complete, correct, and well-explained code in {language} to: {translated}"
|
| 119 |
logger.debug(f"Generated prompt: {prompt}")
|
| 120 |
-
code_output = code_gen(prompt, max_length=
|
| 121 |
logger.debug(f"Generated code: {code_output}")
|
| 122 |
return f"Debug: Translation: {translated}\nPrompt: {prompt}\nCode: {code_output}"
|
| 123 |
except Exception as e:
|
|
@@ -128,19 +130,24 @@ def debug_models(text, language):
|
|
| 128 |
def translate_and_prompt(text, language):
|
| 129 |
logger.debug(f"Translating input: {text}")
|
| 130 |
try:
|
| 131 |
-
|
|
|
|
|
|
|
|
|
|
| 132 |
logger.debug(f"Translated text: {translated}")
|
| 133 |
prompt = f"Write a complete, correct, and well-explained code in {language} to: {translated}"
|
| 134 |
return prompt
|
| 135 |
except Exception as e:
|
| 136 |
logger.error(f"Translation error: {e}")
|
| 137 |
-
|
|
|
|
|
|
|
| 138 |
|
| 139 |
# تولید کد
|
| 140 |
def generate_code(prompt):
|
| 141 |
logger.debug(f"Generating code with prompt: {prompt}")
|
| 142 |
try:
|
| 143 |
-
result = code_gen(prompt, max_length=
|
| 144 |
code_output = result[0]['generated_text']
|
| 145 |
if not code_output.strip():
|
| 146 |
logger.warning("Generated code is empty")
|
|
|
|
| 25 |
try:
|
| 26 |
code_tokenizer = AutoTokenizer.from_pretrained("Salesforce/codeT5-base", cache_dir="/tmp/hf_cache")
|
| 27 |
code_model = AutoModelForSeq2SeqLM.from_pretrained("Salesforce/codeT5-base", cache_dir="/tmp/hf_cache")
|
| 28 |
+
code_gen = pipeline("text2text-generation", model=code_model, tokenizer=code_tokenizer, max_length=768, device=-1)
|
| 29 |
logger.debug("CodeT5-base model loaded")
|
| 30 |
except Exception as e:
|
| 31 |
logger.error(f"Failed to load CodeT5-base: {e}")
|
| 32 |
raise
|
| 33 |
|
| 34 |
# لود مدل ترجمه
|
| 35 |
+
logger.debug("Loading Helsinki-NLP/opus-mt-fas-en model")
|
| 36 |
try:
|
| 37 |
+
translate_tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-fas-en", cache_dir="/tmp/hf_cache")
|
| 38 |
+
translate_model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-fas-en", cache_dir="/tmp/hf_cache")
|
| 39 |
translate_gen = pipeline("translation", model=translate_model, tokenizer=translate_tokenizer, max_length=300)
|
| 40 |
+
logger.debug("Helsinki-NLP/opus-mt-fas-en model loaded")
|
| 41 |
except Exception as e:
|
| 42 |
logger.error(f"Failed to load translation model: {e}")
|
| 43 |
+
translate_gen = None # Fallback: اگه مدل ترجمه لود نشد، از ورودی خام استفاده میکنیم
|
| 44 |
|
| 45 |
# آزادسازی حافظه
|
| 46 |
import gc
|
|
|
|
| 82 |
logger.debug("Saved to DB")
|
| 83 |
except Exception as e:
|
| 84 |
logger.error(f"DB Save Error: {e}")
|
| 85 |
+
pass # نذار خطای دیتابیس جلوی ادامه کار رو بگیره
|
|
|
|
| 86 |
|
| 87 |
# دریافت تاریخچه
|
| 88 |
def get_history():
|
|
|
|
| 112 |
def debug_models(text, language):
|
| 113 |
logger.debug(f"Debugging models with input: {text}, language: {language}")
|
| 114 |
try:
|
| 115 |
+
if translate_gen:
|
| 116 |
+
translated = translate_gen(text, max_length=300)[0]['translation_text']
|
| 117 |
+
else:
|
| 118 |
+
translated = text # Fallback: اگه ترجمه کار نکرد، از ورودی خام استفاده کن
|
| 119 |
logger.debug(f"Translated text: {translated}")
|
| 120 |
prompt = f"Write a complete, correct, and well-explained code in {language} to: {translated}"
|
| 121 |
logger.debug(f"Generated prompt: {prompt}")
|
| 122 |
+
code_output = code_gen(prompt, max_length=768, num_beams=5, do_sample=False)[0]['generated_text']
|
| 123 |
logger.debug(f"Generated code: {code_output}")
|
| 124 |
return f"Debug: Translation: {translated}\nPrompt: {prompt}\nCode: {code_output}"
|
| 125 |
except Exception as e:
|
|
|
|
| 130 |
def translate_and_prompt(text, language):
|
| 131 |
logger.debug(f"Translating input: {text}")
|
| 132 |
try:
|
| 133 |
+
if translate_gen:
|
| 134 |
+
translated = translate_gen(text, max_length=300)[0]['translation_text']
|
| 135 |
+
else:
|
| 136 |
+
translated = text # Fallback: اگه ترجمه کار نکرد، از ورودی خام استفاده کن
|
| 137 |
logger.debug(f"Translated text: {translated}")
|
| 138 |
prompt = f"Write a complete, correct, and well-explained code in {language} to: {translated}"
|
| 139 |
return prompt
|
| 140 |
except Exception as e:
|
| 141 |
logger.error(f"Translation error: {e}")
|
| 142 |
+
prompt = f"Write a complete, correct, and well-explained code in {language} to: {text}"
|
| 143 |
+
logger.debug(f"Fallback prompt: {prompt}")
|
| 144 |
+
return prompt
|
| 145 |
|
| 146 |
# تولید کد
|
| 147 |
def generate_code(prompt):
|
| 148 |
logger.debug(f"Generating code with prompt: {prompt}")
|
| 149 |
try:
|
| 150 |
+
result = code_gen(prompt, max_length=768, num_beams=5, do_sample=False)
|
| 151 |
code_output = result[0]['generated_text']
|
| 152 |
if not code_output.strip():
|
| 153 |
logger.warning("Generated code is empty")
|