Obsidian / Jalur data plug-in AI

Konfirmasi dengan materi resmi dan sumber tetap

Lokasi plug-in Obsidian×AI saat ini
Apa yang dapat dilakukan dan berbahaya [2026]

Halaman ini diterjemahkan secara otomatis dari bahasa Jepang. Baca versi asli berbahasa Jepang

Bagian mana dari buku catatan yang berpindah dari fungsi mana ke mana? Baca versi tetap dari Copilot, Smart Connections, dan Text Generator, dan bandingkan bagian yang belum dikonfirmasi dari komunikasi yang sebenarnya dengan yang dapat dipahami dalam materi.

Sebelum memilih, lihat model, konteks, indeks, dan fungsi tambahan

Kata "dukungan lokal" saja tidak menentukan tujuan dari seluruh plug-in. Kutipan catatan yang diteruskan ke model, tempat membuat indeks, pencarian web dan layanan konversi dokumen, dan diagnosis dan konfirmasi pembaruan diperiksa secara terpisah.

  1. Modelpenyedia・titik akhir・agen
  2. Konteks referensiPilihan, kutipan, templat
  3. Indeks dan cariServer lokal atau lain
  4. Fungsi tambahanWeb, konversi dokumen, diagnosis, pembaruan

Diagram ini adalah sebuah organisasi untuk membaca materi resmi. Ini bukan catatan komunikasi yang sebenarnya. Perbandingan adalah konfirmasi dari bahan dan sumber tetap, dan tidak termasuk operasi layar konfigurasi atau audit operasi dari permintaan dan penyedia yang sebenarnya.

Pertama-tama, silakan periksa jalur fungsi yang Anda gunakan pada tabel di bawah ini. "sumber" dalam tabel mewakili konstanta dan cabang yang dibaca dari kode, dan "deskripsi sumber" mewakili deskripsi README dan panduan.

Bandingkan versi tetap 3 dengan tujuan dan pengaturan

Materi resmi yang diperoleh pada 30 September 2026. Ini bukan tabel hasil dari komunikasi yang sebenarnya.
Versi tetapRute yang ditampilkan dalam dokumenKonteks dan indeksKonfirmasi kunci dan pengaturanMasih belum dikonfirmasi
Copilot
4.0.12
Deskripsi penyedia:Hosted adalah Brevilabs dan penyedia perusahaan. Cloud BYOK adalah penyedia/titik akhir yang ditentukan, dan Local BYOK adalah titik akhir lokal. Opencode, Claude, dan Codex juga memiliki rute mereka sendiri. Q03Kutipan dari catatan yang dipilih masuk ke konteks model. Indeks dan tujuan pencarian Miyo bersifat lokal/remote dalam pengaturan terpisah. Periksa rute tambahan untuk pencarian web, konversi dokumen, dan konteks proyek. Q03 / Q05Sumber:Getter untuk memeriksa ketersediaan SecretStorage. Konstanta awal seperti enableMiyo=false dan activeBackend=opencode. Penyimpanan yang sebenarnya dan GUI saat ini belum dikonfirmasi. Q07/Q08/Q09Kepatuhan dengan muatan aktual, target indeks, penyimpanan dan enkripsi kunci terminal, retensi backend, dan kebijakan non-pembelajaran. Unggahan ZIP diagnostik yang dipilih sendiri biasanya dibedakan dari permintaan.
Koneksi Cerdas
4.7.2
Penjelasan penyedia: Informasi tentang model penyematan lokal bawaan. Ini menjelaskan cara membuat indeks yang tidak memerlukan kunci API. Q10/Q11README menjelaskan bahwa itu membuat indeks Vault setelah diaktifkan. Beberapa pengaturan dan model bergantung secara eksternal. Jalur data dari semua konfigurasi belum dibaca.Sumber: Ada GET untuk rilis terbaru GitHub dan URL yang diberikan ke panduan awal. Dari penjelasan penyematan Lokal, tidak dapat ditentukan bahwa tidak ada komunikasi penuh. Q12/Q13Indeks nyata dan akuisisi model, seluruh ketergantungan, komunikasi dan muatan aktual, model alternatif, penyimpanan kunci, dan total telemetri/retensi.
Pembuat Teks
0.8.7
Nilai awal sumber: OpenAI Obrolan (Langchain), https://api.openai.com/v1, kunci kosong. Penyedia Ollama menerima set basePath. Q15 / Q23 / Q24Sebuah cabang yang dapat memperoleh nilai dengan includeClipboard=true. Templat awal adalah judul・starredBlocks・tg_selection. Nilai yang termasuk dalam permintaan yang sebenarnya perlu diperiksa secara terpisah. Q15/Q17Nilai awal sumber:encrypt_keys=false. Jika tidak dapat dienkripsi/tidak valid, itu adalah cabang yang mengembalikan awalan tetap + kunci input. Bahkan jika bidang kunci Plain kosong, tidak dapat ditentukan bahwa itu telah dienkripsi. Q15 / Q19 / Q20 / Q21 / Q22Muatan aktual, GUI saat ini, hasil enkripsi terminal, komunikasi semua fungsi, penagihan dan kualitas respons, dan telemetri/retensi secara keseluruhan.

BYOK adalah metode yang menggunakan kunci dan titik akhir sendiri. " "Gunakan kunci Anda sendiri" dan "pemrosesan hanya akan tetap di terminal" adalah kondisi yang berbeda.

Copilot: Bahkan jika Anda memilih model, rute untuk fungsi tambahan tetap terpisah

Versi tetap dari panduan dibagi menjadi host, Cloud BYOK, Local BYOK, opencode, Claude, dan tujuan pemrosesan Codex. Misalnya, bahkan jika model BYOK Lokal dijelaskan sebagai titik akhir lokal, layanan lain mungkin terlibat tergantung pada keterampilan dan konteks proyek yang digunakan. Q03

Pisahkan referensi catatan dan indeks Miyo

Ada penjelasan bahwa agen membaca catatan dan memasukkan bagian yang diperlukan ke dalam prompt model pemilihan. " Perilaku "mengunggah seluruh Vault hanya dengan membuka Obrolan Agen" tidak dijelaskan. Miyo memiliki koneksi lokal dan koneksi server jarak jauh, dan tujuan indeks dan pencarian dipilih secara terpisah. Kutipan yang ditemukan dalam pencarian juga cocok dengan konteks model. Hanya dengan menggunakan indeks lokal, tidak dapat dikatakan bahwa kutipan tersebut tidak diteruskan ke penyedia model. Q03/Q05

Pemrosesan dokumen tidak seragam. Menurut dokumen tersebut, pemrosesan Miyo Agen Obrolan dilakukan oleh CLI lokal, Obrolan Cepat menggunakan layanan tujuan koneksi Miyo, dan jika jarak jauh, diproses oleh server tersebut. Konteks proyek yang disimpan yang menggunakan Web, YouTube, dan file biner dapat menggunakan layanan proyek yang dihosting, dan itu adalah rute yang berbeda dari pilihan Miyo. Q03

Jangan menjamin Mode Host Mandiri untuk memblokir komunikasi

dengan jelas menyatakan bahwa cloud tidak akan dinonaktifkan bahkan dalam Mode Self-Host. Rute yang dikirim ke Claude yang dipilih, Codex, model cloud, penyedia pencarian, dll. akan tetap ada. Ini adalah pengaturan untuk setiap fungsi untuk memeriksa apakah fungsi yang ingin Anda gunakan dan tujuan pemrosesan yang dapat diterima cocok. Q04

Pengumput kunci, konstanta awal, dan kebijakan diagnostik dibaca berdasarkan dasar mereka sendiri

