source optimization
This commit is contained in:
parent
09db08af78
commit
b5b59cb40a
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import json
|
|||
|
||||
from openai import OpenAI, APIError, APITimeoutError, RateLimitError
|
||||
|
||||
from gui_ai_developer import config
|
||||
import config
|
||||
|
||||
|
||||
class LLMClient:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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,6 +1040,10 @@ def main():
|
|||
manager.delete_project()
|
||||
manager.list_projects()
|
||||
elif command == 'view':
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -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 $@
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in New Issue