跳转至

LingFlow 自优化系统 API 文档

版本: 3.6.0 更新日期: 2026-03-31


目录


自优化系统 (self_optimizer)

LingFlow 的核心自优化能力,基于 LingMinOpt 架构。

配置管理

OptimizationConfig

优化配置管理器。

from lingflow.self_optimizer import OptimizationConfig, get_global_config, DEFAULT_CONFIG

# 获取全局配置
config = get_global_config()

# 获取优化配置
opt_config = config.get_optimization_config()

# 访问默认配置
print(DEFAULT_CONFIG)

属性: - max_class_size: int - 最大类大小(默认: 300) - max_method_count: int - 最大方法数量(默认: 15) - max_complexity: int - 最大复杂度(默认: 10)


优化触发器

OptimizationTrigger

自动检测优化触发条件。

from lingflow.self_optimizer import OptimizationTrigger, TriggerInfo

trigger = OptimizationTrigger()
should_trigger, trigger_info = trigger.check_all_conditions(context)

if should_trigger:
    print(f"触发原因: {trigger_info.reason}")
    print(f"优先级: {trigger_info.priority}")

方法: - check_all_conditions(context: dict) -> tuple[bool, TriggerInfo] - 检查所有触发条件 - requires_confirmation() -> bool - 是否需要用户确认


优化器

ProcessIsolatedOptimizer

进程隔离的异步优化器。

from lingflow.self_optimizer import ProcessIsolatedOptimizer, OptimizationRequest

optimizer = ProcessIsolatedOptimizer()
optimizer.start_optimization(request)

SynchronousOptimizer

同步优化器。

from lingflow.self_optimizer import SynchronousOptimizer, OptimizationRequest

optimizer = SynchronousOptimizer()
result = optimizer.optimize(request)

OptimizationRequest

优化请求数据类。

字段: - target: str - 目标路径 - goal: str - 优化目标 (structure/performance/simplicity) - params: dict - 参数字典 - config: OptimizationConfig - 配置对象

OptimizationResult

优化结果数据类。

字段: - success: bool - 是否成功 - score: float - 优化分数 - params: dict - 最佳参数 - metrics: dict - 详细指标 - suggestions: list - 改进建议


评估器

StructureEvaluator

代码结构评估器。

from lingflow.self_optimizer import StructureEvaluator

evaluator = StructureEvaluator(target_path="./my_project")
score = evaluator.evaluate(params)

PerfEvaluator

性能评估器。

from lingflow.self_optimizer import PerfEvaluator

evaluator = PerfEvaluator()
score = evaluator.evaluate(params)

SimplicityEvaluator

简洁性评估器。

from lingflow.self_optimizer import SimplicityEvaluator

evaluator = SimplicityEvaluator()
score = evaluator.evaluate(params)

优化顾问

OptimizationAdvisor

提供优化建议。

from lingflow.self_optimizer import OptimizationAdvisor

advisor = OptimizationAdvisor()
suggestions = advisor.get_suggestions(evaluation_result)

便捷函数

quick_optimize()

快速优化函数。

from lingflow.self_optimizer import quick_optimize

result = quick_optimize(
    target=".",
    goal="structure",
    async_mode=False
)

参数: - target: str - 目标路径(默认: ".") - goal: str - 优化目标(默认: "structure") - async_mode: bool - 是否异步(默认: False)

返回: OptimizationResultNone(异步模式)

check_and_optimize()

检查条件并优化。

from lingflow.self_optimizer import check_and_optimize

should_optimize, result = check_and_optimize(
    context=context,
    target=".",
    goal="structure"
)

Phase 4: 参数优化系统

智能参数优化架构,使用贝叶斯优化和多目标优化技术。

核心引擎

OptimizationEngine

统一的参数优化接口。

from lingflow.self_optimizer.phase4 import OptimizationEngine

engine = OptimizationEngine(config={
    "output_dir": ".lingflow/reports",
    "generate_reports": True
})

# 单目标优化
result = engine.optimize_single_objective(
    target_path="./my_project",
    goal="structure"
)

# 多目标优化
result = engine.optimize_multi_objective(
    target_path="./my_project",
    goals=["structure", "performance"],
    weights={"structure": 0.6, "performance": 0.4}
)

# 敏感性分析
result = engine.analyze_sensitivity(
    target_path="./my_project",
    goal="structure"
)

