Skip to content

Instantly share code, notes, and snippets.

@HoussenMoshine
Created April 4, 2023 03:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HoussenMoshine/e797a3b0ec039d42e4eeb380dc11b36f to your computer and use it in GitHub Desktop.
Save HoussenMoshine/e797a3b0ec039d42e4eeb380dc11b36f to your computer and use it in GitHub Desktop.
# Importer les modules nécessaires
import openai
import tkinter as tk
from tkinter import scrolledtext
# Définir la clé secrète de l'API Open AI
openai.api_key = "sk-xxxx"
# Créer la fenêtre principale
window = tk.Tk()
window.title("Interface graphique pour l'API Open AI")
window.geometry("800x600")
# Créer le label pour la prompt
prompt_label = tk.Label(window, text="Entrez votre prompt ici:")
prompt_label.pack()
# Créer la zone de texte pour la prompt
prompt_text = scrolledtext.ScrolledText(window, width=80, height=10)
prompt_text.pack()
# Créer une variable globale pour stocker les messages de la conversation
messages = []
# Créer le bouton pour envoyer la prompt à l'API
def send_prompt():
# Récupérer le contenu de la zone de texte
prompt = prompt_text.get("1.0", "end")
# Définir le nombre de tokens maximum pour la réponse (par défaut 16)
max_tokens = 16
# Ajouter le message de l'utilisateur à la liste des messages
messages.append({"role": "user", "content": prompt})
# Appeler l'API Open AI avec le modèle gpt-3.5-turbo, les messages et le nombre de tokens
response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages, max_tokens=2000)
# Ajouter le message de l'assistant à la liste des messages
messages.append(response.choices[0].message)
# Afficher la conversation dans la zone de texte pour la réponse
response_text.delete("1.0", "end")
for message in messages:
response_text.insert("end", message["role"] + ": " + message["content"] + "\n")
send_button = tk.Button(window, text="Envoyer", command=send_prompt)
send_button.pack()
# Créer le label pour la réponse
response_label = tk.Label(window, text="Voici la réponse de l'API:")
response_label.pack()
# Créer la zone de texte pour la réponse
response_text = scrolledtext.ScrolledText(window, width=80, height=10)
response_text.pack()
# Créer le bouton pour copier la réponse dans le presse-papier
def copy_response():
# Récupérer le contenu de la zone de texte
response = response_text.get("1.0", "end")
# Copier le contenu dans le presse-papier
window.clipboard_clear()
window.clipboard_append(response)
copy_button = tk.Button(window, text="Copier", command=copy_response)
copy_button.pack()
# Lancer la boucle principale de la fenêtre
window.mainloop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment