-
Notifications
You must be signed in to change notification settings - Fork 44.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interactive set-up file #3820
Comments
I think this would be a great feature. Perhaps model |
indeed, support for interactive configuration might come in handy - and in fact, the agent API itself could benefit from some sort of interactive interface to walk people through different processes. That way, agents themselves could use the same library to set up agents and their workflows internally. We'd probably need a headless/CLI option to set up step-based wizards. This could in fact be a command system (plugin) to set up/change and execute wizards and steps dynamically. Any wizard can be represented as a graph, so JSON would seem like a suitable format. There are a number of Python libraries that can be used to create interactive wizards. Some popular ones include:
By using a headless based option that is based on a format like JSON, web UIs could also leverage the same mechanism. If this could be implemented in a fashion to also support input validation, it could streamline not just the setup/config process, but also the way people interact with their agents. Thoughts / ideas ? |
Well, given my background in JavaScript, I think we both know which one I want lol. |
it would ideally be something CLI based obviously, and something with support for serialization to save generated wizards. Input validation would be a plus, too. Not sure what else would be useful ? In the original use case of the OP, the final step would simply involve copying the new config files into the proper place. That would also help handle platform specifics/differences (think file/directory permissions). |
Just so that others also don't have to do the same google search that I did...
|
My educated but bareley experienced opinion is to go with a one file download, for linux, mac (Apple/Intel), windows that could be run through the cli and (as [anonhostpi] has in mind, would run like npm, (i think all of the cli libraries for interactive setups mentioned by Boostrix sound good. The one file would then create the devops setup as required, including getting thecurrent stable repo downloaded and set-up (on 1 to many systems depending on the setup). A GUI could look like any .dmg setup where the installer can assess your system, ask some preference questions and complete the installation. I think going about it as a plug-in is not necessarily solving the UX problem, probably worsening it. But a wizrd to interactively CHANGE the current setup would be a VALUABLE add-on, due to complexities that may arise from having to migrate vector spaces and what not! |
To be honest, while streamlining the install is for sure indefinitely going to be part of the roadmap, I think it won't happen for a bit. I think that the main reason that it has been ignored for so long is that this repository is still experimental and mostly targeted at developers. The maintainers are more interested in ironing out the internal kinks right now (hence the big re-arch that is going on right now) than streamlining the experience for the end-user. Still important to have this convo tho, as it will be needed later on, when the repository exits the experimental phase. |
we could come up with some sort of JSON based wizard format that merely serialized a bunch of steps with "preconditions" and "postconditions" in between (which would also neatly encapsulate input validation). The plugin based approach is because the command system is currently in the process of being re-architected accordingly. Here's what GPT has to say about our little convo: A command-based system implemented as a plugin to dynamically generate/modify and execute step-based wizards based on templates is a powerful tool for guiding users through complex processes and workflows in a CLI/shell environment. Here is a high-level overview of how such a system might work: The user initiates the wizard by invoking a command in the CLI/shell environment. The command is defined by the plugin and is responsible for creating a new wizard instance. The wizard instance is based on a template that defines the steps, prompts, and inputs required to complete the process or workflow. The template is defined by the plugin and can be customized or extended as needed. The wizard prompts the user to input data and provides feedback or guidance as needed. Each step of the wizard is defined by the template and can include validation, defaults, and other advanced features. The wizard stores the user's input as it progresses through the steps. The data can be validated and modified as needed before being stored. Once all the steps are completed, the wizard generates a report or summary of the user's input. The report can be displayed in the CLI/shell environment or saved to a file or database. The user can choose to execute the process or workflow based on the data collected by the wizard. The execution command is defined by the plugin and can be customized or extended as needed. The plugin can also provide additional functionality such as saving and loading templates, managing wizards, and generating reports. This type of system is ideal for guiding users through complex processes and workflows in a CLI/shell environment. It provides a structured and intuitive interface for data input and validation, and can be customized or extended to meet the needs of specific workflows. By using a plugin-based architecture, the system can be easily integrated with other tools and frameworks to provide a seamless user experience. |
I was just thinking the same thing! |
oops wrong reply I was just thinking we should wait til the repo is stable, any change in architecture could mean a restructuring of our "setup.***" file |
it is worth pointing out that while this repo may be aimed at devs, implementing the wizard as part of a plugin will mean that people USING the system can also use it to interact with agents. |
What he said :D |
Also, the only "hard" requirement (at least currently) is having an OpenAI API key - and that could be asked as one of the first steps obviously, there could even be a dedicated command set_openai_api_key - afterwards, the wizard would have al the info to start an actual agent and do its thing in a "smart" way |
So what are you proposing, a wizard-maker plug-in? |
or an agent maker wizard? |
Now that I like |
I wouldn't count on that "hard" requirement for too long. Especially with the proposal to implement APIs as plugins. The "core" plugin may end up being completely optional at some point. There is a big push towards self-hosted solutions over OpenAI |
I believe he was referring to agent maker wizard (which will inevitably transform into a workspace maker wizard after the re-arch) |
a wizard making plugin, so that you can have your cake and eat it in this case: we would be reviewing the 3-5 main python frameworks to set up wizards. Once that is in place, the plugin can also be used to generate an agent making wizard. Therefore, having a built-in way to serialize/store wizards (versioning!) would be useful. |
Well ive never installed this yet but having installed a bunch of other autogpt-based but more advanced (should i of said that?) yes, using openai should be an option not a given see: Notice how the env file allows for everything (except the option to host in a docker since it would be i think impossible) |
|
Lol ;) |
Did I just scan a QR code just to open a gif meme? lol |
Ok so seeing that i wont get a setup file tonight could someone guide me through seting this up with weaviate longchain Yup! |
Ok so seeing that i wont get a setup file tonight could someone guide me through seting this up with weaviate longchain in a docker on my mac that will be also cloned on a GCP VM |
That's a convo better suited for the discord server or GH discussions. Not really for GH Issues |
Oh yes, i forgot where i was! |
the wizard making plugin is the most general approach and the most useful one after having set up/configured Auto-GPT. So, in essence, you end up having a single wizard step (first question!) to get the OpenAI API key from the user, init the system and let the rest of the system work through the remaining steps/pages of the setup wizard - which may involve disconnecting/reconnecting the API or even re-initializing the agent, but it will just work. Like I said, the final step would then involve instructions on copying the config to the right place or giving it permission to do so for you. Afterwards, the same mechanism could be used to set up projects, agents, tasks and workspaces - so all solved, using a single approach. Also, these various "wizards" (think json files) could be stored on disk, and shared with other users - even maintained in git, so that folks can easily share their own additions/changes and let the system evolve over time. For the docker/web UI use-case, you would be able to execute the same sort of wizard by using just the json files, but not going through something like the local Python module, but instead hooking up the back-end to a REST/AJAX interface. |
sorry i cant make the gifffy just appear, and im not in the mood to search in putting it in an iframe |
and ![image]? |
Yup embedded markdown format= |
So discord eh? Do I need an invite? |
Nope. Just join up homie |
Plugin candidate, once the dust settles with #3652 |
currently, the project is being re-architected, and that also involves the plugin system. Thus, not a good time to start writing a plugin or making changes to the system as a whole. It is possible that the wizard framework will end up being a separate plugin/repo - but for now this is just to gather interest.
This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days. |
This issue was closed automatically because it has been stale for 10 days with no activity. |
Duplicates
Summary 💡
Seeing that there are a few configurable options, owuld it be viable for user friendliness to be able to run a shell command to initiate an interactive setup, ie. [local only, local and Cloud, Cloud only][memory choice: weaviate, pinecone...][cloud specific arguments][containerized?]... Is this possible or am i being naiive?
Sam
Examples 🌈
No response
Motivation 🔦
coming in with some experience but nothing about cloud computing or working with docker, it can be. a challenge to try and put it all together at once, especially since we are learning about vectorization for embeddings, vector search...MLOps... just lot to take in at once, would be nice to be able to just run and fill in the answers, when you don't know, go look instead of running without knowing what you don't know ;)
Sam
The text was updated successfully, but these errors were encountered: