demo.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. """CodePlanAgent 使用示例"""
  2. import os
  3. from dotenv import load_dotenv
  4. from hello_agents.core.llm import HelloAgentsLLM
  5. from code_plan_agent import CodePlanAgent, create_code_plan_agent
  6. def load_env():
  7. """加载环境变量"""
  8. load_dotenv()
  9. # 检查必要的环境变量
  10. required_vars = ["LLM_MODEL_ID", "LLM_API_KEY", "LLM_BASE_URL"]
  11. missing_vars = [var for var in required_vars if not os.getenv(var)]
  12. if missing_vars:
  13. print(f"❌ 缺少必要的环境变量: {', '.join(missing_vars)}")
  14. print("请在 .env 文件中配置这些变量")
  15. return False
  16. return True
  17. def main():
  18. """主函数 - 演示CodePlanAgent的使用"""
  19. print("🚀 CodePlanAgent 演示程序")
  20. print("=" * 60)
  21. # 加载环境变量
  22. if not load_env():
  23. return
  24. # 初始化LLM
  25. print("\n🔧 初始化LLM客户端...")
  26. llm = HelloAgentsLLM(
  27. model=os.getenv("LLM_MODEL_ID"),
  28. api_key=os.getenv("LLM_API_KEY"),
  29. base_url=os.getenv("LLM_BASE_URL"),
  30. temperature=0.2, # 较低温度,生成更确定性的计划
  31. max_tokens=4096
  32. )
  33. print(f"✅ LLM客户端已初始化: {llm.model}")
  34. # 创建CodePlanAgent
  35. print("\n🧠 创建CodePlanAgent...")
  36. agent = create_code_plan_agent(llm)
  37. print(f"✅ CodePlanAgent创建成功: {agent.name}")
  38. # 示例需求1:创建待办事项应用
  39. print("\n" + "=" * 60)
  40. print("📝 示例1: 创建待办事项应用")
  41. print("=" * 60)
  42. requirements1 = """创建一个简单的待办事项(Todo)应用,使用Python和Flask框架实现:
  43. 功能需求:
  44. 1. 添加待办事项(标题、描述、截止日期)
  45. 2. 删除待办事项
  46. 3. 标记待办事项为已完成/未完成
  47. 4. 按状态筛选待办事项(全部/已完成/未完成)
  48. 5. 数据持久化存储(使用SQLite)
  49. 技术要求:
  50. - 使用Flask框架
  51. - 使用SQLAlchemy ORM
  52. - 提供RESTful API接口
  53. - 支持JSON格式数据
  54. - 包含基本的错误处理"""
  55. # 生成代码计划
  56. plan1 = agent.run(requirements1)
  57. # 保存结果到文件
  58. with open("./outputs/todo_app_plan.md", "w", encoding="utf-8") as f:
  59. f.write(plan1)
  60. print("\n📄 代码计划已保存到: ./outputs/todo_app_plan.md")
  61. # # 示例需求2:创建用户认证系统
  62. # print("\n" + "=" * 60)
  63. # print("🔐 示例2: 创建用户认证系统")
  64. # print("=" * 60)
  65. # requirements2 = """创建一个用户认证系统,包含以下功能:
  66. # 核心功能:
  67. # 1. 用户注册(用户名、邮箱、密码)
  68. # 2. 用户登录(邮箱/用户名 + 密码)
  69. # 3. 密码重置(通过邮箱)
  70. # 4. JWT token认证
  71. # 5. 权限管理(角色:普通用户、管理员)
  72. # 技术要求:
  73. # - 使用Python FastAPI框架
  74. # - 使用PostgreSQL数据库
  75. # - 密码加密存储(bcrypt)
  76. # - JWT token过期处理
  77. # - 实现API安全措施(限流、CSRF防护)"""
  78. # # 生成代码计划
  79. # plan2 = agent.run(requirements2)
  80. # # 保存结果到文件
  81. # with open("./outputs/auth_system_plan.md", "w", encoding="utf-8") as f:
  82. # f.write(plan2)
  83. # print("\n📄 代码计划已保存到: ./outputs/auth_system_plan.md")
  84. print("\n🎉 演示完成!")
  85. # print("=" * 60)
  86. # print("已生成的代码计划文件:")
  87. # print("- ./outputs/todo_app_plan.md")
  88. # print("- ./outputs/auth_system_plan.md")
  89. if __name__ == "__main__":
  90. main()