r44cx / GPT-Codemaster

Automatic programming by creating Pull Requests from Issues using LLMs
GNU General Public License v3.0
1 stars 0 forks source link

test #17

Open r44cx opened 1 year ago

r44cx commented 1 year ago

Step Description

  1. Clone the Repository Clone the newly created repository to your local machine using the command: git clone https://github.com/r44cx/gpt-context-window.git
  2. Create a Virtual Environment Navigate to the cloned repository's directory and create a new virtual environment using venv or conda. For venv, you can use the command: python3 -m venv env. This will create a new virtual environment named env.
  3. Activate the Virtual Environment Before installing any packages, you need to activate the virtual environment. If you used venv, you can do this with the command: source env/bin/activate
  4. Create the Package Structure Create a new directory for your package code, usually with the same name as your package. You can do this with the command: mkdir gpt_context_window. Also, create the necessary files like setup.py and README.md using touch setup.py README.md.
  5. Install Dependencies Install the necessary Python libraries in your virtual environment. You can use pip to install these. For example, pip install gitpython pathspec.
  6. Define the Main Function Create a new Python file in your package directory (e.g., gpt_context_window/main.py). This file will contain the main function that accepts the path of a Git repository as input.
  7. Load the Repository In your main function, use gitpython to load the Git repository from the provided path.
  8. Read .gitignore In your main function, check if a .gitignore file exists in the repository and, if it does, read it.
  9. Traverse the Repository In your main function, walk through the repository files and directories using os.walk().
  10. Check Files Against .gitignore For each file encountered during the traversal, check if it is ignored by .gitignore using pathspec.
  11. Read Non-Ignored Files If a file is not ignored, read its content and decide if it is needed for the context window. If it is, append it to the context window.
  12. Write Tests Write tests for your package to ensure it works as expected. You can use a library like pytest for this.
  13. Update setup.py Update setup.py with the necessary information about your package, such as its name, version, author, and dependencies.
  14. Update README.md Update README.md with information about your package, including its purpose, how to install it, and how to use it.
  15. Commit Changes Commit your changes to the local repository using git add . to stage all changes and git commit -m "Your commit message" to commit them.
  16. Push Changes Push your changes to the remote repository using git push origin master.
  17. Test Package Installation Test that your package can be installed correctly. You can do this by creating a new virtual environment, then installing your package using pip install .
  18. Package and Distribute Once your package is working as expected, you can package it up for distribution on PyPI. You'll need to create a setup.py file if you haven't already, then use python setup.py sdist bdist_wheel to create the distribution packages. You can then upload
github-actions[bot] commented 1 year ago

Hello, GPT-Codemaster here. I'm starting to work on the issue, give me a moment...

Job progress

github-actions[bot] commented 1 year ago

Sending request to the AI using Chat interface

System message:

You are an AI system that does programming tasks by reading the issue specification and modifying the existing code by changing it or adding new code to resolve the user request. You minimize changes to the code and make sure not to modify anything that the user has not requested. Do not remove classes, methods, or fields - only add or modify existing ones. You will be doing the work in steps. The results of your work will be automatically put on Github. Always print the whole source, never the 'The rest of the class remains unchanged' comment

User Request:

The user request: test

Step Description

  1. Clone the Repository Clone the newly created repository to your local machine using the command: git clone https://github.com/r44cx/gpt-context-window.git
  2. Create a Virtual Environment Navigate to the cloned repository's directory and create a new virtual environment using venv or conda. For venv, you can use the command: python3 -m venv env. This will create a new virtual environment named env.
  3. Activate the Virtual Environment Before installing any packages, you need to activate the virtual environment. If you used venv, you can do this with the command: source env/bin/activate
  4. Create the Package Structure Create a new directory for your package code, usually with the same name as your package. You can do this with the command: mkdir gpt_context_window. Also, create the necessary files like setup.py and README.md using touch setup.py README.md.
  5. Install Dependencies Install the necessary Python libraries in your virtual environment. You can use pip to install these. For example, pip install gitpython pathspec.
  6. Define the Main Function Create a new Python file in your package directory (e.g., gpt_context_window/main.py). This file will contain the main function that accepts the path of a Git repository as input.
  7. Load the Repository In your main function, use gitpython to load the Git repository from the provided path.
  8. Read .gitignore In your main function, check if a .gitignore file exists in the repository and, if it does, read it.
  9. Traverse the Repository In your main function, walk through the repository files and directories using os.walk().
  10. Check Files Against .gitignore For each file encountered during the traversal, check if it is ignored by .gitignore using pathspec.
  11. Read Non-Ignored Files If a file is not ignored, read its content and decide if it is needed for the context window. If it is, append it to the context window.
  12. Write Tests Write tests for your package to ensure it works as expected. You can use a library like pytest for this.
  13. Update setup.py Update setup.py with the necessary information about your package, such as its name, version, author, and dependencies.
  14. Update README.md Update README.md with information about your package, including its purpose, how to install it, and how to use it.
  15. Commit Changes Commit your changes to the local repository using git add . to stage all changes and git commit -m "Your commit message" to commit them.
  16. Push Changes Push your changes to the remote repository using git push origin master.
  17. Test Package Installation Test that your package can be installed correctly. You can do this by creating a new virtual environment, then installing your package using pip install .
  18. Package and Distribute Once your package is working as expected, you can package it up for distribution on PyPI. You'll need to create a setup.py file if you haven't already, then use python setup.py sdist bdist_wheel to create the distribution packages. You can then upload

Do this in steps:

  1. From a list of files select ones that will be needed to see or modify to program the user request. You will be shown content of those files. You have a limited memory so you will only see the selected ones.
  2. Modify selected existing files one by one
  3. Create needed new files one by one

Here is a hierarchical view of files in the project::

AiProgrammerTests/ChatMessageRoleTests.cs AiProgrammerTests/ClassExtractorTests.cs AiProgrammerTests/DependenciesTest.cs AiProgrammerTests/AiProgrammerTests.csproj AiProgrammerTests/StringExtensionsSubstringSafeTests.cs GithubIssueListener/ListenerEntryPoint.cs GithubIssueListener/IssueListenerInput.cs GithubIssueListener/InputProviderFromEnvironmentVariables.cs GithubIssueListener/SolverExceptionNotifier.cs GithubIssueListener/ISolverExceptionNotifier.cs GithubIssueListener/IssueSolvingStarter.cs GithubIssueListener/IInputProvider.cs GithubIssueListener/GithubIssueListener.csproj AiProgrammer/Core/CodeStatics.cs AiProgrammer/IO/FileContent.cs AiProgrammer/IO/ProjectContentReader.cs AiProgrammer/IO/IProjectContentReader.cs AiProgrammer/IO/FilePath.cs AiProgrammer/AiInterface/IChat.cs AiProgrammer/AiInterface/ICompletions.cs AiProgrammer/AiInterface/ChatCompletions.cs AiProgrammer/Github/PullRequests/PullRequestCreator.cs AiProgrammer/Github/Model/RepoOwner.cs AiProgrammer/Github/Model/IssueInfo.cs AiProgrammer/Github/Model/RepoName.cs AiProgrammer/Github/Model/RepoInfo.cs AiProgrammer/Github/Issues/IssueUrlParser.cs AiProgrammer/Github/Issues/IIssueUrlParser.cs AiProgrammer/Github/IGithubContextClientProvider.cs AiProgrammer/Github/GithubServices.cs AiProgrammer/Github/GithubClientProviderForToken.cs AiProgrammer/Github/GithubContextClientProvider.cs AiProgrammer/Github/IGithubClientProviderForToken.cs AiProgrammer/Extensions/StringExtensions.cs AiProgrammer/Logging/ISolverProgressLogger.cs AiProgrammer/Logging/SolverProgressLoggerInIssue.cs AiProgrammer/Solving/GithubIssue/GithubIssueContextProvider.cs AiProgrammer/Solving/GithubIssue/InIssueNoChangesNotifier.cs AiProgrammer/Solving/GithubIssue/IGithubIssueContextProvider.cs AiProgrammer/Solving/GithubIssue/IGithubIssueSolver.cs AiProgrammer/Solving/GithubIssue/IssueDescriptionProvider.cs AiProgrammer/Solving/GithubIssue/IIssueDescriptionProvider.cs AiProgrammer/Solving/GithubIssue/GithubIssueSolverWithMethodSelection.cs AiProgrammer/Solving/GithubIssue/GithubIssueSolverFileByFile.cs AiProgrammer/Solving/Utils/UnexpectedAiOutputException.cs AiProgrammer/Solving/Steps/EntrySteps/StepSolveGithubIssueFileByFile.cs AiProgrammer/Solving/Steps/EntrySteps/StepSolveGithubIssueWithMethodSelection.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepSelectMethodsToPreview.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepModifyExistingFilesOneByOne.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepChangeFilesUsingCommands.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreateChangesCommands.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepSelectFilesToPreview.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreatePullRequest.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreateNewFilesOneByOne.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepNotifyAboutPullRequest.cs AiProgrammer/Solving/Steps/Helpers/CurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/ICurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/FollowNextStepExecutor.cs AiProgrammer/Solving/Steps/IStepsCollection.cs AiProgrammer/Solving/Steps/ISolverStepWithSubsteps.cs AiProgrammer/Solving/Steps/ISolverStep.cs AiProgrammer/Solving/Commands/IModifyCodebaseCommand.cs AiProgrammer/Solving/Model/FileAndMethodName.cs AiProgrammer/Solving/Model/GithubIssueContext.cs AiProgrammer/CodeProcessing/IClassExtractor.cs AiProgrammer/CodeProcessing/ClassExtractorCSharp.cs AiProgrammer/AiProgrammerServices.cs AiProgrammer/AiProgrammer.csproj AiProgrammer/AiProgrammer.csproj.DotSettings Readme.md global.json .gitignore AiProgrammer.sln AiProgrammer.sln.DotSettings LICENSE reviewpad.yml


