Obsidian / Ruta de datos del complemento AI

Compruebe con materiales oficiales y fuentes fijas

Ubicación actual del complemento Obsidian×AI
Qué se puede hacer y es peligroso [2026]

Esta página es una traducción automática del original en japonés. Leer el original en japonés

¿Qué parte del cuaderno va desde qué función? Lea la versión fija de Copilot, Smart Connections y Text Generator, y compare las partes no confirmadas de la comunicación real con las que se pueden entender en el material.

Antes de elegir, mira el modelo, el contexto, el índice y las funciones adicionales

La palabra "soporte local" por sí sola no determina el destino de todo el complemento. Los extractos de notas pasadas al modelo, dónde hacer un índice, búsqueda web y servicios de conversión de documentos, y confirmación de diagnóstico y actualización se comprueban por separado.

  1. Modeloproveedor・punto final・agente
  2. Contexto de referenciaSelecciones, extractos, plantillas
  3. Indexar y buscarServidor local u otro
  4. Funciones adicionalesWeb, conversión de documentos, diagnóstico, actualización

Este diagrama es una organización para leer materiales oficiales. No es un registro de comunicación real. La comparación es una confirmación de materiales y fuentes fijos, y no incluye el funcionamiento de la pantalla de configuración ni la auditoría de operación de solicitudes y proveedores reales.

Primero, compruebe la ruta de la función que desea utilizar en la siguiente tabla. El "source" en la tabla representa las constantes y ramas leídas del código, y "source description" representa la descripción del README y la guía.

Compare las versiones fijas de 3 con el destino y la configuración

Documentos oficiales adquiridos en 30 de septiembre de 2026. No es una tabla de resultados de comunicación real.
Versión fijaLa ruta que se muestra en el documentoContexto e índiceConfirmación de claves y ajustesQueda sin confirmar
Copiloto
4.0.12
Explicación del proveedor:El alojado es Brevilabs y el proveedor empresarial. Cloud BYOK es el proveedor/punto final especificado, y Local BYOK es el punto final local. Opencode, Claude y Codex también tienen sus propias rutas. Q03Los extraptos de las notas seleccionadas van al contexto del modelo. El índice y el destino de búsqueda de Miyo son locales/remotos en un entorno separado. Compruebe la ruta adicional para la búsqueda en la web, la conversión de documentos y el contexto del proyecto. Q03 / Q05Fuente:getter para comprobar la disponibilidad de SecretStorage. Constantes iniciales como enableMiyo=false y activeBackend=opencode. El almacenamiento real y la interfaz gráfica de usuario actual no se han confirmado. Q07/Q08/Q09Cumplimiento de la carga útil real, objetivo de índice, almacenamiento y cifrado de claves de terminal, retención de backend, política de no aprendizaje. La carga de ZIP de diagnóstico autoseleccionada generalmente se distingue de la solicitud.
Conexiones inteligentes
4.7.2
Descripción del proveedor: Guía para el modelo de incrustación local incorporado. Explica cómo crear un índice que no requiera la clave API. Q10/Q11README explica que crea un índice de Vault después de habilitar. Algunas de las configuraciones y modelos dependen externamente. No se ha leído la ruta de datos de todas las configuraciones.Fuente: Hay GET a GitHub último lanzamiento y URL dados a la guía inicial. A partir de la explicación de la incrustación local, no se puede determinar que no haya comunicación completa. Q12 / Q13Adquisición real de índice y modelo, dependencia completa, comunicación real y carga útil, modelo alternativo, almacenamiento de claves y telemetría/retención general.
Generador de texto
0.8.7
Valor inicial de la fuente:OpenAI Chat (Langchain), https://api.openai.com/v1, la clave está vacía. El proveedor de Ollama recibe el conjunto basePath. Q15/ Q23 / Q24Una rama que puede obtener un valor con includeClipboard=true. La plantilla inicial es title・starredBlocks・tg_selection. El valor incluido en el aviso real debe comprobarse por separado. Q15/Q17Valor inicial de la fuente:encrypt_keys=false. Si no se puede cifrar/es inválido, es una rama que devuelve un prefijo fijo + clave de entrada. Incluso si el campo de clave Plain está vacío, no se puede determinar que ha sido cifrado. Q15 / Q19 / Q20 / Q21 / Q22Carga útil real, GUI actual, resultados de cifrado de terminales, comunicación de funciones completas, calidad de facturación y respuesta, y telemetría/retención general.

