العدوان HTTP المباشر والألبت المستديرة

Home PDF

import requests
import json
import time

def ترجمة_نص(نص, اللغة_المستهدفة, خاص=False):
    if not نص or not نص.strip():
        return ""
    if اللغة_المستهدفة == 'en':
        print(f"  تخطي ترجمة الإنجليزية: {نص[:50]}...")
        return نص
    print(f"  ترجمة النص: {نص[:50]}...")

    عدد_المحاولات = 3
    for حاول in range(عدد_المحاولات):
        try:
            استجابة = عميل.محادثة.الاكمالات.إنشاء(
                المودل=اسم_المودل,
                الرسائل=[
                    {"دور": "نظام", "المحتوى": إنشاء_ترجمة_برنامج(اللغة_المستهدفة, خاص)},
                    {"دور": "مستخدم", "المحتوى": نص}
                ],
                التدفق=False
            )
            if not استجابة or not استجابة.الاختيارات or not استجابة.الاختيارات[0].رسالة.المحتوى:
                print(f"  خطأ: إجابة الترجمة فارغة أو غير صالحة: {استجابة}")
            if استجابة and استجابة.الاختيارات:
                نص_مترجم = استجابة.الاختيارات[0].رسالة.المحتوى
                return نص_مترجم
            else:
                print(f"  فشل الترجمة في المحاولة {حاول + 1}.")
                if حاول == عدد_المحاولات - 1:
                    return None
        except Exception as e:
            print(f"  فشل الترجمة مع الخطأ في المحاولة {حاول + 1}: {e}")
            if حاول == عدد_المحاولات - 1:
                return None
            time.sleep(1)  # انتظار قبل المحاولة مرة أخرى
    return None
 فشل الترجمة مع الخطأ في المحاولة 1: اتوجاه قيمة: صفة 5 عمود 1 (حرف 4)

يشير هذا الخطأ إلى أن API DeepSeek يعيد إجابة ليست صالحة JSON، قد تكون HTML أو نوع آخر. هذا الأمر مفرط، لأننا نتوقع أن يعيد API JSON. قد يكون المشكلة بسبب مشكلة مؤقتة في API، أو حدود للسرعة، أو مشكلة في البرنامج. من المهم تعالج هذا بشكل ملحوظ بتسجيل الخطأ والمحاولة المحتملة مرة أخرى.


Back 2025.02.22 Donate