LLM Flow هي أداة ويب مصممة لتسهيل عملية تطوير الذكاء الاصطناعي ، بدءًا من تحديد حالات استخدام الذكاء الاصطناعى المعزولة (وظائف الذكاء الاصطناعي) ، وتنفيذ المطالبات ، وتقييم وتحسين الجودة السريعة ، وتوليد واجهات برمجة التطبيقات لدمج وظائف الذكاء الاصطناعي في تطبيقاتك الخاصة.
استكشف الميزات »
(العودة إلى الأعلى)
(العودة إلى الأعلى)
ينقسم المشروع إلى ثلاث خدمات يجب إعدادها جميعًا بشكل فردي:
server : Fastapi الخلفيةpromptfoo-server : express.js الخلفية التي تدير promptfooclient : Next.JS Frontend(العودة إلى الأعلى)
استخدم إعداد Docker إذا كنت تريد ببساطة تشغيل التطبيق دون جهد كبير. للتنمية المحلية ، الرجوع إلى الإعداد المحلي.
المتطلبات الأساسية:
كيفية الإعداد:
بالنسبة server client ، قم بإنشاء ملف .env.docker في مجلدات الجذر الخاصة بهما عن طريق نسخ وإعادة تسمية ملف .env.docker.template . بالنسبة promptfoo-server قم بإنشاء ملف .env من ملف .env.template . استبدال الأسرار من القوالب مع الخاص بك.
في المجلد الجذر ، قم بتشغيل هذين الأمرين:
docker compose build
docker compose up -d
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(العودة إلى الأعلى)
المتطلبات الأساسية:
يمكنك أيضًا استخدام إصدار عقدة مختلف. ومع ذلك ، لقد اختبرت فقط الإعداد باستخدام العقدة 22.
كيفية الإعداد:
بالنسبة لجميع الخدمات الثلاثة ، قم بإنشاء ملف .env في مجلدات الجذر الخاصة بكل منهما عن طريق نسخ وإعادة تسمية ملف .env.template . استبدال الأسرار في القوالب مع الخاص بك.
في المجلد الجذر:
docker compose up mongo -d
backend لتشغيل backend يمكنك استخدام مصحح VS Code لبدء تشغيله أو تشغيل ما يلي في المجلد backend :
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-server في المجلد promptfoo-server :
npm install
npm run start
client : في المجلد client :
npm install
npm run dev
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(العودة إلى الأعلى)
إذا كنت ترغب في تطوير المشروع ، فتأكد أولاً من تشغيل الإعداد المحلي.
المتطلبات الأساسية:
فيما يلي بعض الأوامر المفيدة التي يجب استخدامها أثناء التطوير:
pre-commit run --all-files
sh generate_client_bindings.sh
في المجلد client :
npm run lint
npm run pretty
(العودة إلى الأعلى)
تمثل وظائف الذكاء الاصطناعي عقودًا بين منطق عملك ومزود LLM. تقوم بتمرير مجموعة من المعلمات لهم وإعادة إخراج منظم.
في واجهة الويب ، يمكنك تحديد وظيفة الذكاء الاصطناعي. يمكنك تحديد اسمها ، وتعطيه وصفًا ، وتحديد المعلمات التي تقبلها وتحديد مقدمي الخدمات التي قد تستخدمها:
يمكنك أيضًا تحديد ما إذا كانت الوظيفة تُرجع استجابة سلسلة بسيطة غير منظمة أو استجابة JSON منظمة. بالنسبة لهذا الأخير ، يمكنك تحديد كائنات JSON المعقدة باستخدام محرر مخطط JSON.
من أجل تقييم جودة مطالبات وظيفة الذكاء الاصطناعى ، يمكنك تحديد التأكيدات وحالات الاختبار. يتم استخدام التأكيدات للمقارنة مع القيم أو الشروط المتوقعة. تستخدم هذه الميزة rastfoo تحت الغطاء. هناك العديد من أنواع التأكيدات للاختيار من بينها ، بدءًا من المقارنات البسيطة ، إلى أنماط Regex المعقدة ، وحتى تلك التي تستخدم رمز Python أو JavaScript المحدد ذاتيًا ، والتي يمكن أن تحدد منطقات التأكيد المخصصة والمعقدة.
تشير حالات الاختبار إلى مثال بيانات معلمات دالة الذكاء الاصطناعي. إنها تلعب دورًا أساسيًا في تأكيد الجودة السريعة. بعد تحديد مطالبة ، يتم تقييمه مقابل حالات الاختبار مع التأكيدات المحددة في وظيفة الذكاء الاصطناعي. يمكنك أيضًا تحديد التأكيدات التي يتم تطبيقها فقط على حالة اختبار واحدة. حتى أن هناك ميزة لإنشاء حالات اختبار AI بناءً على حالات الاختبار المحددة مسبقًا ، وكذلك اسم ووصف وظيفة الذكاء الاصطناعى.
للبدء ، يمكنك ببساطة إنشاء وظيفة منظمة العفو الدولية من أحد الأمثلة المقدمة:
(العودة إلى الأعلى)
في مطالبات تدفق LLM يتم تعريفها في سياق وظائف الذكاء الاصطناعي. يجب أن تتضمن معلمات وظيفة الذكاء الاصطناعى المعنية في الجسم ويتم تقييمها مقابل حالات الاختبار والتأكيدات.
يتم تقييم المطالبات لكل مزود محدد تحت وظيفة الذكاء الاصطناعى. يسمح ذلك بمقارنة جودة المطالبة عبر مقدمي الخدمات المختلفين. يتم حساب ثلاث مقاييس أثناء التقييم:
(العودة إلى الأعلى)
المشاريع هي وسيلة لإنشاء واجهة برمجة تطبيقات يمكنك من خلالها استدعاء وظائف الذكاء الاصطناعي المختلفة. في واجهة الويب ، يتم إنشاء مستند Swagger مخصص لكل مشروع يمكنك استخدامه لاختبار واجهة برمجة التطبيقات في العميل نفسه. يمكنك أيضًا تصدير مواصفات OpenAPI لإنشاء روابط العميل الخاصة بك باستخدام مولدات الرموز مثل OpenAPI-Generator.
يتم ملء مستندات API تلقائيًا مع الاسم والوصف ومعلمات وظائف الذكاء الاصطناعي المحددة وتتضمن إحدى حالات الاختبار المحددة كمثال. يتم تعيين كل وظيفة AI داخل المشروع نقطة النهاية الخاصة بها.
وبهذه الطريقة يمكنك دمج وظائف الذكاء الاصطناعي المحددة في تدفق LLM في تطبيقاتك الخاصة. بمجرد إنشاء المشروع ، لا تحتاج بالضرورة إلى تشغيل العميل للاتصال بنقاط النهاية. فيما يلي تجريبي حول كيفية إنشاء واستخدام المشاريع:
(العودة إلى الأعلى)
إذا كان لديك اقتراح من شأنه أن يجعل هذا أفضل ، فيرجى تورك الريبو وإنشاء طلب سحب. يمكنك أيضًا فتح مشكلة مع علامة "تحسين". لا تنسى إعطاء المشروع نجمًا! شكرًا لك مرة أخرى!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(العودة إلى الأعلى)
موزعة تحت رخصة معهد ماساتشوستس للتكنولوجيا. انظر LICENSE.txt لمزيد من المعلومات.
(العودة إلى الأعلى)
أمير محمد - [email protected]
رابط المشروع: https://github.com/amir-mo1999/llmflow
(العودة إلى الأعلى)