Mistral AI

الترجمة بالذكاء الاصطناعي باستخدام Mistral وLingo.dev Compiler

ما هي Mistral AI؟

Mistral AI هي شركة فرنسية للذكاء الاصطناعي متخصصة في تطوير نماذج لغوية كبيرة مفتوحة الوزن، مصممة لتكون فعالة وقابلة للتخصيص ومتاحة لمجموعة واسعة من التطبيقات. تركز الشركة على الشفافية والأداء، وتطلق نماذج يمكن تشغيلها بكفاءة على أجهزة أصغر مقارنة بالعديد من المنافسين.

إعداد مفتاح API

تتطلب Mistral AI مفتاح API لمصادقة الطلبات من Lingo.dev Compiler. اختر طريقة الإعداد التي تناسب سير عملك بشكل أفضل:

الخيار 1: متغير البيئة (Terminal)

الأفضل للتجارب السريعة والاختبار دون تعديل أي ملفات.

قم بتعيين المفتاح مباشرة في جلسة الطرفية الخاصة بك:

export MISTRAL_API_KEY="your-api-key-here"

سيكون هذا المفتاح متاحًا فقط حتى تغلق نافذة الطرفية.

الخيار 2: تكوين المشروع (.env)

الأفضل للتكوين الخاص بالمشروع وبيئات الفريق حيث قد يستخدم كل مشروع بيانات اعتماد مختلفة.

قم بإنشاء ملف .env في جذر المشروع الخاص بك:

touch .env

أضف السطر التالي إلى الملف:

MISTRAL_API_KEY="your-api-key-here"

يتحقق Lingo.dev Compiler من ملفات البيئة بترتيب الأولوية هذا:

  1. .env.development (الأولوية الأعلى)
  2. .env.local
  3. .env (الأولوية الأدنى)

تتجاوز القيم في الملفات ذات الأولوية الأعلى تلك الموجودة في الملفات ذات الأولوية الأدنى.

الخيار 3: التكوين العالمي (إعدادات المستخدم)

الأفضل للمطورين الأفراد الذين يرغبون في استخدام نفس مفتاح API عبر جميع مشاريعهم.

قم بإنشاء ملف تكوين في الدليل الرئيسي الخاص بك:

touch ~/.lingodotdevrc

أضف المحتوى التالي إلى الملف:

[llm]
mistralApiKey="your-api-key-here"

يستمر هذا التكوين عبر جميع جلسات الطرفية والمشاريع على جهازك.

أولوية التكوين

عند استخدام طرق تكوين متعددة، يتحقق Lingo.dev Compiler من مفاتيح API بهذا الترتيب:

  1. متغيرات البيئة (الأولوية الأعلى)
  2. ملفات .env الخاصة بالمشروع (في ترتيب الأولوية الخاص بها)
  3. ملف تكوين المستخدم ~/.lingodotdevrc (الأولوية الأدنى)

يتم استخدام أول مفتاح API صالح يتم العثور عليه.

استخدام Mistral AI

لتمكين Mistral AI، قم بتعيين خاصية models في خيارات المُجمّع:

import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";
import { type UserConfig } from "vite";

// https://vite.dev/config/
const viteConfig: UserConfig = {
  plugins: [react()],
};

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja"],
  rsc: false,
  useDirective: false,
  debug: false,
  models: {
    "*:*": "mistral:mistral-large-latest",
  },
});

export default withLingo(viteConfig);

تقبل الخاصية كائنًا حيث:

  • المفاتيح هي أزواج من اللغات المصدر والهدف، مع * التي تمثل أي لغة
  • القيم هي معرفات النماذج (مثل mistral:mistral-large-latest)

يمكنك استخدام Mistral AI للترجمة:

  • بين جميع اللغات
  • من لغة مصدر محددة
  • إلى لغة هدف محددة
  • بين لغة مصدر وهدف محددة

ترجمة جميع اللغات

استخدم نمط البدل *:* لتطبيق نفس نموذج Mistral لجميع أزواج الترجمة:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // استخدام Mistral Large لجميع أزواج الترجمة
    "*:*": "mistral:mistral-large-latest",
  },
});

الترجمة من لغة مصدر محددة

استخدم لغة مصدر محددة مع بدل للغة الهدف لتطبيق نموذج لجميع الترجمات من ذلك المصدر:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // استخدام Mistral Large لجميع الترجمات من الإنجليزية
    "en:*": "mistral:mistral-large-latest",
    // استخدام Mixtral للترجمات من الإسبانية إلى أي لغة
    "es:*": "mistral:mixtral-8x7b",
    // الخيار الاحتياطي للغات المصدر الأخرى
    "*:*": "mistral:mistral-small-latest",
  },
});

الترجمة إلى لغة محددة

استخدم مصدرًا عامًا مع لغة هدف محددة لتطبيق نموذج لجميع الترجمات إلى تلك اللغة المستهدفة:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // استخدام نموذج متخصص للترجمات إلى اليابانية
    "*:ja": "mistral:mistral-large-latest",
    // استخدام Mixtral للترجمات إلى الصينية
    "*:zh": "mistral:mixtral-8x22b",
    // استخدام Mistral Large للترجمات إلى الفرنسية (نقطة قوة Mistral)
    "*:fr": "mistral:mistral-large-latest",
    // الإعداد الافتراضي للغات المستهدفة الأخرى
    "*:*": "mistral:mistral-small-latest",
  },
});

الترجمة بين لغات محددة

حدد أزواج المصدر والهدف بدقة للتحكم الدقيق في النموذج الذي يتعامل مع مجموعات لغوية محددة:

const withLingo = lingoCompiler.vite({
  sourceRoot: "src",
  lingoDir: "lingo",
  sourceLocale: "en",
  targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
  models: {
    // أزواج محددة مع النماذج المثلى
    "en:es": "mistral:mistral-small-latest", // الإنجليزية إلى الإسبانية
    "en:ja": "mistral:mistral-large-latest", // الإنجليزية إلى اليابانية
    "en:zh": "mistral:mixtral-8x22b", // الإنجليزية إلى الصينية
    "en:fr": "mistral:mistral-large-latest", // الإنجليزية إلى الفرنسية (امتياز)
    "es:en": "mistral:mistral-nemo", // الإسبانية إلى الإنجليزية
    "fr:en": "mistral:mistral-medium-latest", // الفرنسية إلى الإنجليزية
    "de:en": "mistral:codestral", // الألمانية إلى الإنجليزية (تقنية)

    // الخيار الاحتياطي للأزواج غير المحددة
    "*:*": "mistral:mistral-small-latest",
  },
});