File size: 1,263 Bytes
ceb70c7 9ecb850 ceb70c7 bcca9d9 9ecb850 bcca9d9 9ecb850 bcca9d9 ceb70c7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#
# SPDX-FileCopyrightText: Hadad <hadad@linuxmail.org>
# SPDX-License-Identifier: Apache-2.0
#
import traceback
from config import INSTRUCTIONS_END
def generate_response(
server,
model_name,
conversation_messages,
tool_definitions,
tools_done=False
):
response_generator = ""
if tools_done:
conversation_messages.append({
"role": "system",
"content": INSTRUCTIONS_END
})
try:
response = server.chat.completions.create(
model=model_name,
messages=conversation_messages,
tools=tool_definitions if not tools_done else None,
tool_choice="none",
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 |