# # SPDX-FileCopyrightText: Hadad # SPDX-License-Identifier: Apache-2.0 # import traceback from config import MAX_TOKENS, INSTRUCTIONS_END def generate_response( server, model_name, conversation_messages, tool_definitions, tools_done=False ): response_generator = "" if tools_done: system_reminder = { "role": "system", "content": INSTRUCTIONS_END } conversation_messages.append(system_reminder) try: response = server.chat.completions.create( model=model_name, messages=conversation_messages, tools=tool_definitions if not tools_done else None, tool_choice="none", max_tokens=MAX_TOKENS, temperature=0.75, stream=True ) for data in response: try: raw_data = data.choices[0].delta.content or "" except Exception: raw_data = "" if raw_data: response_generator += raw_data yield response_generator yield response_generator except Exception as response_error: response_generator += f"\nError: {str(response_error)}\n" response_generator += traceback.format_exc() yield response_generator