Notemd משפר את תהליך העבודה שלכם ב-Obsidian באמצעות אינטגרציה עם מודלי שפה גדולים שונים (LLMs), כדי לעבד הערות רב-לשוניות, ליצור אוטומטית wiki-links עבור מושגי מפתח, ליצור concept notes תואמים, לבצע מחקר ברשת ולעזור לכם לבנות גרפי ידע חזקים ועוד.
אם אתם אוהבים להשתמש ב-Notemd, אנא שקלו [⭐ לתת כוכב ב-GitHub](https://github.com/Jacobinwwey/obsidian-NotEMD) או [☕️ לקנות לי קפה](https://ko-fi.com/jacobinwwey).
1.**התקינו והפעילו**: קבלו את התוסף מ-Obsidian Marketplace.
2.**הגדירו LLM**: עברו אל `Settings -> Notemd`, בחרו את ספק ה-LLM שבו תרצו להשתמש (למשל OpenAI או ספק מקומי כמו Ollama), והזינו את מפתח ה-API / כתובת ה-URL.
3.**פתחו את סרגל הצד**: לחצו על אייקון המטה של Notemd ברצועה השמאלית כדי לפתוח את סרגל הצד.
4.**עיבוד הערה**: פתחו כל הערה ולחצו על **"Process File (Add Links)"** בסרגל הצד כדי להוסיף אוטומטית `[[wiki-links]]` למושגי מפתח.
5.**הריצו זרימת עבודה מהירה**: השתמשו בכפתור ברירת המחדל **"One-Click Extract"** כדי לשרשר עיבוד, יצירה באצווה וניקוי Mermaid מנקודת כניסה אחת.
| `שפת פלט המשימות` | פלט משימות שנוצר על ידי LLM (קישורים, סיכומים, יצירה, חילוץ, שפת יעד לתרגום) | `en` | יכול להיות גלובלי או לפי משימה כאשר `השתמש בשפות שונות למשימות` מופעל. |
| `השבת תרגום אוטומטי` | משימות שאינן `Translate` שומרות על הקשר שפת המקור | `false` | משימות `Translate` מפורשות עדיין אוכפות את שפת היעד שהוגדרה. |
| גיבוי מקומי | פתרון מפתחות UI חסרים | locale -> `en` | שומר על יציבות ה-UI כאשר חלק מהמפתחות אינם מתורגמים. |
- **תמיכה ב-Multi-LLM**: התחברו לספקי LLM שונים בענן ובאופן מקומי (ראו [ספקי LLM נתמכים](#ספקי-llm-נתמכים)).
- **חלוקה חכמה**: מפצל אוטומטית מסמכים גדולים למקטעים ניתנים לניהול על בסיס מספר מילים.
- **שמירת תוכן**: שואף לשמור על הפורמט המקורי תוך הוספת מבנה וקישורים.
- **מעקב התקדמות**: עדכונים בזמן אמת דרך Notemd Sidebar או חלון התקדמות.
- **פעולות ניתנות לביטול**: ניתן לבטל כל משימת עיבוד (בודדת או אצווה) שהופעלה מסרגל הצד דרך כפתור ביטול ייעודי. פעולות מלוח הפקודות משתמשות בחלון התקדמות שניתן גם לבטל.
- **תצורת ריבוי מודלים**: השתמשו בספקי LLM שונים *וב*מודלים ספציפיים למשימות שונות (Add Links, Research, Generate Title, Translate), או השתמשו בספק יחיד לכל המשימות.
- **Stable API Calls (Retry Logic)**: אפשרו באופן אופציונלי ניסיונות חוזרים אוטומטיים לקריאות LLM API שנכשלו, עם מרווחי זמן ומגבלות ניסיונות שניתנים להגדרה.
- **בדיקות חיבור עמידות לספקים**: אם בדיקת הספק הראשונה נתקלת בניתוק רשת זמני, Notemd עובר כעת לרצף ניסיונות חוזרים יציב לפני כישלון, כולל transport של OpenAI-compatible, Anthropic, Google, Azure OpenAI ו-Ollama.
- **Fallback של transport לפי סביבת ריצה**: כאשר בקשה ארוכה לספק נופלת דרך `requestUrl` בשל שגיאות רשת זמניות כגון `ERR_CONNECTION_CLOSED`, Notemd מנסה כעת שוב את אותו ניסיון דרך transport חלופי תואם-סביבה לפני כניסה ללולאת ה-retry שהוגדרה: build-ים שולחניים משתמשים ב-Node `http/https`, וסביבות שאינן שולחניות משתמשות ב-`fetch` של הדפדפן. כך מצטמצמים כישלונות שווא ב-gateway איטיים ו-reverse proxy.
- **חיזוק שרשרת בקשות ארוכות ב-OpenAI-compatible**: במצב יציב, קריאות OpenAI-compatible משתמשות כעת בסדר מפורש של 3 שלבים לכל ניסיון: direct streaming transport ראשי, לאחריו direct non-stream transport, ואז fallback דרך `requestUrl` (שעדיין יכול להשתדרג ל-streamed parsing בעת הצורך). הדבר מפחית false negative במצבים שבהם הספק משלים buffered responses אך streaming pipes אינם יציבים.
- **Fallback של streaming מודע-פרוטוקול בכל API-י LLM**: ניסיונות fallback ארוכי-טווח משדרגים כעת ל-streamed parsing מודע-פרוטוקול בכל נתיב LLM מובנה, לא רק ב-endpoint מסוג OpenAI-compatible. Notemd מטפל כעת ב-OpenAI/Azure-style SSE, ב-Anthropic Messages streaming, ב-Google Gemini SSE responses וב-Ollama NDJSON streams הן ב-`http/https` שולחני והן ב-`fetch` שאינו שולחני, ושאר direct OpenAI-style provider entrypoints ממחזרים את אותו shared fallback path.
- **Presets מוכנים לשוק הסיני**: ה-presets המובנים מכסים כעת את `Qwen`, `Qwen Code`, `Doubao`, `Moonshot`, `GLM`, `Z AI`, `MiniMax`, `Huawei Cloud MaaS`, `Baidu Qianfan`ו-`SiliconFlow`, בנוסף לספקים הגלובליים והמקומיים הקיימים.
- **עיבוד אצווה אמין**: לוגיקת עיבוד מקבילי משופרת עם **קריאות API מדורגות** עוזרת למנוע שגיאות rate-limit ולהבטיח ביצועים יציבים בעבודות אצווה גדולות. היישום החדש מבטיח שהמשימות מתחילות במרווחי זמן שונים ולא כולן יחד.
- **דיווח התקדמות מדויק**: תוקן באג שבו פס ההתקדמות היה עלול להיתקע, כך שה-UI משקף כעת תמיד את מצב הפעולה האמיתי.
- **עיבוד אצווה מקבילי קשיח יותר**: נפתרה בעיה שבה פעולות אצווה מקבילות נעצרו מוקדם מדי, כך שכעת כל הקבצים מעובדים באופן אמין ויעיל.
- **דיוק פס ההתקדמות**: תוקן באג שבו פס ההתקדמות עבור הפקודה "Create Wiki-Link & Generate Note" נתקע ב-95%, וכעת מוצג 100% בסיום.
- **ניפוי API מורחב**: "API Error Debugging Mode" לוכד כעת גופי תגובה מלאים מספקי LLM ומשירותי חיפוש (Tavily/DuckDuckGo), וגם מתעד ציר זמן של transport לכל ניסיון עם request URLs מנוקים, משך זמן, response headers, partial response bodies, parsed partial stream content ועקבות מחסנית לצורך פתרון תקלות טוב יותר ב-OpenAI-compatible, Anthropic, Google, Azure OpenAI ו-Ollama fallbacks.
- **פאנל Developer Mode**: ההגדרות כוללות כעת פאנל diagnostics ייעודי למפתחים בלבד, אשר נשאר מוסתר עד שהאפשרות "Developer mode" מופעלת. הוא תומך בבחירת diagnostic call paths ובהרצת stability probes חוזרים למצב שנבחר.
- **סרגל צד מעוצב מחדש**: הפעולות המובנות מקובצות כעת למקטעים ממוקדים יותר, עם תוויות ברורות יותר, סטטוס חי, התקדמות ניתנת לביטול ו-logs ניתנים להעתקה כדי להפחית עומס בסרגל הצד. ה-footer של progress/log נשאר גלוי גם כאשר כל המקטעים מורחבים, והמצב המוכן משתמש ב-standby progress track ברור יותר.
- **שיפור אינטראקציה וקריאות בסרגל הצד**: כפתורי הסרגל מספקים כעת משוב ברור יותר במעבר/לחיצה/פוקוס, והכפתורים הצבעוניים של CTA, כולל `One-Click Extract`ו-`Batch generate from titles`, משתמשים בניגודיות טקסט חזקה יותר לקריאות טובה יותר במגוון ערכות נושא.
- **מיפוי CTA לפעולות קובץ יחיד בלבד**: סגנון CTA צבעוני שמור כעת רק לפעולות על קובץ בודד. פעולות אצווה/ברמת תיקייה וזרימות עבודה מעורבות משתמשות בסגנון שאינו CTA כדי לצמצם לחיצות שגויות הנובעות מהערכת היקף פעולה לא נכונה.
- **זרימות עבודה מותאמות בלחיצה אחת**: הפכו כלי עזר מובנים בסרגל הצד לכפתורים מותאמים לשימוש חוזר, עם שמות בהגדרת המשתמש ושרשראות פעולות מורכבות. זרימת `One-Click Extract` ברירת מחדל כלולה מהקופסה.
- **wiki-linking אוטומטי**: מזהה מושגי ליבה ומוסיף `[[wiki-links]]` להערות המעובדות שלכם על בסיס פלט ה-LLM.
- **יצירת concept notes (אופציונלית וניתנת להתאמה)**: יוצרת אוטומטית הערות חדשות עבור מושגים שהתגלו בתיקייה מוגדרת ב-vault.
- **נתיבי פלט ניתנים להתאמה**: הגדירו נתיבים יחסיים נפרדים בתוך ה-vault לשמירת קבצים מעובדים ו-concept notes חדשים.
- **שמות קובצי פלט ניתנים להתאמה (Add Links)**: ניתן *לדרוס את הקובץ המקורי* או להשתמש ב-suffix / replacement string מותאם במקום `_processed.md` בעת עיבוד קבצים לקישורים.
- **שמירה על שלמות קישורים**: טיפול בסיסי בעדכון קישורים כאשר הערות משנות שם או נמחקות בתוך ה-vault.
- **חילוץ מושגים טהור**: חלצו מושגים וצרו concept notes תואמים בלי לשנות את המסמך המקורי. תכונה זו אידיאלית למילוי בסיס ידע ממסמכים קיימים מבלי לשנותם. היא כוללת אפשרויות מתכווננות ליצירת concept notes מינימליים ולהוספת backlinks.
- **תמיכה בקבצים גדולים**: קבצים גדולים מפוצלים אוטומטית לקטעים קטנים יותר על בסיס `Chunk word count` לפני שליחתם ל-LLM. לאחר מכן הקטעים המתורגמים מאוחדים מחדש למסמך יחיד.
- תומך בתרגום בין שפות מרובות.
- שפת היעד ניתנת להתאמה בהגדרות או ב-UI.
- פותח אוטומטית את הטקסט המתורגם בצד ימין של הטקסט המקורי לקריאה קלה.
- **תרגום אצווה**:
- תרגמו את כל הקבצים בתוך תיקייה שנבחרה.
- תומך בעיבוד מקבילי כאשר "Enable Batch Parallelism" מופעל.
- משתמש ב-custom prompts לתרגום אם הוגדרו.
- מוסיף אפשרות "Batch translate this folder" לתפריט ההקשר של סייר הקבצים.
- **השבתת תרגום אוטומטי**: כאשר אפשרות זו מופעלת, משימות שאינן `Translate` אינן כופות עוד פלט לשפה מסוימת, וכך נשמר הקשר השפה המקורית. משימת "Translate" המפורשת עדיין תבצע תרגום בהתאם להגדרה.
- בצעו חיפוש באינטרנט באמצעות Tavily (דורש API key) או DuckDuckGo (ניסיוני).
- **עמידות חיפוש משופרת**: חיפוש DuckDuckGo כולל כעת לוגיקת parsing משופרת (DOMParser עם Regex fallback) כדי להתמודד עם שינויי פריסה ולהבטיח תוצאות אמינות.
- סכמו את תוצאות החיפוש באמצעות ה-LLM שהוגדר.
- שפת הפלט של הסיכום ניתנת להתאמה בהגדרות.
- הוסיפו את הסיכומים להערה הנוכחית.
- מגבלת token ניתנת להגדרה לתוכן מחקרי שנשלח ל-LLM.
- **יצירת תוכן מכותרת**:
- השתמשו בכותרת ההערה כדי ליצור תוכן ראשוני דרך LLM, תוך החלפת התוכן הקיים.
- **מחקר אופציונלי**: הגדירו האם לבצע מחקר אינטרנט (באמצעות הספק הנבחר) כדי לספק הקשר ליצירה.
- **יצירת תוכן באצווה מכותרות**: יוצרת תוכן לכל ההערות בתוך תיקייה שנבחרה על בסיס הכותרות שלהן (תוך כיבוד הגדרת המחקר האופציונלית). קבצים שמעובדים בהצלחה מועברים ל-**תת-תיקיית "complete" ניתנת להגדרה** (למשל `[foldername]_complete` או שם מותאם) כדי למנוע עיבוד חוזר.
- **צימוד ל-Mermaid Auto-Fix**: כאשר תיקון Mermaid האוטומטי מופעל, זרימות עבודה שקשורות ל-Mermaid מתקנות אוטומטית קבצים שנוצרו או תיקיות פלט לאחר העיבוד. זה כולל את הזרימות Process, Generate from Title, Batch Generate from Titles, Research & Summarize, Summarise as Mermaid ו-Translate.
- **Check and Remove Duplicate Concept Notes**: מזהה הערות כפולות פוטנציאליות בתוך **Concept Note Folder** שהוגדר, על בסיס התאמות שמות מדויקות, ריבוי, נרמול והכלה של מילה בודדת ביחס להערות שמחוץ לתיקייה. ניתן להגדיר את היקף ההשוואה (**כל ה-vault**, **תיקיות מסוימות בלבד**, או **כל התיקיות פרט למוחרגות מסוימות**). מציג רשימה מפורטת עם סיבות וקבצים מתנגשים, ואז מבקש אישור לפני העברת הכפילויות שזוהו לאשפת המערכת. מציג התקדמות במהלך המחיקה.
- **Batch Mermaid Fix**: מחיל תיקוני תחביר של Mermaid ו-LaTeX על כל קבצי Markdown שבתיקייה שנבחרה על ידי המשתמש.
- **Workflow Ready**: ניתן להשתמש בו ככלי עזר עצמאי או כשלב בתוך כפתור זרימת עבודה מותאם בלחיצה אחת.
- **Error Reporting**: יוצר דוח `mermaid_error_{foldername}.md` המפרט קבצים שעדיין מכילים שגיאות Mermaid פוטנציאליות לאחר העיבוד.
- **Smart Detection**: כעת בודק באופן חכם קבצים לשגיאות תחביר באמצעות `mermaid.parse` לפני ניסיון תיקון, וכך חוסך זמן עיבוד ונמנע מעריכות מיותרות.
- **Safe Processing**: מבטיח שתיקוני תחביר יוחלו רק על בלוקי קוד של Mermaid, ובכך מונע שינוי מקרי של טבלאות Markdown או תוכן אחר. כולל אמצעי הגנה חזקים להגנה על תחביר טבלאות (למשל `| :--- |`) מפני תיקוני debug אגרסיביים.
- **Deep Debug Mode**: אם שגיאות נשארות לאחר התיקון הראשוני, מופעל מצב deep debug מתקדם. מצב זה מטפל במקרי קצה מורכבים, כולל:
- **Comment Integration**: ממזג אוטומטית הערות סופיות (המתחילות ב-`%`) אל תוך תווית הקשת (למשל `A -- Label --> B; % Comment` הופך ל-`A -- "Label(Comment)" --> B;`).
- **Malformed Arrows**: מתקן חיצים שנבלעו בתוך מרכאות (למשל `A -- "Label -->" B` הופך ל-`A -- "Label" --> B`).
- **Robust Label & Note Handling**: טיפול משופר בתוויות המכילות תווים מיוחדים (כמו `/`) ותמיכה טובה יותר בתחביר note מותאם (`note for ...`), כדי להבטיח שארטיפקטים כמו סוגריים מיותרים יוסרו באופן נקי.
- **Advanced Fix Mode**: כולל תיקונים חזקים לתוויות צומת ללא מרכאות המכילות רווחים, תווים מיוחדים או סוגריים מקוננים (למשל `Node[Label [Text]]` -> `Node["Label [Text]"]`), להבטחת תאימות עם דיאגרמות מורכבות כמו מסלולי Stellar Evolution. בנוסף מתקן תוויות קשת פגומות (למשל `--["Label["-->` ל-`-- "Label" -->`). כמו כן ממיר הערות inline (`Consensus --> Adaptive; # Some advanced consensus` ל-`Consensus -- "Some advanced consensus" --> Adaptive`) ומתקן מרכאות לא סגורות בסוף שורות (`;"` בסוף מוחלף ב-`"]`).
- **Note Conversion**: ממיר אוטומטית `note right/left of` והערות `note :` עצמאיות להגדרות סטנדרטיות של צמתי Mermaid וקשרים (למשל `note right of A: text` הופך ל-`NoteA["Note: text"]` המקושר ל-`A`), מה שמונע שגיאות תחביר ומשפר את הפריסה. תומך כעת הן בקשרי חץ (`-->`) והן בקשרים מלאים (`---`).
- **Extended Note Support**: ממיר אוטומטית `note for Node "Content"`ו-`note of Node "Content"` לצמתי note מקושרים סטנדרטיים (למשל `NoteNode[" Content"]` המחובר ל-`Node`), כדי להבטיח תאימות לתחביר מורחב של המשתמש.
- **Enhanced Note Correction**: משנה אוטומטית שמות של notes עם מספור רציף (למשל `Note1`, `Note2`) כדי למנוע בעיות aliasing כאשר קיימות מספר הערות. - **Parallelogram/Shape Fix**: מתקן צורות צומת פגומות כמו `[/["Label["/]` ל-`["Label"]` הסטנדרטי, כדי להבטיח תאימות עם התוכן שנוצר.
- **Standardize Pipe Labels**: מתקן ומתקנן אוטומטית תוויות קשת המכילות pipe, ומוודא שהן מצוטטות נכון (למשל `-->|Text|` הופך ל-`-->|"Text"|` ו-`-->|Math|^2|` ל-`-->|"Math|^2"|`).
- **Misplaced Pipe Fix**: מתקן תוויות קשת שמופיעות בטעות לפני החץ (למשל `>|"Label"| A --> B` הופך ל-`A -->|"Label"| B`).
- **Merge Double Labels**: מזהה וממזג תוויות כפולות מורכבות על אותה קשת (למשל `A -- Label1 -- Label2 --> B` או `A -- Label1 -- Label2 --- B`) לתווית יחידה ונקייה עם שבירות שורה (`A -- "Label1<br>Label2" --> B`).
- **Unquoted Label Fix**: מצטט אוטומטית תוויות צומת המכילות תווים בעייתיים פוטנציאליים (למשל מרכאות, סימני שוויון, אופרטורים מתמטיים) אך חסרות מרכאות חיצוניות (למשל `Plot[Plot "A"]` הופך ל-`Plot["Plot "A""]`), כדי למנוע שגיאות רינדור.
- **Intermediate Node Fix**: מפצל קשתות המכילות הגדרת צומת ביניים לשתי קשתות נפרדות (למשל `A -- B[...] --> C` הופך ל-`A --> B[...]` ו-`B[...] --> C`), כדי להבטיח תחביר Mermaid תקין.
- **Concatenated Label Fix**: מתקן באופן קשיח הגדרות צומת שבהן ה-ID מוצמד לתווית (למשל `SubdivideSubdivide...` הופך ל-`Subdivide["Subdivide..."]`), גם כאשר מופיעות לפניו pipe labels או כשהכפילות אינה מדויקת, באמצעות ולידציה מול node IDs מוכרים.
- **Extract Specific Original Text**: - הגדירו רשימת שאלות בהגדרות.
1. פתחו ב-Obsidian את **Settings** -> **Community plugins**.
2. ודאו כי "Restricted mode" **כבוי**.
3. לחצו על **Browse** בתוספי הקהילה וחפשו "Notemd".
4. לחצו על **Install**.
5. לאחר ההתקנה לחצו על **Enable**.
### התקנה ידנית
1. הורידו את נכסי הגרסה האחרונים מ-[GitHub Releases page](https://github.com/Jacobinwwey/obsidian-NotEMD/releases). כל גרסה כוללת גם את `README.md` לעיון, אך להתקנה ידנית דרושים רק `main.js`, `styles.css`ו-`manifest.json`.
2. נווטו אל תיקיית ההגדרות של vault ה-Obsidian שלכם: `<YourVault>/.obsidian/plugins/`.
3. צרו תיקייה חדשה בשם `notemd`.
4. העתיקו את `main.js`, `styles.css`ו-`manifest.json` אל תיקיית `notemd`.
5. הפעילו מחדש את Obsidian.
6. עברו אל **Settings** -> **Community plugins** והפעילו את "Notemd".
***API Key**: נדרש עבור רוב ספקי הענן (למשל OpenAI, Anthropic, DeepSeek, Qwen, Qwen Code, Doubao, Moonshot, GLM, Z AI, MiniMax, Huawei Cloud MaaS, Baidu Qianfan, SiliconFlow, Google, Mistral, Azure OpenAI, OpenRouter, xAI, Groq, Together, Fireworks, Requesty). אינו נדרש עבור Ollama. אופציונלי עבור LM Studio ועבור preset כללי `OpenAI Compatible` כאשר ה-endpoint שלכם מאפשר גישה אנונימית או placeholder access.
***Base URL / Endpoint**: ה-API endpoint של השירות. ערכי ברירת מחדל מסופקים, אך ייתכן שתצטרכו לשנותם עבור מודלים מקומיים (LMStudio, Ollama), gateways (OpenRouter, Requesty, OpenAI Compatible), או Azure deployments מסוימים. **נדרש עבור Azure OpenAI.**
***Model**: שם/מזהה המודל הספציפי שבו ייעשה שימוש (למשל `gpt-4o`, `claude-3-5-sonnet-20240620`, `google/gemini-flash-1.5`, `grok-4`, `moonshotai/kimi-k2-instruct-0905`, `accounts/fireworks/models/kimi-k2p5`, `anthropic/claude-3-7-sonnet-latest`). ודאו שהמודל זמין אצל הספק / endpoint.
***Temperature**: שולט באקראיות הפלט של ה-LLM (0 = דטרמיניסטי, 1 = יצירתיות מרבית). ערכים נמוכים יותר (למשל 0.2-0.5) מתאימים בדרך כלל למשימות מובנות.
***API Version (Azure Only)**: נדרש עבור Azure OpenAI deployments (למשל `2024-02-15-preview`).
3.**בדיקת חיבור**: השתמשו בכפתור "בדיקת חיבור" עבור הספק הפעיל כדי לאמת את ההגדרות. ספקי OpenAI-compatible משתמשים כעת בבדיקות מודעות-ספק: endpoints כגון `Qwen`, `Qwen Code`, `Doubao`, `Moonshot`, `GLM`, `Z AI`, `MiniMax`, `Huawei Cloud MaaS`, `Baidu Qianfan`, `SiliconFlow`, `Groq`, `Together`, `Fireworks`, `LMStudio`ו-`OpenAI Compatible` בודקים `chat/completions` ישירות, בעוד ספקים בעלי `/models` אמין עדיין יכולים להתחיל ברשימת מודלים. אם הבדיקה הראשונה נכשלת עקב ניתוק רשת זמני כגון `ERR_CONNECTION_CLOSED`, Notemd עובר אוטומטית לרצף ה-retry היציב במקום להיכשל מיד.
4.**ניהול תצורות ספקים**: השתמשו בכפתורי "Export Providers" ו-"Import Providers" כדי לשמור/לטעון את הגדרות הספקים שלכם אל/מ־`notemd-providers.json` בתוך תיקיית התצורה של התוסף. זה מאפשר גיבוי ושיתוף קלים.
5.**כיסוי תצורות מוכנות**: בנוסף לספקים המקוריים, Notemd כולל כעת presets עבור `Qwen`, `Qwen Code`, `Doubao`, `Moonshot`, `GLM`, `Z AI`, `MiniMax`, `Huawei Cloud MaaS`, `Baidu Qianfan`, `SiliconFlow`, `xAI`, `Groq`, `Together`, `Fireworks`, `Requesty`, וכן יעד כללי `OpenAI Compatible` עבור LiteLLM, vLLM, Perplexity, Vercel AI Gateway או proxies מותאמים.
***מושבת (ברירת מחדל)**: משתמש בספק "הספק הפעיל" יחיד לכל המשימות.
***מופעל**: מאפשר לבחור ספק שונה *וגם* להחליף אופציונלית את שם המודל עבור כל משימה ("Add Links", "Research & Summarize", "Generate from Title", "Translate", "Extract Concepts"). אם שדה ה-model override נשאר ריק, ייעשה שימוש במודל ברירת המחדל של הספק שנבחר עבור המשימה.
-**בחירת שפות שונות למשימות שונות**:
***מושבת (ברירת מחדל)**: משתמש בשפת פלט יחידה לכל המשימות.
***מופעל**: מאפשר לבחור שפה שונה לכל משימה ("Add Links", "Research & Summarize", "Generate from Title", "Summarise as Mermaid diagram", "Extract Concepts").
-**שפת הממשק** שולטת רק בטקסט הממשק של התוסף (תוויות הגדרות, כפתורי סרגל צד, הודעות ודיאלוגים). מצב ברירת המחדל `auto` עוקב אחר שפת ה-UI הנוכחית של Obsidian.
- וריאנטים אזוריים או של מערכת כתב ממופים כעת לקטלוג שפורסם הקרוב ביותר במקום ליפול מיד לאנגלית. לדוגמה, `fr-CA` משתמש בצרפתית, `es-419` משתמש בספרדית, `pt-PT` משתמש בפורטוגזית, `zh-Hans` משתמש בסינית מפושטת ו-`zh-Hant-HK` משתמש בסינית מסורתית.
***Connection Test Fallback**: גם כאשר קריאות רגילות אינן פועלות עדיין ב-stable mode, בדיקות החיבור של הספקים עוברות כעת לאותו רצף retry אחרי כשל רשת זמני ראשון.
***Runtime Transport Fallback (Environment-Aware)**: בקשות ארוכות שנופלות זמנית דרך `requestUrl` מנסות כעת תחילה את אותו ניסיון דרך fallback תואם-סביבה. Build-ים שולחניים משתמשים ב-Node `http/https`; סביבות שאינן שולחניות משתמשות ב-browser `fetch`. ניסיונות ה-fallback האלה משתמשים כעת ב-protocol-aware streaming parsing בכל נתיבי LLM המובנים, כולל OpenAI-compatible SSE, Azure OpenAI SSE, Anthropic Messages SSE, Google Gemini SSE ו-Ollama NDJSON output, כך שגם gateway איטיים יוכלו להחזיר body chunks מוקדם יותר. שאר direct OpenAI-style provider entrypoints ממחזרים את אותה shared fallback path.
***OpenAI-Compatible Stable Order**: ב-stable mode כל ניסיון OpenAI-compatible עוקב כעת אחרי `direct streaming -> direct non-stream -> requestUrl (with streamed fallback when needed)` לפני שהוא נספר כניסיון שנכשל. כך נמנעים כישלונות אגרסיביים מדי כאשר רק transport mode אחד אינו יציב.
-**Retry Interval (seconds)**: (גלוי רק כשהאפשרות מופעלת) משך ההמתנה בין ניסיונות חוזרים (1-300 שניות). ברירת מחדל: 5.
-**Maximum Retries**: (גלוי רק כשהאפשרות מופעלת) מספר ניסיונות החזרה המרבי (0-10). ברירת מחדל: 3.
-**Processed File Folder Path**: (גלוי רק כאשר האפשרות לעיל מופעלת) הזינו *נתיב יחסי* בתוך ה-vault שלכם (למשל `Processed Notes` או `Output/LLM`) שבו יישמרו הקבצים המעובדים. תיקיות ייווצרו אוטומטית אם אינן קיימות. **אין להשתמש בנתיבים מוחלטים (כמו C:\...) או בתווים לא חוקיים.**
-**Concept Note Folder Path**: (גלוי רק כאשר ההתאמה לעיל מופעלת) הזינו *נתיב יחסי* בתוך ה-vault שלכם (למשל `Concepts` או `Generated/Topics`) שבו יישמרו concept notes חדשים. תיקיות ייווצרו אם לא קיימות. **חובה למלא כאשר ההתאמה פעילה.****אין להשתמש בנתיבים מוחלטים או בתווים לא חוקיים.**
-**Concept Log Folder Path**: (גלוי רק כאשר "Customize Log File Save Path" מופעל) הזינו *נתיב יחסי* בתוך ה-vault (למשל `Logs/Notemd`) שבו יישמר קובץ היומן. **חובה למלא כאשר ההתאמה פעילה.**
-**Customize Log File Name**: (גלוי רק כאשר "Generate Concept Log File" מופעל)
-**Concept Log File Name**: (גלוי רק כאשר "Customize Log File Name" מופעל) הזינו את שם הקובץ הרצוי (למשל `ConceptCreation.log`). **חובה למלא כאשר ההתאמה פעילה.**
-**Batch Concurrency**: (גלוי רק כאשר parallelism מופעל) קובע את מספר הקבצים המרבי לעיבוד במקביל. מספר גבוה יותר עשוי להיות מהיר יותר, אך משתמש ביותר משאבים ועלול להיתקל ב-API rate limits. (ברירת מחדל: 1, טווח: 1-20)
-**Batch Size**: (גלוי רק כאשר parallelism מופעל) מספר הקבצים המאוגדים לאצווה אחת. (ברירת מחדל: 50, טווח: 10-200)
-**Delay Between Batches (ms)**: (גלוי רק כאשר parallelism מופעל) השהיה אופציונלית באלפיות שנייה בין עיבוד כל אצווה, שעשויה לעזור בניהול API rate limits. (ברירת מחדל: 1000ms)
-**API Call Interval (ms)**: השהיה מינימלית באלפיות שנייה *לפני ואחרי* כל קריאת LLM API בודדת. קריטי ל-API-ים בעלי קצב נמוך או למניעת שגיאות 429. קבעו 0 כדי לבטל השהיה מלאכותית. (ברירת מחדל: 500ms)
-**Chunk Word Count**: מספר מילים מרבי לכל chunk שנשלח ל-LLM. משפיע על מספר קריאות ה-API עבור קבצים גדולים. (ברירת מחדל: 3000)
-**Max Tokens**: מספר ה-token-ים המרבי שה-LLM אמור לייצר לכל response chunk. משפיע על עלות ועל רמת הפירוט. (ברירת מחדל: 4096)
<imgwidth="795"height="274"alt="Processing Parameters Language settings"src="https://github.com/user-attachments/assets/74e4af76-3333-48fc-bb86-0a3ee61825d1"/>
#### תרגום
-**Default Target Language**: בחרו את שפת היעד ברירת המחדל שאליה תרצו לתרגם את ההערות. ניתן לעקוף זאת ב-UI בעת הרצת פקודת התרגום. (ברירת מחדל: English)
***מופעל (ברירת מחדל)**: מריץ אוטומטית שלב תיקון תחביר Mermaid לאחר זרימות עבודה הקשורות ל-Mermaid, כמו Process, Generate from Title, Batch Generate from Titles, Research & Summarize, Summarise as Mermaid ו-Translate.
***מושבת**: משאיר את פלט ה-Mermaid שנוצר ללא שינוי, אלא אם כן מריצים ידנית `Batch Mermaid Fix` או מוסיפים אותו לזרימת עבודה מותאמת.
-**Output Language**: (חדש) בחרו את שפת הפלט הרצויה עבור משימות "Generate from Title" ו-"Batch Generate from Title".
***English (Default)**: ה-prompts מעובדים והפלט נוצר באנגלית.
***Other Languages**: ה-LLM מונחה לבצע את ה-reasoning באנגלית אך להחזיר את התיעוד הסופי בשפה שבחרתם (למשל Español, Français, 简体中文, 繁體中文, العربية, हिन्दी וכו').
-**Change Prompt Word**: (חדש)
***Change Prompt Word**: מאפשר לשנות את מילת ה-prompt עבור משימה מסוימת.
***Custom Prompt Word**: הזינו את מילת ה-prompt המותאמת שלכם למשימה.
-**Use Custom Output Folder for 'Generate from Title'**:
***מושבת (ברירת מחדל)**: קבצים שנוצרו בהצלחה מועברים לתת-תיקייה בשם `[OriginalFolderName]_complete` יחסית לתיקיית האב של התיקייה המקורית (או `Vault_complete` אם התיקייה המקורית הייתה השורש).
***מופעל**: מאפשר להגדיר שם מותאם לתת-התיקייה שאליה יועברו הקבצים המושלמים.
-**Custom Output Folder Name**: (גלוי רק כאשר האפשרות לעיל מופעלת) הזינו את השם הרצוי לתת-התיקייה (למשל `Generated Content`, `_complete`). תווים לא חוקיים אינם מורשים. אם נשאר ריק ברירת המחדל היא `_complete`. התיקייה נוצרת יחסית לתיקיית האב של התיקייה המקורית.
#### כפתורי זרימת עבודה בלחיצה אחת
-**Visual Workflow Builder**: צרו כפתורי workflow מותאמים מפעולות מובנות בלי לכתוב DSL ידנית.
-**Custom Workflow Buttons DSL**: משתמשים מתקדמים עדיין יכולים לערוך ישירות את טקסט הגדרת ה-workflow. DSL לא חוקי מחזיר בבטחה ל-workflow ברירת המחדל ומציג אזהרה ב-UI של sidebar/settings.
-**Workflow Error Strategy**:
***Stop on Error (Default)**: עוצר מיידית את ה-workflow כאשר שלב כלשהו נכשל.
***Continue on Error**: ממשיך להריץ שלבים מאוחרים יותר ומדווח בסוף על מספר הפעולות שנכשלו.
-**Default Workflow Included**: `One-Click Extract` משרשר את `Process File (Add Links)`, `Batch Generate from Titles`ו-`Batch Mermaid Fix`.
-**Use Custom Prompt for [Task Name]**: (גלוי רק כאשר האפשרות לעיל מופעלת)
* עבור כל משימה נתמכת ("Add Links", "Generate from Title", "Research & Summarize", "Extract Concepts"), תוכלו להפעיל או לכבות את ה-prompt המותאם שלכם בנפרד.
-**Custom Prompt Text Area**: (גלוי רק כאשר prompt מותאם של משימה מופעל)
***Default Prompt Display**: לעיונכם, התוסף מציג את ה-prompt ברירת המחדל שבו היה משתמש למשימה. תוכלו להשתמש בכפתור **"Copy Default Prompt"** כדי להעתיק אותו כנקודת מוצא ל-prompt המותאם שלכם.
***Custom Prompt Input**: כאן אתם כותבים את ההוראות שלכם ל-LLM.
***Placeholders**: ניתן (ומומלץ) להשתמש ב-placeholders מיוחדים בתוך ה-prompt, שהתוסף יחליף בתוכן אמיתי לפני שליחת הבקשה ל-LLM. עיינו ב-prompt ברירת המחדל כדי לראות אילו placeholders זמינים לכל משימה. placeholders נפוצים כוללים:
***Entire Vault (Default)**: משווה concept notes לכל שאר ההערות ב-vault (למעט Concept Note Folder עצמו).
***Include Specific Folders Only**: משווה concept notes רק להערות שבתיקיות המפורטות למטה.
***Exclude Specific Folders**: משווה concept notes לכל ההערות *מלבד* אלו שבתיקיות המפורטות למטה (וגם ללא Concept Note Folder).
***Concept Folder Only**: משווה concept notes רק ל-*הערות אחרות בתוך Concept Note Folder*. זה עוזר למצוא כפילויות בתוך המושגים שנוצרו.
-**Include/Exclude Folders**: (גלוי רק אם המצב הוא `Include` או `Exclude`) הזינו את *הנתיבים היחסיים* של התיקיות שברצונכם לכלול או להחריג, **נתיב אחד בכל שורה**. הנתיבים רגישים לאותיות גדולות/קטנות ומשתמשים ב-`/` כמפריד (למשל `Reference Material/Papers` או `Daily Notes`). תיקיות אלו אינן יכולות להיות זהות ל-Concept Note Folder או בתוכו.
#### ספק מחקר אינטרנט
-**Search Provider**: בחרו בין `Tavily` (דורש API key, מומלץ) לבין `DuckDuckGo` (ניסיוני, ולעיתים קרובות חסום על ידי מנוע החיפוש לבקשות אוטומטיות). משמש ל-"Research & Summarize Topic" ואופציונלית ל-"Generate from Title".
-**Tavily API Key**: (גלוי רק אם Tavily נבחר) הזינו את ה-API key שלכם מ-[tavily.com](https://tavily.com/).
-**Tavily Max Results**: (גלוי רק אם Tavily נבחר) מספר התוצאות המרבי ש-Tavily יחזיר (1-20). ברירת מחדל: 5.
-**Tavily Search Depth**: (גלוי רק אם Tavily נבחר) בחרו `basic` (ברירת מחדל) או `advanced`. הערה: `advanced` מספק תוצאות טובות יותר אך צורך 2 API credits לכל חיפוש במקום 1.
-**DuckDuckGo Max Results**: (גלוי רק אם DuckDuckGo נבחר) מספר תוצאות החיפוש המרבי לעיבוד (1-10). ברירת מחדל: 5.
-**DuckDuckGo Content Fetch Timeout**: (גלוי רק אם DuckDuckGo נבחר) מספר השניות המרבי להמתנה בעת ניסיון להביא תוכן מכל DuckDuckGo result URL. ברירת מחדל: 15.
-**Max Research Content Tokens**: מספר token-ים מרבי משוער של תוצאות המחקר ברשת (snippets/fetched content) שיוכנסו ל-prompt הסיכום. עוזר לנהל את גודל חלון ההקשר והעלות. (ברירת מחדל: 3000)
<imgwidth="810"height="278"alt="Web research provider"src="https://github.com/user-attachments/assets/be0280eb-bb4e-4db0-bf69-91da3f0fd3c0"/>
-**Learning Domain**: (גלוי רק כאשר האפשרות לעיל מופעלת) הזינו את התחום/תחומים הספציפיים שלכם, לדוגמה 'Materials Science', 'Polymer Physics', 'Machine Learning'. כך תתווסף שורה "Relevant Fields: [...]" בתחילת ה-prompts, מה שיעזור ל-LLM ליצור קישורים ותוכן מדויקים ורלוונטיים יותר לתחום שלכם.
- זרימת העבודה **One-Click Extract** מפעילה את `Process File (Add Links)` -> `Batch Generate from Titles` -> `Batch Mermaid Fix`.
- התקדמות ה-workflow, logs לכל שלב וכשלים מוצגים בסרגל הצד, עם footer מוצמד שמגן על פס ההתקדמות ואזור ה-logs מפני דחיסה כאשר כל המקטעים מורחבים.
- כרטיס ההתקדמות שומר את טקסט הסטטוס, מחוון האחוזים והזמן שנותר קריאים במבט אחד, וניתן להגדיר מחדש את אותן זרימות עבודה מותאמות גם מתוך ההגדרות.
### עיבוד מקורי (הוספת wiki-links)
זו הפונקציונליות המרכזית שממוקדת בזיהוי מושגים ובהוספת `[[wiki-links]]`.
**חשוב:** תהליך זה עובד רק על קבצי `.md` או `.txt`. ניתן להמיר קובצי PDF ל-MD בחינם באמצעות [Mineru](https://github.com/opendatalab/MinerU) לפני עיבוד נוסף.
1.**שימוש בסרגל הצד**:
* פתחו את Notemd Sidebar (אייקון המטה או לוח הפקודות).
* פתחו קובץ `.md` או `.txt`.
* לחצו על **"Process File (Add Links)"**.
* כדי לעבד תיקייה: לחצו על **"Process Folder (Add Links)"**, בחרו את התיקייה ולחצו על "Process".
* ההתקדמות מוצגת בסרגל הצד. ניתן לבטל את המשימה דרך כפתור "Cancel Processing" שבסרגל הצד.
**הערה לעיבוד תיקיות:* הקבצים מעובדים ברקע מבלי להיפתח בעורך.
* הפעילו את `Notemd: Batch Translate Folder` מלוח הפקודות ובחרו תיקייה, או לחצו לחיצה ימנית על תיקייה ב-file explorer ובחרו "Batch translate this folder".
* התוסף יתרגם את כל קובצי Markdown שבתיקייה שנבחרה.
* הקבצים המתורגמים נשמרים ב-translation path המוגדר אך אינם נפתחים אוטומטית.
* הפעילו את `Notemd: Generate Content from Title` (דרך לוח הפקודות או כפתור sidebar).
* התוסף משתמש ב-**LLM Provider** המתאים (על בסיס Multi-Model settings) כדי ליצור תוכן על סמך כותרת ההערה ולהחליף את התוכן הקיים.
* אם ההגדרה **"Enable Research in 'Generate from Title'"** מופעלת, הוא יבצע תחילה מחקר באינטרנט (באמצעות **Web Research Provider** שהוגדר) ויכלול את ההקשר הזה ב-prompt הנשלח ל-LLM.
* ניתן לבטל משימה זו דרך כפתור sidebar או כפתור cancel במודל.
5.**Batch Generate Content from Titles**:
* הפעילו את `Notemd: Batch Generate Content from Titles` (דרך לוח הפקודות או כפתור sidebar).
* בחרו את התיקייה המכילה את ההערות שברצונכם לעבד.
* התוסף יעבור על כל קובץ `.md` בתיקייה (למעט קובצי `_processed.md` וקבצים שבתיקיית "complete" הייעודית), ייצור תוכן על בסיס כותרת ההערה ויחליף את התוכן הקיים. הקבצים יעובדו ברקע ללא פתיחה בעורך.
* קבצים שמעובדים בהצלחה מועברים לתיקיית "complete" שהוגדרה.
* פקודה זו מכבדת את ההגדרה **"Enable Research in 'Generate from Title'"** עבור כל הערה שעובדה.
* ניתן לבטל משימה זו דרך כפתור sidebar או כפתור cancel במודל.
* התקדמות ותוצאות (מספר קבצים ששונו, שגיאות) מוצגות ב-log של sidebar / modal.
* הפעילו `Notemd: Check and Remove Duplicate Concept Notes` (דרך לוח הפקודות או כפתור sidebar).
* התוסף סורק את תיקיית ה-concept notes ומשווה שמות קבצים מול הערות שמחוץ לתיקייה באמצעות כללים שונים (התאמה מדויקת, רבים, נרמול, הכלה).
* אם נמצאות כפילויות אפשריות, מופיע חלון modal המציג את הקבצים, את הסיבה לסימון ואת הקבצים המתנגשים.
* עברו על הרשימה בזהירות. לחצו על **"Delete Files"** כדי להעביר את הקבצים לאשפת המערכת, או על **"Cancel"** כדי לא לבצע פעולה.
* ההתקדמות והתוצאות מוצגות ב-log של sidebar / modal.
7.**Extract Concepts (Pure Mode)**:
* תכונה זו מאפשרת לחלץ מושגים ממסמך וליצור concept notes תואמים *בלי* לשנות את הקובץ המקורי. היא אידיאלית לאכלוס מהיר של בסיס הידע שלכם מתוך אוסף מסמכים.
***קובץ יחיד**: פתחו קובץ והפעילו את `Notemd: Extract concepts (create concept notes only)` מלוח הפקודות או לחצו על הכפתור **"Extract concepts (current file)"** ב-sidebar.
***תיקייה**: הפעילו את `Notemd: Batch extract concepts from folder` מלוח הפקודות או לחצו על **"Extract concepts (folder)"** ב-sidebar, ואז בחרו תיקייה כדי לעבד את כל ההערות שבה.
* התוסף יקרא את הקבצים, יזהה מושגים וייצור עבורם הערות חדשות בתוך **Concept Note Folder** שהוגדר, תוך השארת הקבצים המקוריים ללא שינוי.
8.**Create Wiki-Link & Generate Note from Selection**:
* פקודה חזקה זו מפשטת את תהליך היצירה והמילוי של concept notes חדשים.
* בחרו מילה או ביטוי בעורך.
* הפעילו את `Notemd: Create Wiki-Link & Generate Note from Selection` (מומלץ להקצות לה קיצור דרך, למשל `Cmd+Shift+W`).
* התוסף:
1. יחליף את הטקסט שנבחר ב-`[[wiki-link]]`.
2. יבדוק אם כבר קיימת הערה עם כותרת זו ב-**Concept Note Folder**.
3. אם כן, הוא יוסיף backlink להערה הנוכחית.
4. אם לא, הוא ייצור הערה חדשה וריקה.
5. לאחר מכן הוא יריץ אוטומטית את הפקודה **"Generate Content from Title"** על ההערה החדשה או הקיימת, וימלא אותה בתוכן שנוצר על ידי AI.
9.**Extract Concepts and Generate Titles**:
* פקודה זו משלבת שתי תכונות חזקות ל-workflow יעיל יותר.
* הפעילו את `Notemd: Extract Concepts and Generate Titles` מלוח הפקודות (מומלץ להקצות גם לה קיצור דרך).
* התוסף:
1. יריץ תחילה את המשימה **"Extract concepts (current file)"** על הקובץ הפעיל.
2. לאחר מכן יריץ אוטומטית את המשימה **"Batch generate from titles"** על התיקייה שהגדרתם כ-**Concept note folder path**.
* כך תוכלו תחילה לאכלס את בסיס הידע במושגים חדשים ממסמך מקור ואז מיד להעשיר את ה-concept notes החדשים בתוכן שנוצר על ידי AI.
10.**Extract Specific Original Text**:
* הגדירו את השאלות שלכם תחת "Extract Specific Original Text" בהגדרות.
* השתמשו בכפתור "Extract Specific Original Text" ב-sidebar כדי לעבד את הקובץ הפעיל.
***Merged Mode**: מאפשר עיבוד מהיר יותר על ידי שליחת כל השאלות ב-prompt יחיד.
***Translation**: מתרגם אופציונלית את הטקסט שחולץ לשפה שהוגדרה.
| Requesty | Gateway | כן | Multi-provider router מאחורי API key אחד |
| OpenAI Compatible | Gateway | אופציונלי | Generic preset עבור LiteLLM, vLLM, Perplexity, Vercel AI Gateway וכו' |
| LMStudio | מקומי | אופציונלי (`EMPTY`) | מריץ מודלים מקומית דרך LM Studio server |
| Ollama | מקומי | לא | מריץ מודלים מקומית דרך Ollama server |
*הערה: עבור ספקים מקומיים (LMStudio, Ollama), ודאו שאפליקציית השרת המתאימה פועלת ונגישה דרך Base URL שהוגדר.*
*הערה: עבור OpenRouter ו-Requesty, השתמשו במזהה המודל המלא / עם prefix של הספק כפי שמוצג ב-gateway (למשל `google/gemini-flash-1.5` או `anthropic/claude-3-7-sonnet-latest`).*
*הערה: `Doubao` בדרך כלל מצפה ל-Ark endpoint / deployment ID בשדה model ולא לשם משפחת מודל גולמי. מסך ההגדרות מזהיר כעת כאשר ערך placeholder עדיין קיים וחוסם connection tests עד שמחליפים אותו ב-endpoint ID אמיתי.*
*הערה: `Z AI` מכוון לקו הבינלאומי `api.z.ai`, בעוד `GLM` שומר על BigModel endpoint של סין היבשתית. בחרו את ה-preset המתאים לאזור החשבון שלכם.*
*הערה: presets הממוקדים לסין משתמשים ב-chat-first connection checks כך שהבדיקה מאמתת את המודל / deployment שהוגדרו בפועל, ולא רק את זמינות ה-API key.*
*הערה: `OpenAI Compatible` מיועד ל-gateway ו-proxy מותאמים. הגדירו את Base URL, מדיניות ה-API key ו-model ID בהתאם לתיעוד של הספק שלכם.*
## שימוש ברשת וטיפול בנתונים
Notemd פועל מקומית בתוך Obsidian, אך חלק מהתכונות שולחות בקשות יוצאות.
### קריאות לספקי LLM (ניתנות להגדרה)
- טריגר: עיבוד קבצים, יצירה, תרגום, סיכום מחקר, סיכום Mermaid ופעולות חיבור / diagnostics.
- Endpoint: ה-provider base URL(s) שהגדרתם בהגדרות Notemd.
- נתונים שנשלחים: טקסט ה-prompt ותוכן המשימה הנדרשים לעיבוד.
- הערת טיפול בנתונים: מפתחות API מוגדרים מקומית בהגדרות התוסף ומשמשים לחתימה על בקשות מהמכשיר שלכם.
### קריאות למחקר אינטרנט (אופציונלי)
- טריגר: כאשר מחקר אינטרנט מופעל ונבחר ספק חיפוש.
- Endpoint: Tavily API או DuckDuckGo endpoints.
- נתונים שנשלחים: query המחקר שלכם ו-request metadata נדרשים.
-**התוסף לא נטען**: ודאו שהקבצים `manifest.json`, `main.js`, `styles.css` נמצאים בתיקייה הנכונה (`<Vault>/.obsidian/plugins/notemd/`) והפעילו מחדש את Obsidian. בדקו את Developer Console (`Ctrl+Shift+I` או `Cmd+Option+I`) לשגיאות בעת האתחול.
-**כישלונות עיבוד / שגיאות API**:
1.**בדקו את פורמט הקובץ**: ודאו שהקובץ שברצונכם לעבד או לבדוק הוא עם סיומת `.md` או `.txt`. Notemd תומך כרגע רק בפורמטים טקסטואליים אלה.
2. השתמשו בפקודה / בכפתור "Test LLM Connection" כדי לאמת את הגדרות הספק הפעיל.
3. בדקו מחדש את API Key, Base URL, Model Name ו-API Version (עבור Azure). ודאו שמפתח ה-API נכון ושיש לו מספיק credits / permissions.
4. ודאו שה-LLM server המקומי שלכם (LMStudio, Ollama) פועל וש-Base URL נכון (למשל `http://localhost:1234/v1` עבור LMStudio).
5. בדקו את חיבור האינטרנט שלכם עבור ספקי ענן.
6.**לשגיאות עיבוד של קובץ יחיד:** עברו על Developer Console לקבלת הודעות שגיאה מפורטות. העתיקו אותן דרך הכפתור ב-error modal אם צריך.
7.**לשגיאות עיבוד באצווה:** בדקו את הקובץ `error_processing_filename.log` בשורש ה-vault לקבלת הודעות שגיאה מפורטות לכל קובץ שנכשל. Developer Console או error modal עשויים להציג רק סיכום או שגיאת אצווה כללית.
8.**יומני שגיאה אוטומטיים:** אם תהליך נכשל, התוסף שומר אוטומטית קובץ log מפורט בשם `Notemd_Error_Log_[Timestamp].txt` בספריית השורש של ה-vault. הקובץ מכיל את הודעת השגיאה, עקבות המחסנית ו-session logs. אם אתם נתקלים בבעיות עקביות, בדקו קובץ זה. הפעלת "API Error Debugging Mode" בהגדרות תמלא log זה בנתוני API response מפורטים עוד יותר.
9.**אבחון בקשות ארוכות ל-endpoint אמיתי (מפתחים)**:
- נתיב בתוך התוסף (מומלץ ראשון): השתמשו ב-**Settings -> Notemd -> Developer provider diagnostic (long request)** כדי להריץ runtime probe על הספק הפעיל וליצור `Notemd_Provider_Diagnostic_*.txt` בשורש ה-vault.
- נתיב CLI (מחוץ ל-Obsidian runtime): להשוואה משתחזרת ברמת endpoint בין buffered ל-streaming behavior, השתמשו ב:
```bash
npm run diagnose:llm -- \
--transport openai-compatible \
--provider-name OpenRouter \
--base-url https://openrouter.ai/api/v1 \
--api-key "$OPENROUTER_API_KEY" \
--model anthropic/claude-3.7-sonnet \
--prompt-file ./tmp/prompt.txt \
--content-file ./tmp/content.txt \
--mode compare \
--timeout-ms 360000 \
--output ./tmp/openrouter-diagnostic.txt
```
הדוח שנוצר כולל תזמונים לכל ניסיון (`First Byte`, `Duration`), request metadata מנוקים, response headers, raw / partial body fragments, parsed stream fragments ונקודות כשל של transport layer.
***CORS Errors (Ollama on Windows)**: אם אתם נתקלים בשגיאות CORS (Cross-Origin Resource Sharing) בעת שימוש ב-Ollama ב-Windows, ייתכן שתצטרכו להגדיר את המשתנה `OLLAMA_ORIGINS`. ניתן לעשות זאת באמצעות הרצת `set OLLAMA_ORIGINS=*` ב-command prompt לפני הפעלת Ollama. כך תותרנה בקשות מכל מקור.
***Enable CORS in LM Studio**: ב-LM Studio ניתן להפעיל CORS ישירות בהגדרות השרת, וייתכן שזה נחוץ אם Obsidian רץ בדפדפן או תחת מדיניות origin מחמירה.
-**שגיאות יצירת תיקיות ("File name cannot contain...")**:
* בדרך כלל פירוש הדבר שהנתיב שסופק בהגדרות (**Processed File Folder Path** או **Concept Note Folder Path**) אינו תקין *עבור Obsidian*.
***ודאו שאתם משתמשים בנתיבים יחסיים** (למשל `Processed`, `Notes/Concepts`) ולא ב-**נתיבים מוחלטים** (למשל `C:\Users\...`, `/Users/...`)।
* בדקו תווים לא חוקיים: `* " \ / < > : | ? # ^ [ ]`. שימו לב שגם ב-Windows התו `\` אינו תקין עבור נתיבי Obsidian. השתמשו ב-`/` כמפריד נתיבים.
-**בעיות ביצועים**: עיבוד קבצים גדולים או רבים עשוי לקחת זמן. הפחיתו את ההגדרה "Chunk Word Count" כדי לאפשר קריאות API מהירות יותר (אך מרובות יותר). נסו ספק LLM או מודל אחר.
-**קישוריות בלתי צפויה**: איכות ה-linking תלויה מאוד ב-LLM וב-prompt. נסו מודלים שונים או הגדרות טמפרטורה שונות.
<imgalt="Star History Chart"src="https://api.star-history.com/chart?repos=Jacobinwwey/obsidian-NotEMD&type=date&legend=top-left&sealed_token=Y32J_ehSQhPEtMK06bJeXYXBkFZbjjUR6tkogZgP92_f34InJDA7n9xcMmttFtW0o52nbKnU24nByb7DCiBnOrP2MOwevXU-so8BYLISzUsdeSUQRIOYg_lFXml_9MakEXjFEQStXFh7fUnsSXyIEq55QSTYNcbDOGF0k66bWhT1IyrZLnG26lJ-Mvbg"/>
- ההיסטורייה של התרשימים נשמרת ברמת ה‑Vault, ממוינת לפי תאריך – החדשים ביותר קודם, ניתן לחפש בה ולעבור בין קבוצות של 20 רשומות. מחיקת רשומת היסטוריה אינה ממחקת את הקבצים שנוצרו.
- יצוא תמונת מקדימה של התרשים מאפשר שליטה ברמת הדיוק PPI של ה‑PNG וה‑PDF; ה‑SVG נשאר בבסיס וקטורי.
- משתמשי מחשב נייד יכולים לפתוח את סביבת ההרכבה המובנית CircuitikZ האופציונלית, כדי להשתמש שוב ב‑Tectonic/pdflatex של המערכת, לבחור מרכיב מותאם אישית, או להתקין באופן מפורש את סביבת הריצה Tectonic המנוהלת. יצוא של תמונות מקדימה, SVG, PNG ו‑PDF אינו דורש שימוש ב‑LaTeX.
- אפשרות בחירת קבצי בצורה מתקדמת מאפשרת שמירה של פרופילי בחירה והצגת תצוגות של חוקים.
- ניתן ליצור תיקיית יעד לבצורה אחרי אישור, ויש אפשרות לזכור את היצירה האוטומטית עבור תיקיות חסרות בעתיד.