add List<Media> to node and move ai.transformer package to ai.prompt.transformer
This commit is contained in:
@@ -5,11 +5,11 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
|
||||
import org.springframework.ai.chat.ChatClient;
|
||||
import org.springframework.ai.chat.agent.ChatAgent;
|
||||
import org.springframework.ai.chat.agent.DefaultChatAgent;
|
||||
import org.springframework.ai.chat.transformer.QuestionContextAugmentor;
|
||||
import org.springframework.ai.chat.transformer.VectorStoreRetriever;
|
||||
import org.springframework.ai.chat.prompt.transformer.QuestionContextAugmentor;
|
||||
import org.springframework.ai.chat.prompt.transformer.VectorStoreRetriever;
|
||||
import org.springframework.ai.chat.messages.UserMessage;
|
||||
import org.springframework.ai.chat.prompt.Prompt;
|
||||
import org.springframework.ai.chat.transformer.PromptContext;
|
||||
import org.springframework.ai.chat.prompt.transformer.PromptContext;
|
||||
import org.springframework.ai.embedding.EmbeddingClient;
|
||||
import org.springframework.ai.evaluation.EvaluationRequest;
|
||||
import org.springframework.ai.evaluation.EvaluationResponse;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.springframework.ai.chat.agent;
|
||||
|
||||
import org.springframework.ai.chat.ChatResponse;
|
||||
import org.springframework.ai.chat.transformer.PromptContext;
|
||||
import org.springframework.ai.chat.prompt.transformer.PromptContext;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package org.springframework.ai.chat.agent;
|
||||
|
||||
import org.springframework.ai.chat.transformer.PromptContext;
|
||||
import org.springframework.ai.chat.prompt.transformer.PromptContext;
|
||||
|
||||
/**
|
||||
* A ChatAgent encapsulates common AI workflows such as Retrieval Augmented Generation.
|
||||
|
||||
@@ -2,8 +2,8 @@ package org.springframework.ai.chat.agent;
|
||||
|
||||
import org.springframework.ai.chat.ChatClient;
|
||||
import org.springframework.ai.chat.ChatResponse;
|
||||
import org.springframework.ai.chat.transformer.PromptContext;
|
||||
import org.springframework.ai.chat.transformer.PromptTransformer;
|
||||
import org.springframework.ai.chat.prompt.transformer.PromptContext;
|
||||
import org.springframework.ai.chat.prompt.transformer.PromptTransformer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,8 +32,6 @@ public interface Message extends Node<String> {
|
||||
|
||||
String getContent();
|
||||
|
||||
List<Media> getMedia();
|
||||
|
||||
MessageType getMessageType();
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package org.springframework.ai.chat.transformer;
|
||||
package org.springframework.ai.chat.prompt.transformer;
|
||||
|
||||
import org.springframework.ai.chat.prompt.Prompt;
|
||||
import org.springframework.ai.node.Node;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* The shared, at the moment, mutable, data structure that can be used to implement
|
||||
@@ -19,13 +16,13 @@ public class PromptContext {
|
||||
|
||||
private Prompt prompt; // The most up-to-date prompt to use
|
||||
|
||||
List<Node<?>> nodes; // The most up-to-date data to use
|
||||
private List<Node<?>> nodes; // The most up-to-date data to use
|
||||
|
||||
private List<Prompt> promptHistory;
|
||||
|
||||
private String conversationId;
|
||||
|
||||
private Map<String, Object> metadata;
|
||||
private Map<String, Object> metadata = new HashMap<>();
|
||||
|
||||
public PromptContext(Prompt prompt) {
|
||||
this(prompt, new ArrayList<>());
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.springframework.ai.chat.transformer;
|
||||
package org.springframework.ai.chat.prompt.transformer;
|
||||
|
||||
/**
|
||||
* Responsible for transforming a Prompt. The PromptContext contains the necessary data to
|
||||
@@ -1,12 +1,10 @@
|
||||
package org.springframework.ai.chat.transformer;
|
||||
package org.springframework.ai.chat.prompt.transformer;
|
||||
|
||||
import org.springframework.ai.chat.transformer.PromptContext;
|
||||
import org.springframework.ai.chat.messages.Message;
|
||||
import org.springframework.ai.chat.messages.MessageType;
|
||||
import org.springframework.ai.chat.prompt.ChatOptions;
|
||||
import org.springframework.ai.chat.prompt.Prompt;
|
||||
import org.springframework.ai.chat.prompt.PromptTemplate;
|
||||
import org.springframework.ai.chat.transformer.PromptTransformer;
|
||||
import org.springframework.ai.document.Document;
|
||||
import org.springframework.ai.node.Node;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.springframework.ai.chat.transformer;
|
||||
package org.springframework.ai.chat.prompt.transformer;
|
||||
|
||||
import org.springframework.ai.chat.messages.Message;
|
||||
import org.springframework.ai.chat.messages.MessageType;
|
||||
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import org.springframework.ai.chat.messages.Media;
|
||||
import org.springframework.ai.document.id.IdGenerator;
|
||||
import org.springframework.ai.document.id.RandomIdGenerator;
|
||||
import org.springframework.ai.node.Node;
|
||||
@@ -55,6 +56,8 @@ public class Document implements Node<String> {
|
||||
*/
|
||||
private String content;
|
||||
|
||||
private List<Media> media;
|
||||
|
||||
/**
|
||||
* Embedding of the document. Note: ephemeral field.
|
||||
*/
|
||||
@@ -81,12 +84,17 @@ public class Document implements Node<String> {
|
||||
}
|
||||
|
||||
public Document(String id, String content, Map<String, Object> metadata) {
|
||||
this(id, content, List.of(), metadata);
|
||||
}
|
||||
|
||||
public Document(String id, String content, List<Media> media, Map<String, Object> metadata) {
|
||||
Assert.hasText(id, "id must not be null");
|
||||
Assert.hasText(content, "content must not be null");
|
||||
Assert.notNull(metadata, "metadata must not be null");
|
||||
|
||||
this.id = id;
|
||||
this.content = content;
|
||||
this.media = media;
|
||||
this.metadata = metadata;
|
||||
}
|
||||
|
||||
@@ -99,6 +107,11 @@ public class Document implements Node<String> {
|
||||
return this.content;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Media> getMedia() {
|
||||
return this.media;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public String getFormattedContent() {
|
||||
return this.getFormattedContent(MetadataMode.ALL);
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package org.springframework.ai.node;
|
||||
|
||||
import org.springframework.ai.chat.messages.Media;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -13,6 +16,8 @@ public interface Node<T> {
|
||||
|
||||
T getContent();
|
||||
|
||||
List<Media> getMedia();
|
||||
|
||||
Map<String, Object> getMetadata();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user