محرك البحث الأساسي مفتوح المصدر الذكاء الاصطناعي ، على غرار بعد الحيرة. إذا لم تكن معتادًا على منصة إجابة للأسئلة التي تعمل بالنيابة ، فإنها تستخدم نموذج لغة كبير مثل ChatGPT للإجابة على أسئلتك ، ولكنهم يتحسنون على ChatGPT من حيث أنه يسحب نتائج بحث دقيقة وفي الوقت الفعلي لتكملة الإجابة (لذلك لا "قطع المعرفة"). وتسرد الاستشهادات في الإجابة نفسها التي تبني الثقة أنها ليست هلوسة وتسمح لك بالبحث في الموضوعات.
search.php (ابحث عن "[املأني]")التحدي الرئيسي مع LLMs مثل ChatGPT هو أن لديهم قطع المعرفة (وهم يميلون أحيانًا إلى الهلوسة). ذلك بسبب تدريبهم على بيانات حتى تاريخ محدد (على سبيل المثال سبتمبر 2021). لذا ، إذا كنت تريد إجابة على سؤال محدث أو تريد ببساطة البحث عن موضوع بالتفصيل ، فستحتاج إلى زيادة الإجابة بالمصادر ذات الصلة. تُعرف هذه التقنية باسم RAG (الجيل المعزز للاسترجاع). وفي حالتنا ، يمكننا ببساطة توفير المعلومات المحدثة LLM من محركات البحث مثل Google أو Bing.
لبناء هذا بنفسك ، ستحتاج أولاً إلى الاشتراك في مفتاح API من Bing أو Google (Via Serper) أو Brave أو غيرها. يقدم كل من Bing و Brave و Serper استخدامًا مجانيًا للبدء.
في search.php على سبيل المثال ، لدي رمز لكل من Brave و Google عبر Serper.
هنا ، ستحتاج إلى الاشتراك في مفتاح API من مزود LLM. هناك الكثير من مقدمي الخدمات للاختيار من بينها الآن. على سبيل المثال ، هناك Openai أو Anthropic أو AnyScale أو Groq أو CloudFlare أو Perplexity أو Lepton أو اللاعبين الكبار مثل AWS أو Azure أو Google Cloud. لقد استخدمت الكثير من هذه النجاح ويقدمون مجموعة فرعية من النماذج الحالية والشعبية المفتوحة المصدر. وكل نموذج له نقاط قوة فريدة وتكاليف مختلفة وسرعات مختلفة. على سبيل المثال ، GPT-4 دقيقة للغاية ولكنها باهظة الثمن وبطيئة. عندما تكون في شك ، أوصي باستخدام chatgpt-3.5 توربو من Openai. إنه جيد بما فيه الكفاية ، رخيصة بما فيه الكفاية ، وبسرعة بما يكفي لاختبار هذا.
لحسن الحظ ، فإن معظم مزودي خدمة LLM المتوافقة مع تنسيق API من Openai ، لذلك فإن التحول إلى مزود / نموذج آخر هو الحد الأدنى من العمل (أو فقط اطلب من chatbot كتابة الرمز!).
في search.php بالنسبة لهذا المثال ، أنا أستخدم Openai (لـ ChatGPT-3.5-Turbo / GPT-4) و Groq (لـ Mixtral-8B7B). حتى تبقي عملك ضئيلًا ، ما عليك سوى الحصول على مفاتيح لواحد أو كلاهما.
عندما ترغب في طرح سؤال LLM ، يمكنك توفير الكثير من السياق الإضافي. كل نموذج له حد فريد خاص به وبعضها كبير جدًا. بالنسبة لـ GPT-4-Turbo ، يمكنك المرور على طول كتاب Harry Potter بالكامل بسؤالك. يمكن أن تدعم Gemini 1.5 القوية من Google حجم سياق أكثر من مليون رمز. هذا يكفي للتمرير على طول سلسلة هاري بوتر المكونة من 7 كتاب!
لحسن الحظ ، فإن تمرير قصاصات البحث عن 8-10 أصغر بكثير ، مما يتيح لك استخدام العديد من النماذج الأسرع (وأرخص بكثير) مثل GPT-3.5-Turbo أو Mistral-7B.
في تجربتي ، عادة ما تكون تمرير سؤال المستخدم ، ورسالة موجه مخصصة ، ومقتطفات نتائج البحث تحت رموز 1K. هذا جيد حتى في حدود النموذج الأساسي ، لذلك لا ينبغي أن يكون هذا مشكلة.
search.php لديه عينة موجه كنت ألعب معك. قبعة إلى الأشخاص في Lepton AI الذين فتحوا مشروعًا مشابهًا ساعدني في تحسين هذه المطالبة.
واحدة من الميزات الرائعة للحير هي كيف يقترحون متابعة الأسئلة. لحسن الحظ ، من السهل تكرارها.
للقيام بذلك ، يمكنك إجراء مكالمة ثانية إلى LLM (بالتوازي) لطلب الأسئلة ذات الصلة. ولا تنس أن تمر على طول تلك الاستشهادات في السياق مرة أخرى.
أو يمكنك محاولة بناء مطالبة بحيث يجيب LLM على السؤال وتأتي بالأسئلة ذات الصلة. هذا يحفظ مكالمة API وبعض الرموز المميزة ، ولكن من الصعب بعض الشيء الحصول على هذه LLMs للإجابة دائمًا بتنسيق ثابت وقابل للتكرار.
لجعل هذا مثالًا كاملاً ، نحتاج إلى واجهة مستخدم قابلة للاستخدام. ظللت واجهة المستخدم بسيطة قدر الإمكان وكل شيء في index.html . أنا أستخدم bootstrap و jQuery وبعض CSS / javaScript الأساسي ، و Markdown ، و js syntax Highlighter لتحقيق ذلك.
لتحسين التجربة ، تقوم واجهة المستخدم بما يلي:
لاستكشاف مثال عمل ، تحقق من https://yaddleai.com. إنه في الغالب نفس الرمز على الرغم من أنني أضفت مكالمة بحث ثانية بالتوازي مع جلب الصور ، كتبت صفحة منفصلة لجلب آخر الأخبار ، وبعض التحسينات الطفيفة الأخرى.