From afec644789080fdd8e6e54f37f2ee9915470c29d Mon Sep 17 00:00:00 2001 From: Shuguang Chen <54548843+nehcgs@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:14:44 -0800 Subject: [PATCH] Update the logic of intent detection --- model_server/app/main.py | 2 ++ .../app/model_handler/function_calling.py | 28 +++++++++++-------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/model_server/app/main.py b/model_server/app/main.py index d615c086..c798bd8d 100644 --- a/model_server/app/main.py +++ b/model_server/app/main.py @@ -69,6 +69,8 @@ async def function_calling(req: ChatMessage, res: Response): # logger.error(f"Error in chat_completion from `Arch-Function`: {e}") res.status_code = 500 return {"error": f"[Arch-Function] - {e}"} + # [TODO] Review: define the behavior if `Arch-Intent` doesn't detect an intent + # else: except Exception as e: # [TODO] Review: update how to collect debugging outputs diff --git a/model_server/app/model_handler/function_calling.py b/model_server/app/model_handler/function_calling.py index 897c785a..78b058a3 100644 --- a/model_server/app/model_handler/function_calling.py +++ b/model_server/app/model_handler/function_calling.py @@ -97,20 +97,24 @@ class ArchIntentHandler(ArchBaseHandler): Currently only support vllm inference """ - messages = self._process_messages( - req.messages, req.tools, self.extra_instruction - ) + # In the case that no tools are available, simply return `No` to avoid making a call + if len(req.tools) == 0: + model_response = Message(content="No", tool_calls=[]) + else: + messages = self._process_messages( + req.messages, req.tools, self.extra_instruction + ) - model_response = self.client.chat.completions.create( - messages=messages, - model=self.model_name, - stream=False, - extra_body=self.generation_params, - ) + model_response = self.client.chat.completions.create( + messages=messages, + model=self.model_name, + stream=False, + extra_body=self.generation_params, + ) - model_response = Message( - content=model_response.choices[0].message.content, tool_calls=[] - ) + model_response = Message( + content=model_response.choices[0].message.content, tool_calls=[] + ) chat_completion_response = ChatCompletionResponse( choices=[Choice(message=model_response)], model=self.model_name