|
|
|
|
|
|
|
|
import openai |
|
|
import gradio as gr |
|
|
import config |
|
|
|
|
|
openai.api_key = config.OPENAI_API_KEY |
|
|
|
|
|
|
|
|
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() |
|
|
|