方法: - optimize_single_objective() - 单目标优化 - optimize_multi_objective() - 多目标优化 - analyze_sensitivity() - 敏感性分析 - clear_history() - 清除优化历史


贝叶斯优化器

BayesianOptimizer

基于 Optuna 的贝叶斯优化器。

from lingflow.self_optimizer.phase4 import BayesianOptimizer

optimizer = BayesianOptimizer(
    search_space=search_space,
    objective=objective_function,
    config={"n_trials": 100, "timeout": 300}
)

state = optimizer.optimize()

配置选项: - n_trials: int - 最大试验次数 - timeout: float - 超时时间(秒) - early_stopping: bool - 早停开关

GridSearchOptimizer

网格搜索优化器(贝叶斯优化的后备)。

from lingflow.self_optimizer.phase4 import GridSearchOptimizer

optimizer = GridSearchOptimizer(
    search_space=search_space,
    objective=objective_function
)

OptimizationTrial

优化试验数据类。

字段: - trial_id: str - 试验ID - params: dict - 参数字典 - score: float - 目标值 - timestamp: float - 时间戳

OptimizationState

优化状态对象。

方法: - get_best_params() -> dict - 获取最佳参数 - get_best_score() -> float - 获取最佳分数 - should_stop() -> bool - 是否应停止


多目标优化

MultiObjectiveOptimizer

多目标优化器。

from lingflow.self_optimizer.phase4 import MultiObjectiveOptimizer

optimizer = MultiObjectiveOptimizer(
    objectives={
        "structure": structure_objective,
        "performance": performance_objective
    },
    weights={"structure": 0.7, "performance": 0.3}
)

result = optimizer.optimize(search_space)

MultiObjectiveResult

多目标优化结果。

字段: - pareto_front: List[ParetoPoint] - Pareto前沿 - all_evaluated: List - 所有评估点

ParetoPoint

Pareto前沿点。

字段: - objectives: dict - 目标值字典 - aggregated_score: float - 聚合分数

optimize_multiple_objectives()

多目标优化便捷函数。

from lingflow.self_optimizer.phase4 import optimize_multiple_objectives

result = optimize_multiple_objectives(
    target_path="./my_project",
    goals=["structure", "performance", "simplicity"]
)

敏感性分析

SensitivityAnalyzer

参数敏感性分析器。

from lingflow.self_optimizer.phase4 import SensitivityAnalyzer

analyzer = SensitivityAnalyzer()
result = analyzer.analyze(
    objective=objective_function,
    search_space=search_space
)

SensitivityResult

敏感性分析结果。

SobolResult

Sobol敏感性分析结果。

analyze_sensitivity()

敏感性分析便捷函数。

from lingflow.self_optimizer.phase4 import analyze_sensitivity

result = analyze_sensitivity(
    target_path="./my_project",
    goal="structure"
)

可视化

OptimizationVisualizer

优化可视化器。

from lingflow.self_optimizer.phase4 import OptimizationVisualizer

visualizer = OptimizationVisualizer(output_dir=".lingflow/reports")

# 生成HTML报告
report_path = visualizer.generate_html_report(
    optimization_state=state,
    search_space=search_space
)

# 生成敏感性热力图
heatmap_path = visualizer.generate_sensitivity_heatmap(
    sensitivity_results=result
)

# 生成Pareto前沿图
pareto_path = visualizer.generate_pareto_front_plot(
    pareto_result=result
)

模块结构: - lingflow.self_optimizer.phase4.visualization.visualizer - 主可视化类 - lingflow.self_optimizer.phase4.visualization.charts - 图表生成器 - lingflow.self_optimizer.phase4.visualization.data_processor - 数据处理器

plot_optimization_progress()

绘制优化进度图。

from lingflow.self_optimizer.phase4 import plot_optimization_progress

path = plot_optimization_progress(
    optimization_state=state,
    search_space=search_space,
    output_dir=".lingflow/reports"
)

plot_sensitivity_heatmap()

绘制敏感性热力图。

from lingflow.self_optimizer.phase4 import plot_sensitivity_heatmap

path = plot_sensitivity_heatmap(
    sensitivity_results=result,
    output_dir=".lingflow/reports"
)

plot_pareto_front()

绘制Pareto前沿图。

from lingflow.self_optimizer.phase4 import plot_pareto_front