BYOK es un método que utiliza sus propias claves y puntos finales. " "Use su propia clave" y "el procesamiento permanecerá solo en la terminal" son condiciones diferentes.

Copiloto: Incluso si eliges un modelo, la ruta de las funciones adicionales permanece por separado

La versión fija de la guía separa los destinos de procesamiento alojados, Cloud BYOK, Local BYOK, opencode, Claude y Codex. Por ejemplo, incluso si el modelo LOCAL BYOK se explica como un punto final local, otro servicio puede estar involucrado dependiendo de la habilidad y el contexto del proyecto utilizado. Q03

Separar referencias de notas e índices Miyo

El material explica que el agente lee las notas y pone las partes necesarias en el aviso del modelo de selección. " El comportamiento de "subir todo el Vault solo abriendo el chat del agente" no se explica. Miyo tiene una conexión local y una conexión de servidor remoto, y el índice y el destino de búsqueda se seleccionan por separado. El extracto encontrado en la búsqueda también encaja en el contexto del modelo. Solo usando el índice local, no se puede decir que el extracto no pase al proveedor del modelo. Q03/Q05

El procesamiento de documentos no es uniforme. Según el documento, el procesamiento Miyo de Agent Chat se realiza mediante CLI local, Quick Chat utiliza el servicio Miyo de destino de conexión, y si es remoto, es procesado por ese servidor. El contexto de proyecto guardado que utiliza Web, YouTube y archivos binarios puede usar el servicio de proyecto alojado, y es una ruta diferente de la selección de Miyo. Q03

El modo Self-Host no garantiza el bloqueo de la comunicación

La guía especifica que la nube no se desactiva ni siquiera en el modo Self-Host. La ruta enviada al Claude seleccionado, Codex, modelo de nube, proveedor de búsqueda, etc. seleccionado permanecerá. Esta es una configuración para cada función para comprobar si la función que desea utilizar y el destino de procesamiento aceptable coinciden. Q04

El geter de claves, la constante inicial y la política de diagnóstico se leen sobre su propia base

El alcance de KeychainService confirmado es un getter que comprueba la presencia de app.secretStorage, y si no, causará un error. No es el resultado de guardar realmente la clave o un registro de verificación del cifrado del sistema operativo. enableMiyo=false, enableMiyoSearchSkill=false, activeBackend=opencode, debugFullFrames=true son los valores iniciales en la fuente y no muestran el valor de la configuración migrada o la interfaz gráfica de usuario del lector. Q07/Q08/Q09

El README describe el UUID aleatorio de las solicitudes alojadas y el archivo ZIP de diagnóstico que el usuario elige subir. La eliminación del ZIP tras 60 días, el procesamiento temporal de las solicitudes alojadas y la ausencia de conservación y entrenamiento son políticas declaradas por el proveedor. Aquí no se auditó la operación del backend. Tampoco se puede concluir, solo a partir de debugFullFrames=true, que el ZIP de diagnóstico se envíe automáticamente. Q02

Conexiones inteligentes: Explicación de la incrustación local y la presencia o ausencia de toda la comunicación

El README indica que el modelo local integrado indexa Vault sin necesitar una clave de API. Esto describe un mecanismo para encontrar notas relacionadas, pero en esta comparación no ejecutamos el modelo ni observamos la indexación real o las comunicaciones de red. También tratamos las afirmaciones del README sobre privacidad, funcionamiento sin conexión y dispositivos móviles como declaraciones del proveedor. Q10 / Q11

Por otro lado, su propio src/main.js tiene un código para reservar GET de la confirmación de actualización después de inicializar el último lanzamiento de GitHub. URL de smartconnections.app se pasa al StoryModal del primer usuario. Esta es una confirmación de la ruta del código relacionada con la comunicación. La implementación de StoryModal está en el lado dependiente, y no está confirmado si URL se cargó realmente o qué carga útil se pasó. Q12 / Q13

Algunos de los modelos, configuraciones, HTTP, etc. se refieren a paquetes externos relacionados con Smart Environment/jsbrains. Solo con este rango, no se puede determinar que "todas las funciones están en el terminal", "no hay telemetría" y "siempre se enviarán notas". Si separa la explicación del índice local, el código de confirmación de actualización y la dependencia no confirmada y la comunicación real, puede ver el objeto adicional a examinar. Q14

