Spaces:
Runtime error
Runtime error
from tempfile import NamedTemporaryFile | |
import streamlit as st | |
from langchain.agents import initialize_agent | |
from langchain.chat_models import ChatOpenAI | |
from langchain.chains.conversation.memory import ConversationBufferWindowMemory | |
from tools import ImageCaptionTool, ObjectDetectionTool | |
############################## | |
### initialize agent ######### | |
############################## | |
tools = [ImageCaptionTool(), ObjectDetectionTool()] | |
conversational_memory = ConversationBufferWindowMemory( | |
memory_key='chat_history', | |
k=5, | |
return_messages=True | |
) | |
llm = ChatOpenAI( | |
openai_api_key='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', | |
temperature=0, | |
model_name="gpt-3.5-turbo" | |
) | |
agent = initialize_agent( | |
agent="chat-conversational-react-description", | |
tools=tools, | |
llm=llm, | |
max_iterations=5, | |
verbose=True, | |
memory=conversational_memory, | |
early_stopping_method='generate' | |
) | |
# set title | |
st.title('Ask a question to an image') | |
# set header | |
st.header("Please upload an image") | |
# upload file | |
file = st.file_uploader("", type=["jpeg", "jpg", "png"]) | |
if file: | |
# display image | |
st.image(file, use_column_width=True) | |
# text input | |
user_question = st.text_input('Ask a question about your image:') | |
############################## | |
### compute agent response ### | |
############################## | |
with NamedTemporaryFile(dir='.') as f: | |
f.write(file.getbuffer()) | |
image_path = f.name | |
# write agent response | |
if user_question and user_question != "": | |
with st.spinner(text="In progress..."): | |
response = agent.run('{}, this is the image path: {}'.format(user_question, image_path)) | |
st.write(response) | |