אתם יכולים להעביר הטמעות וקטורים ומטא-נתונים ממסדי נתונים וקטוריים של צד שלישי ל-AlloyDB ל-PostgreSQL באמצעות שילוב של LangChain VectorStore. במדריך הזה תייצאו נתוני וקטורים קיימים שנוצרו באמצעות LangChain ותטענו אותם לטבלה ב-AlloyDBVectorStore. אם הטמעתם נתונים באחד ממסדי הנתונים הבאים בלי להשתמש ב-LangChain, אתם צריכים לשנות את הסקריפטים של ההעברה שסופקו כדי להתאים אותם לסכימת הנתונים שלכם.
אלה מסדי הנתונים של וקטורים שנתמכים:
המדריך הזה מתבסס על ההנחה שאתם מכירים את Google Cloud, את AlloyDB ואת תכנות Python אסינכרוני.
מטרות
במדריך הזה מוסבר איך:
- לחלץ נתונים ממסד נתונים וקטורי קיים.
- מתחברים ל-AlloyDB.
- מאתחלים את הטבלה ב-AlloyDB.
- מאתחלים אובייקט של מאגר וקטורים.
- מריצים את סקריפט ההעברה כדי להוסיף את הנתונים.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
You might be eligible for a free trial cluster. For more information, see AlloyDB free trial clusters overview.
בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
מוודאים שיש לכם אחד ממאגרי הווקטורים הבאים של מסדי נתונים של צד שלישי ב-LangChain:
הפעלת החיוב וממשקי ה-API הנדרשים
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב-Google Cloud או יוצרים אותו.
מפעילים את ממשקי ה-API של Cloud שנדרשים כדי ליצור מכונות של AlloyDB ל-PostgreSQL ולהתחבר אליהן.
- בשלב Confirm project, לוחצים על Next כדי לאשר את שם הפרויקט שבו רוצים לבצע שינויים.
בשלב Enable APIs, לוחצים על Enable כדי להפעיל את ממשקי ה-API הבאים:
- AlloyDB API
- Compute Engine API
- Service Networking API
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לביצוע המשימות במדריך הזה, צריך את התפקידים הבאים בממשק של ניהול הזהויות והרשאות הגישה (IAM), שמאפשרים ליצור טבלאות ולהוסיף נתונים:
- בעלים (
roles/owner) או עורך (roles/editor) אם המשתמש הוא לא בעלים או עורך, נדרשים התפקידים הבאים ב-IAM וההרשאות הבאות ב-PostgreSQL:
- לקוח AlloyDB (
roles/alloydb.client) - אדמין ב-AlloyDB (
roles/alloydb.admin) - משתמש ברשת Compute (
roles/compute.networkUser)
- לקוח AlloyDB (
אם אתם רוצים לאמת את מסד הנתונים באמצעות אימות IAM במקום להשתמש באימות המובנה במדריך הזה, השתמשו ב-Notebook שמראה איך להשתמש ב-AlloyDB ל-PostgreSQL כדי לאחסן הטמעות וקטורים באמצעות המחלקה AlloyDBVectorStore.
יצירת אשכול ומשתמש ב-AlloyDB
- יוצרים אשכול ומכונה של AlloyDB.
- כדי להפעיל את המדריך הזה מכל מקום, צריך להפעיל את כתובת ה-IP הציבורית. אם אתם משתמשים בכתובת IP פרטית, אתם צריכים להריץ את המדריך הזה מתוך רשת הענן הווירטואלי הפרטי (VPC).
- יוצרים או בוחרים משתמש במסד הנתונים של AlloyDB.
- כשיוצרים את המכונה, נוצר משתמש
postgresעם סיסמה. למשתמש הזה יש הרשאות של משתמש-על. - במדריך הזה משתמשים באימות מובנה כדי לצמצם את החיכוך באימות. אפשר לבצע אימות ב-IAM באמצעות AlloyDBEngine.
- כשיוצרים את המכונה, נוצר משתמש
אחזור של דוגמת הקוד
מעתיקים את דוגמת הקוד מ-GitHub על ידי שכפול המאגר:
git clone https://github.com/googleapis/langchain-google-alloydb-pg-python.gitמנווטים לספרייה
migrations:cd langchain-google-alloydb-pg-python/samples/migrations
חילוץ נתונים ממסד נתונים וקטורי קיים
יוצרים לקוח.
Pinecone
Weaviate
Chroma
Qdrant
Milvus
מקבלים את כל הנתונים ממסד הנתונים.
Pinecone
מאחזרים את מזהי הווקטורים מהאינדקס של Pinecone:
ואז מאחזרים רשומות לפי מזהה מהאינדקס של Pinecone:
Weaviate
Chroma
Qdrant
Milvus
הפעלת הטבלה ב-AlloyDB
מגדירים את שירות ההטמעה.
ממשק VectorStore דורש שירות הטמעה. תהליך העבודה הזה לא יוצר הטמעות חדשות, ולכן משתמשים במחלקה
FakeEmbeddingsכדי להימנע מעלויות.Pinecone
Weaviate
Chroma
Qdrant
Milvus
מכינים את הטבלה ב-AlloyDB.
מתחברים ל-AlloyDB באמצעות קישור דרך IP ציבורי. למידע נוסף, קראו את המאמר ציון סוג כתובת ה-IP.
Pinecone
Weaviate
Chroma
Qdrant
Milvus
אם עדיין אין טבלה, יוצרים טבלה שאליה אפשר להעתיק את הנתונים.
Pinecone
Weaviate
Chroma
Qdrant
Milvus
הפעלה של אובייקט מאגר וקטורים
הקוד הזה מוסיף עוד מטא-נתונים של הטמעת וקטורים לעמודה langchain_metadata בפורמט JSON.
כדי שהסינון יהיה יעיל יותר, כדאי לארגן את המטא-נתונים האלה בעמודות נפרדות.
מידע נוסף זמין במאמר יצירת מאגר וקטורים בהתאמה אישית.
כדי לאתחל אובייקט של מאגר וקטורים, מריצים את הפקודה הבאה:
Pinecone
Weaviate
Chroma
Qdrant
Milvus
מוסיפים נתונים לטבלה ב-AlloyDB:
Pinecone
Weaviate
Chroma
Qdrant
Milvus
מריצים את סקריפט ההעברה
מתקינים את יחסי התלות של הדוגמה:
pip install -r requirements.txtמריצים את ההעברה לדוגמה.
Pinecone
python migrate_pinecone_vectorstore_to_alloydb.pyלפני שמריצים את הדוגמה, מחליפים את הערכים הבאים:
-
PINECONE_API_KEY: מפתח ה-API של Pinecone. -
PINECONE_NAMESPACE: מרחב השמות של Pinecone. -
PINECONE_INDEX_NAME: השם של האינדקס ב-Pinecone. -
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו פרוס אשכול AlloyDB. -
CLUSTER: שם האשכול. -
INSTANCE: שם המכונה. -
DB_NAME: שם מסד הנתונים. -
DB_USER: שם המשתמש במסד הנתונים. -
DB_PWD: הסיסמה הסודית של מסד הנתונים.
Weaviate
python migrate_weaviate_vectorstore_to_alloydb.pyלפני שמריצים את הדוגמה, מחליפים את הערכים הבאים:
-
WEAVIATE_API_KEY: מפתח ה-API של Weaviate. -
WEAVIATE_CLUSTER_URL: כתובת ה-URL של אשכול Weaviate. -
WEAVIATE_COLLECTION_NAME: שם האוסף ב-Weaviate. -
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו פרוס אשכול AlloyDB. -
CLUSTER: שם האשכול. -
INSTANCE: שם המכונה. -
DB_NAME: שם מסד הנתונים. -
DB_USER: שם המשתמש במסד הנתונים. -
DB_PWD: הסיסמה הסודית של מסד הנתונים.
Chroma
python migrate_chromadb_vectorstore_to_alloydb.pyלפני שמריצים את הדוגמה, מחליפים את הערכים הבאים:
-
CHROMADB_PATH: הנתיב למסד הנתונים של Chroma. -
CHROMADB_COLLECTION_NAME: השם של אוסף מסד הנתונים של Chroma. -
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו פרוס אשכול AlloyDB. -
CLUSTER: שם האשכול. -
INSTANCE: שם המכונה. -
DB_NAME: שם מסד הנתונים. -
DB_USER: שם המשתמש במסד הנתונים. -
DB_PWD: הסיסמה הסודית של מסד הנתונים.
Qdrant
python migrate_qdrant_vectorstore_to_alloydb.pyלפני שמריצים את הדוגמה, מחליפים את הערכים הבאים:
-
QDRANT_PATH: הנתיב למסד הנתונים של Qdrant. -
QDRANT_COLLECTION_NAME: השם של אוסף Qdrant. -
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו פרוס אשכול AlloyDB. -
CLUSTER: שם האשכול. -
INSTANCE: שם המכונה. -
DB_NAME: שם מסד הנתונים. -
DB_USER: שם המשתמש במסד הנתונים. -
DB_PWD: הסיסמה הסודית של מסד הנתונים.
Milvus
python migrate_milvus_vectorstore_to_alloydb.pyלפני שמריצים את הדוגמה, מחליפים את הערכים הבאים:
-
MILVUS_URI: ה-URI של Milvus. -
MILVUS_COLLECTION_NAME: השם של אוסף Milvus. -
PROJECT_ID: מזהה הפרויקט. -
REGION: האזור שבו פרוס אשכול AlloyDB. -
CLUSTER: שם האשכול. -
INSTANCE: שם המכונה. -
DB_NAME: שם מסד הנתונים. -
DB_USER: שם המשתמש במסד הנתונים. -
DB_PWD: הסיסמה הסודית של מסד הנתונים.
אם ההעברה תצליח, יודפסו יומנים שדומים לאלה, בלי שגיאות:
Migration completed, inserted all the batches of data to AlloyDB-
פותחים את AlloyDB Studio כדי לראות את הנתונים שהועברו. מידע נוסף מופיע במאמר ניהול הנתונים באמצעות AlloyDB Studio.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.
נכנסים לדף Clusters במסוף Google Cloud .
בעמודה Resource name, לוחצים על שם האשכול שיצרתם.
לוחצים על delete Delete cluster.
בקטע Delete cluster, מזינים את שם האשכול כדי לאשר שרוצים למחוק אותו.
לוחצים על Delete.
אם יצרתם חיבור פרטי כשיצרתם אשכול, מחקו את החיבור הפרטי:
נכנסים לדף Networking במסוף Google Cloud ולוחצים על Delete VPC network.