Pythagora-io / gpt-pilot

The first real AI developer
Other
31.91k stars 3.21k forks source link

[epic] Support open source/cheaper models #206

Open nalbion opened 1 year ago

nalbion commented 1 year ago

Tasks

Also related - #187, #165, PR #40

nalbion commented 1 year ago

If anyone wants to have a go at getting other models working, Mistral 7b is currently FREE.

.env

ENDPOINT=OPENROUTER
MODEL_NAME=mistralai/mistral-7b-instruct

"Describe your app in as much detail as possible"

This is the first sticking point for a lot of LLMs - it starts in ProductOwner calling prompts.get_additional_info_from_openai() - the LLM is instructed to ask one question at a time, but gpt-3.5, Mistral & others asks several at once and struggles with the EVERYTHING_CLEAR command at the end.

The prompt/response strategy may need to change:

I've done some experimentation with Mistral-7b here:

https://github.com/Pythagora-io/gpt-pilot/compare/main...fix/rework-product-owner-prompt-for-gpt3

MundoBoss commented 1 year ago

Hey ! Thanks ! I tried with OpenRouter but its stucked, like infinite loop, at the begining, asking me questions about the project

Here for example I just asked for a simple 2D snake game:

Do you want to add anything else? If not, just press ENTER. ? 1. As a user, I want to be able to move the snake with keyboard arrows, so that I can control its movement and make it move in the desired direction.

Do you want to add anything else? If not, just press ENTER. ? 2. As a user, I want the snake to die when it encounters the edge of the game board, so that the game ends when the snake is out of bounds.

Do you want to add anything else? If not, just press ENTER. ? 3. As a user, I want the snake to die when it collides with its own body, so that the game ends when the snake hits itself.

Do you want to add anything else? If not, just press ENTER. ? 4. As a user, I want the game to end when the snake is dead or when it fills all the playable board, so that the game has a clear end condition.

Do you want to add anything else? If not, just press ENTER. ? 5. As a user, I want the snake to start with an initial length of 5 parts, so that the game is challenging but not too difficult.

Do you want to add anything else? If not, just press ENTER. ? 6. As a user, I want the snake to move in all possible directions using keyboard arrows, so that I can control its movement easily.

Do you want to add anything else? If not, just press ENTER. ? 7. As a user, I want the game to have a clear and easy-to-understand interface, so that I can easily interact with the game and understand its rules.

Do you want to add anything else? If not, just press ENTER. ? 8. As a user, I want the game to have a high-quality graphics and sound effects, so that the game is visually and audibly appealing.

Do you want to add anything else? If not, just press ENTER. ? 9. As a user, I want the game to have a leaderboard, so that I can compete with other players and see how well I am doing.

Do you want to add anything else? If not, just press ENTER. ? 10. As a user, I want the game to have a pause and resume feature, so that I can take a break from the game and come back to it later.

Do you want to add anything else? If not, just press ENTER. ? 11. As a user, I want the game to have a game over screen, so that I can see the final score and the option to restart the game.

Do you want to add anything else? If not, just press ENTER. ? 12. As a user, I want the game to have a high replayability, so that I can play the game multiple times and have a different experience each time.

Do you want to add anything else? If not, just press ENTER. ? 13. As a user, I want the game to have a difficulty level selector, so that I can choose the level of difficulty and have a challenge that suits my skill level.

Do you want to add anything else? If not, just press ENTER. ? 14. As a user, I want the game to have a sound on/off feature, so that I can choose whether to listen to the sound effects or not.

Do you want to add anything else? If not, just press ENTER. ? 15. As a user, I want the game to have a mute on/off feature, so that I can choose whether to listen to the background music or not.

Do you want to add anything else? If not, just press ENTER. ? 16. As a user, I want the game to have a high-score screen, so that I can see the top scores and see how well I am doing compared to other players.

Do you want to add anything else? If not, just press ENTER. ? 17. As a user, I want the game to have a game over screen with a "Play again" button, so that I can easily restart the game without having to go back to the main menu.

Do you want to add anything else? If not, just press ENTER. ? 18. As a user, I want the game to have a game over screen with a "High scores" button, so that I can see the top scores and see how well I am doing compared to other players.

Do you want to add anything else? If not, just press ENTER. ? 19. As a user, I want the game to have a game over screen with a "Settings" button, so that I can adjust the game settings and preferences.

Do you want to add anything else? If not, just press ENTER. ? 20. As a user, I want the game to have a game over screen with a "Quit" button, so that I can end the game and go back to the main menu.

Do you want to add anything else? If not, just press ENTER. ? 21. As a user, I want the game to have a game over screen with a "Restart" button, so that I can easily restart the game without having to go back to the main menu.

Do you want to add anything else? If not, just press ENTER. ? 22. As a user, I want the game to have a game over screen with a "Menu" button, so that I can easily go back to the main menu.

Do you want to add anything else? If not, just press ENTER. ? 23. As a user, I want the game to have a game over screen with a "Play again" button and a "High scores" button, so that I can easily restart the game or see the top scores.

nalbion commented 1 year ago

It's odd that it has created user stories for:

nalbion commented 1 year ago

PR #266 is a big improvement. Mistral7b gets stuck at Developer.implement_task().

See test_Developer.test_implement_task_with_llm()