mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-30 15:04:16 -07:00
fix(triage): tune prompt to return json text and harden eval json extraction
This commit is contained in:
@@ -103,14 +103,24 @@ const assertHasIssueLabel = (issueNumber: number, expectedLabel: string) => {
|
||||
|
||||
// The model response JSON is in the 'response' field
|
||||
const responseText = output.response;
|
||||
const firstBrace = responseText.indexOf('[');
|
||||
const lastBrace = responseText.lastIndexOf(']');
|
||||
if (firstBrace === -1 || lastBrace === -1 || lastBrace < firstBrace) {
|
||||
throw new Error(
|
||||
`Could not find a JSON array in the response: "${escapeHtml(responseText)}"`,
|
||||
);
|
||||
let jsonString: string;
|
||||
const match = responseText.match(/```json\s*([\s\S]*?)\s*```/);
|
||||
if (match?.[1]) {
|
||||
jsonString = match[1];
|
||||
} else {
|
||||
const firstBracket = responseText.indexOf('[');
|
||||
const lastBracket = responseText.lastIndexOf(']');
|
||||
if (
|
||||
firstBracket === -1 ||
|
||||
lastBracket === -1 ||
|
||||
lastBracket < firstBracket
|
||||
) {
|
||||
throw new Error(
|
||||
`Could not find a JSON array in the response: "${escapeHtml(responseText)}"`,
|
||||
);
|
||||
}
|
||||
jsonString = responseText.substring(firstBracket, lastBracket + 1);
|
||||
}
|
||||
const jsonString = responseText.substring(firstBrace, lastBrace + 1);
|
||||
|
||||
let data: { issue_number: number; labels_to_add: string[] }[];
|
||||
try {
|
||||
|
||||
+13
-7
@@ -103,14 +103,20 @@ const assertHasLabel = (expectedLabel: string) => {
|
||||
|
||||
// The model response JSON is in the 'response' field
|
||||
const responseText = output.response;
|
||||
const firstBrace = responseText.indexOf('{');
|
||||
const lastBrace = responseText.lastIndexOf('}');
|
||||
if (firstBrace === -1 || lastBrace === -1 || lastBrace < firstBrace) {
|
||||
throw new Error(
|
||||
`Could not find a JSON object in the response: "${escapeHtml(responseText)}"`,
|
||||
);
|
||||
let jsonString: string;
|
||||
const match = responseText.match(/```json\s*([\s\S]*?)\s*```/);
|
||||
if (match?.[1]) {
|
||||
jsonString = match[1];
|
||||
} else {
|
||||
const firstBrace = responseText.indexOf('{');
|
||||
const lastBrace = responseText.lastIndexOf('}');
|
||||
if (firstBrace === -1 || lastBrace === -1 || lastBrace < firstBrace) {
|
||||
throw new Error(
|
||||
`Could not find a JSON object in the response: "${escapeHtml(responseText)}"`,
|
||||
);
|
||||
}
|
||||
jsonString = responseText.substring(firstBrace, lastBrace + 1);
|
||||
}
|
||||
const jsonString = responseText.substring(firstBrace, lastBrace + 1);
|
||||
|
||||
let data: { labels_to_set?: string[] };
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user