diff --git a/pom.xml b/pom.xml index 2b02402..3b6acc0 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.izzatalsharif.openai chat-agent - 0.1.1 + 0.1.2 chat-agent chat-agent diff --git a/src/main/java/com/izzatalsharif/openai/chatagent/core/AgentService.java b/src/main/java/com/izzatalsharif/openai/chatagent/core/AgentService.java index 3fbca1c..d7ee805 100644 --- a/src/main/java/com/izzatalsharif/openai/chatagent/core/AgentService.java +++ b/src/main/java/com/izzatalsharif/openai/chatagent/core/AgentService.java @@ -142,7 +142,20 @@ public Mono request(I input) throws InputFormattingException, OutputPa * @return the request template with the prompt injected */ private String injectRequest(String prompt) { + prompt = quoteFix(prompt); return template.replace("{prompt}", prompt); } + /** + * Adds prefix '\' to all double quotes to ensure proper parsing. + * This is because the prompt will be injected as a string and parsed again in OpenAI server. + * So it must be explicit '\"' in the JSON body. + * + * @param prompt the input string to be fixed + * @return the fixed input string + */ + private String quoteFix(String prompt) { + return prompt.replaceAll("\"", "\\\\\""); + } + } diff --git a/src/test/java/com/izzatalsharif/openai/chatagent/HandlersTest.java b/src/test/java/com/izzatalsharif/openai/chatagent/HandlersTest.java index 5f2669d..d4a3c43 100644 --- a/src/test/java/com/izzatalsharif/openai/chatagent/HandlersTest.java +++ b/src/test/java/com/izzatalsharif/openai/chatagent/HandlersTest.java @@ -1,13 +1,7 @@ package com.izzatalsharif.openai.chatagent; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.izzatalsharif.openai.chatagent.core.HandlerFactory; import com.izzatalsharif.openai.chatagent.exception.OutputParsingException; -import com.izzatalsharif.openai.chatagent.handler.JsonInputFormatter; -import com.izzatalsharif.openai.chatagent.handler.JsonOutputParser; -import com.izzatalsharif.openai.chatagent.handler.XmlInputFormatter; -import com.izzatalsharif.openai.chatagent.handler.XmlOutputParser; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;