Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -64,22 +64,16 @@ layer_agent_config_rec = {
|
|
| 64 |
}
|
| 65 |
|
| 66 |
|
| 67 |
-
def
|
| 68 |
layer_outputs = {}
|
| 69 |
-
lock = threading.Lock()
|
| 70 |
-
|
| 71 |
-
def safe_append(layer, delta):
|
| 72 |
-
with lock:
|
| 73 |
-
if layer not in layer_outputs:
|
| 74 |
-
layer_outputs[layer] = []
|
| 75 |
-
layer_outputs[layer].append(delta)
|
| 76 |
|
| 77 |
-
|
| 78 |
if message['response_type'] == 'intermediate':
|
| 79 |
layer = message['metadata']['layer']
|
| 80 |
-
|
|
|
|
|
|
|
| 81 |
else:
|
| 82 |
-
# Display accumulated layer outputs
|
| 83 |
for layer, outputs in layer_outputs.items():
|
| 84 |
st.write(f"Layer {layer}")
|
| 85 |
cols = st.columns(len(outputs))
|
|
@@ -87,12 +81,18 @@ def stream_response(messages: Iterable[ResponseChunk]):
|
|
| 87 |
with cols[i]:
|
| 88 |
st.expander(label=f"Agent {i+1}", expanded=False).write(output)
|
| 89 |
|
| 90 |
-
|
| 91 |
-
layer_outputs = {}
|
| 92 |
-
|
| 93 |
-
# Yield the main agent's output
|
| 94 |
yield message['delta']
|
| 95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
def set_moa_agent(
|
| 97 |
main_model: str = default_config['main_model'],
|
| 98 |
cycles: int = default_config['cycles'],
|
|
|
|
| 64 |
}
|
| 65 |
|
| 66 |
|
| 67 |
+
async def async_stream_response(messages: Union[Iterable[ResponseChunk], AsyncIterable[ResponseChunk]]):
|
| 68 |
layer_outputs = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
|
| 70 |
+
async def process_message(message):
|
| 71 |
if message['response_type'] == 'intermediate':
|
| 72 |
layer = message['metadata']['layer']
|
| 73 |
+
if layer not in layer_outputs:
|
| 74 |
+
layer_outputs[layer] = []
|
| 75 |
+
layer_outputs[layer].append(message['delta'])
|
| 76 |
else:
|
|
|
|
| 77 |
for layer, outputs in layer_outputs.items():
|
| 78 |
st.write(f"Layer {layer}")
|
| 79 |
cols = st.columns(len(outputs))
|
|
|
|
| 81 |
with cols[i]:
|
| 82 |
st.expander(label=f"Agent {i+1}", expanded=False).write(output)
|
| 83 |
|
| 84 |
+
layer_outputs.clear()
|
|
|
|
|
|
|
|
|
|
| 85 |
yield message['delta']
|
| 86 |
|
| 87 |
+
if isinstance(messages, AsyncIterable):
|
| 88 |
+
# Process asynchronous messages
|
| 89 |
+
async for message in messages:
|
| 90 |
+
await process_message(message)
|
| 91 |
+
else:
|
| 92 |
+
# Process synchronous messages
|
| 93 |
+
for message in messages:
|
| 94 |
+
await process_message(message)
|
| 95 |
+
|
| 96 |
def set_moa_agent(
|
| 97 |
main_model: str = default_config['main_model'],
|
| 98 |
cycles: int = default_config['cycles'],
|