wip: refactor tool processing in openai endpoint
This commit is contained in:
1 parent
fd0d0b994b
commit
13e89b63fc
3 files changed
+247
-118
No files matched your search
@@ -45,7 +45,8 @@ def format_openai(messages):
|
||||
for msg in messages:
|
||||
if msg.role == 'tool':
|
||||
if not last_assistant_message:
|
||||
raise Exception("tool message before any assistant message")
|
||||
# Create one implicitly
|
||||
last_assistant_message = {'role': 'assistant', 'content': ''}
|
||||
tool_calls = last_assistant_message.get('tool_calls')
|
||||
if tool_calls == None:
|
||||
tool_calls = []
|
||||
@@ -314,8 +315,21 @@ async def openrouter_chat_completion(app, messages, model, tools=[], opts={}, ag
|
||||
# TODO: Separate as InferenceRun class
|
||||
content_stream = None
|
||||
reasoning_stream = None
|
||||
|
||||
last_channel = None
|
||||
def open_channel(channel):
|
||||
nonlocal last_channel, content_stream, reasoning_stream
|
||||
if channel != last_channel:
|
||||
if content_stream: content_stream.close()
|
||||
if reasoning_stream: reasoning_stream.close()
|
||||
content_stream = None
|
||||
reasoning_stream = None
|
||||
last_channel = channel
|
||||
|
||||
|
||||
async def message_loop(name, value=None):
|
||||
nonlocal content_stream, reasoning_stream, agent_run
|
||||
open_channel(name) # Hack: use the message as the channel name
|
||||
if name == 'output':
|
||||
if content_stream == None:
|
||||
content_stream = Stream(app)
|
||||
|
||||
Reference in new issue
Block a user