Spaces:
Paused
Paused
| # | |
| # SPDX-FileCopyrightText: Hadad <hadad@linuxmail.org> | |
| # 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 |