Obsidian / مسار بيانات المكون الإضافي للذكاء الاصطناعي

التأكيد بالمواد الرسمية والمصادر الثابتة

Obsidian×AI الموقع الحالي للمكون الإضافي
ما الذي يمكن القيام به وخطير [2026]

هذه الصفحة مترجمة آليًا من الأصل الياباني. اقرأ الأصل الياباني

أي جزء من دفتر الملاحظات ينتقل من أي وظيفة إلى أين؟ اقرأ النسخة الثابتة من Copilot وSmart Connections وText Generator، وقارن الأجزاء غير المؤكدة من الاتصال الفعلي بتلك التي يمكن فهمها في المادة.

قبل الاختيار، انظر إلى النموذج والسياق والفهرس والوظائف الإضافية

كلمة "الدعم المحلي" وحدها لا تحدد وجهة المكون الإضافي بأكمله. يتم التحقق من مقتطفات من الملاحظات التي تم تمريرها إلى النموذج، ومكان عمل فهرس، والبحث على الويب وخدمات تحويل المستندات، والتشخيص وتأكيد التحديث بشكل منفصل.

  1. نموذجمزود・نقطة النهاية・وكيل
  2. السياق المرجعيالاختيارات والمقتطفات والقوالب
  3. الفهرس والبحثخادم محلي أو خادم آخر
  4. وظائف إضافيةالويب، تحويل المستندات، التشخيص، التحديث

هذا الرسم البياني هو منظمة لقراءة المواد الرسمية. إنه ليس سجل اتصال فعلي. المقارنة هي تأكيد للمواد والمصادر الثابتة، ولا تشمل تشغيل شاشة التكوين أو تدقيق تشغيل الطلبات ومقدمي الخدمات الفعليين.

أولا وقبل كل شيء، يرجى التحقق من مسار الوظيفة التي تستخدمها في الجدول أدناه. يمثل "source" في الجدول الثوابت والفروع المقروءة من الكود، ويمثل "وصف المصدر" وصف README والدليل.

قارن الإصدارات الثابتة 3 مع الوجهة والإعدادات

الوثائق الرسمية التي تم الحصول عليها في 30 سبتمبر 2026. إنه ليس جدول نتائج التواصل الفعلي.
نسخة ثابتةالمسار الموضح في المستندالسياق والفهرستأكيد المفاتيح والإعداداتلا يزال غير مؤكد
Copilot
4.0.12
شرح مقدم الخدمة: المستضاف هو Brevilabs ومزود المؤسسة. Cloud BYOK هي المزود/نقطة النهاية المحددة، و Local BYOK هي نقطة النهاية المحلية. لدى Opencode وClaude وCodex أيضا طرقهم الخاصة. Q03تنتقل مقتطفات من الملاحظات المحددة إلى سياق النموذج. فهرس ميو ووجهة البحث محلية/عن بعد في بيئة منفصلة. تحقق من المسار الإضافي للبحث على الويب وتحويل المستندات وسياق المشروع. Q03 / Q05المصدر: getter للتحقق من توفر SecretStorage. الثوابت الأولية مثل enableMiyo=false وactiveBackend=opencode. لم يتم تأكيد التخزين الفعلي وواجهة المستخدم الرسومية الحالية. Q07/Q08/Q09الامتثال للحمولة الفعلية، وهدف الفهرس، وتخزين المفتاح الطرفي والتشفير، والاحتفاظ بالنسخ الاحتياطي والسياسات غير التعليمية. عادة ما يتم تمييز تحميل ZIP التشخيصي المحدد ذاتيا عن الطلب.
اتصالات ذكية
4.7.2
شرح الموفر: دليل إلى نموذج التضمين المحلي المدمج. يشرح كيفية إنشاء فهرس لا يتطلب مفتاح API. Q10/Q11يوضح README أنه ينشئ فهرس Vault بعد التمكين. بعض الإعدادات والنماذج تعتمد خارجيا. لم يتم قراءة مسار البيانات لجميع التكوينات.المصدر: احصل على أحدث إصدار من GitHub وURL المعطى للدليل الأولي. من شرح التضمين المحلي، لا يمكن تحديد عدم وجود اتصال كامل. Q12 / Q13الفهرس الفعلي والحصول على النموذج، والتبعية الكاملة، والاتصال الفعلي والحمولة، والنموذج البديل، وتخزين المفاتيح، والقياس عن بعد/الاستبقاء بشكل عام.
مولد النص
0.8.7
القيمة الأولية للمصدر:OpenAI Chat (Langchain), https://api.openai.com/v1, المفتاح فارغ. يتلقى مزود Ollama مسار القاعدة المحدد. Q15 / Q23 / Q24فرع يمكنه الحصول على قيم باستخدام includeClipboard=true. القالب الأولي هو العنوان・starredBlocks・tg_selection. يجب التحقق من القيمة المضمنة في المطالبة الفعلية بشكل منفصل. Q15/Q17القيمة الأولية للمصدر:encrypt_keys=false. إذا تعذر تشفيره/غير صالح، فهو فرع يعيد بادئة ثابتة + مفتاح إدخال. حتى لو كان حقل المفتاح العادي فارغا، فلا يمكن تحديد ما إذا كان قد تم تشفيره. Q15 / Q19 / Q20 / Q21 / Q22الحمولة الفعلية، واجهة المستخدم الرسومية الحالية، نتائج التشفير الطرفي، التواصل مع جميع الوظائف، جودة الفواتير والاستجابة، والقياس عن بعد/الاحتفاظ بشكل عام.

