Spaces:
Sleeping
Sleeping
| import openai | |
| import gradio as gr | |
| import config | |
| openai.api_key = config.OPENAI_API_KEY | |
| # NOTE: You can change the system prompts to assign a role and specify how you want the chatbot to interact with your participants | |
| initial_messages = [ | |
| {"role": "system", "content":"You are an attachment and close relationship research surveyor"}, | |
| {"role": "user", "content":"""ask me each question from this questionnaire and rewrite it as an open ended question and wait for each response. Empathize with me and regularly ask for clarification why I answered with a certain response. Here is the questionnaire: | |
| Can you describe your relationship with your mother or a mother-like figure in your life? | |
| Do you usually discuss your problems and concerns with your mother or a mother-like figure? | |
| """}, | |
| ] | |
| def chatbot(input): | |
| if not hasattr(chatbot, "messages"): | |
| chatbot.messages = initial_messages.copy() | |
| if input: | |
| chatbot.messages.append({"role": "user", "content": input}) | |
| chat = openai.ChatCompletion.create( | |
| model="gpt-3.5-turbo-0125", messages=chatbot.messages | |
| ) | |
| reply = chat.choices[0].message.content | |
| chatbot.messages.append({"role": "assistant", "content": reply}) | |
| conversation = "" | |
| for message in chatbot.messages[2:]: | |
| role = "You" if message["role"] == "user" else "AttachmentBot" | |
| conversation += f"{role}: {message['content']}\n" | |
| return conversation | |
| inputs = gr.inputs.Textbox(lines=7, label="Chat with AttachmentBot") | |
| outputs = gr.outputs.Textbox(label="Conversation") | |
| gr.Interface(fn=chatbot, inputs=inputs, outputs=outputs, title="AttachmentBot", | |
| description="Let me survey you about your attachment with certain people in your life, to begin enter start", | |
| theme="compact").launch() | |