> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/pfrankov/obsidian-local-gpt/llms.txt
> Use this file to discover all available pages before exploring further.

# Settings Interface

> TypeScript interface for Local GPT settings and configuration

## LocalGPTSettings

The main settings interface for Local GPT plugin configuration.

```typescript theme={null}
interface LocalGPTSettings {
  aiProviders: {
    main: string | null;
    embedding: string | null;
    vision: string | null;
  };
  defaults: {
    creativity: string;
    contextLimit?: string;
  };
  actions: LocalGPTAction[];
  _version: number;
}
```

### Properties

<ParamField path="aiProviders" type="object" required>
  AI provider configuration for different capabilities

  <ParamField path="aiProviders.main" type="string | null">
    ID of the main AI provider for text generation
  </ParamField>

  <ParamField path="aiProviders.embedding" type="string | null">
    ID of the embedding provider for RAG (Retrieval-Augmented Generation)
  </ParamField>

  <ParamField path="aiProviders.vision" type="string | null">
    ID of the vision provider for image processing
  </ParamField>
</ParamField>

<ParamField path="defaults" type="object" required>
  Default settings for action execution

  <ParamField path="defaults.creativity" type="string" required>
    Default creativity level: `""` (none), `"low"`, `"medium"`, or `"high"`
  </ParamField>

  <ParamField path="defaults.contextLimit" type="string">
    Preset that controls the overall limit for context chunks in Enhanced Actions (RAG)

    **Values:**

    * `"local"` - 10,000 tokens
    * `"cloud"` - 32,000 tokens
    * `"advanced"` - 100,000 tokens
    * `"max"` - 3,000,000 tokens
  </ParamField>
</ParamField>

<ParamField path="actions" type="LocalGPTAction[]" required>
  Array of custom actions available in the plugin. See [Actions](/api/actions) for details.
</ParamField>

<ParamField path="_version" type="number" required>
  Settings schema version number for migration purposes
</ParamField>

## Default Settings

The plugin ships with these default settings:

```typescript src/defaultSettings.ts theme={null}
export const DEFAULT_SETTINGS: LocalGPTSettings = {
  aiProviders: {
    main: null,
    embedding: null,
    vision: null,
  },
  defaults: {
    creativity: "low",
    contextLimit: "local",
  },
  actions: [
    {
      name: "🪄 General help",
      prompt: "",
      system: "You are an assistant helping a user write more content...",
    },
    {
      name: "✍️ Continue writing",
      prompt: "Act as a professional editor...",
      system: "You are an AI assistant that follows instruction extremely well...",
    },
    {
      name: "🍭 Summarize",
      prompt: "Make a concise summary of the key points...",
      system: "You are an AI assistant that follows instruction extremely well...",
    },
    {
      name: "📖 Fix spelling and grammar",
      prompt: "Proofread the below for spelling and grammar.",
      system: "You are an AI assistant that follows instruction extremely well...",
      replace: true,
    },
    {
      name: "✅ Find action items",
      prompt: "Act as an assistant helping find action items...",
      system: "You are an AI assistant that follows instruction extremely well...",
    },
    {
      name: "🧠 New System Prompt",
      prompt: "",
      system: "You are a highly skilled AI prompt engineer...",
    },
  ],
  _version: 8,
};
```

## Creativity Levels

Creativity levels map to temperature values:

```typescript src/defaultSettings.ts theme={null}
export const CREATIVITY: { [index: string]: any } = {
  "": {
    temperature: 0,
  },
  low: {
    temperature: 0.2,
  },
  medium: {
    temperature: 0.5,
  },
  high: {
    temperature: 1,
  },
};
```

## Template Keywords

Special keywords used in prompts:

```typescript src/defaultSettings.ts theme={null}
export const SELECTION_KEYWORD = "{{=SELECTION=}}";
export const CONTEXT_KEYWORD = "{{=CONTEXT=}}";
export const CONTEXT_CONDITION_START = "{{=CONTEXT_START=}}";
export const CONTEXT_CONDITION_END = "{{=CONTEXT_END=}}";
```

<Note>
  These keywords are automatically replaced during action execution with actual content from the editor selection and linked files.
</Note>
