Source — /var/www/goseek/database/seeders/AiProviderSeeder.php

/var/www/goseek/database/seeders/AiProviderSeeder.php

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\AiProvider;

class AiProviderSeeder extends Seeder
{
    public function run(): void
    {
        $providers = [
            ['name'=>'Ollama (Local)',      'slug'=>'ollama',    'type'=>'local',  'is_local'=>true,  'privacy_tier'=>'1', 'base_url'=>'http://10.133.133.2:11434', 'enabled'=>true,  'sort_order'=>1,
             'models'=>[['id'=>'llama3.2:3b','name'=>'Llama 3.2 3B'],['id'=>'llama3.3:70b','name'=>'Llama 3.3 70B'],['id'=>'deepseek-r1:70b','name'=>'Deepseek R1 70B'],['id'=>'qwen2.5:72b','name'=>'Qwen 2.5 72B']]],
            ['name'=>'Anthropic (Claude)', 'slug'=>'anthropic', 'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.anthropic.com',   'enabled'=>false, 'sort_order'=>2, 'models'=>[]],
            ['name'=>'OpenAI',             'slug'=>'openai',    'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.openai.com',      'enabled'=>false, 'sort_order'=>3, 'models'=>[
                ['id' => 'gpt-4o-mini', 'name' => 'GPT-4o Mini'],
                ['id' => 'gpt-4o', 'name' => 'GPT-4o'],
                ['id' => 'gpt-4.1-mini', 'name' => 'GPT-4.1 Mini'],
                ['id' => 'gpt-4.1', 'name' => 'GPT-4.1'],
            ]],
            ['name'=>'Google (Gemini)',     'slug'=>'google',    'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://generativelanguage.googleapis.com', 'enabled'=>false, 'sort_order'=>4, 'models'=>[]],
            ['name'=>'Deepseek',           'slug'=>'deepseek',  'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.deepseek.com',    'enabled'=>false, 'sort_order'=>5,
             'models'=>[['id'=>'deepseek-chat','name'=>'Deepseek Chat'],['id'=>'deepseek-reasoner','name'=>'Deepseek Reasoner']]],
            ['name'=>'Kimi (Moonshot)',     'slug'=>'kimi',      'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.moonshot.cn',     'enabled'=>false, 'sort_order'=>6,
             'models'=>[['id'=>'moonshot-v1-8k','name'=>'Kimi 8K'],['id'=>'moonshot-v1-32k','name'=>'Kimi 32K'],['id'=>'moonshot-v1-128k','name'=>'Kimi 128K']]],
            ['name'=>'Groq',               'slug'=>'groq',      'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.groq.com',        'enabled'=>false, 'sort_order'=>7,
             'models'=>[['id'=>'llama-3.3-70b-versatile','name'=>'Llama 3.3 70B'],['id'=>'mixtral-8x7b-32768','name'=>'Mixtral 8x7B']]],
            ['name'=>'Mistral',            'slug'=>'mistral',   'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.mistral.ai',      'enabled'=>false, 'sort_order'=>8,
             'models'=>[['id'=>'mistral-large-latest','name'=>'Mistral Large'],['id'=>'mistral-medium-latest','name'=>'Mistral Medium']]],
            ['name'=>'xAI (Grok)',         'slug'=>'xai',       'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.x.ai',            'enabled'=>false, 'sort_order'=>9,
             'models'=>[['id'=>'grok-2','name'=>'Grok 2'],['id'=>'grok-beta','name'=>'Grok Beta']]],
            ['name'=>'Cohere',             'slug'=>'cohere',    'type'=>'cloud',  'is_local'=>false, 'privacy_tier'=>'2', 'base_url'=>'https://api.cohere.com',      'enabled'=>false, 'sort_order'=>10,
             'models'=>[['id'=>'command-r-plus','name'=>'Command R+'],['id'=>'command-r','name'=>'Command R']]],
        ];

        foreach ($providers as $p) {
            AiProvider::updateOrCreate(
                ['slug' => $p['slug']],
                array_merge($p, ['models' => json_encode($p['models'] ?? [])])
            );
        }
    }
}