Lingkup KeychainService dikonfirmasi adalah getter yang memeriksa ada atau tidaknya app.secretStorage, dan jika tidak, itu menyebabkan kesalahan. Ini bukan hasil dari benar-benar menyimpan kunci atau catatan verifikasi enkripsi OS. enableMiyo=false, enableMiyoSearchSkill=false, activeBackend=opencode, debugFullFrames=true adalah nilai awal dalam sumber dan tidak menunjukkan nilai pengaturan yang dimigrasikan atau GUI pembaca. Q07/Q08/Q09

README menjelaskan UUID acak dari permintaan yang dihosting dan ZIP diagnostik yang dipilih pembaca untuk diunggah. 60 ZIP beberapa hari kemudian penghapusan, pemrosesan sementara, non-retensi, dan non-pembelajaran permintaan yang dihosting adalah kebijakan yang dijelaskan oleh penyedia. Kami tidak mengaudit operasi backend di sini. Juga tidak mungkin untuk menentukan bahwa ZIP diagnostik akan dikirim secara otomatis dari debugFullFrames=true saja. Q02

Smart Connections: Penjelasan tentang penyematan lokal dan ada atau tidaknya semua komunikasi

README menyatakan bahwa model lokal bawaan mengindeks Vault tanpa memerlukan kunci API. Penjelasan ini menggambarkan cara menemukan catatan terkait, tetapi dalam perbandingan ini kami tidak menjalankan model maupun mengamati proses pengindeksan nyata atau komunikasi jaringan. Pernyataan README tentang privasi, penggunaan offline, dan perangkat seluler juga diperlakukan sebagai klaim penyedia. Q10 / Q11

Di sisi lain, src/main.js Anda sendiri memiliki kode untuk memesan GET dari konfirmasi pembaruan setelah menginisialisasi ke rilis terbaru GitHub. URL dari smartconnections.app diteruskan ke StoryModal dari pengguna pertama. Ini adalah konfirmasi jalur kode yang terkait dengan komunikasi. Implementasi StoryModal berada di sisi dependen, dan tidak dikonfirmasi apakah URL benar-benar dimuat atau muatan apa yang diteruskan. Q12/ Q13

Beberapa model, pengaturan, HTTP, dll. mengacu pada paket eksternal yang terkait dengan Lingkungan Cerdas/jsbrains. Dengan rentang ini saja, tidak dapat ditentukan bahwa "semua fungsi ada di terminal", "tidak ada telemetri" dan "catatan akan selalu dikirim". Jika Anda memisahkan penjelasan indeks lokal, kode konfirmasi pembaruan, dan ketergantungan yang belum dikonfirmasi dan komunikasi aktual, Anda dapat melihat objek tambahan yang akan diperiksa. Q14

Pembuat Teks: Periksa kandidat konteks dan cabang penyimpanan utama

Prompt yang sebenarnya berbeda dari pengaturan yang dapat mengambil papan klip

Pengaturan awal versi yang ditetapkan memiliki includeClipboard=true. Context builder dapat mengambil isi clipboard jika nilainya true. Namun, templat awal yang dikutip berisi title, starredBlocks, dan tg_selection, bukan placeholder clipboard. Q15 / Q17

Nilai yang akan diselesaikan bervariasi tergantung pada templat, materi depan, opsi konteks, dan rentang pilihan. Jangan memperlakukan daftar nilai yang tersedia sebagai nilai dalam permintaan yang sebenarnya sama. Konfirmasi kode ini tidak menghasilkan bahwa "papan klip selalu dikirim" atau "semua Vault selalu dikirim". Q17/Q18

Karakter kosong di bidang kunci biasa bukanlah bukti enkripsi

Nilai awalnya adalah encrypt_keys=false. Ada proses mengosongkan kolom kunci biasa saat menyimpan, dan proses menyiapkan bidang terkait rahasia lainnya. Ketika enkripsi tidak tersedia atau encrypt_keys dinonaktifkan, getEncryptedKey mengembalikan nilai yang menghubungkan awalan tetap dan kunci input. Bahkan jika nama bidang berisi terenkripsi/hash, tidak dapat ditentukan bahwa itu adalah byte terenkripsi dengan sendirinya. Q15 / Q19 / Q20 / Q21 / Q22