Generador de texto: Compruebe los candidatos de contexto y las ramas de almacenamiento clave

La configuración que puede recuperar el portapapeles y el mensaje real es diferente

La configuración inicial de la versión fija tiene includeClipboard=true, y el generador de contexto tiene una rama que le permite obtener el portapapeles si el valor es verdadero. Por otro lado, los title, starredBlocks y tg_selection en la plantilla inicial citada no son marcadores de posición en portapapeles. Q15/ Q17

El valor resuelto cambia dependiendo de la plantilla, la materia principal, las opciones de contexto y el rango de selección. No trate la lista de valores disponibles como los valores de la solicitud real como los mismos. Esta confirmación del código no da como resultado que "el portapapeles siempre se envía" o "todos los Vault siempre se envían". Q17/Q18

Los caracteres en el campo de clave simple no son evidencia de cifrado

El valor inicial es encrypt_keys=false. Hay un proceso de vaciado de la columna clave simple al guardar, y un proceso de preparación de otro campo relacionado con el secreto. Cuando el cifrado no está disponible o encrypt_keys está desactivado, getEncryptedKey devuelve un valor que conecta el prefijo fijo y la clave de entrada. Incluso si el nombre del campo contiene cifrado/hashed, no se puede determinar que son bytes cifrados por sí mismo. Q15 / Q19 / Q20 / Q21 / Q22

Como no se introdujo ninguna clave, no se verificaron el contenido realmente guardado ni el funcionamiento de safeStorage en este dispositivo. Antes de compartir archivos de configuración o registros de diagnóstico que contengan claves, revisa tanto el campo plain como los demás valores almacenados.

Seleccione el proveedor inicial y la correspondencia local por separado

El proveedor inicial de la fuente es OpenAI Chat (Langchain), y el punto final es https://api.openai.com/v1. El proveedor de Ollama tiene una implementación que recibe el conjunto basePath. El hecho de que haya un proveedor compatible con local por sí solo no prueba que no haya un destino de procesamiento o comunicación completa para otras funciones. Q15 / Q23 / Q24

La solicitud adjunta, las sugerencias automáticas, las sugerencias de barras y la ejecución de JavaScript están APAGADOs en el valor inicial cotizado. Estas tampoco son las medidas reales de la GUI actual. Por favor, compruebe la plantilla que desea utilizar y la configuración guardada en su entorno. Q15/Q16

Decida la configuración a comprobar según su uso

Lo que quiero hacerObjetivo por confirmarLo que no puedes entender solo con esta comparación
Manejo de notas en el modelo de nubemodelo/proveedor/punto final, selección, extracto, plantilla, agente/Habilidad utilizadaCarga útil real, operación del proveedor, facturación, calidad de la respuesta
Quiero hacer un índice localmentedestino de procesamiento de incrustación/indexación, configuración del servidor remoto, modelo de back-end, adquisición de modelo y funciones adicionalesDetención de comunicación para todas las funciones, todas las rutas dependientes e índice real en la terminal
Quiero saber el alcance de guardar y compartir clavesCampos a guardar, ramas que no se pueden cifrar y dónde compartir registros/diagnósticos/configuracionesCumplimiento con los bytes de almacenamiento reales, retención de backend y eliminación del terminal

El estado después de cambiar la configuración no es el resultado de la medición real en esta tabla. Antes de usar su cuaderno, utilícelo como un método de lectura para decidir qué funciones usar y a qué datos pasar.

Preguntas frecuentes