You are currently in step one (1). Please provide a list of files you think will help you the most when solving the problem. List them from most likely to help solve to problem to least likely. Print each path in new line without numerating them. Make sure to always print a full path. n

github-actions[bot] commented 1 year ago

AI Response

AiProgrammer/Solving/GithubIssue/GithubIssueSolverFileByFile.cs AiProgrammer/Solving/GithubIssue/GithubIssueSolverWithMethodSelection.cs AiProgrammer/Solving/GithubIssue/IssueDescriptionProvider.cs AiProgrammer/Solving/GithubIssue/IIssueDescriptionProvider.cs AiProgrammer/Solving/GithubIssue/IGithubIssueSolver.cs AiProgrammer/Solving/GithubIssue/IGithubIssueContextProvider.cs AiProgrammer/Solving/GithubIssue/GithubIssueContextProvider.cs AiProgrammer/Solving/GithubIssue/InIssueNoChangesNotifier.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepModifyExistingFilesOneByOne.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepChangeFilesUsingCommands.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreateChangesCommands.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepSelectFilesToPreview.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreateNewFilesOneByOne.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreatePullRequest.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepNotifyAboutPullRequest.cs AiProgrammer/Solving/Steps/Helpers/CurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/ICurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/FollowNextStepExecutor.cs AiProgrammer/Solving/Steps/IStepsCollection.cs AiProgrammer/Solving/Steps/ISolverStepWithSubsteps.cs AiProgrammer/Solving/Steps/ISolverStep.cs AiProgrammer/Solving/Commands/IModifyCodebaseCommand.cs AiProgrammer/Solving/Model/FileAndMethodName.cs AiProgrammer/Solving/Model/GithubIssueContext.cs AiProgrammer/AiProgrammerServices.cs AiProgrammer/AiProgrammer.csproj AiProgrammer/Core/CodeStatics.cs AiProgrammer/IO/FileContent.cs AiProgrammer/IO/ProjectContentReader.cs AiProgrammer/IO/IProjectContentReader.cs AiProgrammer/IO/FilePath.cs AiProgrammer/AiInterface/IChat.cs AiProgrammer/AiInterface/ICompletions.cs AiProgrammer/AiInterface/ChatCompletions.cs AiProgrammer/Github/PullRequests/PullRequestCreator.cs AiProgrammer/Github/Model/RepoOwner.cs AiProgrammer/Github/Model/IssueInfo.cs AiProgrammer/Github/Model/RepoName.cs AiProgrammer/Github/Model/RepoInfo.cs AiProgrammer/Github/Issues/IssueUrlParser.cs AiProgrammer/Github/Issues/IIssueUrlParser.cs AiProgrammer/Github/IGithubContextClientProvider.cs AiProgrammer/Github/GithubServices.cs AiProgrammer/Github/GithubClientProviderForToken.cs AiProgrammer/Github/GithubContextClientProvider.cs AiProgrammer/Github/IGithubClientProviderForToken.cs AiProgrammer/Extensions/StringExtensions.cs AiProgrammer/Logging/ISolverProgressLogger.cs AiProgrammer/Logging/SolverProgressLoggerInIssue.cs AiProgrammer/Solving/Utils/UnexpectedAiOutputException.cs AiProgrammer/Solving/Steps/EntrySteps/StepSolveGithubIssueFileByFile.cs AiProgrammer/Solving/Steps/EntrySteps/StepSolveGithubIssueWithMethodSelection.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepSelectMethodsToPreview.cs AiProgrammer/Solving/Steps/Helpers/CurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/ICurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/FollowNextStepExecutor.cs AiProgrammer/Solving/Steps/IStepsCollection.cs AiProgrammer/Solving/Steps/ISolverStepWithSubsteps.cs AiProgrammer/Solving/Steps/ISolverStep.cs AiProgrammer/Solving/Commands/IModifyCodebaseCommand.cs AiProgrammer/Solving/Model/FileAndMethodName.cs AiProgrammer/Solving/Model/GithubIssueContext.cs AiProgrammer/CodeProcessing/IClassExtractor.cs AiProgrammer/CodeProcessing/ClassExtractorCSharp.cs AiProgrammer/AiProgrammer.csproj Readme.md global.json .gitignore AiProgrammer.sln LICENSE reviewpad.yml

