he-IL/about_Powershai_CHATS.help.txt

TOPIC
    about_powershai_chats
 
SHORT DESCRIPTION
    PowershAi מגדיר את המושג של צ'אטים, העוזרים ליצור היסטוריה וקונטקסט של שיחות!
 
 
LONG DESCRIPTION
    PowershAi יוצר את המושג של צ'אטים, הדומים מאוד למושג של צ'אטים ברוב שירותי ה-LLM.
 
    צ'אטים מאפשרים לנהל שיחה עם שירותי LLM באופן סטנדרטי, בלי קשר לספק הנוכחי.
 
    הם מספקים דרך סטנדרטית לתכונות אלו:
    - היסטוריית צ'אטים - קונטקסט
    - צינור (שימוש בתוצאה של פקודות אחרות)
    - קריאה לכלי (ביצוע פקודות לפי בקשת ה-LLM)
    לא כל ספק יממש תמיכה בצ'אטים.
 
    כדי לדעת אם ספק מסוים תומך בצ'אטים, השתמש ב-cmdlet Get-AiProviders ובדוק את המאפיין "Chat". אם הוא $true, אז צ'אטים נתמכים.
 
    כמו כן, גם אם צ'אטים נתמכים, ייתכן שחלק מהתכונות לא יהיו נתמכות, בשל מגבלות של הספק.
 
 
התחלת צ'אט חדש
    הדרך הפשוטה ביותר להתחיל צ'אט חדש היא באמצעות הפקודה Send-PowershaiChat.
 
    ברור שאתה צריך להשתמש בו לאחר קביעת תצורה של הספק (באמצעות `Set-AiProvider`) והגדרות ראשוניות, כגון אימות, אם נדרש.
 
 
    Send-PowershaiChat "שלום, אני מדבר איתך מ-Powershai"
 
    לשם פשטות, לפקודה `Send-PowershaiChat` יש שם נרדף בשם `ia` (קיצור של אינטליגנציה מלאכותית).
 
    איתו, אתה מקצר משמעותית ומתמקד יותר בפקודה:
 
    ia "שלום, אני מדבר איתך מ-Powershai"
 
    כל הודעה נשלחת בצ'אט. אם לא תיצור צ'אט באופן ספציפי, יישתמש בצ'אט מיוחד בשם `default`.
 
    אתה יכול ליצור צ'אט חדש באמצעות `New-PowershaiChat`.
 
    לכל צ'אט יש היסטוריה משלו של שיחות והגדרות.
 
    יצירת צ'אטים נוספים עשויה להיות שימושית אם אתה צריך לשמור על יותר משיחה אחת בלי שהן יתערבבו אחת בשנייה!
 
