AI Function Helper هي وحدة Node.js قوية تقوم بتبسيط تكامل نماذج GPT من Openai في تطبيقاتك. يوفر طريقة منظمة للتفاعل مع نماذج الذكاء الاصطناعى ، وضمان استجابات متسقة ومؤسسة.
قم بتثبيت مساعد وظيفة AI باستخدام NPM:
npm install ai-function-helperإليك مثال بسيط لتبدأ:
const { createAiFunctionInstance } = require ( 'ai-function-helper' ) ;
// Create an instance with your OpenAI API key
const aiFunction = createAiFunctionInstance ( 'your_api_key_here' ) ;
// Define your function
const options = {
functionName : 'generate_haiku' ,
model : 'gpt-3.5-turbo' ,
args : { topic : 'spring' } ,
description : 'Generate a haiku about the given topic.' ,
outputSchema : {
type : "object" ,
properties : {
haiku : { type : "string" }
} ,
required : [ "haiku" ]
}
} ;
// Call the function
aiFunction ( options )
. then ( result => console . log ( result . haiku ) )
. catch ( error => console . error ( error ) ) ; لاستخدام مساعد وظيفة AI ، تحتاج أولاً إلى إنشاء مثيل باستخدام مفتاح Openai API:
const { createAiFunctionInstance } = require ( 'ai-function-helper' ) ;
const aiFunction = createAiFunctionInstance ( 'your_api_key_here' ) ;يمكنك أيضًا استخدام عنوان URL للنقطة النهائية المخصصة:
const aiFunction = createAiFunctionInstance ( 'your_api_key_here' , 'https://api.openai.com/v1' ) ;بدلاً من ذلك ، يمكنك استخدام مثيل Openai موجود:
const OpenAI = require ( 'openai' ) ;
const openai = new OpenAI ( { apiKey : 'your_api_key_here' } ) ;
const aiFunction = createAiFunctionInstance ( openai ) ;بمجرد أن يكون لديك مثيل ، يمكنك الاتصال بوظائف الذكاء الاصطناعي من خلال توفير الخيارات:
const result = await aiFunction ( {
functionName : 'example_function' ,
model : 'gpt-4o' ,
args : { param1 : 'value1' , param2 : 'value2' } ,
description : 'This is an example function.' ,
outputSchema : {
type : "object" ,
properties : {
result : { type : "string" }
} ,
required : [ "result" ]
}
} ) ; يأخذ aiFunction كائن خيارات مع الخصائص التالية:
| خيار | يكتب | وصف | تقصير |
|---|---|---|---|
functionName | خيط | اسم وظيفة الذكاء الاصطناعى | 'custom_function' |
args | كائن/سلسلة | حجج الوظيفة | - |
description | خيط | وصف الغرض من الوظيفة | - |
outputSchema | هدف | نوع العودة المتوقع (مخطط JSON أو مخطط ZOD) | - |
strictReturn | منطقية | فرض التحقق من صحة نوع العائد الصارم | true |
showDebug | منطقية | طباعة معلومات التصحيح إلى وحدة التحكم | false |
debugLevel | رقم | مستوى معلومات التصحيح (0-2) | 0 |
temperature | رقم | درجة حرارة أخذ العينات لنموذج الذكاء الاصطناعي | 0.6 |
frequency_penalty | رقم | عقوبة التردد لنموذج الذكاء الاصطناعى | 0 |
presence_penalty | رقم | عقوبة التواجد لنموذج الذكاء الاصطناعي | 0 |
model | خيط | نموذج الذكاء الاصطناعي للاستخدام | 'gpt-4o-mini' |
max_tokens | رقم | الحد الأقصى لعدد الرموز التي يجب توليدها | 1000 |
top_p | رقم | أعلى قيمة p لنموذج الذكاء الاصطناعى | null |
blockHijack | منطقية | منع الاختطاف السريع | false |
blockHijackThrowError | منطقية | رمي الخطأ في محاولة الاختطاف | false |
tools | صفيف | وظائف المساعد لاستخدامها في الوظيفة الرئيسية | [] |
stream | منطقية | تمكين تدفق الاستجابة | false |
streamCallback | وظيفة | رد الاتصال للاستجابات المتدفقة | null |
promptVars | هدف | المتغيرات لاستخدامها في المطالبة | {} |
images | سلسلة/صفيف | عناوين URL (عناوين) الصورة لنماذج الرؤية | null |
imageQuality | خيط | جودة صورة لنماذج الرؤية | 'low' |
minifyJSON | منطقية | Minify JSON OUTPUT | false |
history | صفيف | تاريخ المحادثة للسياق | [] |
forceJsonMode | منطقية | إجبار وضع JSON على النماذج غير JSON | false |
timeout | رقم | مهلة لمكالمات API (بالميلي ثانية) | 120000 |
maxRetries | رقم | الحد الأقصى لعدد إعادة محاكات مكالمات API | 0 |
includeThinking | منطقية | قم بتضمين عملية تفكير الذكاء الاصطناعى في إخراج التصحيح | false |
OutsSchema : يحدد الهيكل المتوقع لإخراج وظيفة الذكاء الاصطناعى باستخدام مخطط JSON أو مخطط ZOD. هذا يضمن أن نموذج الذكاء الاصطناعى يعيد البيانات بالتنسيق الذي يتوقعه تطبيقك.
الأدوات : مجموعة من وظائف المساعد التي يمكن استخدامها ضمن وظيفة الذكاء الاصطناعى الرئيسي. كل أداة هي كائن له خصائص name و function_call description parameters .
blockhijack : عند التمكين ، تمنع هذه الميزة نموذج الذكاء الاصطناعى من الإرشادات التالية في رسائل المستخدم التي تحاول تجاوز السلوك المقصود للوظيفة.
Promsvars : يتيح لك تحديد المتغيرات التي سيتم استبدالها في وصف الوظيفة ، مما يوفر مزيدًا من المرونة في الهندسة المطالبة.
الصور : يتيح استخدام مدخلات الصورة للنماذج القابلة للتطبيق في الرؤية ، وتوسيع أنواع المهام التي يمكن أن يؤديها الذكاء الاصطناعي.
بما في ذلك التفكير : عندما يتم تعيينه على true ، يتضمن هذا الخيار عملية تفكير الذكاء الاصطناعى في ناتج التصحيح ، مما يوفر نظرة ثاقبة حول كيفية وصول الذكاء الاصطناعي إلى استنتاجاتها. هذا مفيد بشكل خاص لمهام حل المشكلات المعقدة وتصحيح الأخطاء.
يتيح لك خيار includeThinking التقاط عملية تفكير الذكاء الاصطناعى قبل إنشاء الإخراج النهائي. توفر هذه الميزة عدة فوائد:
جودة الاستجابة المحسّنة : من خلال "التفكير" قبل الرد ، يمكن لمنظمة العفو الدولية تنظيم أفكارها وتوفير إجابات أكثر تماسكًا ومنظمة.
الشفافية : يمكنك أن ترى المنطق وراء ردود الذكاء الاصطناعى ، وهو أمر مفيد لتصحيح الأخطاء وفهم كيفية وصول الذكاء الاصطناعى إلى استنتاجاتها.
APUGGing Aid : يمكن أن تكون عملية التفكير لا تقدر بثمن عند صياغة المطالبات أو استكشاف الأخطاء وإصلاحها مخرجات غير متوقعة.
عند التمكين ، يتم تضمين عملية تفكير الذكاء الاصطناعى في إخراج التصحيح ولكن لم يتم إرجاعها كجزء من النتيجة النهائية. إليك كيفية استخدامه:
const options = {
functionName : 'complex_calculation' ,
args : { expression : '15*87 + ( 129/ (48*0.5) ) +12' } ,
description : 'Perform a complex mathematical calculation and show the steps.' ,
outputSchema : {
type : "object" ,
properties : {
result : { type : "number" }
} ,
required : [ "result" ]
} ,
includeThinking : true ,
showDebug : true // Set this to true to see the thinking process in the console
} ;
const result = await aiFunction ( options ) ; في إخراج التصحيح ، سترى عملية التفكير المرفقة في <|start_of_thinking|> و <|end_of_thinking|> العلامات. على سبيل المثال:
--- Thinking Process ---
To solve the expression '15*87 + ( 129/ (48*0.5) ) +12', I'll break it down into steps:
1. First, let's solve the parentheses:
(48*0.5) = 24
2. Now we can simplify the division:
129 / 24 = 5.375
3. Let's calculate 15*87:
15*87 = 1305
4. Now we have simplified the expression to:
1305 + 5.375 + 12
5. Let's add these numbers:
1305 + 5.375 = 1310.375
1310.375 + 12 = 1322.375
Therefore, the final result is 1322.375.
--- Parsed JSON Output ---
{
"result": 1322.375
}
لاحظ أن عملية التفكير مرئية فقط في إخراج التصحيح ولا تؤثر على بنية أو محتوى النتيجة التي تم إرجاعها. هذه الميزة مفيدة بشكل خاص للمهام المعقدة حيث يمكن أن يؤدي فهم التفكير المنطقي إلى هندسة أفضل ونتائج أكثر دقة.
في هذا المثال ، يمكننا أن نرى كيف تحطم الذكاء الاصطناعي الحساب المعقد إلى خطوات يمكن التحكم فيها ، مما يسهل التحقق من النتيجة وفهم نهج حل المشكلات. يمكن أن يكون هذا المستوى من التفاصيل في عملية التفكير ذات قيمة خاصة لتصحيح الأخطاء أو التعليم أو عندما تكون خطوات التوصل إلى استنتاج مهمة مثل الإجابة النهائية نفسها.
تمكين البث لمعالجة الاستجابات في الوقت الفعلي:
const options = {
// ... other options ...
stream : true ,
streamCallback : ( chunk ) => {
console . log ( 'Received chunk:' , chunk ) ;
}
} ; تتيح لك ميزة التدفق معالجة استجابات الذكاء الاصطناعي في الوقت الفعلي ، والتي يمكن أن تكون مفيدة بشكل خاص للمهام طويلة المدى أو عندما تريد تقديم ملاحظات فورية للمستخدمين. فيما يلي مثال على كيفية استخدام خيار stream باستخدام streamCallback :
const { createAiFunctionInstance } = require ( 'ai-function-helper' ) ;
const aiFunction = createAiFunctionInstance ( 'your_api_key_here' ) ;
async function generateStory ( ) {
let story = '' ;
const options = {
functionName : 'generate_story' ,
model : 'gpt-4o' ,
args : {
theme : 'space exploration' ,
length : 'short'
} ,
description : 'Generate a short story about space exploration.' ,
// We don't use 'outputSchema' to return a text instead of a JSON
stream : true ,
streamCallback : ( chunk ) => {
const content = chunk . choices [ 0 ] ?. delta ?. content ;
if ( content ) {
story += content ;
console . log ( 'Received chunk:' , content ) ;
// You can update your UI here with the new content
}
}
} ;
try {
const result = await aiFunction ( options ) ;
// The result here will be the complete response
console . log ( 'Final story:' , story ) ;
return story ;
} catch ( error ) {
console . error ( 'Error generating story:' , error ) ;
}
}
generateStory ( ) ;في هذا المثال:
stream: true في الخيارات لتمكين البث.streamCallback التي تتلقى أجزاء من الاستجابة عند وصولها.يتيح لك هذا النهج التعامل مع استجابة الذكاء الاصطناعى في الوقت الفعلي ، والتي يمكن أن تكون مفيدة لـ:
تذكر أنه عند استخدام البث ، ستكون النتيجة النهائية التي يتم إرجاعها بواسطة aiFunction هي الاستجابة الكاملة ، بحيث لا يزال بإمكانك استخدامها إذا لزم الأمر.
حدد وظائف المساعد لاستخدامها في وظيفة AI الرئيسية:
const options = {
// ... other options ...
tools : [
{
name : "generate_password" ,
function_call : ( { length = 5 , passwordCount = 1 } ) => {
// Password generation logic here
} ,
description : "Generate a random password" ,
parameters : {
type : "object" ,
properties : {
length : { type : "integer" } ,
passwordCount : { type : "integer" }
}
}
}
]
} ;تمكين الحماية ضد الاختطاف السريع:
const options = {
// ... other options ...
blockHijack : true ,
blockHijackThrowError : true // Optional: throw error instead of returning a message
} ;بالنسبة للنماذج القادرة على الرؤية ، يمكنك تضمين مدخلات الصورة:
const options = {
// ... other options ...
images : 'https://example.com/image.jpg' ,
// Or
images : [ 'https://example.com/image1.jpg' , 'https://example.com/image2.jpg' ] ,
imageQuality : 'high'
} ;توفير السياق من التفاعلات السابقة:
const options = {
// ... other options ...
history : [
{ role : "user" , content : "What's the weather like?" } ,
{ role : "assistant" , content : "I'm sorry, but I don't have access to real-time weather information. Is there anything else I can help you with?" }
]
} ; فيما يلي بعض الأمثلة الجذابة التي تعرض براعة وطاقة وحدة aiFunction :
const options = {
functionName : 'generate_quiz' ,
model : 'gpt-4o' ,
args : { topic : 'space exploration' , difficulty : 'medium' , num_questions : 2 } ,
description : 'Generate a quiz with multiple-choice questions on the given topic.' ,
outputSchema : {
type : "array" ,
items : {
type : "object" ,
properties : {
question : { type : "string" } ,
options : {
type : "array" ,
items : { type : "string" } ,
minItems : 4 ,
maxItems : 4
} ,
correct_answer : { type : "string" }
} ,
required : [ "question" , "options" , "correct_answer" ]
}
}
} ;
const quiz = await aiFunction ( options ) ;
console . log ( JSON . stringify ( quiz , null , 2 ) ) ;الإخراج المتوقع:
[
{
"question" : " Which space agency launched the first artificial satellite, Sputnik 1? " ,
"options" : [
" NASA " ,
" Soviet Union " ,
" European Space Agency " ,
" China National Space Administration "
],
"correct_answer" : " Soviet Union "
},
{
"question" : " What year did the Apollo 11 mission successfully land humans on the Moon? " ,
"options" : [
" 1967 " ,
" 1969 " ,
" 1971 " ,
" 1973 "
],
"correct_answer" : " 1969 "
}
] const { z } = require ( 'zod' ) ;
const options = {
functionName : 'create_recipe' ,
model : 'gpt-4o' ,
args : { cuisine : 'Italian' , main_ingredient : 'pasta' , dietary_restriction : 'vegetarian' } ,
description : 'Create a recipe based on the given cuisine, main ingredient, and dietary restriction.' ,
outputSchema : z . object ( {
name : z . string ( ) ,
ingredients : z . array ( z . string ( ) ) ,
instructions : z . array ( z . string ( ) ) ,
prep_time : z . string ( ) ,
cook_time : z . string ( ) ,
servings : z . number ( ) . int ( )
} )
} ;
const recipe = await aiFunction ( options ) ;
console . log ( JSON . stringify ( recipe , null , 2 ) ) ;الإخراج المتوقع:
{
"name" : " Vegetarian Pasta Primavera " ,
"ingredients" : [
" 12 oz penne pasta " ,
" 2 cups mixed vegetables (bell peppers, zucchini, carrots) " ,
" 1/4 cup olive oil " ,
" 3 cloves garlic, minced " ,
" 1/2 cup grated Parmesan cheese " ,
" 1/4 cup fresh basil, chopped " ,
" Salt and pepper to taste "
],
"instructions" : [
" Cook pasta according to package instructions. Reserve 1/2 cup pasta water. " ,
" In a large skillet, heat olive oil over medium heat. Add minced garlic and sauté for 1 minute. " ,
" Add mixed vegetables to the skillet and cook for 5-7 minutes until tender-crisp. " ,
" Drain pasta and add it to the skillet with vegetables. Toss to combine. " ,
" Add Parmesan cheese, basil, and pasta water as needed to create a light sauce. " ,
" Season with salt and pepper to taste. Serve hot. "
],
"prep_time" : " 15 minutes " ,
"cook_time" : " 20 minutes " ,
"servings" : 4
} const options = {
functionName : 'analyze_reviews' ,
model : 'gpt-4o' ,
args : {
reviews : [
"The product exceeded my expectations. Great value for money!" ,
"Disappointed with the quality. Wouldn't recommend." ,
"Average product, nothing special but does the job."
]
} ,
description : 'Analyze the sentiment of customer reviews and categorize them.' ,
outputSchema : {
type : "array" ,
items : {
type : "object" ,
properties : {
review : { type : "string" } ,
sentiment : { type : "string" , enum : [ "positive" , "neutral" , "negative" ] } ,
score : { type : "number" , minimum : 0 , maximum : 1 }
} ,
required : [ "review" , "sentiment" , "score" ]
}
}
} ;
const sentiment_analysis = await aiFunction ( options ) ;
console . log ( JSON . stringify ( sentiment_analysis , null , 2 ) ) ;الإخراج المتوقع:
[
{
"review" : " The product exceeded my expectations. Great value for money! " ,
"sentiment" : " positive " ,
"score" : 0.9
},
{
"review" : " Disappointed with the quality. Wouldn't recommend. " ,
"sentiment" : " negative " ,
"score" : 0.2
},
{
"review" : " Average product, nothing special but does the job. " ,
"sentiment" : " neutral " ,
"score" : 0.5
}
] const { z } = require ( 'zod' ) ;
const options = {
functionName : 'create_travel_itinerary' ,
model : 'gpt-4o' ,
args : { destination : 'Tokyo' , duration : 3 , interests : [ 'technology' , 'culture' , 'food' ] } ,
description : 'Create a daily travel itinerary for the specified destination and duration, considering the traveler's interests.' ,
outputSchema : z . object ( {
destination : z . string ( ) ,
duration : z . number ( ) . int ( ) ,
daily_plans : z . array ( z . object ( {
day : z . number ( ) . int ( ) ,
activities : z . array ( z . object ( {
time : z . string ( ) ,
activity : z . string ( ) ,
description : z . string ( )
} ) )
} ) )
} )
} ;
const itinerary = await aiFunction ( options ) ;
console . log ( JSON . stringify ( itinerary , null , 2 ) ) ;الإخراج المتوقع:
{
"destination" : " Tokyo " ,
"duration" : 3 ,
"daily_plans" : [
{
"day" : 1 ,
"activities" : [
{
"time" : " 09:00 " ,
"activity" : " Visit Akihabara " ,
"description" : " Explore the technology and electronics district, known for its gadgets and anime culture. "
},
{
"time" : " 13:00 " ,
"activity" : " Lunch at a Robot Restaurant " ,
"description" : " Experience a unique dining experience with robot performances. "
},
{
"time" : " 15:00 " ,
"activity" : " Tour the Miraikan Science Museum " ,
"description" : " Discover cutting-edge technology and scientific innovations at this interactive museum. "
}
]
},
{
"day" : 2 ,
"activities" : [
{
"time" : " 10:00 " ,
"activity" : " Visit Senso-ji Temple " ,
"description" : " Explore Tokyo's oldest Buddhist temple and experience traditional Japanese culture. "
},
{
"time" : " 14:00 " ,
"activity" : " Tea Ceremony in Hamarikyu Gardens " ,
"description" : " Participate in a traditional Japanese tea ceremony in a beautiful garden setting. "
},
{
"time" : " 18:00 " ,
"activity" : " Dinner at Tsukiji Outer Market " ,
"description" : " Enjoy fresh sushi and local delicacies at the world-famous fish market area. "
}
]
},
{
"day" : 3 ,
"activities" : [
{
"time" : " 09:00 " ,
"activity" : " Visit teamLab Borderless " ,
"description" : " Immerse yourself in a digital art museum that blends technology and creativity. "
},
{
"time" : " 13:00 " ,
"activity" : " Ramen Tour in Shinjuku " ,
"description" : " Sample various styles of ramen at some of Tokyo's best ramen shops. "
},
{
"time" : " 16:00 " ,
"activity" : " Shopping in Ginza " ,
"description" : " Explore high-end technology stores and experience Japanese retail innovation. "
}
]
}
]
} const options = {
functionName : 'analyze_stock' ,
model : 'gpt-4o' ,
args : { symbol : 'AAPL' , timeframe : '1 year' } ,
description : 'Analyze the stock performance and provide insights based on the given symbol and timeframe.' ,
outputSchema : {
type : "object" ,
properties : {
symbol : { type : "string" } ,
currentPrice : { type : "number" } ,
yearlyPerformance : { type : "number" } ,
technicalIndicators : {
type : "object" ,
properties : {
RSI : { type : "number" } ,
MACD : {
type : "object" ,
properties : {
value : { type : "number" } ,
signal : { type : "number" } ,
histogram : { type : "number" }
} ,
required : [ "value" , "signal" , "histogram" ]
}
} ,
required : [ "RSI" , "MACD" ]
} ,
recommendation : { type : "string" , enum : [ "Buy" , "Hold" , "Sell" ] }
} ,
required : [ "symbol" , "currentPrice" , "yearlyPerformance" , "technicalIndicators" , "recommendation" ]
}
} ;
const stockAnalysis = await aiFunction ( options ) ;
console . log ( JSON . stringify ( stockAnalysis , null , 2 ) ) ;الإخراج المتوقع:
{
"symbol" : " AAPL " ,
"currentPrice" : 178.25 ,
"yearlyPerformance" : 0.35 ,
"technicalIndicators" : {
"RSI" : 62.5 ,
"MACD" : {
"value" : 2.1 ,
"signal" : 1.8 ,
"histogram" : 0.3
}
},
"recommendation" : " Buy "
} توضح هذه الأمثلة كيفية استخدام مساعد وظيفة الذكاء الاصطناعي لمختلف المهام ، من توليد المحتوى إلى تحليل البيانات. يتضمن كل مثال مخطط outputSchema مفصل (بالتناوب بين مخطط JSON وتنسيقات ZOD) ، مما يضمن الإخراج المهيكلة والتحقق من صحة من نموذج الذكاء الاصطناعى.
استخدم أسماء وظائف محددة : اختر أسماء وظائف واضحة وصفية لمساعدة الذكاء الاصطناعي على فهم السياق.
توفير أوصاف مفصلة : كلما زاد عدد السياق الذي تقدمه في الوصف ، كان من الأفضل أن يفهم الذكاء الاصطناعي وأداء المهمة.
تحديد مخططات الإرجاع الدقيقة : استخدم مخططات outputSchema التفصيلية لضمان حصولك على بنية البيانات الدقيقة التي تحتاجها.
استخدم أدوات للمهام المعقدة : للمهام التي تتطلب حسابات محددة أو بيانات خارجية ، حدد الأدوات المخصصة للتعامل مع هذه الجوانب.
تعامل مع الأخطاء بأمان : استخدم كتل Try-Catch والنظر في تعيين قيم المهلة المناسبة وإعادة محاولة معالجة الأخطاء القوية.
قم بتحسين استخدام الرمز المميز : كن على دراية بطول المطالبات الخاصة بك واعتبر استخدام minifyJSON لمخرجات كبيرة لتقليل استهلاك الرمز المميز.
استخدم البث لاستجابات طويلة : للمهام التي قد تولد استجابات طويلة ، فكر في استخدام خيار البث لمعالجة الاستجابة في الوقت الفعلي.
رافعة المالية تاريخ المحادثة : للتفاعلات متعددة المنعطفات ، استخدم خيار history لتوفير السياق من التبادلات السابقة.
س: هل يمكنني استخدام هذه الوحدة مع مقدمي الذكاء الاصطناعي الآخرين؟ ج: حاليًا ، تم تصميم Helper AI Function للعمل مع نماذج Openai. يمكن إضافة دعم لمقدمي الخدمات الآخرين في الإصدارات المستقبلية.
س: كيف يمكنني التصحيح إذا لم أحصل على الإخراج المتوقع؟ ج: تمكين تصحيح الأخطاء عن طريق تعيين showDebug: true وتعديل debugLevel . سيوفر هذا مزيد من المعلومات حول مكالمات API والاستجابات.
س: هل هذه الوحدة مناسبة لاستخدام الإنتاج؟ ج: نعم ، ولكن تأكد دائمًا من أن لديك حدود معالجة الأخطاء والاحترام المناسبة التي وضعتها Openai.
س: هل يمكنني استخدام هذا لتدفق كميات كبيرة من البيانات؟ ج: نعم ، يمكنك استخدام خيار stream للتعامل مع الاستجابات الكبيرة بكفاءة.
س: كيف تتعامل الوحدة على مفاتيح API بشكل آمن؟ ج: الوحدة لا تتعامل مع تخزين مفتاح API أو أمانها. تقع على عاتقك مسؤولية إدارة مفتاح API وتوفيرها بشكل آمن عند إنشاء مثيل.
لقد أجرينا اختبارات مكثفة على نماذج الذكاء الاصطناعي المختلفة لتقييم قدرتها على توليد مخرجات JSON ذات التعقيد المتغير مع الالتزام بالتنسيقات المحددة. تساعد هذه الاختبارات في إظهار براعة وموثوقية وحدة مساعدة وظيفة AI عبر نماذج مختلفة من الذكاء الاصطناعي.
لضمان اختبارات شاملة عبر مجموعة واسعة من نماذج الذكاء الاصطناعى ، بما في ذلك تلك التي لا توفرها Openai مباشرة ، استخدمنا Litellm كبديل. Litellm هي أداة قوية توفر واجهة موحدة لمقدمي خدمات الذكاء الاصطناعي والموديلات المحلية (عبر Ollama) ، مما يوفر عنوان URL للنقطة النهائية المتوافقة مع OpenAI. سمح لنا هذا النهج بدمج نماذج منظمة العفو الدولية واختبارها بسلاسة مع مساعد وظيفة الذكاء الاصطناعي لدينا ، مما يدل على مرونته وتوافقه الواسع.
| نموذج | معدل النجاح | متوسط المدة |
|---|---|---|
| الألعاب النارية/llama-v3p1-405b-instruct | 100.00 ٪ | 16887.67ms |
| Groq/llama-3.1-70b- العاكس | 100.00 ٪ | 2154.89ms |
| كلود-3-هايكو -20240307 | 100.00 ٪ | 3175.72ms |
| GPT-3.5 توربو | 88.89 ٪ | 3398.67ms |
| GPT-4O-MINI | 100.00 ٪ | 5699.72ms |
| GPT-4O | 100.00 ٪ | 5673.00ms |
| Claude-3-5-Sonnet-20240620 | 100.00 ٪ | 5940.50 مللي ثانية |
| Gemini-1.5-Flash | 88.89 ٪ | 5150.00ms |
| Gemini-1.5-Pro | 100.00 ٪ | 10066.06ms |
| Gemma2: 9B (Ollama) | 100.00 ٪ | 13368.94ms |
تغطي الاختبارات مجموعة واسعة من الوظائف ، من الحسابات البسيطة إلى توليد البيانات المعقدة وتحليلها. بعض فئات الاختبار تشمل:
للحصول على نتائج مفصلة لكل حالة اختبار وأداء النموذج ، يرجى الرجوع إلى الملفات التالية:
إذا كنت ترغب في إجراء الاختبارات بنفسك أو المساهمة في تحسينها ، فيمكنك العثور على البرنامج النصي للاختبار في مستودع GitHub:
توضح هذه الاختبارات قدرة مساعد وظيفة AI على العمل مع نماذج مختلفة من الذكاء الاصطناعي والتعامل مع مجموعة واسعة من تعقيد المهام. كما أنها تعرض قدرة الوحدة النمطية على فرض المخرجات المهيكلة ، مما يجعل من السهل دمج المحتوى الذي تم إنشاؤه بواسطة AI في تطبيقاتك.
بعض الاختبارات معقدة "بغباء" وهي مصممة لدفع حدود نماذج الذكاء الاصطناعى. لا تهدف هذه الاختبارات إلى أن تكون عملية بل إظهار قدرة مساعد وظيفة AI على التعامل مع السيناريوهات الصعبة. يمكن إكمال معظم الاختبارات الفاشلة بنجاح من خلال منح نموذج الذكاء الاصطناعي المزيد من السياق أو تحسين مطالبات الإدخال.
من خلال الاستفادة من Litellm ، قمنا بتوسيع توافق مساعدات وظيفة AI الخاصة بنا إلى ما وراء نماذج Openai ، مما يسمح للمستخدمين بالعمل مع مجموعة متنوعة من مقدمي الذكاء الاصطناعى والموديلات المحلية مع الحفاظ على واجهة متسقة. لا يوسع هذا النهج قابلية تطبيق أدائنا فحسب ، بل يوفر أيضًا للمستخدمين مرونة أكبر في اختيار نماذج الذكاء الاصطناعى التي تناسب احتياجاتهم وقيودهم المحددة.
المساهمات مرحب بها! إذا كنت ترغب في المساهمة ، فيرجى توتر المستودع واستخدام فرع الميزات. طلبات سحب الترحيب بحرارة.
مساعد وظيفة AI هو برنامج مفتوح المصادر مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.