php+openai兼容api实现对单个代码进行行级别编辑合并新文件代码

代码语言:php

所属分类:其他

代码描述:php+openai兼容api实现对单个代码进行行级别编辑合并新文件代码,根据需求返回行操作指令,然后根据指令对代码进行行操作变成新的代码,这样ai无需返回完整修改或的代码,只要返回行操作指令即可。

代码标签: php openai 兼容 api 单个 代码 进行 级别 编辑 合并 文件 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php

class AICodePatcher
{
    /**
     * 应用 AI 生成的代码补丁(优化版)
     * 
     * @param string $sourceCode 原始代码
     * @param string $aiPrompt   修改要求
     * @param string $apiKey     API 密钥
     * @param string $baseUrl    API 地址
     * @param string $model      模型名称
     * @param array  $options    额外选项
     * @return string 修改后的代码
     * @throws Exception
     */
    public static function applyAICodePatch($sourceCode, $aiPrompt, $apiKey, 
                                           $baseUrl = 'https://dashscope.aliyuncs.com/compatible-mode/v1', 
                                           $model = 'qwen3.5-flash', 
                                           $options = []) {
        // 默认配置合并
        $options = array_merge([
            'enableJsValidation' => true,   // 启用JS基础语法验证
            'maxRetries' => 2,              // API调用重试次数
            'contextAware' => true          // 启用代码块上下文标记
        ], $options);
        
        // 1. 预处理:标准化换行符
        $sourceCode = str_replace(["\r\n", "\r"], "\n", $sourceCode);
        $sourceLines = explode("\n", $sourceCode);

        // 2. 【关键优化】构建带上下文标记的行号代码
        $numberedSource = $options['contextAware'] 
            ? self::buildNumberedSourceWithContext($sourceLines)
            : self::buildSimpleNumberedSource($sourceLines);

        // 3. 【关键优化】构建增强版 System Prompt(含JS语法约束)
        $systemPrompt = self::buildEnhancedSystemPrompt($options['enableJsValidation']);

        $userMessage = "【修改要求】\n" . $aiPrompt . "\n\n【原始代码】\n&quo.........完整代码请登录后点击上方下载按钮下载查看

网友评论0