Spaces:
Running
Running
# | |
# 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 |