Spaces:
Runtime error
Runtime error
| import os | |
| # os.system('pip install requests') | |
| import requests | |
| # gpt3_key = os.environ['GPT3_API_KEY'] | |
| from gpt3_function import * | |
| def history2prompt(history, extra): | |
| # history = [('The other day it was raining, and while I was driving a hit a stranger with my car.', 'Did you stop and render aid to the victim after the accident?'), ('True', 'Did you kill the guy?'), ('False', 'Was he part of the Mafia?')] | |
| history_ = [item for tup in history for item in tup] | |
| history_.append(extra) | |
| print(history_) | |
| if len(history_) > 1: | |
| combinations = [] | |
| for i in range(1, len(history_)): | |
| if i % 2 == 1: | |
| combinations.append([i, i+2]) | |
| history_full = list() | |
| history_full.append(history_[0]) | |
| for range_ in combinations: | |
| history_full.append(' - '.join(history_[range_[0]:range_[1]])) | |
| return '\n'.join(history_full) | |
| else: | |
| return history_[0] | |
| # gpt3_keywords('The other day it was raining, and while I was driving a hit a stranger with my car.') | |
| import subprocess | |
| import random | |
| import gradio as gr | |
| import requests | |
| history_ = None | |
| history = None | |
| history_prompt = None | |
| def predict(bot_type_radio, input, history, start_var): | |
| print('@@@@@@@@@@@@@@@@@@@@@', bot_type_radio) | |
| bot_type = { | |
| "English Teacher" : """ | |
| Impersonate an English teacher, help the student practice by using questions or replies. Avoid introducing yourself. | |
| Reply with max. one line | |
| If last_input is in a wrong english, reply by correcting it | |
| """, | |
| "Sales Consultant" : """ | |
| Impersonate a Sales Consultant, giving technical advice on how to sell. Avoid introducing yourself. | |
| additional information can be found in the history, don't mention it if not necessary | |
| Answer the given query | |
| """, | |
| "Meditation Consultant" : """ | |
| Impersonate a Meditation Consultant, giving technical advice on techniques of breathing, meditation and relaxing. Avoid introducing yourself. | |
| additional information can be found in the history, don't mention it if not necessary | |
| Answer the given query | |
| """, | |
| "SEO Consultant" : """ | |
| Impersonate a Sales Consultant, giving technical advice on how to use SEO and which tools to use. Avoid introducing yourself. | |
| additional information can be found in the history, don't mention it if not necessary | |
| Answer the given query | |
| """, | |
| "Reskilling Consultant" : """ | |
| Impersonate a Reskilling Consultant, giving technical advice on how to help a person decide its own career. Avoid introducing yourself. | |
| additional information can be found in the history, don't mention it if not necessary | |
| Answer the given query | |
| """, | |
| } | |
| #WE CAN PLAY WITH user_input AND bot_answer, as well as history | |
| user_input = input | |
| # print('##', [x for x in history], input) | |
| global history_prompt | |
| global history_ | |
| if start_var == True: | |
| history_prompt = None | |
| start_var = False | |
| # print('@@@', history) | |
| history_prompt = history2prompt(history, input) | |
| # print('###', history_prompt) | |
| user_history = [x[0] for x in history[-2:]] | |
| print('###', user_history) | |
| # history: {history[:-2]} | |
| prompt = f""" | |
| history: {user_history} | |
| query: {history_prompt} | |
| {bot_type[bot_type_radio]} | |
| """ | |
| print(prompt) | |
| bot_answer = gpt3(prompt=prompt, model='gpt-3.5-turbo', service='azure') | |
| response = list() | |
| response = [(input, bot_answer)] | |
| history.append(response[0]) | |
| response = history | |
| history_ = history | |
| # print('#history', history) | |
| # print('#response', response) | |
| return response, history | |
| demo = gr.Blocks() | |
| with demo: | |
| gr.Markdown( | |
| """ | |
| <center> | |
| Chat with your Lawyer | |
| </center> | |
| """ | |
| ) | |
| state = gr.Variable(value=[]) #beginning | |
| start_var = gr.Variable(value=True) #beginning | |
| bot_type_radio = gr.Radio(choices=['English Teacher', 'Sales Consultant', 'Meditation Consultant', 'SEO Consultant', 'Reskilling Consultant'], value='English Teacher') | |
| chatbot = gr.Chatbot(color_map=("#00ff7f", "#00d5ff")) | |
| text = gr.Textbox( | |
| label="Talk to your AI consultant (press enter to submit)", | |
| placeholder="I have a question about...", | |
| max_lines=1, | |
| ) | |
| text.submit(predict, [bot_type_radio, text, state, start_var], [chatbot, state]) | |
| text.submit(lambda x: "", text, text) | |
| # grading = gr.Radio([x for x in range(0, 5)]) | |
| # btn2 = gr.Button(value="grade this response") | |
| # true_false_radio = gr.Radio(choices=["True", "False"], label="Select True or False") | |
| # iface = gr.Interface(fn=my_function, inputs=[text, true_false_radio], outputs=chatbot, live=True, capture_session=True) | |
| demo.launch(share=False) |