python调用openai实现中大型项目源码按照待办事项一步一步完成开发测试代码
代码语言:python
所属分类:其他
代码描述:python调用openai实现中大型项目源码按照待办事项一步一步完成开发测试代码,根据需求先生成sql,然后后端api编码开发,然后使用html5调用api接口交互开发,最后美化html前端ui,最后再查查前后端代码是否有问题,有问题继续修改,经过这几个步骤,一个完整的中大型项目源码就生成了。
代码标签: python 调用 openai 中大型 项目 源码 按照 待办 事项 一步 完成 开发 测试 代
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/usr/local/python3/bin/python3 # -*- coding: utf-8 -* #!/usr/local/python3/bin/python3 # -*- coding: utf-8 -* import openai import os import json import re import sys import subprocess from pathlib import Path from typing import List, Dict from datetime import datetime import shutil # 导入并初始化 colorama try: import colorama from colorama import Fore, Style, init init(autoreset=True) # 关键:让每次print后自动重置颜色 except ImportError: print("错误: 请先安装 colorama 库 (pip install colorama)", file=sys.stderr) sys.exit(1) # --- 颜色定义类 --- class C: """集中管理颜色代码,方便统一修改风格""" PROMPT = Fore.CYAN + Style.BRIGHT INFO = Fore.GREEN AI_DECISION = Fore.YELLOW ACTION = Fore.BLUE + Style.BRIGHT SUCCESS = Fore.GREEN + Style.BRIGHT WARN = Fore.YELLOW + Style.BRIGHT ERROR = Fore.RED + Style.BRIGHT AI_OUTPUT = Fore.WHITE + Style.BRIGHT CMD = Fore.YELLOW DESC = Fore.CYAN TODO = Fore.MAGENTA RESET = Style.RESET_ALL # --- OpenAI API 配置 --- try: # 请将 "" 替换为您的真实 OpenAI API 密钥 # 最佳实践是使用环境变量 os.environ.get("OPENAI_API_KEY") openai_client = openai.OpenAI( api_key="YOUR_OPENAI_API_KEY", # <-- 在此处填入你的 OpenAI API Key ) # 测试连接 openai_client.models.list() print(C.SUCCESS + "OpenAI 客户端初始化成功。") except openai.AuthenticationError: print(C.ERROR + "OpenAI 客户端初始化失败: API密钥无效或已过期。请检查您的密钥。", file=sys.stderr) sys.exit(1) except Exception as e: print(C.ERROR + f"OpenAI 客户端初始化失败: {e}", file=sys.stderr) sys.exit(1) class CodeAssistant: def __init__(self, project_dir: str): """初始化代码助手""" self.project_dir = Path(project_dir).resolve() self.project_dir.mkdir(parents=True, exist_ok=True) self.versions_dir = self.project_dir / ".versions" self.versions_dir.mkdir(exist_ok=True) self.custom_prompt = "" self._load_custom_prompt() # 为不同任务选择不同模型 (已更新为 OpenAI 模型) self.planning_model = 'gpt-5' self.generation_model = 'gpt-5' # 待办事项列表和当前任务索引 self.todo_list: List[Dict[str, str]] = [] self.current_task_index: int = -1 def _load_custom_prompt(self): """加载项目根目录下的 ai.rule 自定义提示词""" rule_file = self.project_dir / "ai.rule" self.custom_prompt = "" if rule_file.is_file(): try: with open(rule_file, 'r', encoding='utf-8') as f: self.custom_prompt = f.read().strip() if self.custom_prompt: print(C.SUCCESS + "已成功加载自定义提示词 ai.rule。") except Exception as e: print(C.ERROR + f"读取 ai.rule 文件时出错: {e}", file=sys.stderr) def _get_text_file_extensions(self) -> set: return { '.php', '.sql', '.js', '.html', '.css', '.json', '.py', '.java', '.cpp', '.c', '.cs', '.rb', '.go', '.rs', '.ts', '.swift', '.kt', '.m', '.sh', '.xml', '.yml', '.yaml', '.r', '.pl', '.lua', '.scala', '.vb', '.hs', '.erl', '.ex', '.exs', '.dart', '.jl', '.f90', '.f95', '.f03', '.f08', '.txt', '.md', '.ini', '.cfg', '.rule', '.env' } def _get_file_context(self) -> str: """获取项目目录中所有代码文件的内容作为上下文""" context = [] code_suffixes = self._get_text_file_extensions() for file_path in self.project_dir.rglob("*"): if self.versions_dir.resolve() in file_path.resolve().parents or file_path.resolve() == self.versions_dir..........完整代码请登录后点击上方下载按钮下载查看
网友评论0