""" ChatGPT + Robotics Gradio demo. Author: Sai Vemprala For details, please check out our blog post: https://aka.ms/ChatGPT-Robotics, and our paper: https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf In this demo, we provide a quick way to interact with ChatGPT in robotics settings using some custom prompts. As seen in our paper, we provide prompts for several scenarios: robot manipulation, drone navigation (in a simulated setting (airsim) as well as real life), and embodied AI. embodied_agent_closed_loop is an experimental setting where observations from a scene can be described to ChatGPT as text. Parts of the code were inspired by https://huggingface.co/spaces/VladislavMotkov/chatgpt_webui/ """ import gradio as gr from revChatGPT.V1 import Chatbot import glob, os access_token = None def parse_text(text): lines = text.split("\n") for i, line in enumerate(lines): if "```" in line: items = line.split("`") if items[-1]: lines[i] = f'
'
            else:
                lines[i] = f"
" else: if i > 0: lines[i] = "
" + line.replace(" ", " ") return "".join(lines) def configure_chatgpt(info): access_token = info config = {} config.update({"access_token": access_token}) global chatgpt chatgpt = Chatbot(config=config) def ask(prompt): message = "" for data in chatgpt.ask(prompt): message = data["message"] return parse_text(message) def query_chatgpt(inputs, history, message): history = history or [] output = ask(inputs) history.append((inputs, output)) return history, history, "" def initialize_prompt(history): history = history or [] output = ask('Hello ChatGPT!') history.append(("", output)) return history, history with gr.Blocks() as demo: gr.Markdown("""

Free ChatGPT

""") gr.Markdown( """This is a free version of chatgpt built by @techwithanirudh. """ ) if not access_token: gr.Markdown("""

Login to ChatGPT

""") with gr.Row(): with gr.Group(): info = gr.Textbox(placeholder="Enter access token here (from https://chat.openai.com/api/auth/session)", label="ChatGPT Login") with gr.Row(): login = gr.Button("Login") login.click(configure_chatgpt, inputs=[info]) gr.Markdown("""

Initialize ChatGPT

""") initialize = gr.Button(value="Initialize") gr.Markdown("""

Conversation

""") chatgpt_robot = gr.Chatbot() message = gr.Textbox( placeholder="Enter query", label="", info='Talk to ChatGPT and ask it to help with specific tasks! For example, "take off and reach an altitude of five meters"', ) state = gr.State() initialize.click(fn=initialize_prompt, inputs=[state], outputs=[chatgpt_robot, state]) message.submit(query_chatgpt, inputs=[message, state], outputs=[chatgpt_robot, state, message]) demo.launch()