Added few more changes to accommodate review comments.
This commit is contained in:
parent
03c9dce8cf
commit
ed75b80958
@ -2,15 +2,10 @@ package com.baeldung.langchain;
|
||||
|
||||
import static dev.langchain4j.data.document.FileSystemDocumentLoader.loadDocument;
|
||||
import static java.time.Duration.ofSeconds;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -31,11 +26,11 @@ import dev.langchain4j.store.embedding.EmbeddingStoreIngestor;
|
||||
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
|
||||
|
||||
public class ChainWithDocumentLiveTest {
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(ChainWithDocumentLiveTest.class);
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ChainWithDocumentLiveTest.class);
|
||||
|
||||
@Test
|
||||
public void givenDocument_whenPrompted_thenValidResponse() {
|
||||
public void givenChainWithDocument_whenPrompted_thenValidResponse() {
|
||||
|
||||
EmbeddingModel embeddingModel = new AllMiniLmL6V2EmbeddingModel();
|
||||
|
||||
@ -47,7 +42,7 @@ public class ChainWithDocumentLiveTest {
|
||||
.embeddingStore(embeddingStore)
|
||||
.build();
|
||||
|
||||
Document document = loadDocument(toPath("src/test/resources/example-files/simpson's_adventures.txt"));
|
||||
Document document = loadDocument(Paths.get("src/test/resources/example-files/simpson's_adventures.txt"));
|
||||
ingestor.ingest(document);
|
||||
|
||||
ChatLanguageModel chatModel = OpenAiChatModel.builder()
|
||||
@ -59,27 +54,14 @@ public class ChainWithDocumentLiveTest {
|
||||
.chatLanguageModel(chatModel)
|
||||
.retriever(EmbeddingStoreRetriever.from(embeddingStore, embeddingModel))
|
||||
.chatMemory(MessageWindowChatMemory.withMaxMessages(10))
|
||||
.promptTemplate(PromptTemplate
|
||||
.from("Answer the following question to the best of your ability: {{question}}\n\nBase your answer on the following information:\n{{information}}"))
|
||||
.promptTemplate(PromptTemplate.from("Answer the following question to the best of your ability: {{question}}\n\nBase your answer on the following information:\n{{information}}"))
|
||||
.build();
|
||||
|
||||
String answer = chain.execute("Who is Simpson?");
|
||||
|
||||
logger.info(answer);
|
||||
Assert.assertNotNull(answer);
|
||||
assertNotNull(answer);
|
||||
|
||||
}
|
||||
|
||||
private static Path toPath(String fileName) {
|
||||
try {
|
||||
URL fileUrl = new File(fileName).toURI()
|
||||
.toURL();
|
||||
System.out.println(new File(fileName).toURI()
|
||||
.toURL());
|
||||
return Paths.get(fileUrl.toURI());
|
||||
} catch (URISyntaxException | MalformedURLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -4,18 +4,13 @@ import static dev.langchain4j.data.document.FileSystemDocumentLoader.loadDocumen
|
||||
import static dev.langchain4j.model.openai.OpenAiModelName.GPT_3_5_TURBO;
|
||||
import static java.time.Duration.ofSeconds;
|
||||
import static java.util.stream.Collectors.joining;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -38,13 +33,13 @@ import dev.langchain4j.store.embedding.EmbeddingStore;
|
||||
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
|
||||
|
||||
public class ChatWithDocumentLiveTest {
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(ChatWithDocumentLiveTest.class);
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ChatWithDocumentLiveTest.class);
|
||||
|
||||
@Test
|
||||
public void givenChainWithDocument_whenPrompted_thenValidResponse() {
|
||||
public void givenDocument_whenPrompted_thenValidResponse() {
|
||||
|
||||
Document document = loadDocument(toPath("src/test/resources/example-files/simpson's_adventures.txt"));
|
||||
Document document = loadDocument(Paths.get("src/test/resources/example-files/simpson's_adventures.txt"));
|
||||
DocumentSplitter splitter = DocumentSplitters.recursive(100, 0, new OpenAiTokenizer(GPT_3_5_TURBO));
|
||||
List<TextSegment> segments = splitter.split(document);
|
||||
|
||||
@ -81,20 +76,8 @@ public class ChatWithDocumentLiveTest {
|
||||
.content();
|
||||
|
||||
logger.info(aiMessage.text());
|
||||
Assert.assertNotNull(aiMessage.text());
|
||||
assertNotNull(aiMessage.text());
|
||||
|
||||
}
|
||||
|
||||
private static Path toPath(String fileName) {
|
||||
try {
|
||||
URL fileUrl = new File(fileName).toURI()
|
||||
.toURL();
|
||||
System.out.println(new File(fileName).toURI()
|
||||
.toURL());
|
||||
return Paths.get(fileUrl.toURI());
|
||||
} catch (URISyntaxException | MalformedURLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,14 @@
|
||||
package com.baeldung.langchain;
|
||||
|
||||
import static dev.langchain4j.data.message.UserMessage.userMessage;
|
||||
import static dev.langchain4j.model.openai.OpenAiModelName.GPT_3_5_TURBO;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import dev.langchain4j.data.message.AiMessage;
|
||||
import dev.langchain4j.memory.ChatMemory;
|
||||
import dev.langchain4j.memory.chat.TokenWindowChatMemory;
|
||||
@ -7,18 +16,9 @@ import dev.langchain4j.model.chat.ChatLanguageModel;
|
||||
import dev.langchain4j.model.openai.OpenAiChatModel;
|
||||
import dev.langchain4j.model.openai.OpenAiTokenizer;
|
||||
|
||||
import static dev.langchain4j.data.message.UserMessage.userMessage;
|
||||
import static dev.langchain4j.model.openai.OpenAiModelName.GPT_3_5_TURBO;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class ChatWithMemoryLiveTest {
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(ChatWithMemoryLiveTest.class);
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ChatWithMemoryLiveTest.class);
|
||||
|
||||
@Test
|
||||
public void givenMemory_whenPrompted_thenValidResponse() {
|
||||
@ -30,15 +30,16 @@ public class ChatWithMemoryLiveTest {
|
||||
AiMessage answer = model.generate(chatMemory.messages())
|
||||
.content();
|
||||
logger.info(answer.text());
|
||||
Assert.assertNotNull(answer.text());
|
||||
chatMemory.add(answer);
|
||||
assertNotNull(answer.text());
|
||||
|
||||
chatMemory.add(userMessage("What is my name?"));
|
||||
AiMessage answerWithName = model.generate(chatMemory.messages())
|
||||
.content();
|
||||
logger.info(answerWithName.text());
|
||||
assertThat(answerWithName.text().contains("Kumar"));
|
||||
chatMemory.add(answerWithName);
|
||||
assertThat(answerWithName.text()
|
||||
.contains("Kumar"));
|
||||
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,6 @@ public class Constants {
|
||||
* registering for free at (https://platform.openai.com/signup) and then by navigating
|
||||
* to "Create new secret key" page at (https://platform.openai.com/account/api-keys).
|
||||
*/
|
||||
public static String OPEN_AI_KEY = "<OPEN_AI_KEY>";
|
||||
public static String OPEN_AI_KEY = "demo"; //"<OPEN_AI_KEY>";
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.baeldung.langchain;
|
||||
|
||||
import static dev.langchain4j.model.openai.OpenAiModelName.GPT_3_5_TURBO;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -14,11 +15,9 @@ import dev.langchain4j.model.input.Prompt;
|
||||
import dev.langchain4j.model.input.PromptTemplate;
|
||||
import dev.langchain4j.model.openai.OpenAiChatModel;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
public class PromptTemplatesLiveTest {
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(PromptTemplatesLiveTest.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(PromptTemplatesLiveTest.class);
|
||||
|
||||
@Test
|
||||
public void givenPromptTemplate_whenSuppliedInput_thenValidResponse() {
|
||||
@ -37,7 +36,7 @@ public class PromptTemplatesLiveTest {
|
||||
|
||||
String response = model.generate(prompt.text());
|
||||
logger.info(response);
|
||||
Assert.assertNotNull(response);
|
||||
assertNotNull(response);
|
||||
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,6 @@ package com.baeldung.langchain;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -14,7 +13,7 @@ import dev.langchain4j.service.AiServices;
|
||||
|
||||
public class ServiceWithToolsLiveTest {
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(ServiceWithToolsLiveTest.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(ServiceWithToolsLiveTest.class);
|
||||
|
||||
static class Calculator {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user