from omegaconf import OmegaConf from query import VectaraQuery import os import requests import streamlit as st from PIL import Image def inject_custom_css(): st.markdown( """ """, unsafe_allow_html=True ) 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") inject_custom_css() header_image = Image.open('header-image-2.png') cropped_image = header_image.crop((0, 0, header_image.width, 200)) st.image(cropped_image, use_column_width=True) # 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" "Covers movies from this [playlist](https://www.youtube.com/playlist?list=PLHPTxTxtC0ibVZrT2_WKWUl2SAxsKuKwx) of free movies") 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("

\"Find that movie\" demo

", unsafe_allow_html=True) st.markdown('
', unsafe_allow_html=True) with st.form(key='my_form'): question = st.text_input("Enter your movie quote:") submit_button = st.form_submit_button(label='Find the Match') st.markdown('
', unsafe_allow_html=True) if submit_button and len(question) > 5: movie_name, match_url, score = vq.submit_query(question) if score < 0.7: st.write("Sorry, I couldn't find a match for that quote. Please try another one.") else: 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()