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>
45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
require 'openai'
|
|
|
|
class Captain::Copilot::ChatService < Llm::BaseOpenAiService
|
|
include Captain::ChatHelper
|
|
|
|
def initialize(assistant, config)
|
|
super()
|
|
|
|
@assistant = assistant
|
|
@conversation_history = config[:conversation_history]
|
|
@previous_messages = config[:previous_messages] || []
|
|
@language = config[:language] || 'english'
|
|
@messages = [system_message, conversation_history_context] + @previous_messages
|
|
@response = ''
|
|
end
|
|
|
|
def generate_response(input)
|
|
@messages << { role: 'user', content: input } if input.present?
|
|
response = request_chat_completion
|
|
Rails.logger.info("[CAPTAIN][CopilotChatService] Incrementing response usage for #{@assistant.account.id}")
|
|
@assistant.account.increment_response_usage
|
|
|
|
response
|
|
end
|
|
|
|
private
|
|
|
|
def system_message
|
|
{
|
|
role: 'system',
|
|
content: Captain::Llm::SystemPromptsService.copilot_response_generator(@assistant.config['product_name'], @language)
|
|
}
|
|
end
|
|
|
|
def conversation_history_context
|
|
{
|
|
role: 'system',
|
|
content: "
|
|
Message History with the user is below:
|
|
#{@conversation_history}
|
|
"
|
|
}
|
|
end
|
|
end
|