diff --git a/apps/aelis-backend/src/enhancement/llm-client.ts b/apps/aelis-backend/src/enhancement/llm-client.ts index 06f4636..c3b68a1 100644 --- a/apps/aelis-backend/src/enhancement/llm-client.ts +++ b/apps/aelis-backend/src/enhancement/llm-client.ts @@ -46,7 +46,7 @@ export function createLlmClient(config: LlmClientConfig): LlmClient { type: "json_schema" as const, jsonSchema: { name: "enhancement_result", - strict: true, + strict: false, schema: enhancementResultJsonSchema, }, }, diff --git a/apps/aelis-backend/src/enhancement/schema.test.ts b/apps/aelis-backend/src/enhancement/schema.test.ts index 56f1cf8..4ac0c85 100644 --- a/apps/aelis-backend/src/enhancement/schema.test.ts +++ b/apps/aelis-backend/src/enhancement/schema.test.ts @@ -166,11 +166,12 @@ describe("schema sync", () => { expect(parseEnhancementResult(JSON.stringify(bad))).toBeNull() // JSON Schema only allows string or null for slot values - const slotValueTypes = + const slotValueSchema = enhancementResultJsonSchema.properties.slotFills.additionalProperties - .additionalProperties.type - expect(slotValueTypes).toContain("string") - expect(slotValueTypes).toContain("null") - expect(slotValueTypes).not.toContain("number") + .additionalProperties + expect(slotValueSchema.anyOf).toEqual([ + { type: "string" }, + { type: "null" }, + ]) }) }) diff --git a/apps/aelis-backend/src/enhancement/schema.ts b/apps/aelis-backend/src/enhancement/schema.ts index e2c8d7f..10d5f61 100644 --- a/apps/aelis-backend/src/enhancement/schema.ts +++ b/apps/aelis-backend/src/enhancement/schema.ts @@ -31,7 +31,7 @@ export const enhancementResultJsonSchema = { additionalProperties: { type: "object", additionalProperties: { - type: ["string", "null"], + anyOf: [{ type: "string" }, { type: "null" }], }, }, },