Fables-beta / app.py
GoData's picture
Updated config file
1d7520f
Raw History Blame Contribute Delete
2.09 kB
#!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
import os
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")
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"<b>{response}</b>")
#return "Hello " + query + "!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch(share=True)