-
Notifications
You must be signed in to change notification settings - Fork 84
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
GPT-3.5-turbo compatibility #65
Comments
Just wanted to add on my fail state as I don't yet have access to 4.0. I switched to I think in my case, given the complexity of the repository I'm trying to analyze, I'll just need to wait for 4.0... I'm asking it to specifically drill down into a sub-directory of the repo, target a specific version of a framework, and try to uncover missing/incomplete code. My guess is the overarching request was too verbose (targeting an entire project and not, say, one specific controller or action) which in turn correlates to too many tokens. |
I'm confident AutoPR can be optimized to work well with
gpt-3.5-turbo
.Background
As it stands, the
rail-v1
pull request agent works fine with gpt-3.5-turbo.However, the codegen agent does not.
rail-v1
codegen may work, but suffers from the same problems that it does when used bygpt-4
– it produces an unreliable diff with ambiguous errors.My hope is to use
auto-v1
codegen, which creates unambiguous changes.Action selection
gpt-3.5-turbo
is now reliable at selection actions.Click here to reveal the write-up on action selection.
File creation and editing
How
auto-v1
codegen worksHere's an example of a successful new file generation:
Notice that the LLM reflects on its change in the "outcome" JSON key. This is fed back into subsequent actions to inform what's been done so far.
Here's an example of a successful file edit:
Notice how the hunk to be rewritten is prefixed with
*
with some surrounding lines of context.What's preventing gpt-3.5-turbo from working properly?
It's really bad at generating something in the format of:
It commonly drops the closing backtick of the code, leaves the
<code>
empty, or repeats the description of the content instead of writing actual code. Omitting the trailing metadata will probably improve performance by a lot, as well as adding some relevant few-shot examples.Also, it's really bad at following the instruction of rewriting only the code prefixed by
*
. It will just give you the full file/include the context lines.An example exhibiting both these qualities:
What can we do about it?
Here are some ideas:
gpt-3.5-turbo
to generate a code block enclosed by backticks, without the trailing metadata JSON. Alternatively, try using specific few-shot examples.gpt-3.5-turbo
's file edit action to only rewrite whole filesThe text was updated successfully, but these errors were encountered: