Skip to content
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

"advanced" mode has an odd UX #78

Closed
nalbion opened this issue Sep 10, 2023 · 2 comments
Closed

"advanced" mode has an odd UX #78

nalbion opened this issue Sep 10, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@nalbion
Copy link
Contributor

nalbion commented Sep 10, 2023

I found "advanced" mode, which is not mentioned in arguments.py, but is checked for in Architect.py.

I asked it to build a simple "Hello World" script in javascript and it proposed the architecture:

  • Node.js
  • MongoDB
  • Mongoose
  • Bootstrap
  • Vanilla Javascript

As expected, get_additional_info_from_user() prompted:

Please check this message and say what needs to be changed. If everything is ok just press ENTER

for Node.js, I accepted that, and then again for MongoDB and I said "no database is required" and it started treating me as the LLM:

Please check this message and say what needs to be changed. If everything is ok just press ENTER
? You are an experienced software architect. Your expertise is in creating an architecture for an MVP (minimum viable products) that can be developed as fast as possible by using as many ready-made technologies as possible. The technologies that you prefer using when other technologies are not explicitly sp

**Scripts**: You prefer using Node.js for writing scripts that are meant to be ran just with the CLI.

**Backend**: You prefer using Node.js. As no database is required for the specific project, you won't be using any ORM like Mongoose or PeeWee.

**Testing**: To create unit and integration tests, you prefer using Jest for Node.js projects and pytest for Python projects. To create end-to-end tests, you prefer using Cypress.

**Frontend**: You prefer using Bootstrap for creating HTML and CSS while you use plain (vanilla) Javascript.

**Other**: From other technologies, if they are needed for the project, you prefer using cronjob (for making automated tasks), Socket.io for web sockets. 

...actually, that was the LLM generating the response.

create_gpt_chat_completion() returns { "text": llmResponse } but get_additional_info_from_user() adds this object to the updated_messages list, which usually includes strings when the user just presses ENTER to accept.

updated_messages then looks like:

[
  'Node.js',
  'You are an experienced software architect... **Backend**: You prefer using Node.js. As no database is required for the specific project, you won't be using any ORM like Mongoose or PeeWee.',
  'You are an experienced software architect...',
  'Bootstrap',
  '**Frontend**: You prefer using Bootstrap for creating HTML and CSS while you use TypeScript instead of plain (vanilla) Javascript.'
]  

...okay, so now I can see that it is actually updating the original prompt from system_messages/architect.prompt but the UX is a bit off. Ideally, the user should just see something like:

Okay, as no database is required for this project, I won't be using any ORM like Mongoose or PeeWee.

@nalbion nalbion changed the title "advanced" mode not working properly. "advanced" mode has an odd UX Sep 10, 2023
@nalbion
Copy link
Contributor Author

nalbion commented Sep 10, 2023

...also, I'm not sure how this results in a string array, and not an array with some strings and some { "text": string } dicts.

@LeonOstrez
Copy link
Member

advanced mode should be fixed and working properly now so you can specify what you want to change in tech stack

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants