محول لتوصيل AI LLM بمصادر وبيانات التأريض في الوقت الفعلي
سرد التحسينات الرئيسية
يطلق | تاريخ | الميزات الرئيسية |
---|---|---|
2.0.5 | 01 أبريل 2024 | التحديث الرئيسي: يدعم ClaudeAI بالإضافة إلى OpenAI وGoogleAI. |
2.0.0 | 05 يناير 2024 | التحديث الرئيسي: يدعم GoogleAI بالإضافة إلى OpenAI. |
1.3.0 | 16 ديسمبر 2023 | تحسين المطالبات لاستخدام البيانات ذات الصلة وإنشاء الاستجابات ذات الصلة. توفر الاستجابات لجميع الأساليب الآن معلومات وقت التشغيل. |
1.2.9 | 03 نوفمبر 2023 | (1) يمكن لتكوين الوكيل تحديد مفتاح اللغة (اختياري). عند تعيين هذا، يفكر LLM دائمًا ويستجيب بلغة محددة (بغض النظر عن لغة الإدخال). ملاحظة : قد لا تكون جودة الترجمة مثالية في بعض الحالات، لذا يُنصح بشدة بإجراء اختبار شامل. (2) تتضمن الاستجابة من طريقة الكل في واحد بيانات التأريض التي تستخدمها LLM لتوليد الاستجابة. وهذا ينبغي أن يحسن الموثوقية. |
1.2.8 | 26 أكتوبر 2023 | تم دمج تقنية الحث العميق لتحسين جودة الاستجابة. |
1.2.2 | 18 أكتوبر 2023 | تحسين مطالبات LLM ومنطق تحديد واجهة برمجة التطبيقات (API). |
1.1.1 | 09 أكتوبر 2023 | يطالب LLM المقدم بدمج نكهة الذكاء الاصطناعي الدستوري لضمان أن تكون مدخلات المستخدم عادلة ومسؤولة ومحترمة وإنسانية. |
1.1.0 | 08 أكتوبر 2023 | تقديم القدرة على بناء السياق/الذاكرة لأسئلة المتابعة. |
1.0.0 | 08 أكتوبر 2023 | الإطلاق الأولي. |
باعتبارها نماذج ذكاء اصطناعي متعددة الوسائط، تتمتع LLMs بقابلية تطبيق واسعة النطاق لإنشاء المحتوى بأقل قدر من التعليمات. تحظى التقنيات السريعة مثل صفر طلقة أو طلقة قليلة بشعبية كبيرة بين المستخدمين العاديين لتطبيقات الدردشة المبنية على أعلى مثل هذه LLMs. ومع ذلك، على الرغم من أن جودة الاستجابة ممتازة، إلى أي مدى يمكننا أن نثق بها؟ كيف نعرف أن النموذج ليس "مختلقًا" (ويُعرف أيضًا باسم الهلوسة) بشكل سريع؟
ونتيجة لذلك، فإن تأسيس LLMs من خلال توفير البيانات السياقية مع تقنيات الحث المناسبة أمر مهم للغاية. يعد استخدام المطالبات ذات المعلومات الأساسية كسياق لمساعدة LLM في توليد استجابة أفضل ممارسة متبعة على نطاق واسع.
أحد هذه الأساليب هو الاسترجاع المعزز (RAG)، الذي يعتمد على تخزين وبحث تضمينات النص المقدمة إلى LLM مع الموجه. ومع ذلك، يعتمد RAG على المعلومات الثابتة التي يتم تحويلها إلى تضمينات نصية وتخزينها في قواعد بيانات الرسم البياني (المعروفة أيضًا باسم قواعد البيانات المتجهة) بحيث يمكن استرجاع المعلومات ذات الصلة منها وزيادتها عبر التأريض لإنشاء نص/استجابة.
قد يثير نمط RAG سؤالاً حول ما إذا كان من الممكن استخدام البيانات في الوقت الفعلي جنبًا إلى جنب مع LLMs لتوليد استجابات فعالة وموثوقة. الجواب البسيط هو: "بالطبع، نعم!" . ولكن هذا يعني المزيد من المسؤوليات على عاتق مطوري التطبيقات. يحتاج المطور إلى استدعاء واجهة برمجة التطبيقات (API) لتغليف الاستجابة ضمن موجه ليقوم LLM بإنشاء استجابة ذات صلة. ولكن هل سينجح استدعاء واجهة برمجة التطبيقات نفسها مرارًا وتكرارًا لكل سؤال؟ - على الأغلب لا! كيف يمكننا تحديد واجهة برمجة التطبيقات (API) التي يجب استدعاؤها ديناميكيًا والمعلمات التي يجب تمريرها بناءً على السؤال؟ يبدو هذا أيضًا بمثابة قدرة على الحصول على LLM.
وهنا يأتي دور AI-Dapter (اقرأ كـ AI Converter ). يعمل AI-Dapter على تسريع عملية تطوير التطبيقات المستندة إلى LLM للمطورين، مما يسمح لهم بالتركيز فقط على التطبيقات مع تفريغ عبء متابعة الأنشطة إلى LLM.
تحديد نقاط نهاية واجهة برمجة التطبيقات (API) الصحيحة من مستودع واجهة برمجة التطبيقات (API) المحدد مسبقًا،
الحصول على بيانات في الوقت الفعلي من نقاط نهاية واجهة برمجة التطبيقات المحددة،
توليد استجابة باستخدام نموذج LLM المفضل.
تم تحسين تجربة المطور بشكل كبير من خلال توصيل إطار عمل AI-Dapter ضمن رمز التطبيق واستخدامه بسلاسة كمربع أسود لأداء استجابات مستندة إلى LLM على أسئلة المستخدم. لاحظ أن أسئلة المستخدم هذه قد تكون قريبة من المطالبة الصفرية!
يتضمن العمل الفعلي وراء هذا الصندوق الأسود ما يلي:
القدرة على دمج نموذج LLM من اختيارك مع بيانات الاعتماد الخاصة بك (ملاحظة: حاليًا، يتم دعم نماذج OpenAI GPT فقط)،
محرك متكامل يعزز مدخلات المستخدم لإجراء تحديد -
مصادر البيانات المستندة إلى API،
الحصول على البيانات في الوقت الفعلي من واجهات برمجة التطبيقات تلك، و
توليد استجابة ترتكز على البيانات في الوقت الحقيقي باستخدام LLM.
يرجى إرسال التعليقات أو طلبات الميزات الجديدة عبر مناقشات GitHub.
يرجى إرسال مشكلاتك عبر مشكلات GitHub.
قم بتشغيل ما يلي في سطر الأوامر لتثبيت AI-Dapter لمشروع NodeJS الخاص بك. تأكد من أنك داخل الدليل الجذر لمشروعك.
npm تثبيت ai-dapter --save
بافتراض أنك قمت بإعداد مشروع NodeJS على الآلة الكاتبة، قم باستيراد فئة AIDapter على النحو التالي.
استيراد AIDapter من "ai-adapter"؛
لتهيئة AI-Dapter، يجب عليك تمرير بعض المعلمات الإلزامية والاختيارية لإكمال الإعداد. يظهر مثال أدناه، متبوعًا بوثائق المعلمات المدعومة.
const ai = جديد AIDapter({ "app_name": "<<اسم التطبيق المختصر>>" "provider": "OpenAI"، "model_name": "gpt-3.5-turbo-16k"، "نقطة النهاية": "https://api.openai.com/v1/chat/completions", "authentication": {"api_key": "<<مفتاح OPENAI الخاص بك>>"،"org_id": "<<معرف مؤسسة OPENAI الخاص بك>>" }, "درجة الحرارة": "<<بين 0.0 و 2.0>>"});
قائمة المعلمات المدعومة لتهيئة الإعداد.
المعلمة | إلزامية (م) / اختيارية (س) | غاية | القيم الممكنة |
---|---|---|---|
app_name | م | اسم التطبيق قصير. | - |
provider | م | مزود نموذج LLM. ملاحظة : في الوقت الحالي، يتم دعم النماذج المقدمة مباشرة من OpenAI فقط. | "أوبن آي" |
model_name | يا | يسمح لك بتحديد أي نموذج تم إصداره بواسطة الموفر. نوصي باستخدام النماذج التي تسمح بأحجام الرموز المميزة الكبيرة، مثل gpt-3.5-turbo-16k أو gemini-pro أو claude-3-haiku-20240307 . | - |
endpoint | يا | نقطة النهاية حيث يخدم المزود نموذج LLM. قد يتعين عليك الرجوع إلى الوثائق الخاصة بموفر الخدمة. على سبيل المثال، يتم تقديم نموذج إكمال الدردشة OpenAI من https://api.openai.com/v1/chat/completions نقطة النهاية، ويتم تقديم نموذج GoogleAI من https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent يتم تقديم نموذج https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent وCludeAI من https://api.anthropic.com/v1/messages . | - |
authentication | م | قم بتوفير تفاصيل المصادقة على النحو المحدد من قبل مزود الخدمة الخاص بك. على سبيل المثال، نظرًا لأن OpenAI يتطلب مفتاح API ومعرف مؤسسة، يتم توفيرهما ضمن حقلي api_key و org_id ، كما هو موضح في مثال التهيئة أعلاه. | - |
telemetry | يا | جمع بيانات القياس عن بعد. الافتراضي صحيح. | صحيح / خطأ |
يتيح لك AI-Dapter تخصيص تكوينات وكيل محددة، مثل إضافة الأدوار والشخصيات وما إلى ذلك. وعلى نفس المنوال، يمكنك تخصيص تكوينات بيانات معينة، مثل التحكم في عدد السجلات من استجابات واجهة برمجة التطبيقات في الوقت الفعلي، أو تمرير سياق إضافي أو معلومات أساسية لمحاكاة المتابعات، وما إلى ذلك.
يتم تمرير خيارات الوكيل والتكوين ككائن واحد كما يلي. راجع الأقسام المناسبة أدناه للبحث عن قيم التكوين هذه وضبطها.
السماح بالخيارات: AIDapterOptions = { "agentConfig": { "الدور": "مساعد شخصي" }, "dataConfig": { "max_records": 7 }};
فيما يلي معلمات تكوين الوكيل المدعومة حاليًا. قم بإضافة هذه الحقول ضمن كائن agentConfig
.
المعلمة | إلزامية (م) / اختيارية (س) | غاية | القيم الممكنة |
---|---|---|---|
role | م | يساعد في توجيه نهج LLM تجاه أسئلة المستخدم. على سبيل المثال، في دور رقيب بالجيش، قد يجيب LLM على سؤال حول الوقت الحالي كشيء مثل، "الوقت الحالي هو 08:01 صباحًا بتوقيت شرق الولايات المتحدة."، في حين أن الممثل الكوميدي الذي يروي دائمًا نكتة ذات سطر واحد حول سؤالي قد يستجيب بشيء مثل، "لقد حان الوقت للحصول على ساعة! فقط أمزح، الساعة حاليًا 8:01 صباحًا في 7 أكتوبر 2023 حسب التوقيت الصيفي الشرقي (EDT).". | - |
personality | يا | يعطي شخصية لهجة استجابة LLM. | - |
language | يا | اللغة التي تريد من الوكيل الرد بها بغض النظر عن اللغة التي يتم طرح سؤال المستخدم بها. الافتراضي=الإنجليزية. | - |
expert_at | يا | إذا يفترض LLM أنهم خبراء في أي مجال محدد، مثل الرعاية الصحية أو محركات السيارات، وما إلى ذلك. | - |
max_words | يا | تحكم في المدة أو القصر الذي يجب أن تكون فيه استجابة LLM. الافتراضي أقل من 200 كلمة. | أي رقم بين 1 و 200 |
فيما يلي معلمات تكوين البيانات المدعومة حاليًا. أضف هذه الحقول ضمن كائن dataConfig
.
المعلمة | إلزامية (م) / اختيارية (س) | غاية | القيم الممكنة |
---|---|---|---|
max_records | م | يتحكم في عدد السجلات العليا من مجموعة النتائج التي تم الحصول عليها من استدعاء واجهة برمجة التطبيقات (API) في الوقت الفعلي والتي يجب بيعها بالتجزئة. تعد هذه المعلمة ضرورية للتحكم في حجم رمز الإدخال حيث يتم استخدام نتائج استدعاء API في التأريض. ملاحظة : نظرًا لأنه يتم الاحتفاظ بالصفوف X العليا فقط، فمن الأفضل توفير نقاط نهاية واجهة برمجة التطبيقات التي تتضمن بيانات مرتبة بترتيب تنازلي. الافتراضي = 10 | أي رقم بين 1 و 10 |
additional_context | يا | يمكن توفير سياق إضافي عند توقع قدرات شبيهة بالمتابعة. (انظر الأمثلة من 6.3. إنشاء استجابة LLM مع أساس البيانات في الوقت الحقيقي). | يجب أن يكون مصفوفة ببنيتها كما يلي: [{ "question": "", "response_summary": "", "entities": { ... } }, { ... }] |
max_contexts | يا | يحتفظ بأحدث سياقات X. سيحتفظ AI-Dapter بالعنصرين الأخيرين من مصفوفة additional_context ، بافتراض أن السياق الأحدث يتم إلحاقه دائمًا في نهاية هذه المصفوفة. | 1 أو 2 |
يوفر AI-Dapter ثلاث إمكانيات على النحو التالي، وبالتالي ثلاث طرق للوصول إلى هذه الإمكانات.
توصية: للحصول على أفضل تجربة للمطورين، راجع 6.3. توليد استجابة LLM مع أساس البيانات في الوقت الحقيقي
AIDapter.getRealtimeSources (الإدخال: سلسلة، apiRepository: Types.APIRepository[]): وعد<غير معروف>
استخدم هذه الطريقة إذا كان هدفك هو الحصول على نقاط نهاية API ذات الصلة بناءً على أسئلة المستخدم.
المعلمة | إلزامية (م) / اختيارية (س) | غاية | نوع البيانات |
---|---|---|---|
input | م | سؤال المستخدم | نص |
apiRepository[] | م | قم بتوفير مستودع API كامل يحتوي على تفاصيل حول نقطة نهاية API (الطريقة، وعنوان URL، والرؤوس، والبيانات)، والعناصر النائبة المستخدمة في نقطة نهاية API بالإضافة إلى تعليمات التحقق التي ستستخدمها LLM. | انظر 7. مستودع API |
مجال | غاية |
---|---|
api_endpoints[] | مجموعة من جميع نقاط نهاية API المحددة. |
provider | يشير إلى مزود LLM الذي تم استخدامه. |
runtime | لتتبع وقت الاستجابة الإجمالي. لاحظ أن هذا سيعتمد على وقت استجابة واجهة برمجة التطبيقات الخاصة بـ LLM. |
// استيراد وتهيئة AI-Dapterimport AIDapter من "ai-adapter";const ai = new AIDapter({ "provider": "GoogleAI"، "authentication": {"api_key": "<<مفتاح API الخاص بك>>" }});// حدد مستودع واجهة برمجة التطبيقات (API) حيث سيتم تحديد واجهة برمجة التطبيقات (API) المناسبة وتحديثها وإعادتها. // لاحظ أن هذا المثال يوفر مثالًا واحدًا فقط لنقطة نهاية واجهة برمجة التطبيقات (API)، ولكن نظرًا لأن هذا مصفوفة، فيجب أن تتوقع تقديم عدة واجهة برمجة التطبيقات endpoints.const apiRepository = [ {"api_info": { "title": "الوقت الحالي"، "description": "حدد المنطقة الزمنية والموقع المناسبين لموقع معين واحصل على الوقت في ذلك الموقع."},"api_endpoint": { "method": "GET"، "url": "http://worldtimeapi.org/api/timezone/|area_location|"، "headers": {"Content-Type": "application/json" }},"placeholders": [ {"placeholder": "|area_location|",validation_criteria": "مثال لموقع_المنطقة هو: أمريكا/نيويورك أو أوروبا/لندن. بناءً على الموقع الصحيح المقدم، حدد موقع_المنطقة المناسب." ,"default": "America/New_York" }] }];// هذا هو إدخال سؤال المستخدم = "ما هو الوقت في مومباي؟"// اتصل الآن بطريقة getRealtimeSources() للحصول على واجهة API صالحة endpointsai.getRealtimeSources(input, apiRepository) .then((resp) => {console.log(resp);/* { "api_endpoints": [ { "api": { "method": "GET"، "url": "https://worldtimeapi.org /api/timezone/Asia/Kolkata"، "headers": { "Content-Type": "application/json" } }، "placeholders": [ { "placeholder": "[area_location]"، "محدد": صحيح } ]، "الحالة": "موافق" } ]، "provider": "GoogleAI"، "وقت التشغيل": "2 ثانية" } */ }).catch((err) => console.log(JSON.stringify(err, null, 4)));
لاحظ أنه استنادًا إلى المدينة التي قدمها المستخدم مثل مومباي ، حددت LLM القيمة المناسبة للعنصر النائب Area_location وأرجعت نقطة نهاية واجهة برمجة التطبيقات المحدثة.
AIDapter.getDataFromRealtimeSource(input: string, apiRepository: Types.APIRepository[], dataConfig?: Types.DataConfig | غير محدد): وعد
استخدم هذه الطريقة إذا كان هدفك هو الحصول على البيانات من نقاط نهاية واجهة برمجة التطبيقات ذات الصلة بناءً على أسئلة المستخدم.
المعلمة | إلزامية (م) / اختيارية (س) | غاية | نوع البيانات |
---|---|---|---|
input | م | سؤال المستخدم | نص |
apiRepository[] | م | مصفوفة من معلومات واجهة برمجة التطبيقات (API)، ونقاط النهاية (الطريقة، وعنوان URL، والرؤوس، والبيانات)، والعناصر النائبة. | انظر 7. مستودع API |
dataConfig | يا | معلمات التكوين للتحكم في البيانات التي تم الحصول عليها من استدعاءات API. | انظر 5.2. تكوين البيانات |
مجال | غاية |
---|---|
api_results[] | مجموعة من الاستجابات من جميع مكالمات API. |
provider | يشير إلى مزود LLM الذي تم استخدامه. |
runtime | لتتبع وقت الاستجابة الإجمالي. لاحظ أن هذا سيعتمد على وقت استجابة واجهة برمجة التطبيقات الخاصة بـ LLM. |
// استيراد وتهيئة AI-Dapterimport AIDapter من "ai-adapter";const ai = new AIDapter({ "provider": "GoogleAI"، "authentication": {"api_key": "<<مفتاح API الخاص بك>>" }});// حدد مستودع واجهة برمجة التطبيقات (API) حيث سيتم تحديد واجهة برمجة التطبيقات (API) المناسبة وتحديثها وإعادتها. // لاحظ أن هذا المثال يوفر مثالًا واحدًا فقط لنقطة نهاية واجهة برمجة التطبيقات (API)، ولكن نظرًا لأن هذا مصفوفة، فيجب أن تتوقع تقديم عدة واجهة برمجة التطبيقات endpoints.const apiRepository = [ {"api_info": { "title": "الوقت الحالي"، "description": "حدد المنطقة الزمنية والموقع المناسبين لموقع معين واحصل على الوقت في ذلك الموقع."},"api_endpoint": { "method": "GET"، "url": "http://worldtimeapi.org/api/timezone/|area_location|"، "headers": {"Content-Type": "application/json" }},"placeholders": [ {"placeholder": "|area_location|",validation_criteria": "مثال لموقع_المنطقة هو: أمريكا/نيويورك أو أوروبا/لندن. بناءً على الموقع الصحيح المقدم، حدد موقع_المنطقة المناسب." ,"default": "America/New_York" }] }];// هذا هو إدخال سؤال المستخدم = "ما هو الوقت في مومباي؟"// تكوين البيانات dataConfig = { "max_records": 3 }// الآن اتصل بطريقة getDataFromRealtimeSource() للحصول على البيانات من استدعاء جميع البيانات ذات الصلة نقاط نهاية واجهة برمجة التطبيقات (API) بناءً على سؤال المستخدم.getDataFromRealtimeSource(question, apiRepository, dataConfig) .then((resp) => {console.log(resp);/* { "api_results": [ { "api_sources": "worldtimeapi.org"، "data": { "abbreviation": "IST"، "client_ip" ": "50.126.214.61"، "التاريخ والوقت": "2024-01-05T22:48:30.316887+05:30"، "day_of_week": 5، "day_of_year": 5، "dst": false، "dst_from": فارغ، "dst_offset": 0، "dst_until": null، "raw_offset": 19800، "المنطقة الزمنية": "آسيا/كلكتا"، "unixtime": 1704475110, "utc_datetime": "2024-01-05T17:18:30.316887+00:00", "utc_offset": "+05:30", "week_number": 1 } } ], "provider": "GoogleAI"، "وقت التشغيل": "4 ثوانٍ" } */ }).catch((err) => console.log(JSON.stringify(err, null, 4)));
الاستجابة من استدعاء API. يمكن استخدام هذه البيانات لتأريض LLM.
AIDapter.getLLMResponseFromRealtimeSources (الإدخال: سلسلة، apiRepository: Types.APIRepository[]، options؟: AIDapterOptions | غير محدد): وعد<غير معروف>
استخدم هذه الطريقة إذا كان هدفك هو الحصول على إجابات LLM بناءً على أسئلة المستخدم. يتضمن ذلك تحديد نقاط نهاية واجهة برمجة التطبيقات (API) ذات الصلة، واستدعاء واجهات برمجة التطبيقات المحددة، واستخدام ذلك في موجه LLM لتلقي الرد من LLM.
توصية: استخدم هذه الطريقة لتحقيق أقصى قدر من التسريع في عملية تطوير التطبيق الخاص بك.
المعلمة | إلزامية (م) / اختيارية (س) | غاية | نوع البيانات |
---|---|---|---|
input | م | سؤال المستخدم | نص |
apiRepository[] | م | مصفوفة من معلومات واجهة برمجة التطبيقات (API)، ونقاط النهاية (الطريقة، وعنوان URL، والرؤوس، والبيانات)، والعناصر النائبة. | انظر 7. مستودع API |
options | يا | وكيل وتكوين البيانات | انظر 5. خيارات تكوين الوكيل والبيانات |
مجال | غاية |
---|---|
ai_response | LLM ولدت الاستجابة. |
ai_status | يساعد في تحديد ما إذا كانت الاستجابة تعتمد على توفر جميع عناصر البيانات المطلوبة لإجراء استدعاءات API ناجحة. القيم المحتملة: موافق، متابعة، أو غير مكتمل |
ai_context | يحتوي هذا على ملخص استجابة قصير وقائمة بالكيانات. الفكرة وراء هذا المجال هي حالات الاستخدام التي تتضمن محادثات المتابعة. يمكن تمرير الكائن بأكمله additional_content ضمن خيارات dataConfig عند إرسال أسئلة المتابعة. |
provider | يشير إلى مزود LLM الذي تم استخدامه. |
runtime | لتتبع وقت الاستجابة الإجمالي. لاحظ أن هذا سيعتمد على وقت استجابة واجهة برمجة التطبيقات الخاصة بـ LLM. |
// استيراد وتهيئة AI-Dapterimport AIDapter من "ai-adapter";const ai = new AIDapter({ "provider": "GoogleAI"، "authentication": {"api_key": "<<مفتاح API الخاص بك>>" }});// حدد مستودع واجهة برمجة التطبيقات (API) حيث سيتم تحديد واجهة برمجة التطبيقات (API) المناسبة وتحديثها وإعادتها. // لاحظ أن هذا المثال يوفر مثالًا واحدًا فقط لنقطة نهاية واجهة برمجة التطبيقات (API)، ولكن نظرًا لأن هذا مصفوفة، فيجب أن تتوقع تقديم عدة واجهة برمجة التطبيقات endpoints.const apiRepository = [ {"api_info": { "title": "الوقت الحالي"، "description": "حدد المنطقة الزمنية والموقع المناسبين لموقع معين واحصل على الوقت في ذلك الموقع."},"api_endpoint": { "method": "GET"، "url": "http://worldtimeapi.org/api/timezone/|area_location|"، "headers": {"Content-Type": "application/json" }},"placeholders": [ {"placeholder": "|area_location|",validation_criteria": "مثال لموقع_المنطقة هو: أمريكا/نيويورك أو أوروبا/لندن. بناءً على الموقع الصحيح المقدم، حدد موقع_المنطقة المناسب." ,"default": "America/New_York" }] }];// هذا هو إدخال سؤال المستخدم = "ما هو الوقت في مومباي؟"// خيارات AI-Dapter التي توفر تكوين وكيل مدمج وخيارات تكوين البيانات: AIDapterOptions = { "agentConfig": { "role": "الممثل الكوميدي الذي دائمًا يلقي نكتة بسيطة حول سؤالي" }, "dataConfig": { "max_records": 7 }};// الآن اتصل بطريقة getLLMResponseFromRealtimeSources() للحصول على استجابة LLM لسؤال المستخدم.// تعتمد استجابة LLM على مطالبة تستخدم بيانات الوقت الفعلي للتأريض. ai.getLLMResponseFromRealtimeSources (سؤال، apiRepository، خيارات) .then((resp) => {console.log(resp);/* { "ai_response": "في مدينة مومباي النابضة بالحياة، حيث تحلق أحلام بوليوود وتملأ رائحة طعام الشارع الهواء، يبلغ الرقم حاليًا 22: 50 في هذه الجمعة الرائعة، الخامس من يناير، 2024. لذا، سواء كنت تحتسي الشاي عند بوابة الهند أو تستمع إلى إيقاعات نادي الرقص المحلي، تذكر، الوقت لا ينتظر أحدًا، ولا حتى أكبر نجوم بوليوود!", "ai_status": "OK", "ai_context": { "questions": "ما هو الوقت في مومباي؟ ما هو التاريخ الحالي في مومباي؟" , "الكيانات": [], "البيانات": [ { "اختصار": "IST"، "client_ip": "50.126.214.61"، "datetime": "2024-01-05T22:50:51.261990+05:30"، "day_of_week": 5، "day_of_year": 5، "dst": false، "dst_from": فارغ، "dst_offset": 0، "dst_until": null، "raw_offset": 19800، "المنطقة الزمنية": "آسيا/كلكتا"، "unixtime": 1704475251, "utc_datetime": "2024-01-05T17:20:51.261990+00:00", "utc_offset": "+05:30", "week_number": 1 } ], "sources": [ "worldtimeapi.org" ] }, "provider": "GoogleAI", "runtime": "6 ثواني" } */ }).catch((err) => console.log(JSON.stringify(err, null, 4)));
لاحظ أنه يتم استخدام سؤال المستخدم أولاً لتحديد واجهة برمجة التطبيقات ذات الصلة من مستودع واجهة برمجة التطبيقات المقدم. تستدعي هذه الطريقة أيضًا واجهات برمجة التطبيقات المحددة، وتجمع استجاباتها لتأسيس موجه LLM النهائي، وإرجاع الاستجابة التي تم إنشاؤها.
لاحظ أيضًا أن الاستجابة تحتوي على المحتوى الذي تم إنشاؤه بواسطة LLM داخل حقل ai_response
والسياق داخل حقل ai_context
. يمكن تمرير السياق بأكمله كـ dataConfig.additional_context
مع أسئلة المتابعة.
يوضح أحد الأمثلة كيف يمكن تمرير السياق لتمكين محادثات المتابعة.
// كما هو موضح في المثال السابق، يحتوي ai_context على المعلومات التالية::// --------------------------------- ------------------------------------------------------------// resp.ai_context: {// "questions": "ما هو الوقت في مومباي؟ ما هو التاريخ الحالي في مومباي؟",// "entities": [],// "data": [// {// "abreviation": "IST"،// "client_ip": "50.126.214.61"،// "datetime": "2024-01-05T22:50:51.261990+05:30"،// "day_of_week": 5,// "day_of_year": 5,// "dst": خطأ،// "dst_from": فارغ،// "dst_offset": 0،// "dst_until": null,// "raw_offset": 19800,// "timezone": "Asia/Kolkata"،// "unixtime": 1704475251,// "utc_datetime": "2024-01-05T17:20:51.261990 +00:00"،// "utc_offset": "+05:30",// "week_number": 1// }// ],// "sources": [// "worldtimeapi.org"// ]// }// ------- -------------------------------------------------- --------------------// إلحاق السياق أعلاه في dataConfig.additional_context ...if(options.dataConfig[additional_context]){