Skip to content

Remove lombok & include easy-rag starter #126

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: release-rc1-and-beta4
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions langchain4j-anthropic-spring-boot-starter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,6 @@
<optional>true</optional>
</dependency>

<!-- should be listed before spring-boot-configuration-processor -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>

<!-- needed to generate automatic metadata about available config properties -->
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,26 @@ public class AutoConfig {
@Bean
@ConditionalOnProperty(PREFIX + ".chat-model.api-key")
AnthropicChatModel anthropicChatModel(Properties properties, ObjectProvider<ChatModelListener> listeners) {
ChatModelProperties chatModelProperties = properties.getChatModel();
ChatModelProperties chatModelProperties = properties.chatModel();
return AnthropicChatModel.builder()
.baseUrl(chatModelProperties.getBaseUrl())
.apiKey(chatModelProperties.getApiKey())
.version(chatModelProperties.getVersion())
.beta(chatModelProperties.getBeta())
.modelName(chatModelProperties.getModelName())
.temperature(chatModelProperties.getTemperature())
.topP(chatModelProperties.getTopP())
.topK(chatModelProperties.getTopK())
.maxTokens(chatModelProperties.getMaxTokens())
.stopSequences(chatModelProperties.getStopSequences())
.cacheSystemMessages(chatModelProperties.getCacheSystemMessages())
.cacheTools(chatModelProperties.getCacheTools())
.thinkingType(chatModelProperties.getThinkingType())
.thinkingBudgetTokens(chatModelProperties.getThinkingBudgetTokens())
.timeout(chatModelProperties.getTimeout())
.maxRetries(chatModelProperties.getMaxRetries())
.logRequests(chatModelProperties.getLogRequests())
.logResponses(chatModelProperties.getLogResponses())
.baseUrl(chatModelProperties.baseUrl())
.apiKey(chatModelProperties.apiKey())
.version(chatModelProperties.version())
.beta(chatModelProperties.beta())
.modelName(chatModelProperties.modelName())
.temperature(chatModelProperties.temperature())
.topP(chatModelProperties.topP())
.topK(chatModelProperties.topK())
.maxTokens(chatModelProperties.maxTokens())
.stopSequences(chatModelProperties.stopSequences())
.cacheSystemMessages(chatModelProperties.cacheSystemMessages())
.cacheTools(chatModelProperties.cacheTools())
.thinkingType(chatModelProperties.thinkingType())
.thinkingBudgetTokens(chatModelProperties.thinkingBudgetTokens())
.timeout(chatModelProperties.timeout())
.maxRetries(chatModelProperties.maxRetries())
.logRequests(chatModelProperties.logRequests())
.logResponses(chatModelProperties.logResponses())
.listeners(listeners.orderedStream().toList())
.build();
}
Expand All @@ -46,25 +46,25 @@ AnthropicChatModel anthropicChatModel(Properties properties, ObjectProvider<Chat
@ConditionalOnProperty(PREFIX + ".streaming-chat-model.api-key")
AnthropicStreamingChatModel anthropicStreamingChatModel(Properties properties,
ObjectProvider<ChatModelListener> listeners) {
ChatModelProperties chatModelProperties = properties.getStreamingChatModel();
ChatModelProperties chatModelProperties = properties.streamingChatModel();
return AnthropicStreamingChatModel.builder()
.baseUrl(chatModelProperties.getBaseUrl())
.apiKey(chatModelProperties.getApiKey())
.version(chatModelProperties.getVersion())
.beta(chatModelProperties.getBeta())
.modelName(chatModelProperties.getModelName())
.temperature(chatModelProperties.getTemperature())
.topP(chatModelProperties.getTopP())
.topK(chatModelProperties.getTopK())
.maxTokens(chatModelProperties.getMaxTokens())
.stopSequences(chatModelProperties.getStopSequences())
.cacheSystemMessages(chatModelProperties.getCacheSystemMessages())
.cacheTools(chatModelProperties.getCacheTools())
.thinkingType(chatModelProperties.getThinkingType())
.thinkingBudgetTokens(chatModelProperties.getThinkingBudgetTokens())
.timeout(chatModelProperties.getTimeout())
.logRequests(chatModelProperties.getLogRequests())
.logResponses(chatModelProperties.getLogResponses())
.baseUrl(chatModelProperties.baseUrl())
.apiKey(chatModelProperties.apiKey())
.version(chatModelProperties.version())
.beta(chatModelProperties.beta())
.modelName(chatModelProperties.modelName())
.temperature(chatModelProperties.temperature())
.topP(chatModelProperties.topP())
.topK(chatModelProperties.topK())
.maxTokens(chatModelProperties.maxTokens())
.stopSequences(chatModelProperties.stopSequences())
.cacheSystemMessages(chatModelProperties.cacheSystemMessages())
.cacheTools(chatModelProperties.cacheTools())
.thinkingType(chatModelProperties.thinkingType())
.thinkingBudgetTokens(chatModelProperties.thinkingBudgetTokens())
.timeout(chatModelProperties.timeout())
.logRequests(chatModelProperties.logRequests())
.logResponses(chatModelProperties.logResponses())
.listeners(listeners.orderedStream().toList())
.build();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,25 @@
package dev.langchain4j.anthropic.spring;

import lombok.Getter;
import lombok.Setter;

import java.time.Duration;
import java.util.List;

@Getter
@Setter
class ChatModelProperties {

String baseUrl;
String apiKey;
String version;
String beta;
String modelName;
Double temperature;
Double topP;
Integer topK;
Integer maxTokens;
List<String> stopSequences;
Boolean cacheSystemMessages;
Boolean cacheTools;
String thinkingType;
Integer thinkingBudgetTokens;
Duration timeout;
Integer maxRetries;
Boolean logRequests;
Boolean logResponses;
record ChatModelProperties(
String baseUrl,
String apiKey,
String version,
String beta,
String modelName,
Double temperature,
Double topP,
Integer topK,
Integer maxTokens,
List<String> stopSequences,
Boolean cacheSystemMessages,
Boolean cacheTools,
String thinkingType,
Integer thinkingBudgetTokens,
Duration timeout,
Integer maxRetries,
Boolean logRequests,
Boolean logResponses){
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
package dev.langchain4j.anthropic.spring;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

@Getter
@Setter
@ConfigurationProperties(prefix = Properties.PREFIX)
public class Properties {

static final String PREFIX = "langchain4j.anthropic";

public record Properties(
@NestedConfigurationProperty
ChatModelProperties chatModel;
ChatModelProperties chatModel,

@NestedConfigurationProperty
ChatModelProperties streamingChatModel;
ChatModelProperties streamingChatModel) {

static final String PREFIX = "langchain4j.anthropic";

}
7 changes: 0 additions & 7 deletions langchain4j-azure-ai-search-spring-boot-starter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,6 @@
<optional>true</optional>
</dependency>

<!-- should be listed before spring-boot-configuration-processor -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>

<!-- needed to generate automatic metadata about available config properties -->
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,29 @@ public class AutoConfig {
@Bean
@ConditionalOnProperty(PREFIX + ".content-retriever.api-key")
public AzureAiSearchContentRetriever azureAiSearchContentRetriever(Properties properties, @Nullable EmbeddingModel embeddingModel, @Nullable SearchIndex index) {
Properties.NestedProperties nestedProperties = properties.getContentRetriever();
Properties.NestedProperties nestedProperties = properties.contentRetriever();
return AzureAiSearchContentRetriever.builder()
.endpoint(nestedProperties.getEndpoint())
.apiKey(nestedProperties.getApiKey())
.createOrUpdateIndex(nestedProperties.getCreateOrUpdateIndex())
.endpoint(nestedProperties.endpoint())
.apiKey(nestedProperties.apiKey())
.createOrUpdateIndex(nestedProperties.createOrUpdateIndex())
.embeddingModel(embeddingModel)
.dimensions(nestedProperties.getDimensions() == null ? 0 : nestedProperties.getDimensions())
.dimensions(nestedProperties.dimensions())
.index(index)
.maxResults(nestedProperties.getMaxResults())
.minScore(nestedProperties.getMinScore() == null ? 0.0 : nestedProperties.getMinScore())
.queryType(nestedProperties.getQueryType())
.maxResults(nestedProperties.maxResults())
.minScore(nestedProperties.minScore())
.queryType(nestedProperties.queryType())
.build();
}

@Bean
@ConditionalOnProperty(PREFIX + ".embedding-store.api-key")
public AzureAiSearchEmbeddingStore azureAiSearchEmbeddingStore(Properties properties, @Nullable EmbeddingModel embeddingModel, @Nullable SearchIndex index) {
Properties.NestedProperties nestedProperties = properties.getEmbeddingStore();
Properties.NestedProperties nestedProperties = properties.embeddingStore();
return AzureAiSearchEmbeddingStore.builder()
.endpoint(nestedProperties.getEndpoint())
.apiKey(nestedProperties.getApiKey())
.createOrUpdateIndex(nestedProperties.getCreateOrUpdateIndex())
.dimensions(nestedProperties.getDimensions())
.endpoint(nestedProperties.endpoint())
.apiKey(nestedProperties.apiKey())
.createOrUpdateIndex(nestedProperties.createOrUpdateIndex())
.dimensions(nestedProperties.dimensions())
.index(index)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,34 +1,31 @@
package dev.langchain4j.azure.aisearch.spring;

import dev.langchain4j.rag.content.retriever.azure.search.AzureAiSearchQueryType;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.boot.context.properties.bind.DefaultValue;

@Getter
@Setter
@ConfigurationProperties(prefix = Properties.PREFIX)
public class Properties {
public record Properties(
@NestedConfigurationProperty
NestedProperties contentRetriever,
@NestedConfigurationProperty
NestedProperties embeddingStore
) {

static final String PREFIX = "langchain4j.azure.ai-search";

@NestedConfigurationProperty
NestedProperties contentRetriever;

@NestedConfigurationProperty
NestedProperties embeddingStore;
public static record NestedProperties(
String endpoint,
String apiKey,
int dimensions,
Boolean createOrUpdateIndex,
String indexName,
@DefaultValue("3")
Integer maxResults,
double minScore,
AzureAiSearchQueryType queryType
) {

@Getter
@Setter
public static class NestedProperties {
String endpoint;
String apiKey;
Integer dimensions;
Boolean createOrUpdateIndex;
String indexName;
Integer maxResults = 3;
Double minScore;
AzureAiSearchQueryType queryType;
}
}
}
7 changes: 0 additions & 7 deletions langchain4j-easy-rag-spring-boot-starter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,6 @@
<optional>true</optional>
</dependency>

<!-- should be listed before spring-boot-configuration-processor -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>

<!-- needed to generate automatic metadata about available config properties -->
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
package dev.langchain4j.rag.easy.spring;

import lombok.Getter;
import lombok.Setter;

import java.nio.file.Path;

@Getter
@Setter
class DocumentsProperties {
public record DocumentsProperties(
Path path,
String glob,
Boolean recursion
) {

Path path;
String glob;
Boolean recursion;
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ ApplicationRunner easyRagDocumentIngestor(DocumentSplitter documentSplitter, //
EasyRagProperties easyRagProperties) { // TODO bean name, type
return args -> {

List<Document> documents = loadDocuments(easyRagProperties.ingestion.documents);
List<Document> documents = loadDocuments(easyRagProperties.ingestion().documents());

EmbeddingStoreIngestor ingestor = EmbeddingStoreIngestor.builder()
// TODO documentTransformer
Expand All @@ -74,16 +74,16 @@ ApplicationRunner easyRagDocumentIngestor(DocumentSplitter documentSplitter, //
}

private static List<Document> loadDocuments(DocumentsProperties documentsProperties) {
if (documentsProperties.recursion != null && documentsProperties.recursion) {
if (documentsProperties.recursion() != null && documentsProperties.recursion()) {
throw new NotImplementedException(); // TODO
} else {
if (isNotNullOrBlank(documentsProperties.glob)) {
if (isNotNullOrBlank(documentsProperties.glob())) {
throw new NotImplementedException(); // TODO
} else {
if (documentsProperties.path.toFile().isDirectory()) {
return FileSystemDocumentLoader.loadDocuments(documentsProperties.path);
if (documentsProperties.path().toFile().isDirectory()) {
return FileSystemDocumentLoader.loadDocuments(documentsProperties.path());
} else {
Document document = FileSystemDocumentLoader.loadDocument(documentsProperties.path);
Document document = FileSystemDocumentLoader.loadDocument(documentsProperties.path());
return singletonList(document);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
package dev.langchain4j.rag.easy.spring;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

import static dev.langchain4j.rag.easy.spring.EasyRagProperties.PREFIX;

@Getter
@Setter
@ConfigurationProperties(prefix = PREFIX)
public class EasyRagProperties {
public record EasyRagProperties(
@NestedConfigurationProperty
IngestionProperties ingestion) {

static final String PREFIX = "langchain4j.easy-rag";

@NestedConfigurationProperty
IngestionProperties ingestion;
}
Loading