#import json import os import pprint #import shutil #import requests import gradio as gr from transformers.utils import logging from langchain.embeddings import HuggingFaceInstructEmbeddings, GooglePalmEmbeddings import pinecone from langchain.vectorstores import Pinecone logging.set_verbosity_debug() instructor_embeddings = HuggingFaceInstructEmbeddings(model_name="hkunlp/instructor-xl", model_kwargs={"device": "cpu"}) HF_TOKEN = os.environ.get("HF_TOKEN", None) PINECONE_API_KEY = os.environ.get("PINECONE_API_KEY", None) PINECONE_ENV = os.environ.get("PINECONE_ENV", None) GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY", None) pinecone.init(api_key=PINECONE_API_KEY, environment=PINECONE_ENV) from langchain.llms import GooglePalm from langchain.chains import RetrievalQAWithSourcesChain llm=GooglePalm(google_api_key=GOOGLE_API_KEY, temperature=0.1, max_output_tokens=2048) vectorStore = Pinecone.from_existing_index('tennis', instructor_embeddings) retriever = vectorStore.as_retriever(search_kwargs={"k": 3}) qa_chain_instrucEmbed = RetrievalQAWithSourcesChain.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True, verbose=True ) theme = gr.themes.Monochrome( primary_hue="indigo", secondary_hue="blue", neutral_hue="slate", radius_size=gr.themes.sizes.radius_sm, font=[ gr.themes.GoogleFont("Open Sans"), "ui-sans-serif", "system-ui", "sans-serif", ], ) def generate(question): ret = qa_chain_instrucEmbed(question) pprint.pprint(ret) answer = ret['answer'] sources = ret['sources'] embed_video_html = '
This is a demo to answer some popular questions from tennis fans to Coach Patrick. The information is being extracted from his official Youtube channel. It's using the following technologies: