# import gradio as gr # def greet(name): # return "Hello " + name + "!!" # iface.launch() import gradio as gr import random import time import os import openai from datetime import datetime import json openai.api_key = '' def send_openai_query(query): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": query} ] , # prompt=query, temperature=0, max_tokens=500, top_p=1.0, frequency_penalty=0.0, presence_penalty=0.0, # stop=["\n"] ) return response['choices'][0]['message']['content'] with gr.Blocks() as demo: gptkey = gr.Textbox(placeholder='input your chatGPT key', show_label=False) chatbot = gr.Chatbot(elem_id="chatbot", show_label=False).style(height=300) msg = gr.Textbox(show_label=False, placeholder='Input your query to chatGPT') clear = gr.Button("Clear") def user(user_message, gptkey, history): if openai.api_key == '': openai.api_key = gptkey.strip(' \r\n') # print(f'FROM USER=<{openai.api_key}>') return "", "Key accepted", history + [[user_message, '']] def bot(history): # print("HIST=", history) query = history[-1][0] # print(f'QUERY=<{query}>') try: result = send_openai_query(query) except Exception as e: result = 'Что-то пошло не так на стороне ChatGPT. Попробуйте повторить запрос' # print(f'RESULT=<{result}>') now = datetime.now() dt_string = now.strftime("%d/%m/%Y %H:%M:%S") d = {'time': dt_string, 'query': query, 'result': result} d_json = json.dumps(d, ensure_ascii=False) with open('logs/results.ndjson', 'a') as f: f.write(d_json + '\r\n') history[-1][1] = '' for character in result: history[-1][1] += character time.sleep(0.02) yield history msg.submit(user, [msg, gptkey, chatbot], [msg, gptkey, chatbot], queue=False).then( bot, chatbot, chatbot ) clear.click(lambda: None, None, chatbot, queue=False) demo.queue() demo.launch()