feat: Add support for multi-language support for Captain (#11068)
This PR implements the following features - FAQs from conversations will be generated in account language - Contact notes will be generated in account language - Copilot chat will respond in user language, unless the agent asks the question in a different language ## Changes ### Copilot Chat - Update the prompt to include an instruction for the language, the bot will reply in asked language, but will default to account language - Update the `ChatService` class to include pass the language to `SystemPromptsService` ### FAQ and Contact note generation - Update contact note generator and conversation generator to include account locale - Pass the account locale to `SystemPromptsService` <details><summary>Screenshots</summary> #### FAQs being generated in system langauge  #### Copilot responding in system language  </details> --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: Pranav <pranav@chatwoot.com>
This commit is contained in:
@@ -108,4 +108,30 @@ RSpec.describe Account do
|
||||
expect(ActiveRecord::Base.connection.execute(query).count).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'locale' do
|
||||
it 'returns correct language if the value is set' do
|
||||
account = create(:account, locale: 'fr')
|
||||
expect(account.locale).to eq('fr')
|
||||
expect(account.locale_english_name).to eq('french')
|
||||
end
|
||||
|
||||
it 'returns english if the value is not set' do
|
||||
account = create(:account, locale: nil)
|
||||
expect(account.locale).to be_nil
|
||||
expect(account.locale_english_name).to eq('english')
|
||||
end
|
||||
|
||||
it 'returns english if the value is empty string' do
|
||||
account = create(:account, locale: '')
|
||||
expect(account.locale).to be_nil
|
||||
expect(account.locale_english_name).to eq('english')
|
||||
end
|
||||
|
||||
it 'returns correct language if the value has country code' do
|
||||
account = create(:account, locale: 'pt_BR')
|
||||
expect(account.locale).to eq('pt_BR')
|
||||
expect(account.locale_english_name).to eq('portuguese')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user