MenuBase/config/api_setup.py

65 lines
1.9 KiB
Python

# config/api_setup.py
"""
Setup script for API keys
"""
import tkinter as tk
from tkinter import ttk
from .api_keys import APIKeyManager
import sys
class APISetupGUI:
def __init__(self):
self.root = tk.Tk()
self.root.title("API Key Setup")
self.root.geometry("400x300")
self.services = {
"OpenAI": APIKeyManager.get_openai_key,
"Google": APIKeyManager.get_google_key,
"Anthropic": APIKeyManager.get_anthropic_key
}
self.setup_ui()
def setup_ui(self):
# Create main frame
main_frame = ttk.Frame(self.root, padding="10")
main_frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S))
# Create entries for each service
self.entries = {}
for i, (service, _) in enumerate(self.services.items()):
ttk.Label(main_frame, text=f"{service} API Key:").grid(
row=i, column=0, pady=5, sticky=tk.W
)
entry = ttk.Entry(main_frame, width=40)
entry.grid(row=i, column=1, pady=5, padx=5)
current_key = self.services[service]()
if current_key:
entry.insert(0, current_key)
self.entries[service.lower()] = entry
# Add save button
ttk.Button(
main_frame,
text="Save Keys",
command=self.save_keys
).grid(row=len(self.services), column=0, columnspan=2, pady=20)
def save_keys(self):
for service, entry in self.entries.items():
key = entry.get().strip()
if key:
APIKeyManager.store_key(service, key)
self.root.destroy()
def run(self):
self.root.mainloop()
def setup_apis():
"""Run the API setup GUI"""
app = APISetupGUI()
app.run()