أولاما + سينغلستور = لانغ تشين = :-(

في مقال سابق، استخدمنا Ollama مع LangChain و SingleStore. قدمت LangChain حلًا فعالًا ومكتملًا لدمج Ollama مع SingleStore. ومع ذلك، ماذا إذا قررنا إزالة LangChain؟ سنقوم في هذا المقال بإظهار مثال على استخدام Ollama مع SingleStore بدون الاعتماد على LangChain. سنرى أنه بينما يمكننا تحقيق نفس النتائج الموضحة في المقال السابق، يزداد عدد الأجزاء البرمجية مما يتطلب منا إدارة جزء أكبر من السباكة التي تتعامل معها LangChain بشكل عادي.

ملف المفكرة المستخدم في هذا المقال متاح على GitHub.

مقدمة

من المقال السابق، سنتبع نفس الخطوات لإعداد بيئتنا التجريبية كما موضح في هذه الأقسام:

  • مقدمة
    • استخدام آلة افتراضية أو venv.
  • إنشاء حساب SingleStoreDB Cloud
    • استخدام مجموعة العرض التجريبي لـ Ollama كاسم مجموعة المساحة العمل و ollama-demo كاسم المساحة العمل. قم بتوقيع ملاحظة بال كلمة المرور و اسم الناطق. امنح الوصول مؤقتًا من أي مكان عن طريق ضبط الجدار الناري تحت مجموعة العرض التجريبي لـ Ollama > الجدار الناري.
  • إنشاء قاعدة بيانات
  • CREATE DATABASE IF NOT EXISTS ollama_demo;
  • تثبيت Jupyter
    • pip install notebook
  • تثبيت Ollama
    • curl -fsSL https://ollama.com/install.sh | sh
  • متغير البيئة
    • export SINGLESTOREDB_URL="admin:<password>@<host>:3306/ollama_demo"
      用您的环境中的值替换 <password><host>
  • تشغيل Jupyter
    • jupyter notebook

ملء المذكرة

أولاً، بعض المرادون:

Shell

 

ثم، سنستير الي بعض المكتبات:

Python

 

سنقوم بإنشاء التعبيرات بواسطة all-minilm (45 مبيعاً في الوقت الذي يمكن الكتابة فيه):

Python

 

Plain Text

 

حسنًا، سنستخدم llama2 (3.8 جيغا بتاتا في الوقت الذي يمكننا أن نكتب فيه) لـمحرك التعلم العام.

Python

 

المثال القادم:

Plain Text

 

ما يليه سنستخدم نصوص المثال من موقع Ollama:

Python

 

سنضع التعبيرات في all-minilm وسنتطبق على كل مستند لبناء محتويات لجدول بانداس. أضافة إلى ذلك، سنحول التعبيرات إلى تنسيق 32 بتاتا لأن هذا ما يتم بواسطة سينجلستور بالفعل للتنسيق الافتراضي VECTOR. وأخيرًا، سنحدد عدد أبعاد التعبيرات لأول مستند في جدول بانداس.

ما يليه سنقوم بإنشاء اتصال بحزمة سينجلستور الخاصة بنا:

Python

 

سنبني مجددًا جدولًا بعمود vector بواسطة الأبعاد التي تم تحديدها مسبقًا:

Python

 

سنكتب الجدول البانداسي الى الجدول:

Python

 

المثال القادم:

Plain Text

 

سنقوم بإنشاء فهرس لتطابق ما قمنا بإنشائه في المقالة السابقة:

Python

 

سنطرح السؤال بالتالي:

Python

 

سنحول العرض الى تعبيرات، ونتأكد من أن التعبيرات تم تحويلها إلى تنسيق 32 بتاتا، ومن ثم ننفذ ال consulta SQL التي تستخدم النمطة المتداخلة <-> لعدد المسافة الأوقاتية.

المثال القادم:

Plain Text

 

ما يليه سنستخدم المحرك التعلم العام بالتالي:

Python

 

المثال القادم:

Plain Text

 

الخلاصة

في هذه المقالة ، قمنا بتكرار الخطوات التي تتبعنا في المقالة السابقة وحققنا نتائج مماثلة. ومع ذلك ، كان علينا كتابة سلسلة من الأعمال الSQL وإدارة عدة خطوات التي ستقوم بها LangChain. وبالإضافة إلى ذلك قد يكون هناك وقت وتكاليف أكثر في المرافق البرمجية على المدى الطويل مقارنة بحلول LangChain.

الاستخدام من LangChain بدلاً من كتابة البرمجيات الخاصة للوصول إلى البيانات يوفر عدد من المزايا ، مثل الفعالية والقابلية للتنمية والموثرية.

يقدم LangChain مكتبة من المواد المبنية مسبقاً للتفاعل مع القواعد البيانية ، مما يخفيض وقت التطوير والجهد. يمكن للمطورين استخدام هذه المواد لتنفيذ عدة عمليات القواعد البيانية بسرعة وبدون حاجة إلى البدء من نقطة الصفر.

LangChain يخفي معظم التعقيدات المتعلقة بإدارة البيانات ، مما يسمح للمطورين بالتركيز على المهام العليا بدلاً من التفاصيل الدنيا للتطوير. هذا يحسن الإنتاجية ومعدل الوصول الى السوق للتطبيقات القواعد البيانية.

لLangChain مجموعة كبيرة ونشطة وتتوسع من قبل المطورين ، ويتاح لها GitHub وتوفر توثيق شامل وأمثلة عديدة.

في الختام ، يوفر LangChain للمطورين منصة قوية وفعالة وموثرة لبناء تطبيقات قواعد البيانات ، مما يسمح لهم بالتركيز على المشاكل الأعمالية باستخدام تعايشات عالية المستوى بدلاً من إع

Source:
https://dzone.com/articles/ollama-plus-singlestore-minus-langchain