|
2 | 2 | import json |
3 | 3 | import litellm |
4 | 4 | from github import Github, Auth |
| 5 | +from helpers import validate_env_vars, validate_api_keys, run_agent |
5 | 6 |
|
6 | 7 | # Setup |
7 | 8 |
|
|
13 | 14 | AVAILABLE_LABELS = os.environ.get("AVAILABLE_LABELS", "bug,enhancement,question,documentation,needs-info") |
14 | 15 | MODEL = os.environ["MODEL"] |
15 | 16 |
|
16 | | -for env_var in ["GITHUB_TOKEN", "REPO_NAME", "ISSUE_NUMBER", "ISSUE_TITLE", "ISSUE_BODY", "MODEL"]: |
17 | | - if not os.environ[env_var]: |
18 | | - raise ValueError(f"{env_var} is not set") |
19 | | - |
20 | | -valid_api_keys = ["ANTHROPIC_API_KEY", "OPENAI_API_KEY", "GEMINI_API_KEY"] |
21 | | -if not any(os.environ.get(api_key) for api_key in valid_api_keys): |
22 | | - raise ValueError("No API key is set") |
| 17 | +validate_env_vars(["GITHUB_TOKEN", "REPO_NAME", "ISSUE_NUMBER", "ISSUE_TITLE", "ISSUE_BODY", "MODEL"]) |
| 18 | +validate_api_keys() |
23 | 19 |
|
24 | 20 | # Tools |
25 | 21 |
|
@@ -224,33 +220,7 @@ def run_triage_agent(): |
224 | 220 | {"role": "system", "content": SYSTEM_PROMPT}, |
225 | 221 | {"role": "user", "content": build_initial_message()}, |
226 | 222 | ] |
227 | | - |
228 | | - while True: |
229 | | - response = litellm.completion( |
230 | | - model=MODEL, |
231 | | - messages=messages, |
232 | | - tools=TOOLS, |
233 | | - temperature=0, |
234 | | - ) |
235 | | - |
236 | | - message = response.choices[0].message |
237 | | - messages.append(message.model_dump(exclude_none=True)) |
238 | | - |
239 | | - finish_reason = response.choices[0].finish_reason |
240 | | - if finish_reason == "stop" or not message.tool_calls: |
241 | | - break |
242 | | - |
243 | | - tool_results = [] |
244 | | - for tool_call in message.tool_calls: |
245 | | - inputs = json.loads(tool_call.function.arguments) |
246 | | - result = handle_tool_call(tool_call.function.name, inputs) |
247 | | - tool_results.append({ |
248 | | - "role": "tool", |
249 | | - "tool_call_id": tool_call.id, |
250 | | - "content": result, |
251 | | - }) |
252 | | - |
253 | | - messages.extend(tool_results) |
| 223 | + run_agent(messages, TOOLS, handle_tool_call, MODEL) |
254 | 224 |
|
255 | 225 |
|
256 | 226 | if __name__ == "__main__": |
|
0 commit comments