We also made a demo called "gptbackdoor" that exposes a set of system functions for ChatGPT to call arbitrarily. It's in the `demo/` folder. Here's an example conversation:
> What is in lazer/__init__.py
< The `lazer/__init__.py` file contains the initialization of the `Lazer` and `LazerConversation` classes.
The `Lazer` class is responsible for managing the functions and their schemas. It initializes with an empty list of functions and a mapping of function names to functions. It also has methods to dispatch function calls, retrieve the list of functions, and add new functions to the list.
The `LazerConversation` class represents a conversation with the `Lazer` instance. It initializes with an empty list of messages, a reference to the `Lazer` instance, and the chat completion arguments provided. It has a `talk` method that takes user input and uses the OpenAI Chat API to generate a response. The conversation messages and function calls are stored in the `self.messages` list.
> Write a README for this code and write that into the README.md file.
< I have written the README and saved it in the README.md file.
Theoretically, you can also expose a function that allows ChatGPT to talk to itself. However, we have tried this, and it ended up crashing due to infinite recursion.
We're using OpenAI's new Function Calling API for this: <https://platform.openai.com/docs/guides/gpt/function-calling>.
We also made a demo called "gptbackdoor" that exposes a set of system functions for ChatGPT to call arbitrarily. It's in the `demo/` folder. Here's an example conversation:
Theoretically, you can also expose a function that allows ChatGPT to talk to itself. However, we have tried this, and it ended up crashing due to infinite recursion.