belum dimasukkan, isi penyimpanan yang sebenarnya dan operasi safeStorage dari terminal ini belum dikonfirmasi. Sebelum berbagi file konfigurasi dan catatan diagnostik yang berisi kunci, Anda perlu melihat tidak hanya pada kolom biasa tetapi juga pada nilai-nilai lain yang disimpan.

Pilih penyedia awal dan korespondensi lokal secara terpisah

Penyedia awal sumbernya adalah OpenAI Chat (Langchain), dan titik akhir adalah https://api.openai.com/v1. Penyedia Ollama memiliki implementasi yang menerima set basePath. Fakta bahwa ada penyedia yang kompatibel secara lokal saja tidak membuktikan bahwa tidak ada tujuan pemrosesan atau komunikasi penuh untuk fungsi lain. Q15 / Q23 / Q24

Permintaan terlampir, saran otomatis, saran garis miring, dan eksekusi JavaScript MATI pada nilai awal yang dikutip. Ini juga bukan pengukuran sebenarnya dari GUI saat ini. Silakan periksa templat yang ingin Anda gunakan dan pengaturan yang disimpan di lingkungan Anda. Q15/Q16

Putuskan pengaturan untuk diperiksa sesuai dengan penggunaan Anda

Apa yang ingin saya lakukanTarget akan dikonfirmasiApa yang tidak dapat Anda pahami dari perbandingan ini saja
Menangani catatan dengan model cloudmodel/penyedia/titik akhir, pilihan, kutipan, templat, agen/Keterampilan untuk digunakanMuatan aktual, operasi penyedia, penagihan, kualitas respons
Saya ingin membuat indeks secara lokalTujuan pemrosesan penyematan/indeks, pengaturan server jarak jauh, model back-end, akuisisi model, dan fungsi tambahanPenghentian komunikasi dari semua fungsi, semua rute dependen, indeks aktual pada terminal
Saya ingin mengetahui cakupan penyimpanan dan berbagi kunciBidang yang akan disimpan, cabang yang tidak dapat dienkripsi, dan tempat untuk berbagi log/diagnostik/pengaturanKepatuhan dengan byte penyimpanan yang sebenarnya dan retensi backend dan penghapusan terminal

Keadaan setelah pengaturan diubah bukan hasil pengukuran dalam tabel ini. Gunakan penjelasan ini untuk menentukan fitur yang akan dipakai, data yang akan dikirim, dan tujuan yang Anda izinkan, sebelum memakai catatan Anda sendiri.

Pertanyaan umum

Jika saya memilih model lokal, apakah plug-in tidak akan berkomunikasi sama sekali?
dan indeks, pencarian web, konversi dokumen, dan konfirmasi pembaruan adalah jalur terpisah. Dokumen Copilot membedakan jalur fungsi tambahan, dan kode Smart Connections sendiri memiliki konfirmasi pembaruan GitHub GET. Dalam konfirmasi dokumen ini, kami belum mengonfirmasi bahwa semua fungsi tidak berkomunikasi atau konten transmisi yang sebenarnya.
Apakah Smart Connections mengirimkan catatan ke luar?
Versi tetap dari README menjelaskan bahwa itu membuat penyematan dan indeks dengan model lokal bawaan. Ini adalah penjelasan dari penyedia. Ada URL untuk konfirmasi pembaruan dan panduan awal dalam sumbernya sendiri, dan beberapa model dan pengaturan bergantung secara eksternal. Ada atau tidaknya transmisi catatan aktual dan komunikasi penuh tidak diukur dalam perbandingan ini.
Apakah includeClipboard=true di Text Generator berarti bahwa clipboard harus dikirim?
, ada cabang bahwa pembuat konteks dapat mengambil papan klip ketika pengaturannya benar. Di sisi lain, templat awal yang diposting menggunakan judul, starredBlocks, dan tg_selection, dan tidak menentukan papan klip. Nilai yang tersedia berbeda dari isi permintaan yang sebenarnya dirakit. Muatan yang sebenarnya tidak diukur.
Jika api_key dari data yang disimpan kosong, apakah kuncinya dienkripsi?
Itu tidak dapat ditentukan oleh bidang kunci kosong saja. Dalam Text Generator 0.8.7, ada proses penyimpanan yang mengosongkan bidang kunci biasa dan bidang penyimpanan lainnya, dan jika enkripsi tidak tersedia atau jika encrypt_keys dinonaktifkan, ada cabang yang mengembalikan awalan tetap dan kunci input. Saya belum mencoba penyimpanan kunci yang sebenarnya atau perilaku enkripsi platform.
Apakah artikel ini membandingkan kualitas respons AI, biaya, dan operasi iPhone?
Target perbandingan adalah jalur data dan pengaturan yang ditampilkan dalam materi dan kode resmi dari versi 3 tetap. Kami belum mengkonfirmasi instalasi plug-in, operasi sebenarnya dari layar pengaturan, pembuatan model, penagihan, komunikasi aktual, operasi terminal termasuk iPhone, dan kepatuhan terhadap kebijakan penyimpanan dan non-pembelajaran penyedia.

