Spaces:
Runtime error
Runtime error
File size: 1,992 Bytes
1a74bcb | 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 | import streamlit as st
from crewai.tasks.task_output import TaskOutput
def streamlit_callback(step_output:TaskOutput):
st.markdown("---")
for step in step_output:
if isinstance(step, tuple) and len(step) == 2:
action, observation = step
# Display action information
if isinstance(action, dict) and all(key in action for key in ["tool", "tool_input", "log"]):
st.markdown(f"**Tool:** {action['tool']}")
st.markdown(f"**Tool Input:** {action['tool_input']}")
st.markdown(f"**Log:** {action['log']}")
if "Action" in action:
st.markdown(f"# 📝 Processing Action...")
st.markdown(f"**Action:** {action['Action']}")
st.markdown(f"**Action Input:** ```json\n{action['tool_input']}\n```")
elif isinstance(action, str):
if action != 'log':
continue
st.markdown(f"# Action Result...")
st.markdown(f"**Action:** {action}")
else:
st.markdown(f"**Action:** {str(action)}")
# Display observation information
st.markdown(f"**Thought**")
if isinstance(observation, str):
observation_lines = observation.split('\n')
for line in observation_lines:
if line.startswith('Title: '):
st.markdown(f"**Title:** {line[7:]}")
elif line.startswith('Link: '):
st.markdown(f"**Link:** {line[6:]}")
elif line.startswith('Snippet: '):
st.markdown(f"**Snippet:** {line[9:]}")
elif line.startswith('-'):
st.markdown(line)
else:
st.markdown(line)
else:
st.markdown(str(observation))
else:
st.markdown(step) |