BYOK هي طريقة تستخدم مفاتيحها ونقاط النهاية الخاصة بها. " "استخدم مفتاحك الخاص" و"ستبقى المعالجة فقط في المحطة الطرفية" هي شروط مختلفة.

Copilot: حتى إذا اخترت نموذجا، يظل مسار الوظائف الإضافية منفصلا

تنقسم النسخة الثابتة من الدليل إلى وجهات معالجة مستضافة وCloud BYOK و Local BYOK و opencode و Claude و Codex. على سبيل المثال، حتى إذا تم شرح نموذج BYOK المحلي على أنه نقطة نهاية محلية، فقد تشارك خدمة أخرى اعتمادا على سياق المهارة والمشروع المستخدم. Q03

مرجع ملاحظة منفصل ومؤشر ميو

يوضح المستند أن الوكيل يقرأ الملاحظة ويضع الجزء الضروري في موجه النموذج المحدد. " لم يتم شرح سلوك "تحميل Vault بالكامل فقط عن طريق فتح دردشة الوكيل". يحتوي Miyo على اتصال محلي واتصال خادم بعيد، ويتم تحديد الفهرس ووجهة البحث بشكل منفصل. يتناسب المقتطف الموجود في البحث أيضا مع سياق النموذج. فقط باستخدام الفهرس المحلي، لا يمكن القول إن المقتطف لا يمر إلى مزود النموذج. Q03/Q05

معالجة المستندات ليست موحدة. وفقا للوثيقة، تتم معالجة Miyo الخاصة ب Agent Chat بواسطة CLI المحلي، وتستخدم Quick Chat خدمة Miyo وجهة الاتصال، وإذا كانت بعيدة، تتم معالجتها بواسطة هذا الخادم. قد يستخدم سياق المشروع المحفوظ الذي يستخدم الويب ويوتيوب والملفات الثنائية خدمة المشروع المستضاف، وهو طريق مختلف عن اختيار ميو. Q03

وضع المضيف الذاتي لا يضمن حظر الاتصالات

أنه لن يتم تعطيل السحابة حتى في وضع الاستضافة الذاتية. سيبقى الطريق المرسل إلى كلود المحدد، الدستور، النموذج السحابي، مزود البحث، وما إلى ذلك. هذا إعداد لكل وظيفة للتحقق مما إذا كانت الوظيفة التي تريد استخدامها ووجهة المعالجة المقبولة تتطابق. Q04

