|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |