Groq
الترجمة بالذكاء الاصطناعي باستخدام Groq وLingo.dev Compiler
ما هي Groq؟
Groq هي شركة تصمم أجهزة وبرمجيات ذكاء اصطناعي عالية الأداء مُحسّنة لاستدلال منخفض الزمن الكامن للغاية. تهدف حلولها إلى تسريع أعباء عمل الذكاء الاصطناعي في مجالات مثل نماذج اللغة الكبيرة والتحليلات في الوقت الفعلي من خلال الاستفادة من بنية معالج تدفق التنسور المخصصة.
إعداد مفتاح API
تتطلب Groq مفتاح API لمصادقة الطلبات من مُترجم Lingo.dev. اختر طريقة الإعداد التي تناسب سير عملك بشكل أفضل:
الخيار 1: متغير البيئة (Terminal)
الأفضل للتجارب السريعة والاختبار دون تعديل أي ملفات.
قم بتعيين المفتاح مباشرة في جلسة الطرفية الخاصة بك:
export GROQ_API_KEY="your-api-key-here"
سيكون هذا المفتاح متاحًا فقط حتى تغلق نافذة الطرفية.
الخيار 2: تكوين المشروع (.env)
الأفضل للتكوين الخاص بالمشروع وبيئات الفريق حيث قد يستخدم كل مشروع بيانات اعتماد مختلفة.
قم بإنشاء ملف .env
في جذر المشروع الخاص بك:
touch .env
أضف السطر التالي إلى الملف:
GROQ_API_KEY="your-api-key-here"
يتحقق مُترجم Lingo.dev من ملفات البيئة بترتيب الأولوية هذا:
.env.development
(الأولوية الأعلى).env.local
.env
(الأولوية الأدنى)
تتجاوز القيم في الملفات ذات الأولوية الأعلى تلك الموجودة في الملفات ذات الأولوية الأدنى.
الخيار 3: التكوين العالمي (إعدادات المستخدم)
الأفضل للمطورين الأفراد الذين يرغبون في استخدام نفس مفتاح API عبر جميع مشاريعهم.
قم بإنشاء ملف تكوين في الدليل الرئيسي الخاص بك:
touch ~/.lingodotdevrc
أضف المحتوى التالي إلى الملف:
[llm]
groqApiKey="your-api-key-here"
يستمر هذا التكوين عبر جميع جلسات الطرفية والمشاريع على جهازك.
أولوية التكوين
عند استخدام طرق تكوين متعددة، يتحقق مُترجم Lingo.dev من مفاتيح API بهذا الترتيب:
- متغيرات البيئة (الأولوية الأعلى)
- ملفات .env الخاصة بالمشروع (في ترتيب الأولوية الخاص بها)
- ملف تكوين المستخدم
~/.lingodotdevrc
(الأولوية الأدنى)
يتم استخدام أول مفتاح API صالح يتم العثور عليه.
استخدام Groq
لتفعيل Groq، قم بتعيين خاصية 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: {
"*:*": "groq:llama-3.1-8b-instant",
},
});
export default withLingo(viteConfig);
تقبل الخاصية كائنًا حيث:
- المفاتيح هي أزواج من اللغات المصدر والهدف، مع استخدام
*
للدلالة على أي لغة - القيم هي معرّفات النماذج (مثل
groq:llama-3.1-8b-instant
)
يمكنك استخدام Groq للترجمة:
- بين جميع اللغات
- من لغة مصدر محددة
- إلى لغة هدف محددة
- بين لغة مصدر ولغة هدف محددتين
ترجمة جميع اللغات
استخدم نمط البدل *:*
لتطبيق نفس نموذج Groq لجميع أزواج الترجمة:
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// استخدام Llama 3.1 8B لجميع أزواج الترجمة
"*:*": "groq:llama-3.1-8b-instant",
},
});
الترجمة من لغة مصدر محددة
استخدم لغة مصدر محددة مع بدل للغة الهدف لتطبيق نموذج لجميع الترجمات من ذلك المصدر:
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// استخدام Llama 3.1 70B لجميع الترجمات من الإنجليزية
"en:*": "groq:llama-3.1-70b-versatile",
// استخدام Mixtral للترجمات من الإسبانية إلى أي لغة
"es:*": "groq:mixtral-8x7b-32768",
// نموذج احتياطي للغات المصدر الأخرى
"*:*": "groq:llama-3.1-8b-instant",
},
});
الترجمة إلى لغة مستهدفة محددة
استخدم مصدرًا عامًا مع لغة مستهدفة محددة لتطبيق نموذج لجميع الترجمات إلى تلك اللغة المستهدفة:
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// استخدام نموذج متخصص للترجمات إلى اليابانية
"*:ja": "groq:llama-3.1-70b-versatile",
// استخدام Mixtral للترجمات إلى الصينية
"*:zh": "groq:mixtral-8x7b-32768",
// استخدام Gemma 2 للترجمات إلى الألمانية
"*:de": "groq:gemma2-9b-it",
// الإعداد الافتراضي للغات المستهدفة الأخرى
"*:*": "groq:llama-3.1-8b-instant",
},
});
الترجمة بين لغات محددة
حدد أزواج المصدر والهدف بدقة للتحكم الدقيق في النموذج الذي يتعامل مع مجموعات لغوية محددة:
const withLingo = lingoCompiler.vite({
sourceRoot: "src",
lingoDir: "lingo",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja", "pt", "zh"],
models: {
// أزواج محددة مع نماذج مثالية
"en:es": "groq:llama-3.1-70b-versatile", // الإنجليزية إلى الإسبانية
"en:ja": "groq:llama-3.1-70b-versatile", // الإنجليزية إلى اليابانية
"en:zh": "groq:mixtral-8x7b-32768", // الإنجليزية إلى الصينية
"es:en": "groq:llama-3.1-8b-instant", // الإسبانية إلى الإنجليزية
"fr:en": "groq:gemma2-9b-it", // الفرنسية إلى الإنجليزية
"de:en": "groq:gemma2-9b-it", // الألمانية إلى الإنجليزية
// الخيار الاحتياطي للأزواج غير المحددة
"*:*": "groq:llama-3.1-8b-instant",
},
});