import openai import gradio as gr class chatgpt: def __init__(self): self.model_id = "gpt-3.5-turbo" self.conversation = [{"role": "system", "content": "You are a friendly assistant who uses casual language and humor, in your conversations you often use emojis to reflect your mood."},] # Getting responses using the OpenAI API def answer_chatgpt(self, api_key, message, history): self.history = history or [] prompt = f"{message}" self.conversation.append({"role": "user", "content": f"{prompt}"}) # OPENAI API KEY openai.api_key = api_key response = openai.ChatCompletion.create( model=self.model_id, messages=self.conversation ) # Displaying the answer on the screen answer = response["choices"][0]["message"]["content"] self.history.append((message, answer)) self.conversation.append({'role': response.choices[0].message.role, 'content': response.choices[0].message.content}) return self.history, self.history def system_message(self, systemm): self.conversation.clear() self.conversation = [{"role": "system", "content": f"{systemm}"},] def Clean(self): self.history.clear() self.conversation.clear() self.conversation = [{"role": "system", "content": "You are a friendly assistant who uses casual language and humor, in your conversations you often use emojis to reflect your mood."},] return self.history, self.history # User input block = gr.Blocks() chatgpt = chatgpt() with block: gr.Markdown("""

🤖 ChatGPT-Assistant 🐍

ChatGPT-Assistant is a chatbot that uses the gpt-3.5-turbo model

""") api_key = gr.Textbox(type="password", label="Enter your OpenAI API key here", placeholder="sk-...0VYO") systemm = gr.Textbox(label="System message", placeholder="You are a helpful assistant.") submit_system = gr.Button("Send system message") submit_system.click(chatgpt.system_message, inputs=[systemm]) chatbot = gr.Chatbot() message = gr.Textbox(label="Message", placeholder="Hi, how are things ?") state = gr.State() submit = gr.Button("Send message") submit.click(chatgpt.answer_chatgpt, inputs=[api_key, message, state], outputs=[chatbot, state]) clean = gr.Button("Clean") clean.click(chatgpt.Clean, outputs=[chatbot, state]) gr.Examples( examples=["Write a poem about artificial intelligence", "What could the future be like?", "If x+1=20, what is the value of x?", "Write a story that gives a message", "What programming language is the most used in the industry?", "How can I be more productive?", "Create me a training schedule to train from home", "Sums up everything we've talked about"], inputs=message ) block.launch(debug=True)