/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'] ?? [])])
);
}
}
}