| # | |
| # SPDX-FileCopyrightText: Hadad <[email protected]> | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # | |
| import traceback | |
| def generate_response( | |
| server, | |
| model_name, | |
| conversation_messages, | |
| tool_definitions, | |
| tools_done=False | |
| ): | |
| response_generator = "" | |
| try: | |
| response = server.chat.completions.create( | |
| model=model_name, | |
| messages=conversation_messages, | |
| tools=tool_definitions if not tools_done else None, | |
| tool_choice="none", | |
| 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 |