Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/aisoft-course_aisoft-course.github.io.json

1 line
2.8 KiB
JSON

{"repo": "aisoft-course/aisoft-course.github.io", "files": {"code/l12-cli-agent.py": {"e30e4f63e9a2103dac86434790320bf17a3a04cc": {"t": 1785674238.5671551, "n": 2301, "h": "67f58310d06c56cd", "c": "from openai import OpenAI\nimport os\nimport subprocess\nimport json\n\n# =========================\n# OpenAI 兼容接口\n# =========================\nAPI_KEY = \"sk-YOUKEY\" #替换为你自己的API_KEY。 \n\n\nclient = OpenAI(\n api_key=API_KEY,\n base_url=\"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n)\n\nmessages = [\n {\n \"role\": \"system\",\n \"content\": \"\"\"\n你是一个CLI智能体。\n如果用户请求涉及系统操作(如ls, dir, cat, pwd等),请返回JSON格式:\n\n{\n \"action\": \"run_shell\",\n \"command\": \"实际要执行的命令\"\n}\n\n否则正常回答。\n\"\"\"\n }\n]\n\n\ndef run_shell(cmd: str) -> str:\n \"\"\"执行shell命令\"\"\"\n try:\n result = subprocess.run(\n cmd,\n shell=True,\n capture_output=True,\n text=True\n )\n return result.stdout + result.stderr\n except Exception as e:\n return str(e)\n\n\ndef chat(user_input: str):\n messages.append({\"role\": \"user\", \"content\": user_input})\n\n response = client.chat.completions.create(\n model=\"qwen-plus\",\n messages=messages,\n temperature=0.2,\n max_tokens=512,\n )\n\n content = response.choices[0].message.content.strip()\n\n # 尝试解析是否是工具调用\n try:\n data = json.loads(content)\n\n if isinstance(data, dict) and data.get(\"action\") == \"run_shell\":\n cmd = data[\"command\"]\n\n print(f\"\\n[EXECUTING] {cmd}\\n\")\n\n output = run_shell(cmd)\n\n # 把执行结果回传给模型\n messages.append({\"role\": \"assistant\", \"content\": content})\n messages.append({\n \"role\": \"user\",\n \"content\": f\"命令执行结果:\\n{output}\\n请总结结果。\"\n })\n\n final = client.chat.completions.create(\n model=\"qwen-plus\",\n messages=messages,\n temperature=0.2,\n max_tokens=512,\n )\n\n reply = final.choices[0].message.content\n else:\n reply = content\n\n except Exception:\n # 不是JSON就当普通回答\n reply = content\n\n messages.append({\"role\": \"assistant\", \"content\": reply})\n return reply\n\n\ndef main():\n print(\"=== CLI Agent with Execution ===\")\n\n while True:\n user_input = input(\"\\nYou: \")\n\n if user_input in [\"exit\", \"quit\"]:\n break\n\n reply = chat(user_input)\n print(\"\\nAgent:\", reply)\n\n\nif __name__ == \"__main__\":\n main()\n"}}}}