פקודות צ'אט
    פקודות שמתמודדות עם צ'אטים באופן כלשהו הן בפורמט `
    -Powershai
    Chat*`.
 
    בדרך כלל, פקודות אלו מקבלות פרמטר -ChatId, המאפשר לך לציין את השם או אובייקט הצ'אט שנוצר עם `New-PowershaiChat`.
 
    אם לא מצוין, הן משתמשות בצ'אט הפעיל.
 
 
צ'אט פעיל
    צ'אט פעיל הוא הצ'אט ברירת המחדל המשמש את פקודות PowershaiChat.
 
    כאשר יש רק צ'אט אחד שנוצר, הוא נחשב לצ'אט פעיל.
 
    אם יש לך יותר מצ'אט אחד פעיל, אתה יכול להשתמש בפקודה `Set-PowershaiActiveChat` כדי לקבוע מי הוא. אתה יכול להעביר את השם או את האובייקט שהוחזר על
    ידי `New-PowershaiChat`.
 
פרמטרים של צ'אט
    לכל צ'אט יש פרמטרים מסוימים השולטים במגוון היבטים.
 
    לדוגמה, כמות מקסימלית של tokens להחזרה על ידי LLM.
 
    פרמטרים חדשים עשויים להתווסף בכל גרסה של PowershAI.
 
    הדרך הפשוטה ביותר לקבל את הפרמטרים ואת מה שהם עושים היא באמצעות הפקודה `Get-PowershaiChatParameter`;
 
    פקודה זו תביא את רשימת הפרמטרים שניתן להגדיר, יחד עם הערך הנוכחי ותיאור של אופן השימוש בה.
 
    אתה יכול לשנות את הפרמטרים באמצעות הפקודה `Set-PowershaiChatParameter`.
 
    חלק מהפרמטרים המפורטים הם הפרמטרים הישירים של API של הספק.
 
    הם יגיעו עם תיאור המציין זאת.
 
 
קונטקסט והיסטוריה
    לכל צ'אט יש קונטקסט והיסטוריה.
 
    ההיסטוריה היא כל ההיסטוריה של ההודעות שנשלחו ונתקבלו בשיחה.
 
    גודל הקונטקסט הוא כמה מההיסטוריה הוא ישלח ל-LLM, כך שהוא יזכור את התגובות.
 
    שים לב שגודל הקונטקסט הוא מושג של PowershAI, והוא אינו זהה ל-"Context length"
 
    גודל הקונטקסט משפיע רק על PowershAI, ובהתאם לערך, הוא עשוי לעבור את Context Length
 
    חשוב לשמור על גודל הקונטקסט מאוזן בין שמירה על LLM מעודכן עם מה שנאמר כבר לבין
 
    לא עובר את כמות ה-tokens המרבית של LLM.
 
    אתה שולט בגודל הקונטקסט באמצעות פרמטר הצ'אט, כלומר, באמצעות `Set-PowershaiChatParameter`.
    שים לב שההיסטוריה והקונטקסט מאוחסנים בזיכרון הפעלת הפעולה של Powershell, כלומר,
 
    אם תסגור את הפעלת הפעולה של Powershell, הם יאבדו.
 
    בעתיד, אנו עשויים לקבל מנגנונים המאפשרים למשתמש לשמור באופן אוטומטי
 
    גם חשוב לזכור שמאחר שההיסטוריה נשמרת בזיכרון של Powershell, שיחות ארוכות מאוד
 
    אתה יכול לאפס את הצ'אטים בכל עת באמצעות הפקודה `Reset-PowershaiCurrentChat`,
 
    השתמש בזהירות, מכיוון שזה יגרום לאובדן כל ההיסטוריה ו-LLM לא יזכור את המוזרויות
 
 
צינור
    אחת מהתכונות החזקות ביותר של צ'אטים ב-Powershai היא השילוב עם צינור Powershell.
 
    במילים אחרות, אתה יכול להעביר את התוצאה של כל פקודה powershell, והיא תישמש כקונטקסט.
 
    PowershAI עושה זאת על ידי המרת אובייקטים לטקסט ושליחתם בפקודה.
 
    ואז, הודעת הצ'אט מתווספת בהמשך.
 
    לדוגמה:
 
    Get-Service | ia "הכינו תקציר אודות שירותים שלא נפוצים ב-Windows"
 
    בהגדרות ברירת המחדל של PowershAI, הפקודה `ia` (שם נרדף ל- `Send-PowershaiChat`),
 
    ואז, מחרוזת זו תוזרק לפקודה של LLM, ויונחו לו להשתמש בתוצאה זו כ"קונטקסט"
 
    פקודת המשתמש מתווספת מייד לאחר מכן.
 
    בזכות כך, נוצר אפקט רב עוצמה: אתה יכול לשלב בקלות את הפלט של פקודות עם
 
    LLM נוטה לשקול זאת היטב.
 
    למרות שיש לו ערך ברירת מחדל, יש לך שליטה מלאה על אופן שליחת האובייקטים.
 
    הדרך הראשונה לשלוט היא כיצד האובייקט מומר לטקסט.
 
    ברירת המחדל היא להמיר לייצוג סטנדרטי של Powershell, בהתאם לסוג (באמצעות
 
    אתה יכול לשנות זאת באמצעות הפקודה `Set-PowershaiChatContextFormatter`.
 
    הדרך השנייה לשלוט על אופן שליחת הקונטקסט היא באמצעות פרמטר הצ'אט
 
    פרמטר זה שולט בכל ההודעה שתוזרק לפקודה.
 
    אתה צריך להחזיר מערך של מחרוזות, השווה לפקודה שנשלחת.
 
    סגנון זה מקבל גישה לפרמטרים כמו האובייקט המעוצב שעובר בצנור,
 
    הערך ברירת המחדל של הסגנון מקודד באופן קשיח, ואתה צריך לבדוק ישירות
 
 
    כלים
    אחת התכונות הגדולות המיושמות היא תמיכה בקריאת פונקציות (או קריאת כלים).
 
    תכונה זו, זמינה במספר LLMs, מאפשרת ל-AI להחליט להפעיל פונקציות
 
    במילים אחרות, אתה מתאר פונקציה אחת או יותר ופרמטרים שלהן, והמודל יכול
 
    חשוב: תוכל להשתמש בתכונה זו רק בספקים שמציגים קריאת פונקציות
    לפרטים נוספים, עיין בתיעוד הרשמי של OpenAI אודות קריאת פונקציות:
 
    קריאת פונקציות
    .
המודל רק מחליט אילו פונקציות להפעיל, מתי להפעיל אותן ומה יהיו הפרמטרים שלהן.
 
    הביצוע של הפעלה זו נעשה על ידי הלקוח, במקרה שלנו, PowershAI.
 
    המודלים מצפים להגדרת הפונקציות תוך תיאור מה הן עושות,
 
    במקור, זה נעשה באמצעות משהו כמו OpenAPI Spec
 
    עם זאת, Powershell כולל מערכת עוצמתית של עזרה באמצעות הערות,
 
    PowershAI משלב עם מערכת עזרה זו, ותרגם אותה ל-OpenAPI specification.
 
    כדי להדגים תכונה זו, נעבור למדריך פשוט:
 
 
    # קובץ MinhasFuncoes.ps1, שמור אותו במיקום
     
    <#
        .DESCRIPTION
        רשימת הזמן הנוכחי
    #>
    function HoraAtual {
        return Get-Date
    }
     
    <#
        .DESCRIPTION
        מקבל מספר אקראי!
    #>
    function NumeroAleatorio {
        param(
            # מספר מינימלי
            $Min = $null,
             
            # מספר מקסימלי
            $Max = $null
        )
        return Get-Random -Min $Min -Max $Max
    }
 
    שים לב לשימוש בהערות לתיאור פונקציות ופרמטרים
    .
 
    זוהי תחביר נתמך על ידי Powershell, המכונה
 
    עזרה מבוססת הערות
    .
עכשיו, נוסיף קובץ זה ל-PowershAI:
 
    import-module powershai
     
    Set-AiProvider openai
    Set-OpenaiToken #confiogure o token se ainda não configurou.
     
     
    # Adicione o script como tools!
    # Supondo que o script fo salvo em C:\tempo\MinhasFuncoes.ps1
    Add-AiTool C:\tempo\MinhasFuncoes.ps1
     
    # Confirme que s tools foram adicionadas
    Get-AiTool
 
    נסה לבקש מהמודל מה השעה הנוכחית או לבקש ממנו
 
    תראה שהוא יפעיל את הפונקציות שלך!
 
    זה פותח אפשרויות אינסופיות, והיצירתיות שלך היא הגבול!
 
    ia "כמה שעות?"
 
    בפקודה שלמעלה, המודל יפעיל את הפונקציה.
 
    אתה יכול להוסיף כל פקודה או סקריפט Powershell ככלי.
 
    השתמש בפקודה `Get-Help -Full Add-AiTol`
 
    PowershAI מטפל באופן אוטומטי בהפעלת הפקודות ושליחת
 
    אם המודל מחליט להפעיל מספר פונקציות במקביל,
 
    שים לב שעל מנת למנוע לולאה אינסופית של ביצועים, PowershAI
 
    הפרמטר השולט באינטראקציות אלה עם המודל הוא `MaxInteractions`.
 
 
    INVOKE-AICHATTOOLS ו-GET-AICHAT
    שתי cmdlet's אלה הן הבסיס לתכונת הצ'אטים ב-PowershAI.
 
    `Get-AiChat` היא הפקודה המאפשרת לתקשר עם LLM
 
    היא, בעצם, עטיפה סטנדרטית עבור API המאפשרת לייצר טקסט.
 
    אתה מציין את הפרמטרים, שהם סטנדרטיים, והיא מחזירה
 
    בלי קשר לספק, התגובה צריכה לעקוב אחר אותה כלל!
ה-cmdlet `Invoke-AiChatTools` הוא קצת יותר מתוחכם
 
    היא מאפשרת לציין פונקציות Powershell ככלי.
 
    היא משתמשת במערכת העזרה של Powershell כדי לקבל
 
    היא שולחת את הנתונים למודל באמצעות הפקודה `Get-Aichat`.
 
    היא ממשיכה לעשות את לולאת זו עד שהמודל מסיים את
 
    אינטראקציה היא קריאת API למודל.
 
    אך, תוך שימוש ב-Invoke-AiChatTools עם פונקציות,
 
    הדיאגרמה הבאה מסבירה זרימה זו:
 
    sequenceDiagram
            Invoke-AiChatTools->>modelo:prompt (INTERAÇ O 1)
            modelo->>Invoke-AiChatTools:(response, 3 function call)
            Invoke-AiChatTools-->Invoke-AiChatTools:Call Tool 1
            Invoke-AiChatTools-->Invoke-AiChatTools:Call Tool 2
            Invoke-AiChatTools-->Invoke-AiChatTools:Call Tool 3
            Invoke-AiChatTools->>modelo:Resultado tool call + prompts anteriores prompt (INTERAÇ O 2)
            modelo->>Invoke-AiChatTools:resposta final
 
    כיצד פקודות מומרים ומופעלים
    הפקודה `Invoke-AiChatTools` מצפה בפרמטר -Functions
 
    היא מצפה מאובייקט שקוראים לו OpenaiTool,
 
    - tools
 
    מאפיין זה מכיל את סכימת קריאת הפונקציות
 
    - map
 
    זהו שיטה המוחזרת על ידי פקודת powershell
 
    שיטה זו צריכה להחזיר אובייקט עם המאפיין
 
    היא תקבל בארגומנט הראשון את שם הכלי,
 
    בנוסף למאפיינים אלו, כל מאפיין אחר חופשי
 
    זה מאפשר לסגנון הסקריפט לקבל גישה לכל
 
    כאשר LLM מחזיר את בקשת קריאת הפונקציות,
 
    זה פותח מגוון אפשרויות, ומאפשר,
 
    ואז, הפקודה תופעל,
 
    כלומר, הפקודה או הסקריפט צריכים להיות
 
    כל זה נעשה בלולאה שתעבור, ברצף,
 
    אין שום הבטחה לגבי הסדר שבו כלים יבוצעו,
 
    משמעות הדבר היא שבמימושים עתידיים,
 
    פנימית, PowershAI יוצר סגנון סקריפט ברירת
 
    לדוגמה כיצד ליישם פונקציות
 
    שים לב שפונקציה זו עובדת רק עם
 
 
    שיקולים חשובים אודות השימוש בכלים
    תכונת קריאת פונקציות חזקה מכיוון
 
    לכן, יש להיות זהירים ביותר עם
 
    זכור ש-PowershAI יפעיל בהתאם
 
    כמה עצות בטיחות:
- הימנע מהפעלת הסקריפט עם
 
    - הימנע ממימוש קוד שמחק
 
    - בדוק את הפונקציות לפני
 
    - אל תכלול מודולים או
 
    המימוש הנוכחי מפעיל את
 
    משמעות הדבר היא ש, לדוגמה, אם המודל
 
    לכן, שווה להזהיר:
 
    ישנם תוכניות להוסיף מנגנונים
 
    כגון בידוד ברחבי ריצה
 
    ואפשר למשתמש