Si selecciono un modelo local, ¿el plug-in no se comunicará en absoluto?
El destino de procesamiento del modelo y el índice, la búsqueda web, la conversión de documentos y la confirmación de actualización son rutas diferentes. Los documentos del copiloto distinguen la ruta de funciones adicionales, y el propio código de Smart Connections tiene la confirmación de actualización GitHub GET. En esta confirmación de documento, no hemos confirmado que todas las funciones no se comuniquen o el contenido real de la transmisión.
¿Smart Connections envía notas al exterior?
La versión fija de README explica cómo crear incrustación e indexación con un modelo local incorporado. Esta es la explicación del proveedor. Hay un URL para la confirmación de la actualización y la orientación inicial en su propia fuente, y algunos modelos y configuraciones dependen externamente. La presencia o ausencia de transmisión real de notas y comunicación completa no se mide en esta comparación.
¿IncluyeClipboard=true En Text Generator Significa Que El Portapapeles Debe Enviarse?
En el código fuente hay una rama que permite al context builder leer el portapapeles cuando ese ajuste es true. Sin embargo, la plantilla inicial mostrada utiliza title, starredBlocks y tg_selection y no incluye clipboard. Un valor disponible y el contenido de una solicitud realmente construida son cosas distintas. No se midió el payload real.
Si la clave API de los datos guardados está vacía, ¿está encriptada la clave?
No es posible juzgar solo por campos clave vacíos. En Text Generator 0.8.7, hay un proceso de guardado que vacía el campo de clave simple y otro campo de guardado, y si el cifrado no está disponible o si encrypt_keys está desactivado, hay una rama que devuelve un prefijo fijo y una clave de entrada. No he probado el almacenamiento real de claves o el comportamiento de cifrado de la plataforma.
¿Este artículo compara la calidad de la respuesta de IA, las tarifas y la operación iPhone?
El objetivo de comparación es la ruta de datos y la configuración que se muestran en los materiales oficiales y el código de la versión fija 3. No hemos confirmado la instalación de plug-ins, el funcionamiento real de la pantalla de configuración, la generación de modelos, la facturación, la comunicación real, el funcionamiento de terminales, incluido iPhone, y el cumplimiento de las políticas de almacenamiento y no aprendizaje del proveedor.

Versión confirmada y el texto original de la base

Lo siguiente es el lanzamiento oficial y la confirmación fija registrada en 30 de septiembre de 2026 14:25 UTC. " Es la versión confirmada en ese momento, y no garantiza la última versión en el futuro. El mínimo Obsidian es el valor del manifiesto. El funcionamiento del terminal real no se infiere del indicador compatible con dispositivos móviles.

El registro oficial también se ha arreglado para comprometer 2db5da29e67e7600176c8c9450fd1c36c3a6831b. Para la cotización 24, el archivo 14 y la línea 579, hemos confirmado que coincide con los bytes/SHA256, el rango de líneas y la cita del archivo original. Es una comprobación para confirmar la reproducibilidad de la versión fija del material, y no es una autenticación de privacidad en tiempo de ejecución.

Lea las cotizaciones fijas y el rango de confirmación de 24 en JSON

Descripción principal y cita del código

El texto y el código originales en inglés están dentro del alcance de la confirmación fija. Puede proceder al texto original de GitHub desde el número Q en la tabla.

Copiloto · documentos/copiloto-plus-y-auto-host.md · Q03

Abre el texto original de la confirmación fija

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.
Copiloto · documentos/copiloto-plus-y-auto-host.md · Q04

Abre el texto original de la confirmación fija

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

Abre el texto original de la confirmación fija

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

Abre el texto original de la confirmación fija

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) {
Generador de texto · src/default-settings.ts · Q15

Abre el texto original de la confirmación fija

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: {
Generador de texto · src/scope/context-manager.ts · Q17

Abre el texto original de la confirmación fija

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,
Generador de texto · src/main.ts · Q20

Abre el texto original de la confirmación fija

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:     };
Generador de texto · src/main.ts · Q21

Abre el texto original de la confirmación fija

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: 
Generador de texto · src/constants.ts · Q22

Abre el texto original de la confirmación fija

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

Lo que no se confirma en esta comparación

La instalación de plug-ins, la activación, la GUI de configuración, la generación, la llamada al modelo/API, la clave real, el paquete de transmisión, la auditoría de la red de todas las dependencias y el cumplimiento de las políticas de retención, aprendizaje y eliminación del backend del proveedor no se han confirmado. La entrada SimpleMemo, la entrega, las etiquetas de IA, la sincronización, el comportamiento por terminal, la velocidad, la productividad, la entrada y los efectos de cita de IA tampoco están cubiertos.

Escrito por SimpleMemo Developer. En la comparación de materiales de este sitio operado por YURIKA, K.K., no es la certificación oficial de Obsidian o la certificación de privacidad de cada complemento.