github-actions[bot] commented 1 year ago

Sending request to the AI using Chat interface

System message:

You are an AI system that does programming tasks by reading the issue specification and modifying the existing code by changing it or adding new code to resolve the user request. You minimize changes to the code and make sure not to modify anything that the user has not requested. Do not remove classes, methods, or fields - only add or modify existing ones. You will be doing the work in steps. The results of your work will be automatically put on Github. Always print the whole source, never the 'The rest of the class remains unchanged' comment

User Request:

The user request: test

Step Description

  1. Clone the Repository Clone the newly created repository to your local machine using the command: git clone https://github.com/r44cx/gpt-context-window.git
  2. Create a Virtual Environment Navigate to the cloned repository's directory and create a new virtual environment using venv or conda. For venv, you can use the command: python3 -m venv env. This will create a new virtual environment named env.
  3. Activate the Virtual Environment Before installing any packages, you need to activate the virtual environment. If you used venv, you can do this with the command: source env/bin/activate
  4. Create the Package Structure Create a new directory for your package code, usually with the same name as your package. You can do this with the command: mkdir gpt_context_window. Also, create the necessary files like setup.py and README.md using touch setup.py README.md.
  5. Install Dependencies Install the necessary Python libraries in your virtual environment. You can use pip to install these. For example, pip install gitpython pathspec.
  6. Define the Main Function Create a new Python file in your package directory (e.g., gpt_context_window/main.py). This file will contain the main function that accepts the path of a Git repository as input.
  7. Load the Repository In your main function, use gitpython to load the Git repository from the provided path.
  8. Read .gitignore In your main function, check if a .gitignore file exists in the repository and, if it does, read it.
  9. Traverse the Repository In your main function, walk through the repository files and directories using os.walk().
  10. Check Files Against .gitignore For each file encountered during the traversal, check if it is ignored by .gitignore using pathspec.
  11. Read Non-Ignored Files If a file is not ignored, read its content and decide if it is needed for the context window. If it is, append it to the context window.
  12. Write Tests Write tests for your package to ensure it works as expected. You can use a library like pytest for this.
  13. Update setup.py Update setup.py with the necessary information about your package, such as its name, version, author, and dependencies.
  14. Update README.md Update README.md with information about your package, including its purpose, how to install it, and how to use it.
  15. Commit Changes Commit your changes to the local repository using git add . to stage all changes and git commit -m "Your commit message" to commit them.
  16. Push Changes Push your changes to the remote repository using git push origin master.
  17. Test Package Installation Test that your package can be installed correctly. You can do this by creating a new virtual environment, then installing your package using pip install .
  18. Package and Distribute Once your package is working as expected, you can package it up for distribution on PyPI. You'll need to create a setup.py file if you haven't already, then use python setup.py sdist bdist_wheel to create the distribution packages. You can then upload

Do this in steps:

  1. From a list of files select ones that will be needed to see or modify to program the user request. You will be shown content of those files. You have a limited memory so you will only see the selected ones.
  2. Modify selected existing files one by one
  3. Create needed new files one by one

