Skip to content

Commit

Permalink
Merge pull request #421 from PolarishT/migrate
Browse files Browse the repository at this point in the history
[WIP MIGRATE]: migrate spring-ai-alibaba to 1.0.0-m6
  • Loading branch information
chickenlj authored Feb 25, 2025
2 parents cb50ef6 + ed7dab1 commit bd7bc87
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,6 @@ public DashScopeImageModel dashScopeImageModel(

return dashScopeImageModel;
}

}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,14 +210,24 @@ public String getValue() {
@JsonInclude(JsonInclude.Include.NON_NULL)
public record EmbeddingUsage(@JsonProperty("total_tokens") Long totalTokens) implements Usage {
@Override
public Long getPromptTokens() {
public Integer getPromptTokens() {
return null;
}

@Override
public Long getGenerationTokens() {
return null;
}

@Override
public Integer getCompletionTokens() {
return 0;
}

@Override
public Object getNativeUsage() {
return null;
}
}

@JsonInclude(JsonInclude.Include.NON_NULL)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ public ChatResponse call(Prompt prompt) {
ChatModelObservationContext observationContext = ChatModelObservationContext.builder()
.prompt(prompt)
.provider(DashScopeApiConstants.PROVIDER_NAME)
// @deprecated since 1.0.0-m6
.requestOptions(prompt.getOptions() != null ? prompt.getOptions() : this.defaultOptions)
.build();

Expand Down Expand Up @@ -378,7 +379,7 @@ else if (message.getMessageType() == MessageType.ASSISTANT) {
return new ToolCall(toolCall.id(), toolCall.type(), function);
}).toList();
}
return List.of(new ChatCompletionMessage(assistantMessage.getContent(),
return List.of(new ChatCompletionMessage(assistantMessage.getText(),
ChatCompletionMessage.Role.ASSISTANT, null, null, toolCalls, null));
}
else if (message.getMessageType() == MessageType.TOOL) {
Expand Down Expand Up @@ -413,7 +414,7 @@ private List<MediaContent> convertMediaContent(UserMessage message) {

List<MediaContent> contentList = new ArrayList<>();
if (format == MessageFormat.VIDEO) {
MediaContent mediaContent = new MediaContent(message.getContent());
MediaContent mediaContent = new MediaContent(message.getText());
contentList.add(mediaContent);

List<String> mediaList = message.getMedia()
Expand All @@ -424,7 +425,7 @@ private List<MediaContent> convertMediaContent(UserMessage message) {
contentList.add(new MediaContent("video", null, null, mediaList));
}
else {
MediaContent mediaContent = new MediaContent(message.getContent());
MediaContent mediaContent = new MediaContent(message.getText());
contentList.add(mediaContent);

contentList.addAll(message.getMedia()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,9 @@ public String getName() {
}

// Request

protected KeyValues requestStopSequences(KeyValues keyValues, ChatModelObservationContext context) {
if (context.getRequestOptions() instanceof DashScopeChatOptions) {
List<Object> stop = ((DashScopeChatOptions) context.getRequestOptions()).getStop();
if (context.getRequest().getOptions() instanceof DashScopeChatOptions) {
List<Object> stop = ((DashScopeChatOptions) context.getRequest().getOptions()).getStop();
if (CollectionUtils.isEmpty(stop)) {
return keyValues;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,24 @@
*/
public class DashScopeAiUsage implements Usage {

public static DashScopeAiUsage from(TokenUsage usage) {
return new DashScopeAiUsage(usage);
}

private final TokenUsage usage;

protected DashScopeAiUsage(TokenUsage usage) {
Assert.notNull(usage, "Dashscope Usage must not be null");
this.usage = usage;
}

public static DashScopeAiUsage from(TokenUsage usage) {
return new DashScopeAiUsage(usage);
}

protected TokenUsage getUsage() {
return this.usage;
}

@Override
public Long getPromptTokens() {
return getUsage().inputTokens().longValue();
public Integer getPromptTokens() {
return getUsage().inputTokens();
}

@Override
Expand All @@ -52,16 +52,26 @@ public Long getGenerationTokens() {
}

@Override
public Long getTotalTokens() {
public Integer getCompletionTokens() {
return 0;
}

@Override
public Integer getTotalTokens() {
Integer totalTokens = getUsage().totalTokens();
if (totalTokens != null) {
return totalTokens.longValue();
return totalTokens;
}
else {
return getPromptTokens() + getGenerationTokens();
return getPromptTokens() + getGenerationTokens().intValue();
}
}

@Override
public Object getNativeUsage() {
return null;
}

@Override
public String toString() {
return getUsage().toString();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@

import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
import com.alibaba.cloud.ai.dashscope.common.DashScopeException;
import com.alibaba.cloud.ai.dashscope.image.DashScopeImageOptions;
import org.springframework.ai.document.Document;
import org.springframework.ai.vectorstore.SearchRequest;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.ai.vectorstore.filter.Filter;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;

Expand All @@ -44,10 +46,14 @@ public DashScopeCloudStore(DashScopeApi dashScopeApi, DashScopeStoreOptions opti
this.dashScopeApi = dashScopeApi;
}

@Override
public String getName() {
return VectorStore.super.getName();
}

/**
* @param documents the list of documents to store. Current document must be
* DashScopeDocumentReader's Result
*
*/
@Override
public void add(List<Document> documents) {
Expand All @@ -65,19 +71,28 @@ public void add(List<Document> documents) {
}

@Override
public Optional<Boolean> delete(List<String> idList) {
public void delete(List<String> idList) {
String pipelineId = dashScopeApi.getPipelineIdByName(options.getIndexName());
if (pipelineId == null) {
throw new DashScopeException("Index:" + options.getIndexName() + " NotExist");
}
return Optional.of(dashScopeApi.deletePipelineDocument(pipelineId, idList));
dashScopeApi.deletePipelineDocument(pipelineId, idList);
}

@Override
public void delete(Filter.Expression filterExpression) {
}

@Override
public List<Document> similaritySearch(String query) {

return similaritySearch(SearchRequest.query(query));
return similaritySearch(SearchRequest.builder().query(query).toString());

}

@Override
public <T> Optional<T> getNativeClient() {
return VectorStore.super.getNativeClient();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,14 +201,14 @@ private AdvisedResponse after(AdvisedResponse advisedResponse) {
.valueOf(response.getResult().getMetadata().getFinishReason());
if (finishReason == ChatCompletionFinishReason.NULL) {
String fullContent = context.getOrDefault("full_content", "").toString()
+ response.getResult().getOutput().getContent();
+ response.getResult().getOutput().getText();
context.put("full_content", fullContent);
return advisedResponse;
}

String content = context.getOrDefault("full_content", "").toString();
if ("".equalsIgnoreCase(content)) {
content = response.getResult().getOutput().getContent();
content = response.getResult().getOutput().getText();
}

Map<String, Document> documentMap = (Map<String, Document>) context.get(RETRIEVED_DOCUMENTS);
Expand Down

0 comments on commit bd7bc87

Please sign in to comment.