76 lines
2.0 KiB
Ruby
76 lines
2.0 KiB
Ruby
# Setup initial environment for Docker
|
|
account = Account.find_by(name: 'Chatwoot') || Account.create!(name: 'Chatwoot', locale: 'en')
|
|
|
|
user = User.find_by(email: 'admin@chatwoot.com')
|
|
unless user
|
|
user = User.create!(
|
|
name: 'Admin',
|
|
email: 'admin@chatwoot.com',
|
|
password: 'Password123!',
|
|
password_confirmation: 'Password123!'
|
|
)
|
|
user.confirm
|
|
end
|
|
|
|
if account.users.exclude?(user)
|
|
AccountUser.create!(
|
|
account: account,
|
|
user: user,
|
|
role: 'administrator'
|
|
)
|
|
end
|
|
|
|
# Create Inbox
|
|
channel = Channel::Whatsapp.find_by(phone_number: '+5511999999999')
|
|
unless channel
|
|
channel = Channel::Whatsapp.new(
|
|
account: account,
|
|
phone_number: '+5511999999999',
|
|
provider: 'wuzapi',
|
|
provider_config: {
|
|
'wuzapi_base_url' => 'http://wuzapi:8080',
|
|
'wuzapi_user_token' => 'secret_token',
|
|
'webhook_url' => 'https://f3eaf72e73cf4a94-189-6-11-5.serveousercontent.com/webhooks/whatsapp/+5511999999999'
|
|
}
|
|
)
|
|
channel.save(validate: false)
|
|
end
|
|
|
|
inbox = Inbox.find_by(name: 'borbaazul')
|
|
inbox ||= Inbox.create!(
|
|
name: 'borbaazul',
|
|
account: account,
|
|
channel: channel
|
|
)
|
|
|
|
# Create Assistant
|
|
assistant_config = {
|
|
'product_name' => 'Hotel 1001 Prime',
|
|
'instructions' => 'Você é Jasmine, a gerente virtual do Hotel 1001 Noites Prime.',
|
|
'feature_faq' => true,
|
|
'feature_memory' => true,
|
|
'handoff_message' => 'Entendi. Vou chamar um atendente humano.'
|
|
}
|
|
|
|
assistant = Captain::Assistant.find_by(name: 'Jasmine (Gerente)')
|
|
assistant ||= Captain::Assistant.create!(
|
|
name: 'Jasmine (Gerente)',
|
|
account: account,
|
|
description: 'Gerente virtual',
|
|
llm_provider: 'openai',
|
|
llm_model: 'gpt-4o-mini',
|
|
api_key: ENV.fetch('OPENAI_API_KEY', 'sk-placeholder-key'),
|
|
config: assistant_config
|
|
)
|
|
|
|
# Link Captain
|
|
CaptainInbox.find_or_create_by!(
|
|
inbox: inbox,
|
|
assistant: assistant
|
|
)
|
|
|
|
puts '✅ Environment Setup Complete!'
|
|
puts 'User: admin@chatwoot.com / Password123!'
|
|
puts "Inbox: #{inbox.name} (ID: #{inbox.id})"
|
|
puts "Assistant: #{assistant.name} (ID: #{assistant.id})"
|