אולאמה + SingleStore – LangChain = :-(

במאמר קודם, השתמשנו בOllama בעזרת LangChain ו SingleStore. לangChain סיפקה פתרון יעיל וצר בשילוב עבור התאמה של Ollama עם SingleStore. אך מה אם נסלק LangChain? במאמר זה, אנחנו נראה דוגמה לשימוש בOllama עם SingleStore ללא הסמכה על לangChain. נראה שאף על פי שאנחנו יכולים להשיג את אותם התוצאות שהוצגו במאמר הקודם, מספר הקוד יגדל, ונדרשת לנו לנהל יותר מחלק של המידבור שלangChain מטפלת בהם בדרך כלל.

קבצי הערון השימושיים במאמר זה זמינים בGitHub.

הקדמה

מהמאמר הקודם, נעבור על אותן השלבים כדי להגדיר את הסביבה המבחנת שלנו כפי שנתתם באחד המבטים:

  • הקדמה
    • השתמש במכונה מודל או בvenv.
    • יצירת חשבון בסינגלסטורDB כלOU
      • השתמש בקבוצת הדמות 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 מגabyte בזמן כתיבת המסמך):

      Python

       

      Plain Text

       

      לשימוש בLLM שלנו נשתמש בllama2 (3.8 גבייט בזמן הכתיבה): 

      Python

       

      תוצאת דוגמה:

      Plain Text

       

      הלאה, נשתמש בטקסט הדוגמה מאתר האינטרנט של Ollama:

      Python

       

      נקבע את ההטמעות לall-minilm ונעבור דרך כל מסמך כדי לבנות את התוכן עבור DataFrame של Pandas. בנוסף, נהפוך את ההטמעות לתבנית 32-ביט כי זו התבנית המכונה עבור סוג המידע VECTOR של SingleStore. לבסוף, נקבע את מספר המימדים של ההטמעות עבור המסמך הראשון בDataFrame של Pandas. 

      הלאה, ניצור חיבור למופע של SingleStore שלנו:

      Python

       

      עכשיו ניצור טבלה עם העמודה vector תוך שימוש בהמימדים שקבענו מקודם:

      Python

       

      נכתוב את DataFrame של Pandas לטבלה:

      Python

       

      תוצאת דוגמה:

      Plain Text

       

      עכשיו ניצור מדד כדי להתאים את האחד שיצרנו במאמר הקודם:

      Python

       

      נשאל שאלה, כך שהיא:

      Python

       

      נהפוך את הפרומט להטמעות, נוודא שההטמעות הופכות לתבנית 32-ביט ואז נבצע את שאילתת SQL שמשתמשת בסימון החזיתי <-> עבור מרחק אורכי:

      תוצאת דוגמה:

      Plain Text

       

      הלאה, נשתמש בLLM, ככה שהוא:

      Python

       

      תוצאת דוגמה:

      Plain Text

       

      סיכום

      במאמר זה, שיכפלנו את הצעדים שעקבנו אחריהם במאמר הקודם והשגנו תוצאות דומות. עם זאת, היינו צריכים לכתוב סדרה של הצהרות SQL ולנהל מספר צעדים שלאונג' ציין היה עומד להתמודד עבורנו. בנוסף, עלול להיות יותר זמן ועלות על שומרון בקוד במשך הזמן הארוך לעומת הפתרון של לאנג' ציין. 

      השימוש בלאנג' ציין במקום כתיבת קוד מותאם אישית לגישה לבסיס נתונים מציע מספר יתרונות, כמו יעילות, נגישות ואמינות. 

      לאנג' ציין יש ספרית של מודולים מוכנים מראש לאינטראקציה עם בסיס נתונים, מפחית זמן ומאמץ פיתוח. מפתחים יכולים להשתמש במודולים אלה כדי ליישם במהירות מספר מנגנונים שונים של בסיס נתונים בלי להתחיל מהתחלה.

      לאנג' ציין מופשט רבים מהמורכבויות הכרוכות בניהול בסיס נתונים, מאפשר למפתחים להתמקד במשימות ברמה גבוהה במקום בפרטיות הביצוע. זה משפרים את הפרודוקטיביות וזמן ההשקעה בשוק ליישומיות המונעות על בסיס נתונים.

      לאנג' ציין יש קהילה גדולה, פעילה וגדלה של מפתחים, זמין ב־GitHub, ויש לו תיעוד מקיף ודוגמאות. 

      בסיכום, לאנג' ציין מציע למפתחים פלטפורמה חזקה, יעילה ואמינה לבניית יישומיות מונעות על בסיס נתונים, מאפשרת להם להתמ

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