GoData/OBBBA
0
1#!pip install python-dotenv2#pip install duckdb3#####4import duckdb5#pip install llama_index_core6import os7#pip install openai8import openai9import textwrap 10#pip install llama_index.vector_stores.duckdb11import llama_index.vector_stores.duckdb12#pip install llama-index-embeddings-openai13#import llama-index-embeddings-openai14import os 15import openai16import textwrap 17 18 19 20file_path = 'persist/my_vector_store.duckdb'21 22# Check if file exists23if os.path.exists(file_path):24 #Delete the file25 os.remove(file_path)26 print("File deleted successfully")27else:28 print("File doesn't exist - first run - it's all good")29 30from dotenv import load_dotenv31load_dotenv()32 33api_key = os.getenv('OPENAI_API_KEY')34 35from openai import OpenAI36client = OpenAI(api_key=api_key)37 38 39print("OpenAI key generated")40 41 42default_model = os.environ.get('OPENAI_DEFAULT_MODEL')43 44if default_model:45 print(f"The default OpenAI model (from environment variable) is: {default_model}")46else:47 print("The OPENAI_DEFAULT_MODEL environment variable is not set.")48 49 50 51from llama_index.core import VectorStoreIndex, SimpleDirectoryReader52from llama_index.vector_stores.duckdb import DuckDBVectorStore53from llama_index.core import StorageContext54 55print("Vector Stores Generated")56 57 58# Initialize DuckDB vector store with persistence59vector_store = DuckDBVectorStore("my_vector_store.duckdb", persist_dir="./persist/")60 61 62print("Initialized DuckDB vector store with peristance")63 64documents = SimpleDirectoryReader("PDFs").load_data()65 66 67print("PDFs loaded into Duckdb")68 69storage_context = StorageContext.from_defaults(vector_store=vector_store)70 71print("storage_context defined")72 73index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)74 75print("Index generated from vector stores in DuckDB")76 77 78 79import gradio as gr80 81# Create a custom theme with blue as the primary color82theme = gr.themes.Default(primary_hue="blue") 83 84 85def greet(query):86 87 query_engine = index.as_query_engine()88 response = query_engine.query(query)89 strresponse = str(response)90 #return(gradio.Markdown(strresponse))91 #return(textwrap.fill(str(response), 80))92 return(f"{response}")93 #display(Markdown(f"<b>{response}</b>")94 #return "Hello " + query + "!"95 96demo = gr.Interface(fn=greet, inputs="text", outputs="text")97demo.launch(share=True) 98 