Skip to content

Commit

Permalink
🔨 Connect voice to medicopilot
Browse files Browse the repository at this point in the history
  • Loading branch information
henryhamon committed May 7, 2024
1 parent dfe832e commit 9a93d8f
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/dc/irisMediCopilot/interop/bp/Voice.cls
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ XData BPL [ XMLNamespace = "http://www.intersystems.com/bpl" ]
<process language='objectscript' request='Telegram.Request' response='dc.irisMediCopilot.interop.msg.resp.Voice' height='2000' width='2000' >
<context>
<property name='voiceResponse' type='dc.irisMediCopilot.interop.msg.resp.Voice' instantiate='0' />
<property name='audioResponse' type='St.OpenAi.Msg.Audio.AudioResponse' instantiate='0' />
<property name='audioRequest' type='St.OpenAi.Msg.Audio.AudioRequest' instantiate='0' />
<property name='promptRequest' type='dc.irisMediCopilot.interop.msg.req.Prompt' instantiate='0' />
</context>
<sequence xend='200' yend='650' >
<sequence xend='200' yend='950' >
<call name='Get Voice' target='VoiceFile.BusinessOperation' async='0' xpos='200' ypos='250' >
<request type='Telegram.Request' >
<assign property="callrequest" value="request" action="set" />
Expand All @@ -24,12 +26,23 @@ XData BPL [ XMLNamespace = "http://www.intersystems.com/bpl" ]
<assign property="context.voiceResponse" value="callresponse" action="set" />
</response>
</call>
<call name='Call Speech2Text' target='SpeechToText.Router' async='1' xpos='200' ypos='450' >
<call name='Call Speech2Text' target='SpeechToText.Router' async='0' xpos='200' ypos='350' >
<request type='dc.irisMediCopilot.interop.msg.resp.Voice' >
<assign property="callrequest" value="context.voiceResponse" action="set" />
</request>
<response type='St.OpenAi.Msg.Audio.AudioResponse' >
<assign property="context.audioResponse" value="callresponse" action="set" />
</response>
</call>
<transform name='OpenAi2MediCopilot' class='dc.irisMediCopilot.interop.dtl.OpenAi2Medicopilot' source='context.audioResponse' target='context.promptRequest' xpos='200' ypos='450' />
<assign name="chat id" property="context.promptRequest.chatId" value="request.Data.message.chat.id" action="set" xpos='200' ypos='550' />
<assign name="message id" property="context.promptRequest.messageId" value='request.Data.message."message_id"' action="set" xpos='200' ypos='650' />
<call name='Call MediCopilot' target='MediCopilot.Process' async='1' xpos='200' ypos='750' >
<request type='dc.irisMediCopilot.interop.msg.req.Prompt' >
<assign property="callrequest" value="context.promptRequest" action="set" />
</request>
</call>
<sync name='Wait Voice' calls='Get Voice,Call Speech2Text' type='all' xpos='200' ypos='550' />
<sync name='Wait Voice' calls='Get Voice,Call Speech2Text,Call MediCopilot' type='all' xpos='200' ypos='850' />
</sequence>
</process>
}
Expand Down
17 changes: 17 additions & 0 deletions src/dc/irisMediCopilot/interop/dtl/OpenAi2Medicopilot.cls
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Class dc.irisMediCopilot.interop.dtl.OpenAi2Medicopilot Extends Ens.DataTransformDTL [ DependsOn = (dc.irisMediCopilot.interop.msg.resp.Prompt, Telegram.Request) ]
{

Parameter IGNOREMISSINGSOURCE = 1;

Parameter REPORTERRORS = 1;

Parameter TREATEMPTYREPEATINGFIELDASNULL = 0;

XData DTL [ XMLNamespace = "http://www.intersystems.com/dtl" ]
{
<transform sourceClass ='St.OpenAi.Msg.Audio.AudioResponse' targetClass='dc.irisMediCopilot.interop.msg.req.Prompt' create='new' language='objectscript' >
<assign value='source.Text' property='target.content' action='set' />
</transform>
}

}

0 comments on commit 9a93d8f

Please sign in to comment.