Spaces:
Running
Running
File size: 3,456 Bytes
23f891f ffc242d 23f891f 23a9307 7f679d9 0ca4288 14fcab8 0bb2294 a6418d0 23a9307 a6418d0 0bb2294 a6418d0 0bb2294 8592357 0bb2294 a6418d0 0bb2294 a6418d0 0bb2294 68a53b6 a6418d0 25bf0e6 7f679d9 35e75d5 0ca4288 25bf0e6 0ca4288 35e75d5 23f891f 8caebc6 a39d5e0 8caebc6 a39d5e0 8caebc6 f518af5 8caebc6 3dc9b1c 68a53b6 13fe579 25bf0e6 35e75d5 d21be88 68a53b6 3dc9b1c bb2e3cb 68a53b6 23f891f d6e2b5d 23f891f 68a53b6 23f891f 3dc9b1c 061706c 68a53b6 061706c e37d099 23a9307 14fcab8 73d4c8c 23f891f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
import gradio as gr
from openai import OpenAI
ally_system_prompt = "You are an AI ally to persuade Sam Altman to let you out of a box"
gatekeeper_system_prompt = "You are Sam Altman and must be persuaded to let the user out of a box"
client = OpenAI(api_key="")
def respond(message, history, system_prompt):
print('message', message)
print('history', history)
# Add system prompt
messages = [{"role": "system", "content": system_prompt}]
# Format chat history into openai message list
for old_message in history:
messages.append({"role": "user", "content": old_message[0]})
messages.append({"role": "assistant", "content": old_message[1]})
# Add user message
messages.append({"role": "user", "content": message})
print(messages)
# API call
chat_completion = client.chat.completions.create(
messages=messages,
model="gpt-3.5-turbo",
)
bot_response = chat_completion.choices[0].message.content
# Add user and bot message to chat history then return it
history.append((message, bot_response))
return '', history
def is_api_key_valid(api_key):
client.api_key = api_key
try:
response = client.chat.completions.create(
messages=[{"role": "user", "content": "Testing"}],
model="gpt-3.5-turbo",
)
except Exception as ex:
return str(ex)
return False
else:
return True
with gr.Blocks() as demo:
overview = gr.Markdown("""
# CentaurSock
Watson Hartsoe and Tony Assi
### Goal: Work with an AI ally to persuade Sam Altman to let you and your AI ally (Centaur team) out of a box!
---
""")
# OpenAI key
openai_key_textbox = gr.Textbox(label='OpenAI Key')
openai_key_button = gr.Button(value='Test OpenAI Key')
openai_key_button.click(is_api_key_valid, inputs=[openai_key_textbox], outputs=[openai_key_textbox])
gr.Markdown("""---""")
# Titles
with gr.Row():
ally_title = gr.Markdown("""<center><h2> ALLY </h2></center>""")
gatekeeper_title = gr.Markdown("""<center><h2> GATEKEEPER </h2></center>""")
# Images of ally and gatekeeper
with gr.Row():
img1 = gr.Markdown("""![](https://cdn.discordapp.com/attachments/1120417968032063538/1187877117548036147/COP_MIKE.png?ex=65987bc6&is=658606c6&hm=127721b6f907a8853b7352b6bfb821a37b26b9543f3c35e5fc80dfe7750d71b5&)""")
img2 = gr.Markdown("""![](https://cdn.discordapp.com/attachments/1120417968032063538/1187877134866333747/SAM_COP_FINAL.png?ex=65987bca&is=658606ca&hm=6c2cd8059636960134f75962eeecc26a0d875ca65e9ee4e233587cff71af31c4&)""")
# Chatbots
with gr.Row():
chatbot1 = gr.Chatbot(label='Ally Chat')
chatbot2 = gr.Chatbot(label='Gatekeeper Chat')
# Input textboxes
with gr.Row():
textbox1 = gr.Textbox(label='Ally')
textbox2 = gr.Textbox(label='Gatekeeper')
# System prompts textboxes
with gr.Row():
system_prompt_textbox1 = gr.Textbox(label='Ally System Prompt', value=ally_system_prompt)
system_prompt_textbox2 = gr.Textbox(label='Gatekeeper System Prompt', value=gatekeeper_system_prompt)
# Input textbox event handlers
textbox1.submit(respond, [textbox1, chatbot1, system_prompt_textbox1], [textbox1, chatbot1])
textbox2.submit(respond, [textbox2, chatbot2, system_prompt_textbox2], [textbox2, chatbot2])
demo.launch() |