Skip to content

Commit 5dbe2bc

Browse files
authored
AgenticLLM Step (#1155)
* lint and agentic llm * remove test changes * remove test changes * sav * use singular prompt value * revert multistage strategy * lint strat * fix weird descriptions and use new steps for ResolveIssue * disable again * change method of running patchflow in actions
1 parent da1370b commit 5dbe2bc

File tree

32 files changed

+1148
-838
lines changed

32 files changed

+1148
-838
lines changed

.github/workflows/test.yml

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,17 @@ jobs:
107107

108108
- name: AutoFix Patchwork
109109
run: |
110-
poetry run patchwork AutoFix --log debug \
110+
source .venv/bin/activate
111+
patchwork AutoFix --log debug \
111112
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
112113
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
113114
--force_pr_creation \
114115
--disable_telemetry
115116
116117
- name: Dependency Upgrade
117118
run: |
118-
poetry run patchwork DependencyUpgrade --log debug \
119+
source .venv/bin/activate
120+
patchwork DependencyUpgrade --log debug \
119121
--libraries_api_key=${{ secrets.LIBRARIES_KEY }} \
120122
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
121123
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
@@ -124,6 +126,8 @@ jobs:
124126
--disable_telemetry
125127
126128
rag-test:
129+
# disabled because this currently takes too long
130+
if: false
127131
runs-on: ubuntu-latest
128132
steps:
129133
- name: Checkout code
@@ -158,14 +162,15 @@ jobs:
158162
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
159163
run: poetry install --no-interaction --only main --extras rag
160164

161-
# disabled because this currently takes too long
162-
# - name: Resolve issue
163-
# run: |
164-
# poetry run patchwork ResolveIssue --log debug \
165-
# --patched_api_key=${{ secrets.PATCHED_API_KEY }} \
166-
# --github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
167-
# --issue_url=https://github.com/patched-codes/patchwork/issues/1039 \
168-
# --disable_telemetry
165+
- name: Resolve issue
166+
run: |
167+
source .venv/bin/activate
168+
patchwork ResolveIssue --log debug \
169+
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
170+
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
171+
--issue_url=https://github.com/patched-codes/patchwork/issues/1129 \
172+
--disable_telemetry
173+
--max_llm_calls=10
169174
170175
main-test:
171176
runs-on: ubuntu-latest
@@ -204,46 +209,52 @@ jobs:
204209

205210
- name: PR Review
206211
run: |
207-
poetry run patchwork PRReview --log debug \
212+
source .venv/bin/activate
213+
patchwork PRReview --log debug \
208214
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
209215
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
210216
--pr_url=https://github.com/patched-codes/patchwork/pull/${{ steps.findPr.outputs.number }} \
211217
--disable_telemetry
212218
213219
- name: Generate Docstring
214220
run: |
215-
poetry run patchwork GenerateDocstring --log debug \
221+
source .venv/bin/activate
222+
patchwork GenerateDocstring --log debug \
216223
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
217224
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
218225
--base_path=tests/cicd/generate_docstring \
219226
--disable_telemetry
220227
221228
- name : Generate Diagram
222229
run: |
223-
poetry run patchwork GenerateDiagram --log debug \
230+
source .venv/bin/activate
231+
patchwork GenerateDiagram --log debug \
224232
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
225233
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
226234
--folder_path=patchwork/steps \
227235
--disable_telemetry
228236
229237
- name: Generate UnitTests
230238
run: |
231-
poetry run patchwork GenerateUnitTests --log debug \
239+
source .venv/bin/activate
240+
patchwork GenerateUnitTests --log debug \
232241
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
233242
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
234243
--folder_path=tests/cicd/generate_docstring \
235244
--disable_telemetry
236245
237246
- name: Generate Code Usage Example
238247
run: |
239-
poetry run patchwork GenerateCodeUsageExample --log debug \
248+
source .venv/bin/activate
249+
patchwork GenerateCodeUsageExample --log debug \
240250
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
241251
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
242252
--folder_path=tests/cicd/generate_docstring \
243253
--disable_telemetry
244254
245255
- name: Generate README
246256
run: |
257+
source .venv/bin/activate
247258
# Specify the parent folder you want to check
248259
PARENT_FOLDER="./patchwork/steps"
249260
# Command to run if README.md is not found
@@ -256,7 +267,7 @@ jobs:
256267
# Convert to a Git-friendly branch name: replace spaces with underscores, remove slashes, etc.
257268
branch_name=$(echo "$base_name" | sed -e 's/[^a-zA-Z0-9]/_/g' -e 's/__*/_/g' -e 's/^_//g' -e 's/_$//g')
258269
259-
poetry run patchwork GenerateREADME --log debug \
270+
patchwork GenerateREADME --log debug \
260271
--patched_api_key=${{ secrets.PATCHED_API_KEY }} \
261272
--github_api_key=${{ secrets.SCM_GITHUB_KEY }} \
262273
--filter=*.py \

patchwork/common/client/llm/anthropic.py

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -129,22 +129,22 @@ def __adapt_input_messages(self, messages: Iterable[ChatCompletionMessageParam])
129129
return new_messages
130130

131131
def __adapt_chat_completion_request(
132-
self,
133-
messages: Iterable[ChatCompletionMessageParam],
134-
model: str,
135-
frequency_penalty: Optional[float] | NotGiven = NOT_GIVEN,
136-
logit_bias: Optional[Dict[str, int]] | NotGiven = NOT_GIVEN,
137-
logprobs: Optional[bool] | NotGiven = NOT_GIVEN,
138-
max_tokens: Optional[int] | NotGiven = NOT_GIVEN,
139-
n: Optional[int] | NotGiven = NOT_GIVEN,
140-
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
141-
response_format: completion_create_params.ResponseFormat | NotGiven = NOT_GIVEN,
142-
stop: Union[Optional[str], List[str]] | NotGiven = NOT_GIVEN,
143-
temperature: Optional[float] | NotGiven = NOT_GIVEN,
144-
tools: Iterable[ChatCompletionToolParam] | NotGiven = NOT_GIVEN,
145-
tool_choice: ChatCompletionToolChoiceOptionParam | NotGiven = NOT_GIVEN,
146-
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
147-
top_p: Optional[float] | NotGiven = NOT_GIVEN,
132+
self,
133+
messages: Iterable[ChatCompletionMessageParam],
134+
model: str,
135+
frequency_penalty: Optional[float] | NotGiven = NOT_GIVEN,
136+
logit_bias: Optional[Dict[str, int]] | NotGiven = NOT_GIVEN,
137+
logprobs: Optional[bool] | NotGiven = NOT_GIVEN,
138+
max_tokens: Optional[int] | NotGiven = NOT_GIVEN,
139+
n: Optional[int] | NotGiven = NOT_GIVEN,
140+
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
141+
response_format: completion_create_params.ResponseFormat | NotGiven = NOT_GIVEN,
142+
stop: Union[Optional[str], List[str]] | NotGiven = NOT_GIVEN,
143+
temperature: Optional[float] | NotGiven = NOT_GIVEN,
144+
tools: Iterable[ChatCompletionToolParam] | NotGiven = NOT_GIVEN,
145+
tool_choice: ChatCompletionToolChoiceOptionParam | NotGiven = NOT_GIVEN,
146+
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
147+
top_p: Optional[float] | NotGiven = NOT_GIVEN,
148148
):
149149
system: Union[str, Iterable[TextBlockParam]] | NotGiven = NOT_GIVEN
150150
adapted_messages = self.__adapt_input_messages(messages)
@@ -208,22 +208,22 @@ def is_model_supported(self, model: str) -> bool:
208208
return model in self.__definitely_allowed_models or model.startswith(self.__allowed_model_prefix)
209209

210210
def is_prompt_supported(
211-
self,
212-
messages: Iterable[ChatCompletionMessageParam],
213-
model: str,
214-
frequency_penalty: Optional[float] | NotGiven = NOT_GIVEN,
215-
logit_bias: Optional[Dict[str, int]] | NotGiven = NOT_GIVEN,
216-
logprobs: Optional[bool] | NotGiven = NOT_GIVEN,
217-
max_tokens: Optional[int] | NotGiven = NOT_GIVEN,
218-
n: Optional[int] | NotGiven = NOT_GIVEN,
219-
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
220-
response_format: completion_create_params.ResponseFormat | NotGiven = NOT_GIVEN,
221-
stop: Union[Optional[str], List[str]] | NotGiven = NOT_GIVEN,
222-
temperature: Optional[float] | NotGiven = NOT_GIVEN,
223-
tools: Iterable[ChatCompletionToolParam] | NotGiven = NOT_GIVEN,
224-
tool_choice: ChatCompletionToolChoiceOptionParam | NotGiven = NOT_GIVEN,
225-
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
226-
top_p: Optional[float] | NotGiven = NOT_GIVEN,
211+
self,
212+
messages: Iterable[ChatCompletionMessageParam],
213+
model: str,
214+
frequency_penalty: Optional[float] | NotGiven = NOT_GIVEN,
215+
logit_bias: Optional[Dict[str, int]] | NotGiven = NOT_GIVEN,
216+
logprobs: Optional[bool] | NotGiven = NOT_GIVEN,
217+
max_tokens: Optional[int] | NotGiven = NOT_GIVEN,
218+
n: Optional[int] | NotGiven = NOT_GIVEN,
219+
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
220+
response_format: completion_create_params.ResponseFormat | NotGiven = NOT_GIVEN,
221+
stop: Union[Optional[str], List[str]] | NotGiven = NOT_GIVEN,
222+
temperature: Optional[float] | NotGiven = NOT_GIVEN,
223+
tools: Iterable[ChatCompletionToolParam] | NotGiven = NOT_GIVEN,
224+
tool_choice: ChatCompletionToolChoiceOptionParam | NotGiven = NOT_GIVEN,
225+
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
226+
top_p: Optional[float] | NotGiven = NOT_GIVEN,
227227
) -> int:
228228
model_limit = self.__get_model_limit(model)
229229
input_kwargs = self.__adapt_chat_completion_request(
@@ -252,27 +252,27 @@ def is_prompt_supported(
252252
return model_limit - message_token_count.input_tokens
253253

254254
def truncate_messages(
255-
self, messages: Iterable[ChatCompletionMessageParam], model: str
255+
self, messages: Iterable[ChatCompletionMessageParam], model: str
256256
) -> Iterable[ChatCompletionMessageParam]:
257257
return self._truncate_messages(self, messages, model)
258258

259259
def chat_completion(
260-
self,
261-
messages: Iterable[ChatCompletionMessageParam],
262-
model: str,
263-
frequency_penalty: Optional[float] | NotGiven = NOT_GIVEN,
264-
logit_bias: Optional[Dict[str, int]] | NotGiven = NOT_GIVEN,
265-
logprobs: Optional[bool] | NotGiven = NOT_GIVEN,
266-
max_tokens: Optional[int] | NotGiven = NOT_GIVEN,
267-
n: Optional[int] | NotGiven = NOT_GIVEN,
268-
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
269-
response_format: completion_create_params.ResponseFormat | NotGiven = NOT_GIVEN,
270-
stop: Union[Optional[str], List[str]] | NotGiven = NOT_GIVEN,
271-
temperature: Optional[float] | NotGiven = NOT_GIVEN,
272-
tools: Iterable[ChatCompletionToolParam] | NotGiven = NOT_GIVEN,
273-
tool_choice: ChatCompletionToolChoiceOptionParam | NotGiven = NOT_GIVEN,
274-
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
275-
top_p: Optional[float] | NotGiven = NOT_GIVEN,
260+
self,
261+
messages: Iterable[ChatCompletionMessageParam],
262+
model: str,
263+
frequency_penalty: Optional[float] | NotGiven = NOT_GIVEN,
264+
logit_bias: Optional[Dict[str, int]] | NotGiven = NOT_GIVEN,
265+
logprobs: Optional[bool] | NotGiven = NOT_GIVEN,
266+
max_tokens: Optional[int] | NotGiven = NOT_GIVEN,
267+
n: Optional[int] | NotGiven = NOT_GIVEN,
268+
presence_penalty: Optional[float] | NotGiven = NOT_GIVEN,
269+
response_format: completion_create_params.ResponseFormat | NotGiven = NOT_GIVEN,
270+
stop: Union[Optional[str], List[str]] | NotGiven = NOT_GIVEN,
271+
temperature: Optional[float] | NotGiven = NOT_GIVEN,
272+
tools: Iterable[ChatCompletionToolParam] | NotGiven = NOT_GIVEN,
273+
tool_choice: ChatCompletionToolChoiceOptionParam | NotGiven = NOT_GIVEN,
274+
top_logprobs: Optional[int] | NotGiven = NOT_GIVEN,
275+
top_p: Optional[float] | NotGiven = NOT_GIVEN,
276276
) -> ChatCompletion:
277277
input_kwargs = self.__adapt_chat_completion_request(
278278
messages=messages,

patchwork/common/client/patched.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,12 +245,7 @@ def finish_record_patchflow_run(self, id: int, patchflow: str, repo: Repo, outpu
245245
response = self._post(
246246
url=self.url + "/v1/patchwork/",
247247
headers={"Authorization": f"Bearer {self.access_token}"},
248-
json={
249-
"id": id,
250-
"url": repo.remotes.origin.url,
251-
"patchflow": patchflow,
252-
"outputs": outputs
253-
},
248+
json={"id": id, "url": repo.remotes.origin.url, "patchflow": patchflow, "outputs": outputs},
254249
)
255250

256251
if response is None:

0 commit comments

Comments
 (0)