تتم قراءة المتلق والثابت الأولي والسياسة التشخيصية للمفتاح على أساسها الخاص

نطاق KeychainService المؤكد هو محصل يتحقق من وجود app.secretStorage ويعطي خطأ إذا لم يكن كذلك. إنه ليس نتيجة لحفظ المفتاح فعليا أو سجل للتحقق من تشفير نظام التشغيل. enableMiyo=false، enableMiyoSearchSkill=false، activeBackend=opencode، debugFullFrames=true هي القيم الأولية في المصدر ولا تظهر قيمة الإعدادات التي تم ترحيلها أو واجهة المستخدم الرسومية للقارئ. Q07 / Q08 / Q09

يشرح README المعرّف العشوائي UUID للطلب المستضاف وملف ZIP التشخيصي الذي يختاره القارئ ويرفعه. حذف ZIP بعد 60 أيام، والمعالجة المؤقتة للطلبات المستضافة من دون احتفاظ أو تدريب، هي السياسة التي يشرحها المزود. لم ندقق تشغيل الخوادم الخلفية هنا، ولا يمكن الاستنتاج من debugFullFrames=true وحده أن ZIP التشخيصي يُرسل تلقائيًا. Q02

الاتصالات الذكية: شرح التضمين المحلي وفصل وجود أو عدم وجود جميع الاتصالات

يوضح README أن النموذج المحلي المدمج يفهرس Vault ولا يحتاج إلى مفتاح API. يمكن قراءة ذلك بوصفه شرحًا لآلية العثور على الملاحظات ذات الصلة، لكننا لم نشغّل النموذج ولم نرصد الفهرسة الفعلية أو اتصالات الشبكة في هذه المقارنة. ونتعامل أيضًا مع أوصاف README المتعلقة بالخصوصية والعمل دون اتصال والأجهزة المحمولة باعتبارها ادعاءات من المزوّد. Q10 / Q11

من ناحية أخرى، يحتوي src/main.js الخاص بك على رمز لحجز GET من تأكيد التحديث بعد التهيئة إلى أحدث إصدار من GitHub. يتم تمرير URL من smartconnections.app إلى StoryModal للمستخدم الأول. هذا تأكيد لمسار الرمز المتعلق بالاتصال. تنفيذ StoryModal على الجانب التابع، ومن غير المؤكد ما إذا كان URL قد تم تحميله بالفعل أو ما هي الحمولة التي تم تمريرها. Q12/Q13

تشير بعض النماذج والإعدادات وHTTP وما إلى ذلك إلى الحزم الخارجية المتعلقة بالبيئة الذكية/jsbrains. مع هذا النطاق وحده، لا يمكن تحديد أن "جميع الوظائف موجودة في المحطة الطرفية" و"لا يوجد قياس عن بعد" و"سيتم إرسال الملاحظات دائما". إذا قمت بفصل شرح الفهرس المحلي ورمز تأكيد التحديث والاعتماد غير المؤكد والاتصال الفعلي، فيمكنك رؤية الكائن الإضافي الذي سيتم فحصه. Q14

مولد النص: تحقق من اقتراحات السياق وفروع التخزين الرئيسية

الإعدادات التي يمكنها استرداد الحافظة والمطالبة الفعلية مختلفة

يحتوي الإعداد الأولي للإصدار الثابت على includeClipboard=true، ويحتوي منشئ السياق على فرع يمكنه الحصول على الحافظة إذا كانت القيمة صحيحة. من ناحية أخرى، فإن title وstarredBlocks وtg_selection في القالب الأولي المذكور ليست عناصر نائبة للحافظة. Q15/ Q17

تختلف القيمة التي تم حلها اعتمادا على القالب والواجهة وخيارات السياق ونطاق الاختيار. لا تتعامل مع قائمة القيم المتاحة كقيم في الطلب الفعلي على أنها هي نفسها. لا يؤدي تأكيد الرمز هذا إلى "إرسال الحافظة دائما" أو "يتم إرسال جميع Vault دائما". Q17/Q18

الأحرف الفارغة في حقل المفتاح العادي ليست دليلا على التشفير

القيمة الأولية هي encrypt_keys=false. هناك عملية لإفراغ عمود المفتاح العادي عند الحفظ، وعملية إعداد حقل آخر متعلق بالسر. عندما يكون التشفير غير متاح أو يتم تعطيل encrypt_keys، تقوم getEncryptedKey بإرجاع قيمة تربط البادئة الثابتة ومفتاح الإدخال. حتى لو كان اسم الحقل يحتوي على مشفر/مجزأ، فلا يمكن تحديد أنه وحدات بايت مشفرة في حد ذاته. Q15 / Q19 / Q20 / Q21 / Q22

، لذلك لم يتم تأكيد محتويات التخزين الفعلي وعملية التخزين الآمن لهذه المحطة. قبل مشاركة ملفات التكوين وسجلات التشخيص التي تحتوي على مفاتيح، تحتاج إلى النظر ليس فقط إلى العمود العادي ولكن أيضا إلى القيم الأخرى المحفوظة.

اختر المزود الأولي والمراسلات المحلية بشكل منفصل

المزود الأولي للمصدر هو OpenAI Chat (Langchain)، ونقطة النهاية هي https://api.openai.com/v1. مزود Ollama لديه تطبيق يتلقى مسار القاعدة المحدد. حقيقة وجود مزود متوافق محليا وحده لا يثبت أنه لا توجد وجهة معالجة أو اتصال كامل للوظائف الأخرى. Q15/Q23/Q24

الطلب المرفق، والاقتراحات التلقائية، واقتراحات القطع، وتنفيذ JavaScript متوقفة عند القيمة الأولية المقتبسة. هذه أيضا ليست القياسات الفعلية لواجهة المستخدم الرسومية الحالية. يرجى التحقق من القالب الذي تريد استخدامه والإعدادات المحفوظة في بيئتك. Q15/Q16

حدد الإعدادات للتحقق وفقا لاستخدامك

ماذا أريد أن أفعلالهدف الذي سيتم تأكيدهما لا يمكنك فهمه من خلال هذه المقارنة وحدها
التعامل مع الملاحظات في النموذج السحابينموذج/مزود/نقطة نهاية، اختيار، مقتطف، قالب، وكيل/مهارة مستخدمةالتشغيل والفواتير وجودة الاستجابة للحمولة الفعلية والمزود
أريد إنشاء فهرس محلياوجهة معالجة التضمين/الفهرس، إعدادات الخادم البعيد، نموذج ما بعد المرحلة، الحصول على النموذج والوظائف الإضافيةتوقف الاتصال لجميع الوظائف، وجميع الطرق التابعة، والفهرس الفعلي على المحطة
أريد أن أعرف نطاق حفظ ومشاركة المفاتيحالحقول التي سيتم حفظها، والفروع التي لا يمكن تشفيرها، وأين يمكن مشاركة السجلات/التشخيصات/الإعداداتالامتثال لبايتات التخزين الفعلية والاحتفاظ بالواجهة الخلفية وحذف المحطة الطرفية

الحالة بعد تغيير الإعدادات ليست نتيجة للقياس الفعلي في هذا الجدول. قبل استخدام دفتر الملاحظات الخاص بك، استخدمه كطريقة قراءة لتحديد الوظائف التي يجب استخدامها والبيانات التي يجب تمريرها إليها.

الأسئلة الشائعة