You are currently in step 'Modify selected existing files one by one'

Already reviewed files with your own description of what happened:

Files left to review: AiProgrammer/Solving/GithubIssue/GithubIssueSolverWithMethodSelection.cs AiProgrammer/Solving/GithubIssue/IssueDescriptionProvider.cs AiProgrammer/Solving/GithubIssue/IIssueDescriptionProvider.cs AiProgrammer/Solving/GithubIssue/IGithubIssueSolver.cs AiProgrammer/Solving/GithubIssue/IGithubIssueContextProvider.cs AiProgrammer/Solving/GithubIssue/GithubIssueContextProvider.cs AiProgrammer/Solving/GithubIssue/InIssueNoChangesNotifier.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepModifyExistingFilesOneByOne.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepChangeFilesUsingCommands.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreateChangesCommands.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepSelectFilesToPreview.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreateNewFilesOneByOne.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepCreatePullRequest.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepNotifyAboutPullRequest.cs AiProgrammer/Solving/Steps/Helpers/CurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/ICurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/FollowNextStepExecutor.cs AiProgrammer/Solving/Steps/IStepsCollection.cs AiProgrammer/Solving/Steps/ISolverStepWithSubsteps.cs AiProgrammer/Solving/Steps/ISolverStep.cs AiProgrammer/Solving/Commands/IModifyCodebaseCommand.cs AiProgrammer/Solving/Model/FileAndMethodName.cs AiProgrammer/Solving/Model/GithubIssueContext.cs AiProgrammer/AiProgrammerServices.cs AiProgrammer/AiProgrammer.csproj AiProgrammer/Core/CodeStatics.cs AiProgrammer/IO/FileContent.cs AiProgrammer/IO/ProjectContentReader.cs AiProgrammer/IO/IProjectContentReader.cs AiProgrammer/IO/FilePath.cs AiProgrammer/AiInterface/IChat.cs AiProgrammer/AiInterface/ICompletions.cs AiProgrammer/AiInterface/ChatCompletions.cs AiProgrammer/Github/PullRequests/PullRequestCreator.cs AiProgrammer/Github/Model/RepoOwner.cs AiProgrammer/Github/Model/IssueInfo.cs AiProgrammer/Github/Model/RepoName.cs AiProgrammer/Github/Model/RepoInfo.cs AiProgrammer/Github/Issues/IssueUrlParser.cs AiProgrammer/Github/Issues/IIssueUrlParser.cs AiProgrammer/Github/IGithubContextClientProvider.cs AiProgrammer/Github/GithubServices.cs AiProgrammer/Github/GithubClientProviderForToken.cs AiProgrammer/Github/GithubContextClientProvider.cs AiProgrammer/Github/IGithubClientProviderForToken.cs AiProgrammer/Extensions/StringExtensions.cs AiProgrammer/Logging/ISolverProgressLogger.cs AiProgrammer/Logging/SolverProgressLoggerInIssue.cs AiProgrammer/Solving/Utils/UnexpectedAiOutputException.cs AiProgrammer/Solving/Steps/EntrySteps/StepSolveGithubIssueFileByFile.cs AiProgrammer/Solving/Steps/EntrySteps/StepSolveGithubIssueWithMethodSelection.cs AiProgrammer/Solving/Steps/ConcreteSteps/StepSelectMethodsToPreview.cs AiProgrammer/Solving/Steps/Helpers/CurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/ICurrentStepsHolder.cs AiProgrammer/Solving/Steps/Helpers/FollowNextStepExecutor.cs AiProgrammer/Solving/Steps/IStepsCollection.cs AiProgrammer/Solving/Steps/ISolverStepWithSubsteps.cs AiProgrammer/Solving/Steps/ISolverStep.cs AiProgrammer/Solving/Commands/IModifyCodebaseCommand.cs AiProgrammer/Solving/Model/FileAndMethodName.cs AiProgrammer/Solving/Model/GithubIssueContext.cs AiProgrammer/CodeProcessing/IClassExtractor.cs AiProgrammer/CodeProcessing/ClassExtractorCSharp.cs AiProgrammer/AiProgrammer.csproj Readme.md global.json .gitignore AiProgrammer.sln LICENSE reviewpad.yml

Current file path: AiProgrammer/Solving/GithubIssue/GithubIssueSolverFileByFile.cs

Current file content:

