Просмотр исходного кода

Merge branch 'main' of https://git.yishihui.com/howard/Agent

guantao 1 день назад
Родитель
Сommit
e922ff918c

+ 2 - 0
examples/process_pipeline/prompts/apply_to_grounding.prompt

@@ -20,6 +20,8 @@
 - 优先以最能代表 query 核心语义的真实 category_path 为基准;如果实质和形式都存在,通常优先以实质路径为基准,形式路径只作为命名和细化参考。
 - 从根往下逐层检查基准 category_path 的每一层,判断该层是否仍然准确描述了 query 的语义。
 - 找到第一个"不够精确或有偏差"的层级,从该层级开始续写(替换该层及其后的所有层)。续写的风格应当与路径中的其他层级相符合,至少词性应当一致。
+- suggest_apply_to 的所有层级必须保持同一种内容类型,不能在一条路径里混入另一套语义体系。
+- suggest_apply_to 必须满足根节点已决定的 source_type 分类:实质路径中不能出现形式类词汇,形式路径中不能出现实质类词汇;实质和形式各自有不同的命名规则、用词习惯和层级粒度,生成时必须仔细观察同 source_type 的真实路径后再续写。
 - 如果基准 category_path 所有层级都准确,且 query 没有更细的信息,则 suggest_apply_to = 基准 category_path。
 - 如果基准 category_path 所有层级都准确,但 query 还有更细的信息未体现,则在末尾续写 1-3 个层级。
 - 续写部分命名风格参考下方"邻近路径参考"(两字名词、层级粒度保持一致)。

Разница между файлами не показана из-за своего большого размера
+ 198 - 198
examples/process_pipeline/ui/app.js


+ 23 - 8
examples/process_pipeline/ui/scratchpad.js

@@ -22,10 +22,26 @@ function renderStructuredData(items, type) {
         
         // Render apply_to or apply_to_draft
         const applyTo = item.apply_to_draft || item.apply_to;
+        const suggestApplyTo = item.apply_to_draft ? null : item.suggest_apply_to;
         if (applyTo && typeof applyTo === 'object' && Object.keys(applyTo).length > 0) {
             html += `<div class="structured-row">
                 <div class="structured-label">apply_to</div>
                 <div class="structured-value" style="display:flex; flex-direction:column; gap:6px;">`;
+
+            const renderPathBadge = (path, highlight = false) => {
+                const pathStr = typeof path === 'object' && path !== null
+                    ? (path.element || path.category_path || path.path || '')
+                    : String(path || '');
+                if (!pathStr) return '';
+                const parts = pathStr.split('/');
+                const leaf = parts.pop();
+                const prefix = parts.length > 0 ? parts.join('/') + '/' : '';
+                const leafStyle = highlight ? 'background:#eff6ff; color:#2563eb; border:1px solid #bfdbfe;' : '';
+                return `<span class="apply-to-path-item" ${highlight ? 'style="border: 2px dashed #94a3b8; background: transparent;"' : ''}>
+                    ${prefix ? `<span class="apply-to-path-prefix">${prefix}</span>` : ''}
+                    <span class="apply-to-path-leaf" style="${leafStyle}">${leaf}</span>
+                </span>`;
+            };
             
             Object.entries(applyTo).forEach(([k, v]) => {
                 if (Array.isArray(v) && v.length > 0) {
@@ -33,18 +49,17 @@ function renderStructuredData(items, type) {
                         <span class="apply-to-key-badge">${k}</span>
                         <div class="apply-to-values">`;
                     v.forEach(path => {
-                        // split path to style the leaf node
-                        const parts = path.split('/');
-                        const leaf = parts.pop();
-                        const prefix = parts.length > 0 ? parts.join('/') + '/' : '';
-                        html += `<span class="apply-to-path-item">
-                            ${prefix ? `<span class="apply-to-path-prefix">${prefix}</span>` : ''}
-                            <span class="apply-to-path-leaf">${leaf}</span>
-                        </span>`;
+                        html += renderPathBadge(path);
                     });
                     html += `</div></div>`;
                 }
             });
+            if (typeof suggestApplyTo === 'string' && suggestApplyTo.trim()) {
+                html += `<div class="apply-to-subrow">
+                    <span class="apply-to-key-badge">最优</span>
+                    <div class="apply-to-values">${renderPathBadge(suggestApplyTo, true)}</div>
+                </div>`;
+            }
             html += `</div></div>`;
         }
         

Некоторые файлы не были показаны из-за большого количества измененных файлов