> For the complete documentation index, see [llms.txt](https://docs.aios.foundation/aios-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aios.foundation/aios-docs/getting-started/environment-variables-configuration.md).

# Environment Variables Configuration

The configuration file can be found at the following relative path in your installation directory of AIOS:&#x20;

```arduino
aios/config/config.yaml
```

AIOS supports several API integrations that require configuration. You can use the following commands:

* `aios env list`: Show current environment variables, or show available API keys if no variables are set
* `aios env set`: Show current environment variables, or show available API keys if no variables are set
* `aios refresh`: Refresh AIOS configuration.
  * Reloads the configuration from `aios/config/config.yaml`.
  * Reinitializes all components without restarting the server.
  * The server must be running.

When no environment variables are set, the following API keys will be shown:

* `OPENAI_API_KEY`: OpenAI API key for accessing OpenAI services
* `GEMINI_API_KEY`: Google Gemini API key for accessing Google's Gemini services
* `DEEPSEEK_API_KEY`: Deepseek API key for accessing Deepseek services
* `ANTHROPIC_API_KEY`: Anthropic API key for accessing Anthropic Claude services
* `GROQ_API_KEY`: Groq API key for accessing Groq services
* `HF_AUTH_TOKEN`: HuggingFace authentication token for accessing models
* `HF_HOME`: Optional path to store HuggingFace models

To obtain these API keys:&#x20;

1. OpenAI API: Visit <https://platform.openai.com/api-keys>
2. Google Gemini API: Visit <https://makersuite.google.com/app/apikey>
3. Deepseek API: Visit <https://api-docs.deepseek.com/>
4. Anthropic Claude API: Visit <https://console.anthropic.com/settings/keys>
5. Groq API: Visit <https://console.groq.com/keys>
6. HuggingFace Token: Visit <https://huggingface.co/settings/tokens>

**API Keys**:

```yaml
openai: "your-openai-key"
gemini: "your-gemini-key"
deepseek: "your-deepseek-key"
groq: "your-groq-key"
anthropic: "your-anthropic-key"
huggingface:
  auth_token: "your-huggingface-token"
  cache: "optional-path"
```

**Model Settings**:

{% hint style="info" %}
It is required to follow the following parameters to set up different backends as below
{% endhint %}

<table><thead><tr><th width="200.88494873046875">Backend Type</th><th width="556.3978271484375">Required Parameters</th></tr></thead><tbody><tr><td>openai</td><td><code>name</code>, <code>backend</code></td></tr><tr><td>anthropic</td><td><code>name</code>, <code>backend</code></td></tr><tr><td>google</td><td><code>name</code>, <code>backend</code></td></tr><tr><td>ollama</td><td><code>name</code>, <code>backend</code>, <code>host_name</code></td></tr><tr><td>vLLM</td><td><code>name</code>, <code>backend</code>, <code>host_name</code></td></tr><tr><td>huggingface</td><td><code>name</code>, <code>backend</code>, <code>max_gpu_memory</code>, <code>eval_device</code></td></tr></tbody></table>

The example of how to set up different models are as below

```yaml
# LLM Configuration
llms:
  models:
    # OpenAI backend
    # - name: "gpt-4o-mini"
    #   backend: "openai"

    # Google Models
    # - name: "gemini-1.5-flash"
    #   backend: "google"

    # Anthropic Models
    # - name: "claude-3-opus"
    #   backend: "anthropic"

    # Ollama backend
    # - name: "qwen2.5:7b"
    #  backend: "ollama"
    #  hostname: "http://localhost:11434" # Make sure to run ollama server

    # HuggingFace backend
    # - name: "meta-llama/Llama-3.1-8B-Instruct"
    #   backend: "huggingface"
    #   max_gpu_memory: {0: "48GB"}  # GPU memory allocation
    #   eval_device: "cuda:0"  # Device for model evaluation
    
    # vLLM Models
    # To use vllm as backend, you need to install vllm and run the vllm server https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html
    # An example command to run the vllm server is:
    # vllm serve meta-llama/Llama-3.2-3B-Instruct --port 8091
    # - name: "meta-llama/Llama-3.1-8B-Instruct"
    #  backend: "vllm"
    #  hostname: "http://localhost:8091"

  log_mode: "console"
  use_context_manager: false
```

**Memory Settings**:

```yaml
log_mode: "console" # can be "console" or "file"
```

**Storage Settings**:

```yaml
root_dir: "root"
use_vector_db: true
```

**Scheduler Settings**:

```yaml
log_mode: "console" # can be "console" or "file"
```
