From 87521066ebcab98382fc45083a5524b9cf0fb17f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E6=98=9F=E7=B9=81?= Date: Thu, 3 Oct 2024 20:37:56 +0800 Subject: [PATCH 1/3] feat: add qwen and embedding models --- src/Cnblogs.DashScope.Sdk/QWen/QWenLlm.cs | 12 +++++++++++- src/Cnblogs.DashScope.Sdk/QWen/QWenLlmNames.cs | 2 ++ .../TextEmbedding/TextEmbeddingModel.cs | 7 ++++++- .../TextEmbedding/TextEmbeddingModelNames.cs | 1 + 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Cnblogs.DashScope.Sdk/QWen/QWenLlm.cs b/src/Cnblogs.DashScope.Sdk/QWen/QWenLlm.cs index 52851f1..4387431 100644 --- a/src/Cnblogs.DashScope.Sdk/QWen/QWenLlm.cs +++ b/src/Cnblogs.DashScope.Sdk/QWen/QWenLlm.cs @@ -78,5 +78,15 @@ public enum QWenLlm /// /// qwen-long, input limit 10,000,000 token /// - QWenLong = 14 + QWenLong = 14, + + /// + /// qwen-coder-turbo + /// + QWenCoder = 15, + + /// + /// qwen-math-plus + /// + QWenMath = 16 } diff --git a/src/Cnblogs.DashScope.Sdk/QWen/QWenLlmNames.cs b/src/Cnblogs.DashScope.Sdk/QWen/QWenLlmNames.cs index d8a12c0..17b6001 100644 --- a/src/Cnblogs.DashScope.Sdk/QWen/QWenLlmNames.cs +++ b/src/Cnblogs.DashScope.Sdk/QWen/QWenLlmNames.cs @@ -20,6 +20,8 @@ public static string GetModelName(this QWenLlm llm) QWenLlm.QWen1_8BLongContextChat => "qwen-1.8b-longcontext-chat", QWenLlm.QWen1_8Chat => "qwen-1.8b-chat", QWenLlm.QWenLong => "qwen-long", + QWenLlm.QWenCoder => "qwen-coder-turbo", + QWenLlm.QWenMath => "qwen-math-plus", _ => ThrowHelper.UnknownModelName(nameof(llm), llm) }; } diff --git a/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModel.cs b/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModel.cs index c5f631b..808db24 100644 --- a/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModel.cs +++ b/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModel.cs @@ -13,5 +13,10 @@ public enum TextEmbeddingModel /// /// text-embedding-v2 /// - TextEmbeddingV2 = 2 + TextEmbeddingV2 = 2, + + /// + /// text-embedding-v3 + /// + TextEmbeddingV3 = 3, } diff --git a/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModelNames.cs b/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModelNames.cs index 528de61..7820e51 100644 --- a/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModelNames.cs +++ b/src/Cnblogs.DashScope.Sdk/TextEmbedding/TextEmbeddingModelNames.cs @@ -8,6 +8,7 @@ public static string GetModelName(this TextEmbeddingModel model) { TextEmbeddingModel.TextEmbeddingV1 => "text-embedding-v1", TextEmbeddingModel.TextEmbeddingV2 => "text-embedding-v2", + TextEmbeddingModel.TextEmbeddingV3 => "text-embedding-v3", _ => ThrowHelper.UnknownModelName(nameof(model), model) }; } From 2b6aeacf8837fd8015adc840bba9ef0d1d3a66c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E6=98=9F=E7=B9=81?= Date: Thu, 3 Oct 2024 20:43:36 +0800 Subject: [PATCH 2/3] feat: adds new parameter for text embedding --- src/Cnblogs.DashScope.Core/ITextEmbeddingParameters.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Cnblogs.DashScope.Core/ITextEmbeddingParameters.cs b/src/Cnblogs.DashScope.Core/ITextEmbeddingParameters.cs index cf8ff68..807d2ba 100644 --- a/src/Cnblogs.DashScope.Core/ITextEmbeddingParameters.cs +++ b/src/Cnblogs.DashScope.Core/ITextEmbeddingParameters.cs @@ -9,4 +9,14 @@ public interface ITextEmbeddingParameters /// The text type("query" or "document"). Defaults to "document". /// public string? TextType { get; } + + /// + /// The dimension of output vector(v3 only), possible values: 1024, 768, 512. + /// + public int? Dimension { get; set; } + + /// + /// Dense or sparse of output vector(v3 only), possible values are: sparse, dense, dense&sparse. + /// + public string? OutputType { get; set; } } From 441d2d40ca31429a8d22f008bc9cc7877ab3f3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E6=98=9F=E7=B9=81?= Date: Thu, 3 Oct 2024 20:48:04 +0800 Subject: [PATCH 3/3] fix: implement new parameter fields --- .../BatchGetEmbeddingsParameters.cs | 8 +++++++- src/Cnblogs.DashScope.Core/TextEmbeddingParameters.cs | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Cnblogs.DashScope.Core/BatchGetEmbeddingsParameters.cs b/src/Cnblogs.DashScope.Core/BatchGetEmbeddingsParameters.cs index ada826e..26aefff 100644 --- a/src/Cnblogs.DashScope.Core/BatchGetEmbeddingsParameters.cs +++ b/src/Cnblogs.DashScope.Core/BatchGetEmbeddingsParameters.cs @@ -6,7 +6,13 @@ public class BatchGetEmbeddingsParameters : IBatchGetEmbeddingsParameters { /// - /// Text type of input. Use to get available options. Defaults to 'document'. + /// Text type of input(ignored by v3). Use to get available options. Defaults to 'document'. /// public string? TextType { get; set; } + + /// + public int? Dimension { get; set; } + + /// + public string? OutputType { get; set; } } diff --git a/src/Cnblogs.DashScope.Core/TextEmbeddingParameters.cs b/src/Cnblogs.DashScope.Core/TextEmbeddingParameters.cs index 48cb090..88ea5e8 100644 --- a/src/Cnblogs.DashScope.Core/TextEmbeddingParameters.cs +++ b/src/Cnblogs.DashScope.Core/TextEmbeddingParameters.cs @@ -7,4 +7,10 @@ public class TextEmbeddingParameters : ITextEmbeddingParameters { /// public string? TextType { get; set; } + + /// + public int? Dimension { get; set; } + + /// + public string? OutputType { get; set; } }