152 lines
4.2 KiB
Markdown
152 lines
4.2 KiB
Markdown
# Configuration
|
|
|
|
Edison provides several ways to configure its behavior to suit your needs. This guide explains the available configuration options and how to set them.
|
|
|
|
## Configuration File
|
|
|
|
The primary way to configure Edison is through the `edison.yaml` file. This file is located in the Edison installation directory.
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
A[edison.yaml] --> B[OpenAI Settings]
|
|
A --> C[Safety Settings]
|
|
A --> D[Shell Settings]
|
|
|
|
B --> B1[Model]
|
|
B --> B2[Temperature]
|
|
B --> B3[Max Tokens]
|
|
B --> B4[API Key]
|
|
|
|
C --> C1[Safety Mode]
|
|
|
|
D --> D1[Shell Type]
|
|
|
|
style A fill:#f9d5e5,stroke:#333,stroke-width:2px
|
|
style B fill:#eeeeee,stroke:#333,stroke-width:2px
|
|
style C fill:#d3f6db,stroke:#333,stroke-width:2px
|
|
style D fill:#d3f6f5,stroke:#333,stroke-width:2px
|
|
```
|
|
|
|
### Sample Configuration File
|
|
|
|
Here's an example `edison.yaml` file with all available options:
|
|
|
|
```yaml
|
|
# OpenAI API settings
|
|
model: gpt-4o-mini
|
|
temperature: 0
|
|
max_tokens: 500
|
|
openai_api_key: your_api_key_here # Optional, can be set via environment variable
|
|
streaming: true # Enable streaming command generation
|
|
|
|
# Safety settings
|
|
safety: true
|
|
|
|
# UI settings
|
|
show_generating_prefix: true # Show "Generating command:" prefix during generation
|
|
|
|
# Shell settings
|
|
shell: bash # Options: bash, zsh, powershell.exe, cmd.exe, etc.
|
|
```
|
|
|
|
## Configuration Options
|
|
|
|
### OpenAI API Settings
|
|
|
|
| Option | Description | Default | Possible Values |
|
|
|--------|-------------|---------|----------------|
|
|
| model | OpenAI model to use | gpt-4o-mini | gpt-4o-mini, gpt-3.5-turbo, gpt-4, etc. |
|
|
| temperature | Randomness of completions | 0 | 0.0 - 1.0 |
|
|
| max_tokens | Maximum tokens in response | 500 | 1 - 4096 |
|
|
| openai_api_key | Your OpenAI API key | - | Valid API key |
|
|
| streaming | Enable streaming command generation | true | true, false |
|
|
|
|
### Safety Settings
|
|
|
|
| Option | Description | Default | Possible Values |
|
|
|--------|-------------|---------|----------------|
|
|
| safety | Require confirmation before execution | true | true, false |
|
|
|
|
### UI Settings
|
|
|
|
| Option | Description | Default | Possible Values |
|
|
|--------|-------------|---------|----------------|
|
|
| show_generating_prefix | Show "Generating command:" prefix during generation | true | true, false |
|
|
|
|
### Shell Settings
|
|
|
|
| Option | Description | Default | Possible Values |
|
|
|--------|-------------|---------|----------------|
|
|
| shell | Shell to use for command execution | (system default) | bash, zsh, powershell.exe, cmd.exe, etc. |
|
|
|
|
## Setting Your OpenAI API Key
|
|
|
|
There are several ways to set your OpenAI API key, listed in order of precedence:
|
|
|
|
1. **Environment variable**:
|
|
- Linux/macOS: `export OPENAI_API_KEY=<yourkey>`
|
|
- Windows: `$env:OPENAI_API_KEY="<yourkey>"`
|
|
|
|
2. **API key file**:
|
|
Create a file at `~/.openai.apikey` containing only your API key.
|
|
|
|
3. **Configuration file**:
|
|
Add your key to the `edison.yaml` file:
|
|
```yaml
|
|
openai_api_key: your_api_key_here
|
|
```
|
|
|
|
## Viewing Current Configuration
|
|
|
|
To view your current configuration:
|
|
|
|
```bash
|
|
edison -c
|
|
```
|
|
|
|
This will display all current settings, including where your OpenAI API key is being loaded from (but will not display the key itself for security reasons).
|
|
|
|
## Configuration Load Order
|
|
|
|
Edison loads configuration in this order:
|
|
|
|
1. Default values
|
|
2. Values from `edison.yaml`
|
|
3. Environment variables (for API key)
|
|
4. Command-line arguments
|
|
|
|
Later sources override earlier ones.
|
|
|
|
## Recommended Configurations
|
|
|
|
### For Beginners
|
|
|
|
```yaml
|
|
model: gpt-4o-mini
|
|
temperature: 0
|
|
max_tokens: 500
|
|
safety: true
|
|
```
|
|
|
|
### For Advanced Users
|
|
|
|
```yaml
|
|
model: gpt-4 # If you have access
|
|
temperature: 0.2 # Slightly more creative
|
|
max_tokens: 1000 # For more detailed responses
|
|
safety: true # Keep safety on unless you really know what you're doing
|
|
```
|
|
|
|
### For Performance
|
|
|
|
```yaml
|
|
model: gpt-3.5-turbo # Fastest option if you need maximum speed
|
|
temperature: 0
|
|
max_tokens: 300 # Lower limits can be faster
|
|
```
|
|
|
|
## Troubleshooting Configuration Issues
|
|
|
|
- **Configuration not applying**: Ensure your `edison.yaml` file is in the correct location
|
|
- **API key not recognized**: Check for extra whitespace or quotes in your key
|
|
- **Model not available**: Verify you have access to the specified model in your OpenAI account |