إذا اخترت طرازا محليا، ألن يتصل المكون الإضافي على الإطلاق؟
وجهة معالجة النموذج والفهرس والبحث على الويب وتحويل المستندات وتأكيد التحديث هي طرق منفصلة. تميز وثائق Copilot مسار الوظائف الإضافية، ويحتوي رمز Smart Connections الخاص على تأكيد تحديث GitHub GET. في تأكيد هذه الوثيقة، لم نؤكد أن جميع الوظائف لا تتواصل أو محتوى الإرسال الفعلي.
هل ترسل الاتصالات الذكية أجهزة الكمبيوتر المحمولة إلى الخارج؟
يشرح الإصدار الثابت من README كيفية إنشاء التضمين والفهرسة باستخدام نموذج محلي مدمج. هذا هو شرح مقدم الخدمة. هناك URL لتأكيد التحديث والتوجيه الأولي في مصدره الخاص، وبعض النماذج والإعدادات تعتمد خارجيا. لا يتم قياس وجود أو عدم وجود نقل الملاحظات الفعلي والتواصل الكامل في هذه المقارنة.
هل includeClipboard=true في Text Generator يعني أنه يجب إرسال الحافظة؟
، هناك فرع يمكن لمنشئ السياق من خلاله استرداد الحافظة عندما يكون الإعداد صحيحا. من ناحية أخرى، يستخدم القالب الأولي المنشور العنوان و starredBlocks و tg_selection، ولا يحدد الحافظة. تختلف القيمة المتاحة عن محتوى الطلب الذي تم تجميعه بالفعل. الحمولة الفعلية غير مقاسة.
إذا كان api_key للبيانات المحفوظة فارغا، فهل المفتاح مشفر؟
لا يمكن الحكم باستخدام حقل مفتاح فارغ وحده. في Text Generator 0.8.7، هناك عملية حفظ تفرغ حقل المفتاح العادي وحقل حفظ آخر، وإذا لم يكن التشفير متاحا أو إذا تم تعطيل encrypt_keys، فهناك فرع يعيد بادئة ثابتة ومفتاح إدخال. لم أجرب تخزين المفتاح الفعلي أو سلوك تشفير النظام الأساسي.
هل تقارن هذه المقالة جودة استجابة الذكاء الاصطناعي والرسوم وتشغيل iPhone؟
هدف المقارنة هو مسار البيانات والإعدادات الموضحة في المواد الرسمية والرمز لإصدار 3 الثابت. لم نؤكد تثبيت المكونات الإضافية، والتشغيل الفعلي لشاشة الإعداد، وتوليد الطراز، والفواتير، والاتصال الفعلي، وتشغيل المحطات الطرفية بما في ذلك iPhone، والامتثال لسياسات التخزين وعدم التعلم الخاصة بالمزود.

النسخة المؤكدة والنص الأصلي للأساس

فيما يلي الإصدار الرسمي والالتزام الثابت المسجل في 14:25 UTC في 30 سبتمبر 2026. " إنه الإصدار الذي تم تأكيده في ذلك الوقت، ولا يضمن أحدث إصدار في المستقبل. الحد الأدنى Obsidian هو قيمة البيان. لا يتم استنتاج تشغيل المحطة الفعلية من العلم المتوافق مع الهاتف المحمول.

كما تم إصلاح السجل الرسمي لإلزام 2db5da29e67e7600176c8c9450fd1c36c3a6831b. بالنسبة لاقتباس 24 وملف 14 وخط 579، أكدنا أنه يتطابق مع وحدات البايت/SHA256 ونطاق الخط واقتباس الملف الأصلي. إنه فحص لتأكيد إمكانية تكرار النسخة الثابتة من المادة، وهي ليست مصادقة خصوصية وقت التشغيل.

اقرأ الأسعار الثابتة ونطاق التأكيد ل 24 مع JSON

الوصف الرئيسي واقتباس الرمز

النص والرمز الإنجليزي الأصلي يقعان ضمن نطاق الالتزام الثابت. يمكنك المتابعة إلى النص الأصلي ل GitHub من رقم Q على الجدول.

Copilot · docs/copilot-plus-and-self-host.md · Q03

افتح النص الأصلي للالتزام الثابت

