diff --git a/sample/Cnblogs.DashScope.Sample/Cnblogs.DashScope.Sample.csproj b/sample/Cnblogs.DashScope.Sample/Cnblogs.DashScope.Sample.csproj
index a7ba2f0..88bfded 100644
--- a/sample/Cnblogs.DashScope.Sample/Cnblogs.DashScope.Sample.csproj
+++ b/sample/Cnblogs.DashScope.Sample/Cnblogs.DashScope.Sample.csproj
@@ -20,7 +20,7 @@
-
+
diff --git a/src/Cnblogs.DashScope.AI/Cnblogs.DashScope.AI.csproj b/src/Cnblogs.DashScope.AI/Cnblogs.DashScope.AI.csproj
index fe758a6..63d65db 100644
--- a/src/Cnblogs.DashScope.AI/Cnblogs.DashScope.AI.csproj
+++ b/src/Cnblogs.DashScope.AI/Cnblogs.DashScope.AI.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/src/Cnblogs.DashScope.AI/DashScopeChatClient.cs b/src/Cnblogs.DashScope.AI/DashScopeChatClient.cs
index f28456f..3e2561f 100644
--- a/src/Cnblogs.DashScope.AI/DashScopeChatClient.cs
+++ b/src/Cnblogs.DashScope.AI/DashScopeChatClient.cs
@@ -43,7 +43,7 @@ public DashScopeChatClient(IDashScopeClient dashScopeClient, string modelId)
///
public async Task GetResponseAsync(
- IList chatMessages,
+ IEnumerable chatMessages,
ChatOptions? options = null,
CancellationToken cancellationToken = default)
{
@@ -130,7 +130,7 @@ public async Task GetResponseAsync(
///
public async IAsyncEnumerable GetStreamingResponseAsync(
- IList chatMessages,
+ IEnumerable chatMessages,
ChatOptions? options = null,
[EnumeratorCancellation] CancellationToken cancellationToken = default)
{
@@ -202,10 +202,10 @@ public async IAsyncEnumerable GetStreamingResponseAsync(
yield return new ChatResponseUpdate()
{
ResponseId = completion.ResponseId,
- Role = completion.Message.Role,
+ Role = completion.Messages[0].Role,
AdditionalProperties = completion.AdditionalProperties,
- Contents = completion.Message.Contents,
- RawRepresentation = completion.Message.RawRepresentation,
+ Contents = completion.Messages[0].Contents,
+ RawRepresentation = completion.Messages[0].RawRepresentation,
CreatedAt = completion.CreatedAt,
FinishReason = completion.FinishReason,
ModelId = completion.ModelId,
@@ -392,11 +392,11 @@ private List ToMultimodalMessageContents(IList MultimodalMessageContent.TextContent(text.Text),
- DataContent { Data.Length: > 0 } data when data.MediaTypeStartsWith("image") =>
+ DataContent { Data.Length: > 0 } data when data.HasTopLevelMediaType("image") =>
MultimodalMessageContent.ImageContent(
- data.Data.Value.Span,
+ data.Data.Span,
data.MediaType ?? throw new InvalidOperationException("image media type should not be null")),
- DataContent { Uri: { } uri } data when data.MediaTypeStartsWith("image") =>
+ DataContent { Uri: { } uri } data when data.HasTopLevelMediaType("image") =>
MultimodalMessageContent.ImageContent(uri),
_ => null
};
@@ -422,7 +422,7 @@ private IEnumerable ToTextChatMessages(
{
yield return new TextChatMessage(
from.Role.Value,
- from.Text ?? string.Empty,
+ from.Text,
from.AuthorName);
}
else if (from.Role == ChatRole.Tool)
@@ -464,7 +464,7 @@ private IEnumerable ToTextChatMessages(
// <400> InternalError.Algo.InvalidParameter: Empty tool_calls is not supported in message
yield return new TextChatMessage(
from.Role.Value,
- from.Text ?? string.Empty,
+ from.Text,
from.AuthorName,
null,
functionCall.Count > 0 ? functionCall : null);
diff --git a/src/Cnblogs.DashScope.AI/DashScopeTextEmbeddingGenerator.cs b/src/Cnblogs.DashScope.AI/DashScopeTextEmbeddingGenerator.cs
index fba5e02..06c28d7 100644
--- a/src/Cnblogs.DashScope.AI/DashScopeTextEmbeddingGenerator.cs
+++ b/src/Cnblogs.DashScope.AI/DashScopeTextEmbeddingGenerator.cs
@@ -29,7 +29,6 @@ public DashScopeTextEmbeddingGenerator(IDashScopeClient dashScopeClient, string
_dashScopeClient = dashScopeClient;
_modelId = modelId;
_parameters = new TextEmbeddingParameters { Dimension = dimensions };
- Metadata = new EmbeddingGeneratorMetadata("dashscope", _dashScopeClient.BaseAddress, modelId, dimensions);
}
///
@@ -88,7 +87,4 @@ public void Dispose()
options.AdditionalProperties?.GetValueOrDefault(nameof(TextEmbeddingParameters.TextType)) as string,
};
}
-
- ///
- public EmbeddingGeneratorMetadata Metadata { get; }
}
diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/ChatClientTests.cs b/test/Cnblogs.DashScope.Sdk.UnitTests/ChatClientTests.cs
index 89ac79c..c1f5096 100644
--- a/test/Cnblogs.DashScope.Sdk.UnitTests/ChatClientTests.cs
+++ b/test/Cnblogs.DashScope.Sdk.UnitTests/ChatClientTests.cs
@@ -46,7 +46,7 @@ public async Task ChatClient_TextCompletion_SuccessAsync()
Arg.Is>(
m => m.IsEquivalent(testCase.RequestModel)),
Arg.Any());
- response.Message.Text.Should().Be(testCase.ResponseModel.Output.Choices?.First().Message.Content);
+ response.Messages[0].Text.Should().Be(testCase.ResponseModel.Output.Choices?.First().Message.Content);
}
[Fact]
@@ -136,7 +136,7 @@ public async Task ChatClient_ImageRecognition_SuccessAsync()
await dashScopeClient.Received().GetMultimodalGenerationAsync(
Arg.Is>(m => m.IsEquivalent(testCase.RequestModel)),
Arg.Any());
- response.Choices[0].Text.Should()
+ response.Messages[0].Text.Should()
.BeEquivalentTo(testCase.ResponseModel.Output.Choices[0].Message.Content[0].Text);
}
diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs b/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs
index b5e2483..fec5a40 100644
--- a/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs
+++ b/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs
@@ -781,7 +781,7 @@ public static class MultimodalGeneration
MultimodalMessage.User(
[
MultimodalMessageContent.ImageContent(
- "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="),
MultimodalMessageContent.TextContent("这个图片是哪里,请用简短的语言回答")
])
]
@@ -881,7 +881,7 @@ public static class MultimodalGeneration
MultimodalMessage.User(
[
MultimodalMessageContent.ImageContent(
- "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="),
MultimodalMessageContent.TextContent("这个图片是哪里,请用简短的语言回答")
])
]