-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathQWenMultimodalApiTests.cs
82 lines (68 loc) · 2.92 KB
/
QWenMultimodalApiTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
using Cnblogs.DashScope.Core;
using Cnblogs.DashScope.Sdk.QWenMultimodal;
using Cnblogs.DashScope.Sdk.UnitTests.Utils;
using NSubstitute;
namespace Cnblogs.DashScope.Sdk.UnitTests;
public class QWenMultimodalApiTests
{
private static readonly List<MultimodalMessage> Messages =
[
MultimodalMessage.User(
[
MultimodalMessageContent.ImageContent("https://cdn.example.com/image.jpg"),
MultimodalMessageContent.TextContent("说明一下这张图片的内容")
])
];
[Fact]
public async Task Multimodal_UseEnum_SuccessAsync()
{
// Arrange
var client = Substitute.For<IDashScopeClient>();
var parameters = new MultimodalParameters { Seed = 6666 };
// Act
_ = await client.GetQWenMultimodalCompletionAsync(QWenMultimodalModel.QWenVlMax, Messages, parameters);
// Assert
_ = client.Received().GetMultimodalGenerationAsync(
Arg.Is<ModelRequest<MultimodalInput, IMultimodalParameters>>(
s => s.Model == "qwen-vl-max" && s.Input.Messages == Messages && s.Parameters == parameters));
}
[Fact]
public async Task Multimodal_CustomModel_SuccessAsync()
{
// Arrange
var client = Substitute.For<IDashScopeClient>();
var parameters = new MultimodalParameters { Seed = 6666 };
// Act
_ = await client.GetQWenMultimodalCompletionAsync(Cases.CustomModelName, Messages, parameters);
// Assert
_ = client.Received().GetMultimodalGenerationAsync(
Arg.Is<ModelRequest<MultimodalInput, IMultimodalParameters>>(
s => s.Model == Cases.CustomModelName && s.Input.Messages == Messages && s.Parameters == parameters));
}
[Fact]
public void MultimodalStream_UseEnum_Success()
{
// Arrange
var client = Substitute.For<IDashScopeClient>();
var parameters = new MultimodalParameters { Seed = 6666 };
// Act
_ = client.GetQWenMultimodalCompletionStreamAsync(QWenMultimodalModel.QWenVlPlus, Messages, parameters);
// Assert
_ = client.Received().GetMultimodalGenerationStreamAsync(
Arg.Is<ModelRequest<MultimodalInput, IMultimodalParameters>>(
s => s.Model == "qwen-vl-plus" && s.Input.Messages == Messages && s.Parameters == parameters));
}
[Fact]
public void Multimodal_CustomModel_Success()
{
// Arrange
var client = Substitute.For<IDashScopeClient>();
var parameters = new MultimodalParameters { Seed = 6666 };
// Act
_ = client.GetQWenMultimodalCompletionStreamAsync(Cases.CustomModelName, Messages, parameters);
// Assert
_ = client.Received().GetMultimodalGenerationStreamAsync(
Arg.Is<ModelRequest<MultimodalInput, IMultimodalParameters>>(
s => s.Model == Cases.CustomModelName && s.Input.Messages == Messages && s.Parameters == parameters));
}
}