Versi terkonfirmasi dan teks asli dari dasar

Berikut ini adalah rilis resmi dan komitmen tetap yang tercatat di 14:25 UTC pada 30 September 2026. " Ini adalah versi yang dikonfirmasi pada saat itu, dan tidak menjamin versi terbaru di masa mendatang. Minimum Obsidian adalah nilai manifes. Operasi terminal yang sebenarnya tidak disimpulkan dari bendera yang kompatibel dengan Mobile.

Pendaftaran resmi juga telah diperbaiki untuk melakukan 2db5da29e67e7600176c8c9450fd1c36c3a6831b. Untuk kutipan 24, file 14, dan baris 579, kami telah mengkonfirmasi bahwa itu cocok dengan byte/SHA256, rentang baris, dan kutipan dari file asli. Ini adalah pemeriksaan untuk mengonfirmasi reproduktifitas dari versi tetap dari materi, dan ini bukan otentikasi privasi runtime.

Baca kutipan tetap 24 dan rentang konfirmasi dengan JSON

Deskripsi utama dan kutipan kode

Teks dan kode bahasa Inggris asli berada dalam lingkup komitmen tetap. Anda dapat melanjutkan ke teks asli GitHub dari nomor Q di atas meja.

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

Buka teks asli dari komit tetap

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

Buka teks asli dari komit tetap

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.
Kopilot · src/services/keychainService.ts · Q09

Buka teks asli dari komit tetap

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;
Sambungan Cerdas · src/main.js · Q13

Buka teks asli dari komit tetap

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) {
Pembuat Teks · src/default-settings.ts · Q15

Buka teks asli dari komit tetap

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: {
Pembuat Teks · src/scope/context-manager.ts · Q17

Buka teks asli dari komit tetap

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,
Pembuat Teks · src/main.ts · Q20

Buka teks asli dari komit tetap

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:     };
Pembuat Teks · src/main.ts · Q21

Buka teks asli dari komit tetap

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: 
Penghasil Teks · src/constants.ts · Q22

Buka teks asli dari komit tetap

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

Apa yang tidak dikonfirmasi dalam perbandingan ini

Kami belum mengkonfirmasi kepatuhan dengan instalasi plug-in, aktivasi, konfigurasi GUI, generasi, panggilan ke model/API, kunci asli, paket transmisi, audit jaringan dari seluruh ketergantungan, dan retensi, pembelajaran, dan kebijakan penghapusan backend penyedia. Input SimpleMemo, pengiriman, tag AI, sinkronisasi, perilaku berdasarkan terminal, kecepatan, produktivitas, arus masuk, dan efek kutipan AI juga tidak tercakup.

Ditulis oleh SimpleMemo Developer. Dalam perbandingan materi dari situs ini yang dioperasikan oleh YURIKA, K.K., ini bukan sertifikasi resmi Obsidian atau sertifikasi privasi dari setiap plug-in.