75: 
76: | Model source                | How access works                                               | Who processes the prompt                                        |
77: | --------------------------- | -------------------------------------------------------------- | --------------------------------------------------------------- |
78: | **Copilot-hosted**          | Lite, Plus, or included Supporter access                       | Brevilabs and the enterprise model provider used for that model |
79: | **Cloud BYOK**              | Your API key under BYOK                                        | The provider and endpoint you configured                        |
80: | **Local BYOK**              | Ollama, LM Studio, or another local OpenAI-compatible endpoint | Your local endpoint                                             |
81: | **opencode-reported model** | Authentication managed by opencode                             | The provider behind that opencode model                         |
82: | **Claude**                  | Claude Code login or environment                               | Anthropic under your Claude account                             |
83: | **Codex**                   | Codex CLI login through `codex-acp`                            | OpenAI under your Codex or ChatGPT account                      |
84: 
85: A Claude or ChatGPT subscription is not an API key. Use the Claude or Codex Agent Chat setup for those subscriptions. Use BYOK only when you have API access or an OpenAI-compatible endpoint.
86: 
87: ## Understand service data routes
88: 
89: The selected model is only one possible route. A feature may call another service for the part of the task you asked it to perform:
90: 
91: - A **Copilot-hosted Skill** sends the search query, URL, or document needed by that Skill to Brevilabs.
92: - **Plus document processing** sends the supported document to Copilot's hosted processor.
93: - In **Agent Chat**, **Miyo document processing** runs through the local Miyo CLI, so PDF and EPUB parsing stays on this computer even when search uses a remote Miyo server.
94: - In **Quick Chat**, **Miyo document processing** uses the connected Miyo service. A configured remote Miyo server processes the document there rather than on this computer.
95: - Saved **project context** that needs web, YouTube, or binary-file conversion can use Copilot's hosted project service. The Miyo Document Processor choice does not change that project route.
96: - An agent can read a local note and include relevant text in the prompt sent to the selected model. Opening Agent Chat alone does not upload the whole vault.
97: 
98: For a workflow that does not send task content to Brevilabs, use direct Markdown context, local tools or local Miyo, and a local model. Disable Copilot's cloud-backed Skills for every agent you use. Do not add web pages, YouTube links, or binary files as saved project context when their hosted conversion is outside your intended boundary.
99: 
100: The [privacy policy](https://www.obsidiancopilot.com/en/privacy) describes how Copilot's hosted requests are processed. Your model provider and Miyo server have their own boundaries and terms.
Copilot · docs/copilot-plus-and-self-host.md · Q04

افتح النص الأصلي للالتزام الثابت

103: 
104: Supporter and eligible legacy licenses can open **Settings → Copilot → Self-Host** and enable **Self-Host Mode**.
105: 
106: When it is on, Copilot:
107: 
108: - Lets you supply Firecrawl, Perplexity, Parallel, or Exa credentials for web search.
109: - With OpenCode selected, routes Agent Chat web searches through that selected provider while keeping its API key inside Obsidian. This does not require Obsidian's command line interface.
110: - Disables OpenCode's native web-search and web-fetch tools so they cannot bypass the selected route. Full-page fetching through OpenCode is unavailable until the self-host providers share a supported fetch interface.
111: - Lets you supply a Supadata key for YouTube transcripts.
112: - Directs you to BYOK for local or self-hosted model endpoints.
113: - Flags and sorts cloud agents and models below local or self-hosted choices.
114: 
115: It does not disable the cloud. Claude, Codex, Copilot-hosted models, cloud BYOK providers, Firecrawl, Perplexity, Parallel, Exa, and Supadata can still send data to their services when you select them. The warnings make those routes visible so you can decide.
116: 
117: You do not need Self-Host Mode to use a local BYOK model or local Miyo. Those are available independently.
Copilot · src/services/keychainService.ts · Q09

افتح النص الأصلي للالتزام الثابت

239:   /** Whether the OS keychain is available in this Obsidian version. */
240:   // DESIGN NOTE — intentionally only checks for the `secretStorage` object,
241:   // not individual methods (`getSecret`/`setSecret`/`listSecrets`). Obsidian
242:   // ships SecretStorage as a single API surface (1.11.4); there is no
243:   // released version where the object exists but methods are missing.
244:   // Capability-probing each method would add branching for a partial-API
245:   // world that does not exist. If a future review flags this again, point
246:   // them at this note.
247:   isAvailable(): boolean {
248:     return !!this.app.secretStorage;
249:   }
250: 
251:   /** Get the current vault namespace ID. */
252:   getVaultId(): string {
253:     return this.vaultId;
254:   }
255: 
256:   /**
257:    * Set the vault namespace ID from persisted settings.
258:    * Reason: called during load to replace the path-derived fallback with the
259:    * stable persisted ID, so vault renames don't orphan keychain entries.
260:    */
261:   setVaultId(id: string): void {
262:     this.vaultId = id;
263:   }
264: 
265:   /**
266:    * Access SecretStorage with a runtime guard.
267:    * Reason: replaces scattered non-null assertions with a single guard
268:    * that produces a clear error when keychain is unavailable.
269:    */
270:   private get storage(): SecretStorage {
271:     if (!this.app.secretStorage) {
272:       throw new Error("OS keychain (SecretStorage) is not available.");
273:     }
274:     return this.app.secretStorage;
اتصالات ذكية · src/main.js · Q13

افتح النص الأصلي للالتزام الثابت

144:   async check_for_updates() {
145:     if (await this.is_new_plugin_version(this.manifest.version)) {
146:       // console.log("opening release notes modal");
147:       try {
148:         this.ReleaseNotesView.open(this.app.workspace, this.manifest.version);
149:       } catch (error) {
150:         console.error('Failed to open ReleaseNotesView', error);
151:       }
152:       await this.set_last_known_version(this.manifest.version);
153:     }
154:     window.setTimeout(this.check_for_update.bind(this), 3000);
155:   }
156: 
157:   async check_for_update() {
158:     try {
159:       const { json: response } = await requestUrl({
160:         url: "https://api.github.com/repos/brianpetro/obsidian-smart-connections/releases/latest",
161:         method: "GET",
162:         headers: {
163:           "Content-Type": "application/json",
164:         },
165:         contentType: "application/json",
166:       });
167:       const latest_release = response.tag_name;
168:       if (latest_release !== this.manifest.version) {
169:         if (!this.update_available || this.latest_release_version !== latest_release) {
مولد النص · src/default-settings.ts · Q15

افتح النص الأصلي للالتزام الثابت

4: const DEFAULT_SETTINGS: TextGeneratorSettings = {
5:   version: pkg.version as any,
6:   endpoint: "https://api.openai.com/v1",
7:   models: [],
8:   api_key: "",
9:   encrypt_keys: false,
10:   selectedProvider: "OpenAI Chat (Langchain)",
11:   max_tokens: 5000,
12:   temperature: 0.7,
13:   frequency_penalty: 0.5,
14:   showStatusBar: true,
15:   outputToBlockQuote: false,
16:   freeCursorOnStreaming: false,
17:   allowJavascriptRun: false,
18:   experiment: false,
19:   promptsPath: "textgenerator/templates",
20:   textGenPath: "textgenerator/",
21:   prefix: "\n\n",
22:   tgSelectionLimiter: "^\\*\\*\\*",
23:   stream: true,
24:   context: {
25:     customInstructEnabled: true,
26:     includeClipboard: true,
27:     customInstruct: `Title: {{title}}
28:   
29: Starred Blocks: {{starredBlocks}}
30: 	  
31: {{tg_selection}}`,
32: 
33:     contextTemplate: `Title: {{title}}
34: 	
35: Starred Blocks: {{starredBlocks}}
36: 	  
37: {{tg_selection}}`,
38:   },
39:   requestTimeout: 300000,
40:   options: {
مولد النصوص · src/scope/context-manager.ts · Q17

افتح النص الأصلي للالتزام الثابت

355:       {},
356:       this.getFrontmatter(this.getMetaData(templatePath)),
357:       contextObj.frontmatter
358:     );
359: 
360:     if (contextOptions.includeClipboard)
361:       try {
362:         blocks["clipboard"] = await this.getClipboard();
363:       } catch {
364:         // empty
365:       }
366: 
367:     const options = {
368:       selection,
369:       selections,
370:       ...blocks["frontmatter"],
371:       ...blocks["headings"],
372:       content: ctnt,
373:       context,
374:       ...blocks,
مولد النص · src/main.ts · Q20

افتح النص الأصلي للالتزام الثابت

664:   encryptAllKeys() {
665:     // check if user have LLMProviderOptionsKeysHashed object (upgrading from older version)
666:     this.settings.LLMProviderOptionsKeysHashed ??= {};
667: 
668:     const keyList: string[] = [];
669: 
670:     this.settings.api_key_encrypted = this.getEncryptedKey(
671:       this.settings.api_key
672:     );
673: 
674:     // get all secret keys
675:     Object.entries(this.settings?.LLMProviderOptions).forEach(([key1, l1]) => {
676:       if (typeof l1 != "object") return;
677:       Object.entries(l1).forEach(([key2, l2]) => {
678:         if (key2.toLowerCase().includes("key") && typeof l2 == "string") {
679:           keyList.push(`${key1}.${key2}`);
680:         }
681:       });
682:     });
683: 
684:     keyList.forEach((pth) => {
685:       const keyval =
686:         (get(this.settings?.LLMProviderOptions, pth) as never as string) || "";
687: 
688:       const encrypted = this.getEncryptedKey(keyval);
689:       this.settings.LLMProviderOptionsKeysHashed[pth] = encrypted;
690:     });
691:   }
692: 
693:   removeApikeys(settings: typeof this.settings): typeof this.settings {
694:     const LLMProviderOptions = JSON.parse(
695:       JSON.stringify(settings?.LLMProviderOptions)
696:     ) as typeof this.settings.LLMProviderOptions;
697: 
698:     // get all secret keys
699:     Object.entries(LLMProviderOptions).forEach(([key1, l1]) => {
700:       if (typeof l1 != "object") return;
701:       Object.entries(l1).forEach(([key2, l2]) => {
702:         if (key2.toLowerCase().includes("key") && typeof l2 == "string") {
703:           set(LLMProviderOptions, `${key1}.${key2}`, "");
704:         }
705:       });
706:     });
707: 
708:     return {
709:       ...settings,
710:       api_key: "",
711:       LLMProviderOptions,
712:     };
مولد النص · src/main.ts · Q21

افتح النص الأصلي للالتزام الثابت

742:   getEncryptedKey(apiKey: string) {
743:     if (!safeStorage?.isEncryptionAvailable() || !this.settings.encrypt_keys) {
744:       return `${DecryptKeyPrefix}${apiKey}`;
745:     }
746: 
747:     return safeStorage.encryptString(apiKey) as Buffer;
748:   }
749: 
مولد النص · src/constants.ts · Q22

افتح النص الأصلي للالتزام الثابت

35:   custom_header: true,
36: };
37: 
38: export const DecryptKeyPrefix = "__@#key_prefix#@__";
39: 

ما لم يتم تأكيده في هذه المقارنة

لم نتحقق من تثبيت الإضافة أو تفعيلها أو واجهة إعدادها أو التوليد أو استدعاء النموذج/API أو المفاتيح الفعلية أو حزم الإرسال أو تدقيق شبكة جميع الاعتماديات أو التزام خوادم المزود بسياسات الاحتفاظ والتدريب والحذف. كما لا يشمل النطاق الإدخال والتسليم ووسوم AI في SimpleMemo، أو المزامنة، أو السلوك حسب الجهاز، أو السرعة والإنتاجية، أو أثر الزيارات والاستشهادات عبر AI.

كتب بواسطة SimpleMemo Developer. في المقارنة المادية لهذا الموقع الذي تديره YURIKA, K.K.، فهي ليست الشهادة الرسمية ل Obsidian أو شهادة الخصوصية لكل مكون إضافي. رقم