במדריך הקודם בנינו את מנגנון ה-RAG (Retrieval-Augmented Generation) באופן "ידני", על ידי חיבור נפרד של מודל Embedding, מודל Vector Store ומודל שפה. תהליך זה חשוב להבנה, אך הוא ארוך ומורכב.
Pinecone מציעה פתרון מהיר בהרבה דרך פיצ'ר Pinecone Assistants. פלטפורמה זו מאפשרת לנו להעלות קובץ ידע (כגון PDF) ישירות לתוך ממשק הניהול, והיא מטפלת באופן אוטומטי בכל שלבי הפיצול (Chunking), הוקטוריזציה (Embedding) והאינדוקס. בסיום התהליך, Pinecone מספקת לנו נקודת קצה (API Endpoint) אחת, שאליה אפשר לשלוח שאילתה ולקבל מיד את הקונטקסט הרלוונטי.
בתרגול זה נשתמש בגישה המקוצרת: במקום לבצע את האינדוקס, ההטמעה והחיפוש בעצמנו – נחבר לסוכן כלי יחיד מסוג HTTP Request שמתקשר ישירות עם מנגנון ההטמעה והחיפוש של Pinecone.
בהצלחה!
פרק 1: הקמת Pinecone Assistant וקבלת ה-cURL
בפרק זה נעבוד בממשק הניהול של Pinecone כדי ליצור את ה-Assistant ולהכין את קריאת ה-API שאותה נשתמש ב-n8n.
הכנה:
ודאו שיש לכם קובץ PDF זמין (ה-FAQ של המלון) וכי יש לכם חשבון פעיל ב-Pinecone.
-
יצירת ה-Assistant:
-
העלאת קובץ ה-PDF:
- לתרגול הזה נשתמש בקובץ Rules_of_Golf_Simplified.pdf. הורידו אותו למחשב מכאן.
-
במסך ה-Assistant שיצרתם, עברו לפאנל הניהול מימין ולחצו על האייקון של Files (אייקון קטן של תיקיה).
-
גררו את קובץ ה Rules_of_Golf.pdf לאזור הדבקת הקבצים. בחלונית שתיפתח – לחצו על Import.
- המתינו עד שסטטוס הקובץ יעבור ל-"Ready" (זה יכול לקחת מספר דקות, תלוי בגודל הקובץ). Pinecone עכשיו מבצע את האינדוקס באופן אוטומטי מאחורי הקלעים.
-
קבלת קוד החיבור ל Assistant (דרך קריאת API):
- כאשר הקובץ מוכן, לחצו על לשונית "Connect" שבראש פאנל הניהול מימין (אייקון של סוגריים משולשים – < >).
- בראש פאנל הניהול, מימין לכותרת Language, מופיעה תיבת נפתחת עם הכיתוב "Python". הקליקו ובחרו Shell.
-
באופן פאנל, תחת תת-הכותרת "Chat with assistant", מופיעה תיבה עם טקסט בסגנון:
PINECONE_API_KEY="YOUR_API_KEY" curl "https://prod-1-data.ke.pinecone.io/assistant/chat/golf-rules-assistant" \ -H "Api-Key: $PINECONE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "messages": [ { "role": "user", "content": "What is the inciting incident of Pride and Prejudice?" } ], "stream": false, "model": "gpt-4o" }' -
בחרו את הטקסט בתיבה החל מהמילה
curl(כולל), ועד סוף הטקסט. שימו לב לא לבחור כל מה שלפני המילה הזו.
הסבר: כיוון שאין ב n8n תמיכה מובנית בתקשורת עם Pinecone Assistant כפי שיצרנו כאן, אנחנו נתממשק איתו באמצעות בקשת HTTP (קריאת API). הקוד שהעתקנו מכיל את כל הפרטים של הבקשה הדרושה.
פרק 2: הטמעת ה-Assistant ככלי ב-n8n
בפרק זה נבנה את הסוכן ב-n8n ונשתמש בפקודת ה-cURL שהעתקנו בבלוק HTTP Request כדי ליצור כלי מותאם אישית.
-
הקמת שלד הסוכן:
- צרו Workflow חדש ב-n8n.
- שימו טריגר "When chat message received", וחברו אליו בלוק "AI Agent".
- חברו מודל שיחה (Chat Model) לבלוק הסוכן. זה יכול להיות OpenRouter, OpenAI או כל מודל אחר לבחירתכם.
-
הגדירו את ה-System Message של הסוכן (כפי שלמדנו בתרגול הקודם):
You are an expert in Golf rules. You answer politely to the human's questions. If the question is not related to golf, do not cooperate. Use the Pinecone tool to search through the golf rules in the knowledge base.
-
יצירת כלי ה-HTTP Request:
-
הוסיפו לסוכן כלי מסוג HTTP Request, ובחלון ההגדרות – תנו לו את השם
Pinecone. -
בתוך הגדרות הבלוק, אתרו את האפשרות "Import cURL" והדביקו לשם את פקודת ה-cURL שהעתקתם מ-Pinecone.
- הבלוק אמור להתמלא אוטומטית בפרטים: ה-URL, מתודת POST, ה-Header של ה-API Key, וגוף הבקשה (Body) בפורמט JSON.
-
גללו את החלון ההגדרות לאזור הכותרות (Headers) ומצאו Header עם השם Api-Key. כרגע שדה ה Value מכיל שומר-מקום ל API Key. הכניסו שם את ה API Key האמיתי שקיבלתם מ Pinecone.
-
כעת נשאר לנו רק להגדיר לסוכן מתי להשתמש בכלי הזה. גללו לראש חלון ההגדרות של הכלי, ובשדה Description הכניסו את הטקסט:
Use this tool to talk to your knowledge base
-
הוסיפו לסוכן כלי מסוג HTTP Request, ובחלון ההגדרות – תנו לו את השם
-
שיתוף ה-Ai ביצירת הבקשה:
- עדיין בחלון הגדרות הכלי HTTP Request, תחת ה-Body של הבקשה, אתרו את השדה JSON והעבירו אותו למצב Expression (המתג הקטן בפינה הימנית שלו).
-
במבנה ה JSON של גוף הבקשה, מצאו את השדה
contentוקבעו את ה-ערך שלו, בין המרכאות הכפולות, לביטוי הדינמי הבא:{{ $fromAI("searchQuery") }}
הביטוי הזה מייצג את הערך הדינמי שהסוכן יקבע, בהתאם לשאלת המשתמש.
- הסוכן מוכן לבדיקה. סגרו את חלון ההגדרות וחזרו למשטח העבודה.
פרק 3: בדיקת הסוכן המקוצר
כעת, כל הלוגיקה של ה-RAG מתבצעת בתוך קריאת API אחת. זהו מבנה פשוט יותר לתחזוקה.
-
שאילת שאלות מה-Assistant:
- תנו ל Workflow שם משמעותי, שמרו אותו, ופתחו את חלון הצ׳אט.
-
שאלו שאלה שהתשובה נמצאת ב-PDF שהעליתם.
Does the hotel have parking? - ודאו שהסוכן מגיב בתשובה מנוסחת היטב המבוססת על המידע מ-Pinecone.
-
בדיקת כלי ה-HTTP Request:
- לאחר הריצה, בדקו את נתוני הפלט של בלוק ה-HTTP Request.
-
ה-Output אמור להכיל את ה-JSON שחזר מ-Pinecone, ובו שדות כמו
context(הידע הרלוונטי),answer(התשובה שנוסחה על ידי Pinecone) ו-sources(מקורות). - שימו לב כיצד ה-AI Agent משתמש במידע זה כדי ליצור את התשובה הסופית למשתמש.
תרגול פתוח
עכשיו נסו לשפר ולשנות את הגישה הזו:
-
שליפת המקורות:
-
הוסיפו ל-System Prompt של הסוכן את ההוראה הבאה:
When answering the human's questions, always cite your sources as far as: what documents you got it from, what page it was from, what section, and an exact text based quote from the original document. - שלחו שאלה ובדקו האם הסוכן מדווח על המקורות.
-
הוסיפו ל-System Prompt של הסוכן את ההוראה הבאה:
-
בדיקת קלט לא רלוונטי:
- נסו לשלוח טקסט שאינו רלוונטי למומחיות הסוכן. האם הסוכן ניסה לשלוף מידע מבסיס הידע בכל זאת? או שהחזיר תשובה מיידית שאינו מתמחה בסוג של של שאלות?
סיכום:
במדריך זה ראינו כיצד להשתמש בכלי צד שלישי (כמו Pinecone Assistant) כדי לפשט באופן דרמטי את תהליך הקמת סוכן RAG. על ידי שימוש בבלוק HTTP Request כ"צינור" המעביר את השאלה ישירות ל-API חיצוני ומחזיר את הידע, קיצרנו את ה-Flow ב-n8n למינימום. גישה זו מוכיחה ש-n8n הוא כלי גמיש המאפשר לנו לשלב פתרונות מנוהלים מלאים ישירות לתוך הלוגיקה של הסוכנים שלנו.
לגישה זו יתרונות רבים כמו קלות היישום, הפחתת עלויות השימוש במודל השפה ומהירות התגובה. עם זאת יש גם חסרונות – כמו יכולת שליטה מועטת יותר.
שלבו את הטכניקות שלמדנו בחכמה ולמדו לזהות מתי מתאימה כל גישה.