From 8a08abcd211337f2adabb1616943599e7cf9a23c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E6=98=9F=E7=B9=81?= Date: Mon, 25 Nov 2024 14:47:28 +0800 Subject: [PATCH 1/2] test: add snapshot generator --- Cnblogs.DashScope.Sdk.sln | 7 ++ Cnblogs.DashScope.Sdk.sln.DotSettings | 1 + ...ogs.DashScope.Sdk.SnapshotGenerator.csproj | 11 +++ .../Program.cs | 85 +++++++++++++++++++ ...son => auth-error-nosse.request.body.json} | 0 .../auth-error-nosse.request.header.txt | 8 ++ .../auth-error-nosse.response.body.txt | 2 +- .../auth-error-nosse.response.header.txt | 20 ++--- ...ground-generation-nosse.request.body.json} | 0 ...ground-generation-nosse.request.header.txt | 9 ++ ...ch-text-embedding-nosse.request.body.json} | 0 ...ch-text-embedding-nosse.request.header.txt | 9 ++ ...el-completed-task-nosse.request.header.txt | 7 ++ ...-generation-message-sse.request.body.json} | 0 ...-generation-message-sse.request.header.txt | 8 ++ ...-message-with-files-sse.request.body.json} | 0 ...-message-with-files-sse.request.header.txt | 8 ++ .../delete-file-nosse.request.header.txt | 6 ++ .../get-file-nosse.request.header.txt | 6 ++ ...eneration-success-nosse.request.header.txt | 6 ++ ...embedding-success-nosse.request.header.txt | 6 ++ ...-embedding-success-nosse.response.body.txt | 2 +- ...mbedding-success-nosse.response.header.txt | 21 +++-- ...eneration-success-nosse.request.header.txt | 6 ++ ...synthesis-success-nosse.request.header.txt | 6 ++ .../get-task-running-nosse.request.header.txt | 6 ++ .../get-task-unknown-nosse.request.header.txt | 6 ++ ... image-generation-nosse.request.body.json} | 0 .../image-generation-nosse.request.header.txt | 9 ++ ...> image-synthesis-nosse.request.body.json} | 0 .../image-synthesis-nosse.request.header.txt | 9 ++ .../list-files-nosse.request.header.txt | 6 ++ .../list-task-nosse.request.header.txt | 6 ++ ...-generation-audio-nosse.request.body.json} | 0 ...-generation-audio-nosse.request.header.txt | 8 ++ ...al-generation-audio-sse.request.body.json} | 0 ...al-generation-audio-sse.request.header.txt | 8 ++ ...dal-generation-vl-nosse.request.body.json} | 0 ...dal-generation-vl-nosse.request.header.txt | 8 ++ ...modal-generation-vl-sse.request.body.json} | 0 ...modal-generation-vl-sse.request.header.txt | 8 ++ ...> parameter-error-nosse.request.body.json} | 0 .../parameter-error-nosse.request.header.txt | 8 ++ ... => parameter-error-sse.request.body.json} | 0 .../parameter-error-sse.request.header.txt | 8 ++ ...eneration-message-nosse.request.body.json} | 0 ...eneration-message-nosse.request.header.txt | 8 ++ ...-generation-message-sse.request.body.json} | 0 ...-generation-message-sse.request.header.txt | 9 ++ ...essage-with-tools-nosse.request.body.json} | 0 ...essage-with-tools-nosse.request.header.txt | 8 ++ ...e-generation-text-nosse.request.body.json} | 0 ...e-generation-text-nosse.request.header.txt | 8 ++ ...gle-generation-text-sse.request.body.json} | 0 ...gle-generation-text-sse.request.header.txt | 8 ++ ...ngle-generation-text-sse.response.body.txt | 31 ++----- ...le-generation-text-sse.response.header.txt | 22 ++--- ...=> text-embedding-nosse.request.body.json} | 0 .../text-embedding-nosse.request.header.txt | 8 ++ ...n => tokenization-nosse.request.body.json} | 0 .../tokenization-nosse.request.header.txt | 8 ++ ...upload-file-error-nosse.request.header.txt | 7 ++ .../upload-file-nosse.request.header.txt | 7 ++ .../Utils/RequestSnapshot.cs | 2 +- .../Utils/Snapshots.cs | 26 +++--- 65 files changed, 404 insertions(+), 72 deletions(-) create mode 100644 test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Cnblogs.DashScope.Sdk.SnapshotGenerator.csproj create mode 100644 test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{auth-error-nosse.request.json => auth-error-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{background-generation-nosse.request.json => background-generation-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{batch-text-embedding-nosse.request.json => batch-text-embedding-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/cancel-completed-task-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{conversation-generation-message-sse.request.json => conversation-generation-message-sse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{conversation-generation-message-with-files-sse.request.json => conversation-generation-message-with-files-sse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/delete-file-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-file-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-background-generation-success-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-generation-success-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-synthesis-success-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-running-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-unknown-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{image-generation-nosse.request.json => image-generation-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{image-synthesis-nosse.request.json => image-synthesis-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-files-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-task-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{multimodal-generation-audio-nosse.request.json => multimodal-generation-audio-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{multimodal-generation-audio-sse.request.json => multimodal-generation-audio-sse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{multimodal-generation-vl-nosse.request.json => multimodal-generation-vl-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{multimodal-generation-vl-sse.request.json => multimodal-generation-vl-sse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{parameter-error-nosse.request.json => parameter-error-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{parameter-error-sse.request.json => parameter-error-sse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{single-generation-message-nosse.request.json => single-generation-message-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{single-generation-message-sse.request.json => single-generation-message-sse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{single-generation-message-with-tools-nosse.request.json => single-generation-message-with-tools-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{single-generation-text-nosse.request.json => single-generation-text-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{single-generation-text-sse.request.json => single-generation-text-sse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{text-embedding-nosse.request.json => text-embedding-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.header.txt rename test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/{tokenization-nosse.request.json => tokenization-nosse.request.body.json} (100%) create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-error-nosse.request.header.txt create mode 100644 test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-nosse.request.header.txt diff --git a/Cnblogs.DashScope.Sdk.sln b/Cnblogs.DashScope.Sdk.sln index 7f4e6a5..106b3de 100644 --- a/Cnblogs.DashScope.Sdk.sln +++ b/Cnblogs.DashScope.Sdk.sln @@ -16,6 +16,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cnblogs.DashScope.AspNetCor EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cnblogs.DashScope.Core", "src\Cnblogs.DashScope.Core\Cnblogs.DashScope.Core.csproj", "{CC389455-A3EA-4F09-B524-4DC351A1E1AA}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cnblogs.DashScope.Sdk.SnapshotGenerator", "test\Cnblogs.DashScope.Sdk.SnapshotGenerator\Cnblogs.DashScope.Sdk.SnapshotGenerator.csproj", "{5088DE77-1CE3-46FB-B9D0-27A6C9A5EED1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -27,6 +29,7 @@ Global {8885149A-78F0-4C8E-B9AA-87A46EA69219} = {2E15D1EC-4A07-416E-8BE6-D907F509FD35} {C910495B-87AB-4AC1-989C-B6720695A139} = {008988ED-0A3B-4272-BCC3-7B4110699345} {CC389455-A3EA-4F09-B524-4DC351A1E1AA} = {008988ED-0A3B-4272-BCC3-7B4110699345} + {5088DE77-1CE3-46FB-B9D0-27A6C9A5EED1} = {CFC8ECB3-5248-46CD-A56C-EC088F2A3804} EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {FA6A118A-8D26-4B7A-9952-8504B8A0025B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -49,5 +52,9 @@ Global {CC389455-A3EA-4F09-B524-4DC351A1E1AA}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC389455-A3EA-4F09-B524-4DC351A1E1AA}.Release|Any CPU.ActiveCfg = Release|Any CPU {CC389455-A3EA-4F09-B524-4DC351A1E1AA}.Release|Any CPU.Build.0 = Release|Any CPU + {5088DE77-1CE3-46FB-B9D0-27A6C9A5EED1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5088DE77-1CE3-46FB-B9D0-27A6C9A5EED1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5088DE77-1CE3-46FB-B9D0-27A6C9A5EED1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5088DE77-1CE3-46FB-B9D0-27A6C9A5EED1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Cnblogs.DashScope.Sdk.sln.DotSettings b/Cnblogs.DashScope.Sdk.sln.DotSettings index 79d3fc2..3ad7f9e 100644 --- a/Cnblogs.DashScope.Sdk.sln.DotSettings +++ b/Cnblogs.DashScope.Sdk.sln.DotSettings @@ -1,3 +1,4 @@  True + True True \ No newline at end of file diff --git a/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Cnblogs.DashScope.Sdk.SnapshotGenerator.csproj b/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Cnblogs.DashScope.Sdk.SnapshotGenerator.csproj new file mode 100644 index 0000000..8de488e --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Cnblogs.DashScope.Sdk.SnapshotGenerator.csproj @@ -0,0 +1,11 @@ + + + + Exe + + + + + + + diff --git a/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs b/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs new file mode 100644 index 0000000..5e041f3 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs @@ -0,0 +1,85 @@ +// See https://aka.ms/new-console-template for more information + +using System.Net; +using System.Text; + +const string basePath = "../../../../Cnblogs.DashScope.Sdk.UnitTests/RawHttpData"; +var snapshots = new DirectoryInfo(basePath); +Console.Write("ApiKey > "); +var apiKey = Console.ReadLine(); +var handler = new SocketsHttpHandler() +{ + AutomaticDecompression = DecompressionMethods.All, +}; +var client = new HttpClient(handler) { BaseAddress = new Uri("https://dashscope.aliyuncs.com/api/v1/") }; +client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}"); + +while (true) +{ + Console.Write("Snapshot Name > "); + var snapshotName = Console.ReadLine()?.Trim(); + if (string.IsNullOrEmpty(snapshotName)) + { + continue; + } + + var snapshot = snapshots.EnumerateFiles().Where(s => s.Name.StartsWith(snapshotName)) + .Select(s => s.Name.Split('.').First()).Distinct() + .ToList(); + if (snapshot.Count == 0) + { + Console.WriteLine($"No snapshot was found with name: {snapshotName}"); + } + + Console.WriteLine($"Updating {snapshot.Count} snapshots ..."); + foreach (var name in snapshot) + { + Console.WriteLine($"Updating {name}"); + await UpdateSnapshotsAsync(client, name); + Console.WriteLine($"{name} updated"); + } +} + +static async Task UpdateSnapshotsAsync(HttpClient client, string name) +{ + var requestHeader = await File.ReadAllLinesAsync(Path.Combine(basePath, $"{name}.request.header.txt")); + var requestBodyFile = Path.Combine(basePath, $"{name}.request.body.json"); + var requestBody = File.Exists(requestBodyFile) + ? await File.ReadAllTextAsync(Path.Combine(basePath, $"{name}.request.body.json")) + : string.Empty; + var firstLine = requestHeader[0].Split(' '); + var method = HttpMethod.Parse(firstLine[0]); + var request = new HttpRequestMessage(method, firstLine[1]); + var contentType = "application/json"; + foreach (var header in requestHeader.Skip(1)) + { + var values = header.Split(':', StringSplitOptions.TrimEntries); + if (values[0] == "Content-Type") + { + contentType = values[1]; + continue; + } + + if (values[0] == "Content-Length") + { + continue; + } + + request.Headers.Add(values[0], values[1]); + } + + if (string.IsNullOrWhiteSpace(requestBodyFile) == false) + { + request.Content = new StringContent(requestBody, Encoding.Default, contentType); + } + + var response = await client.SendAsync(request); + var responseBody = await response.Content.ReadAsStringAsync(); + var responseHeaderFile = new StringBuilder(); + responseHeaderFile.AppendLine($"HTTP/1.1 {(int)response.StatusCode} {response.StatusCode}"); + responseHeaderFile = response.Headers.Aggregate( + responseHeaderFile, + (sb, pair) => sb.AppendLine($"{pair.Key}: {string.Join(',', pair.Value)}")); + await File.WriteAllTextAsync(Path.Combine(basePath, $"{name}.response.header.txt"), responseHeaderFile.ToString()); + await File.WriteAllTextAsync(Path.Combine(basePath, $"{name}.response.body.txt"), responseBody); +} diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.header.txt new file mode 100644 index 0000000..b8c87ad --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 429 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.body.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.body.txt index 84594d8..d86b36a 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.body.txt +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.body.txt @@ -1 +1 @@ -{"code":"InvalidApiKey","message":"No API-key provided.","request_id":"862e8e7a-1fb8-9a50-aa7b-a808c2a988ee"} +{"code":"InvalidApiKey","message":"Invalid API-key provided.","request_id":"a1c0561c-1dfe-98a6-a62f-983577b8bc5e"} \ No newline at end of file diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.header.txt index 19e2ad9..804fd0d 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.header.txt +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/auth-error-nosse.response.header.txt @@ -1,10 +1,10 @@ -HTTP/1.1 401 Unauthorized -content-type: application/json;charset=UTF-8 -date: Mon, 26 Feb 2024 13:24:14 GMT -x-envoy-upstream-service-time: 3 -server: istio-envoy -req-cost-time: 3 -req-arrive-time: 1708953854889 -resp-start-time: 1708953854892 -content-length: 109 -vary: Accept-Encoding +HTTP/1.1 401 Unauthorized +eagleeye-traceid: cf50104d0a2a79fb416deb06c226876d +X-Request-ID: a1c0561c-1dfe-98a6-a62f-983577b8bc5e +x-envoy-upstream-service-time: 4 +Date: Mon, 25 Nov 2024 05:42:37 GMT +Server: istio-envoy +req-cost-time: 4 +req-arrive-time: 1732513357578 +resp-start-time: 1732513357583 +Vary: Accept-Encoding diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.header.txt new file mode 100644 index 0000000..cf180a8 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/background-generation-nosse.request.header.txt @@ -0,0 +1,9 @@ +POST /api/v1/services/aigc/background-generation/generation/ HTTP/1.1 +X-DashScope-Async: enable +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 727 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.header.txt new file mode 100644 index 0000000..5a85839 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/batch-text-embedding-nosse.request.header.txt @@ -0,0 +1,9 @@ +POST /api/v1/services/embeddings/text-embedding/text-embedding HTTP/1.1 +X-DashScope-Async: enable +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 225 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/cancel-completed-task-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/cancel-completed-task-nosse.request.header.txt new file mode 100644 index 0000000..6cfc405 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/cancel-completed-task-nosse.request.header.txt @@ -0,0 +1,7 @@ +POST /api/v1/tasks/6075262c-b56d-4968-9abf-2a9784a90f3e/cancel HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 0 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.header.txt new file mode 100644 index 0000000..070359a --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-sse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Accept: text/event-stream +Content-Type: application/json +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 829 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.header.txt new file mode 100644 index 0000000..80ce50b --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/conversation-generation-message-with-files-sse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Accept: text/event-stream +Content-Type: application/json +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 729 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/delete-file-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/delete-file-nosse.request.header.txt new file mode 100644 index 0000000..4f671b2 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/delete-file-nosse.request.header.txt @@ -0,0 +1,6 @@ +DELETE /api/v1/files/a4f34423-d413-4530-b167-b5180394f2ce HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-file-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-file-nosse.request.header.txt new file mode 100644 index 0000000..88f0217 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-file-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/files/6f87e744-aaff-409c-b596-1b851554bd6d HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-background-generation-success-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-background-generation-success-nosse.request.header.txt new file mode 100644 index 0000000..c41e7f8 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-background-generation-success-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/tasks/b2e98d78-c79b-431c-b2d7-c7bcd54465da HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.request.header.txt new file mode 100644 index 0000000..9b746b9 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/tasks/7408ef3d-a0be-4379-9e72-a6e95a569483 HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.body.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.body.txt index da243ee..653653a 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.body.txt +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.body.txt @@ -1 +1 @@ -{"request_id":"b41afd70-251a-9625-97fd-63caf63edb44","output":{"task_id":"6075262c-b56d-4968-9abf-2a9784a90f3e","task_status":"SUCCEEDED","submit_time":"2024-03-01 10:38:04.485","scheduled_time":"2024-03-01 10:38:04.527","end_time":"2024-03-01 10:38:05.184","url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/5fc5c860/2024-03-01/78a8c5e1-cc44-497e-b8c8-1a46e7e57d03_output_1709260685020.txt.gz?Expires=1709519885&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=lUaHmlf5XkjBBb8Yj3Y%2FZMb%2BhA4%3D"},"usage":{"total_tokens":28}} +{"request_id":"0b2ebeda-a91b-948f-986a-d395cbf1d0e1","output":{"task_id":"7408ef3d-a0be-4379-9e72-a6e95a569483","task_status":"SUCCEEDED","submit_time":"2024-11-25 13:55:46.536","scheduled_time":"2024-11-25 13:55:46.557","end_time":"2024-11-25 13:55:47.446","url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/5fc5c860/2024-11-25/c6c4456e-3c66-42ba-a52a-a16c58dda4d6_output_1732514147173.txt.gz?Expires=1732773347&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=perMNS1RdHHroUn2YnXxzTmOZtg%3D"},"usage":{"total_tokens":28}} \ No newline at end of file diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.header.txt index 941e7eb..a6dc511 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.header.txt +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-batch-text-embedding-success-nosse.response.header.txt @@ -1,11 +1,10 @@ -HTTP/1.1 200 OK -server: istio-envoy -date: Fri, 01 Mar 2024 02:38:15 GMT -content-type: application/json;charset=UTF-8 -vary: Accept-Encoding -content-encoding: gzip -req-cost-time: 19 -req-arrive-time: 1709260695190 -resp-start-time: 1709260695210 -x-envoy-upstream-service-time: 14 -transfer-encoding: chunked +HTTP/1.1 200 OK +Server: istio-envoy +Date: Mon, 25 Nov 2024 06:22:54 GMT +Vary: Accept-Encoding +req-cost-time: 53 +req-arrive-time: 1732515774352 +resp-start-time: 1732515774405 +x-envoy-upstream-service-time: 45 +Set-Cookie: acw_tc=0b2ebeda-a91b-948f-986a-d395cbf1d0e1c3946b1bf06c56f595663a7f43f68254;path=/;HttpOnly;Max-Age=1800 +Transfer-Encoding: chunked diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-generation-success-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-generation-success-nosse.request.header.txt new file mode 100644 index 0000000..1fafaa3 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-generation-success-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/tasks/c4f94e00-5899-431b-9579-eb1ebe686379 HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-synthesis-success-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-synthesis-success-nosse.request.header.txt new file mode 100644 index 0000000..4f43b9c --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-image-synthesis-success-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/tasks/9e2b6ef6-285d-4efa-8651-4dbda7d571fa HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-running-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-running-nosse.request.header.txt new file mode 100644 index 0000000..2df82a2 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-running-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/tasks/1111 HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-unknown-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-unknown-nosse.request.header.txt new file mode 100644 index 0000000..520f0d8 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/get-task-unknown-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/tasks/edbd4e81-d37b-97f1-9857-d7394829dd0f HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.header.txt new file mode 100644 index 0000000..5da6cc5 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-generation-nosse.request.header.txt @@ -0,0 +1,9 @@ +POST /api/v1/services/aigc/image-generation/generation HTTP/1.1 +X-DashScope-Async: enable +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 199 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.header.txt new file mode 100644 index 0000000..aac1724 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/image-synthesis-nosse.request.header.txt @@ -0,0 +1,9 @@ +POST /api/v1/services/aigc/text2image/image-synthesis HTTP/1.1 +X-DashScope-Async: enable +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 218 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-files-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-files-nosse.request.header.txt new file mode 100644 index 0000000..83d65b4 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-files-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/files?page_no=1&page_size=1 HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-task-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-task-nosse.request.header.txt new file mode 100644 index 0000000..a3e3c03 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/list-task-nosse.request.header.txt @@ -0,0 +1,6 @@ +GET /api/v1/tasks HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.header.txt new file mode 100644 index 0000000..8c88463 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/multimodal-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 673 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.header.txt new file mode 100644 index 0000000..2c98ddf --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-audio-sse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/multimodal-generation/generation HTTP/1.1 +Accept: text/event-stream +Content-Type: application/json +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 698 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.header.txt new file mode 100644 index 0000000..3c6f6b1 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/multimodal-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 376 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.header.txt new file mode 100644 index 0000000..921558b --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/multimodal-generation-vl-sse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/multimodal-generation/generation HTTP/1.1 +Accept: text/event-stream +Content-Type: application/json +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 704 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.header.txt new file mode 100644 index 0000000..98f3ece --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 453 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.header.txt new file mode 100644 index 0000000..98f3ece --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/parameter-error-sse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 453 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.header.txt new file mode 100644 index 0000000..99d2294 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 537 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.header.txt new file mode 100644 index 0000000..711ab9b --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-sse.request.header.txt @@ -0,0 +1,9 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Accept: text/event-stream +Content-Type: application/json +Cache-Control: no-cache +Postman-Token: ab9653b6-26e2-4aeb-99f0-34235457fb17 +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 536 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.header.txt new file mode 100644 index 0000000..bbab4fc --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-message-with-tools-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 1628 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.header.txt new file mode 100644 index 0000000..cc45d94 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 428 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.header.txt new file mode 100644 index 0000000..08d3c0c --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/aigc/text-generation/generation HTTP/1.1 +Accept: text/event-stream +Content-Type: application/json +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 536 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.body.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.body.txt index 21ec87d..4a9d353 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.body.txt +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.body.txt @@ -1,44 +1,25 @@ -id:1 +id:1 event:result :HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":"1"},"usage":{"total_tokens":9,"input_tokens":8,"output_tokens":1},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} +data:{"output":{"finish_reason":"null","text":"1+"},"usage":{"total_tokens":18,"input_tokens":16,"output_tokens":2},"request_id":"5b441aa7-0b9c-9fbc-ae0a-e2b212b71eac"} id:2 event:result :HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":"+"},"usage":{"total_tokens":10,"input_tokens":8,"output_tokens":2},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} +data:{"output":{"finish_reason":"null","text":"1"},"usage":{"total_tokens":19,"input_tokens":16,"output_tokens":3},"request_id":"5b441aa7-0b9c-9fbc-ae0a-e2b212b71eac"} id:3 event:result :HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":"1"},"usage":{"total_tokens":11,"input_tokens":8,"output_tokens":3},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} +data:{"output":{"finish_reason":"null","text":"等于"},"usage":{"total_tokens":20,"input_tokens":16,"output_tokens":4},"request_id":"5b441aa7-0b9c-9fbc-ae0a-e2b212b71eac"} id:4 event:result :HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":" 等于 "},"usage":{"total_tokens":16,"input_tokens":8,"output_tokens":8},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} +data:{"output":{"finish_reason":"null","text":"2。"},"usage":{"total_tokens":22,"input_tokens":16,"output_tokens":6},"request_id":"5b441aa7-0b9c-9fbc-ae0a-e2b212b71eac"} id:5 event:result :HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":"2。这是最基本的数学加法原则"},"usage":{"total_tokens":24,"input_tokens":8,"output_tokens":16},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} +data:{"output":{"finish_reason":"stop","text":""},"usage":{"total_tokens":22,"input_tokens":16,"output_tokens":6},"request_id":"5b441aa7-0b9c-9fbc-ae0a-e2b212b71eac"} -id:6 -event:result -:HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":",在十进制数系统中,"},"usage":{"total_tokens":32,"input_tokens":8,"output_tokens":24},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} - -id:7 -event:result -:HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":"任何两个相同的数字相加都等于"},"usage":{"total_tokens":40,"input_tokens":8,"output_tokens":32},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} - -id:8 -event:result -:HTTP_STATUS/200 -data:{"output":{"finish_reason":"null","text":"该数字的两倍。"},"usage":{"total_tokens":46,"input_tokens":8,"output_tokens":38},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} - -id:9 -event:result -:HTTP_STATUS/200 -data:{"output":{"finish_reason":"stop","text":""},"usage":{"total_tokens":46,"input_tokens":8,"output_tokens":38},"request_id":"893a2304-f032-9c7f-bde8-da5e3c1288fc"} diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.header.txt index 55b44ac..b073cc9 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.header.txt +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/single-generation-text-sse.response.header.txt @@ -1,13 +1,15 @@ -HTTP/1.1 200 OK -eagleeye-traceid: 446447911b8df6bf8a2f9c579d66cf80 -x-request-id: 2e6db096-f167-932b-98bb-17657228b8b6 -content-type: text/event-stream;charset=UTF-8 +HTTP/1.1 200 OK +eagleeye-traceid: 062490f5e508fdde8f51b7705ed50949 +Vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers +X-Request-ID: 5b441aa7-0b9c-9fbc-ae0a-e2b212b71eac x-dashscope-call-gateway: true -content-encoding: gzip +x-dashscope-timeout: 180 +x-dashscope-finished: false req-cost-time: 361 -req-arrive-time: 1708924642454 -resp-start-time: 1708924642816 +req-arrive-time: 1732513944833 +resp-start-time: 1732513945194 x-envoy-upstream-service-time: 355 -date: Mon, 26 Feb 2024 05:17:22 GMT -server: istio-envoy -transfer-encoding: chunked +Set-Cookie: acw_tc=5b441aa7-0b9c-9fbc-ae0a-e2b212b71eacb8d26e65ea28dbea029207c861060ea5;path=/;HttpOnly;Max-Age=1800 +Date: Mon, 25 Nov 2024 05:52:24 GMT +Server: istio-envoy +Transfer-Encoding: chunked diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.header.txt new file mode 100644 index 0000000..f6d4fea --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/text-embedding-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/services/embeddings/text-embedding/text-embedding HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 162 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.json b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.body.json similarity index 100% rename from test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.json rename to test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.body.json diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.header.txt new file mode 100644 index 0000000..37d1fed --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/tokenization-nosse.request.header.txt @@ -0,0 +1,8 @@ +POST /api/v1/tokenizer HTTP/1.1 +Content-Type: application/json +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Length: 248 diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-error-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-error-nosse.request.header.txt new file mode 100644 index 0000000..40d8b49 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-error-nosse.request.header.txt @@ -0,0 +1,7 @@ +POST /api/v1/files HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Type: multipart/form-data; diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-nosse.request.header.txt b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-nosse.request.header.txt new file mode 100644 index 0000000..40d8b49 --- /dev/null +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/RawHttpData/upload-file-nosse.request.header.txt @@ -0,0 +1,7 @@ +POST /api/v1/files HTTP/1.1 +Accept: */* +Cache-Control: no-cache +Host: dashscope.aliyuncs.com +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Content-Type: multipart/form-data; diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/RequestSnapshot.cs b/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/RequestSnapshot.cs index c91de96..17596ff 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/RequestSnapshot.cs +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/RequestSnapshot.cs @@ -35,6 +35,6 @@ public record RequestSnapshot( { public string GetRequestJson(bool sse) { - return File.ReadAllText(Path.Combine("RawHttpData", $"{GetSnapshotCaseName(sse)}.request.json")); + return File.ReadAllText(Path.Combine("RawHttpData", $"{GetSnapshotCaseName(sse)}.request.body.json")); } } diff --git a/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs b/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs index db846cf..89d0e5c 100644 --- a/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs +++ b/test/Cnblogs.DashScope.Sdk.UnitTests/Utils/Snapshots.cs @@ -33,8 +33,8 @@ public static readonly new() { Code = "InvalidApiKey", - Message = "No API-key provided.", - RequestId = "862e8e7a-1fb8-9a50-aa7b-a808c2a988ee" + Message = "Invalid API-key provided.", + RequestId = "a1c0561c-1dfe-98a6-a62f-983577b8bc5e" }); public static readonly @@ -172,14 +172,14 @@ public static class TextFormat { Output = new() { - FinishReason = "stop", Text = "1+1 等于 2。这是最基本的数学加法原则,在十进制数系统中,任何两个相同的数字相加都等于该数字的两倍。" + FinishReason = "stop", Text = "1+1等于2。" }, - RequestId = "893a2304-f032-9c7f-bde8-da5e3c1288fc", + RequestId = "5b441aa7-0b9c-9fbc-ae0a-e2b212b71eac", Usage = new() { - InputTokens = 8, - OutputTokens = 38, - TotalTokens = 46 + InputTokens = 16, + OutputTokens = 6, + TotalTokens = 22 } }); } @@ -742,16 +742,16 @@ public static readonly RequestSnapshot Date: Mon, 25 Nov 2024 14:47:56 +0800 Subject: [PATCH 2/2] feat: code cleanup --- test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs b/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs index 5e041f3..32cb00f 100644 --- a/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs +++ b/test/Cnblogs.DashScope.Sdk.SnapshotGenerator/Program.cs @@ -1,6 +1,4 @@ -// See https://aka.ms/new-console-template for more information - -using System.Net; +using System.Net; using System.Text; const string basePath = "../../../../Cnblogs.DashScope.Sdk.UnitTests/RawHttpData";