#!pip install python-dotenv #pip install duckdb ##### import duckdb #pip install llama_index_core import os #pip install openai import openai import textwrap #pip install llama_index.vector_stores.duckdb import llama_index.vector_stores.duckdb #pip install llama-index-embeddings-openai #import llama-index-embeddings-openai import os import openai import textwrap file_path = 'persist/my_vector_store.duckdb' # Check if file exists if os.path.exists(file_path): #Delete the file os.remove(file_path) print("File deleted successfully") else: print("File doesn't exist - first run - it's all good") from dotenv import load_dotenv load_dotenv() api_key = os.getenv('OPENAI_API_KEY') from openai import OpenAI client = OpenAI(api_key=api_key) print("OpenAI key generated") default_model = os.environ.get('OPENAI_DEFAULT_MODEL') if default_model: print(f"The default OpenAI model (from environment variable) is: {default_model}") else: print("The OPENAI_DEFAULT_MODEL environment variable is not set.") from llama_index.core import VectorStoreIndex, SimpleDirectoryReader from llama_index.vector_stores.duckdb import DuckDBVectorStore from llama_index.core import StorageContext print("Vector Stores Generated") # Initialize DuckDB vector store with persistence vector_store = DuckDBVectorStore("my_vector_store.duckdb", persist_dir="./persist/") print("Initialized DuckDB vector store with peristance") documents = SimpleDirectoryReader("PDFs").load_data() print("PDFs loaded into Duckdb") storage_context = StorageContext.from_defaults(vector_store=vector_store) print("storage_context defined") index = VectorStoreIndex.from_documents(documents, storage_context=storage_context) print("Index generated from vector stores in DuckDB") import gradio as gr # Create a custom theme with blue as the primary color theme = gr.themes.Default(primary_hue="blue") def greet(query): query_engine = index.as_query_engine() response = query_engine.query(query) strresponse = str(response) #return(gradio.Markdown(strresponse)) #return(textwrap.fill(str(response), 80)) return(f"{response}") #display(Markdown(f"{response}") #return "Hello " + query + "!" demo = gr.Interface(fn=greet, inputs="text", outputs="text") demo.launch(share=True)