הריצו את המוח השני שלכם ב-Khoj על base URL מותאם אישית של OpenAI.

Updated 2026-07-29

Khoj מתעד הגדרת OpenAI-proxy בשני משטחים: משתנה סביבה OPENAI_BASE_URL שמזרע מודלים בהרצה הראשונה, ורשומת AI Model API בפאנל הניהול עם שדה Api Base Url. כוונו כל אחד מהם אל https://api.apisrouter.com/v1 וצ'אט, agents, ואוטומציות רצים על כל מודל בקטלוג.

תשובה מהירה: משתנה סביבה בהרצה הראשונה, פאנל ניהול בכל עת.

קובץ ה-compose ל-self-hosting של Khoj נושא שורת OPENAI_BASE_URL עם הערה, מיועדת, במילותיו שלו, עבור ספקי OpenAI API תואמים אחרים. הגדירו אותה ל-https://api.apisrouter.com/v1 עם OPENAI_API_KEY מחזיק מפתח gateway לפני ההפעלה הראשונה, ואתחול Khoj עושה משהו מועיל באופן חריג: הוא שואל את רשימת המודלים של ה-endpoint ומזרע את טבלת מודלי הצ'אט שלו עם כל id שה-endpoint משרת, כך שהקטלוג מופיע בבורר המודלים של Khoj בלי הזנה ידנית. על שרת שכבר אותחל, השתמשו בפאנל הניהול במקום זאת. צרו רשומת AI Model API (שדות: Name, Api Key, Api Base Url) שמצביעה על ה-gateway, ואז צרו רשומות Chat Model שה-Name שלהן הוא ה-model id המדויק, עם Model Type מוגדר ל-Openai ומקושר לאותו AI Model API. שני המשטחים מתועדים במדריך ה-OpenAI-proxy של Khoj ב-docs.khoj.dev.

services:
  server:
    environment:
      - OPENAI_BASE_URL=https://api.apisrouter.com/v1
      - OPENAI_API_KEY=sk-YOUR-APISROUTER-KEY

מה Khoj עושה עם מודל הצ'אט שלה.

Khoj (khoj-ai ב-GitHub, כ-36K כוכבים) הוא מוח שני מבוסס AI הניתן ל-self-hosting: הוא מאנדקס את הפתקים והמסמכים שלכם (markdown, org-mode, PDFs, ועוד), ואז מאפשר לכם לצ'וטט עליהם, להריץ agents מותאמים אישית עם personas וכלים משלהם, לתזמן אוטומציות שיורות על cron, ולהשיק הרצות מחקר רב-שלביות. יש אפליקציה מאוחסנת, אבל השרת ה-self-hosted הוא המקום שבו endpoints מותאמים אישית חלים, וזו הפריסה שהעמוד הזה מתאר. כל אחד מהפיצ'רים האלה עובר דרך מודל הצ'אט שאתם בוחרים. צ'אט מסמכים דוחס מקטעי פתקים מאוחזרים ל-prompt, agents מוסיפים קריאות כלים והוראות persona, אוטומציות מריצות את אותו צינור ללא השגחה, ומצב מחקר משרשר קריאות מודל רבות לשאלה. Model Type Openai אומר ל-Khoj לדבר /v1/chat/completions אל ה-Api Base Url של רשומת ה-AI Model API המקושרת, מעביר את Name המודל כמחרוזת פשוטה, וזו הסיבה ש-id של Claude או DeepSeek עובד שם כל עוד ה-endpoint משרת אותו. Embeddings לחיפוש הם תת-מערכת שונה. Khoj מטמיע את המסמכים שלכם עם מודל sentence-transformers מקומי כברירת מחדל, כך שהאנדקסציה והחיפוש הסמנטי ממשיכים לעבוד ללא קשר למה שאתם עושים עם endpoint הצ'אט. ניתוב צ'אט דרך gateway מזיז רק את חשבון הנימוק.

הגדרה מלאה: רשומות פאנל ניהול צעד אחר צעד.

על שרת פועל, האינטגרציה כולה היא שלושה מסכי ניהול. ראשית, הוסיפו את ה-AI Model API: פתחו /server/admin/database/aimodelapi/add, תנו לו שם, הדביקו את מפתח ה-gateway ב-Api Key, והגדירו Api Base Url ל-https://api.apisrouter.com/v1. שנית, הוסיפו מודלי צ'אט: ב-/server/admin/database/chatmodel/add, הגדירו Name ל-id מדויק מהקטלוג (claude-sonnet-4-6, deepseek-v4-flash), הגדירו Model Type ל-Openai, קשרו את רשומת ה-Ai Model Api שיצרתם זה עתה, והגדירו Max prompt size לערך שמתאים לחלון ההקשר של המודל. התיעוד ממליץ להשאיר את Tokenizer ריק עבור מודלים מסוג OpenAI. חזרו לכל מודל שאתם רוצים בבורר. שלישית, בחרו את המודל: ב-/settings, בחרו את מודל הצ'אט החדש שלכם כברירת מחדל. agents יכולים לדרוס את המודל לכל agent, וכך מופע Khoj אחד מריץ id מהיר לאוטומציות יומיומיות ו-id מתקדם למחקר.

1) /server/admin/database/aimodelapi/add
   Name:         APIsRouter
   Api Key:      sk-YOUR-APISROUTER-KEY
   Api Base Url: https://api.apisrouter.com/v1

2) /server/admin/database/chatmodel/add
   Name:         claude-sonnet-4-6   (exact catalog id)
   Model Type:   Openai
   Ai Model Api: APIsRouter
   Max prompt size: 100000

3) /settings -> select the new chat model

בחירת מודלים למוח שני.

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

  • צ'אט מסמכים עתיר-קלט: מקטעי פתקים מאוחזרים מגמדים את התשובה. מחיר לטוקן-קלט מניע את העלות לשאלה, מה שמעדיף את claude-haiku-4-5-20251001, deepseek-v4-flash, או gemini-3.5-flash לזיכרון יומיומי.
  • מצב מחקר מכפיל קריאות. שאלת מחקר אחת יכולה לשרשר תורות מודל רבות, אז ה-id שאתם מקצים שם מזיז את החשבון יותר מכל הגדרה אחרת; claude-sonnet-4-6 הוא הבחירה המאוזנת, gpt-5.4 ההסלמה.
  • אוטומציות מתוזמנות רצות ללא השגחה. תמחרו אותן כמו מנוי: קריאות ליום כפול טוקנים לקריאה, בדיוק מה שלוג השימוש לפי מפתח מדווח.
  • ידע אישי עשיר-בסתירות (תוכניות משתנות, פתקים מתיישנים), ומודלים נבדלים בכמה טוב הם מסמנים פתקים סותרים במקום למזג אותם; בדקו שני ids על אותה קבוצת שאלות לפני שאתם מתחייבים.
  • Max prompt size הוא לכל מודל צ'אט ב-Khoj, אז id בהקשר ארוך משתלם רק אם תעלו את השדה הזה כדי להתאים.

תשלום לפי שימוש · מתחת למחיר הרשמי

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

מודלמחיר רשמיהמחיר שלנו
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GPT-5.4$2.50 / $15.00 per M$2.00 / $12.00 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M

מצבי כשל ספציפיים ל-Khoj.

משתנה הסביבה הוא זרע להרצה הראשונה, לא הגדרה חיה. OPENAI_BASE_URL נקרא במהלך האתחול כדי ליצור את רשומת הספק ולגלות מודלים; על שרת שכבר אותחל, עריכת קובץ ה-compose לא משנה שום דבר שתוכלו לראות. השתמשו בפאנל הניהול לשינויים אחרי ההפעלה הראשונה, או אפסו את מסד הנתונים אם אתם באמת רוצים זרע חדש. מלכודת מפתח-ה-placeholder: כש-OPENAI_BASE_URL מוגדר בלי OPENAI_API_KEY, Khoj ממלא את המפתח ב-placeholder כך ששרתים מקומיים כמו Ollama יעבדו. gateway דורש מפתח אמיתי, אז אם הזריעה בהרצה הראשונה קרתה בלי אחד, צ'אטים נכשלים עם שגיאות אימות עד שתדביקו את המפתח ברשומת ה-AI Model API בפאנל הניהול. הגילוי האוטומטי מזריע הכל. מכיוון שהאתחול רושם כל מודל שה-endpoint משרת, gateway רב-ספקים יכול להזריע טבלת מודלים ארוכה. לא מזיק, אבל שווה לגזום בפאנל הניהול כדי שהבורר יישאר שמיש. Name של מודל הצ'אט מדויק. Khoj מעביר אותו כלשונו; טעות הקלדה עולה כ-model-not-found בהודעה הראשונה, ופלט ה-/v1/models של ה-gateway הוא האיות הסמכותי. ואם החיפוש הסמנטי על הפתקים שלכם מתנהג לא כשורה, זו תת-המערכת של ה-embedding המקומי, לא קשור ל-endpoint הצ'אט.

