From b5b59cb40a9937344eebe067ea31338885bba6f3 Mon Sep 17 00:00:00 2001 From: sontolau Date: Fri, 6 Mar 2026 22:25:18 +0800 Subject: [PATCH] source optimization --- requirements_generator/core/code_generator.py | 2 +- requirements_generator/core/llm_client.py | 2 +- .../core/requirement_analyzer.py | 3 +-- requirements_generator/database/db_manager.py | 2 +- requirements_generator/main.py | 24 ++++++++++--------- requirements_generator/run.sh | 2 +- requirements_generator/utils/output_writer.py | 3 +-- 7 files changed, 19 insertions(+), 19 deletions(-) mode change 100644 => 100755 requirements_generator/run.sh diff --git a/requirements_generator/core/code_generator.py b/requirements_generator/core/code_generator.py index 260619e..4199bce 100644 --- a/requirements_generator/core/code_generator.py +++ b/requirements_generator/core/code_generator.py @@ -4,7 +4,7 @@ import json from pathlib import Path from typing import List, Optional, Callable -from gui_ai_developer import config +import config from core.llm_client import LLMClient from database.models import FunctionalRequirement, CodeFile diff --git a/requirements_generator/core/llm_client.py b/requirements_generator/core/llm_client.py index d9a27fc..e736897 100644 --- a/requirements_generator/core/llm_client.py +++ b/requirements_generator/core/llm_client.py @@ -4,7 +4,7 @@ import json from openai import OpenAI, APIError, APITimeoutError, RateLimitError -from gui_ai_developer import config +import config class LLMClient: diff --git a/requirements_generator/core/requirement_analyzer.py b/requirements_generator/core/requirement_analyzer.py index 785f426..f4c1da3 100644 --- a/requirements_generator/core/requirement_analyzer.py +++ b/requirements_generator/core/requirement_analyzer.py @@ -1,8 +1,7 @@ # core/requirement_analyzer.py - 需求分解、模块分类、函数签名生成 import json from typing import List, Optional, Callable - -from gui_ai_developer import config +import config from core.llm_client import LLMClient from database.models import FunctionalRequirement, ChangeHistory from database.db_manager import DBManager diff --git a/requirements_generator/database/db_manager.py b/requirements_generator/database/db_manager.py index 985ccb9..8a139f9 100644 --- a/requirements_generator/database/db_manager.py +++ b/requirements_generator/database/db_manager.py @@ -5,7 +5,7 @@ from typing import List, Optional from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, Session -from gui_ai_developer import config +import config from database.models import Base, Project, RawRequirement, FunctionalRequirement, CodeFile, ChangeHistory diff --git a/requirements_generator/main.py b/requirements_generator/main.py index 049bbf5..96d61c1 100644 --- a/requirements_generator/main.py +++ b/requirements_generator/main.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +# encoding: utf-8 + # main.py - 主入口:支持交互式 & 非交互式两种运行模式 import os import sys @@ -561,7 +563,7 @@ def step_generate_code( func_name_to_url: {函数名: 代码文件绝对路径} """ console.print( - "\n[bold]Step 6B · 生成代码文件[/bold]" + "\n[bold]【生成代码文件】[/bold]" + (" [dim](非交互)[/dim]" if non_interactive else ""), style="blue", ) @@ -615,8 +617,7 @@ def step_generate_code( console.print(Panel( f"[bold green]✅ 代码生成完成![/bold green]\n" f"成功: {success_count} 失败: {fail_count}\n" - f"输出目录: [cyan]{os.path.abspath(output_dir)}[/cyan]\n" - f"签名文件: [cyan]{os.path.abspath(json_path)}[/cyan]", + f"输出目录: [cyan]{os.path.abspath(output_dir)}[/cyan]\n", border_style="green", )) return func_name_to_url @@ -635,7 +636,7 @@ def step_patch_signatures_url( non_interactive: bool = False, ) -> str: console.print( - "\n[bold]Step 6C · 回写代码路径(url)到签名 JSON[/bold]" + "\n[bold]【回写代码路径(url)到签名 JSON】[/bold]" + (" [dim](非交互)[/dim]" if non_interactive else ""), style="blue", ) @@ -685,7 +686,6 @@ def list_projects(): def print_project_details(project_id = None, non_interactive: bool = False): """打印项目详细信息""" - console.print("\n[bold]Step 3 · 查询项目[/bold]", style="blue") if project_id is None and non_interactive: return if project_id is None: @@ -717,7 +717,6 @@ def print_project_details(project_id = None, non_interactive: bool = False): # ══════════════════════════════════════════════════════ def step_delete_project(project_id = None, non_interactive: bool = False): - console.print("\n[bold]Step 3 · 删除项目[/bold]", style="blue") if project_id is None and non_interactive: return @@ -740,12 +739,11 @@ def step_change_requirements( project_id = None, non_interactive: bool = False, ) -> List[FunctionalRequirement]: - console.print("\n[bold]Step 4 · 变更需求[/bold]", style="blue") if project_id is None and non_interactive: return [] if project_id is None: - project_id = Prompt.ask("请输入要删除的项目 ID", default=None) + project_id = Prompt.ask("请输入要变更的项目 ID", default=None) project = db.get_project_by_id(int(project_id)) func_reqs = db.list_functional_requirements(project.id) @@ -996,9 +994,9 @@ class ProjectManager: step_delete_project(project_id) - def view_current_project_info(self): + def view_current_project_info(self, project_id=None): """查看当前项目信息""" - print_project_details() + print_project_details(project_id=project_id) def change_current_project_requirements(self): """变更当前项目需求""" @@ -1042,7 +1040,11 @@ def main(): manager.delete_project() manager.list_projects() elif command == 'view': - manager.view_current_project_info() + try: + _, project_id = command.split(maxsplit=1) + manager.view_current_project_info(project_id) + except: + manager.view_current_project_info() elif command.startswith('change'): manager.change_current_project_requirements() elif command == 'quit': diff --git a/requirements_generator/run.sh b/requirements_generator/run.sh old mode 100644 new mode 100755 index 90f28b0..8fe7a7c --- a/requirements_generator/run.sh +++ b/requirements_generator/run.sh @@ -8,4 +8,4 @@ export OPENAI_API_KEY="sk-AUmOuFI731Ty5Nob38jY26d8lydfDT-QkE2giqb0sCuPCAE2JH6zjL export OPENAI_BASE_URL="https://openapi.monica.im/v1" # 或其他兼容接口 export LLM_MODEL="gpt-4o" -python main.py +python main.py $@ diff --git a/requirements_generator/utils/output_writer.py b/requirements_generator/utils/output_writer.py index 1bad4ad..6654c68 100644 --- a/requirements_generator/utils/output_writer.py +++ b/requirements_generator/utils/output_writer.py @@ -3,8 +3,7 @@ import os import json from pathlib import Path from typing import Dict, List - -from gui_ai_developer import config +import config VALID_TYPES = { "integer", "string", "boolean", "float",