Open
Description
Hi,
This is an attempt to use google-gla:gemini-2.0-flash-exp
via streamit in async,
Code below causes RuntimeError: Event loop is closed
, same code works just fine for openai:gpt-4o
import asyncio
import streamlit as st
from pydantic_ai import Agent
from pydantic_ai.messages import ModelRequest, UserPromptPart
async def main():
st.title("Simple chat")
# Initialize chat history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages from history on app rerun
for message in st.session_state.messages:
part1 = message.parts[0]
role = ""
if isinstance(part1, UserPromptPart):
role = "user"
with st.chat_message("human" if role == "user" else "ai"):
st.markdown(message.parts[0].content)
# Accept user input
if prompt := st.chat_input("Say something..."):
# Display user message in chat message container
st.chat_message("user").markdown(prompt)
# Add user message to chat history
st.session_state.messages.append(
ModelRequest(parts=[UserPromptPart(content=prompt)])
)
# Display assistant response in chat message container
with st.chat_message("assistant"):
response_container = st.empty() # Placeholder for streaming response
agent = Agent(
"google-gla:gemini-2.0-flash-exp",
# "openai:gpt-4o", # works!
# https://ai.pydantic.dev/results/#structured-result-validation
result_type=str, # type: ignore
system_prompt="you are a nice bot",
)
result = await agent.run(prompt)
response_container.markdown(result.data)
if __name__ == "__main__":
asyncio.run(main())