path = plot_pareto_front(
    pareto_result=result,
    output_dir=".lingflow/reports"
)

存储和缓存

FileSystemParameterStore

文件系统参数存储。

from lingflow.self_optimizer.phase4 import FileSystemParameterStore

store = FileSystemParameterStore(store_dir=".lingflow/params")
store.save("experiment_1", params)
params = store.load("experiment_1")

ParameterCache

参数缓存器。

from lingflow.self_optimizer.phase4 import ParameterCache

cache = ParameterCache(max_size=1000)
cache.put(params_hash, result)
result = cache.get(params_hash)

CachedParameterStore

带缓存的参数存储。

便捷函数

from lingflow.self_optimizer.phase4 import (
    get_default_store,
    save_params,
    load_params,
    get_latest_params,
    get_default_cache
)

# 保存参数
save_params("experiment_1", params)

# 加载参数
params = load_params("experiment_1")

# 获取最新参数
params = get_latest_params()

Phase 4 便捷函数

quick_optimize()

快速单目标优化。

from lingflow.self_optimizer.phase4 import quick_optimize

result = quick_optimize(
    target_path="./my_project",
    goal="structure"
)

quick_multi_optimize()

快速多目标优化。

from lingflow.self_optimizer.phase4 import quick_multi_optimize

result = quick_multi_optimize(
    target_path="./my_project",
    goals=["structure", "performance"]
)

quick_sensitivity_analysis()

快速敏感性分析。

from lingflow.self_optimizer.phase4 import quick_sensitivity_analysis

result = quick_sensitivity_analysis(
    target_path="./my_project",
    goal="structure"
)

Phase 5: AI工具学习系统

从外部AI代码分析工具中学习,自动集成到代码审查和优化流程。

数据模型

AIFeedback

AI工具反馈数据模型。

from lingflow.self_optimizer.phase5.models import AIFeedback

feedback = AIFeedback(
    id="feedback_001",
    source=FeedbackSource.SEMGREP,
    category=FeedbackCategory.SECURITY,
    severity=FeedbackSeverity.HIGH,
    rule_id="python.flask.security.xss",
    message="潜在的XSS漏洞",
    file_path="app.py",
    line_no=42,
    suggestion="使用escape()函数转义用户输入"
)

字段: - id: str - 唯一标识 - source: FeedbackSource - 来源工具 - category: FeedbackCategory - 问题类别 - severity: FeedbackSeverity - 严重程度 - rule_id: str - 规则ID - message: str - 反馈消息 - file_path: str - 文件路径 - line_no: int - 行号 - code_snippet: str - 代码片段 - suggestion: str - 修复建议

FeedbackSource

反馈来源枚举。

from lingflow.self_optimizer.phase5.models import FeedbackSource

FeedbackSource.SEMGREP
FeedbackSource.RUFF
FeedbackSource.PYLINT
FeedbackSource.SONARQUBE
FeedbackSource.CODEQL

FeedbackCategory

反馈分类枚举。

from lingflow.self_optimizer.phase5.models import FeedbackCategory

FeedbackCategory.SECURITY
FeedbackCategory.PERFORMANCE
FeedbackCategory.CODE_QUALITY
FeedbackCategory.BUG_RISK

FeedbackSeverity

反馈严重程度枚举。

from lingflow.self_optimizer.phase5.models import FeedbackSeverity

FeedbackSeverity.CRITICAL
FeedbackSeverity.HIGH
FeedbackSeverity.MEDIUM
FeedbackSeverity.LOW
FeedbackSeverity.INFO

LearnedRule

学习到的规则。

from lingflow.self_optimizer.phase5.models import LearnedRule

rule = LearnedRule(
    id="rule_001",
    name="避免硬编码密钥",
    description="检测代码中的硬编码密钥",
    category=FeedbackCategory.SECURITY,
    pattern=pattern,
    tools=["semgrep", "ruff"],
    frequency=10,
    confidence=0.95
)

Pattern

规则模式。


规则提取

RuleExtractor

规则提取器。

from lingflow.self_optimizer.phase5.learning import RuleExtractor

extractor = RuleExtractor(
    min_frequency=3,
    min_confidence=0.7,
    max_rules=1000
)

rules = extractor.extract_rules(
    feedback_items=feedback_list,
    category=FeedbackCategory.SECURITY
)

参数: - min_frequency: int - 最小频率阈值 - min_confidence: float - 最小置信度 - max_rules: int - 最大规则数

