Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/anymaint_code-reviewer.json
T

1 line
2.7 KiB
JSON

{"repo": "anymaint/code-reviewer", "files": {"grok_llm.py": {"852d85f441198df2955732291e40bfa9ca20a1cb": {"t": 1785674550.934981, "n": 2427, "h": "a7783ae452c1e883", "c": "import logging\nimport os\nimport requests\nfrom llm_interface import LLMInterface, ModelResult\nfrom config import LOG_CHAR_LIMIT\n\nclass GrokLLM(LLMInterface):\n def __init__(self):\n api_key = os.getenv(\"XAI_API_KEY\")\n if not api_key:\n raise ValueError(\"XAI_API_KEY environment variable is required for Grok\")\n self.api_key = api_key\n self.base_url = \"https://api.x.ai/v1\"\n self.endpoint = \"/chat/completions\"\n self.model = os.getenv(\"GROK_MODEL\", \"grok-3-mini\")\n self.headers = {\n \"Content-Type\": \"application/json\",\n \"Authorization\": f\"Bearer {self.api_key}\"\n }\n\n def answer(self, system_prompt: str, user_prompt: str, content: str) -> ModelResult:\n \"\"\"Generate a response for the given prompts and content.\"\"\"\n logging.debug(\n f\"Grok Request:\\nModel: {self.model}\\nSystem Prompt: {system_prompt[:LOG_CHAR_LIMIT]}...\"\n f\"\\nUser Prompt: {user_prompt[:LOG_CHAR_LIMIT]}...\\nContent: {content[:LOG_CHAR_LIMIT]}... (truncated)\"\n )\n\n payload = {\n \"model\": self.model,\n \"messages\": [\n {\"role\": \"system\", \"content\": system_prompt},\n {\"role\": \"user\", \"content\": user_prompt + \"\\n\" + content if user_prompt else content},\n ],\n \"temperature\": 0.0 # Maximum consistency\n }\n\n try:\n response = requests.post(f\"{self.base_url}{self.endpoint}\", headers=self.headers, json=payload)\n response.raise_for_status()\n result = response.json()\n raw_response = result[\"choices\"][0][\"message\"][\"content\"].strip()\n logging.debug(f\"Raw Response:\\n{raw_response[:LOG_CHAR_LIMIT]}... (truncated)\")\n usage = result.get(\"usage\") \n return ModelResult(response=raw_response, total_tokens=usage['total_tokens'], \n prompt_tokens=usage['prompt_tokens'], completion_tokens= usage['completion_tokens'])\n except requests.exceptions.HTTPError as e:\n logging.error(f\"Grok API HTTP Error: {e.response.text}\")\n return None\n except requests.exceptions.RequestException as e:\n logging.error(f\"Grok API Request Error: {str(e)}\")\n return None\n except KeyError as e:\n logging.error(f\"Unexpected response format from Grok API: {str(e)}\")\n return None\n"}}}}