Files
chatwoot/lib/integrations/openai/processor_service.rb

40 lines
964 B
Ruby

class Integrations::Openai::ProcessorService
pattr_initialize [:hook!, :event!]
def perform
rephrase_message if event['name'] == 'rephrase'
end
private
def rephrase_body(tone, message)
{
model: 'gpt-3.5-turbo',
messages: [
{ role: 'system', content: "You are a helpful support agent. Please rephrase the following response to a more #{tone} tone." },
{ role: 'user', content: message }
]
}.to_json
end
def rephrase_message
response = make_api_call(rephrase_body(event['data']['tone'], event['data']['content']))
JSON.parse(response)['choices'].first['message']['content']
end
def make_api_call(body)
headers = {
'Content-Type' => 'application/json',
'Authorization' => "Bearer #{hook.settings['api_key']}"
}
response = HTTParty.post(
'https://api.openai.com/v1/chat/completions',
headers: headers,
body: body
)
response.body
end
end