Created
April 4, 2023 03:39
-
-
Save HoussenMoshine/e797a3b0ec039d42e4eeb380dc11b36f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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