Skip to content

Commit e0fc8ff

Browse files
authored
Update document_reader_chatgpt.py
1 parent 8ea4d4a commit e0fc8ff

File tree

1 file changed

+1
-58
lines changed

1 file changed

+1
-58
lines changed

document_reader_chatgpt.py

+1-58
Original file line numberDiff line numberDiff line change
@@ -1,58 +1 @@
1-
import tkinter as tk
2-
from tkinter import filedialog
3-
from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader
4-
import os
5-
6-
os.environ['OPENAI_API_KEY'] = 'Your API key'
7-
8-
class MyApp(tk.Frame):
9-
def __init__(self, master=None):
10-
super().__init__(master)
11-
self.master = master
12-
self.master.configure(bg='#f0f0f0')
13-
self.pack(fill='both', expand=True)
14-
self.create_widgets()
15-
16-
def create_widgets(self):
17-
self.select_dir_button = tk.Button(self, text="Select Directory", command=self.select_directory, bg='#0c7cd5', fg='white', activebackground='#0a5ca1', activeforeground='white', borderwidth=0, padx=10, pady=5)
18-
self.select_dir_button.pack(pady=(10,0))
19-
20-
self.query_label = tk.Label(self, text="Query:", bg='#f0f0f0')
21-
self.query_label.pack()
22-
23-
self.query_entry = tk.Entry(self)
24-
self.query_entry.pack(pady=(0,10), ipady=5, ipadx=10)
25-
26-
self.search_button = tk.Button(self, text="Search", command=self.search, bg='#0c7cd5', fg='white', activebackground='#0a5ca1', activeforeground='white', borderwidth=0, padx=10, pady=5)
27-
self.search_button.pack(pady=(0,10))
28-
29-
self.results_text = tk.Text(self, height=10, bg='white', fg='#333333', font=('Arial', 12), padx=10, pady=10)
30-
self.results_text.pack(fill='both', expand=True, padx=10)
31-
32-
def select_directory(self):
33-
self.directory = filedialog.askdirectory()
34-
35-
def search(self):
36-
try:
37-
documents = SimpleDirectoryReader(self.directory).load_data()
38-
except AttributeError:
39-
self.results_text.delete('1.0', tk.END)
40-
self.results_text.insert(tk.END, "Please select a directory first.")
41-
return
42-
43-
index = GPTSimpleVectorIndex(documents)
44-
index.save_to_disk('index.json')
45-
46-
# load from disk
47-
index = GPTSimpleVectorIndex.load_from_disk('index.json')
48-
49-
query = self.query_entry.get()
50-
response = index.query(query)
51-
self.results_text.delete('1.0', tk.END)
52-
self.results_text.insert(tk.END, response)
53-
54-
root = tk.Tk()
55-
root.title("Document Chatbot")
56-
root.geometry("500x500")
57-
app = MyApp(root)
58-
app.mainloop()
1+
...

0 commit comments

Comments
 (0)