65 lines
1.9 KiB
Python
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() |