SecurityRuleExtractor

安全规则专用提取器。

from lingflow.self_optimizer.phase5.learning import SecurityRuleExtractor

extractor = SecurityRuleExtractor()
rules = extractor.extract_rules(feedback_items)

RuleDeduplicator

规则去重器。

from lingflow.self_optimizer.phase5.learning import RuleDeduplicator

deduplicator = RuleDeduplicator()
unique_rules = deduplicator.deduplicate(rules)

RuleValidator

规则验证器。

from lingflow.self_optimizer.phase5.learning import RuleValidator

validator = RuleValidator()
is_valid = validator.validate(rule)

模式识别

PatternRecognizer

模式识别器基类。

PatternDetector

通用模式检测器。

from lingflow.self_optimizer.phase5.patterns import PatternDetector

detector = PatternDetector()
patterns = detector.detect(feedback_items)

LongMethodDetector

长方法检测器。

from lingflow.self_optimizer.phase5.patterns import LongMethodDetector

detector = LongMethodDetector(max_lines=50)
long_methods = detector.detect(feedback_items)

UnusedVariableDetector

未使用变量检测器。

from lingflow.self_optimizer.phase5.patterns import UnusedVariableDetector

detector = UnusedVariableDetector()
unused = detector.detect(feedback_items)

HardcodedSecretDetector

硬编码密钥检测器。

from lingflow.self_optimizer.phase5.patterns import HardcodedSecretDetector

detector = HardcodedSecretDetector()
secrets = detector.detect(feedback_items)

DuplicateCodeDetector

重复代码检测器。

from lingflow.self_optimizer.phase5.patterns import DuplicateCodeDetector

detector = DuplicateCodeDetector()
duplicates = detector.detect(feedback_items)

EmptyBlockDetector

空代码块检测器。

from lingflow.self_optimizer.phase5.patterns import EmptyBlockDetector

detector = EmptyBlockDetector()
empty_blocks = detector.detect(feedback_items)

ComplexityDetector

复杂度检测器。

from lingflow.self_optimizer.phase5.patterns import ComplexityDetector

detector = ComplexityDetector(max_complexity=10)
complex_items = detector.detect(feedback_items)

知识库

KnowledgeBase

知识库接口。

from lingflow.self_optimizer.phase5.knowledge import KnowledgeBase

class MyKnowledgeBase(KnowledgeBase):
    def add_rule(self, rule: LearnedRule):
        pass

    def get_rule(self, rule_id: str) -> LearnedRule:
        pass

    def get_all_rules(self) -> List[LearnedRule]:
        pass

InMemoryKnowledgeBase

内存知识库实现。

from lingflow.self_optimizer.phase5.knowledge import InMemoryKnowledgeBase

kb = InMemoryKnowledgeBase()
kb.add_rule(rule)
rules = kb.get_all_rules()

方法: - add_rule(rule) - 添加规则 - get_rule(rule_id) - 获取规则 - get_all_rules() - 获取所有规则 - get_rules_by_category(category) - 按类别获取规则 - clear() - 清空知识库


AI工具适配器

BaseAdapter

AI工具适配器基类。

from lingflow.self_optimizer.phase5.adapters.base_adapter import BaseAdapter

class MyAdapter(BaseAdapter):
    def scan(self, target: str) -> List[AIFeedback]:
        pass

方法: - scan(target: str) -> List[AIFeedback] - 扫描目标路径 - is_available() -> bool - 检查工具是否可用 - normalize_results(results) -> List[AIFeedback] - 规范化结果

SemgrepAdapter

Semgrep适配器。

from lingflow.self_optimizer.phase5.adapters import SemgrepAdapter

adapter = SemgrepAdapter()
feedback = adapter.scan("./my_project")

RuffAdapter

Ruff适配器。

from lingflow.self_optimizer.phase5.adapters import RuffAdapter

adapter = RuffAdapter()
feedback = adapter.scan("./my_project")

PylintAdapter

Pylint适配器。

from lingflow.self_optimizer.phase5.adapters import PylintAdapter

adapter = PylintAdapter()
feedback = adapter.scan("./my_project")

版本信息

  • self_optimizer: 3.6.0
  • Phase 4: 4.0.0-alpha
  • Phase 5: 5.0.0-alpha

许可证

© 2026 LingFlow Team. All rights reserved.