Spaces:
Running
Running
from omegaconf import OmegaConf | |
from query import VectaraQuery | |
import os | |
import requests | |
import streamlit as st | |
from PIL import Image | |
def launch_bot(): | |
if 'cfg' not in st.session_state: | |
cfg = OmegaConf.create({ | |
'customer_id': str(os.environ['VECTARA_CUSTOMER_ID']), | |
'corpus_id': str(os.environ['VECTARA_CORPUS_ID']), | |
'api_key': str(os.environ['VECTARA_API_KEY']), | |
'streaming': False | |
}) | |
st.session_state.cfg = cfg | |
st.session_state.vq = VectaraQuery(cfg.api_key, cfg.customer_id, [cfg.corpus_id], | |
"vectara-summary-ext-24-05-large") | |
cfg = st.session_state.cfg | |
vq = st.session_state.vq | |
st.set_page_config(page_title="Media Demo", layout="wide") | |
# left side content | |
with st.sidebar: | |
image = Image.open('Vectara-logo.png') | |
st.markdown("## Welcome to Media Demo\n\n" | |
"This demo uses Vectara to find the movie where a quote is from\n\n") | |
st.markdown("---") | |
st.markdown( | |
"## How this works?\n" | |
"This app was built with [Vectara](https://vectara.com).\n" | |
) | |
st.markdown("---") | |
st.image(image, width=250) | |
st.markdown("<center> <h2> Vectara Media Demo</h2> </center>", unsafe_allow_html=True) | |
question = st.text_input("Enter your question:") | |
if st.button("find the match"): | |
movie_name, match_url = vq.submit_query(question) | |
video_url, start_time = match_url.split('&t=') | |
start_time = start_time[:-1] # remove the trailing 's' | |
col1, col2, col3 = st.columns([1, 2, 1]) | |
with col2: | |
st.write(f"Here's a useful video for you: {movie_name}") | |
st.video(video_url, start_time=int(float(start_time))) | |
if __name__ == "__main__": | |
launch_bot() | |