Spaces:
Sleeping
Sleeping
Commit
·
889f60f
1
Parent(s):
5f5d374
Initial commit
Browse files
app.py
CHANGED
|
@@ -9,19 +9,16 @@ from openai import OpenAI
|
|
| 9 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
| 10 |
logger = logging.getLogger(__name__)
|
| 11 |
|
| 12 |
-
# تنظیم API Key
|
| 13 |
logger.info("Starting application setup")
|
| 14 |
-
|
| 15 |
-
if not
|
| 16 |
-
logger.warning("
|
| 17 |
-
# اگه API Key نباشه، ادامه بده ولی خطا نده
|
| 18 |
client = None
|
| 19 |
else:
|
| 20 |
-
# تنظیم کلاینت OpenAI برای DashScope
|
| 21 |
try:
|
| 22 |
client = OpenAI(
|
| 23 |
-
api_key=
|
| 24 |
-
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
|
| 25 |
timeout=30.0
|
| 26 |
)
|
| 27 |
logger.info("✅ OpenAI client initialized successfully")
|
|
@@ -30,8 +27,8 @@ else:
|
|
| 30 |
try:
|
| 31 |
test_response = client.models.list()
|
| 32 |
logger.info("✅ API connection test successful")
|
| 33 |
-
except:
|
| 34 |
-
logger.warning("⚠️ API test failed but client created")
|
| 35 |
|
| 36 |
except Exception as e:
|
| 37 |
logger.error(f"❌ Failed to initialize OpenAI client: {e}")
|
|
@@ -114,16 +111,15 @@ def generate_code(text, language):
|
|
| 114 |
|
| 115 |
if client is None:
|
| 116 |
error_msg = "❌ خطا: اتصال به API برقرار نشد. لطفاً API Key را بررسی کنید."
|
| 117 |
-
error_code = f"# خطا در اتصال به سرویس\n# درخواست: {text}\nprint('لطفاً API Key را در تنظیمات
|
| 118 |
save_to_db(text, language, error_code, error_msg, success=False)
|
| 119 |
return error_msg, error_code
|
| 120 |
|
| 121 |
try:
|
| 122 |
-
# لیست مدلهای
|
| 123 |
models_to_try = [
|
| 124 |
-
"
|
| 125 |
-
"
|
| 126 |
-
"qwen2.5-coder-7b-instruct"
|
| 127 |
]
|
| 128 |
|
| 129 |
system_prompt = f"""You are an expert {language} programmer.
|
|
@@ -171,7 +167,7 @@ Please provide only the code, no extra explanations."""
|
|
| 171 |
|
| 172 |
if not code_generated:
|
| 173 |
error_msg = "❌ همه مدلها شکست خوردند"
|
| 174 |
-
error_code = f"# خطا در تولید کد\n# درخواست: {text}\nprint('خطا در دسترسی به مدلهای
|
| 175 |
save_to_db(text, language, error_code, error_msg, success=False)
|
| 176 |
return error_msg, error_code
|
| 177 |
|
|
@@ -215,7 +211,7 @@ def process_request(user_input, language, show_history):
|
|
| 215 |
logger.info(f"📨 Processing request - Language: {language}, Show History: {show_history}")
|
| 216 |
|
| 217 |
if not user_input or not user_input.strip():
|
| 218 |
-
return "❌ لطفاً توضیحی برای برنامه وارد کنید.", get_history() if show_history else ""
|
| 219 |
|
| 220 |
try:
|
| 221 |
# تولید کد
|
|
@@ -250,7 +246,7 @@ def create_gradio_interface():
|
|
| 250 |
|
| 251 |
gr.Markdown("""
|
| 252 |
# 🤖 کریستوفر - دستیار هوشمند کدنویسی
|
| 253 |
-
### 🚀 با قدرت مدلهای
|
| 254 |
|
| 255 |
توضیح برنامهای که میخواهید را به فارسی وارد کنید و زبان برنامهنویسی مورد نظر را انتخاب کنید.
|
| 256 |
""")
|
|
|
|
| 9 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
| 10 |
logger = logging.getLogger(__name__)
|
| 11 |
|
| 12 |
+
# تنظیم API Key برای OpenAI
|
| 13 |
logger.info("Starting application setup")
|
| 14 |
+
openai_api_key = os.getenv("OPENAI_API_KEY")
|
| 15 |
+
if not openai_api_key:
|
| 16 |
+
logger.warning("OPENAI_API_KEY not found in environment variables")
|
|
|
|
| 17 |
client = None
|
| 18 |
else:
|
|
|
|
| 19 |
try:
|
| 20 |
client = OpenAI(
|
| 21 |
+
api_key=openai_api_key,
|
|
|
|
| 22 |
timeout=30.0
|
| 23 |
)
|
| 24 |
logger.info("✅ OpenAI client initialized successfully")
|
|
|
|
| 27 |
try:
|
| 28 |
test_response = client.models.list()
|
| 29 |
logger.info("✅ API connection test successful")
|
| 30 |
+
except Exception as e:
|
| 31 |
+
logger.warning(f"⚠️ API test failed but client created: {e}")
|
| 32 |
|
| 33 |
except Exception as e:
|
| 34 |
logger.error(f"❌ Failed to initialize OpenAI client: {e}")
|
|
|
|
| 111 |
|
| 112 |
if client is None:
|
| 113 |
error_msg = "❌ خطا: اتصال به API برقرار نشد. لطفاً API Key را بررسی کنید."
|
| 114 |
+
error_code = f"# خطا در اتصال به سرویس\n# درخواست: {text}\nprint('لطفاً API Key را در تنظیمات OpenAI اضافه کنید')"
|
| 115 |
save_to_db(text, language, error_code, error_msg, success=False)
|
| 116 |
return error_msg, error_code
|
| 117 |
|
| 118 |
try:
|
| 119 |
+
# لیست مدلهای OpenAI برای تست
|
| 120 |
models_to_try = [
|
| 121 |
+
"gpt-4o",
|
| 122 |
+
"gpt-3.5-turbo"
|
|
|
|
| 123 |
]
|
| 124 |
|
| 125 |
system_prompt = f"""You are an expert {language} programmer.
|
|
|
|
| 167 |
|
| 168 |
if not code_generated:
|
| 169 |
error_msg = "❌ همه مدلها شکست خوردند"
|
| 170 |
+
error_code = f"# خطا در تولید کد\n# درخواست: {text}\nprint('خطا در دسترسی به مدلهای OpenAI')"
|
| 171 |
save_to_db(text, language, error_code, error_msg, success=False)
|
| 172 |
return error_msg, error_code
|
| 173 |
|
|
|
|
| 211 |
logger.info(f"📨 Processing request - Language: {language}, Show History: {show_history}")
|
| 212 |
|
| 213 |
if not user_input or not user_input.strip():
|
| 214 |
+
return "❌ لطفاً توضیحی برای برنامه وارد کنید.", get_history() if show_history else "", ""
|
| 215 |
|
| 216 |
try:
|
| 217 |
# تولید کد
|
|
|
|
| 246 |
|
| 247 |
gr.Markdown("""
|
| 248 |
# 🤖 کریستوفر - دستیار هوشمند کدنویسی
|
| 249 |
+
### 🚀 با قدرت مدلهای OpenAI
|
| 250 |
|
| 251 |
توضیح برنامهای که میخواهید را به فارسی وارد کنید و زبان برنامهنویسی مورد نظر را انتخاب کنید.
|
| 252 |
""")
|