מי מנתב את Khoj דרך gateway.

  • self-hosters שרוצים צ'אט מודל מתקדם על הפתקים שלהם בלי חשבון ספק לכל משפחת מודלים; מפתח אחד מכסה ids של Claude, GPT, DeepSeek, ו-Gemini.
  • משתמשים שמריצים אוטומציות מתוזמנות יומיומיות, שם id מהיר שומר על העלות החוזרת שטוחה ולוג השימוש הופך אותה לגלויה.
  • הגדרות מכווני-פרטיות ששומרות על אנדקסציה ו-embeddings מקומיים וחושפות רק prompts של צ'אט ל-endpoint אחד ניתן לביקורת.
  • חובבים שמשווים מודלי צ'אט על אותו corpus אישי: כל מועמד הוא שורת chat-model אחת מול אותו AI Model API.
  • מפתחים ללא גישה לחיוב של ספק נתון. גישה מבוססת-הטענה בלי דרישת כרטיס מסירה את התלות בהרשמה לכל ספק.

אמתו את ה-endpoint ובצעו דיבוג לצ'אט הראשון.

בדקו את ה-gateway קודם: רשמו מודלים עם המפתח שלכם ואשרו את ה-ids שאתם מתכננים לרשום. הגילוי האוטומטי של Khoj עצמו מבצע את אותה קריאה במהלך זריעת ההרצה הראשונה, אז אם ה-curl הזה עובד, הזריעה תעבוד גם. כשלים ממוקמים בבירור. שגיאות אימות אומרות ש-Api Key ברשומת ה-AI Model API שגוי או עדיין ה-placeholder המוזרע. Model-not-found אומר ש-Name של מודל צ'אט לא תואם לאיות בקטלוג. תשובות שנקטעות באמצע בדרך כלל אומרות ש-Max prompt size או תקרת הפלט של המודל מוגדרים נמוך מדי לשיחה. בעיות אנדקסציה וחיפוש הן צינור ה-embedding המקומי ואין להן קשר ל-endpoint. ברגע שהצ'אטים זורמים, קונסולת APIsRouter מציגה מודל לכל בקשה, ספירות טוקן, והוצאה. אוטומציות והרצות מחקר הן המקום שבו עלויות המוח השני מסתתרות, ושימוש לפי מפתח הוא איך אתם רואים אותן לכל פיצ'ר במקום כהפתעה חודשית אחת.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

שאלות נפוצות

האם Khoj תומך ב-proxy או gateway תואם OpenAI?

כן, כהגדרה מתועדת: צרו רשומת AI Model API עם Api Base Url שמצביע על ה-endpoint, ואז הוסיפו מודלי צ'אט עם Model Type Openai. קובץ ה-compose גם חושף OPENAI_BASE_URL לזריעה בהרצה הראשונה.

האם Khoj יכול לצ'וטט עם מודלי Claude או DeepSeek דרך זה?

כן. Model Type Openai מעביר את Name של מודל הצ'אט כמחרוזת פשוטה דרך /v1/chat/completions אל ה-Api Base Url. כל id שה-gateway משרת עובד, כולל ids של Claude, DeepSeek, GLM, ו-Gemini.

למה שינוי OPENAI_BASE_URL ב-docker-compose לא עשה כלום?

המשתנה מזריע ספקים ומודלים במהלך אתחול ההרצה הראשונה בלבד. על שרת שאותחל, ערכו את רשומת ה-AI Model API בפאנל הניהול במקום זאת; זו ההגדרה החיה.

האם ה-base URL המותאם אישית משפיע על חיפוש המסמכים של Khoj?

לא. Khoj מטמיע ומחפש את המסמכים שלכם עם מודל sentence-transformers מקומי כברירת מחדל. רשומת ה-AI Model API מזיזה רק צ'אט, agents, אוטומציות, ומחקר.

מה זה Max prompt size ברשומת מודל הצ'אט?

תקרה לכל מודל על כמה prompt Khoj דוחס לבקשה. הגדירו אותה כך שתתאים לחלון ההקשר של המודל; נמוך מדי גוזם פתקים מאוחזרים, ו-id בהקשר ארוך עוזר רק אם השדה הזה מועלה בהתאם.

האם זה חל על אפליקציית Khoj המאוחסנת?

לא, endpoints מותאמים אישית הם פיצ'ר self-hosting. האפליקציה המאוחסנת מנהלת את המודלים שלה בצד השרת בעצמה; משטחי פאנל הניהול והסביבה כאן שייכים לשרת שאתם מריצים בעצמכם.