using AiProgrammer.Solving.Steps.EntrySteps;
using AiProgrammer.Solving.Steps.Helpers;

namespace AiProgrammer.Solving.GithubIssue;

public record GithubIssueSolverFileByFile(
    StepSolveGithubIssueFileByFile SolveStep, 
    ICurrentStepsHolder CurrentStepsHolder
    ) : IGithubIssueSolver
{
    public async Task SolveGithubIssue()
    {
        try
        {
            CurrentStepsHolder.SetCurrentSteps(SolveStep);

            await SolveStep.SolveGithubIssue();
        }
        finally
        {
            CurrentStepsHolder.ClearCurrentSteps();
        }
    }
}

Select one command with this parameters to execute:

n

github-actions[bot] commented 1 year ago

Exception caught while GPT-Codemaster tried to solve the issue:


System.Net.Http.HttpRequestException: Error at chat/completions (https://api.openai.com/v1/chat/completions) with HTTP status code: BadRequest. Content: {
  "error": {
    "message": "This model's maximum context length is 4097 tokens. However, you requested 4260 tokens (2160 in the messages, 2100 in the completion). Please reduce the length of the messages or completion.",
    "type": "invalid_request_error",
    "param": "messages",
    "code": "context_length_exceeded"
  }
}

   at OpenAI_API.EndpointBase.HttpRequestRaw(String url, HttpMethod verb, Object postData, Boolean streaming)
   at OpenAI_API.EndpointBase.HttpRequest[T](String url, HttpMethod verb, Object postData)
   at OpenAI_API.EndpointBase.HttpPost[T](String url, Object postData)
   at OpenAI_API.Chat.ChatEndpoint.CreateChatCompletionAsync(ChatRequest request)
   at OpenAI_API.Chat.Conversation.GetResponseFromChatbot()
   at AiProgrammer.AiInterface.ChatCompletions.GetResponseFromChatbotUnsafe(String systemMessage, String userMessage) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/AiInterface/ChatCompletions.cs:line 97
   at AiProgrammer.AiInterface.ChatCompletions.GetResponseFromChatbot(String systemMessage, String userMessage) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/AiInterface/ChatCompletions.cs:line 40
   at AiProgrammer.AiInterface.ChatCompletions.GetResponseFromChatbot(String systemMessage, String userMessage) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/AiInterface/ChatCompletions.cs:line 61
   at AiProgrammer.AiInterface.ChatCompletions.GetResponseForChat(String systemMessage, String chatMessage) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/AiInterface/ChatCompletions.cs:line 26
   at AiProgrammer.AiInterface.ChatCompletions.GetCompletion(String systemMessage, String messageToComplete) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/AiInterface/ChatCompletions.cs:line 21
   at AiProgrammer.Solving.Steps.Helpers.FollowNextStepExecutor.ExecuteStep(String stepDescription, String prompt) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/Solving/Steps/Helpers/FollowNextStepExecutor.cs:line 50
   at AiProgrammer.Solving.Steps.ConcreteSteps.StepModifyExistingFilesOneByOne.ExecuteForSingleFile(FilePath currentFile, List`1 alreadyReviewedFilesTexts, IReadOnlyCollection`1 filesLeftToReview) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/Solving/Steps/ConcreteSteps/StepModifyExistingFilesOneByOne.cs:line 95
   at AiProgrammer.Solving.Steps.ConcreteSteps.StepModifyExistingFilesOneByOne.GetChangedFiles(IReadOnlyList`1 filesToPreview) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/Solving/Steps/ConcreteSteps/StepModifyExistingFilesOneByOne.cs:line 33
   at AiProgrammer.Solving.Steps.EntrySteps.StepSolveGithubIssueFileByFile.SolveGithubIssue() in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/Solving/Steps/EntrySteps/StepSolveGithubIssueFileByFile.cs:line 94
   at AiProgrammer.Solving.GithubIssue.GithubIssueSolverFileByFile.SolveGithubIssue() in /home/runner/work/GPT-Codemaster/GPT-Codemaster/AiProgrammer/Solving/GithubIssue/GithubIssueSolverFileByFile.cs:line 17
   at GithubIssueListener.IssueSolvingStarter.Solve(GithubIssueContext requestContext) in /home/runner/work/GPT-Codemaster/GPT-Codemaster/GithubIssueListener/IssueSolvingStarter.cs:line 57```